Chapter 7 Memory Management



Similar documents
Chapter 7 Memory Management

Memory management basics (1) Requirements (1) Objectives. Operating Systems Part of E1.9 - Principles of Computers and Software Engineering

Operating Systems, 6 th ed. Test Bank Chapter 7

OPERATING SYSTEM - MEMORY MANAGEMENT

Memory Management Outline. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging

Memory Allocation. Static Allocation. Dynamic Allocation. Memory Management. Dynamic Allocation. Dynamic Storage Allocation

Memory unit sees only the addresses, and not how they are generated (instruction counter, indexing, direct)

The Deadlock Problem. Deadlocks. Deadlocks. Bridge Crossing Example

OPERATING SYSTEM - VIRTUAL MEMORY

OPERATING SYSTEMS MEMORY MANAGEMENT

Chapter 12 File Management

Chapter 12 File Management. Roadmap

& Data Processing 2. Exercise 3: Memory Management. Dipl.-Ing. Bogdan Marin. Universität Duisburg-Essen

CS5460: Operating Systems

Chapter 12. Paging an Virtual Memory Systems

Chapter 2: OS Overview

Chapter 12 File Management

Chapter 11 I/O Management and Disk Scheduling

Memory Management 1. Memory Management. Multitasking without memory management is like having a party in a closet.

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

Virtual vs Physical Addresses

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

1 File Management. 1.1 Naming. COMP 242 Class Notes Section 6: File Management

Operating Systems. Virtual Memory

Physical Data Organization

2) Write in detail the issues in the design of code generator.

Two Parts. Filesystem Interface. Filesystem design. Interface the user sees. Implementing the interface

Technical Properties. Mobile Operating Systems. Overview Concepts of Mobile. Functions Processes. Lecture 11. Memory Management.

Convenience: An OS makes a computer more convenient to use. Efficiency: An OS allows the computer system resources to be used in an efficient manner.

Record Storage and Primary File Organization

Operating Systems CSE 410, Spring File Management. Stephen Wagner Michigan State University

Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 13-1

CS 61C: Great Ideas in Computer Architecture Virtual Memory Cont.

Chapter 14 MS-DOS Operating System

Chapter 11: File System Implementation. Chapter 11: File System Implementation. Objectives. File-System Structure

Chapter 13 Disk Storage, Basic File Structures, and Hashing.

CHAPTER 17: File Management

Chapter 13. Chapter Outline. Disk Storage, Basic File Structures, and Hashing

Segmentation Segmentation: Generalized Base/Bounds

Outline: Operating Systems

Hyper-V R2: What's New?

INTRODUCTION The collection of data that makes up a computerized database must be stored physically on some computer storage medium.

Chapter 11 I/O Management and Disk Scheduling

CS0206 OPERATING SYSTEMS Prerequisite CS0201, CS0203

Secondary Storage. Any modern computer system will incorporate (at least) two levels of storage: magnetic disk/optical devices/tape systems

Memory management. Chapter 4: Memory Management. Memory hierarchy. In an ideal world. Basic memory management. Fixed partitions: multiple programs

Operating System Tutorial

Chapter 13. Disk Storage, Basic File Structures, and Hashing

COS 318: Operating Systems. Virtual Memory and Address Translation

Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer

How To Write A Page Table

Chapter 2 Basic Structure of Computers. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan

Chapter 8: Structures for Files. Truong Quynh Chi Spring- 2013

Devices and Device Controllers

Unit Storage Structures 1. Storage Structures. Unit 4.3

Computer Architecture

OS OBJECTIVE QUESTIONS

PARALLEL PROCESSING AND THE DATA WAREHOUSE

CS 464/564 Introduction to Database Management System Instructor: Abdullah Mueen

Kernel. What is an Operating System? Systems Software and Application Software. The core of an OS is called kernel, which. Module 9: Operating Systems

XTM Web 2.0 Enterprise Architecture Hardware Implementation Guidelines. A.Zydroń 18 April Page 1 of 12

Disk Space Management Methods

Filing Systems. Filing Systems

Virtual Memory. Virtual Memory. Paging. CSE 380 Computer Operating Systems. Paging (1)

Operating Systems 4 th Class

File-System Implementation

Peter J. Denning, Naval Postgraduate School, Monterey, California

