A. Frank - P. Weisberg Operating Systems Simple/Basic Segmentation.

Slides:



Advertisements
Similar presentations
Memory.
Advertisements

Paging Hardware With TLB
CSC 322 Operating Systems Concepts Lecture - 18: by Ahmed Mumtaz Mustehsan Special Thanks To: Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 9: Memory Management Background Swapping Contiguous Allocation Paging Segmentation.
Main Memory CS Memory Management1. Background Program must be brought (from disk) into memory and placed within a process for it to be run Main.
Module 9: Memory Management
Chapter 8.3: Memory Management
Memory Management (II)
Background A program must be brought into memory and placed within a process for it to be executed. Input queue – collection of processes on the disk that.
Memory Management.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 8: Main Memory.
Chapter 8: Main Memory.
Chapter 7: Main Memory CS 170, Fall Memory Management Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation.
Chapter 91 Translation Lookaside Buffer (described later with virtual memory) Frame.
A. Frank - P. Weisberg Operating Systems Simple/Basic Paging.
Silberschatz, Galvin and Gagne  Operating System Concepts Segmentation Memory-management scheme that supports user view of memory. A program.
Main Memory. Background Program must be brought (from disk) into memory and placed within a process for it to be run Main memory and registers are only.
Chapter 3 Memory Management 3.7 Segmentation. A compiler has many tables that are built up as compilation proceeds, possibly including: The source text.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 8: Main Memory.
Chapter 8: Main Memory. 8.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 22, 2005 Chapter 8: Memory Management Background.
Chapter 8: Main Memory.
 Background  Swapping  Contiguous Allocation  Paging  Segmentation  Segmentation with Paging.
Chapter 8: Main Memory. Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 9: Memory Management Background Swapping Contiguous Allocation Paging Segmentation.
Memory Management -1 Background Swapping Memory Management Schemes
Silberschatz and Galvin  Operating System Concepts Module 8: Memory Management Background Logical versus Physical Address Space Swapping Contiguous.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 8: Main Memory.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-7 Memory Management (1) Department of Computer Science and Software.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 8: Main Memory.
8.4 paging Paging is a memory-management scheme that permits the physical address space of a process to be non-contiguous. The basic method for implementation.
Page 110/20/2015 CSE 30341: Operating Systems Principles So far…  Page  Fixed size pages solve page allocation problem (and external fragmentation) 
Background Program must be brought into memory and placed within a process for it to be run. Input queue – collection of processes on the disk that are.
Memory Management 1. Background Programs must be brought (from disk) into memory for them to be run Main memory and registers are only storage CPU can.
Silberschatz and Galvin  Operating System Concepts Module 8: Memory Management Background Logical versus Physical Address Space Swapping Contiguous.
Paging Example What is the data corresponding to the logical address below:
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 8: Main Memory.
Chapter 8: Memory-Management Strategies. 8.2 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Chapter 8: Memory-Management Strategies.
8.1 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Implementation of Page Table Page table is kept in main memory Page-table base.
CE Operating Systems Lecture 14 Memory management.
1 Memory Management (b). 2 Paging  Logical address space of a process can be noncontiguous; process is allocated physical memory whenever the latter.
Chapter 4 Memory Management Segmentation. (a) One address space. (b) Separate I and D spaces. Separate Instruction and Data Spaces.
Chapter 8: Memory-Management Strategies. 8.2 Silberschatz, Galvin and Gagne ©2005 Operating System Principles Chapter 8: Memory-Management Strategies.
Chapter 8: Memory-Management Strategies. 8.2Operating System Principles Chapter 8: Memory-Management Strategies Background Swapping Contiguous Memory.
9.1 Operating System Concepts Paging Example. 9.2 Operating System Concepts.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 9: Memory Management Background Swapping Contiguous Allocation Paging Segmentation.
Chapter 8: Main Memory. Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation.
CSC 360, Instructor Kui Wu Memory Management I: Main Memory.
Memory Management. Background Memory consists of a large array of words or bytes, each with its own address. The CPU fetches instructions from memory.
8.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Fragmentation External Fragmentation – total memory space exists to satisfy.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 8: Memory Management Strategies.
1 Memory Management n In most schemes, the kernel occupies some fixed portion of main memory and the rest is shared by multiple processes.
Chapter 8: Memory Management Background Swapping Contiguous Allocation Paging Segmentation Segmentation with Paging.
Chapter 8: Memory Management. 8.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 8: Memory Management Background Swapping Contiguous.
Chapter 2: Memory Management Background Swapping Contiguous Allocation Paging Segmentation Segmentation with Paging Operating System Concepts.
W4118 Operating Systems Instructor: Junfeng Yang.
Main Memory: Paging and Segmentation CSSE 332 Operating Systems Rose-Hulman Institute of Technology.
Module 9: Memory Management
Chapter 8: Memory Management
COMBINED PAGING AND SEGMENTATION
Simple/Basic Segmentation
Paging and Segmentation
Module 9: Memory Management
Segmentation Lecture November 2018.
Main Memory Background Swapping Contiguous Allocation Paging
Main Memory Session - 16.
Lecture 3: Main Memory.
Chapter 8: Memory Management strategies
Lecture 35 Syed Mansoor Sarwar
Presentation transcript:

A. Frank - P. Weisberg Operating Systems Simple/Basic Segmentation

