4 Main Memory Management

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "4 Main Memory Management"

Transcription

1 4 Main Memory Management 4.1 Introduction A large part of the OS s responsibility is organising main memory for processes. GOAL pack as many processes into memory as possible so that the processor will never be stuck for work. There are a number of necessary characteristics of good memory management (MM) software. First we look at those (section 4.2). Then we look at the simple management schemes in order to get used to the fundamental concepts of MM (section 4.3). 4.2 Characteristics Four characteristics of good Memory Management software 1. Relocation 2. Protection 3. Sharing 4. Neat mapping between Logical org. and Physical org Relocation It is necessary that a process can be moved around in memory, i.e. a memory manager must allow process relocation. Because too strict to demand that a process always gets loaded into the same space; need to allow processes that have been suspended (swapped out) to be unsuspended (swapped in) and assigned different memory space; cannot anticipate what memory space processes will require on any particular run (may need to relocate to a larger space). Program code however contains references to memory locations. So the memory manager, if it is to be able to move processes about, must have some way of mapping addresses in the program code (logical addresses) onto the actual addresses where the data is stored (physical addresses) Protection Processes need to be protected from interference by other processes (intentional or accidental). So every time a memory reference (read or write) is made it must be checked to ensure it is legal when the reference is made (i.e. at run time). This is a lot of checking and the processor hardware does this work.

2 4.2.3 Sharing Sometimes processes want to be interfered with. Sometimes processes share their data and code with others. Protection must be flexible enough to allow this. That is, protection must facilitate sharing Mapping between Logical Organisation & Physical Organisation Processes are organised into modules; some of these are modifiable (e.g. data), some (e.g. code) are not. To the programmer a process is loaded into memory as one contiguous chunk and run. This is known as the logical view. In reality, some of the process is stored in memory (which is organised as a linear array of words (there are usually 4 bytes in each word) addressed from say, 0000 to NNNN.) And some of the process is actually stored on disk and moved into main memory when needed. This is known as the physical view. It is the MM s responsibility to hide this from the programmer so that she doesn t have to worry about it. Put another way The physical organisation needs to be managed in such a way that it looks to the programmer as if there is an infinite amount of contiguous main memory available (as far as practicable) If the OS and the hardware are able to deal with this then there are advantages 1. Modules can be written and compiled separately with inter-module reference being resolved at run time. E.g. two modules of an application can be written, compiled and tested by different programmers and linked for running. 2. Different protection can be given to different modules (read only, execute only, etc.) 3. Module sharing is possible. The general advantage is that the more the memory seems like the way the programmer views it, the easier it is for the programmer to use it effectively and correctly. 4.3 Simple Management Schemes All of these simple schemes assume that the entire process is loaded into memory. In reality usually only a part of a process is in memory at any one time. But these simple schemes allow us to look at the fundamental concepts without undue complication. For each scheme we will examine how it loads processes, how it deals with addressing and protection, and how efficiently it uses the available RAM space.

3 4.3.1 Partitioning Memory can be divided up into partitions. Partitioning allows the memory to be divided up among several processes. These partitions can be static or dynamic Static The partitions are decided at system configuration time and cannot be altered on the fly (inflexible). There can be equal or unequal sized partitions. Dynamic The partitions are made and remade as the system is running.

4 Equal Sized Static partitions Loading Programs are loaded into any available partition. If a program doesn t fit then the programmer must find some way around that (e.g. overlays). Addressing (& protection) Simple, use Base-Limit registers (a hardware mechanism).

5 For example Consider this silly program int i=250; { i--; } while (i!=0); Say this program is written in assembly language as below as if it started at address and say the program and data is bytes long (i.e ). Logical Address Instruction 0000 load A,012A 0001 sub A, cmp A,# jne A 250 Now say that the program is actually loaded into RAM starting at address 15BA, i.e. the program is loaded into a partition starting at address 15BA. This is the base address. Physical Address 15BA Instruction load A,012A 15BB sub A, BC cmp A,#0 15BD jne E3 1 16E4 250 The data that the program assumes is at address 0129 is now actually stored at 16E3 because 15BA+0129=16E3. When the process is to run, a base register is given the starting address of the program (15BA) and a limit register gets the length of the process (200). All of the addresses referred to in the program s operands are called relative addresses. Relative addresses are particular examples of logical addresses (i.e.

6 references to memory locations independent of the current location in memory). The logical addresses need to be mapped onto the actual addresses in memory when the program is being run. These actual addresses are called physical addresses. This is how If logical_address > limit then trap to OS (memory error) else physical_address = logical_address + base In this example, when the instruction load A,012A is run, the logical address 012A is less than length stored in the limit register (0200) and so will be mapped by adding it to the base address 15BA to get the physical address 16E4. The hardware that implements this logic is loosely referred to as Base-Limit Registers. This mapping using base-limit registers is very simple, easy to understand, and easy to build). Also it facilitates program loading (base and limit are set to partition start address and program size respectively), address mapping (logical addresses are manipulated to yield physical addresses), and dynamic relocation (the mapping is redone whenever the memory reference is made). So why not use simple equal sized partitions and base-limit registers? Base-limit registers are fine (for the moment) but equal sized partitions are awkward because Programs must fit in the partition; inefficient use of memory. If, as is common, a process does not use all of its partition then the extra is wasted. This kind of waste is called Internal Fragmentation. Internal fragmentation occurs when a process s allocated space is not all used and thus cannot be used by another process Unequal Sized Static partitions Loading Because there are many different sized partitions the following question arises How do you decide which partition to use? (see section later). These unequal sized partitions help to reduce internal fragmentation because now there is a choice some partitions are big and some are smaller. Big processes can use big partitions and smaller processes can use smaller partitions and so waste is reduced. Addressing (& protection) Same as before use Base-Limit registers.

7 But still disadvantages because the partitions are still static (i.e. partitions predetermined). So it is still inflexible. may rarely or never use very large and very small partitions => waste. This waste is called External Fragmentation. External Fragmentation occurs when a portion of unallocated space is unusable/unused because it is too small/large. One solution to the external fragmentation problem is Compaction. That means moving processes together so that all the free fragments can be gathered up into a useful chunk. But this cannot be done when partitions are static. In any case it is time consuming. An example system, which used static partitions of unequal size, was IBM s mainframe Operating System OS/MFT (Multi-programming with Fixed number of Tasks.) [1960s] Dynamic partitions Here the size of a partition is determined at process load time based on the process s exact requirement. This is more flexible and eliminates internal fragmentation Loading