Chapter 6, The Operating System Machine Level

System Virtual Machines

Overview and History of Operating Systems

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

Tech Tip: Understanding Server Memory Counters

W4118: segmentation and paging. Instructor: Junfeng Yang

Traditional IBM Mainframe Operating Principles

The Classical Architecture. Storage 1 / 36

File System & Device Drive. Overview of Mass Storage Structure. Moving head Disk Mechanism. HDD Pictures 11/13/2014. CS341: Operating System

1 The Java Virtual Machine

Storage Management for Files of Dynamic Records

Resource Allocation Schemes for Gang Scheduling

Process Description and Control william stallings, maurizio pizzonia - sistemi operativi

Operating System Components

Part III Storage Management. Chapter 11: File System Implementation

Organization of Programming Languages CS320/520N. Lecture 05. Razvan C. Bunescu School of Electrical Engineering and Computer Science

ASSEMBLY LANGUAGE PROGRAMMING (6800) (R. Horvath, Introduction to Microprocessors, Chapter 6)

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

1 Organization of Operating Systems

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Operating System Software

IA-64 Application Developer s Architecture Guide

Hardware Performance Optimization and Tuning. Presenter: Tom Arakelian Assistant: Guy Ingalls

Computers: Tools for an Information Age

Chapter 3 Operating-System Structures

1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++

Storage and File Structure

University of Dublin Trinity College. Storage Hardware.

Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc()

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

Transcription:

Operating Systems: Internals and Design Principles Chapter 7 Memory Management Eighth Edition William Stallings

Frame Page Segment A fixed-length block of main memory. A fixed-length block of data that resides in secondary memory (such as disk). A page of data may temporarily be copied into a frame of main memory. A variable-length block of data that resides in secondary memory. An entire segment may temporarily be copied into an available region of main memory (segmentation) or the segment may be divided into pages which can be individually copied into main memory (combined segmentation and paging). Table 7.1 Memory Management Terms

Memory Management Requirements Memory management is intended to satisfy the following requirements: Relocation Protection Sharing Logical organization Physical organization

Relocation Programmers typically do not know in advance which other programs will be resident in main memory at the time of execution of their program Active processes need to be able to be swapped in and out of main memory in order to maximize processor utilization Specifying that a process must be placed in the same memory region when it is swapped back in would be limiting may need to relocate the process to a different area of memory

Process control information Entry point to program Process Control Block Program Branch instruction Increasing address values Reference to data Data Current top of stack Stack Figure 7.1 Addressing Requirements for a Process

Protection Processes need to acquire permission to reference memory locations for reading or writing purposes Location of a program in main memory is unpredictable Memory references generated by a process must be checked at run time Mechanisms that support relocation also support protection

Sharing Advantageous to allow each process access to the same copy of the program rather than have their own separate copy Memory management must allow controlled access to shared areas of memory without compromising protection Mechanisms used to support relocation support sharing capabilities

Logical Organization Memory is organized as linear Programs are written in modules modules can be written and compiled independently different degrees of protection given to modules (read-only, execute-only) sharing on a module level corresponds to the user s way of viewing the problem Segmentation is the tool that most readily satisfies requirements

Physical Organization Cannot leave the programmer with the responsibility to manage memory Memory available for a program plus its data may be insufficient Programmer does not know how much space will be available overlaying allows various modules to be assigned the same region of memory but is time consuming to program

Memory Partitioning Memory management brings processes into main memory for execution by the processor involves virtual memory based on segmentation and paging Partitioning used in several variations in some now-obsolete operating systems does not involve virtual memory

