CPS221 Lecture: Operating System History last revised 6/23/10. Objectives

Size: px
Start display at page:

Download "CPS221 Lecture: Operating System History last revised 6/23/10. Objectives"

Transcription

1 Objectives CPS221 Lecture: Operating System History last revised 6/23/10 1. To survey the history of operating systems 2. To survey the modern operating system landscape 3. To introduce key notions: multiprogramming, preemption Materials: 1. Projectable pictures of IBM 1620 (2 versions) 2. Projectable of steps compiling and running a FORTRAN program on a Projectable of stacked job batch monitor memory and input tape I. Introduction A. Today's operating systems are among the largest, most complex, most versatile pieces of software on the market. To a large extent, the operating system carries the burden of ensuring efficient, reliable, secure availability of the computer system to its users. However, this was not always the case. Operating systems have undergone a process of evolution from the earliest days of computing - when there were essentially no operating systems - through fairly small and simple one-userat-a-time systems, through increasingly complex multi-user systems, to their present role. B. We want to spend some time surveying some of the highlights of this process of development - for two reasons: 1. One way to get a handle on the complexity of modern operating systems is to see how they have developed one layer at a time. If we picture an operating system as an onion, then our historical survey will help us to examine the construction of the onion one layer at a time. 2. The proliferation of small, high powered computers has brought us fullcircle in many areas of Computer Science, including operating systems. For example, a modern cell phone has far more computational power than mainframe computers of a few decades ago. A cell phone operating system capability (multitasking) has become an issue in competitive battles between Apple s IPhone and various cell phones running Google s Android. C. As an overview, we can note several key stages in the evolution of modern operating systems, originally driven by a desire to make the most 1

2 efficient use of an expensive resource. (Early computers cost in the 100 s of 1000 s of $ or more, though that s no longer an issue!) 1. One user systems on a bare machine 2. Stacked job batch processing systems. 3. Multiprogrammed batch processing systems. 4. Timeshared systems. 5. The development of personal computers D. We will also want to take a quick look at the modern operating system landscape, which reflects this history, as we shall see. II. One User Systems on a Bare Machine A. In the earliest days of computing, there were no operating systems per se. This meant that the user ran on a bare machine. Understanding what this entailed can help us understand the interface between a modern operating system and the underlying machine. B. An example: the IBM 1620 of the early 1960's PROJECT Pictures (two) 1. The first machine I ever used (as a high school student in a summer program at IIT). 2. A particularly easy bare machine to understand. 3. Some characteristics: a) Three IO devices on the machine I used: (1) console device: modified IBM Selectric typewriter (In, out). (2) punched card reader. (3) punched card punch. b) Programs were normally prepared using offline keypunches. Printed output could be obtained by punching the output, then running it through an offline printer (though many 1620s had online printers). 2

3 c) Relatively powerful IO instructions in hardware repertoire: (1) One instruction to read a single card into adjacent memory locations (2) One instruction to punch a card from adjacent memory locations. (3) One instruction to read a line from typewriter into adjacent memory locations. (4) One instruction to type a numeric field to the typewriter (5) One instruction to type a string of adjacent characters. d) Initial load provision: a button on the card reader could cause a single card to be read into memory locations 0-79, with the CPU starting to execute the instruction at location 0. A single card could contain six machine instructions. These, in turn, would serve to load the rest of the loader and some program. 4. Process for compiling/running a program written in a higher level language like FORTRAN: PROJECT Steps a) Place the FORTRAN compiler - pass one - card deck in the reader, followed by the source program.. The compiler included its own loader, so just press initial program load. b) FORTRAN pass 1 would then punch an intermediate file to the card punch. c) Place the FORTRAN compiler - pass two - card deck in the reader, followed by this intermediate program. Again, since the compiler included its own loader, so just press initial program load d) Pass two would produce an object deck on the punch. e) Place the FORTRAN library card deck in the reader, followed by the object deck. Since the library included a loader for itself and the object program, and press initial program load to run the program. 3

4 f) Of course, further results would depend on the program being run. If, as was often the case, a large volume of output was to be produced, the program would punch an output deck which could then be printed offline.. g) If there were errors in the program, one could interact directly with it from the console by halting the machine and using the console to examine and/or modify individual memory locations. 5. The particular machine I used was made available to users in two ways a) Daytime - an operator on duty would accept program decks, run them, and return the output some hours later. He could economize on time by batching compilations in FORTRAN or other languages e.g. he could run several source programs through pass one, then run the resulting intermediate decks through pass two - thus saving the problem of having to reload the compiler for each source program. b) Nighttime - one could reserve a block of time for dedicated computer use, or a group of users (e.g. the people in the high-school program I was in) could be given the machine to share among themselves in whatever manner was worked out. C. This kind of environment had some serious problems: 1. Knowledge of machine language was almost mandatory - if not for programming, then for debugging. 2. Hardware utilization was very inefficient. Much of the time the CPU was idle waiting for the relatively slow reader or punch, or for the even slower human to load the reader or punch. 3. Card decks, such as the FORTRAN compiler, were vulnerable to wear and tear. And woe to the person who dropped the compiler deck! III. Early stacked job batch systems A. I noted that, on the particular machine I described, it was the practice to have all daytime jobs run by an operator, rather than the programmer. This improved the degree of utilization of the machine, for several reasons: 1. The operator, being experienced, could load the necessary decks more quickly. 4

5 2. The operator could batch similar jobs to avoid frequently reloading system programs such as the compiler. 3. Since the user could not interact with a running program, the system resources were never tied up waiting for a user to finish thinking and type a line of input. B. Of course, the latter advantage is also one of the chief disadvantage of such a system. A consequence of the move to stacked job systems was that programmers lost the ability to interact with programs - making debugging much harder. If the program failed, the operator was instructed to produce a dump of memory for the programmer to analyze. (Finding an error by poring over pages of binary contents of memory is not a pleasant task!) C. The 1620 was a relatively cheap machine. 1. On more expensive machines, 24-hour operation by a special operator was the norm. 2. Further, since throughput would be severely limited by the speed of card input and output, larger machines often used magnetic tape (much faster) - often with some provision to read cards onto tape offline, and to print output from tape offline. (Either special card-to-tape units or possibly a small dedicated computer controlling a number of readers, punches, printers and tape drives.) (Intermediate compiler files, of course, never got onto cards at all - they were created on tape and then read from tape.) 3. In the 1960's, drum and disk storage became common on larger machines. Typically, the disk was used to store commonly-used programs such as compilers, so that these did not have to be read in from cards or tape whenever needed. (Mounting the correct tape would be very time consuming.) D. With commonly used programs stored in secondary storage on the machine (disk, drum, or tape) and a series of individual user jobs one behind another on a reel of magnetic tape, it became necessary to put more of the burden for system control on the machine, since the operator could no longer see the physical division points between user jobs once they were read onto tape. 1. Each user job would include a series of control cards, identifying the user and the task he wished performed: 5