8 What is the best way to allocate available partitions? (This question applies to unequal sized static partitions also.) Initially, it is easy as memory is allocated as requested. Later, as processes are swapped in and out there will be a variety of candidate memory holes within which a partition can be made to accommodate an incoming process. Which is best? There are four candidate Memory Allocation Algorithms for deciding this. The algorithms are compared based on the degree of external fragmentation and the amount of searching. 1. Best fit Allocate the block of memory closest in size to the process. Leaves the smallest possible fragment unused and quickly builds up a collection of these. Thus need compaction more frequently. Slow (Search is longer as it must check all partitions). 2. Worst fit Allocate the largest block of memory that fits the process. The reasoning is that this will leave a larger (and thus more usable) chunk as leftover. Slow (Search is longer as it must check all partitions). 3. First fit (Next fit) Searching from the start (or last space allocated) of user memory, allocate the first block of memory that fits the process. Simplest and fastest - only searches until a fit is found (first fit is the best algorithm). Whatever method is used, as time goes on and processes are swapped in and out, holes begin to appear between partitions i.e. External Fragmentation. Again a solution to the external fragmentation problem is Compaction. That means moving processes together so that all the free fragments can be gathered up into a useful chunk. This can be done when partitions are dynamic. However, as we have seen it is time consuming. Addressing (& protection) Same as before use Base-Limit registers Buddy System Static partitioning puts too low a limit on the number of processes that can use memory and will use space inefficiently either through internal or external fragmentation. Dynamic partitioning slightly improves the efficiency of space use but is more complex to maintain due to need for fit algorithms and compaction. The buddy system introduces a useful compromise. The buddy system is used for some parallel programming applications and a modified version is used in UNIX kernel and in Linux for some memory allocation.

9 The buddy system only allocates memory in blocks of size 2 i kilobytes where i=0,1,2,3, U e.g. 256K, 64K, 32K, up to some limit 2 u. Initially all available memory is one large block of size 2 u. As memory is allocated the system keeps track of what blocks of what sizes are free. A bit is reserved in each block to indicate whether it is free. At any one time there will be a number of free blocks of varying sizes available in memory. When a request for memory space of size S comes in, a free block of size 2 k is found such that 2 k-1 < S<= 2 k (or, if none exists, one is formed by splitting a larger free block until one is found). In other words, it finds a block either just the right size or bigger. E.g. a request for 65K space would be met by 128K block because the next smallest block would be too small (64K) and the next largest (256K) is way too big. Whenever memory is freed up and this results in having two adjacent equalsized free blocks that used to be 2 halves of a larger block, they are coalesced to form a free block twice the size. They are the 'buddies'. Consider the following example This system still results in internal fragmentation but does not require compaction over and above the coalition of equal sized adjacent free blocks and does not require fit algorithms to allocate memory the allocation decision is very simple.

10 4.4 Simple Paging Paging is a better solution to external fragmentation than compacting dynamic partitions. It avoids external fragmentation altogether and also minimises internal fragmentation An aside on Virtual Memory Before examining paging it is useful to point out that, in explaining how paging works, we will be assuming that an entire process is loaded into RAM when it is created. In fact this is never the case. A process s contents are only ever partially loaded into RAM. The remainder is stored on a reserved portion of the disk called the swap space. When it is needed it is swapped in to RAM through a mechanism called page faulting. This arrangement is called virtual memory Loading in Paging All processes are divided into equal, fixed size pages. That is, logical memory is divided. Also all of RAM is divided into equal, fixed size page frames, each large enough to hold exactly one page. That is, physical memory is divided. Then a process is stored page by page in various available page frames. When a process is being loaded into memory it doesn t necessarily get contiguous memory - it can be scattered about memory. There will be no external fragmentation and only a fragment of the last page will be unused; i.e. minimal internal fragmentation.

11 Example Process Physical Memory logical memory frame numbers pages page 0 0 page 1 1 page 0 page 2 2 page 3 3 page page 1 7 page Address Mapping As pages of a process can be scattered about memory then the mapping of logical to physical addresses is more complex. A simple base-limit register mechanism is not good enough. The OS maintains a page table for each process showing the page frame number for each of the process pages stored. Example Page Table Page Number Frame Number Each process s PCB holds the address of the start of the page table. This value is loaded into the Page Table Base Register (PTBR) when the process is given the CPU. Page numbers act as indexes into the page table. Programs will contain references to logical addresses that assume the program starts at some known address, usually These logical addresses are thus also known as relative addresses; i.e. addresses relative to some known starting point. Each relative address will actually occur in a particular page of the process. Further, the address may refer to a page that is not actually in RAM remember virtual memory. So these addresses are sometimes called virtual addresses. For now Logical addresses = relative addresses = virtual addresses Address Mapping Example Assume page size = 1K = 1024 memory words and that pages & frames are numbered from 0 (working in Decimal).

12 How do we locate logical address 1502 (assume relative to 0 starting point)? Each logical address actually consists of a page number and an offset within that page. The offset is the number of memory words from the start of the page. Memory words are individually addressable memory locations usually 4 bytes long. Logical address 1502 must be on the second page because it is bigger than 1024 and less than It is on page 1 at offset 478 ( = 1502). logical address DIV page size = page no. - i.e div 1024 = 1 (page number) logical address MOD page size = offset - i.e mod 1024 = 478 (offset) The mapping hardware must access the page table to find the page frame number. The physical address is therefore frame 6 offset 478 (page 1 is in frame 6 in the example above). For address mapping, if a page size is set at 2 n words then implementation is simple. n can be any value depending on the desired page size. For example take page size = 2 10 = 1024 words and address length = 2 4 = 16 bits. Logical address

