Download Operating Systems and Protection CS 217 1

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

CP/M wikipedia , lookup

Burroughs MCP wikipedia , lookup

Process management (computing) wikipedia , lookup

Memory management unit wikipedia , lookup

Paging wikipedia , lookup

Transcript
Operating Systems
and Protection
CS 217
1
Goals of Today’s Lecture
• How multiple programs can run at once
o
o
o
o
Processes
Context switching
Process control block
Virtual memory
• Boundary between parts of the system
o User programs
o Operating system
o Underlying hardware
• Mechanics of handling a page fault
o Page tables
o Process ID registers
o Page faults
2
Operating System
• Supports virtual machines
o Promises each process the illusion of having whole
machine to itself
• Provides services:
o
o
o
o
o
o
Protection
Scheduling
Memory management
File systems
Synchronization
etc.
User
Process
User
Process
Operating System
Hardware
3
What is a Process?
• A process is a running program with its own …
o Processor state
– EIP, EFLAGS, registers
o Address space (memory)
– Text, bss, data, heap, stack
• Supporting the abstraction
o Processor
– Saving state per process
– Context switching
o Main memory
– Sharing physical memory
– Supporting virtual memory
o Efficiency, fairness, protection
User
Process
User
Process
Operating System
Hardware
4
Divide Hardware into Little Pieces?
User
Process
User
Process
Operating System
Hardware
• Idea: registers, memory, ALU, etc. per process
o Pro: totally independent operation of each process
o Con: lots of extra hardware;
some parts idle at any given time;
hard limit on the number of processes
5
Indirection, and Sharing in Time?
User
Process
User
Process
Operating System
Hardware
• Idea: swap processes in and out of the CPU;
map references into physical addresses
o Pro: make effective use of the resources by sharing
o Con: overhead of swapping processes;
overhead of mapping memory references
6
When to Change Which Process is Running?
• When a process is stalled waiting for I/O
o Better utilize the CPU, e.g., while waiting for disk access
1:
2:
CPU
I/O
CPU
CPU
I/O
I/O
CPU
CPU
I/O
I/O
CPU
I/O
• When a process has been running for a while
o Sharing on a fine time scale to give each process the
illusion of running on its own machine
o Trade-off efficiency for a finer granularity of fairness
7
Life Cycle of a Process
• Running: instructions are being executed
• Waiting: waiting for some event (e.g., I/O finish)
• Ready: ready to be assigned to a processor
Create
Ready
Running
Termination
Waiting
8
Switching Between Processes
Process 2
Process 1
Running
Save context
Waiting
..
.
Load context
Waiting
Running
Save context
..
.
Running
Load context
Waiting
9
Context Switch: What to Save & Load?
• Process state
o New, ready, waiting, halted
• CPU registers
o EIP, EFLAGS, EAX, EBX, …
• I/O status information
o Open files, I/O requests, …
• Memory management information
o Page tables
• Accounting information
o Time limits, group ID, ...
• CPU scheduling information
o Priority, queues
10
Process Control Block
• For each process, the OS keeps track of ...
o
o
o
o
o
o
Process state
CPU registers
CPU scheduling information
Memory management information
Accounting information
I/O status information
ready
EIP
EFLAGS
EAX
EBX
...
etc.
PCB1
PCB2
PCB3
OS’s memory
Process
Process
Process
1’s
2’s
3’s
memory
memory
memory
11
Sharing Memory
• In the old days…
o MS-DOS (1990)
o Original Apple Macintosh (1984)
• Problem: protection
o What prevents process 1 from reading/writing
process 3’s memory?
o What prevents process 2 from reading/writing
OS’s memory?
• In modern days, Virtual Memory protection
o IBM VM-370 (1970)
o UNIX (1975)
o MS Windows (2000)
Process
3’s
memory
Process
2’s
memory
Process
1’s
memory
PCB1
PCB2
PCB3
OS’s
memory 12
Virtual Memory
• Give each process illusion of large address space
o E.g., 32-bit addresses that reference 4 Gig of memory
• Divide the physical memory into fixed-sized pages
o E.g., 4 Kilobyte pages
• Swap pages between disk and main memory
o Bring in a page when a process accesses the space
o May require swapping out a page already in memory
• Keep track of where pages are stored in memory
o Maintain a page table for each process to do mapping
• Treat address as page number and offset in page
o High-order bits refer to the page
o Low-order bits refer to the offset in the page
13
Virtual Memory for a Process
Address
Translation
address
offset in page
offset in page
virtual
page number
physical
page number
0
Virtual Address Space
Physical Address Space
14
Virtual Memory
1
0
2
0
1
2
0
Process 1 Virtual
Address Space
1
1
0
1
1
Process 2 Virtual
Address Space
0
0
OS
V.A.S.
Physical
Address Space
15
Page Tables
3
2
5
Process
Number
2
1
1
6
0
5
1
4
2
1
0
0
4
6
0
3
0
Process 2 Virtual
Address Space
1
2
0
1
Process 1 Virtual
Address Space
0
OS
V.A.S.
1
2
1
1
0
0
Physical
Address Space
16
Page Tables Reside in Memory...
6
0
5
2
0
4
1
3
0
Process 2 Virtual
Address Space
1
2
0
1
Process 1 Virtual
Address Space
0
OS
V.A.S.
1
2
1
1
0
Physical
Address Space
17
Process ID Register
6
3
2
5
2
1
0
0
5
0
1
4
2
1
0
1
4
6
0
3
Process 2
Process ID
2
2
1
address
offset in page
virtual
page number
2
1
1
0
0
Physical
Address Space
18
Protection Between Processes
3
2
5
2
1
1
4
2
1
0
0
6
0
Process 2
Process ID
• User-mode (unprivileged)
process cannot modify
Process ID register
2
address
offset in page
virtual
page number
• If page tables are set up
correctly, process #1 can
access only its own pages
in physical memory
• The operating system sets
up the page tables
19
Paging
3
2
xx
2
1
1
4
2
1
0
0
6
0
3
Process 2
Process ID
2
2
1
address
offset in page
virtual
page number
2
1
1
0
0
Physical
Address Space
20
Page Fault!
3
2
xx
2
1
0
1
4
2
1
0
6
0
3
Process 2
Process ID
2
2
1
movl
0002104, %eax
2
1
1
0
0
Physical
Address Space
21
Write Some Other Page to Disk
2
yy
2
xx
1
1
4
0
2
1
0
2
6
0
3
Process 2
Process ID
2
2
1
movl
0002104, %eax
1
1
0
0
Physical
Address Space
22
Fetch Current Page, Adjust Page Tables
yy
2
3
2
1
0
1
4
2
1
0
6
0
0
3
Process 2
Process ID
2
2
1
movl
0002104, %eax
1
1
0
0
Physical
Address Space
23
Measuring the Memory Usage
Virtual memory usage
Physical memory usage (“resident set size”)
CPU time used by this process so far
Unix
% ps l
F
UID
PID
PPID PRI
VSZ
0
115
7264
7262
17
1400
SN
0:00 -csh
0
115
7290
7264
17 15380 10940
SN
5:52 emacs
0
115
3283
7264
23
RN
0:00 ps l
4716
2864
RSS STAT
812
TIME COMMAND
Windows
24
Context Switch, in More Detail
Process 2
Process 1
Running
Save context
Waiting
..
.
Load context
Waiting
Running
Save context
..
.
Running
Load context
Waiting
25
Context Switch, in More Detail
Process 1
page fault
Running
Waiting
addl %eax, %ecx
movl –8(%ebp), %eax
addl %eax, %ecx
.
.
.
Process
PCB1
PCB2
PCB3
1’s
memory
Running
Registers
OS’s
memory
26
Context Switch, in More Detail
Fault-handler hardware
Process 1
1.
2.
Running
Waiting
addl %eax, %ecx
3.
movl –8(%ebp), %eax
addl %eax, %ecx
4.
.
.
.
Enters privileged mode
Sets EIP to specific location
in operating system
Sets ESP to operatingsystem stack in OS memory
Pushes old (process 1) EIP
and ESP on OS stack
Process
PCB1
PCB2
PCB3
1’s
memory
Running
Registers
OS’s
memory
27
Context Switch, in More Detail
OS software
Process 1
5.
Running
Waiting
6.
addl %eax, %ecx
movl –8(%ebp), %eax
7.
addl %eax, %ecx
.
.
.
Process
PCB1
PCB2
PCB3
1’s
memory
Running
Pops saved EIP,ESP into
PCB1
Copies rest of registers into
PCB1
Sends instructions to disk
drive to fetch page
Registers
OS’s
memory
28
Resuming Some Other Process
OS software
Hardware
8.
9.
12. Pops EIP,ESP into registers
13. Switches back to
unprivileged mode
14. Resumes where process 2
left off last time
Sets process-ID register to 2
Pushes saved EIP,ESP from
PCB2 onto OS stack
10. Copies rest of registers from
PCB2
11. Executes “return from interrupt”
instruction
Process
PCB1
PCB2
PCB3
1’s
memory
Registers
OS’s
memory
29
System call, just another kind of fault
Process 1
system call
Running
Waiting
(privileged instruction)
mov
$4,%eax
int
$0x80
addl %eax, %ecx
.
.
.
Process
PCB1
PCB2
PCB3
1’s
memory
Running
Registers
OS’s
memory
30
Summary
• Abstraction of a “process”
o CPU: a share of CPU resources on a small time scale
o Memory: a complete address space of your own
• OS support for the process abstraction
o
o
o
o
CPU: context switch between processes
Memory: virtual memory (VM) and page replacement
Files: open/read/write, rather than “move disk head”
Protection: ensure process access only its own resources
• Hardware support for the process abstraction
o Context switches, and push/pop registers on the stack
o Switch between privileged and unprivileged modes
o Map VM address and process ID to physical memory
31