6 a) e.g. a $FORTRAN card might specify a FORTRAN compilation, which would require that the compiler be read from disk. The source program would immediately follow the $FORTRAN card and would be read by the compiler as soon as it was loaded. b) Again, $LOAD might call for the resultant object program to be read into memory; c) $RUN might call for executing it, with the input data being placed immediately behind the $RUN card. 2. The program that managed the system was known as the monitor. It would be loaded when the system was powered up, and would remain resident in a designated region of memory at all times. This kind of monitor is commonly called a stacked job monitor - because jobs are processed as if they were physically stacked one behind the other in a card reader (though in fact the stacking was on tape or disk.) Primary Memory Monitor (Permanently Resident) Program currently being run on behalf of a user. Secondary Storage System programs (compilers, libraries, etc.) Layout of input tape $JOB user id $FORTRAN FORTRAN source program $LOAD $RUN data for program $EOJ $JOB user id $LOAD application on disk $RUN data for program $EOJ $JOB user id... PROJECT. Walk through diagram; then project steps in executing jobs 3. The earliest stacked job monitors were developed by users in the mid 1950's. By the late 1950's, it was the norm for manufacturers to furnish an operating system with large machines. Smaller machines e.g satellites, 1620) ran bare with an IO library. 6

7 4. Eventually, the command language recognized by the monitor grew into a very sophisticated language known as JCL (job-control language) that is still used on mainframe computers. This is, in effect, the user interface of the operating system. E. The advent of stacked job monitors created some interesting problems that called for additional hardware features. 1. Since a series of jobs would follow one another on the tape, it was vital that one job not be able to do anything that would interfere with the other jobs on the tape: a) If one job - through error or maliciousness - damaged the monitor, then the remaining jobs on the tape could be processed incorrectly or not at all. b) If one job contained an error it might not stop reading with its own data, but might begin reading the control cards, program, and data for the next job. Thus, when the monitor regained control it would not see some or all of the next job. c) A program might go into an infinite loop, blocking all subsequent jobs. 2. Dealing with these problems called for hardware features to be added to the system. The key feature was the addition of the concept of processor mode, as we have previously discussed. (Although the two modes are today conventionally called kernel and user, the term monitor mode was often used at this time to mean what we now mean by kernel mode ) a) The monitor region of memory was made off limits when the processor was in user mode. A simple way to do this for a stacked job monitor was with a fence register - addresses below the fence are accessible (or at least alterable) only when in monitor mode. The fence would be set so that the monitor could not be touched by a program running in user mode. This solved the first problem. b) To solve the second problem 2, it was required that all input and output be done by the monitor, rather than by user programs, by making IO instructions privileged - i.e. executable only in monitor mode. (An attempt to execute one of these in user mode would be treated as a fatal error terminating the program.) 7

8 This means that a user program had to transfer control to the monitor whenever it wants IO done. The monitor could then take steps to be sure that the IO operation is legitimate - e.g. that the user is not attempting to read a control card belonging to the next job (or worse yet to write to the job input tape!) c) A timer was used to solve the third problem. The monitor would set it to a suitable interval (often specified by the user on the first control card in the job) before passing control to the user program. If the timer ran out before the user program is finished, it interrupted the CPU, causing transfer to a timer interrupt handler routine which is part of the monitor. This routine would then terminate the offending job with a suitable error dump and then advance the input tape to the next job. (Of course, the instruction that sets the timer must be privileged!) Note: In practice, especially on current machines, timers are often implemented by a device that interrupts the CPU at regular intervals - with a counter in the monitor memory that is decremented by 1 on each interrupt. Timeout is deemed to occur when the counter reaches 0. F. The above marked the introduction of what has become a key concept in operating system design: protection. 1. In a system that is shared among multiple users, it is necessary to protect each user from accidental or intentional interference by others. 2. The operating system (which has unlimited access to the system) must be protected from damage by users. This is mandatory on a multiple user system, but even desireable on a one user system a) Example: Gordon's old PDP-8: during one programming project we had a rash of accidental erasures of part of the disk containing the operating system due to a bug that many students seemed to share. b) Example: Software crashes due to errors in one piece of software were quite common on early PC operating systems such as earlier versions of Windows or pre OS-X Macintoshes. 3. Protection typically requires some hardware facilities - e.g. a two mode CPU with privileged instructions for IO and certain other operations, and some form of memory partitioning. There is thus a strong interaction between operating systems and computer architecture. 8

9 4. Note that protection is not the same thing as security - though the two are closely related: a) Protection is concerned with mechanisms that help to ensure correct operation even in the face of erroneous or malicious code. b) Security is concerned with taking measures to ensure that the protection mechanisms are not bypassed (e.g. to obtain access to information one is not authorized to see, or to alter information illegitimately, or just to crash the system.) IV. Multiprogramming A. The stacked job batch system we have described achieved an improvement in system efficiency by eliminating the time required for the human operator to load each job on the system. In its simplest form, though it left a lot to be desired in terms of overall utilization of the system resources. 1. Consider a typical job that looks like this: while not eof read a card do some computation on the data on it print a line of output 2. If we traced the behavior of this program over time, what we would see the following pattern: Reading _1 2 3_ Computing _1 2 3_ Printing _1 2 3_ a) If all three phases take equal time (unusual but possible), then each component of the system (reader, CPU, printer) is busy 33% of the time and idle 66%. b) Actually, for many data processing tasks IO takes much more time than computation (since IO devices are typically electro-mechanical), so that the CPU utilization may be under 10%. c) Given the high cost of the CPU ($100's of 1000's at that time), this was very undesirable. d) Use of faster IO devices (e.g. magnetic tape) helped to alleviate this problem In a simple batch system, cards could be read onto tape offline, with the CPU reading card images from the tape and producing line images on a second tape which is later printed 9

10 offline. This would reduces but not eliminate the CPU time wastage - and added the additional complication of tape handling which can increase turnaround, since an entire tape has to be filled offline before any jobs on it can actually be processed. B. Further improvements took advantage of an IO strategy known as Direct Memory Access (DMA) - whereby an IO controller could carry out an operation concurrently with other computation done by the CPU. If there is a small amount of memory beyond the absolute minimum needed to run a job, we can allocate two buffers each for input and output and proceed as follows read a card image into in buffer 1 process in buffer 1 to out buffer 1, while at the same time reading a card image into in buffer 2 process in buffer 2 to out buffer 2, while at the same time: reading a card image into in buffer 1 and printing a line from out buffer 1 process in buffer 1 to out buffer 1, while at the same time reading a card into in buffer 2 and printing a line from in buffer 2 1. Our utilization now looks like this, assuming (unrealistically) that reading, computing, and writing take equal time: Reading _ _... Computing _ _... Printing _ _... (Except during startup and wrapup, all devices used near 100% capacity) 2. If we make the more realistic assumption that reading and printing take comparable time, but computing takes much less, we get something like: Reading Computing _ _... Printing (IO utilization near 100%; CPU utiliztion much less) 3. On the other hand, some jobs require much more computation time than IO time (e.g. those involving some form of "number crunching".) For these, we might have a pattern like: 10