13 Memory location = program. i.e words from start of Instead of doing the calculations logical address DIV page size = page no. - i.e div 1024 = 1 (page number) logical address MOD page size = offset - i.e mod 1024 = 478 (offset) Notice that, in the 16 bit address, the leftmost 6 bits contain the page number and the rightmost 10 bits (remember page size = 2 10 ) contain the offset page 1, offset 478 words = Thus hardware can easily extract the page number and offset from the address bytes. Physical address frame 6, offset 478 words = i.e. page 1 stored in frame maps to Thus hardware can simply replace the page number with the frame number to generate the physical address. In general, if the leftmost k bits of a relative address give the page number in the logical address (k=6 in e.g.) and the remaining n bits give the logical address offset (n=10 in e.g.) then to get the physical address 1. extract page number as leftmost k bits; 2. use page number as index into page table to find frame number j. 3. replace k leftmost bits of logical address with the frame number j to get physical address. This works because the physical starting address of any frame j is = j*2 n. (e.g. frame 6 starting address is 6*2 10 =6*1024=6144= ) The offset need only be added to this to get the physical byte number in memory.

14 4.4.4 Implementation of Page table Page table can be implemented as 1. a set of dedicated registers Very fast but requires many registers (sometimes not feasible; e.g. in VAX may need up to 2 22 entries per process). Also context switching must include switching the register values. 2. store page table in RAM and maintain a page table base register (PTBR) which stores the starting address of the page table for the current process. Reduces context switching time (just change PTBR). Not so expensive on registers but slow (two actual memory accesses needed for every program memory access). 3. a combination of associative registers (aka translation lookaside buffers, cache, lookaside memory, content addressable memory) and RAM page table. Recommended. Each reg. has two parts key and value (i.e. page number and frame number). Searching for keys is parallel and v. fast. If the desired page no. is not in Associative registers then it is taken in from RAM page table. NOTE paging allows dynamic relocation of processes because physical addresses are efficiently mapped on the fly by hardware.

15 4.5 Simple Segmentation Introduction We can divide all processes into segments that reflect the logical design of the program. E.g. code segment, data segment, stack segment. That is, logical memory is divided. Memory is allocated as segments as needed by particular programs, each large enough to hold exactly one segment. That is, physical memory is divided into unequal portions. This is just like dynamic partitioning described above. However, now the segments to be stored are smaller than an entire process. Then a process is stored segment by segment in available memory. Thus, as with paging, when a process is being loaded into memory it doesn t require contiguous memory - it can be scattered about memory. There will be no internal fragmentation (each segment fits exactly) however there may be external fragmentation as with dynamic partitioning. But as the segments are smaller than whole processes this external fragmentation will not be as bad as it is for dynamic partitioning. Example Logical Memory Physical Memory Process Address Contents 0000 subroutine segment segment 0 stack segment main program segment 3 symbol table segment 2 subroutine segment segment 3 segment 2

16 segment 4 segment Address Mapping As with paging, because segments of a process can be scattered about memory, then the mapping of logical to physical addresses is complex. For dynamic partitioning we used base-limit registers. Now, because there are several segments, instead of one base-limit register a collection of base-limit pairs is needed - one for each segment. OS maintains a segment table for each process showing the base and limit for each of the process segments stored. Example segment table segment limit base Each process s PCB holds the address of the segment table. This address will be loaded into the segment table base register (STBR) when the process is dispatched. Segment numbers act as indexes into the segment table. Each logical address will consist of a segment number and an offset within that segment. The offset is the number of words from the start of the segment. Logical address segment 1 offset 752 The mapping h/w must access the segment table to find the segment s starting address (base) and add it to the offset to get the physical address. Physical address = 7052 For address mapping, a maximum segment size is set at some power of 2 (i.e. 2 m ). E.g = 4096 = maximum segment size. Then, in the address, the rightmost m bits represent the offset and the remaining leftmost n bits

17 represent the segment number. The segment number is used to find the segment base and limit. Then if offset >= limit then trap to OS (mem. error) else physical address = offset + base Logical address segment 1, offset 752 = i.e. logical_address mod 4096 = 752 (offset) logical_address div 4096 = 1 (segment no.) Physical address starting address of segment 1 + offset Implementation of segment table As with page table except need segment table base register (STBR). NOTE segmentation also allows dynamic relocation of processes because physical addresses are mapped on the fly by h/w. 4.6 Other Issues Protection and sharing of memory In both paged and segmented memory it is easy to allow for protection and sharing of a process s memory. In the page/segment table, protection bits (flags) can be associated with each page/segment and checked at each memory reference.

18 However, segmentation allows for more sensible protection and sharing as the segments reflect the logical structure of the program - pages are not guaranteed to reflect the logical structure. E.g. a page may mix data and code Views of memory Paging introduces large separation between the programmer s (logical) view of how memory is structured and the system s (physical) view. Segmentation closes that gap slightly though address mapping is still required Combined paging and segmentation Paging and segmentation have their faults and strengths. Combining the two methods allows us to avoid the faults and use the strengths. Paging eliminates external fragmentation but does not reflect the logical structure of the programs. Segmentation is the opposite allows external fragmentation but reflects logical structure. Using paged segmentation each process is divided into a number of segments and then each segment is divided into a number of pages that are then stored in page frames. Thus external fragmentation is eliminated AND the logical structure is maintained. Address mapping is lengthier but essentially just an extension of old ideas. From the programmer s point of view each logical address will consist of a segment number and an offset within that segment as before. However, the memory manager can break the segment offset into a page number and an offset within the page. 1. extract the segment number; 2. get the segment table entry (i.e. segment number + STBR) 3. in the segment table get the Page Table Base value and add to page number to get the page table entry which contains the frame number. 4. Map to the offset within that frame.

Chapter 7 Memory Management

Chapter 7 Memory Management 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

More information

Announcement. HW#3 will be posted today. Exercise # 4 will be posted on Piazza today.

Announcement. HW#3 will be posted today. Exercise # 4 will be posted on Piazza today. Announcement HW#3 will be posted today. Exercise # 4 will be posted on Piazza today. Operating Systems: Internals and Design Principles Chapter 7 Memory Management Seventh Edition William Stallings Modified

More information

Memory Management. Reading: Silberschatz chapter 9 Reading: Stallings. chapter 7 EEL 602

