© Janice Regan, CMPT 300, May 2007 0 CMPT 300 Introduction to Operating Systems Operating Systems Overview: Using Hardware.

Slides:



Advertisements
Similar presentations
Computer-System Structures Er.Harsimran Singh
Advertisements

Components of a computer system
Computer System Organization Computer-system operation – One or more CPUs, device controllers connect through common bus providing access to shared memory.
Computer System Overview
Chapter 6 Computer Architecture
Chapter 1 Computer System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
1 Lecture 2: Review of Computer Organization Operating System Spring 2007.
Computer System Overview
1 Computer System Overview OS-1 Course AA
1 CSIT431 Introduction to Operating Systems Welcome to CSIT431 Introduction to Operating Systems In this course we learn about the design and structure.
Computer System Overview
University College Cork IRELAND Hardware Concepts An understanding of computer hardware is a vital prerequisite for the study of operating systems.
Chapter 1 and 2 Computer System and Operating System Overview
Chapter 1.2: Introduction These slides, originally provided by your authors, have been modified by your instructor.
Computer System Overview Chapter 1. Basic computer structure CPU Memory memory bus I/O bus diskNet interface.
1 Computer System Overview Chapter 1 Review of basic hardware concepts.
General System Architecture and I/O.  I/O devices and the CPU can execute concurrently.  Each device controller is in charge of a particular device.
Chapter 1 Computer System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Computer Systems Overview. Page 2 W. Stallings: Operating Systems: Internals and Design, ©2001 Operating System Exploits the hardware resources of one.
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
Computer System Overview Chapter 1. Operating System Exploits the hardware resources of one or more processors Provides a set of services to system users.
Chapter 1 Computer System Overview Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
MICROPROCESSOR INPUT/OUTPUT
CHAPTER 2: COMPUTER-SYSTEM STRUCTURES Computer system operation Computer system operation I/O structure I/O structure Storage structure Storage structure.
Operating Systems and Networks AE4B33OSS Introduction.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 1 Computer System Overview.
1 Chapter 2: Computer-System Structures  Computer System Operation  I/O Structure  Storage Structure  Storage Hierarchy  Hardware Protection  General.
Chapter 1: Introduction. 1.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 1: Introduction What Operating Systems Do Computer-System.
The Functions of Operating Systems Interrupts. Learning Objectives Explain how interrupts are used to obtain processor time. Explain how processing of.
Operating System Isfahan University of Technology Note: most of the slides used in this course are derived from those of the textbook (see slide 4)
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 2 Computer-System Structures Slide 1 Chapter 2 Computer-System Structures.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 4 Computer Systems Review.
Silberschatz, Galvin and Gagne  Applied Operating System Concepts Chapter 2: Computer-System Structures Computer System Architecture and Operation.
Lecture#15. Cache Function The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Lecture 1: Review of Computer Organization
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Review of Computer System Organization. Computer Startup For a computer to start running when it is first powered up, it needs to execute an initial program.
بسم الله الرحمن الرحيم MEMORY AND I/O.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview: Using Hardware.
Characteristics Location Capacity Unit of transfer Access method Performance Physical type Physical characteristics Organisation.
24/06/20161 Hardware Processor components & ROM. 224/06/2016 Learning Objectives Describe the function and purpose of the control unit, memory unit and.
Computer Systems Overview. Lecture 1/Page 2AE4B33OSS W. Stallings: Operating Systems: Internals and Design, ©2001 Operating System Exploits the hardware.
1 Computer System Overview Chapter 1. 2 Operating System Exploits the hardware resources of one or more processors Provides a set of services to system.
Chapter 2: Computer-System Structures
Chapter 1 Computer System Overview
Cache Memory.
Introduction to Computer Architecture
Architecture Background
Computer System Overview
Module 2: Computer-System Structures
Introduction to Computer Architecture
Chapter 6 Memory System Design
Components of a CPU AS Computing - F451.
2.C Memory GCSE Computing Langley Park School for Boys.
Module 2: Computer-System Structures
Chapter 1 Computer System Overview
Chapter 2: Computer-System Structures
Chapter 2: Computer-System Structures
Module 2: Computer-System Structures
Module 2: Computer-System Structures
Presentation transcript:

© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview: Using Hardware

© Janice Regan, CMPT 300, May Memory  Modern computers use several kinds of storage registers 1 nsec < 1KB Cache 1.5 nsec 6 nsec 8 MByte Main Memory ( RAM volatile. ROM non volatile) 10 GByte DISK 3000 GByte5 msec Flash Memory (non volatile, rewritable) CD, DVD, USB memory stick

