Mainframe System Large computer system that provides computing services to a " community of users through remotely connected terminals" Goals of early mainframes: Reduce setup time by batching similar jobs. Automatic job sequencing – automatically transfers control from one job to another. Resident monitor initial control in monitor control transfers to job when job completes control transfers back to monitor Operating System Concepts with Java ! 1.1! Batch processing operating system Punch cards for a job in batch processing operating system Operating System Concepts with Java ! 1.2! History of Operating Systems: batch processing Early batch system bring cards to 1401 read cards to tape put tape on 7094 which does computing put tape on 1401 which prints output Operating System Concepts with Java ! 1.3! Evolution of Operating Systems Time Sharing Systems Serial Processing Operating System Concepts with Java ! Simple Batch Systems Multiprogrammed Batch Systems 1.4! Memory protection for monitor • while the user program is executing, it must not alter the memory area containing the monitor Timer • prevents a job from monopolizing the system Privileged instructions • can only be executed by the monitor Interrupts • gives OS more flexibility in controlling user programs Operating System Concepts with Java ! 1.5! Simple Batch System Overhead Processor time alternates between execution of user programs and execution of the monitor Sacrifices: some main memory is now given over to the monitor some processor time is consumed by the monitor Despite overhead, the simple batch system improves utilization of the computer Operating System Concepts with Java ! 1.6! Multiprogrammed Batch Systems Processor is often idle even with automatic job sequencing I/O devices are slow compared to processor Operating System Concepts with Java ! 1.7! The processor spends a certain amount of time executing, until it reaches an I/O instruction; it must then wait until that I/O instruction concludes before proceeding Operating System Concepts with Java ! 1.8! There must be enough memory to hold the OS (resident monitor) and one user program When one job needs to wait for I/O, the processor can switch to the other job, which is likely not waiting for I/O Operating System Concepts with Java ! 1.9! Multiprogramming also known as multitasking memory is expanded to hold three, four, or more programs and switch among all of them Operating System Concepts with Java ! 1.10! Multiprogramming Example Operating System Concepts with Java ! 1.11! Effects on Resource Utilization Table 2.2 Operating System Concepts with Java ! Effects of Multiprogramming on Resource Utilization 1.12! Utilization Histograms Operating System Concepts with Java ! 1.13! Can be used to handle multiple interactive jobs Processor time is shared among multiple users Multiple users simultaneously access the system through terminals, with the OS interleaving the execution of each user program in a short burst or quantum of computation Operating System Concepts with Java ! 1.14! Operating System Concepts with Java ! 1.15! Memory Layout for a Simple Batch System Operating System Concepts with Java ! 1.16! Multiprogrammed Batch Systems Several jobs are kept in main memory at the same time, and the " CPU is multiplexed among them. " Operating System Concepts with Java ! 1.17! Multi-programming by sharing CPU CPU time is still wasted to wait for I/O Operating System Concepts with Java ! 1.18! Use of Buffering to Save CPU-time Overlap the I/O of one job with its own computation Operating System Concepts with Java ! 1.19! Mainframe computer in 1967 Modern Mainframe Computer IBM System/360 Mainframe Computer Operating System Concepts with Java ! 1.20! OS Features Needed for Multiprogramming I/O routine supplied by the system. Memory management – the system must allocate the memory to several jobs. CPU scheduling – the system must choose among several jobs ready to run. Device allocation- which I/O to be used by which job. Operating System Concepts with Java ! 1.21! Concurrency in Multiprogramming Systems that are designed to concurrently execute more than one task Operating System Concepts with Java ! 1.22! Time-Sharing Systems: Interactive Computing CPU is multiplexed among several jobs that are kept in memory and on disk. Job swaps in and out of memory to the disk. On-line communication between the user and the system When the operating system finishes the execution of one command, it seeks the next “control statement” from the user’s keyboard. On-line access to data and code system must be able to provide data and code to the user. Operating System Concepts with Java ! 1.23! Timesharing (multitasking) Systems that allow multiple users (programs) to run concurrently. The system switches from one user to another. Operating System Concepts with Java ! 1.24! Desktop Systems Personal computers – computer system dedicated to a single user; PC appeared in the 1970s. Computer usability is the main goal. I/O devices – keyboards, mice, display screens, small printers. User convenience and responsiveness. Technology for larger operating system can be adopted. Single user. Often individuals have sole use of computer and do not need advanced CPU utilization or protection features. Different types of operating systems, Windows, MacOS, UNIX, Linux. Operating System Concepts with Java ! 1.25! Desktop computers Apple PowerMac G5! Operating System Concepts with Java ! 1.26! Parallel Systems Multiprocessor systems with more than one CPU in close communication. Tightly coupled system – processors share memory and a clock; communication usually takes place through the shared memory. Advantages of parallel system: Increased throughput Economical Increased reliability Graceful degradation Tandem systems The APE/Quadrics is a massively parallel computer containing up to 2048 processor elements (PEs). Its design is SIMD (Single Instruction Multiple Data) principle Every PE executes the same instruction simultaneously. Operating System Concepts with Java ! 1.27! Supercomputers IBM project manager shows off Blue Gene/L, the world's fastest computer, which set the record in IBM's Rochester facility. Steve Conway, works for Seattle-based Cray, Inc., indirectly a successor to Cray Research, the Twin Cities firm that dominated the supercomputer industry in the 1970s and '80s. Karl Feind of Silicon Graphics says there were smiles, high fives, awe, and relief, when an SGI machine, developed partly in Minnesota, captured the speed title last October. Operating System Concepts with Java ! 1.28!