Presentation on theme: "Shared Pages Segmentation CPU Example Sharing of Segments."— Presentation transcript:
Sharing of Segments
Protection Associate valid/invalid bit with each segment table entry to indicate if the referenced segment is part of the process address space or not Read, write, and execute bits to define legal operations on a segment
Paged Segmentation Divide every segment in a process into fixed size pages Need for a page table per segment CPU’s memory management unit must support both segmentation and paging
Paged Segmentation Logical address is still, with s used to index the segment table Each segment table entry consist of the tuple The logical address is legal if d < segment-length
Paged Segmentation Segment offset, d, is partitioned into two parts: p and d’, where p is used to index the page table associated with segment, s, and d’ is used as offset within a page
Paged Segmentation p indexes the page table to retrieve frame, f, and physical address (f,d’) is formed sd p d’ index segment table index page table offset within the page p
GE 345 processor Logical address = 34 bits Page size = 1 KB s is 18 bits and d is 16 bits Size of p and d’, largest segment size, and max. number of segments per process?
Largest segment= 2 d bytes = 2 16 bytes Maximum number of pages per segment= 2 16 / 1 K = 64 | p | = log 2 64 bits= 6 bits | d’ | = log 2 1 K= 10 bits Maximum number of segments per process= 2 s = 2 18
sd p d’ 18 bits 6 bits10 bits
Consider a process with its segment 15 having 5096 bytes. The process generates a logical address (15,3921). Is it a legal address? How many pages does the segment have? What page does the logical address refer to?
Is it a legal address? Yes How many pages does the segment have? ceiling[5096/1024]= 5 What page does the logical address refers to? ceiling[3921/1024]= 4 (i.e., page number 3)
What are the value of d’ and the physical address if page number 3 (i.e., the fourth page) is in frame 12? d’ = 3921 – 3*1K= 849 Physical address= 12*1K = 13137
s pd’ d page table for segment
IBM OS/2, Microsoft Windows, and Linux Paged segmentation with two- level paging Logical address = 48 bits 16-bit selector and 32-bit offset Page size = 4 KB