0% found this document useful (0 votes)
160 views

Chapter 8: Main Memory: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition

Operating System

Uploaded by

Jari Abbas
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
160 views

Chapter 8: Main Memory: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition

Operating System

Uploaded by

Jari Abbas
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Chapter 8: Main Memory

Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 8: Memory Management
● Background
● Swapping
● Contiguous Memory Allocation
● Segmentation
● Paging
● Structure of the Page Table
● Example: The Intel 32 and 64-bit Architectures
● Example: ARM Architecture

Operating System Concepts – 9th Edition 8.2 Silberschatz, Galvin and Gagne ©2013
Objectives

● To provide a detailed description of various ways of


organizing memory hardware
● To discuss various memory-management techniques,
including paging and segmentation
● To provide a detailed description of the Intel Pentium, which
supports both pure segmentation and segmentation with
paging

Operating System Concepts – 9th Edition 8.3 Silberschatz, Galvin and Gagne ©2013
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 storage CPU can
access directly
● Memory unit only sees a stream of addresses + read
requests, or address + data and write requests
● Register access in one CPU clock (or less)
● Main memory can take many cycles, causing a stall
● Cache sits between main memory and CPU registers
● Protection of memory required to ensure correct operation

Operating System Concepts – 9th Edition 8.4 Silberschatz, Galvin and Gagne ©2013
Base and Limit Registers
● A pair of base and limit registers define the logical address space
● CPU must check every memory access generated in user mode to
be sure it is between base and limit for that user

Operating System Concepts – 9th Edition 8.5 Silberschatz, Galvin and Gagne ©2013
Hardware Address Protection

Operating System Concepts – 9th Edition 8.6 Silberschatz, Galvin and Gagne ©2013
Address Binding
● Programs on disk, ready to be brought into memory to execute form an
input queue
● Without support, must be loaded into address 0000
● Inconvenient to have first user process physical address always at 0000
● How can it not be?
● Further, addresses represented in different ways at different stages of a
program’s life
● Source code addresses usually symbolic
● Compiled code addresses bind to relocatable addresses
4 i.e. “14 bytes from beginning of this module”
● Linker or loader will bind relocatable addresses to absolute addresses
4 i.e. 74014
● Each binding maps one address space to another

Operating System Concepts – 9th Edition 8.7 Silberschatz, Galvin and Gagne ©2013
Binding of Instructions and Data to Memory

● Address binding of instructions and data to memory addresses


can happen at three different stages
● Compile time: If memory location known a priori, absolute
code can be generated; must recompile code if starting
location changes
● Load time: Must generate relocatable code if memory
location is not known at compile time
● Execution time: Binding delayed until run time if the
process can be moved during its execution from one
memory segment to another
4 Need hardware support for address maps (e.g., base and
limit registers)

Operating System Concepts – 9th Edition 8.8 Silberschatz, Galvin and Gagne ©2013
Multistep Processing of a User Program

Operating System Concepts – 9th Edition 8.9 Silberschatz, Galvin and Gagne ©2013
Logical vs. Physical Address Space

● The concept of a logical address space that is bound to a


separate physical address space is central to proper memory
management
● Logical address – generated by the CPU; also referred to as
virtual address
● Physical address – address seen by the memory unit
● Logical and physical addresses are the same in compile-time
and load-time address-binding schemes; logical (virtual) and
physical addresses differ in execution-time address-binding
scheme
● Logical address space is the set of all logical addresses
generated by a program
● Physical address space is the set of all physical addresses
generated by a program

Operating System Concepts – 9th Edition 8.10 Silberschatz, Galvin and Gagne ©2013
Memory-Management Unit (MMU)
● Hardware device that at run time maps virtual to physical
address
● Many methods possible, covered in the rest of this chapter
● To start, consider simple scheme where the value in the
relocation register is added to every address generated by a
user process at the time it is sent to memory
● Base register now called relocation register
● MS-DOS on Intel 80x86 used 4 relocation registers
● The user program deals with logical addresses; it never sees the
real physical addresses
● Execution-time binding occurs when reference is made to
location in memory
● Logical address bound to physical addresses

