180 likes | 325 Views
Characteristics Large, complex set of programs Long-lived, evolutionary Worked on by many people over many years. Functions Creates abstractions Multiplexes concurrent activities Manages resources Mediates access to hardware devices
E N D
Characteristics Large, complex set of programs Long-lived, evolutionary Worked on by many people over many years Functions Creates abstractions Multiplexes concurrent activities Manages resources Mediates access to hardware devices Provides a variety of services to users and applications What is an Operating System? Class Discussion CS502 Spring 2006
Abstractions:– Implements processes & threads Implements virtual memory & manages memory Provides interprocess communication (IPC) Implements file system. Manages persistent storage of information Controls I/O Implements networking & communications Definition — Same as judicial definition of pornography “I cannot define it, but I sure can recognize one when I see it!” What is an operating system? (cont’d) CS502 Spring 2006
What is an Operating System XYZ Office Media Player Business Appl. Prog. Tools Services UI/Shell Practical OS OS Kernel Traditional OS Hardware Interfaces – Registers, etc. CPU I/O Controllers CS502 Spring 2006
Major OS Issues • structure: how is the OS organized? • sharing: how are resources shared across users? • naming: how are resources named (by users or programs)? • security: how is the integrity of the OS and its resources ensured? • protection: how is one user/program protected from another? • performance: how do we make it all go fast? • reliability: what happens if something goes wrong – hardware or software • extensibility: can we add new features? • communication: how do programs exchange information • concurrency: how are parallel activities created and controlled? • scale: what happens as demands or resources increase? • persistence: how do you make data last longer than program executions? • distribution: how do multiple computers interact with each other? • accounting: how do we keep track of resource usage, and charge for it? CS502 Spring 2006
Operating Systems • Large, complex programs • Typically • Long-lived • Frequently extended and updated • Worked on by a number of developers • Used and, maybe abused by a variety of users with varying expertise and expectations • Essential to create an acceptable computing environment to create and execute other programs that achieve business or personal goals CS502 Spring 2006
Kinds of operating systems • Stand-alone machines – no OS • Simple batch monitors • Concurrent I/O and programs • Time-sharing, multiple users, interactive • Servers, non-stop systems, transaction processing • PC’s, workstations • Multiple processor systems • Real-time systems • Embedded systems CS502 Spring 2006
Stand-alone machines – no OS Manually scheduled “jobs,” reset between jobs Early business computers E.g., IBM 1401/1460 Early mini-computers E.g., PDP1, PDP5, PDP8, etc. Simple batch monitors Simple “monitor routine” switches between jobs Input loaded onto tape off-line Output to tape is punched and/or printed off-line Typical university computing centers IBM 7090, Univac, etc. Kinds of operating systems (1) CS502 Spring 2006
Kinds of operating systems (2) • Concurrent I/O and programs • SPOOL-ing (Simultaneous Peripheral Operation On Line) • Allows direct input & output • Multiple programs resident in memory at once • Keeps processor busy • On-line file storage • Some support for terminals, telecommunications • Early business computers • E.g., IBM 7070, IBM 360 & 370 • Scientific computing • E.g., Control Data 6600, IBM 360/91 CS502 Spring 2006
Kinds of operating systems (3) • Time-sharing, multiple users, interactive • Many concurrent users “logged on” • Interactive editing and computing • Self submission of batch jobs • Protection among users, protection among jobs • Fair allocation of resources • All university computing centers since about 1970 • E.g., MULTICS, IBM 360/67, DEC PDP-10, PDP-20 • Advanced minicomputers • DEC, Data General, Prime, etc. • Unix CS502 Spring 2006
Kinds of operating systems (4) • Servers, non-stop systems, transaction processing • Banking, airline reservation • Online databases • Many very short “transactions” • Tandem, Stratus, Sequoia • Unix, Linux, Solaris, HP-UX • Windows Server 2000, 2003 • Oracle, SAP (?) CS502 Spring 2006
PC’s, workstations CP/M, DOS, MS-DOS Apollo Domain Unix, Solaris, HP-UX Mac OS Windows 95, 98, Me Windows 2000, XP Linux Multiple processor systems Beowulf clusters Unix, Solaris, HP-UX, Linux Kinds of operating systems (5) CS502 Spring 2006
Real-time systems SAGE (North American air defense) Process control (steel mills, refineries, etc.) Large and small; computers you never heard of VxWorks, etc. Embedded systems Auto ignition Cell phone, PDA Appliances … Kinds of operating systems (6) CS502 Spring 2006
OS History – Unix & Linux • Unix • Descendant of Multics • First “C” version in 1973 (DEC PDP-11) • Timesharing for < 10 users on 32K Memory • Many Unix versions at BTL – different goals • Source code made available to Universities – BSD • Posix (start 1981) defines standard Unix system calls • AT&T licensing! CS502 Spring 2006
OS History - Linux • Open Source – Linux.org • First Version 1991, Linus Torvalds, 80386 processor • v.01, limited devices, no networking, • with proper Unix process support! • 1994, v1.0 • networking (Internet) • enhanced file system • many devices, dynamic kernel modules CS502 Spring 2006
OS History - Linux • 1996, v2.0 • multiple architectures, multiple processors • threads, memory management …. • Gnome UI – introduced in 1999 • Recent • V2.4 - 3 million lines of code • 7-10 million users • Growth by 25%/year through 2003 • Growing use in business server market • Note - Development convention • Odd numbered minor versions “development” • Even numbered minor versions “stable” CS502 Spring 2006
OS History – Windows NT/2000/XP • Key designer – David Cutler also designed VAX/VMS • 1988, v1 - Win32 API – “microkernel” • 1990, v3.1- Server and Workstation versions • 1996, v4 • Win95 interface • Graphics to kernel • More NT licenses sold than all Unix combined • Microkernel de-emphasized CS502 Spring 2006
OS History – Windows NT/2000/XP • Windows 2000 – NT5.0 • Multi-user (with terminal services) • Professional - desktop • Server and Advanced Server - Client-server application servers • Datacenter Server - Up to 32 processors, 64 GB RAM • Windows XP • Windows 2000 code base • Revised UI • EOL for DOS/Windows line CS502 Spring 2006
OS History – Windows NT/2000/XP • Microsoft has 80% to 90% of OS market • Wintel – Windows + X86 • WinNT 4.x is 12 million lines of code • Win2000 is 18 million lines of code CS502 Spring 2006