Vous êtes sur la page 1sur 29

Operating

Systems
Lecture 36
Syed Mansoor Sarwar
Agenda for Today
 Review of previous lecture
 Paged segmentation

 Examples of paged
segmentation: MULTICS under
GE 345 and OS/2, Windows,
and Linux under Intel CPUs
14 September 2019 © Copyright Virtual University of
Pakistan
Review of Lecture 35
 Sharing in paging
 Segmentation

 Logical to physical address


translation
 Hardware support needed

 Protection and sharing

 Issues with segmentation


14 September 2019 © Copyright Virtual University of
Pakistan
Shared Pages

14 September 2019 © Copyright Virtual University of


Pakistan
Segmentation

CPU

14 September 2019 © Copyright Virtual University of


Pakistan
Example

14 September 2019 © Copyright Virtual University of


Pakistan
Sharing of Segments

14 September 2019 © Copyright Virtual University of


Pakistan
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
14 September 2019 © Copyright Virtual University of
Pakistan
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
14 September 2019 © Copyright Virtual University of
Pakistan
Paged Segmentation

3
4

logical memory
14 September 2019 physical
© Copyright Virtual University
Pakistan
of memory
Paged Segmentation
0
1 1
1 2
3 0
2 .
3 .
3 1 .
4
126
10 3
10
5 page
table 126 2
127

logical memory
© Copyright Virtual University of physical memory
14 September 2019
Pakistan
Paged Segmentation
 Logical address is still <s,d>,
with s used to index the
segment table
 Each segment table entry
consist of the tuple
<segment-length, page-table-base>
 The logical address is legal if
d < segment-length
14 September 2019 © Copyright Virtual University of
Pakistan
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
14 September 2019 © Copyright Virtual University of
Pakistan
Paged Segmentation
p indexes the page table to
retrieve frame, f, and
physical address (f,d’) is
formed
s d
index
segment p d’
table
index page offset within the
14 September 2019 © Copyrighttable
Virtual University of page p
Pakistan
Paged Segmentation

14 September 2019 © Copyright Virtual University of


Pakistan
MULTICS Example
 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?
14 September 2019 © Copyright Virtual University of
Pakistan
MULTICS Example
 Largest segment = 2d bytes
= 216 bytes
 Maximum number of pages per
segment = 216 / 1 K = 64
 |p| = log2 64 bits = 6 bits
 |d’| = log2 1 K = 10 bits
 Maximum number of segments per
process = 2s = 218
14 September 2019 © Copyright Virtual University of
Pakistan
MULTICS Example
s d
18 bits
p d’
6 bits 10 bits

14 September 2019 © Copyright Virtual University of


Pakistan
MULTICS Example
 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?
14 September 2019 © Copyright Virtual University of
Pakistan
MULTICS Example
 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)
14 September 2019 © Copyright Virtual University of
Pakistan
MULTICS Example
 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 + 849
14 September 2019
= 13137
© Copyright Virtual University of
Pakistan
MULTICS Example
15 3921
s d
3 849
0 p d’
1
2
3 12
4

page table for


segment
14 September 2019 15
© Copyright Virtual University of
Pakistan
MULTICS Example
15 3921

3921

3 849

12 12 849

13137
14 September 2019 © Copyright Virtual University of
Pakistan
Intel 80386 Example
 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
14 September 2019 © Copyright Virtual University of
Pakistan
Intel 80386 Example
 4-byte page table entry
 32-entry TLB, covering 32*4K
(128 KB) memory … TLB
Reach

14 September 2019 © Copyright Virtual University of


Pakistan
Intel 80386 Example
16-bit
Selector 32-bit Offset

13-bit Segment #
s g p 2-bit field for
1-bit field to specifying the
specify GDT or privilege level
LDT
14 September 2019 © Copyright Virtual University of
Pakistan
Intel 80386 Example
 Real Mode
20-bit physical address is
obtained by shifting left the
Selector value by four bits and
adding to it the 16-bit effective
address
14 September 2019 © Copyright Virtual University of
Pakistan
Recap of Lecture
 Paged segmentation
 Examples of paged
segmentation: MULTICS
under GE 345 and OS/2,
Windows, and Linux under
Intel CPUs
14 September 2019 © Copyright Virtual University of
Pakistan
Operating
Systems
Lecture 36
Syed Mansoor Sarwar

14 September 2019 © Copyright Virtual University of


Pakistan

Vous aimerez peut-être aussi