Operating System Concepts – 9th Edition 8.11 Silberschatz, Galvin and Gagne ©2013
Dynamic relocation using a relocation register

● Routine is not loaded until it is


called
● Better memory-space
utilization; unused routine is
never loaded
● All routines kept on disk in
relocatable load format
● Useful when large amounts of
code are needed to handle
infrequently occurring cases
● No special support from the
operating system is required
● Implemented through program
design
● OS can help by providing libraries
to implement dynamic loading

Operating System Concepts – 9th Edition 8.12 Silberschatz, Galvin and Gagne ©2013
Dynamic Linking
● Static linking – system libraries and program code combined by
the loader into the binary program image
● Dynamic linking –linking postponed until execution time
● Small piece of code, stub, used to locate the appropriate
memory-resident library routine
● Stub replaces itself with the address of the routine, and
executes the routine
● Operating system checks if routine is in processes’ memory
address
● If not in address space, add to address space
● Dynamic linking is particularly useful for libraries
● System also known as shared libraries
● Consider applicability to patching system libraries
● Versioning may be needed

Operating System Concepts – 9th Edition 8.13 Silberschatz, Galvin and Gagne ©2013
Swapping
● A process can be swapped temporarily out of memory to a
backing store, and then brought back into memory for
continued execution
● Total physical memory space of processes can exceed
physical memory
● Backing store – fast disk large enough to accommodate
copies of all memory images for all users; must provide direct
access to these memory images
● Roll out, roll in – swapping variant used for priority-based
scheduling algorithms; lower-priority process is swapped out so
higher-priority process can be loaded and executed
● Major part of swap time is transfer time; total transfer time is
directly proportional to the amount of memory swapped
● System maintains a ready queue of ready-to-run processes
which have memory images on disk

Operating System Concepts – 9th Edition 8.14 Silberschatz, Galvin and Gagne ©2013
Swapping (Cont.)
● Does the swapped out process need to swap back in to same
physical addresses?
● Depends on address binding method
● Plus consider pending I/O to / from process memory space
● Modified versions of swapping are found on many systems (i.e.,
UNIX, Linux, and Windows)
● Swapping normally disabled
● Started if more than threshold amount of memory allocated
● Disabled again once memory demand reduced below
threshold

Operating System Concepts – 9th Edition 8.15 Silberschatz, Galvin and Gagne ©2013
Schematic View of Swapping

Operating System Concepts – 9th Edition 8.16 Silberschatz, Galvin and Gagne ©2013
Context Switch Time including Swapping

● If next processes to be put on CPU is not in memory, need to


swap out a process and swap in target process
● Context switch time can then be very high
● 100MB process swapping to hard disk with transfer rate of
50MB/sec
● Swap out time of 2000 ms
● Plus swap in of same sized process
● Total context switch swapping component time of 4000ms
(4 seconds)
● Can reduce if reduce size of memory swapped – by knowing
how much memory really being used
● System calls to inform OS of memory use via
request_memory() and release_memory()

Operating System Concepts – 9th Edition 8.17 Silberschatz, Galvin and Gagne ©2013
Context Switch Time and Swapping (Cont.)

● Other constraints as well on swapping


● Pending I/O – can’t swap out as I/O would occur to wrong
process
● Or always transfer I/O to kernel space, then to I/O device
4 Known as double buffering, adds overhead
● Standard swapping not used in modern operating systems
● But modified version common
4 Swap only when free memory extremely low

Operating System Concepts – 9th Edition 8.18 Silberschatz, Galvin and Gagne ©2013
Contiguous Allocation
● Main memory must support both OS and user processes
● Limited resource, must allocate efficiently
● Contiguous allocation is one early method
● Main memory usually into two partitions:
● Resident operating system, usually held in low memory with
interrupt vector
● User processes then held in high memory
● Each process contained in single contiguous section of
memory

Operating System Concepts – 9th Edition 8.19 Silberschatz, Galvin and Gagne ©2013

You might also like