teacher's notes - lec chapter 2 - history

Upload: francisemmanuelgonzaga

Post on 08-Mar-2016

214 views

Category:

Documents


0 download

DESCRIPTION

History

TRANSCRIPT

  • J.E.D.I.

    1 History of Operating Systems

    1.1 ObjectivesThis chapter gives a short history of operating systems from the first computers in the 1940's to today's personal computers. Operating systems have evolved to address a need. We will focus on the forces that have molded operating systems to their present form today.

    At the end of the chapter, the student should be familiar with the history of OS's and know what factors have driven the evolution of OS's.

    1.2 Chapter OutlineThis chapter is divided into the following sections

    Overview

    Pre-batch systems

    Simple Batch Systems

    Multi-programmed Batch Systems

    Time-sharing Systems

    Personal Computer Systems

    Parallel Systems

    Distributed Systems

    Real-time Systems

    1.3 Pre-batch systemsIf you were studying during the early days of computers then the following would be the scenario that you would face to work on your class's machine exercises.

    First you would go to your school's computer center to reserve time on the only computer in school. On your scheduled time (which could be in the early hours of the morning) you would go to a filing cabinet to get a stack of punch cards for your compiler program. You would have to then wait around 5 minutes for the computer to load your compiler's punch cards.

    As there is no time or space for programming, you would have made your program at home and have your punch cards generated by a separate computer. After your punch cards are done, you would load your program into the main computer and pressed a switch for the computer to begin execution. If the program needed more input, then you would have to entermore punch cards as there are no keyboards yet at this stage)

    At the end of the program execution, there are two possible situations. First, if your program runs successfully, output is sent to the printer (no computer screen to see data). If your program produced an error, then the complete contents of memory and registers are sent to the printer. This is what is called a core dump.

    Operating Systems 1

  • J.E.D.I.

    If your time is not yet up, then you can still recompile. Usually though an error in execution meant waiting another day before you could try again.

    If the next student used a different compiler than yours, then he would have to go to the filingcabinet, grab the punch cards, load them on the computer, etc...

    As can be seen, one of the ways to make this process faster is to batch all programs that use the same compiler. This leads to the first rudimentary operating systems called batch systems

    1.4 Simple Batch SystemsIn a simple batch system, a computer operator bundles together all the jobs that use the compiler. Instead of you manually loading the punch cards, you would submit your punch cardsto the computer operator, who would then bundle together all jobs that use the same compiler.Usually, these punch cards are transferred unto continuous magnetic tape, with one job after another.

    After all the jobs are in, the operator loads the compiler and then runs the tape as input. As the computer finishes a job, it automatically goes to the next job without having to reload the computer. At the same time, all output is sent to a different magnetic tape. Once all the jobs are finished, only then is output printed.

    As a student during this time, you would come to the computer center in the evening and then come back for your program's output in the morning. Although you would not have direct access to the computer anymore, at least you would not have to wake up at odd hours just to use the computer.

    Recall our kernel definition of the operating system: the OS is the program that is in memory all the time. The simple batch system follows this definition, it has a rudimentary operating system that handles automatic job turnover that is always in memory. Memory only contains the running program while other non-running programs are kept on tape or disk.

    1.5 SpoolingA program asking for additional input in a simple batch system would cause the entire CPU to halt while waiting for the user to enter new data. I/O is almost a 1000 times slower than CPU; if a CPU instruction took 1 second to execute, then it would be idle for 15 minutes waiting for input.

    A way to solve this problem is through Simultaneous Peripheral Operation On-Line or Spooling.Spooling means batching input as well as programs. Before the job starts, all input punch cards are read continuously and placed on a hard disk or tape. If the program requires input, then it would read it from the disk. This is a lot faster than waiting for the user to come and load the punch cards.

    Spooling also refers to output. All program output, instead of being sent immediately to the printer is first saved to disk. Only when all output has been saved will printing be done. This is a lot faster than pausing the CPU only to send data to the printer.

    1.6 Multiprogrammed batch systemsA better way to go around the I/O delay is to give another process control over the CPU while the main process is waiting for I/O. This idea gave rise to multiprogrammed batch systems.

    Multiprogrammed batch systems allow for more than one program executing at the same time.All these programs are kept in memory. CPU control is given to a program when the current process in control has to wait for I/O or is preemptively removed from control based on a scheduling scheme by the CPU.

    Operating Systems 2

  • J.E.D.I.

    The end result of this is that the CPU is kept busy, less time is spent being idle waiting for I/O. However, having multiple programs in memory comes at a price: the OS should now provide for memory protection as a job should be unable to access memory belonging to another job, or for that matter the OS itself.

    The OS should also provide for a scheduling system. If a process halts for I/O, which process should be made to run on the CPU next? Should a process that has been on the CPU for a long time now be removed in order to give chance for the other process to run? Multiprogrammed batch systems should be able to answer these questions

    1.7 Interactive SystemsWith the advent of multi-programmed batch systems, it has now become cost-effective to havea user interact with the computer via a keyboard. Before this time, all possible input to the system had to be done via punch cards, with all possible input already encoded beforehand. With interactive systems, a main "command-line interpreter" process would accept user commands.

    Although keyboards have existed before this time, it was very inefficient for the computer to stop processing as the user (very slowly) entered commands. With task switching, the CPU could be made to run other tasks while the user typed his commands and view output on a computer screen.

    1.8 Time-sharing systemsThe idea of interactive systems could be extended to allow multiple users to access the system. Connection could be done using dumb terminals, a keyboard and monitor connected toa modem which connected to the central computer via regular phone lines. This allowed users to work from home, sending and receiving I/O while all processing is done on central computer.Even today, this system can still be found in client-server architectures.

    Time sharing systems also gave rise to the idea of files. As multiple users would probably have different data for processing, a way to have personal data space for users came about, all stored in a central hard disk. This hard disk was also used to store jobs that are currently idle to give space in memory for active jobs that required more memory. This is the central idea of virtual memory.

    The OS also had to allow for multiple processes from different users to be able to communicateand synchronize with processes from other users. Also, the OS must now be able to see if processes are waiting for each other to release a process. This is called deadlock avoidance or prevention.

    1.9 Personal Computer SystemsToday, computers have become cheap enough for individual users to own. Although only a single user is accessing the system, the lessons learned from the previous generation of operating system is now used to emphasize a greater user friendliness to the system, rather than efficiency.

    Also, personal computer systems could now allow more than one operating system to run on a single computer. Before this time, a computer came with an operating system. Now, a user canselect what operating system is most apt for the user's needs.

    1.10 Parallel SystemsParallel Systems are computers that have more than one processor. They are also called

    Operating Systems 3

  • J.E.D.I.

    tightly-coupled systems. The idea here is to speed up processing be literally having two (or more) processes running at the same time instead of just seemingly multiple processes all run via task switching.

    An advantage of parallel processing is that applications can be made to run faster as there is now more than one processor handling computation. Also, parallel systems are cheaper: there is no need to buy an entirely new computer for extra processing power. Also, the failure of one CPU does not mean that the system would fail.

    There are two kinds of parallel systems:

    Symmetric Multiprocessing Systems are systems where each processor acts independently of one another. An example of this is the Intel Core 2 Duo CPU

    Asymmetric Multiprocessing Systems are systems where a Master CPU controls one mormore slave CPUs. In the Sony PlayStation 3, a central CPU delegates computation to 8 other CPUs, each specialized for a particular task, such as graphics rendering, charactermovement, system administration, etc.

    1.11 Distributed SystemsInstead of just multiple CPUs, why not buy multiple computers instead? Distributed systems are whole computers that have their own individual CPU and memory. Parallel Systems are called tightly-coupled systems because communication between CPUs is done through shared memory. Distributed Systems are called loosely-coupled systems, as CPUs communicate over alocal area network instead of shared memory. Each element of a distributed system is a computer in itself.

    Advantages of distribution are:

    Resource sharing you could specialize parts of your system to handle certain tasks. You could for instance, give the largest hard disk to your file storage computer, the largest RAM to your development server, the printer to your printer server etc. All other users who want to use these resources would only need to communicate to the computer possessing those resources.

    Computation speedup computation is made faster by distributing the load among different computers, as is common practice in large server facilities like Google (with over 10000 computers)

    Reliability as with parallel systems, the failure of one computer does not mean failure of the entire system.

    1.12 Real time systemsReal time systems are specialized systems that are required to respond to a given input within a specified time-frame or the system will fail. In light of this, the OS for these systems are geared towards producing the output as fast as possible, sacrificing ideas such as time-sharingor interactivity. These systems can be found in industrial control systems, or in aircraft safety systems.

    There are two kinds of real-time systems

    Hard real time systems are systems that will fail if required output is not released in time. Systems like these almost have no secondary memory, data is either in fast short term memory or ROM. Only ONE process must run in these kinds of systems in order tomeet the required deadline.

    Soft real time systems are systems whose performance only degrade if the output is

    Operating Systems 4

  • J.E.D.I.

    delayed. Examples of these are video rendering systems such as a DVD player where a little frame lag is tolerable.

    Operating Systems 5

    1 History of Operating Systems1.1 Objectives1.2 Chapter Outline1.3 Pre-batch systems1.4 Simple Batch Systems1.5 Spooling1.6 Multiprogrammed batch systems1.7 Interactive Systems1.8 Time-sharing systems1.9 Personal Computer Systems1.10 Parallel Systems1.11 Distributed Systems1.12 Real time systems