Operating System Support

Similar documents
Objectives and Functions Convenience. William Stallings Computer Organization and Architecture 7 th Edition. Efficiency

Operating System Support

Chapter 8. Operating System Support. Yonsei University

Computer Organization and Architecture. OS Objectives and Functions Convenience Making the computer easier to use

OPERATING SYSTEM SUPPORT (Part 1)

Operating System. Operating Systems Structure Chapter 2. Services Provided by the OS. Evolution of an Operating System

CSCI 4717 Computer Architecture. Memory Management. What is Swapping? Swapping. Partitioning. Fixed-Sized Partitions (continued)

Chapter 8 Virtual Memory

Operating Systems. Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) alphapeeler.sf.net/pubkeys/pkey.htm

Chapter 8 Virtual Memory

Chapter 8 Virtual Memory

Virtual Memory. control structures and hardware support

With regard to operating systems the kernel consists of the most frequently used functions in the operating system and it kept in main memory.

Operating Systems Overview. Chapter 2

Principles of Operating Systems CS 446/646

ECE519 Advanced Operating Systems

Chapter 8. Virtual Memory

MEMORY MANAGEMENT/1 CS 409, FALL 2013

Memory management. Requirements. Relocation: program loading. Terms. Relocation. Protection. Sharing. Logical organization. Physical organization

Chapter 8: Memory-Management Strategies

Chapter 8: Main Memory

CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES

Chapter 8: Main Memory. Operating System Concepts 9 th Edition

Introduction. CS3026 Operating Systems Lecture 01

Memory management. Last modified: Adaptation of Silberschatz, Galvin, Gagne slides for the textbook Applied Operating Systems Concepts

Operating System. Operating System Overview. Layers of Computer System. Operating System Objectives. Services Provided by the Operating System

Operating System Overview. Operating System

Chapter 8: Main Memory

Memory and multiprogramming

Virtual Memory. Chapter 8

CS 333 Introduction to Operating Systems. Class 11 Virtual Memory (1) Jonathan Walpole Computer Science Portland State University

Virtual to physical address translation

Processes and Tasks What comprises the state of a running program (a process or task)?

Operating Systems CSE 410, Spring Virtual Memory. Stephen Wagner Michigan State University

Virtual or Logical. Logical Addr. MMU (Memory Mgt. Unit) Physical. Addr. 1. (50 ns access)

Chapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

Operating Systems. 09. Memory Management Part 1. Paul Krzyzanowski. Rutgers University. Spring 2015

Computer System Overview

CHAPTER 8: MEMORY MANAGEMENT. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Memory Management. Dr. Yingwu Zhu

Operating Systems. Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) alphapeeler.sf.net/pubkeys/pkey.htm

Unit 2 : Computer and Operating System Structure

Virtual Memory. Patterson & Hennessey Chapter 5 ELEC 5200/6200 1

CS399 New Beginnings. Jonathan Walpole

a process may be swapped in and out of main memory such that it occupies different regions

Multi-Process Systems: Memory (2) Memory & paging structures: free frames. Memory & paging structures. Physical memory

Chapter 4 Memory Management

CSE 120. Translation Lookaside Buffer (TLB) Implemented in Hardware. July 18, Day 5 Memory. Instructor: Neil Rhodes. Software TLB Management

Operating System Overview. Chapter 2

Memory Management. To improve CPU utilization in a multiprogramming environment we need multiple programs in main memory at the same time.

Chapter 8 & Chapter 9 Main Memory & Virtual Memory

Chapter 7: Main Memory. Operating System Concepts Essentials 8 th Edition

The Memory System. Components of the Memory System. Problems with the Memory System. A Solution

1. Creates the illusion of an address space much larger than the physical memory

Operating System Overview. Chapter 2

Chapter 8: Memory- Management Strategies. Operating System Concepts 9 th Edition

Chapter 8: Memory- Management Strategies

Introduction to Operating Systems. Chapter Chapter

Chapter 8 Memory Management

Operating System 1 (ECS-501)

Learning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory.

Memory Management. Chapter 4 Memory Management. Multiprogramming with Fixed Partitions. Ideally programmers want memory that is.

CS450/550 Operating Systems

Learning Outcomes. An understanding of page-based virtual memory in depth. Including the R3000 s support for virtual memory.

Memory Management. Goals of Memory Management. Mechanism. Policies

Introduction to Operating Systems. Chapter Chapter

The memory of a program. Paging and Virtual Memory. Swapping. Paging. Physical to logical address mapping. Memory management: Review

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

