Chapter 1 and 2
Program Execution
A number of steps need to be performed to execute a program. OS handles the scheduled duties.
Application programming interface
API gives program access to hardware resources and services available in a system through the user. System calls performed through libraries.
Multiple interrupts
An interrupt occurs while another interrupt is being processed. Disable interrupts while an interrupt is being processed Use priority scheme
Hardware and Software Structure (Descending)
Application Programs Libraries/Utilities Operating System Execution Hardware BUS - Memory Translation IO Devices and networking - Main Memory
Processor (CPU)
Controls the operation of the computer. Performs the data processing functions.
Principle of Locality
Data is organized so that the percentage of accessed to each successively lower level is substantially less than that of the level above.
Digital Signal Processors (DSPs)
Deal with streaming signals such as audio or video. Encoding/decoding Support for encryption and security.
Mapping Function
Determines which cache location the block will occupy. When one block is read in, another may have to be replaced. The more flexible the function is, the more complex the circuitry needs to be.
Write Policy
Dictates when the memory write operation takes place Can occur every time the block is updated Can occur when the block is replaced. (Minimizes write operations, leaves main memory in an obsolete state.)
System on a Chip
For handhelds DSPs, GPUs, codecs and main memory are on the same chip.
Error detection and response
Handles errors such as hardware, memory, or device failure. OS provides a response that clears the error condition with least impact on applications.
OS Evolution
Hardware upgrades New services Fix OS faults
Program Counter (PC)
Holds address of the instruction to be fetched next. (Increments after each fetch.)
Programmed I/O
I/O module performs the requested action and then sets appropriate bits in the I/O status register.
Role of Operating System
Set of resources for movement, storage, and processing of data. Responsible for managing these resources.
Cache Size
Small caches have significant impact on performance.
Job Control Language
Special language to provide instru
Symmetric Multiprocessor
Stand-alone computer system Two or more similar processors Share same main memory and interconnected Share access to I/o devices Perform same functions Controlled by integrated OS.
Application Binary Interface
Standard for binary portability across programs.
I/O Devices
Storage Device Communication Equipment Terminals
Main Memory
Stores data and programs. Volatile (On shutdown data is lost.) Also called real memory or primary memory.
Controlled Access
Structure of data and protection mechanisms with multiple users.
Block size
Unit of data exchanged between cache and main memory
Replacement Algorithm (LSU)
Used when all cache slots are filled. Replace a block that has been in the cache the longest with no references to it. Replace block that is least likely to be needed again in near future.
Instruction Register (IR)
Fetched instruction is loaded into IR.
Accounting
Collect usage statistics for resources and monitor performance.
Multicore Computer
Combines two or more processors (cores) on a single piece of silicon. Include Level 2 and possibly Level 3 cache
Simple Batch Systems
Computers were expensive Monitor - Batch-processing scheme where user no long has direct access to processor.
Memory Hierarchy
Constraints Amount Speed Expense
Monitor POV
Controls sequence of events Interrupt Processing Device Drivers Job Sequencing Control Language Interpret Boundary User Program Area
OS as software
Executed by the processor Frequently relinquishes control and must depend on the processor to allow it to regain control.
OS Services
Exploits hardware resources of one or more processors. Provides a set of services to system users. Manages secondary memory and I/O Devices.
Secondary Memory
External Nonvolatile Used to store program and data files.
Memory Relationships
Faster Access Time = Greater Cost Per Bit Greater Capacity = Smaller Cost Per Bit Greater Capacity = Slower Access Speed
Interrupt
Interrupts normal sequencing of processor Improves processor utilization. Processor must pause or interrupt to wait for device. Wasteful
Cache Memory
Invisible to the OS. Interacts with other memory management hardware. Processor must access memory at least once per instruction cycle Used principle of locality with it being small, fast, and the first level of memory.
Direct Memory Access
Method that allows an input/output (I/O) device to send or receive data directly to or from the main memory, bypassing the CPU to speed up memory operations. Processor sends DMA module information: Whether read or write requested Address of the I/O device involved Starting location in memory to read data from or write data to Number of words to be read or written
I/O Modules
Move data between the computer and external environments.
Earliest Computer Problems
No operating system - Programmers directly interacted with computer hardware. Scheduling - Most installations used a hardcopy sign-up sheet to reserve computer time. Setup time - Considerable amount of time to set up program and run it.
Access to I/O Devices
OS provides a uniform interface for the peculiar set of instructions so we can access devices using simple read and writes.
Program Development
OS provides a variety of facilities and service.
SMP Advantages (Symmetric Multiprocessor)
Performance - System will yield greater performance with parallel processing. Availability - Failure of single processor does not halt machine. Scaling - Vendors can offer a range of products with difference price and performance characteristics Incremental Growth - An additional processor can be added to enhance peformance.
Computer Elements
Processor I/O Modules Main Memory System Buss
I/O Techniques
Processor executing a program encounters instruction relating to I/O it executes the instruction by issuing command to the appropriate I/O module.
Interrupt-Driven I/O
Processor issues an I/O command and goes to do other work. The I/O module will then interrupt the processor to request service when it is ready to exchange data with the processor. Executes data transfer then resumes former processing
Microprocessor
Processor on single chip. Multiprocessors (Multiple cores) Fastest general purpose processor
Instruction Execution Cycle
Processor reads instructions from memory Processor executes each instruction
Instruction Actions
Processor-memory: Data may be transferred from processor to memory or from memory to processor. Processor-I/O: Data may be transferred to or from a peripheral device by transferring between the processor and an I/O module. Data processing: The processor mayo perform some arithmetic or logical operation on data. Control: Instruction to specify sequence of execution to be altered.
Types of interrupts
Program - Generated by some condition that occurs as a result of an instruction execution such as arithmetic overflow, division by zero, attempt to execute an illegal machine instruction, and reference outside of a user's allowed memory space. Timer - Generated by timer within the processor. Allows OS to perform functions on regular basis. I/O - Signal normal completion of an operation or signal a variety of error conditions. Hardware failure - Generated by failure such as power failure or memory parity error.
OS Services
Program Development Program Execution Access I/O devices Controlled access to files System access Error detection and response Accounting
Operating System
Program that controls the execution of application programs
System Access
Protection of resources and data from unauthorized users and must resolve conflicts for resources.
Graphical Processing Unit. (GPU)
Provide computation on arrays of data using single instruction multiple data techniques. Used for advanced graphics and general numerical processing.
System Bus
Provides for communication among processors, main memory, and I/O modules
Instruction Set Architecture
The ISA defines the repertoire of a machine language instructions that a computer can follow. Boundary between hardware and software.