2 A. Frank - P. Weisberg Real Memory Management Background Memory Management Requirements Fixed/Static Partitioning Variable/Dynamic Partitioning Simple/Basic Paging Simple/Basic Segmentation Segmentation with Paging

3 A. Frank - P. Weisberg Simple/Basic Segmentation Paging division is arbitrary; no natural/logical boundaries for protection/sharing. Segmentation supports user’s view of a program. A program is a collection of segments – logical units – such as: main program, subprogram, class procedure, function, object, method, local variables, global variables, common block, stack, symbol table, arrays

4 A. Frank - P. Weisberg User’s View of a Program

5 A. Frank - P. Weisberg A compiler has many tables that are built up as compilation proceeds, possibly including: 1.The source text being saved for the printed listing (on batch systems). 2.The symbol table – the names and attributes of variables. 3.The table containing integer, floating-point constants used. 4.The parse tree, the syntactic analysis of the program. 5.The stack used for procedure calls within the compiler. Example of Segmentation Need

6 A. Frank - P. Weisberg One-dimensional address space In a one-dimensional address space with growing tables, one table may bump into another.

7 A. Frank - P. Weisberg Segmentation allows each table to grow or shrink independently of the other tables. Segmentation Solution

8 A. Frank - P. Weisberg Dynamics of Simple Segmentation (1) Each program is subdivided into blocks of non- equal size called segments. When a process gets loaded into main memory, its different segments can be located anywhere. Each segment is fully packed with instructions/data; no internal fragmentation. There is external fragmentation; it is reduced when using small segments.

9 A. Frank - P. Weisberg Logical view of simple segmentation user spacephysical memory space

10 A. Frank - P. Weisberg Dynamics of Simple Segmentation (2) In contrast with paging, segmentation is visible to the programmer: –provided as a convenience to organize logically programs (example: data in one segment, code in another segment). –must be aware of segment size limit. The OS maintains a segment table for each process. Each entry contains: –the starting physical addresses of that segment. –the length of that segment (for protection).

11 A. Frank - P. Weisberg Example of Segmentation

12 Logical address in segmentation A. Frank - P. Weisberg

13 A. Frank - P. Weisberg Logical address used in segmentation When a process enters the Running state, a dedicated register gets loaded with the starting address of the process’s segment table. Presented with a logical address (segment number, offset) = (s, d), the CPU indexes (with s) the segment table to obtain the starting physical address b and the length l of that segment. The physical address is obtained by adding d to b (in contrast with paging): –the hardware also compares the offset d with the length l of that segment to determine if the address is valid.

14 A. Frank - P. Weisberg Logical-to-Physical Address Translation in segmentation

15 A. Frank - P. Weisberg Segmentation Architecture Logical address consists of a two tuple:, Segment table – maps two-dimensional physical addresses; each table entry has: –base – contains the starting physical address where the segments reside in memory. –limit – specifies the length of the segment. Segment-table base register (STBR) points to the segment table’s location in memory. Segment-table length register (STLR) indicates number of segments used by a program; segment-number s is legal if s < STLR.

16 A. Frank - P. Weisberg Address Translation Architecture

17 A. Frank - P. Weisberg Protection in Segmentation Protection – with each entry in segment table associate: –validation bit = 0  illegal segment –read/write/execute privileges Protection bits associated with segments; code sharing occurs at segment level. Since segments vary in length, memory allocation is a dynamic storage-allocation problem.

18 A. Frank - P. Weisberg Sharing in Segmentation Systems Segments are shared when entries in the segment tables of 2 different processes point to the same physical locations. Example: the same code of a text editor can be shared by many users: –Only one copy is kept in main memory. But each user would still need to have its own private data segment.

19 Shared Segments Example

20 A. Frank - P. Weisberg Simple segmentation/paging comparison (1) Segmentation is visible to the programmer whereas paging is transparent. Naturally supports protection/sharing. Segmentation can be viewed as commodity offered to the programmer to logically organize a program into segments while using different kinds of protection (example: execute-only for code but read-write for data).

21 A. Frank - P. Weisberg

22 A. Frank - P. Weisberg Simple segmentation/paging comparison (2) Segments are variable-size; Pages are fixed- size. Segmentation requires more complicated hardware for address translation than paging. Segmentation suffers from external fragmentation. Paging only yields a small internal fragmentation. Maybe combine Segmentation and Paging?

23 A. Frank - P. Weisberg Example: MULTICS The MULTICS system solved problems of external fragmentation and lengthy search times by paging the segments. Solution differs from pure segmentation in that the segment-table entry contains not the base address of the segment, but rather the base address of a page table for this segment. Example in the next slide.

24 A. Frank - P. Weisberg MULTICS Address Translation Scheme

25 A. Frank - P. Weisberg Example: The Intel Pentium Supports both segmentation and segmentation with paging. CPU generates logical address –Given to segmentation unit which produces linear addresses. –Linear address given to paging unit: Which generates physical address in main memory. Paging units form equivalent of MMU.

26 A. Frank - P. Weisberg Logical to Physical Address Translation

27 A. Frank - P. Weisberg Intel Pentium Segmentation

28 A. Frank - P. Weisberg Pentium Paging Architecture

29 A. Frank - P. Weisberg Three-level Paging in Linux