Operating System Concepts Lecture Notes -- L25

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