Memory Management

Download Report

Transcript Memory Management

Chapter 6
Structure of Processes
Process State and Transition
Data Structure for Process
Layout of System Memory
THE DESIGN OF THE UNIX OPERATING SYSTEM
Maurice J. bach Prentice Hall
1
Process States and Transitions
User Running
interrupt,
interrupt return
9
4
Asleep
in
Memory
sleep
swap
out
Sleep, Swapped
7
reschedule
process
3
Ready to
Run in Memory
enough mem
Created
swap
out
wakeup
Preempted
Kernel
Running
preempt
wakeup
6
return
to user
return
2
Zombie
1
system call,
interrupt
8
swap
in
5
fork
not enough mem
(swapping system only)
Ready to Run, Swapped
2
Data Structures for Process
Kernel Process
Table
Kernel Region
Table
A Process
Per Process Region Table
Text
File Descriptor Table
Data
Stack
U Area
3
Data Structure for Process (contd.)
per process
region table
Kernel region table
u area
Kernel
process table
main memory
4
State of a Process
– Process table entry
• Contains general fields of processes that must be
always be accessible to the kernel
– U area
• further characteristics of the process only need to be
accessible to the running process itself
5
Process table entry
• State field: user running, kernel running etc.
• Fields that allow the kernel to locate the
process and u area. Requires while context
switch
• Process size : kernel know how much space
to allocate for the process.
• User ID
• Process ID
6
Process table entry (contd.)
• Event descriptor.
– Used when the process is in the "sleep" state.
• Scheduling parameters.
– Allow the kernel to determine the order in which
processes move to the states "kernel running" and "user
running”
• A signal field.
– keeps the signals sent to a process but not yet handled.
• Various timers: process execution time, resource
utilization etc.
7
U Area
• A pointer to the process table entry
• User IDs
• various Timer:
– Execution time in user mode
– Execution Time in kernel mode
• An error field: keeps error during system call
• Return value field: result of system call
8
U Area (contd.)
• I/O parameters
– Amount of data transfer
– Address of source and target etc.
• The current directory and current root
• User file descriptor table
• Limit fields
– Restrict process size
– Restrict size of the file it can write
• The control terminal field:
– login terminal associated with the process, if one exists
• An array indicates how the process wishes to react to
signal
9
Per Process Region Table (Pregion)
• Each pregion entry points to the kernel
region table
• Starting virtual (absolute) address of the
region
• Permission filed:
– read-only, read-write, read-execute
10
Kernel Region table
• Kernel region table contains the pointer to
the page table which keeps the physical
memory address
11
Regions
Region
Per Proc Region Tables
(Virtual Addresses)
Process
A
Text
8K
b
Data 16K
c
Stack32K
a
Text
4K
Process
Data 8K
B
Stack
32K
e
d
<Processes and Regions>
12
Pages and Page Tables
Logical Page Number
0
1
2
3
Physical Page Number
177
54
209
17
13
Pages and Page Tables (contd.)
Per Proc Region Table
Page Tables(Physical Addresses)
Text
8K
empty
Data 32K
137K
Stack 64K
852K
87K
764K
541K
552K
433K
783K
727K
333K
986K
941K
897K
1096K
Virtual Addresses
.
.
.
.
.
.
.
.
2001K
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
<Mapping Virtual Addresses to Physical Address>
14