11 Reading _ _... Computing Printing _ _... (CPU utilization near 100%; IO usage much less) 4. If it was typical for a particular computer installation to run only IO bound jobs, then we would have to live with a low CPU utilization, since the CPU can only be busy when it has data to work with. Again, if compute bound jobs are typical, we would have to live with low IO utilization, since the IO devices can only be busy when the CPU has done its work on the data. But if we have a mixture of types of job, then we would like to see near 100% utilization of all resources. However, in a typical stacked job scheme, we would get a burst of heavy IO activity/light CPU activity, followed by a burst of light IO activity/heavy CPU activity - leading to overall utilization below 50% for all resources. Solution to this problem requires a further development in operating systems. C. Multiprogramming emerged in the early 1960's 1. The preceeding development has assumed that, at any one time, the computer system is processing exactly one user job. Incoming jobs are stacked, and the system does not start working on one until it has completed its predecessor, with the result that some components of the system are not fully utilized (often the most expensive of all: the CPU) 2. For this reason, systems moved to multiprogramming multiple processes, in the hopes that CPU bound phases of one job will overlap IO bound phases of others. a) Of course, to support multiprogramming, it also became necessary to provide additional memory to accomodate the additional processes. b) Further, the protection problem became more complex, since it is now necessary not only to protect the monitor from accidental (or deliberate) alteration by a user job, but also to protect user jobs from one another. D. A key concept in multiprogrammed systems is the notions of priority and preemption to handle the commonly-occurring case where multiple jobs are able to use the CPU at the same time. 11

12 1. Priority would typically be given to a job exhibiting IO-bound behavior, rather than one exhibiting CPU-bound behavior, and when an IO operation was completed the job that was waiting for it might be allowed to preempt a CPU-bound job. Why? ASK 2. In some cases, external priorities might also be used, set on the basis of the relative importance of different jobs. V. Timesharing A. In our survey of operating system history, we saw that the earliest systems provided a hands-on environment in which the programmer was able to interact with the program as it ran. Demands for efficient utilization of expensive hardware soon led to this capability being abandoned in favor of batch systems of various sorts. B. Interaction of a sort was restored fairly quickly for certain kinds of applications, such as airline reservations. One of the most important early large-scale software systems was the American Airlines SABRE system, which connected agents all over the country to a common data base of reservations. Inquiries keyed in on a terminal would receive a quick response. The underlying software, however, was not multiprogrammed, but rather a single package of programs that divided its attention among many terminals. 1. Such a system is called a transaction processing system, and is still common today in such areas as airline reservations, bank ATM's etc. 2. A similar idea exists with various server programs (web, , etc ) in which a single program may respond to requests coming from many different users. C. Shortly after multiprogramming appeared, efforts were begun to fully restore the interactive dimension to general-purpose computing through the use of timesharing. 1. A timeshared system restores interactivity by having the jobs being multiprogrammed do IO not from a (virtual) card reader and to a (virtual) printer but rather from and to a terminal with a live user in front of it. 2. The monitor used in a stacked job system is effectively replaced by a command interpreter that now served as the user interface by allowing the user to enter commands interactively. 12

13 3. The timer is now used to divide the available CPU time between different users. a) In the approach known as round robin, the system maintains a ready list of users needing to use the CPU. b) When a user job gets to the front of the line, it is given a quantum of CPU time. (1) If the computation being done results in an IO request, the job yields the CPU until the IO operation has been completed, and then gets back in line. (2) If the job continues to need the CPU at the end of this time (the program has not yet initiated an IO operation), it is placed at the back of the line and another job is given the CPU. (This is known as timer preemption). (3) Thus, each user gets slices of the available CPU time. If the CPU is fast enough, this can give the appearance of the user having access to a dedicated (but not as fast) CPU. c) A priority scheme could also be used to modify the round robin behavior. (1) External priority, as discussed in the context of batch systems. (2) Jobs exhibiting IO-bound behavior might be given priority over jobs exhibiting compute-bound behavior. (3) It was also common to give a bump in priority to a job that had been waiting for user input when that input finally arrived. Why? ASK (4) Priority might be combined with some sort of aging scheme, to prevent indefinite postponement. (As a job waited, its priority would slowly be increased) 4. Timeshared systems are more difficult to implement than multiprogrammed batch systems or transaction processing systems, for several reasons: 13

14 a) The typical interactive process has much more IO wait time than a batch process. With a batch process, all of the input data is available when the process starts; while an interactive process has to wait for the user to type each line - often with some thinking time in between lines. Therefore, to keep the CPU busy it is typically necessary to multiprogram more jobs so that hopefully at least one is able to use the CPU. b) In a batch system, it is permissible for a particular job to go for a long time without service from the system, so long as it completes within a reasonable time. In an interactive system, it is essential that the user receive fairly quick response from the system whenever he does get around to issuing a command. c) In contrast to a transaction processing system, where a common program is shared among all users, with each user having a very small area of private memory (perhaps enough to hold a few lines of text), a general-purpose timesharing system must provide each user with enough memory to hold a complete program and related data. This was a serious problem in the days of high-cost memory. D. Today, of course, the need to make efficient use of an expensive resource (the CPU) is no longer an issue, and for this reason many of the timeshared systems of the 1980 s and 1990 s are now only of historical interest. However, one system that began as a timeshared system has played a very influential role: Unix. 1. Unix was originally developed at Bell Telephone Labs (now part of AT&T) in An important variant was developed at Berkeley starting in Today, the following systems are all descendants of one or the other of these: a) Darwin - the core of MacIntosh OSX b) Solaris - the system on which Java was first developed (Sun Microsystems - now part of Oracle) c) HP/UX (Hewlett-Packard) d) AIX (IBM) 14

15 4. Though Linux is technically a separate system, many of its core ideas come from Unix. Due to trademark issues, one cannot refer to it as Unix, but for all intents and purposes that is really what it is! 5. Ideas from Unix also influenced MS/DOS, which became the foundation on which Windows was first developed. 6. Unix has also played a central role in Operating Systems research in CS. VI. Personal Computers A. Operating systems evolved in the context of fairly expensive large computers, with efficient utilization of resources being a high priority. B. The personal computer has its roots in hobbyist systems developed in the 1970 s, followed by the IBM PC (1981) and Macintosh (1984). Because PC s are based on inexpensive technology, efficient utilization is not a key issue - indeed, the average PC spends most of its time sitting idle. C. Early PCs ran a variety of one-user operating systems, but by the late 1980 s two had become widespread: 1. MS/DOS (Micrososft) running on Intel x86 platforms 2. Macintosh OS running on Macintoshes which at that time used either the Motrorola or Power PC processors. 3. Both systems resembled a cross between one user and stacked job batch systems, with a small IO library in memory without any protection and an interactive command interpreter reading commands typed by the user (DOS) or a GUI (Macintosh) in place of input coming from a card reader or tape. 15