Memory Management. Reading: Silberschatz chapter 9 Reading: Stallings. chapter 7 EEL 602 Memory Management Reading: Silberschatz chapter 9 Reading: Stallings chapter 7 1 Outline Background Issues in Memory Management Logical Vs Physical address, MMU Dynamic Loading Memory Partitioning Placement

More information

Learning Outcomes. Memory Management

Learning Outcomes. Memory Management Learning Outcomes Memory Management Appreciate the need for memory management in operating systems, understand the limits of fixed memory allocation schemes. Understand fragmentation in dynamic memory

More information

Agenda. Memory Management. Binding of Instructions and Data to Memory. Background. CSCI 444/544 Operating Systems Fall 2008

Agenda. Memory Management. Binding of Instructions and Data to Memory. Background. CSCI 444/544 Operating Systems Fall 2008 Agenda Background Memory Management CSCI 444/544 Operating Systems Fall 2008 Address space Static vs Dynamic allocation Contiguous vs non-contiguous allocation Background Program must be brought into memory

More information

Memory Management. Today. Next Time. ! Basic memory management! Swapping! Kernel memory allocation. ! Virtual memory

Memory Management. Today. Next Time. ! Basic memory management! Swapping! Kernel memory allocation. ! Virtual memory Memory Management Today! Basic memory management! Swapping! Kernel memory allocation Next Time! Virtual memory Memory management! Ideal memory for a programmer Large Fast Non volatile Cheap! Nothing like

More information

Memory Management. Memory Management

Memory Management. Memory Management Memory Management Chapter 7 1 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable supply of ready processes to consume available processor

More information

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

Memory management basics (1) Requirements (1) Objectives. Operating Systems Part of E1.9 - Principles of Computers and Software Engineering Memory management basics (1) Requirements (1) Operating Systems Part of E1.9 - Principles of Computers and Software Engineering Lecture 7: Memory Management I Memory management intends to satisfy the following

More information

Goals of memory management. Today s desktop and server systems. Tools of memory management. A trip down Memory Lane

Goals of memory management. Today s desktop and server systems. Tools of memory management. A trip down Memory Lane Goals of memory management CSE 451: Operating Systems Spring 212 Module 11 Memory Management Allocate memory resources among competing processes, maximizing memory utilization and system throughput Provide

More information

Main Memory. Memory. Address binding. Memory spaces. All processes need main memory.

Main Memory. Memory. Address binding. Memory spaces. All processes need main memory. Memory If we define memory as a place where data is stored there are many levels of memory: Processor registers Primary (or main) memory RAM Secondary memory slower and more permanent disks Tertiary memory

More information

Chapter 7 Memory Management

Chapter 7 Memory Management Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 7 Memory Management Dave Bremer Otago Polytechnic, N.Z. 2009, Prentice Hall Roadmap Basic requirements of Memory Management

More information

Last Class: Memory Management. Recap: Paging

Last Class: Memory Management. Recap: Paging Last Class: Memory Management Static & Dynamic Relocation Fragmentation Paging Lecture 12, page 1 Recap: Paging Processes typically do not use their entire space in memory all the time. Paging 1. divides

More information

Memory Management. In most schemes, the kernel occupies some fixed portion of main memory and the rest is shared by multiple processes

Memory Management. In most schemes, the kernel occupies some fixed portion of main memory and the rest is shared by multiple processes Memory Management Is the task carried out by the OS and hardware to accommodate multiple processes in main memory If only a few processes can be kept in main memory, then much of the time all processes

More information

Memory Management. Main memory Virtual memory

Memory Management. Main memory Virtual memory Memory Management Main memory Virtual memory Main memory Background (1) Processes need to share memory Instruction execution cycle leads to a stream of memory addresses Basic hardware CPU can only access

More information

Chapter 8: Memory Management

Chapter 8: Memory Management Chapter 8: Memory Management Chapter 8: Memory Management Background Swapping Contiguous Allocation Paging Segmentation Segmentation with Paging 8.2 Memory Management Examine basic (not virtual) memory

More information

Section I Section Real Time Systems. Processes. 1.7 Memory Management. (Textbook: A. S. Tanenbaum Modern OS - ch. 3) Memory Management Introduction

Section I Section Real Time Systems. Processes. 1.7 Memory Management. (Textbook: A. S. Tanenbaum Modern OS - ch. 3) Memory Management Introduction EE206: Software Engineering IV 1.7 Memory Management page 1 of 28 Section I Section Real Time Systems. Processes 1.7 Memory Management (Textbook: A. S. Tanenbaum Modern OS - ch. 3) Memory Management Introduction

More information

Objectives and Functions

Objectives and Functions Objectives and Functions William Stallings Computer Organization and Architecture 6 th Edition Week 10 Operating System Support Convenience Making the computer easier to use Efficiency Allowing better

More information

COSC243 Part 2: Operating Systems

COSC243 Part 2: Operating Systems COSC243 Part 2: Operating Systems Lecture 20: Main Memory Management Zhiyi Huang Dept. of Computer Science, University of Otago Zhiyi Huang (Otago) COSC243 Lecture 20 1 / 29 O/S/ course overview Introduction

More information

Chapter 9: Memory Management

Chapter 9: Memory Management Chapter 9: Memory Management Background Logical versus Physical Address Space Overlays versus Swapping Contiguous Allocation Paging Segmentation Segmentation with Paging Operating System Concepts 9.1 Background

More information

Outline. V Computer Systems Organization II (Honors) (Introductory Operating Systems) (Review) Memory Management

Outline. V Computer Systems Organization II (Honors) (Introductory Operating Systems) (Review) Memory Management Outline V22.0202-001 Computer Systems Organization II (Honors) (Introductory Operating Systems) Lecture 14 Memory Management March 28, 2005 Announcements Lab 4 due next Monday (April 4 th ) demos on 4

More information

3. Memory Management

3. Memory Management Principles of Operating Systems CS 446/646 3. Memory Management René Doursat Department of Computer Science & Engineering University of Nevada, Reno Spring 2006 Principles of Operating Systems CS 446/646

More information

Computer Systems Engineering Department, QUEST, Nawabshah OPERATING SYSTEMS