© Janice Regan, CMPT 300, May Memory Hierarchy  As you go down the pyramid  Decreasing cost per bit, Increasing capacity  Increasing access time, Decreasing frequency of access  Note that the fastest memory, sometimes referred to as primary memory, is usually volatile (register, cache, most or all of main memory)  Non volatile (continues to store information when the power is off) memory is usually slower. Usually not part of the CPU. Referred to as secondary or auxiliary memory. Examples flash memory (flash that holds the BIOS, or removable flash), internal and external hard drives, CD, tape, …

© Janice Regan, CMPT 300, May Registers and cache  Parts of the CPU  Register access speed comparable to CPU clock speed  In the most recent generations of CPUs cache memory may be as fast or as much as several times slower  Registers  (64x64 for 64 bit, 32x32 for 32 bit usual maximum)  Usually < 1 Kbyte  Cache  As much as 8Mbytes as little as none

© Janice Regan, CMPT 300, May Concept of Cache  Provide memory on the CPU that is slower that the registers, cheaper and larger than registers, but can be accessed must faster than main memory  The next few instructions, and data that will be needed will be loaded into cache in anticipation of faster access by the processor.

© Janice Regan, CMPT 300, May Cache and main memory CPU Registers Cache Main memory

© Janice Regan, CMPT 300, May Using Cache  Instructions (and data) are generally moved from main memory to cache in blocks, In main memory one of these blocks (N bytes of memory) is called a cache line  Cache has a series of slots, (N byes long, often 64 bytes) Each slot can hold a copy of one cache line in main memory.  There are many more cache lines of memory in main memory than there are slots in the cache memory.  Each time a copy of a new cache line is loaded into a cache slot, the contents of that slot is overwritten

© Janice Regan, CMPT 300, May Cache design  Cache size and Cache line size  Determined to optimize access time  Mapping function  Which cache lines may be loaded into which cache slots (can any line go in any slot or is there a mapping function to define rules governing which line can be place in which slot)  Replacement algorithm  When is a cache line in a cache slot replaced by another cache line

© Janice Regan, CMPT 300, May Hit ratio  A CPU access that finds its information in the faster cache memory is called a hit.  If it is necessary to also access the slower main memory (or lower level cache) to find the information then the access is not a hit it is a miss.  The proportion of accesses that are hits is called the hit ratio  Consider an example,  Assume that any access to the cache takes.01μs, any access to main memory takes 0.1μs (100 nsec)  Any instruction or piece of data not in cache will have to be accessed in main memory and moved to cache before being accessed ( )μs  For a hit ratio of x% what is the average memory access time

© Janice Regan, CMPT 300, May Hit ratio

© Janice Regan, CMPT 300, May Cache Line size  As block size (cache line size) increases from a single byte the hit rate will, at first increase.  It is very likely that bytes near a needed byte will be accessed at about the same time  But as cache line size increases the number of lines decrease  As cache line size increases past it’s optimal value then the hit rate will begin to decrease  This happens when it becomes more probable that the next access will involve the cache line that was removed from the cache slot used for a recent addition  This also depends on the mapping function and replacement algorithm which determine which slot will be used for the next cache line moving into cache

© Janice Regan, CMPT 300, May Effect of Line size (example) NOTE: MB/s = 1/nsec * 1000

© Janice Regan, CMPT 300, May Cache specifications on common systems  Most modern systems have an onboard cache (like we have been discussing) called an L1 cache  Many modern systems also have a 2 nd and / or 3 rd level of cache between the L1 cache and the main memory called the L2 (L3) cache.  L2 cache was external to the CPU, on a separate chip on the motherboard, in systems as recent as pentiumII  In more recent systems L2 cache is in the CPU package (onboard) or part of the CPU itself (on die)

© Janice Regan, CMPT 300, May Multiple levels of cache: L2 CPU Main memory registers L1 cache (data) L1 cache (instructions) L2 Cache

L © Janice Regan, CMPT 300, May Multiple levels of cache: L3 Main memory registers L1 cache (data) L1 cache (instructions) L2 Cache registers L1 cache (data) L1 cache (instructions) L2 Cache L3 cache core1 core2

Modern Cache Architectures © Janice Regan, CMPT 300, May Core 2 Duo Core2 Quad Nehalem (i5, i7) AMD K10 (Phenom 9) Shared cache requires more complicated cache controller Individual caches are more difficult to keep synchronized

Main memory  RAM (random access memory)  Mostly volatile: contents lost when power cycles  May include a small amount of non volatile RAM (or ROM) that is often used to hold basic information Bootstrap loader BIOS (Basic input output system) © Janice Regan, CMPT 300, May

Disk  Hard disk  CD DVD Blu-Ray Disk storage is much cheaper that memory  (3GB memory or 2000GB disk about the same cost)  Access time for disk is at least one order of magnitude slower than for memory © Janice Regan, CMPT 300, May