16 MS/DOS BIOS + BDOS Early Macintosh BIOS + Toolbox Command Interpreter Program currently being run on behalf of a user. Finder Program currently being run on behalf of a user. (Actually, there is also an interesting relic of the batch heritage in the existence of.bat files on Windows systems) 4. In contrast with stacked job batch systems, however, neither system had any provisions for protecting the memory belonging to the operating system or command interpreter from being damanged by an error in the program being run. D. In the late 1980 s MS/DOS morphed into Windows, using a GUI instead of a command interpreter as the primary mechanism for user interaction, and both began to support multiprogramming. 1. Of course, the motivation for multiprogramming in PC s is very different from efficient uses of expensive resources that was the original motivation. Reliance on multiprogramming has become part of how we work. For example, as I am writing this lecture on a word-processor, I am also running an program and periodically use my web browser to check various facts. 2. Early versions of Windows and multiprogrammed versions of Mac OS did not provide for memory protection, and used cooperative rather than preemptive multitasking. (In cooperative multitasking, a job is not forced to yield the CPU, which allows a CPU-intensive program or one with an infinite loop to hog the system.) a) These capabilities were added to later versions of Windows. b) In 2001, Apple replaced its earlier Classic MacOS with a totally new OS (OSX) whose kernel (Darwin) was a descendant of 16

17 Berkeley Unix) and therefore supports both memory protection and preemptive multitasking. E. Linux emerged as a third alternative in the 1990 s. 1. With its Unix heritage, Linux has always incorporated many of the ideas developed in conjunction with mutiprogramming and timeshared systems (such as memory protection and pre-emptive multitasking). 2. Linux systems are often accessed using a text-based command interpreter (the shell). However, current Linux systems incorporate a number of GUI features. a) A windowing system known as XWindows. b) Two different GUI desktops: Gnome and KDE VII. Real-Time Systems A. All of the systems we have been looking at so far have been designed for general-purpose computing. There is, however, another broad category of computing use called real-time systems. 1. A real-time system is interacting with hardware devices in real time, and is therefore characterized by inflexible time constraints: if the system cannot respond to external events within some time limit, bad things can happen. 2. One major kind of real-time systems is a system that is used to collect data from some sort of instrument (e.g. in a laboratory). If such a system cannot handle the data as fast as it is being produced, information may be lost. 3. Another major kind of real-time systems is an embedded system that is used to control a physical system. a) Examples (1) Cell phones and similar smart devices (2) Entertainment devices like TV set-top boxes, DVD players, game consoles... (3) Devices that control devices like an ATM. 17

18 (4) Automobile systems that control fuel injection, anti-lock brakes... (5) Systems used to control airplanes, spacecraft, missiles, etc. (6) Systems used in the power grid to control power plants and the dsitribution of electricity... b) If such an embedded system cannot respond quickly enough to events in the device(s) it is controlling, negative consequences may range from user dissatisfaction to an automobile, airplane, spacecraft, or missile crash or a power blackout. B. Real-Time Systems can be classified as soft real-time or hard real-time. 1. In a soft real-time system, while failure to meet the time constraints is undesirable, it is not catastrophic. Soft real-time systems may utilize appropriate software running on a general-purpose platform (which may be dedicated to this one application or may be running other applications as well), or they may use a special operating system as on a hard real-tiime system. 2. In a hard real-time system, failure to meet the time constraints is unacceptable. Hard real-time systems use special-purpose real-time operating systems. a) Often, this is a stripped-down version of a general purpose operating system (e.g. a real-time version of Linux). b) There are also special systems designed from the ground up as real time systems - e.g. Windows CE, iphone OS, Android... 18

19 VIII. Today s OS Landscape A. When one uses the word operating system today, what often comes to mind first is PC operating systems (Windows, MacOS, Linux), of course. B. Network servers are also ubiquitous. These may run special server or enterprise versions of Windows, MacOS, or Linux. C. Also, mainframe ( big iron ) systems are still used extensively by larger corporations. (Think for a moment about the information processng needs of a bank or an insurance company, or the census, for example). IBM dominates this market, with zos being its dominant system. These may run a transaction processing system known as CICS (Customer Information Control System) that is extensively used by people like bank tellers. D. Real-time operating systems are found in many contexts other than computer systems. E. Finally, in a networked world many services that were once provided by the operating system on a single machine are instead provided over a network. 1. Network file systems For example, the disks on the workstations in M107 hold only the operating system and application programs - they do not hold user files. Instead, they use a network file system, with user files stored (transparently) on a server machine (files.cs.gordon.edu). You can use any workstation and you will see your same home directory. 2. Client-server systems. For example, nas1 and files.cs.gordon.edu hold volumes which you can explicitly mount on any machine on the campus network, at which point you can access the same set of files from wherever you are. Services such as google docs or Apple s idisk make a similar facility available world wide. 19

20 IX. Summary: Key Concepts A. In this survey of the history of operating, we saw the roots of several key ideas that play a central role in modern operating systems. B. Protection relying on two processor modes 1. The CPU incorporates a notion of processor mode: kernel or user (which can be represented by a single bit) 2. When the CPU is in kernel mode, all operations are legal, and all of memory is accessible 3. When it is in user mode, some operations are not allowed: e.g. those tha perform IO, and access to memory is limited to certain regions. 4. A trend in operating system design is to minimize the amount of code that needs to run in kernel mode - i.e. an operating system may contain both user and kernel mode code. The reason for this is that an error in user mode code only affects the program executing it, while a kernel mode error can crash the whole system. C. Multiprogramming 1. This was originally motivated by a desire to make efficient use of expensive resources - which is, of course, not really an issue today. 2. It entered the world of Personal Computers in the 1990 s as a vehicle for improved usefulness. 3. A current issue is a competive battle over support for multiprogramming on smart phones between iphone OS and Android. 4. Multiprogramming requires mechanisms in the operating system to protect programs from interfering with one another. D. The notions of preemption and priority. 1. IO preemption - An IO bound process is often allowed to preempt a CPU bound one, in the expectation that it will only need to compute briefly before requesting another IO operation. This may be formalized in a notion of process priority - where a higher priority process will get the CPU ahead of a lower priority one, and where processes that exhibit IO bound behavior are given highr priority that those that appear to be CPU bound. 20

21 2. Timer preemption - originally an all or nothing thing to prevent a job in a stacked job system from hogging the system, but later used to implement time-slicing in a timeshared system and for preemptive multitasking on personal computers. E. The provision of various sorts of user interface whereby the user can specify programs to run. 1. Job Control language in batch systems (or.bat files on Windows) 2. A command line interpreter such as the shell in Unix-like systems (including MacOS) or the command line in Windows systems 3. A graphical interface such as the MacIntosh Finder, Windows Explorer, of Gnome or KDE on Linux. 21

CPS221 Lecture: Operating System Protection

