260 likes | 575 Views
Computer System Overview. Chapter 1. Operating System. Exploits the hardware resources of one or more processors Provides a set of services to system users Manages secondary memory and I/O devices Provides support for networking/communications. Basic Elements. Processor
E N D
Computer System Overview Chapter 1
Operating System • Exploits the hardware resources of one or more processors • Provides a set of services to system users • Manages secondary memory and I/O devices • Provides support for networking/communications
Basic Elements • Processor • Main Memory (real memory/primary memory) • I/O modules • secondary memory devices • communications equipment • terminals • System bus • communication among processors, memory, and I/O modules
User-Visible Registers • May be referenced by machine language • Available to all programs - application programs and system programs • Types of registers • Data • Address • Index • Segment pointer • Stack pointer
Control and Status Registers • Program Counter (PC) • has the address of the instruction to be fetched • Instruction Register (IR) • Contains the instruction most recently fetched • Program Status Word (PSW) • condition codes / flags • e.g. Interrupt enable/disable, supervisor/user mode • Can be accessed by a program but not altered
Instruction Cycle • The processor fetches the instruction from memory where the Program Counter (PC) is pointing • PC is incremented after each fetch • Fetched instruction is placed in the instruction register and then decoded for execution • Types of instructions • Processor-memory - transfer data between processor and memory • Processor-I/O - data transferred to or from a peripheral device • Data processing - arithmetic or logic operation on data • Control - alter sequence of execution (e.g. jump, branch etc.)
Interrupts • An interruption of the normal sequence of execution • A suspension of a process caused by an event external to that process and performed in such a way that the process can be resumed • Improves processing efficiency • Allows the processor to execute other instructions while an I/O operation is in progress
Interrupt Cycle • At the end of each cycle, processor checks for interrupts • If no interrupts fetch the next instruction • If an interrupt is pending, suspend execution of the current program, and execute the interrupt handler
Classes of Interrupts • Program interrupts • arithmetic overflow • division by zero • execute illegal instruction • reference outside user’s memory space • Timer • I/O interrupt • Hardware failure • Interrupt Handler (ISR – interrupt Service Routine) • Whenever there is an interrupt, control is transferred to this program. It determines the nature of the interrupt and performs the necessary actions to handle it.
Multiple Interrupts • Disable interrupts while an interrupt is being processed • Interrupts remain pending until the processor enables interrupts • After interrupt handler routine completes, the processor checks for additional interrupts OR • Lower-priority interrupt handler can be interrupted (nested)
I/O Techniques • When the processor encounters an instruction relating to I/O, • it executes that instruction by issuing a command to the appropriate I/O module. • Three techniques are possible for I/O operations: • Programmed I/O • Interrupt-driven I/O • Direct memory access (DMA)
disk Disk Direct Memory Access (1) Initiate Block Read • I/O exchanges occur directly with memory without processor involvement • Processor grants I/O module authority to read from or write to memory • Relieves the processor responsibility for the exchange. Processor is free to do other things • The processor is only involved at the beginning and end of the transfer. An interrupt is sent when the task is complete Processor Reg Cache (3) Read Done, interrupt! Memory-I/O bus (2) DMA Transfer I/O controller Memory disk Disk
Multiprogramming • Processor has more than one program to execute • The sequence that the programs are executed depends on their relative priority and whether they are waiting for I/O • After an interrupt handler completes, control may not return to the program that was executing at the time of the interrupt
Memory Hierarchy Going Down the Hierarchy • Cost per bit decreases • Capacity increases • Access time increases • Frequency of accessby the processor decreases
Cache Memory • Processor speed is much faster than memory speed. Therefore, Increase the speed of memory by adding a small fast memory • Cache contains a portion of main memory • Processor first checks cache. If not found in cache, the block of memory containing the needed information is moved to the cache • Because of locality of reference, likely future memory references are in that block • Transfers are not visible to the OS (i.e. no OS involvement)
Cache Design • Cache size • Block size • the unit of data exchanged between cache and main memory • hit means the information was found in the cache • Mapping function • determines which cache location the block will occupy • Replacement algorithm • determines which word in the block to replace • Least-Recently-Used (LRU)
Initializing the Machine • Power up fetch-execute cycle begins • Initial (or hardware) process begins to run • Executes ROM diagnostic program • Then bootstrap loads the OS • OS initialization • Setup & initialize all system data structures • Initialize all devices • Start daemons – including idle process • Branches to the scheduler
0x0000100 BIOS loader Fetch Unit 0000100 PC Decode Unit IR … Execute Unit Bootstrapping Bootstrap loader (“boot sector”) 1 0x0001000 Primary Memory
Fetch Unit 0001000 PC Decode Unit IR … Execute Unit Bootstrapping Bootstrap loader (“boot sector”) 1 0x0000100 2 BIOS loader 0x0001000 0x0008000 Loader Primary Memory
Fetch Unit 0008000 PC Decode Unit IR … Execute Unit Bootstrapping Bootstrap loader (“boot sector”) 1 0x0000100 2 BIOS loader 0x0001000 0x0008000 Loader 3 0x000A000 OS Primary Memory 4. Initialize hardware 5. Create user environment 6. …
Hardware Process Starts BIOS Idle Process Kernel ISRs Process i Process j Program I/O Process running Switch to Another program