Technique Description Strengths Weaknesses Fixed Partitioning Dynamic Partitioning Simple Paging Simple Segmentation Main memory is divided into a number of static partitions at system generation time. A process may be loaded into a partition of equal or greater size. Partitions are created dynamically, so that each process is loaded into a partition of exactly the same size as that process. Main memory is divided into a number of equal-size frames. Each process is divided into a number of equal-size pages of the same length as frames. A process is loaded by loading all of its pages into available, not necessarily contiguous, frames. Each process is divided into a number of segments. A process is loaded by loading all of its segments into dynamic partitions that need not be contiguous. Simple to implement; little operating system overhead. No internal fragmentation; more efficient use of main memory. No external fragmentation. No internal fragmentation; improved memory utilization and reduced overhead compared to dynamic partitioning. Inefficient use of memory due to internal fragmentation; maximum number of active processes is fixed. Inefficient use of processor due to the need for compaction to counter external fragmentation. A small amount of internal fragmentation. External fragmentation. Table 7.2 Memory Management Techniques Virtual Memory Paging As with simple paging, except that it is not necessary to load all of the pages of a process. Nonresident pages that are needed are brought in later automatically. No external fragmentation; higher degree of multiprogramming; large virtual address space. Overhead of complex memory management. Virtual Memory Segmentation As with simple segmentation, except that it is not necessary to load all of the segments of a process. Nonresident segments that are needed are brought in later automatically. No internal fragmentation, higher degree of multiprogramming; large virtual address space; protection and sharing support. Overhead of complex memory management. (Table is on page 315 in textbook)

Operating System 8M 8M Operating System 8M 2M 4M 8M 6M 8M 8M 8M 8M 8M 12M 8M 16M 8M (a) Equal-size partitions (b) Unequal-size partitions Figure 7.2 Example of Fixed Partitioning of a 64-Mbyte Memory

A program may be too big to fit in a partition program needs to be designed with the use of overlays Main memory utilization is inefficient any program, regardless of size, occupies an entire partition internal fragmentation wasted space due to the block of data loaded being smaller than the partition

Operating System Operating System New Processes New Processes (a) One process queue per partition (b) Single queue Figure 7.3 Memory Assignment for Fixed Partitioning

The number of partitions specified at system generation time limits the number of active processes in the system Small jobs will not utilize partition space efficiently

Partitions are of variable length and number Process is allocated exactly as much memory as it requires This technique was used by IBM s mainframe operating system, OS/MVT

Operating System 8M Operating System Operating System Operating System Process 1 20M Process 1 20M Process 1 20M 56M Process 2 14M Process 2 14M 36M 22M Process 3 18M 4M (a) (b) (c) (d) Operating System Operating System Operating System Operating System Process 1 20M Process 1 20M 20M Process 2 14M 6M 14M Process 4 8M 6M Process 4 8M 6M Process 4 8M 6M Process 3 18M Process 3 18M Process 3 18M Process 3 18M 4M 4M 4M 4M (e) (f) (g) (h) Figure 7.4 The Effect of Dynamic Partitioning

Dynamic Partitioning External Fragmentation memory becomes more and more fragmented memory utilization declines Compaction technique for overcoming external fragmentation OS shifts processes so that they are contiguous free memory is together in one block time consuming and wastes CPU time

Placement Algorithms Best-fit chooses the block that is closest in size to the request First-fit begins to scan memory from the beginning and chooses the first available block that is large enough Next-fit begins to scan memory from the location of the last placement and chooses the next available block that is large enough

8M 8M 12M First Fit 12M Last allocated block (14M) 22M 18M Best Fit 6M 2M 8M 6M Allocated block 8M 6M Free block 14M Possible new allocation 14M Next Fit 36M 20 M (a) Before (b) After Figure 7.5 Example Memory Configuration befor e and after Allocation of 16-Mbyte Block

Buddy System Comprised of fixed and dynamic partitioning schemes Space available for allocation is treated as a single block Memory blocks are available of size 2 K words, L K U, where 2 L = smallest size block that is allocated 2 U = largest size block that is allocated; generally 2 U is the size of the entire memory available for allocation

1 Mbyte block 1 M Request 100 K A = 128K 128K 256K 512K Request 240 K A = 128K 128K B = 256K 512K Request 64 K A = 128K C = 64K 64K B = 256K 512K Request 256 K A = 128K C = 64K 64K B = 256K D = 256K 256K Release B A = 128K C = 64K 64K 256K D = 256K 256K Release A 128K C = 64K 64K 256K D = 256K 256K Request 75 K E = 128K C = 64K 64K 256K D = 256K 256K Release C E = 128K 128K 256K D = 256K 256K Release E 512K D = 256K 256K Release D 1M Figure 7.6 Example of Buddy System

1M 512K 256K 128K 64K A = 128K C =64 K 64K 256K D =256 K 256K Leaf node for allocated block Leaf node for unallocated block Non-leaf node Figure 7.7 Tree Representation of Buddy System