CPS221 Lecture: Operating System Protection Objectives CPS221 Lecture: Operating System Protection last revised 9/5/12 1. To explain the use of two CPU modes as the basis for protecting privileged instructions and memory 2. To introduce basic protection

More information

CPS221 Lecture: Operating System Functions

CPS221 Lecture: Operating System Functions CPS221 Lecture: Operating System Functions Objectives last revised 6/23/10 1. To overview key hardware concepts 2. To iintroduce the process concept 3. To discuss the various kinds of functionality of

More information

CHAPTER-1: INTRODUCTION TO OPERATING SYSTEM:

CHAPTER-1: INTRODUCTION TO OPERATING SYSTEM: CHAPTER-1: INTRODUCTION TO OPERATING SYSTEM: TOPICS TO BE COVERED 1.1 Need of Operating System 1.2 Evolution of os 1.3 operating system i. Batch ii. iii. iv. Multiprogramming Time sharing Real time v.

More information

OPERATING SYSTEM. Functions of Operating System:

OPERATING SYSTEM. Functions of Operating System: OPERATING SYSTEM Introduction: An operating system (commonly abbreviated to either OS or O/S) is an interface between hardware and user. OS is responsible for the management and coordination of activities

More information

Introduction To Operating System

Introduction To Operating System 1 Introduction To Operating System What is Operating System? An operating system is a program that controls the execution of application and acts as an interface between the user of a computer and the

More information

CPS221 Lecture: Operating System Functions

CPS221 Lecture: Operating System Functions CPS221 Lecture: Operating System Functions Objectives 1. To overview key hardware concepts 2. To introduce the process concept 3. To discuss the various kinds of functionality of the OS last revised 8/25/11

More information

1. Operating System Concepts

1. Operating System Concepts 1. Operating System Concepts 1.1 What is an operating system? Operating systems are an essential part of any computer system. An operating system (OS) is software, which acts as an intermediary between

More information

Unit 2 : Computer and Operating System Structure

Unit 2 : Computer and Operating System Structure Unit 2 : Computer and Operating System Structure Lesson 1 : Interrupts and I/O Structure 1.1. Learning Objectives On completion of this lesson you will know : what interrupt is the causes of occurring

More information

Operating Systems Design Fall 2010 Exam 1 Review. Paul Krzyzanowski

Operating Systems Design Fall 2010 Exam 1 Review. Paul Krzyzanowski Operating Systems Design Fall 2010 Exam 1 Review Paul Krzyzanowski pxk@cs.rutgers.edu 1 Question 1 To a programmer, a system call looks just like a function call. Explain the difference in the underlying

More information

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter Lecture Topics Today: Operating System Overview (Stallings, chapter 2.1-2.4, 2.8-2.10) Next: Processes (Stallings, chapter 3.1-3.6) 1 Announcements Consulting hours posted Self-Study Exercise #3 posted

More information

Some popular Operating Systems include Linux Operating System, Windows Operating System, VMS, OS/400, AIX, z/os, etc.

Some popular Operating Systems include Linux Operating System, Windows Operating System, VMS, OS/400, AIX, z/os, etc. An Operating System (OS) is an interface between computer user and computer hardware. An operating system is software which performs all the basic tasks like file management, memory management, process

More information

Principles of Operating Systems CS 446/646

Principles of Operating Systems CS 446/646 Principles of Operating Systems CS 446/646 1. Introduction to Operating Systems a. Role of an O/S b. O/S History and Features Serial processing Simple batch systems Multiprogrammed batch systems Time-sharing

More information

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Operating systems are those

More information

Process behavior. Categories of scheduling algorithms.

Process behavior. Categories of scheduling algorithms. Week 5 When a computer is multiprogrammed, it frequently has multiple processes competing for CPU at the same time. This situation occurs whenever two or more processes are simultaneously in the ready

More information

Virtual Machines WHEN YOU FINISH READING THIS CHAPTER YOU SHOULD BE ABLE TO:

Virtual Machines WHEN YOU FINISH READING THIS CHAPTER YOU SHOULD BE ABLE TO: C H A P T E R 1 9 Virtual Machines WHEN YOU FINISH READING THIS CHAPTER YOU SHOULD BE ABLE TO: Briefly describe the ideal program development environment. Distinguish between virtual and real. Briefly

More information

Introduction to Operating System

Introduction to Operating System Introduction to Operating System An operating system is a program which manages all the computer hardware. It provides the base for application program and acts as an intermediary between a user and the

More information

CSC 453 Operating Systems

CSC 453 Operating Systems CSC 453 Operating Systems Lecture 1: An Introduction What Is an Operating System? An operating system is the software that serves as an interface between the user (or his/her software applications) and

More information

Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar

Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. Operating system

More information

Operating Systems. Introduction & Overview. Outline for today s lecture. Administrivia. ITS 225: Operating Systems. Lecture 1

Operating Systems. Introduction & Overview. Outline for today s lecture. Administrivia. ITS 225: Operating Systems. Lecture 1 ITS 225: Operating Systems Operating Systems Lecture 1 Introduction & Overview Jan 15, 2004 Dr. Matthew Dailey Information Technology Program Sirindhorn International Institute of Technology Thammasat

More information

OPERATING SYSTEMS UNIT - 1

OPERATING SYSTEMS UNIT - 1 OPERATING SYSTEMS UNIT - 1 Syllabus UNIT I FUNDAMENTALS Introduction: Mainframe systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered Systems Real Time Systems Handheld Systems -

More information

Introduction. CS3026 Operating Systems Lecture 01

Introduction. CS3026 Operating Systems Lecture 01 Introduction CS3026 Operating Systems Lecture 01 One or more CPUs Device controllers (I/O modules) Memory Bus Operating system? Computer System What is an Operating System An Operating System is a program

More information

CPS221 Lecture: Threads

CPS221 Lecture: Threads Objectives CPS221 Lecture: Threads 1. To introduce threads in the context of processes 2. To introduce UML Activity Diagrams last revised 9/5/12 Materials: 1. Diagram showing state of memory for a process

More information

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto Ricardo Rocha Department of Computer Science Faculty of Sciences University of Porto Slides based on the book Operating System Concepts, 9th Edition, Abraham Silberschatz, Peter B. Galvin and Greg Gagne,

More information

Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and

Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Applications software. Systems software provides infrastructure

More information

Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications

Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications Computer-System Architecture (cont.) Symmetrically Constructed Clusters (cont.) Advantages: 1. Greater computational power by running applications concurrently on all computers in the cluster. Disadvantages:

More information

Lecture 2: September 9

Lecture 2: September 9 CMPSCI 377 Operating Systems Fall 2010 Lecture 2: September 9 Lecturer: Prashant Shenoy TA: Antony Partensky & Tim Wood 2.1 OS & Computer Architecture The operating system is the interface between a user

More information

Four Components of a Computer System

Four Components of a Computer System Four Components of a Computer System Operating System Concepts Essentials 2nd Edition 1.1 Silberschatz, Galvin and Gagne 2013 Operating System Definition OS is a resource allocator Manages all resources

