311 likes | 551 Views
Operating Systems. CIS 432. David Goldschmidt, Ph.D. Computer Science The College of Saint Rose. What is an Operating System?. An Operating System is the software interface between hardware and its users (via application software) Operating systems: Execute user and system programs
E N D
OperatingSystems CIS 432 David Goldschmidt, Ph.D. Computer Science The College of Saint Rose
What is an Operating System? • An Operating System is the software interface between hardware and its users(via application software) • Operating systems: • Execute user and system programs • Manage & coordinate computer hardware • Serve as resource allocators • Are typically interrupt-driven
Operating Systems • System Software • Computer programs that directlycontrol the operations of thecomputer and its devices • Operating System • Coordinates and orchestrates all activitiesof the hardware devices in a computer • Provides a Graphical User Interface (GUI) forusers to interact with the computer
Design Goals of an Operating System • From a user’s perspective, an operating system should be: • easy to use • easy to learn • reliable • safe • fast • System goals ofan operating system typically include: • reliability • flexibility • extensibility • speed • efficiency • maintainability
Functional Components • Functional components of anoperating system include: • Process manager • Memory manager • Virtual memory manager • File manager • Device manager
History of Operating Systems • In the beginning… …the 1940s ENIAC
computerprograminside History of Operating Systems • Automation in the 1950s using punch cards
Batch Jobs • A job is a unit of work submitted by a user tothe operating system, typically consisting of: • a program either in a sourcelanguage or in binary form • a set of input data used bythe program when it executes
History of Operating Systems • IBM 360 introduced… …in 1964
Multiprogramming • In multiprogramming, several jobs reside in memory simultaneously • CPU use is sharedand managed by theoperating system
Multiprogramming • Multiprogramming provides efficient use of the computer (CPU) and its resources (e.g. I/O) • One user cannot keep theCPU and I/O devices busyat all times • Each running program iscalled a job • Multiprogramming organizesjobs such that the CPU alwayshas exactly one to execute
Multiprogramming • Computer is often idle – why? • CPU and hardware muchfaster than I/O • When a user or process isblocked waiting for I/O,the operating system switchesto another job • A subset of jobs is storedin memory, awaiting CPUor other resources
Timesharing (Multitasking) • To ensure fairness, consider a timesharing scheme in which the CPU cycles through all jobs • Each job (process) is givena fixed amount of CPU time • Switching from one runningprocess to another is calleda context switch • A process may relinquish itstime if blocked on an I/O request
Timesharing (Multitasking) • Unless blocked on I/O, processes line up,awaiting their turn with the CPU • CPU scheduling algorithmis necessary to efficientlydecide the order in whichprocesses execute • If processes do not fit intomemory, the operating systemwill swap them in and out ofmemory from virtual memory
and the Apple IIe History of Operating Systems • Personal computer revolution… …of the late 1970s and early 1980s
History of Operating Systems • World Wide Web and Internet revolution… …of the 1990s and 2000s
…and networked system bus Computer System Organization • Computer systems are increasingly complex • Require an operating system to coordinate and control hardware activities
Computer Networks • A Local Area Network (LAN) is a networkof machines coveringa limited geographicalarea • A Metropolitan AreaNetwork (MAN)covers more denselypopulated area
Computer Networks • A Wide Area Network(WAN) covers multiplelocations • Each location consistsof one or moreLANs or MANs
Computer Networks • LANs connect to other networks via a router
Central Processing Unit (CPU) • Software instructions are executed bya Central Processing Unit (CPU) • An external hardware event triggersan interrupt by signaling the CPU • e.g. mouse movement, keyboard event • Software triggers an interrupt byexecuting a system call • e.g. disk read, graphics output, printer output
Interrupt Mechanism • Interrupts are handled much like calling a function or method in a programming language I/O devicestypically use abuffering strategy
interrupt processing times vary… …as do I/O transfer times Typical Interrupt Timeline
Synchronous & Asynchronous I/O Synchronous Asynchronous
very fast very small volatile very slow very large Hierarchical Storage Architecture non-volatile
why implement caching in an operating system? What is Caching? • Caching is a technique totemporarily store data ina smaller and fastermemory component
Performance • A key goal in operating system design isachieving fast and efficient performance
Retrieving Data from a Cache • When the operating system attempts to read from memory, check to see if the requested data is already in the cache • If it is, data is read from the cache (fast!) • If not, data is copied from memory to the cache (maybe next time…)
memory location X Principle of Locality • When a running program reads from memory location X, the principle of locality predicts that the next memory location requested will be near X • Store pages of data in a cache, where each page is typically the same size (e.g. 16KB)