Addresses Logical reference to a memory location independent of the current assignment of data to memory Relative address is expressed as a location relative to some known point Physical or Absolute actual location in main memory

Relative address Base Register Process Control Block Adder Program Absolute address Bounds Register Comparator Interrupt to operating system Data Stack Process image in main memory Figure 7.8 Hardware Support for Relocation

Partition memory into equal fixed-size chunks that are relatively small Process is also divided into small fixed-size chunks of the same size Pages chunks of a process Frames available chunks of memory

Frame number 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Main memory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Main memory A.0 A.1 A.2 A.3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Main memory A.0 A.1 A.2 A.3 B.0 B.1 B.2 (a) Fifteen Available Frames (b) Load Process A (c) Load Process B 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Main memory A.0 A.1 A.2 A.3 B.0 B.1 B.2 C.0 C.1 C.2 C.3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Main memory Main memory A.0 0 A.0 A.1 1 A.1 A.2 2 A.2 A.3 3 A.3 4 D.0 5 D.1 6 D.2 C.0 7 C.0 C.1 8 C.1 C.2 9 C.2 C.3 10 C.3 11 D.3 12 D.4 13 14 (d) Load Process C (e) Swap out B (f) Load Process D Figure 7.9 Assignment of Process Pages to Free Frames

Page Table Maintained by operating system for each process Contains the frame location for each page in the process Processor must know how to access for the current process Used by processor to produce a physical address

0 0 1 1 2 2 3 3 Process A page table 0 1 2 Process B page table 0 7 1 8 2 9 3 10 Process C page table 0 4 1 5 2 6 3 11 4 12 Process D page table 13 14 Free frame list Figure 7.10 Data Structures for the Example of Figure 7.9 at Time Epoch (f)

Page 2 Internal fragmentation User process (2700 bytes) Page 1 Segment 1 1950 bytes 478 752 Page 0 Segment 0 750 bytes Relative address = 1502 0000010111011110 Logical address = Page# = 1, Offset = 478 0000010111011110 Logical address = Segment# = 1, Offset = 752 0001001011110000 (a) Partitioning (b) Paging (page size = 1K) (c) Segmentation Figure 7.11 Logical Addresses

16-bit logical address 6-bit page # 10-bit offset 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 16-bit logical address 0 6-bit page # 0 000101 10-bit offset 1 000110 2 011001 Process 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 page table 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 (a) Paging 16-bit physical address 0 000101 12-bit offset 1 000110 0 0 0 12 011001 0 1 0 1 1 1 1 0 0 0 0 4-bit segment # Process page table 0 1 16-bit logical address Length Base 001011101110 0000010000000000 011110011110 0010000000100000 + Process segment table 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 (a) Paging 16-bit physical address 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 (b) Segmentation 16-bit physical address 4-bit segment # 16-bit logical address Figure 7.12 Examples of Logical-to-Physical Address Translation

Segmentation A program can be subdivided into segments may vary in length there is a maximum length Addressing consists of two parts: segment number an offset Similar to dynamic partitioning Eliminates internal fragmentation

Segmentation Usually visible Provided as a convenience for organizing programs and data Typically the programmer will assign programs and data to different segments For purposes of modular programming the program or data may be further broken down into multiple segments the principal inconvenience of this service is that the programmer must be aware of the maximum segment size limitation

Address Translation Another consequence of unequal size segments is that there is no simple relationship between logical addresses and physical addresses The following steps are needed for address translation: Extract the segment number as the leftmost n bits of the logical address Use the segment number as an index into the process segment table to find the starting physical address of the segment Compare the offset, expressed in the rightmost m bits, to the length of the segment. If the offset is greater than or equal to the length, the address is invalid The desired physical address is the sum of the starting physical address of the segment plus the offset

(a) Paging 16-bit physical address 4-bit segment # 16-bit logical address 12-bit offset 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 1 Length Base 001011101110 0000010000000000 011110011110 0010000000100000 + Process segment table 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 (b) Segmentation 16-bit physical address Figure 7.12 Examples of Logical-to-Physical Address Translation

Summary Memory management requirements relocation protection sharing logical organization physical organization Paging Memory partitioning fixed partitioning dynamic partitioning buddy system relocation Segmentation