A program that acts as an intermediary between a user of a computer and the computer hardware
OperatingSystem
The software responsible for the management and coordination of activities and the sharing of the resources of the computer
Operating System
Use the computer hardware in an efficient manner
Its job is to coordinate the execution of all other software, mainly user applications
Hardware
Provides basic computing resources
CPU, memory, I/O devices
OperatingSystem
Controls and coordinates use of hardware among various applications and users
Application Programs
Define the ways in which the system resources are used to solve the computing problems of the users
Users
People, machines, other computers
Von Neumann Architecture
All temporary computer designs are based on this architecture
Von Neumann Architecture
Data and instructions are stored in a single read-write memory
Contents of memory are addressable by location
Execution occurs in a sequential fashion
I/Odevices and the CPU can execute concurrently
Device Controller
A specialized hardware component responsible for managing the operation of specific types of I/O devices
Local Buffer
A small amount of memory located within the device controller itself
Computer System Operation
1. CPU moves data from/to main memory to/from local buffers
2. I/O is from the device to local buffer of controller
3. Device controller informs CPU that it has finished its operation by causing an interrupt
Components of a Modern OS
Storage Management
Device Management
Memory Management
File Management
Process Management
User Interface
Storage Management
Involves organizing and controlling the computer's storage resources
Device Management
Controls and coordinates the communication between the operating system and peripheral devices connected to the computer
Memory Management
Oversees the allocation, deallocation, and sharing of the computer's memory resources
File Management
Organizes and manipulates files and directories stored on the computer's storage devices
Process Management
Oversees the creation, scheduling, execution, and termination of processes on the computer system
Interrupt
A mechanism used in computer systems to handle events that require immediate attention or priority processing
Interrupt Service Routine (ISR) / Interrupt Handler
Responsible for handling the event associated with the interrupt
Interrupt Handling
1. The operating system preserves the state of the CPU by storing registers and the program counter
2. Determines which type of interrupt has occurred (polling or vectored)
3. Separate segments of code (interrupt service routines) determine what action should be taken for each type of interrupt
Device-status table
Contains entry for each I/O device indicating its type, address, and state
DirectMemoryAccess (DMA)
Used for high-speed I/O devices able to transmit information at close to memory speeds
Device controller transfers blocks of data from buffer storage directly to main memory without CPU intervention
Only one interrupt is generated per block, rather than one interrupt per byte
Main Memory
The only large storage media that the CPU can access directly
Secondary Storage
Extension of main memory that provides large nonvolatile storage capacity
Magnetic Disks
Rigid metal or glass platters covered with magnetic recording material
Disk surface is logically divided into tracks, which are subdivided into sectors
The disk controller determines the logical interaction between the device and the computer
Caching
A technique used in computing to temporarily store frequently accessed or recently used data in high-speed storage location
AsymmetricMultiprocessing
A multiprocessor computer system where not all of the multiple interconnected central processing units (CPUs) are treated equally
Symmetric Multiprocessing
The processing of programs by multiple processors that share a common operating system and memory
Clustered Systems
Like multiprocessor systems, but multiple systems working together, usually sharing storage via a storage-area network (SAN)
Multiprogramming
Needed for efficiency
Single user cannot keep CPU and I/O devices busy at all times
Organizes jobs (code and data) so CPU always has one to execute
A subset of total jobs in system is kept in memory
One job selected and run via job scheduling
When it has to wait (for I/O for example), OS switches to another job
Timesharing (Multitasking)
A logical extension of multiprogramming where the CPU switches jobs so frequently that users can interact with each job while it is running, creating interactive computing
Response time should be < 1 second
Program
An inactive unit, such as a file stored on a disk
Program
A unit of work that has been submitted by the user