Evolution of Operating Systems: A Historical Overview
Operating systems have evolved significantly over the years, starting from single-program machines to modern multi-programming systems. The journey includes the development of batch systems, introduction of multiprogramming, and advancements in memory management techniques. Key milestones such as the transition to transistor machines and innovative approaches by pioneers like IBM are highlighted.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
History Pre 1950 : the very first electronic computers valves and relays no OS single program with dedicated function Pre 1960 : stored program valve machines single job at a time OS just consists of a program loader program CPU printer Ali Akbar Mohammadi 2
1960: transistor machines example: DEC PDP-8 first Edinburgh Univ. computer, 1965 4K 12-bit words of magnetic core memory; 1.5 sec cycle time RIM loader read in Binary loader Binary loader read in executable from paper tape a primitive BIOS user program drives I/O devices directly usually by polling interrupts also possible walk up and use computer illustrates data rate mismatch problem Ali Akbar Mohammadi 3
Post 1960 : Batch systems on mainframe computers collections of jobs made up into a batch example: IBM 1401/7094 card decks spooled onto magnetic tape and from tape to printer example: English Electric Leo KDF9 first Edinburgh Univ. mainframe, 1968 32K 48-bit words, 2 sec cycle time punched paper-tape input walk-up service or spooling via mag tape Ali Akbar Mohammadi 4
OS consisted of an input/output system for reading and writing magnetic tapes and a command interpreter for JCL on cards speed mismatch problem reduced with fast mag tape but not removed pipelining allowed next job to be read in whilst results of previous job being written to mag tape Ali Akbar Mohammadi 5
1965: Multiple Job Stream Batch Systems several jobs resident in memory together OS job 1 job 2 job 3 a multiprogramming OS CPU switched around the jobs in turn I/O delays overlapped with other running jobs jobs stay resident until finished Ali Akbar Mohammadi 6
IBM MFT - Multiprogramming with Fixed Tasks fixed partition boundaries IBM MVT - Multiprogramming with Variable Tasks dynamic partition sizes and positions OS scheduled jobs to minimize memory wastage Ali Akbar Mohammadi 7
example: Manchester University ATLAS, 1963 32kwords 48-bit memory 1 sec cycle time multiprogramming batch system used remotely by Edinburgh Univ. via off-line paper-tape Problems introduced by multiprogramming: jobs had to run at different places in memory inefficient use of expensive memory one job could interfere with another e.g. overwrite other jobs memory jobs could clash over use of I/O devices Ali Akbar Mohammadi 8
Overcome by using: relocating linkers and loaders hardware relocation base and limit registers read/write/execute protected access OS controlled access to I/O devices Virtual memory architectures pages and demand-paging invented in Manchester and used first on ATLAS 512 word pages + swap disc segmentation came later Ali Akbar Mohammadi 9
1970: Multi-Access Interactive Time-Sharing Systems powerful machines very expensive need to share use between many users simultaneous interactive use new OS and software technology for time-sharing virtual memory pages and segments processes with a continuing existence, not just for life of job execution memory resident, swapped out to disc, blocked, waiting etc. command interpreters, on-line editors file systems, back-up and archiving TTY terminals - no VDUs until later still stand-alone - no networking Ali Akbar Mohammadi 10
Project MAC at MIT on IBM 7094, 1966 MULTICS by a consortium on GE645, 1969 EMAP in Edinburgh University on EEC 4-75, 1970 joint project with ICL 4-75: 1Mb memory, 4kb pages and 64kb segments 50 simultaneous users used in Edinburgh until 1989 ported onto ICL 2900 in mid-1970s 100 users dual processor version final port onto NEC (IBM 370 clone) 100s of users overtaken by UNIX-based systems Ali Akbar Mohammadi 11
Mini-computer systems DEC VAX (VMS Operating System), Prime, Wang, Interdata, . . . . . . . . between mainframes and workstations in cost and performance Workstation systems increasingly cost-effective since 1980 Sun, IBM PC, Apple Mac Networks of workstations Ethernet, token rings etc. Parallel systems large numbers of loosely connected machines only a minimal OS in each usually a separate front-end machine running a normal OS for I/O examples: Connection Machine, Cray T3E in EPCC etc. Ali Akbar Mohammadi 12
What is an Operating System (1)? A modern computer consists of: One or more processors Main memory Disks Printers Various input/output devices. Managing all these varied components requires a layer of software the Operating System (OS). Ali Akbar Mohammadi 13
What is an Operating System (2)? An Operating System is a program that acts as an intermediary/interface between a user of a computer and the computer hardware. OS goals: Control/execute user/application programs. Make the computer system convenient to use. Ease the solving of user problems. Use the computer hardware in an efficient manner. Ali Akbar Mohammadi 14
Where does the OS fit in? Ali Akbar Mohammadi 15
Services provided by an OS Facilities for program creation editors, compilers, linkers, debuggers, etc. Program execution loading in memory, I/O and file initialization. Access to I/O and files deals with the specifics of I/O and file formats. System access resolves conflicts for resource contention. protection in access to resources and data. Ali Akbar Mohammadi 16
Why are Operating Systems Important? Important to understand and know how to correctly use when writing user applications. Large and complex systems that have a high economic impact and result in interesting problems of management. Few actually involved in OS design and implementation but nevertheless many general techniques to be learned and applied. Combines concepts from many other areas of Computer Science: Architecture, Languages, Data Structures, Algorithms, etc. Ali Akbar Mohammadi 17
Computer Hardware Organization Ali Akbar Mohammadi 18
Computer System Components 1. Hardware provides basic computing resources (CPU, Memory, I/O devices, Communication). Operating System controls and coordinates use of the hardware among various application programs for various users. System & Application Programs ways in which the system resources are used to solve computing problems of the users (Word processors, Compilers, Web browsers, Database systems, Video games). Users (People, Machines, other computers). 2. 3. 4. Ali Akbar Mohammadi 19
Hierarchical view of computer system Ali Akbar Mohammadi 20
Static View of System Components Ali Akbar Mohammadi 21
Dynamic View of System Components Ali Akbar Mohammadi 22
What Operating Systems Do? Depends on the point of view. Users want convenience, ease of use and good performance Don t care about resource utilization. But a shared computer such as mainframe or minicomputer must keep all users happy. Users of dedicate systems such as workstations have dedicated resources but frequently use shared resources from servers. Handheld computers are resource poor, optimized for usability and battery life. Some computers have little or no user interface, such as embedded computers in devices and automobiles. Ali Akbar Mohammadi 23
Views of an Operating System There are three classical views: 1. Resource Manager manages and allocates resources. 2. Control program controls the execution of user programs and operations of I/O devices. 3. Command Executer Provides an environment for running user commands. But one more modern view: the Operating System as a Virtual Machine. Ali Akbar Mohammadi 24
1. Resource Manager Resource Manager: Manages and protects multiple computer resources: CPU, Processes, Internal/External memory, Tasks, Applications, Users, Communication channels, etc Handles and allocates resources to multiple users or multiple programs running at the same time and space (e.g., processor time, memory, I/O devices). Decides between conflicting requests for efficient and fair resource use (e.g., maximize throughput, minimize response time). Sort of a bottom-up view. Ali Akbar Mohammadi 25
OS as a Resource Manager Ali Akbar Mohammadi 26
2. Control Program Control Program: Manages all the components of a complex computer system in an integrated manner. Controls the execution of user programs and I/O devices to prevent errors and improper use of computer resources. Looks over and protects the computer: Monitor, Supervisor, Executive, Controller, Master, Coordinator . Sort of a black box view. Ali Akbar Mohammadi 27
3. Command Executer Command Executer: Interfaces between the users and machine. Supplies services/utilities to users. Provides the users with a convenient CLI (Command Language Interface), also called a Shell (in UNIX), for entering the user commands. Sort of a top-down view. Ali Akbar Mohammadi 28
Modern view: Virtual Machine (1) Operating System as a Virtual Machine: An interface between the user and hardware that hides the details of the hardware (e.g., I/O). Constructs higher-level (virtual) resources out of lower-level (physical) resources (e.g., files). Definition: OS is a collection of software enhancements, executed on the bare hardware, culminating in a high-level virtual machine that serves as an advanced programming environment. virtual machine = software enhancement = extended machine = abstract machine = layer = level = ring. Ali Akbar Mohammadi 29
Modern view: Virtual Machine (2) Ali Akbar Mohammadi 30
Definition of Operating System There is no universally accepted definition. Everything a vendor ships when you order an operating system is good approximation but varies widely. The one program running at all times on the computer is the Kernel. Everything else is either a system program (ships with the operating system) or an application program. Ali Akbar Mohammadi 31
One Kernel Point of View Ali Akbar Mohammadi 32
What is the OS/Kernel? Is the Operating System just the Kernel (not the utilities and application programs)?! The Command Line Interface (CLI) (or command layer/interpreter or shell) allows direct command entry by the user. The shell used to be in the kernel but now is a (first between equals) utility outside of it: Easy to change/debug Many of them (sh, bsh, csh, ksh, tcsh, wsh, bash) Possible to switch between them (chsh) Ali Akbar Mohammadi 33
UNIX Shell and Utilities User Utilities Shell Kernel Hardware Ali Akbar Mohammadi 34
Sources Introduction to Operating System (OS) by A. Frank - P. Weisberg Ali Akbar Mohammadi 35