Lecture Notes for Operating Systems
Segmented Memory, 15 November 2000
- separate but related address spaces
- better protection - finer granularity
- better utilization - less empty space
- sharing
- segments
- variable length virtual memory
- virtual address - segment number, segment offset
- advantages over vm
- simplified linking and loading
- local changes stay local
- sharing is easy
- pure segmentation
- variable length
- partitionless multiprogramming
- external fragmentation
- paged segmentation - multics
- 18-bit segment id, 16-bit segment offset
- segment table
- paged
- segment descriptor - page table physical addr, seg len in pages,
page size (1k or 64 bytes), paged bit, protection bits
- virtual address: segment id, (page no, page offset)
- tlb - 16 page cache
- example - intel
- segment descriptor - 16-bit segment id, 30-bit segment offset
- local and global descriptor tables; process and system address spaces
- segment selector - 13 bit description index, 1 bit global-local
indicator, 2 bit protection level
- segment descriptor - 32-bit base addr, 20-bit limit, limit units,
segment size, paged bit, privilege, system-user, type
- vm -> (16-bit segment id, 30-bit offset) -> 32-bit base + offset =
linear address -> physical address (no paging) or virtual address (paging)
- paging - two-level tables, directory to table to page
- 32-bit vm -> 10-bit directory index, 10-bit page index, 12-bit
offset
- page table tlb
- protection rings or layers
- outward access acceptable, inward accesses prohibited
- protected procedure calls allow low to high procedure calls -
gateways, traps and interrupts.
This page last modified on 20 November 2000.