CS307: Operating Systems

Move back and forth between memory and disk. Memory Hierarchy. Two Classes. Don t

Memory Management Ch. 3

Addresses in the source program are generally symbolic. A compiler will typically bind these symbolic addresses to re-locatable addresses.

Announcements. Reading. Project #1 due in 1 week at 5:00 pm Scheduling Chapter 6 (6 th ed) or Chapter 5 (8 th ed) CMSC 412 S14 (lect 5)

CS399 New Beginnings. Jonathan Walpole

CPE300: Digital System Architecture and Design

Chapter 8: Virtual Memory. Operating System Concepts

Introduction to Operating. Chapter Chapter

Week 2: Tiina Niklander

CIS Operating Systems Memory Management Address Translation. Professor Qiang Zeng Fall 2017

Performance of Various Levels of Storage. Movement between levels of storage hierarchy can be explicit or implicit

Q.1 Explain Computer s Basic Elements

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 23

File Systems. OS Overview I/O. Swap. Management. Operations CPU. Hard Drive. Management. Memory. Hard Drive. CSI3131 Topics. Structure.

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 27, FALL 2012

OPERATING SYSTEM. Chapter 9: Virtual Memory

16 Sharing Main Memory Segmentation and Paging

Operating Systems, Fall

Chapter 9 Memory Management

CIS Operating Systems Memory Management Address Translation for Paging. Professor Qiang Zeng Spring 2018

Operating Systems Overview. Chapter 2

SRI VENKATESWARA COLLEGE OF ENGINEERING PENNALUR, SRIPERUMBUDUR TK

Memory Hierarchy. Goal: Fast, unlimited storage at a reasonable cost per bit.

3.6. PAGING (VIRTUAL MEMORY) OVERVIEW

Address spaces and memory management

Chapter 2. OS Overview

Virtual Memory Review. Page faults. Paging system summary (so far)

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

Chapter 4: Memory Management. Part 1: Mechanisms for Managing Memory

2.5 Address Space. The IBM 6x86 CPU can directly address 64 KBytes of I/O space and 4 GBytes of physical memory (Figure 2-24).

Transcription:

William Stallings Computer Organization and Architecture 10 th Edition Edited by Dr. George Lazik + Chapter 8 Operating System Support

Application programming interface Application binary interface Instruction Set Architecture Application programs Libraries/utilities Operating system Execution hardware Software System interconnect (bus) Memory translation Hardware I/O devices and networking Main memory Figure 8.1 Computer Hardware and Software Structure

+ Operating System (OS) Services The most important system program Masks the details of the hardware from the programmer and provides the programmer with a convenient interface for using the system The OS typically provides services in the following areas: Program creation Program execution Access to I/O devices Controlled access to files System access Error detection and response Accounting

Interfaces Key interfaces in a typical computer system: Instruction set architecture (ISA) Application binary interface (ABI) Application programming interface (API) Defines the machine language instructions that a computer can follow Defines a standard for binary portability across programs Gives a program access to the hardware resources and services available in a system through the user ISA supplemented with high-level language (HLL) library calls Boundary between hardware and software Defines the system call interface to the operating system and the hardware resources and services available in a system through the user ISA Using an API enables application software to be ported easily to other systems that support the same API

+ Operating System as Resource Manager A computer is a set of resources for the movement, storage, and processing of data and for the control of these functions The OS is responsible for managing these resources The OS as a control mechanism is unusual in two respects: The OS functions in the same way as ordinary computer software it is a program executed by the processor The OS frequently relinquishes control and must depend on the processor to allow it to regain control

Memory Computer System I/O Devices Operating System Software I/O Controller I/O Controller Printers, keyboards, digital camera, etc. Programs and Data I/O Controller Processor Processor Storage OS Programs Data Figure 8.2 The Operating System as Resource Manager

+ Types of Operating Systems Interactive system The user/programmer interacts directly with the computer to request the execution of a job or to perform a transaction User may, depending on the nature of the application, communicate with the computer during the execution of the job Batch system Opposite of interactive The user s program is batched together with programs from other users and submitted by a computer operator After the program is completed results are printed out for the user

+ Early Systems From the late 1940s to the mid-1950s the programmer interacted directly with the computer hardware there was no OS Processors were run from a console consisting of display lights, toggle switches, some form of input device and a printer Problems: Scheduling Sign-up sheets were used to reserve processor time This could result in wasted computer idle time if the user finished early If problems occurred the user could be forced to stop before resolving the problem Setup time A single program could involve Loading the compiler plus the source program into memory Saving the compiled program Loading and linking together the object program and common functions

