# Overview of OS - What's an OS? - Extended machine (abstraction layer) - Resource Manager - Process - A program in execution (aka job or task) - Has CPU state, or context, in registers - Has allocated resources - PCB = Process Control Block - Memory - Files, network resources --- - Process States - Running - Blocked or wait or suspended - Ready - I/O Methods - Programmed I/O (device driver), write date to device data register, setup other registers, and wait. - Interrupt driven I/O - DMA I/O (Direct Memory Access) - Interrupts are served by DMA - In traditional interrupt driver IO, data are first copied to OS memory space. ## OS Architecture - Layered OS - Not as efficient - errors may need to pass through many layers to go down to hardware - Monolithic - OS composed of a single module - All data and code use same memory space - Low overheads and easy to implement - Microkernel - Remove as much functionality from OS as possible - Security and protection can be enhanced - System expansion can be easier - Hybrid - Distributed