Outline Recall... Characteristics of an OS A short history of computer systems CS211: Lecture 2 Niall Madden Friday, 11 Sep 2009 CS211 — A short history of computer systems Recall... 1/21 1 Recall... Characteristics of an OS 2 Types of Computer Systems Batch Systems (1950’s) Multiprogramming (’60s) Multitasking (1970s +) PCs (1980’s +) Multiprocessor (’80s+) Real-time Systems Distributed Systems Mobile Computing Different ways one may characterise an operating system: After the computer is booted, it is the first program to run. All other programs are run by it. It provides an interface between users and the computer’s hardware. It is a resource allocator – it gives access to the CPU, RAM, mass storage, etc., and makes efficient use of resources. It controls the execution of (all) other programs. It is running at all times – this part of the Operating System is often called the kernel. CS211 — A short history of computer systems 2/21 Types of Computer Systems Characteristics of an OS CS211 — A short history of computer systems 3/21 Types of Computer Systems Batch Systems (1950’s) Processor speeds measured in kHz. Programs were stored on cards – a fast card reader could handle up to 20 cards per second! Examples of Operating Systems include: Microsoft: Windows NT (XP, Vista, 7), etc. Apple: MacOS/Darwin, iPhone OS GNU/Linux Batch Systems Google Chrome(?) Multiprogramming Systems Other UNIX-type operating systems: Solaris (Sun), HP-UX (HP), Tru 64 (Digital/Compaq Alpha), AIX (IBM) Multitasking Systems VMS (Virtual Memory System). Latest version: OpenVMS (Oct ’08) Multiprocessor Systems Personal Computers Distributed Systems Exercise Write a short essay (no more than 200 words) on any operating system other than those listed above. Send your essay by email to Niall.Madden@NUIGalway.ie no later than Thursday 19/09/09. CS211 — A short history of computer systems Programs submitted by hand to the operator who put complementary programs into separate “batches” and loaded them. 4/21 CS211 — A short history of computer systems 5/21 CS211 — A short history of computer systems 6/21 Types of Computer Systems Batch Systems (1950’s) Types of Computer Systems Batch Systems (1950’s) The OS took the form of the resident monitor – consisting of The solution is to over-lap job execution with I/O. The OS would simultaneously Card Interpreter – read and carry out instructions on cards. Loader – place system and application programs into memory. Device Drivers – manage the Input and Output (I/O) devices. Biggest problem with Batch Systems was slow performance: I/O and CPU operations could not overlap; the CPU was much faster than the card reader but had to wait for instructions to be read in. CS211 — A short history of computer systems BASIC IDEA: Processors run faster than I/O devices. BASIC GOAL: Keep the processor in use at all times. Read the next jobs from card reader onto a disk Several jobs are selected from a job pool and are loaded into memory. Execute the current job The OS selects one and starts to executing it. Output the results of the previous job to the printer. If that job is delayed (waiting for I/O) the CPU selects another and runs that instead. When that one is delayed, a 3rd is selected and that is executed. With the advancement of disk technology, job scheduling became possible. In particular, the concept of Multiprogramming was introduced. 7/21 CS211 — A short history of computer systems Types of Computer Systems Multiprogramming requires the OS have certain components: BASIC IDEA: for interactive computing the CPU must be able to switch between jobs quickly Job scheduling: must decide which jobs are selected from the pool and loaded into memory together. Eventually, by the time the OS returns to the first job it should have completed the I/O by then. 8/21 Types of Computer Systems Multiprogramming (’60s) CS211 — A short history of computer systems Types of Computer Systems Multitasking (1970s +) 9/21 Multitasking (1970s +) A Time-sharing/multitasking system must have the following facilities: multiprogramming and CPU scheduling BASIC GOAL: to give the impression to users/programs that they have exclusive use of the computer CPU scheduling: if job X is delayed, must have a mechanism for selecting which job replaces it. more that one job executing at a given time – processes Memory management and virtual memory The CPU gives a small amount of attention to each available job. This is called Time Sharing. This gives the impression that all the jobs are running at the same time. Memory management Memory and File protection: make sure that different jobs don’t try to write to the same location in memory or the on disk drive File systems and Disk management process synchronisation and communication Most modern Operating Systems are multitasking. Instead of submitting programs on cards to the operator, several users (2, 10, 100...) interact with the computer at the same time, using key-board/mouse/whatever. In order to make key-board driven, multi-user computers feasible the idea had to be extended further, if only because typing is much slower that even card reading. This leads to Multitasking CS211 — A short history of computer systems Types of Computer Systems Multiprogramming (’60s) The systems mentioned above had many concepts in common. One crucial one was that Computer time was expensive and People’s time was cheap. Typing is slow: about 1 key-press every 0.1s. Between key-presses, the CPU has time to perform other tasks such as reading another user’s key–strokes. 10/21 CS211 — A short history of computer systems 11/21 CS211 — A short history of computer systems 12/21 Types of Computer Systems Types of Computer Systems PCs (1980’s +) Also known as micro computers, PCs were cheap compared to mainframes/minicomputers – could afford to have a ratio of Types of Computer Systems PCs (1980’s +) Because only one user was using a computer at any given time, the OS could be much simpler than on the big systems: One user to one Computer BASIC IDEA: to increase a computer’s speed, increase the number of CPUs that it has access to no multiprogramming no security Because user’s time became more valuable than the computers, the operating systems were designed primarily to be easy to use. As limits of processor speeds are reached, high performance computing (where emphasis is on performing as many calculations as possible in a short amount of time) looked to increasing the number of CPUs in a computer. no file/memory protection This was to change because Early PC makers included Apple and IBM. small computers became faster – comparable to speed on mini computers. Multiprocessor Systems vary from dual-processor desk-top systems to “massively parallel computers” with 1000’s of CPUs. use of networking requires security. Advantages: Multitasking Operating Systems were ported to micro-computers. In particular several Unix systems were re-written for Intel (x086) architecture. E.g., Free BSD, SCO Unix, Linux. Ten 1 Ghz chips might be cheaper that one 10 Ghz chip. Faster absolute speeds can be achieved Reliability – if one processor fails, others will keep running. So other OSs such as NT, OS/2 and Mac OS were developed for personal computer but with features of multitasking operating systems. CS211 — A short history of computer systems Types of Computer Systems 13/21 CS211 — A short history of computer systems Types of Computer Systems Multiprocessor (’80s+) There are two basic types of multiprocessing: CS211 — A short history of computer systems Types of Computer Systems Real-time Systems Medical Equipment Note: in general if you can get w units of work done on one processor and you have n processors, you will get less than w × n units done with them. Domestic Appliances Fuel injection systems 16/21 CS211 — A short history of computer systems 15/21 Real-time Systems There are two basic types of real-time system: 1 Hard real-time: no secondary storage (eg., hard-drive), no time-sharing or multiprogramming, data is usually stored in ROM. Operating System lacks components that we study in this course. 2 Soft real-time: Used in real-time systems that require some advanced OS features, e.g., multimedia systems, space exploration, etc. When a time-critical task must be completed, it gets priority over other operations until it completes. Robotics Control Asymmetric multiprocessing: master-slave model. CS211 — A short history of computer systems 14/21 are employed when there are very rigid time constraints – when the system must complete its designated task in a given time frame. Examples include Symmetric multiprocessing (SMP): common on smaller systems, must operating systems have a facility for SMP. All processors are equal (peers) and run a copy of the OS. Multiprocessor (’80s+) 17/21 CS211 — A short history of computer systems 18/21 Types of Computer Systems Types of Computer Systems Distributed Systems Distributed Information Systems are a familiar concept: the World Wide Web is a good example. Instead of all the information being stored on one computer, small amounts are on different computers connect by a network. Types of Computer Systems Distributed Systems Mobile Computing Examples of distributed systems: In a similar manner, computational work may be shared across a network. Computers that work in this fashion are called Distributed or Loosely Coupled Systems Shared Resources (data bases, printers, file systems, ...) 1 Large information servers, e.g., Google. Need to be fast and reliable. 2 Intensive Computational Work. E.g., rendering for animated films are often done using on clusters of PCs running (Beowolf) Linux. 3 Remote computational Systems, e.g., SETI: though this is more an example of distributed computer rather than a distributed operating system. Devices such as the BlackBerry, iPhone have led to a large deal of technology convergence, and leading to a new generation of operating systems. Although we won’t cover these in any great detail, many of the principles associated with traditional computing still apply, but with a strong emphasis on connectivity. KEY IDEA: Distributed Systems are similar to Parallel Systems, but use several/many computers on one network rather than several/many processors in one computer Load sharing – work can be distributed over the different computers so that no one is over-loaded. Reliability – one computer fails, the system will continue to function. CS211 — A short history of computer systems 19/21 CS211 — A short history of computer systems 20/21 CS211 — A short history of computer systems 21/21