Segmentation

About This Presentation
Title:

Segmentation

Description:

... a grouping of related information. data segments for each process ... table and loads new segment descriptor into the register ... virtual address space ... –

Number of Views:22
Avg rating:3.0/5.0
Slides: 13
Provided by: matt51
Category:

less

Transcript and Presenter's Notes

Title: Segmentation


1
Segmentation
  • CS 537 Introduction to Operating Systems

2
Segmentation
  • Segmentation is a technique for breaking memory
    up into logical pieces
  • Each piece is a grouping of related information
  • data segments for each process
  • code segments for each process
  • data segments for the OS
  • etc.
  • Like paging, use virtual addresses and use disk
    to make memory look bigger than it really is
  • Segmentation can be implemented with or without
    paging

3
Segmentation
P1 data
P2 code
print function
P2 data
P1 code
OS Code
OS data
OS stack
logical address space
4
Addressing Segments
  • Lets first assume no paging in the system
  • User generates logical addresses
  • These addresses consist of a segment number and
    an offset into the segment
  • Use segment number to index into a table
  • Table contains the physical address of the start
    of the segment
  • often called the base address
  • Add the offset to the base and generate the
    physical address
  • before doing this, check the offset against a
    limit
  • the limit is the size of the segment

5
Addressing Segments
limit
base
S
o
logical address
segment table
Physical Address
yes

o lt limit
no
error
6
Segmentation Hardware
  • Sounds very similar to paging
  • Big difference segments can be variable in size
  • As with paging, to be effective hardware must be
    used to translate logical address
  • Most systems provide segment registers
  • If a reference isnt found in one of the segment
    registers
  • trap to operating system
  • OS does lookup in segment table and loads new
    segment descriptor into the register
  • return control to the user and resume
  • Again, similar to paging

7
Protection and Sharing
  • Like page tables, each process usually gets its
    own segment table
  • Unlike page tables, there usually exists a global
    segment table for everyone
  • this, however, is usually used by OS
  • Access rights for segment are usually included in
    table entry
  • Multiple processes can share a segment

8
Protection and Sharing
base
limit
200
0
1000
200
1200
1
3500
9000
2000
LDT
base
limit
2300
0
500
2500
2500
1
3000
9000
20000
GDT
9000
base
limit
0
1000
200
1
300
2000
12500
LDT
9
Segmentation Issues
  • Entire segment is either in memory or on disk
  • Variable sized segments leads to external
    fragmentation in memory
  • Must find a space big enough to place segment
    into
  • May need to swap out some segments to bring a new
    segment in

10
Segmentation with Paging
  • Most architectures support segmentation and
    paging
  • Basic idea,
  • segments exist in virtual address space
  • base address in segment descriptor table is a
    virtual address
  • use paging mechanism to translate this virtual
    address into a physical address
  • Now an entire segment does not have to be in
    memory at one time
  • only the part of the segment that we need will be
    in memory

11
Linear Address
  • The base address gotten from the segment
    descriptor table is concatenated with the offset
  • This new address is often referred to as a linear
    address
  • This is the address that is translated by the
    paging hardware

12
virtual address from user
offset
descriptor

limit
base
segment table
linear address
directory
page
offset
page frame
PT directory
page table
directory base
Write a Comment
User Comments (0)
About PowerShow.com