Computer Systems Engineering Department, QUEST, Nawabshah OPERATING SYSTEMS OPERATING SYSTEMS Memory Management Introduction Fixed Partitioning Variable Partitioning Memory Hole/Allocation management Problems Introduction Techniques to manage Main memory efficiently Provides multitasking

More information

Virtual Memory & Memory Management

Virtual Memory & Memory Management CS 571 Operating Systems Virtual Memory & Memory Management Angelos Stavrou, George Mason University Memory Management 2 Logical and Physical Address Spaces Contiguous Allocation Paging Segmentation Virtual

More information

Background. Memory Management. Base and Limit Registers. Binding of Instructions and Data to Memory. Logical vs. Physical Address Space

Background. Memory Management. Base and Limit Registers. Binding of Instructions and Data to Memory. Logical vs. Physical Address Space Background Memory Management 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 Register access

More information

Lectures 21 : Memory Management (ii) Thu 19 Nov 2009

Lectures 21 : Memory Management (ii) Thu 19 Nov 2009 CS211: Programming and Operating Systems Lectures 21 : Memory Management (ii) Thu 19 Nov 2009 CS211 Lectures 21 : Memory Management (ii) 1/23 This afternoon... 1 Recall... Memory management 2 Contiguous

More information

Chapter 7 Memory Management

Chapter 7 Memory Management Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 7 Memory Management Patricia Roy Manatee Community College, Venice, FL 2008, Prentice Hall Memory Management Subdividing

More information

LOGICAL AND PHYSICAL ORGANIZATION MEMORY MANAGEMENT TECHNIQUES (CONT D)

LOGICAL AND PHYSICAL ORGANIZATION MEMORY MANAGEMENT TECHNIQUES (CONT D) MEMORY MANAGEMENT Requirements: Relocation (to different memory areas) Protection (run time, usually implemented together with relocation) Sharing (and also protection) Logical organization Physical organization

More information

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

Memory Management Outline. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging Memory Management Outline Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging 1 Background Memory is a large array of bytes memory and registers are only storage CPU can

More information

Operating Systems. Memory Management. Lecture 9 Michael O Boyle

Operating Systems. Memory Management. Lecture 9 Michael O Boyle Operating Systems Memory Management Lecture 9 Michael O Boyle 1 Chapter 8: Memory Management Background Logical/Virtual Address Space vs Physical Address Space Swapping Contiguous Memory Allocation Segmentation

More information

William Stallings Computer Organization and Architecture

William Stallings Computer Organization and Architecture William Stallings Computer Organization and Architecture Chapter 8 Operating System Support Rev. 3.2 (2009-10) by Enrico Nardelli 8-1 Objectives and Functions Convenience Making the computer easier to

More information

Goals of Memory Management

Goals of Memory Management Memory Management Goals of Memory Management Allocate available memory efficiently to multiple processes Main functions Allocate memory to processes when needed Keep track of what memory is used and what

More information

Last Class: Memory Management. Today: Paging

Last Class: Memory Management. Today: Paging Last Class: Memory Management Uniprogramming Static Relocation Dynamic Relocation Lecture 15, page 1 Today: Paging Processes typically do not use their entire space in memory all the time. Paging 1. divides

More information

CH 7. MAIN MEMORY. Base and Limit Registers. Memory-Management Unit (MMU) Chapter 7: Memory Management. Background. Logical vs. Physical Address Space

CH 7. MAIN MEMORY. Base and Limit Registers. Memory-Management Unit (MMU) Chapter 7: Memory Management. Background. Logical vs. Physical Address Space Chapter 7: Memory Management CH 7. MAIN MEMORY Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation adapted from textbook slides Background Base and Limit Registers

More information

An Introduction to Memory Management: appendix. Copyright : University of Illinois CS 241 Staff 1

An Introduction to Memory Management: appendix. Copyright : University of Illinois CS 241 Staff 1 An Introduction to Memory Management: appendix Copyright : University of Illinois CS 241 Staff 1 Memory partitioning Nowadays memory management is based on a sophisticated technique known as (paged) virtual

More information

Virtual and Physical Addresses

Virtual and Physical Addresses Virtual and Physical Addresses Physical addresses are provided by the hardware: one physical address space per machine; valid addresses are usually between 0 and some machinespecific maximum; not all addresses

More information

Memory Management Basics

Memory Management Basics Memory Management Basics 1 Basic Memory Management Concepts Address spaces Physical address space The address space supported by the hardware Starting at address, going to address MAX sys Logical/virtual

More information

Memory Management. Prof. P.C.P. Bhatt. P.C.P Bhat OS/M4/V1/2004 1

Memory Management. Prof. P.C.P. Bhatt. P.C.P Bhat OS/M4/V1/2004 1 Memory Management Prof. P.C.P. Bhatt P.C.P Bhat OS/M4/V1/2004 1 What is a Von-Neumann Architecture? Von Neumann computing requires a program to reside in main memory to run. Motivation The main motivation

More information

Chapter 9: Memory Management. Background

Chapter 9: Memory Management. Background Chapter 9: Memory Management Background Swapping Contiguous Allocation Paging Segmentation Segmentation with Paging 9.1 Background Program must be brought into memory and placed within a process for it

More information

Today. Memory management. Memory Management. Computer Hardware Review

Today. Memory management. Memory Management. Computer Hardware Review Memory management Knut Omang Ifi/Paradial 1 Oct, 2009 (with slides from V. Goebel, C. Griwodz (Ifi/UiO), P. Halvorsen (Ifi/UiO), K. Li (Princeton), A. Tanenbaum (VU Amsterdam), and M. van Steen (VU Amsterdam))

More information

CSE 380 Computer Operating Systems. Instructor: Insup Lee. University of Pennsylvania, Fall 2002 Lecture Note: Memory Management.

CSE 380 Computer Operating Systems. Instructor: Insup Lee. University of Pennsylvania, Fall 2002 Lecture Note: Memory Management. CSE 380 Computer Operating Systems Instructor: Insup Lee University of Pennsylvania, Fall 2002 Lecture Note: Memory Management 1 Memory Management q The memory management portion of the Operating System

