Operating Systems Who’s in charge in there?
Types of Software Application Software : Does things we want to do System Software : Does things we need done Low level details
Operating System Operating System : Software that manages the operation of a computer Not all computational systems have an OS – Early computers – Embedded systems
Varieties of OSes Embeded
Varieties of OSes Batch – Submit list of jobs
Varieties of OSes Real Time / Dedicated
Operating Systems PC Operating Systems – Windows – *nix Linux MacOS X Phone OSes – iOS – Android – Windows
Operating Systems What is Linux?
What do they do? Manage hardware resources – Provide an abstraction – Allocate scare resources
Resource Scarcity Resources scarce in – Time Processor IO / Disk – Space Memory Disk OS responsible for allocating scarce resources
Resources - Processes OS manages what process(es) are running – Programs take turns on processor Run until time limit or need to wait OS handles all hardware events
Resources - Memory Main Memory : – Where running programs & data are stored – Computer may have ~4 or 8 billion bytes – Programs can "use" up to 200 trillion bytes (48 bit addresses)
Virtual Address Space Program uses virtual addresses – Nice, orderly OS maps to – Main memory – Hard drive (Virtual Memory)
Other Resources For Keyboard, Monitor, Network, Disks, Printer, OS provides: – Abstraction: Hides ugly details (how bits are stored on disk), provides abstract interface ("MyEssay.doc") – Allocation: Who gets to use what when
Abstraction Abstractions provided via API (Application Programming Interface) Set of functions software can do OS API Features – Functions (blocks) to Read files Use a network Draw windows Get mouse position