Boundary Monitor Interrupt Processing Device Drivers Job Sequencing Control Language Interpreter User Program Area Figure 8.3 Memory Layout for a Resident Monitor

+ From the View of the Processor... Processor executes instructions from the portion of main memory containing the monitor These instructions cause the next job to be read in another portion of main memory The processor executes the instruction in the user s program until it encounters an ending or error condition Either event causes the processor to fetch its next instruction from the monitor program The monitor handles setup and scheduling A batch of jobs is queued up and executed as rapidly as possible with no idle time Job control language (JCL) Special type of programming language used to provide instructions to the monitor Example: $JOB $FTN... Some Fortran instructions $LOAD $RUN... Some data $END **Each FORTRAN instruction and each item of data is on a separate punched card or a separate record on tape. In addition to FORTRAN and data lines, the job includes job control instructions, which are denoted by the beginning $. Monitor, or batch OS, is simply a computer program It relies on the ability of the processor to fetch instructions from various portions of main memory in order to seize and relinquish control alternately

+ Desirable Hardware Features Memory protection User program must not alter the memory area containing the monitor The processor hardware should detect an error and transfer control to the monitor The monitor aborts the job, prints an error message, and loads the next job Timer Used to prevent a job from monopolizing the system If the timer expires an interrupt occurs and control returns to monitor Privileged instructions Can only be executed bythe monitor If the processor encounters such an instruction while executing a user program an error interrupt occurs I/O instructions are privileged so the monitor retains control of all I/O devices Interrupts Gives the OS more flexibility in relinquishing control to and regaining control from user programs

Program A Run Wait Run Wait Time (a) Uniprogramming Program A Run Wait Run Wait Program B Wait Run Wait Run Wait Combined Run A Run B Wait Run A Run B Wait Time (b) Multiprogramming with two programs Program A Run Wait Run Wait Program B Wait Run Wait Run Wait Program C Wait Run Wait Run Wait Combined Run A Run B Run C Wait Run A Run B Run C Wait Time (c) Multiprogramming with three programs Figure 8.5 Multiprogramming Example

Table 8.1 Sample Program Execution Attributes JOB1 JOB2 JOB3 Type of job Heavy compute Heavy I/O Heavy I/O Duration 5 min 15 min 10 min Memory required 50 M 100 M 80 M Need disk? No No Yes Need terminal? No Yes No Need printer? No No Yes

Table 8.2 Effects of Multiprogramming on Resource Utilization Uniprogramming Multiprogramming Processor use 20% 40% Memory use 33% 67% Disk use 33% 67% Printer use 33% 67% Elapsed time 30 min 15 min Throughput rate 6 jobs/hr 12 jobs/hr Mean response time 18 min 10 min

100% 100% CPU 0% 100% CPU 0% 100% Memory 0% 100% Memory 0% 100% Disk 0% 100% Disk 0% 100% Terminal 0% 100% Terminal 0% 100% Printer 0% Printer 0% Job History JOB1 JOB2 JOB3 0 5 10 15 20 25 30 minutes (a) Uniprogramming time Job History JOB1 JOB2 JOB3 0 5 10 15 minutes time (b) Multiprogramming Figure 8.6 Utilization Histograms

+ Time Sharing Systems Used when the user interacts directly with the computer Processor s time is shared among multiple users Multiple users simultaneously access the system through terminals, with the OS interleaving the execution of each user program in a short burst or quantum of computation Example: If there are n users actively requesting service at one time, each user will only see on the average 1/n of the effective computer speed

Table 8.3 Batch Multiprogramming versus Time Sharing Batch Multiprogramming Time Sharing Principal objective Maximize processor use Minimize response time Source of directives to operating system Job control language commands provided with the job Commands entered at the terminal

Table 8.4 Types of Scheduling Long-term scheduling Medium-term scheduling Short-term scheduling I/O scheduling The decision to add to the pool of processes to be executed The decision to add to the number of processes that are partially or fully in main memory The decision as to which available process will be executed by the processor The decision as to which process's pending I/O request shall be handled by an available I/O device

Long Term Scheduling Determines which programs are submitted for processing Once submitted, a job becomes a process for the short term scheduler In some systems a newly created process begins in a swapped-out condition, in which case it is added to a queue for the medium-term scheduler Time-sharing system A process request is generated when a user attempts to connect to the system OS will accept all authorized comers until the system is saturated At that point a connection request is met with a message indicating that the system is full and to try again later Batch system Newly submitted jobs are routed to disk and held in a batch queue The long-term scheduler creates processes from the queue when it can