More information

Processes. CS 475, Spring 2018 Concurrent & Distributed Systems

Processes. CS 475, Spring 2018 Concurrent & Distributed Systems Processes CS 475, Spring 2018 Concurrent & Distributed Systems Review: Abstractions 2 Review: Concurrency & Parallelism 4 different things: T1 T2 T3 T4 Concurrency: (1 processor) Time T1 T2 T3 T4 T1 T1

More information

UNIT I OPERATING SYSTEMS OVERVIEW

UNIT I OPERATING SYSTEMS OVERVIEW UNIT I OPERATING SYSTEMS OVERVIEW Computer System Overview-Basic Elements, Instruction Execution, Interrupts, Memory Hierarchy, Cache Memory, Direct Memory Access, Multiprocessor and Multicore Organization.

More information

Contents. Today's Topic: Introduction to Operating Systems

Contents. Today's Topic: Introduction to Operating Systems Contents Today's Topic: Introduction to Operating Systems We will learn 1. What is Operating System? 2. What OS does? 3. Structure of OS 4. Evolution of OS Batch Processing, Multiprogramming, Time sharing

More information

CSC 2405: Computer Systems II

CSC 2405: Computer Systems II CSC 2405: Computer Systems II Dr. Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Spring 2016 Course Goals: Look under the hood Help you learn what happens under the hood of computer systems

More information

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 13 Virtual memory and memory management unit In the last class, we had discussed

More information

CS 153 Design of Operating Systems

CS 153 Design of Operating Systems CS 153 Design of Operating Systems Winter 19 Lecture 2: Historical perspective Instructor: Nael Abu-Ghazaleh Last time What is an OS? What roles does it play? Today: Historic evolution of Operating Systems

More information

CS 390 Chapter 2 Homework Solutions

CS 390 Chapter 2 Homework Solutions CS 390 Chapter 2 Homework Solutions 2.1 What is the purpose of... System calls are used by user-level programs to request a service from the operating system. 2.5 What is the purpose of... The purpose

More information

Chapter 1: Introduction

Chapter 1: Introduction Chapter 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming Batched Systems Time-Sharing Systems Personal-Computer Systems Parallel Systems Distributed Systems Real -Time

More information

THE CPU SPENDS ALMOST ALL of its time fetching instructions from memory

THE CPU SPENDS ALMOST ALL of its time fetching instructions from memory THE CPU SPENDS ALMOST ALL of its time fetching instructions from memory and executing them. However, the CPU and main memory are only two out of many components in a real computer system. A complete system

More information

Ch 4 : CPU scheduling

Ch 4 : CPU scheduling Ch 4 : CPU scheduling It's the basis of multiprogramming operating systems. By switching the CPU among processes, the operating system can make the computer more productive In a single-processor system,

More information

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Week 05 Lecture 18 CPU Scheduling Hello. In this lecture, we

More information

Operating Systems Overview. Chapter 2

Operating Systems Overview. Chapter 2 1 Operating Systems Overview 2 Chapter 2 3 An operating System: The interface between hardware and the user From the user s perspective: OS is a program that controls the execution of application programs

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Computer Organization and Architecture. OS Objectives and Functions Convenience Making the computer easier to use

Computer Organization and Architecture. OS Objectives and Functions Convenience Making the computer easier to use Computer Organization and Architecture Chapter 8 Operating System Support 1. Processes and Scheduling 2. Memory Management OS Objectives and Functions Convenience Making the computer easier to use Efficiency

More information

Introduction to Computer Systems and Operating Systems

Introduction to Computer Systems and Operating Systems Introduction to Computer Systems and Operating Systems Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered 1. Computer History 2. Computer System

More information

Major OS Achievements. Chris Collins. 15 th October 2006

Major OS Achievements. Chris Collins. 15 th October 2006 Major OS Achievements 1 Running head: MAJOR OS ACHIEVEMENTS Major OS Achievements Chris Collins 15 th October 2006 Major OS Achievements 2 Introduction This paper discusses several major achievements in

More information

31268_WEB SYSTEMS LECTURE 1. Operating Systems Part 1

31268_WEB SYSTEMS LECTURE 1. Operating Systems Part 1 31268_WEB SYSTEMS LECTURE 1 Operating Systems Part 1 What is an operating system? - A piece of software that sits between all programs and the computer s hardware - Manages computer - Runs programs - Interface

More information

Process- Concept &Process Scheduling OPERATING SYSTEMS

Process- Concept &Process Scheduling OPERATING SYSTEMS OPERATING SYSTEMS Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne PROCESS MANAGEMENT Current day computer systems allow multiple

More information

ELEC 377 Operating Systems. Week 1 Class 2

ELEC 377 Operating Systems. Week 1 Class 2 Operating Systems Week 1 Class 2 Labs vs. Assignments The only work to turn in are the labs. In some of the handouts I refer to the labs as assignments. There are no assignments separate from the labs.

More information

Chapter 2 Operating-System Structures

Chapter 2 Operating-System Structures This chapter will discuss the following concepts: 2.1 Operating System Services 2.2 User Operating System Interface 2.3 System Calls 2.4 System Programs 2.5 Operating System Design and Implementation 2.6

More information

GENERAL I ARTICLE. Operating Systems. 1. Objectives and Evolution. operating systems, and then we trace the evolution of operating

GENERAL I ARTICLE. Operating Systems. 1. Objectives and Evolution. operating systems, and then we trace the evolution of operating Operating Systems 1. Objectives and Evolution M Suresh Babu In this article we examine the objectives and fun.ctions of operating systems, and then we trace the evolution of operating systems from the

More information

Overview of Operating Systems

Overview of Operating Systems Lecture Outline Overview of Operating Systems Instructor: Dr. Tongping Liu Operating System: what is it? Evolution of Computer Systems and OS Concepts Different types/variations of Systems/OS Ø Parallel/distributed/real-time/embedded

More information

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition Chapter 2: Operating-System Structures Operating System Concepts Essentials 8 th Edition Silberschatz, Galvin and Gagne 2011 Chapter 2: Operating-System Structures Operating System Services User Operating

More information

LECTURE 3:CPU SCHEDULING

LECTURE 3:CPU SCHEDULING LECTURE 3:CPU SCHEDULING 1 Outline Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time CPU Scheduling Operating Systems Examples Algorithm Evaluation 2 Objectives

More information

Chapter 2: Operating-System

Chapter 2: Operating-System Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services! User Operating System Interface! System Calls! Types of System Calls! System Programs! Operating

More information

Introduction CHAPTER. Practice Exercises. 1.1 What are the three main purposes of an operating system? Answer: The three main puropses are:

Introduction CHAPTER. Practice Exercises. 1.1 What are the three main purposes of an operating system? Answer: The three main puropses are: 1 CHAPTER Introduction Practice Exercises 1.1 What are the three main purposes of an operating system? Answer: The three main puropses are: To provide an environment for a computer user to execute programs

More information

Computer Systems Assignment 4: Scheduling and I/O