More information

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18 PROCESS VIRTUAL MEMORY CS124 Operating Systems Winter 2013-2014, Lecture 18 2 Programs and Memory Programs perform many interactions with memory Accessing variables stored at specific memory locations

More information

Chapter 8: Memory Management!

Chapter 8: Memory Management! The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still

More information

OPERATING SYSTEM - MEMORY MANAGEMENT

OPERATING SYSTEM - MEMORY MANAGEMENT OPERATING SYSTEM - MEMORY MANAGEMENT http://www.tutorialspoint.com/operating_system/os_memory_management.htm Copyright tutorialspoint.com Memory management is the functionality of an operating system which

More information

Operating Systems Memory Management

Operating Systems Memory Management Operating Systems Memory Management ECE 344 ECE 344 Operating Systems 1 Memory Management Contiguous Memory Allocation Paged Memory Management Virtual Memory ECE 344 Operating Systems 2 Binding of Instructions

More information

8 Memory Management. 8.1 Requirements. 8 Memory Management Protection Relocation INTRODUCTION TO MEMORY MANAGEMENT OPERATING SYSTEMS

8 Memory Management. 8.1 Requirements. 8 Memory Management Protection Relocation INTRODUCTION TO MEMORY MANAGEMENT OPERATING SYSTEMS OPERATING SYSTEMS INTRODUCTION TO MEMORY MANAGEMENT 1 8 Memory Management In a multiprogramming system, in order to share the processor, a number of processes must be kept in. Memory management is achieved

More information

Memory Management: Main Memory

Memory Management: Main Memory Memory Management: Main Memory It s all about bookkeeping The von Neumann model: fetch instructions from memory; decode instructions; possibly read or write data to or from memory; rinse and repeat In

More information

Memory Management (Ch.9)

Memory Management (Ch.9) Memory Management (Ch.9)! Background! Address Binding - Linking and Loading! Swapping! Memory Protection! Contiguous Memory Allocation! Paging! Segmentation! Combined Paging and Segmentation Silberschatz

More information

Virtual Memory. COMP375 Computer Architecture and Organization

Virtual Memory. COMP375 Computer Architecture and Organization Virtual Memory COMP375 Computer Architecture and Organization You never know when you're making a memory. Rickie Lee Jones Design Project The project is due 1:00pm (start of class) on Monday, October 19,

More information

CS 31: Intro to Systems Virtual Memory. Kevin Webb Swarthmore College April 7, 2015

CS 31: Intro to Systems Virtual Memory. Kevin Webb Swarthmore College April 7, 2015 CS 31: Intro to Systems Virtual Memory Kevin Webb Swarthmore College April 7, 2015 Reading Quiz Memory Abstraction goal: make every process think it has the same memory layout. MUCH simpler for compiler

More information

OS - Memory Management

OS - Memory Management OS - Memory Management Memory management is the functionality of an operating system which handles or manages primary memory. Memory management keeps track of each and every memory location either it is

More information

Lesson 6: Memory Management & Virtualization

Lesson 6: Memory Management & Virtualization Lesson 6: Memory Management & Virtualization Contents Dynamic allocation, Memory fragmentation Paging Address translation with paging Paging hardware Page table structures Segmentation Virtual memory background

More information

What is the Base register and what is the Limit register?

What is the Base register and what is the Limit register? What is the Base register and what is the Limit register? Base register: Specifies the smallest legal physical memory address. Limit register: Specifies the size of the range. A pair of base and limit

More information

Lecture 10: Memory Management

Lecture 10: Memory Management Lecture 10: Memory Management CSE 120: Principles of Operating Systems guest starring Amin Vahdat Project 2 Due 11/14 Memory Management Next few lectures are going to cover memory management Goals of memory

More information

Operating Systems Concepts

Operating Systems Concepts Operating Systems Concepts MODULE 7: MEMORY MANAGEMENT Andrzej Bednarski, Ph.D. student Department of Computer and Information Science Linköping University, Sweden E-mail: andbe@ida.liu.se URL: http://www.ida.liu.se/~andbe

More information

Introduction to Paging

Introduction to Paging Introduction to Paging Readings Silberschatz: 8.2, 8.4 Outline Introduction to Paging Concepts Introduction Previous memory schemes were characterized by Need for compaction External fragmentation Paging

More information

Paging & Segmentation

Paging & Segmentation & Frédéric Haziza Department of Computer Systems Uppsala University Spring 2007 Outline 1 Paging Implementation Protection Sharing 2 Setup Implementation Definition Paging Memory-management

More information

Operating Systems, 6 th ed. Test Bank Chapter 7

Operating Systems, 6 th ed. Test Bank Chapter 7 True / False Questions: Chapter 7 Memory Management 1. T / F In a multiprogramming system, main memory is divided into multiple sections: one for the operating system (resident monitor, kernel) and one

More information

Lecture 17: Paging Mechanisms

Lecture 17: Paging Mechanisms Operating Systems (A) (Honor Track) Lecture 17: Paging Mechanisms Tao Wang School of Electronics Engineering and Computer Science http://ceca.pku.edu.cn/wangtao Fall 2013 Acknowledgements: Prof. Xiangqun

More information

Topics. Caches and Virtual Memory. Cache Operations. Cache Operations. Write Policies on Cache Hit. Read and Write Policies.

Topics. Caches and Virtual Memory. Cache Operations. Cache Operations. Write Policies on Cache Hit. Read and Write Policies. Topics Caches and Virtual Memory CS 333 Fall 2006 Cache Operations Placement strategy Replacement strategy Read and write policy Virtual Memory Why? General overview Lots of terminology Cache Operations

More information

Memory Management and Paging. CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han

Memory Management and Paging. CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han Memory Management and Paging CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han Announcements PA #2 due Friday March 18 11:55 pm - note extension of a day Read chapters 11 and 12 From last time...

More information

7. Memory Management

7. Memory Management Lecture Notes for CS347: Operating Systems Mythili Vutukuru, Department of Computer Science and Engineering, IIT Bombay 7. Memory Management 7.1 Basics of Memory Management What does main memory (RAM)

More information

Lecture 4: Memory Management

Lecture 4: Memory Management Lecture 4: Memory Management 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 waiting to be brought into

More information