+ Medium-Term Scheduling and Short-Term Scheduling Medium-Term Part of the swapping function Swapping-in decision is based on the need to manage the degree of multiprogramming Swapping-in decision will consider the memory requirements of the swapped-out processes Short-Term Also known as the dispatcher Executes frequently and makes the fine-grained decision of which job to execute next

New Admit Ready Dispatch Running Release Exit Timeout Event Occurs Event Wait Blocked Figure 8.7 Five-State Process Model

Identifier State Priority Program counter Memory pointers Context data I/O status information Accounting information Figure 8.8 Process Control Block

Operating system Operating system Operating system In control Service handler Interrupt handler Scheduler Service handler Interrupt handler Scheduler Service handler Interrupt handler Scheduler A "Running" A "Waiting" A "Waiting" In control B "Ready" B "Ready" B "Running" In control Other partitions Other partitions Other partitions (a) (b) (c) Figure 8.9 Scheduling Example

Operating System Service Call from Process Service Call Handler (code) Interrupt from Process Interrupt from I/O Interrupt Handler (code) Long- Term Queue Short- Term Queue Short-Term Scheduler (code) I/O Queues Pass Control to Process Figure 8.10 Key Elements of an Operating System for Multiprogramming

Admit Long-term queue Short-term queue Processor End I/O 1 Occurs I/O 2 Occurs I/O 1 Queue I/O 2 Queue I/O n Occurs I/O n Queue Figure 8.11 Queuing Diagram Representation of Processor Scheduling

Disk storage Main memory Operating system Long-term queue Completed jobs and user sessions Disk storage (a) Simple job scheduling Intermediate queue Main memory Operating system Long-term queue Completed jobs and user sessions (b) Swapping Figure 8.12 The Use of Swapping

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

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 Logical address -expressed as a location relative to the beginning of the program Physical address -an actual location in main memory (a) (b) 36M (c) 22M Process 3 (d) 18M 4M Base address -current starting location of the process Operating System Process 1 20M Operating System Process 1 20M Operating System 20M Operating System 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 8.14 The Effect of Dynamic Partitioning

Main memory Main memory Process A Page 0 Page 1 Page 2 Page 3 13 14 15 Process A Page 0 Page 1 Page 2 Page 3 13 14 15 Page 1 of A Page 2 of A Page 3 of A Free frame list 13 14 15 18 20 16 17 18 19 20 In use In use In use Free frame list 20 Process A page table 18 13 14 15 16 17 18 19 20 In use In use Page 0 of A In use (a) Before (b) After Figure 8.15 Allocation of Free Frames

Main Memory Page 1 of A 13 page number relative address within page frame number relative address within frame Page 2 of A 14 Logical Address 1 30 Physical Address 13 30 Page 3 of A 15 16 18 13 17 14 15 Page 0 of A 18 Process A Page Table Figure 8.16 Logical and Physical Addresses

+ Virtual Memory Demand Paging Each page of a process is brought in only when it is needed Principle of locality When working with a large process execution may be confined to a small section of a program (subroutine) It is better use of memory to load in just a few pages If the program references data or branches to an instruction on a page not in main memory, a page fault is triggered which tells the OS to bring in the desired page Advantages: More processes can be maintained in memory Time is saved because unused pages are not swapped in and out of memory Disadvantages: When one page is brought in, another page must be thrown out (page replacement) If a page is thrown out just before it is about to be used the OS will have to go get the page again Thrashing When the processor spends most of its time swapping pages rather than executing instructions

Main Memory Page 1 of A 13 page number relative address within page frame number relative address within frame Page 2 of A 14 Logical Address 1 30 Physical Address 13 30 Page 3 of A 15 16 18 13 17 14 15 Page 0 of A 18 Process A Page Table Figure 8.16 Logical and Physical Addresses

+ Virtual Memory Byte Addressable Memory Sizes VM Page Size: 1024 bytes PM Frames: 4 PM Frames Size: 1024 bytes Initial Conditions PM is empty First 4 VM pages map to Frames 0, 1, 2, 3 Subsequent Mapping of Virtual Address Use LRU Replacement

Virtual Memory Simple Paging Virtual to Physical

Virtual address n bits Page # Offset n bits hash function m bits Page # Control bits Process ID Chain 0 i j Inverted page table (one entry for each physical memory frame) 2 m 1 Frame # Offset m bits Real address Figure 8.17 Inverted Page Table Structure