Computer Systems Assignment 4: Scheduling and I/O Autumn Term 018 Distributed Computing Computer Systems Assignment : Scheduling and I/O Assigned on: October 19, 018 1 Scheduling The following table describes tasks to be scheduled. The table contains

More information

Lecture 17: Threads and Scheduling. Thursday, 05 Nov 2009

Lecture 17: Threads and Scheduling. Thursday, 05 Nov 2009 CS211: Programming and Operating Systems Lecture 17: Threads and Scheduling Thursday, 05 Nov 2009 CS211 Lecture 17: Threads and Scheduling 1/22 Today 1 Introduction to threads Advantages of threads 2 User

More information

Fundamental Concepts and History

Fundamental Concepts and History Fundamental Concepts and History Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered I. Fundamental Concepts II. Evolution of OS 2 Key Concepts

More information

Overview of Operating Systems

Overview of Operating Systems Lecture Outline Overview of Operating Systems Instructor: Dr. Tongping Liu Thank Dr. Dakai Zhu and Dr. Palden Lama for providing their slides. 1 2 Lecture Outline Von Neumann Architecture 3 This describes

More information

Chapter 5 - Input / Output

Chapter 5 - Input / Output Chapter 5 - Input / Output Luis Tarrataca luis.tarrataca@gmail.com CEFET-RJ L. Tarrataca Chapter 5 - Input / Output 1 / 90 1 Motivation 2 Principle of I/O Hardware I/O Devices Device Controllers Memory-Mapped

More information

Preview. Process Scheduler. Process Scheduling Algorithms for Batch System. Process Scheduling Algorithms for Interactive System

Preview. Process Scheduler. Process Scheduling Algorithms for Batch System. Process Scheduling Algorithms for Interactive System Preview Process Scheduler Short Term Scheduler Long Term Scheduler Process Scheduling Algorithms for Batch System First Come First Serve Shortest Job First Shortest Remaining Job First Process Scheduling

More information

Systems Programming. The Unix/Linux Operating System

Systems Programming. The Unix/Linux Operating System Systems Programming The Unix/Linux Operating System 1 What is UNIX? A modern computer operating system Operating system: a program that acts as an intermediary between a user of the computer and the computer

More information

An Operating System History of Operating Systems. Operating Systems. Autumn CS4023

An Operating System History of Operating Systems. Operating Systems. Autumn CS4023 Operating Systems Autumn 2017-2018 Outline 1 2 What is an Operating System? From the user s point of view an OS is: A program that acts as an intermediary between a user of a computer and the computer

More information

NETW3005 Operating Systems Lecture 1: Introduction and history of O/Ss

NETW3005 Operating Systems Lecture 1: Introduction and history of O/Ss NETW3005 Operating Systems Lecture 1: Introduction and history of O/Ss General The Computer Architecture section SFDV2005 is now complete, and today we begin on NETW3005 Operating Systems. Lecturers: Give

More information

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition

Chapter 6: CPU Scheduling. Operating System Concepts 9 th Edition Chapter 6: CPU Scheduling Silberschatz, Galvin and Gagne 2013 Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Real-Time

More information

Computer Fundamentals : Pradeep K. Sinha& Priti Sinha

Computer Fundamentals : Pradeep K. Sinha& Priti Sinha Computer Fundamentals Pradeep K. Sinha Priti Sinha Chapter 14 Operating Systems Slide 1/74 Learning Objectives In this chapter you will learn about: Definition and need for operating system Main functions

More information

Some popular Operating Systems include Linux Operating System, Windows Operating System, VMS, OS/400, AIX, z/os, etc.

Some popular Operating Systems include Linux Operating System, Windows Operating System, VMS, OS/400, AIX, z/os, etc. Operating System Quick Guide https://www.tutorialspoint.com/operating_system/os_quick_guide.htm Copyright tutorialspoint.com Operating System Overview An Operating System OS is an interface between a computer

More information

Basic Concepts & OS History

Basic Concepts & OS History Basic Concepts & OS History Nima Honarmand Administrivia TA: Babak Amin Azad Office hours: Monday & Wednesday, 5:30-7:00 PM Location: 2217 old CS building VMs ready; SSH Keys will be emailed today Lab1

More information

Reserves time on a paper sign-up sheet. Programmer runs his own program. Relays or vacuum tube hardware. Plug board or punch card input.

Reserves time on a paper sign-up sheet. Programmer runs his own program. Relays or vacuum tube hardware. Plug board or punch card input. Introduction & Ch1 Two Roles of an Operating System Extended Machine or virtual machine Device drivers, Processes, File systems, Networking protocols. Resource Manager Allocates and enforces Memory, Disk

More information

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Processes and Non-Preemptive Scheduling. Otto J. Anshus Processes and Non-Preemptive Scheduling Otto J. Anshus Threads Processes Processes Kernel An aside on concurrency Timing and sequence of events are key concurrency issues We will study classical OS concurrency

More information

Chapter 14 Operating Systems

Chapter 14 Operating Systems Chapter 14 Operating Systems Ref Page Slide 1/54 Learning Objectives In this chapter you will learn about: Definition and need for operating system Main functions of an operating system Commonly used mechanisms

More information

CSC Operating Systems Spring Lecture - XII Midterm Review. Tevfik Ko!ar. Louisiana State University. March 4 th, 2008.

CSC Operating Systems Spring Lecture - XII Midterm Review. Tevfik Ko!ar. Louisiana State University. March 4 th, 2008. CSC 4103 - Operating Systems Spring 2008 Lecture - XII Midterm Review Tevfik Ko!ar Louisiana State University March 4 th, 2008 1 I/O Structure After I/O starts, control returns to user program only upon

More information

CS 326: Operating Systems. CPU Scheduling. Lecture 6

CS 326: Operating Systems. CPU Scheduling. Lecture 6 CS 326: Operating Systems CPU Scheduling Lecture 6 Today s Schedule Agenda? Context Switches and Interrupts Basic Scheduling Algorithms Scheduling with I/O Symmetric multiprocessing 2/7/18 CS 326: Operating

More information

Multiprogramming. Evolution of OS. Today. Comp 104: Operating Systems Concepts 28/01/2013. Processes Management Scheduling & Resource Allocation

Multiprogramming. Evolution of OS. Today. Comp 104: Operating Systems Concepts 28/01/2013. Processes Management Scheduling & Resource Allocation Comp 104: Operating Systems Concepts Management Scheduling & Resource Allocation Today OS evolution Introduction to processes OS structure 1 2 Evolution of OS Largely driven by desire to do something useful

More information

Operating System - Overview

Operating System - Overview Unit 37. Operating System Operating System - Overview An Operating System (OS) is an interface between a computer user and computer hardware. An operating system is a software which performs all the basic

More information

CHAPTER 16 - VIRTUAL MACHINES

CHAPTER 16 - VIRTUAL MACHINES CHAPTER 16 - VIRTUAL MACHINES 1 OBJECTIVES Explore history and benefits of virtual machines. Discuss the various virtual machine technologies. Describe the methods used to implement virtualization. Show

