Operating Systems Design 1996-97 Fall Allan Gottlieb Text: Silbershatz and Galvin ------------------- Some administrivia -------------- All registered students are entitled to a sun acct (wwh 405) Reaching me Office Hours TT 4-5 email gottlieb@nyu.edu x8-3344 715 bway room 1001 Midterm & Final & Labs & HW Lab != HW Describe both Labs can be run on home machine ... but you are responsible Upper Left board for announcements ... but you are responsible. Handouts are low tech, not great (a feature!) ------------- End of Administrivia ---------------- Layers of abstraction used to hide details Applications and Utilities Libraries OS proper (kernel) Hardware All but applications are sys software. Sometimes called operating system OS raised the level of abstraction and hides details like devices from its users. OS, i.e. kernel, is itself layered Device (machine) independent device drivers machine specific code. Some kernels are more extensively layered with some abstractions implemented in terms of others. Filesystem may be on top of other abstractions. The OS is a resourse mgr (so users don't conflict) The OS is a control program (similar) OS goals: Convenience to user; efficiency. How is OS different from say compilers? Concurrency ! "The main difficulty of multiprogramming is that concurrent activities can interact in a time-dependent manner, which makes it practically impossible to locate programming errors by systematic testing. Perhaps, more than anyything else, this explains the difficulty of making operating systems reliable" Per Brinch Hansen, *Operating Systems Principles* 1973 Show failure. Interrupt handler puts request on list. Main line OS code removes. #items++ #items-- Homework: Fix the above failure History (VERY brief) Single User (No OS) Mention bendix G15 and IBM 1620 experiences paper tape, cards, delete key, scotch tape, etc Batch: Uniprogrammed, run-to-completion Resident monitor Online devices "Concurrent" I/O: Pipelined parallelism Offline pre- and post-processing (tapes) Spooling (disk) Multiprogramming Overlap CPU and I/O of a single job Multiple batches CPU Scheduling (which ready job to run MFT vs MVT Latter potentially more efficient but brings in serious mem mgt questions. Time sharing PREEMPTIVE job scheduling Often use (on-) demand paging (aka virt mem, but not by me) PCs and workstations Commodity OS Strong push for distributed systems and networked systems Multiprocessor OS Master Slave Symmetric Distributed systems Resource sharing Communication Speedup (not so clear) Reliability (not so clear) a distributed system is one in which a computer I've never seen can stop me from getting my work done--loosely quoted from somewhere Real-time systems Soft vs hard -- In the latter missing a deadline is fatal, perhaps literally Homework: 1.1 1.3 1.5 1.8 1.11 "why are dist sys not desirable?" End of Ch 1. ==================== End of Lecture 1 ===========================