Input / Output  Reading or writing data from a storage device is not simple  Each device has its own controller (hardware)  Each device is managed by a device driver (software to use the controller) Device drivers are specific to hardware and to the operating system using the device  Input and output is SLOW in comparison to CPU operations. © Janice Regan, CMPT 300, May

Busy Waiting  Reading or writing data to a storage device is SLOW in comparison to the time it takes to complete one CPU operation  The CPU must send one or more instructions to the controller (device driver) to make the I/O device begin to read or write. These instructions tell the controller where to find the data and/or where to store the data  The CPU can then wait until the I/O operation is finishes.  While it waits the CPU will be in a loop  Each time through the loop the CPU will check a register in the controller to see if the I/O operation is complete  This is called busy waiting. © Janice Regan, CMPT 300, May

Alternatives to Busy waiting  CPU is a valuable resource, busy waiting does not efficiently use CPU resources  Want to use the CPU to execute other instructions while the I/O operation is completed by the I/O device (instead of executing the busy waiting loop)  To use the CPU for other calculations while to I/O device controller completes the I/0 operation we need to use interrupts (a mechanism to tell the CPU when the controller completes the I/O) © Janice Regan, CMPT 300, May

© Janice Regan, CMPT 300, May Interrupts  Interrupts are a mechanism by which other modules (memory, I/0, timers …) may interrupt the normal sequence of instructions being executed by the processor  Interrupts are a critical component of the operation of spooling and multiprogramming (more later).  Interrupts allow the transfer of control between different programs (remember the OS is also a program)  Interrupts can be generated by hardware (asynchronous) or by particular instructions in software (synchronous)

© Janice Regan, CMPT 300, May Some types of interrupts  I/0  Signaling normal completion of an operation (read or write)  Signaling error during operation  Timer expiry  Begin regularly scheduled task  End task that has exceeded allocated time  Program generated  Instruction causes hardware error condition (divide by 0, overflow, illegal instruction or address, interrupt instruction …)  Hardware failure  Parity error …

© Janice Regan, CMPT 300, May Increase in efficiency No interrupts B1 With interrupts Write Instruction B2 CPU (processor) wait ISR execution B3 Complete Write Time

© Janice Regan, CMPT 300, May Interrupt example: Output (1)  Program executes until it reaches a write instruction  The write instruction sets up the hardware output device operation then leaves the output device controller (not the CPU) processing the output  The program continues execution of additional instructions (N+3 to N+7 next slide)  When the output hardware device completes the output operation it generates and sends an interrupt signal to the CPU signaling normal completion of output

© Janice Regan, CMPT 300, May Interrupt example Output (2)  When the presently executing instruction completes the program is interrupted  The registers and state are saved  An interrupt service routine completes the output operation  The registers and state are restored  The original program continues executing

© Janice Regan, CMPT 300, May Interrupt operation Instruction N Instruction N+1 Write instruction Instruction N+3 Instruction N+5 Instruction N+7 Instruction N+8 Instruction N+9.:.: ISR (interrupt service routine) program Print hardware Initialize hardware, Begin print Print complete Send interrupt Save registers and state Restore registers and state B1 B2 B3

© Janice Regan, CMPT 300, May Instruction cycle with interrupts START Fetch Decode execute Check for interrupt Interrupts enabled Interrupts disabled

© Janice Regan, CMPT 300, May Interrupt processing (1)  A device issues an interrupt request  The CPU (processor) finishes execution of the present instruction  The CPU tests to see if there is a pending interrupt, determines there is, and sends a acknowledgement to the device requesting the interrupt  The CPU saves registers and state to the stack (including the program counter register value)  The CPU loads the address of the appropriate ISR (interrupt service routine) into the address register

© Janice Regan, CMPT 300, May Interrupt processing (2)  The CPU executes the ISR  When the ISR is complete the saved register and state information is restored to the CPU registers  The program counter is reset to point to the next instruction  The original program continues execution REMEMBER: the time when an interrupt occurs is not known in advance!! Interrupts are asynchronous

How to find the ISR?  Each device, and each possible reason for an interrupt will have a different ISR, because different things need to be done  Each interrupt will send a particular signal (and/or use a particular hardware line).  The signal (and / or origin of the signal) will indicate which ISR should be chosen from the ISR vector  There may be a limited number of available lines / signals that must sometimes be shared between hardware devices (e. g. IRQ’s) © Janice Regan, CMPT 300, May

© Janice Regan, CMPT 300, May Interrupt Service Vector ISR (interrupt service routine) Save registers and state Restore registers and state To ISR A To ISR B To ISR C To ISR D ISR vector Interpret signal or line to choose interrupt