80 likes | 171 Views
What is an O.S.?. Layers of a Computer System Hardware Operating System Utilities Application Programs Services typically provided by an O.S. Program Creation (editor, compiler) Program Execution Access to I/O devices Controlled access to files System Access (logging in)
E N D
What is an O.S.? • Layers of a Computer System • Hardware • Operating System • Utilities • Application Programs • Services typically provided by an O.S. • Program Creation (editor, compiler) • Program Execution • Access to I/O devices • Controlled access to files • System Access (logging in) • Error detection/response • Accounting • Must manage system resources • Kernel – Most frequently used items • O.S. will evolve over time • Hardware upgrades, New services, Fixes
O.S. History • Serial Processing • Sign-up sheet for computer time • Each user would set up the job, run it, and collect output • Simple Batch System (mid 1950s) • Try to improve scheduling/setup time • Have a monitor that loads jobs, when a job finishes it jumps to the monitor that loads the next job. • Use JCL (Job Control Langague) to submit jobs • Desirable hardware items: • Memory protection • Timer • Privileged instructions (I/O) • Interrupts • Multiprogrammed Batch System • Several programs in memory at one time • One program can do I/O while another computes • Needs memory management, scheduling
Time-Sharing Systems • Allow several users to interact with the system at the same time • Emphasizes response time over processor use • Compatible time sharing system (CTSS) – 1962 • Machine had 32K 36-bit words • Switched users every 0.2 second • Supported up to 32 users • MULTICS (1965) • Intended as the computer service for Boston • Strong influence on later systems • Good security, user interface • Note systems tend to grow over time as user requirements expand • MS-DOS 1.0 (8k, 1981) • DOS 2.0 – Subdirectories (1983) • DOS 3.1 – Networking (1984) • Windows 3.1 – Graphical interface (1990) • Windows 95 – 32-bit internals (1995) • Single-user multitasking (windows 95)
O.S. Issues • Process. • Hard to define formally, but think of a running program. • Three main components: • Executable program. • Data for that program. • Context (registers, files, etc.) For the program. • O.S. Needs to maintain proper synchronization between processes (mutual exclusion, avoiding deadlock). • Main causes of errors: • Improper synchronization. • Must wait for someone else to finish. • Failed mutual exclusion. • Assigning two passengers to the same seat. • Nondeterminate program execution. • Output depends on other programs. • May be a result of misused common memory. • Deadlock. • Two processors each waiting for the other to do something.
O.S. Issues • Memory management • Isolate processes from each other (shared memory may be allowed). • Should allow only appropriate accesses. • Often implemented using virtual memory. • Automatically move data between main memory and disk. • Support modular programs. • Support long-term storage. • Security • Control use of the system, access to files and other resources. • Areas of concern by O.S. Developers: • Access control. • Information flow control. • Certify above controls are correct.
O.S. Issues 2 • Scheduling • Resource allocation and scheduling • Fairness/priorities/efficiency • System structure • As systems grow larger, rely on modules, layers of abstraction (table 2.4 page 78) • Electronic circuits • Instruction set • Procedures • Interrupts • Primitive processes • Local secondary storage • Virtual memory • Communications • File system • Devices • Directories • User process • Shell
Modern Systems • Multithreading • Allow a process to consist of one or more threads that share memory, files, etc. • Helps with structuring programs • Microkernel • Assign only essential functions to the kernel (memory, communication) • Other items run as user processes • Symmetric multiprocessing • System may have two or more equivalent processors that share memory, I/O • Distributed operating system • Provide illusion of a single system from several entities • Object-orientated design • Easy to extend the operating system
Modern Systems • Windows 2000 • Single-user multitasking • One user running multiple programs • Modified microkernal architecture • Support for DOS/Win9x programs • Uses client/server model, objects • Supports threads and SMP • Unix • Created for PDP-7 (1970), PDP-11 • Used ideas from MULTICS, CTSS • Rewritten in C, source was available • Easy to port to new systems • SVR4, Solaris 2.x, 4.4 BSD • Linux • Derived from Minix by Linus Torvalds • Handled by volunteers • Monolothic kernel • Can load/unload kernel modules