More information

OPERATING SYSTEMS. After A.S.Tanenbaum, Modern Operating Systems, 3rd edition. Uses content with permission from Assoc. Prof. Florin Fortis, PhD

OPERATING SYSTEMS. After A.S.Tanenbaum, Modern Operating Systems, 3rd edition. Uses content with permission from Assoc. Prof. Florin Fortis, PhD OPERATING SYSTEMS #5 After A.S.Tanenbaum, Modern Operating Systems, 3rd edition Uses content with permission from Assoc. Prof. Florin Fortis, PhD General information GENERAL INFORMATION Cooperating processes

More information

Chapter 1: Introduction

Chapter 1: Introduction Chapter 1: Introduction Silberschatz, Galvin and Gagne 2009 Chapter 1: Introduction What Operating Systems Do Computer-System Organization Computer-System Architecture Operating-System Structure Operating-System

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Chapter 8: Memory-Management Strategies

Chapter 8: Memory-Management Strategies Chapter 8: Memory-Management Strategies Chapter 8: Memory Management Strategies Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and

More information

OS - Introduction Ezio Bartocci Institute for Computer Engineering

OS - Introduction Ezio Bartocci Institute for Computer Engineering TECHNISCHE UNIVERSITÄT WIEN Fakultät für Informatik Cyber-Physical Systems Group OS - Introduction Ezio Bartocci Institute for Computer Engineering ezio.bartocci@tuwien.ac.at Operative System What is it?

More information

Advanced Operating Systems (CS 202) Scheduling (1)

Advanced Operating Systems (CS 202) Scheduling (1) Advanced Operating Systems (CS 202) Scheduling (1) Today: CPU Scheduling 2 The Process The process is the OS abstraction for execution It is the unit of execution It is the unit of scheduling It is the

More information

Operating System Services

Operating System Services CSE325 Principles of Operating Systems Operating System Services David Duggan dduggan@sandia.gov January 22, 2013 Reading Assignment 3 Chapter 3, due 01/29 1/23/13 CSE325 - OS Services 2 What Categories

More information

Chapter 2 Operating System Overview

Chapter 2 Operating System Overview True / False Questions: Chapter 2 Operating System Overview 1. T / F An operating system controls the execution of applications and acts as an interface between applications and the computer hardware.

More information

Lecture 1 Introduction (Chapter 1 of Textbook)

Lecture 1 Introduction (Chapter 1 of Textbook) Bilkent University Department of Computer Engineering CS342 Operating Systems Lecture 1 Introduction (Chapter 1 of Textbook) Dr. İbrahim Körpeoğlu http://www.cs.bilkent.edu.tr/~korpe 1 References The slides

More information

Chapter 8: Main Memory

Chapter 8: Main Memory Chapter 8: Main Memory Chapter 8: Memory Management Background Swapping Contiguous Memory Allocation Segmentation Paging Structure of the Page Table Example: The Intel 32 and 64-bit Architectures Example:

More information

CS370: System Architecture & Software [Fall 2014] Dept. Of Computer Science, Colorado State University

CS370: System Architecture & Software [Fall 2014] Dept. Of Computer Science, Colorado State University Frequently asked questions from the previous class survey CS 370: SYSTEM ARCHITECTURE & SOFTWARE [CPU SCHEDULING] Shrideep Pallickara Computer Science Colorado State University OpenMP compiler directives

More information

Table of Contents 1. OPERATING SYSTEM OVERVIEW OPERATING SYSTEM TYPES OPERATING SYSTEM SERVICES Definition...

Table of Contents 1. OPERATING SYSTEM OVERVIEW OPERATING SYSTEM TYPES OPERATING SYSTEM SERVICES Definition... Table of Contents 1. OPERATING SYSTEM OVERVIEW... 1 Definition... 1 Memory Management... 2 Processor Management... 2 Device Management... 2 File Management... 2 Other Important Activities... 3. OPERATING

More information

Chapter 14 Operating Systems

Chapter 14 Operating Systems Chapter 14 Systems Ref Page Slide 1/54 Learning Objectives In this chapter you will learn about: Definition and need for operating Main functions of an operating Commonly used mechanisms for: Process management

More information

Operating System Concepts Rab Nawaz Khan Jadoon

Operating System Concepts Rab Nawaz Khan Jadoon Operating System Concepts Rab Nawaz Khan Jadoon DCS COMSATS Institute of Information Technology Lecturer COMSATS Lahore Pakistan Operating System Concepts Operating System Operating System It is a system

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Chapter 2. Operating-System Structures

Chapter 2. Operating-System Structures Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

COSC243 Part 2: Operating Systems

COSC243 Part 2: Operating Systems COSC243 Part 2: Operating Systems Lecture 17: CPU Scheduling Zhiyi Huang Dept. of Computer Science, University of Otago Zhiyi Huang (Otago) COSC243 Lecture 17 1 / 30 Overview Last lecture: Cooperating

More information

CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES

CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES CHAPTER 8 - MEMORY MANAGEMENT STRATEGIES OBJECTIVES Detailed description of various ways of organizing memory hardware Various memory-management techniques, including paging and segmentation To provide

More information

(Refer Slide Time: 1:26)

(Refer Slide Time: 1:26) Information Security-3 Prof. V Kamakoti Department of Computer science and Engineering Indian Institute of Technology Madras Basics of Unix and Network Administration Operating Systems Introduction Mod01,

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures 2.1 Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable What s An OS? Provides environment for executing programs Process abstraction for multitasking/concurrency scheduling Hardware abstraction layer (device drivers) File systems Communication Do we need an

More information

Operating Systems. Computer Science & Information Technology (CS) Rank under AIR 100

Operating Systems. Computer Science & Information Technology (CS) Rank under AIR 100 GATE- 2016-17 Postal Correspondence 1 Operating Systems Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key concepts,

More information

8th Slide Set Operating Systems

8th Slide Set Operating Systems Prof. Dr. Christian Baun 8th Slide Set Operating Systems Frankfurt University of Applied Sciences SS2016 1/56 8th Slide Set Operating Systems Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

More information

Introduction to Operating System

Introduction to Operating System Introduction to Operating System 06CS53 What is an Operating System? The 1960 s definition of an operating system is the software that controls the hardware. However, today, due to microcode we need a

More information

Lecture 2 - Fundamental Concepts

Lecture 2 - Fundamental Concepts Lecture 2 - Fundamental Concepts Instructor : Bibhas Ghoshal (bibhas.ghoshal@iiita.ac.in) Autumn Semester, 2015 Bibhas Ghoshal IOSY 332C & IOPS 332C: OS Autumn Semester, 2015 1 / 43 Lecture Outline Operating

More information

Module 1: Introduction

Module 1: Introduction Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming Batched Systems Time-Sharing Systems Personal-Computer Systems Parallel Systems Distributed Systems Real-Time Systems

More information