Return to faulted instruction Start CPU checks the TLB Page table entry in TLB? Yes No Page fault handling routine OS instructs CPU to read the page from disk CPU activates I/O hardware No Access Page Table Page in main memory? Yes Update TLB Page transferred from disk to main memory CPU generates physical address Memory full? Yes No Perform page replacement Page tables updated Figure 8.18 Operation of Paging and Translation Lookaside Buffer (TLB) [FURH87]

TLB Operation Virtual Address Page # Offset TLB miss TLB TLB hit Real Address Cache Operation + Tag Remainder Cache Hit Value Miss Main Memory Page Table Value Figure 8.19 Translation Lookaside Buffer and Cache Operation

+ Segmentation Usually visible to the programmer Provided as a convenience for organizing programs and data and as a means for associating privilege and protection attributes with instructions and data Allows the programmer to view memory as consisting of multiple address spaces or segments Advantages: Simplifies the handling of growing data structures Allows programs to be altered and recompiled independently without requiring that an entire set of programs be re-linked and re-loaded Lends itself to sharing among processes Lends itself to protection

Includes hardware for both segmentation and paging Unsegmented unpaged memory + Virtual address is the same as the physical address Useful in low-complexity, high performance controller applications Unsegmented paged memory Memory is viewed as a paged linear address space Protection and management of memory is done via paging Favored by some operating systems Segmented unpaged memory Memory is viewed as a collection of logical address spaces Affords protection down to the level of a single byte Guarantees that the translation table needed is on-chip when the segment is in memory Results in predictable access times Segmented paged memory Segmentation is used to define logical memory partitions subject to access control, and paging is used to manage the allocation of memory within the partitions Operating systems such as UNIX System V favor this view Intel x86 Memory Management

+ Segmentation Pentium II Each virtual addressconsists of a 16-bit segment reference and a 32-bit offset Two bits of segment reference deal with the protection mechanism 14 bits specify segment Unsegmented virtual memory is 2 32 = 4Gbytes Segmented virtual memory is 2 46 =64 terabytes (Tbytes) Physical address space employs a 32-bit address for a maximum of 4 Gbytes Virtual address space is divided into two parts One-half is global, shared by all processors The remainder is local and is distinct for each process

+ Segment Protection Associated with each segment are two forms of protection: Privilege level Access attribute There are four privilege levels Most protected (level 0) Least protected (level 3) Privilege level associated with a data segment is its classification Privilege level associated with a program segment is its clearance An executing program may only access data segments for which its clearance level is lower than or equal to the privilege level of the data segment The privilege mechanism also limits the use of certain instructions

15 Index 3 2 1 0 T I TI Table indicator RPL Requestor privilege level (a) Segment selector RPL 31 22 21 12 11 0 Directory Table (b) Linear address Offset 31 242322 2019 161514131211 8 7 0 D A Segment Base 31...24 G /B L V limit P DPL S Type Base 23...16 L 19...16 Base 15...0 Segment limit 15...0 AVL Available for use by system software L 64-bit code segment Base Segment base address (64-bit mode only) D/B Default operation size P Segment present DPL Descriptor privilege size Type Segment type G Granularity S Descriptor type (c) Segment descriptor (segment table entry) 31 1211 9 7 6 5 4 3 2 1 0 P P P U R Page frame address 31...12 AVL S 0 A CW S W P D T AVL Available for systems programmer use P Page size A Accessed PCD Cache disable PWT Write through US User/supervisor RW Read-write P Present (d) Page directory entry = reserved 31 1211 9 7 6 5 4 3 2 1 0 P P U R Page frame address 31...12 AVL D A CW S W P D T D Dirty (e) Page table entry Figure 8.20 Intel x86 Memory Management Formats

Table 8.5 x86 Memory Management Parameters (page 1 of 2) Segment Descriptor (Segment Table Entry) Base Defines the starting address of the segment within the 4-GByte linear address space. D/B bit In a code segment, this is the D bit and indicates whether operands and addressing modes are 16 or 32 bits. Descriptor Privilege Level (DPL) Specifies the privilege level of the segment referred to by this segment descriptor. Granularity bit (G) Indicates whether the Limit field is to be interpreted in units by one byte or 4 KBytes. Limit Defines the size of the segment. The processor interprets the limit field in one of two ways, depending on the granularity bit: in units of one byte, up to a segment size limit of 1 MByte, or in units of 4 KBytes, up to a segment size limit of 4 GBytes. S bit Determines whether a given segment is a system segment or a code or data segment. Segment Present bit (P) Used for nonpaged systems. It indicates whether the segment is present in main memory. For paged systems, this bit is always set to 1. Type Distinguishes between various kinds of segments and indicates the access attributes.