Introduction. Memory Management. Issues in sharing memory. Storage allocation. Transparency

Introduction. Memory Management. Issues in sharing memory. Storage allocation. Transparency Introduction The CPU fetches instructions and data of a program from memory; therefore, both the program and its data must reside in the main (RAM and ROM) memory. Memory Management Modern multiprogramming

More information

Memory management challenges

Memory management challenges Virtual Page 1 Memory management challenges Wednesday, October 27, 2004 7:59 AM Memory management challenges Fragmentation: memory is broken up into segments with gaps between them; must find a "fragment"

More information

Memory Management CS 447. Prof. R.K. Joshi Dept of CSE IIT Bombay

Memory Management CS 447. Prof. R.K. Joshi Dept of CSE IIT Bombay Memory Management CS 447 Prof. R.K. Joshi Dept of CSE IIT Bombay Some Simple Memory schemes Some Simple Memory schemes Some Simple Memory schemes Overlays: User level memory management (e.g. TurboPascal)

More information

8.1 Background. Base and Limit Registers. Chapter 8: Memory-Management Management Strategies. Objectives

8.1 Background. Base and Limit Registers. Chapter 8: Memory-Management Management Strategies. Objectives Chapter 8: Memory-Management Management Strategies Objectives To provide a detailed description of various ways of organizing memory hardware To discuss various memory-management techniques, including

More information

CHAPTER 6 Memory. CMPS375 Class Notes (Chap06) Page 1 / 17 by Kuo-pao Yang

CHAPTER 6 Memory. CMPS375 Class Notes (Chap06) Page 1 / 17 by Kuo-pao Yang CHAPTER 6 Memory 6.1 Memory 313 6.2 Types of Memory 313 6.3 The Memory Hierarchy 315 6.3.1 Locality of Reference 318 6.4 Cache Memory 319 6.4.1 Cache Mapping Schemes 321 6.4.2 Replacement Policies 333

More information

Memory Management. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum

Memory Management. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum Memory Management Yücel Saygın These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum 1 Memory Management Ideally programmers want memory that is large fast non volatile

More information

One of the most difficult aspects of operating system design is memory management.

One of the most difficult aspects of operating system design is memory management. M07_STAL6329_06_SE_C07.QXD 2/21/08 9:30 PM Page 309 PART THREE Memory One of the most difficult aspects of operating system design is memory management. Although the cost of memory has dropped dramatically

More information

Contiguous Allocation. Contiguous Allocation. Free List. Dynamic Storage-Allocation Problem. Fragmentation

Contiguous Allocation. Contiguous Allocation. Free List. Dynamic Storage-Allocation Problem. Fragmentation Contiguous Allocation Main memory usually into two partitions: Resident operating system, usually held in low memory with interrupt vector. User processes then held in high memory. Memory Management --

More information

Chapter 2 Memory Management: Early Systems. Understanding Operating Systems, Fourth Edition

Chapter 2 Memory Management: Early Systems. Understanding Operating Systems, Fourth Edition Chapter 2 Memory Management: Early Systems Understanding Operating Systems, Fourth Edition Memory Management: Early Systems Memory is second only to processes in importance (and in intensity) with which

More information

Memory Management Duties. Overview of Presentation. (User View: code segments) User View: address space

Memory Management Duties. Overview of Presentation. (User View: code segments) User View: address space Overview of Presentation responsibilities of a memory manager user view of memory management memory management strategies, algorithms fixed partitions, variable partitions algorithms, fragmentation, coalescing

More information

Module 4: Memory Management

Module 4: Memory Management Module 4: Memory Management The von Neumann principle for the design and operation of computers requires that a program has to be primary memory resident to execute. Also, a user requires to revisit his

More information

Start of Lecture: March 10, Chapter 8: Main Memory

Start of Lecture: March 10, Chapter 8: Main Memory Start of Lecture: March 10, 2014 1 Reminders Assignment 2 is done! Assignment 3 has been released, due last day of classes Exercise 4 is due on March 18 Paul Lu started talking about memory management

More information

CHAPTER 8 Exercises 8.1 Answer: 8.2 Answer: 8.3 Answer:

CHAPTER 8 Exercises 8.1 Answer: 8.2 Answer: 8.3 Answer: CHAPTER 8 Although many systems are demand paged (discussed in Chapter 12), there are still many that are not, and in many cases the simpler memory-management strategies may be better, especially for small

More information

Operating Systems Concepts: Chapter 8: Memory Management

Operating Systems Concepts: Chapter 8: Memory Management Operating Systems Concepts: Chapter 8: Memory Management Olav Beckmann Huxley 449 http://www.doc.ic.ac.uk/~ob3 Acknowledgements: There are lots. See end of Chapter 1. Home Page for the course: http://www.doc.ic.ac.uk/~ob3/teaching/operatingsystemsconcepts/

More information

OPERATING SYSTEMS MEMORY MANAGEMENT

OPERATING SYSTEMS MEMORY MANAGEMENT OPERATING SYSTEMS MEMORY MANAGEMENT Jerry Breecher 8: Memory Management 1 OPERATING SYSTEM Memory Management What Is In This Chapter? Just as processes share the CPU, they also share physical memory. This

More information

PROJECT REPORT MEMORY MANAGEMENT DATE :

PROJECT REPORT MEMORY MANAGEMENT DATE : PROJECT REPORT MEMORY MANAGEMENT DATE : GROUP MEMBERS: MEMORY MANAGEMENT PURPOSE: To simulate memory management of a simple system in order to better comprehend the complex memory management system of

More information

ICS Principles of Operating Systems

ICS Principles of Operating Systems ICS 143 - Principles of Operating Systems Operating Systems - Review of content from midterm to final Prof. Ardalan Amiri Sani Prof. Nalini Venkatasubramanian ardalan@uci.edu nalini@ics.uci.edu Deadlocks

More information

CSC501 Operating Systems Principles. Memory Management

CSC501 Operating Systems Principles. Memory Management CSC501 Operating Systems Principles Memory Management 1 Previous Lectures q Linker & Loader q Today Q Memory Management 2 Layer user filesystem inter-machine net. memory mgr (high) device mgr + drivers

More information

Chapter 3 Memory Management: Virtual Memory

