View
19
Download
0
Category
Preview:
Citation preview
1 Fall 1998, Lecture 25
Evaluation of Dynamic Relocation
n Advantages:
● OS can easily move a process
● OS can allow processes to grow
● Hardware changes are minimal, but fairlyfast and efficient
➥Transparency, safety, and efficiency areall satisfied; overhead is small
n Disadvantages:
● Addresses must be translated
● Memory allocation is complex (partitions,holes, fragmentation, etc.)
● If process grows, OS may have to move it
● Process limited to physical memory size
● Process needs contiguous memory space
● Not possible to share code or databetween processes
2 Fall 1998, Lecture 25
Segmentation
n Basic idea — using the programmer’sview of the program, divide the processinto separate segments in memory
● Each segment has a distinct purpose:n Example: code, static data, heap, stack
– Maybe even a separate code and stacksegment for each function
n Segments may be of different sizes
n Stack and heap don’t conflict
● The whole process is still loaded intomemory, but the segments that make upthe process do not have to be loadedcontiguously into memoryn Space within a segment is contiguous
n Each segment has protection bits
● Read-only segment (code)
● Read-write segments (data, heap, stack)
● Allows processes to share code and data
3 Fall 1998, Lecture 25
Segment Addresses
n Virtual (logical) address consists of:
● Segment number
● Offset from beginning of that segment
● Both are generated by the assembler
n What is stored in the instruction?
● Simple method:n Top bits of address specify segment
n Bottom bits of address specify offset
● Implicit segment specification:n Segment is selected implicitly by the
instruction being executed (code vs. data)n Examples: PDP-11, Intel 386/486
● Explicit segment specification:n Instruction prefix can request that a
specific segment be used
n Example: Intel 386/486
4 Fall 1998, Lecture 25
Implementing Segments
n A segment table keeps track of everysegment in a particular process
● Each entry contains base and limit
● Also contains protection information(sharing allowed, read vs. read/write)
n Additional hardware support required:
● Multiple base and limit registers, or
● Segment table base pointer (points totable in memory)
virtual address
seg offset
segment table
base limit
seg
physical address
base offsetaccessphysicalmemory
<address
errorexception
5 Fall 1998, Lecture 25
Segmentation Example
n 2 bits for segment number, 12 bit offset
n Part of segment table:
n Address space mapping for that part:
segment base limit R W0 0x4000 0x6FF 1 01 0x0000 0x4FF 1 12 0x3000 0xFFF 1 14 0 0
0x0000
0x0700
0x1000
0x1500
0x2000
0x3000
0x4000
0x0000
0x0500
0x3000
0x4000
0x5000
0x4700virtualmemory
physicalmemory
0
0 1
1
2
2
6 Fall 1998, Lecture 25
Managing Segments
n When a process is created:
● Allocate space in virtual memory for all ofthe process’s segments
● Create a (mostly empty) segment table,and store it in the process’s PCB
n When a context switch occurs:
● Save the OS’s segment table in the oldprocess’s PCB
● Load OS’s segment table from newprocess’s PCB, allocating space inphysical memory if first time process runs
n If there’s no space in physical memory:
● Compact memory (move segments,update bases) to make contiguous space
● Swap one or more segments out to diskn To run that process again, swap all of its
segments back into memory
7 Fall 1998, Lecture 25
Managing Segments(cont.)
n To enlarge a segment:
● If space above the segment is free, OScan just update the segment’s limit anduse some of that space
● Move this segment to a larger free space
● Swap the segment above this one to disk
● Swap this segment to disk, and bring itback into a larger free space
n Advantages of segmentation:
● Segments don’t have to be contiguous
● Segments can be swapped independently
● Segments allow sharing
n Disadvantages of segmentation:
● Complex memory allocation (first-fit, etc.)
● External fragmentation
Recommended