Table 8.5 x86 Memory Management Parameters (page 2 of 2) Page Directory Entry and Page Table Entry Accessed bit (A) This bit is set to 1 by the processor in both levels of page tables when a read or write operation to the corresponding page occurs. Dirty bit (D) This bit is set to 1 by the processor when a write operation to the corresponding page occurs. Page Frame Address Provides the physical address of the page in memory if the present bit is set. Since page frames are aligned on 4K boundaries, the bottom 12 bits are 0, and only the top 20 bits are included in the entry. In a page directory, the address is that of a page table. Page Cache Disable bit (PCD) Indicates whether data from page may be cached. Page Size bit (PS) Indicates whether page size is 4 KByte or 4 MByte. Page Write Through bit (PWT) Indicates whether write-through or write-back caching policy will be used for data in the corresponding page. Present bit (P) Indicates whether the page table or page is in main memory. Read/Write bit (RW) For user-level pages, indicates whether the page is read-only access or read/write access for user-level programs. User/Supervisor bit (US) Indicates whether the page is available only to the operating system (supervisor level) or is available to both operating system and applications (user level).

+ Paging Segmentation may be disabled In which case linear address space is used Two level page table lookup First, page directory 1024 entries max Splits 4 Gbyte linear memory into 1024 page groups of 4 Mbyte Each page table has 1024 entries corresponding to 4 Kbyte pages Can use one page directory for all processes, one per process or mixture Page directory for current process always in memory Use TLB holding 32 page table entries Two page sizes available, 4k or 4M

Memory Management Unit (MMU) Access control hardware Access bits, domain TLB Virtual address Access bits, domain Virtual memory translation hardware Physical address Abort Control bits Physical address Physical address Main memory ARM core Virtual address Cache and write buffer Cache line fetch hardware Figure 8.22 ARM Memory System Overview

+ Virtual Memory Address Translation The ARM supports memory access based on either sections or pages Supersections (optional) Consist of 16-MB blocks of main memory Sections Consist of 1-MB blocks of main memory Large pages Consist of 64-kB blocks of main memory Small pages Consist of 4-kB blocks of main memory Sections and supersections are supported to allow mapping of a large region of memory while using only a single entry in the TLB The translation table held in main memory has two levels: First-level table Holds section and supersection translations, and pointers to second-level table Second-level tables Hold both large and small page translations

Table 8.6 ARM Memory-Management Parameters Access Permission (AP), Access Permission Extension (APX) These bits control access to the corresponding memory region. If an access is made to an area of memory without the required permissions, a Permission Fault is raised. Bufferable (B) bit Determines, with the TEX bits, how the write buffer is used for cacheable memory. Cacheable (C) bit Determines whether this memory region can be mapped through the cache. Domain Collection of memory regions. Access control can be applied on the basis of domain. not Global (ng) Determines whether the translation should be marked as global (0), or process specific (1). Shared (S) Determines whether the translation is for not-shared (0), or shared (1) memory. SBZ Should be zero. Type Extension (TEX) These bits, together with the B and C bits, control accesses to the caches, how the write buffer is used, and if the memory region is shareable and therefore must be kept coherent. Execute Never (XN) Determines whether the region is executable (0) or not executable (1).

+ Access Control The AP access control bits in each table entry control access to a region of memory by a given process A region of memory can be designated as: No access Read only Read-write The region can be privileged access only, reserved for use by the OS and not by applications ARM employs the concept of a domain: Collection of sections and/or pages that have particular access permissions The ARM architecture supports 16 domains Allows multiple processes to use the same translation tables while maintaining some protection from each other Two kinds of domain access are supported: Clients Users of domains that must observe the access permissions of the individual sections and/or pages that make up that domain Managers Control the behavior of the domain and bypass the access permissions for table entries in that domain

+ Summary Operating system overview Operating system objectives and functions Types of operating systems Scheduling Long-term scheduling Medium-term scheduling Short-term scheduling Intel x86 memory management Address space Segmentation paging Chapter 8 Operating System Support Memory management Swapping Partitioning Paging Virtual memory Translation lookaside buffer Segmentation ARM memory management Memory system organization Virtual memory address translation Memory-management formats Access control