Chapter 3 Memory Management: Virtual Memory Understanding Operating Systems, Fifth Edition 3-1 Chapter 3 Memory Management: Virtual Memory At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class Discussion Topics

More information

Memory Management. Memory Management

Memory Management. Memory Management Memory Management Logical vs. physical address space Fragmentation Paging Segmentation Reading: Silberschatz, Ch. 8 Memory Management Observations: Process needs at least CPU and memory to run. CPU context

More information

Operating Systems Lecture #3: Modern Paradigms of Memory Management

Operating Systems Lecture #3: Modern Paradigms of Memory Management Lecture #3: Modern Paradigms of Memory Management Written by based on the lecture series of Dr. Dayou Li and the book Understanding 4th ed. by I.M.Flynn and A.McIver McHoes (2006) Department of Computer

More information

Last Class: Demand Paged Virtual Memory!

Last Class: Demand Paged Virtual Memory! Last Class: Demand Paged Virtual Memory! Benefits of demand paging: Virtual address space can be larger than physical address space. Processes can run without being fully loaded into memory. Processes

More information

Memory Management - 1

Memory Management - 1 Memory Management - 1 Memory Management Unit memory is a critical resource efficient use sharing memory management unit Memory Management Unit: Main Aims relocation physical memory assigned to process

More information

Memory Management. Operating Systems. Monoprogramming without Swapping or Paging. Multiprogramming

Memory Management. Operating Systems. Monoprogramming without Swapping or Paging. Multiprogramming Operating Systems User OS Kernel & Device Drivers Interface Programs Management Management is an important resource that needs to be managed by the OS manager is the component of the OS responsible for

More information

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

Memory Allocation. Static Allocation. Dynamic Allocation. Memory Management. Dynamic Allocation. Dynamic Storage Allocation Dynamic Storage Allocation CS 44 Operating Systems Fall 5 Presented By Vibha Prasad Memory Allocation Static Allocation (fixed in size) Sometimes we create data structures that are fixed and don t need

More information

W4118: segmentation and paging. Instructor: Junfeng Yang

W4118: segmentation and paging. Instructor: Junfeng Yang W4118: segmentation and paging Instructor: Junfeng Yang Outline Memory management goals Segmentation Paging TLB 1 Uni- v.s. multi-programming Simple uniprogramming with a single segment per process Uniprogramming

More information

Last Class: File System Abstraction! Today: File System Implementation!

Last Class: File System Abstraction! Today: File System Implementation! Last Class: File System Abstraction! Lecture 19, page 1 Today: File System Implementation! Disk management Brief review of how disks work. How to organize data on to disks. Lecture 19, page 2 How Disks

More information

Memory Management Thrashing, Segmentation and Paging

Memory Management Thrashing, Segmentation and Paging Memory Management Thrashing, Segmentation and Paging CS 416: Operating Systems Design, Spring 2011 Department of Computer Science Rutgers Sakai: 01:198:416 Sp11 (https://sakai.rutgers.edu) Summary of Page

More information

Last Class: File System Abstraction. Protection

Last Class: File System Abstraction. Protection Last Class: File System Abstraction Naming Protection Persistence Fast access Lecture 17, page 1 Protection The OS must allow users to control sharing of their files => control access to files Grant or

More information

CS5460: Operating Systems

CS5460: Operating Systems CS5460: Operating Systems Lecture 13: Memory Management (Chapter 8) Where are we? Basic OS structure, HW/SW interface, interrupts, scheduling Concurrency Memory management Storage management Other topics

More information

Dynamic Memory Management in Hardware

Dynamic Memory Management in Hardware Dynamic Memory Management in Hardware A master thesis presented to the Mälardalens University in fulfilment of the thesis requirement for the degree of Master of Science in Electrical Engineering Västerås,

More information

406 memory pool memory allocation handle memory deallocation dynamic storage allocation

406 memory pool memory allocation handle memory deallocation dynamic storage allocation 406 Chap. 12 Lists and Arrays Revisited 12.4 Memory Management Most of the data structure implementations described in this book store and access objects all of the same size, such as integers stored in

More information

Operating Systems Part M15 Virtual Memory, Shared Libraries, Microkernels, Sandboxing and Virtualization. Florina Ciorba 24 November 2015

Operating Systems Part M15 Virtual Memory, Shared Libraries, Microkernels, Sandboxing and Virtualization. Florina Ciorba 24 November 2015 Operating Systems Part M15 Virtual Memory, Shared Libraries, Microkernels, Sandboxing and Virtualization Florina Ciorba 24 November 2015 Today s Overview (Main) Memory management Shared libraries Compiling,

More information

Address spaces and address binding compile-time load-time run-time Memory management: mapping virtual address to physical addresses

Address spaces and address binding compile-time load-time run-time Memory management: mapping virtual address to physical addresses Outline Address spaces and address binding compile-time load-time run-time Memory management: mapping virtual address to physical addresses Paging contiguous allocation and fragmentation paging hardware

More information

Memory Management. Overview

Memory Management. Overview Memory Management 1 Overview Basic memory management Address Spaces Virtual memory Page replacement algorithms Design issues for paging systems Implementation issues Segmentation 2 1 Memory Management

More information

CHAPTER 8 : VIRTUAL MEMORY. Introduction

CHAPTER 8 : VIRTUAL MEMORY. Introduction CHAPTER 8 : VIRTUAL MEMORY Introduction In simple paging and segmentation, we realised that we can : Load program pages or segments into frames that may not necessarily be contigous. Make memory address

More information

memory management Vaibhav Bajpai

memory management Vaibhav Bajpai memory management Vaibhav Bajpai OS 2014 motivation virtualize resources: multiplex CPU multiplex memory (CPU scheduling) (memory management) why manage memory? controlled overlap processes should NOT

More information

CHAPTER 9 Exercises 9.1 Answer: 9.2 Ready Running Blocked Answer: 9.3

CHAPTER 9 Exercises 9.1 Answer: 9.2 Ready Running Blocked Answer: 9.3 CHAPTER 9 Virtual memory can be a very interesting subject since it has so many different aspects: page faults, managing the backing store, page replacement, frame allocation, thrashing, page size. The

More information