Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Computer System Banking system Airline reservation Web browser Compilers Editors Command interpreter Operating system Machine language Microprogramming Physical devices Application programs System programs Hardware What is an Operating System? A program that gives the user a virtual machine to use. What does the operating system do: Resource allocator Control program - controls the execution of user programs and operation of I/O devices Evolution of Operating Systems First generation Nothing Second generation Batch processing Spooling Third generation Multiprogramming Time sharing Fourth generation Windows Parallel systems Distributed systems Real time systems First Generation (1945-1955) Machines consisted of vacuum tubes and plugboards - not very reliable Programming was done by changing the wiring using absolute machine language Programmer was the operator Toward the end, paper tape and punch cards were introduced There was no operating system Second Generation - (1955-1965) Machine were made using transistors much more reliable A lot of time was wasted getting input and output ready In order to get better utilization out of the expensive machine, a batch operating system was used Batch Systems Programs were read from punch cards and placed on a magnetic tape The tape was taken to the computer where the programs were executed and the output was put on another tape. The output tape was taken to a line printer where the output was printed Batch Systems (cont.) Problems How does the system know what to do? How does the system distinguish program from data? Solution Introduce control cards Control Cards $JOB - information about the user and the account $FORTRAN - the function the computer is to perform $LOAD - load the program just compiled into memory $RUN - execute the program just compiled $DATA - start of data used by program $END - end of job Batch Systems (cont.) System software needed Control card interpreter Compilers Loaders Device driver for each I/O device Advantages of Batch Systems Main computer not constrained by the speed of the card reader and printer, but by the speed of the magnetic tape Possibility of using multiple card readers and/or line printers for one CPU Third Generation (1965-1980) Machines now used integrated circuits much faster and more reliable We now have: Spooling - simultaneous peripheral operation on-line Multiprogrammed batch systems Time shared systems Spooling Disks were developed Card were read and placed on the disk The jobs were then scheduled from the disk Output was also placed on the disk Efficiency of the CPU improved Spooling provides a job pool, many jobs waiting to execute Multiprogramming Because there are many jobs waiting to execute, it is not necessary to wait for a job to complete Several jobs are kept in memory at the same time If a job blocks for I/O, another job can take over the CPU Multiprogramming (cont.) Thus we have several jobs in execution at the same time This introduces new, necessary software CPU scheduler Memory manager Resource allocator I/O routines supplied by the system Time Sharing The ability to run multiple programs at the same time allows the sharing of resources We are able to time share the CPU - CPU is multiplexed among several jobs that are kept in memory A job is swapped in and out of memory to the disk Time Sharing (cont.) Communication between the user and the system is provided A file system must be available for users to access data and code Time Sharing (cont.) Now, we must worry about: Virtual memory - having more logical memory than physical memory File system Management of second storage (disks) Concurrent execution • Synchronization • Communication • Deadlock Personal Computers Single user machines Workstations - UNIX based PCs - Window based Convenient and responsive to user Machine can be tailored to a specific user The OS still needs many of the same features larger OS’s have Parallel Systems Multiprocessor system with more than one CPU in close communication Usually in a single box Tightly coupled system - shared memory Advantages Increased throughput Economical Faster execution Parallel Systems (cont.) Symmetric multiprocessing Each processor runs the same program Asymmetric multiprocessing Each processor is assigned a specific task; master processor assigns task to the slave processors Distributed Systems Distribute the computation among several processors Use totally separated machines Loosely coupled system - each processor has its own memory and communication is done over networks. Distributed Systems (cont.) Advantages Resource sharing Computation speedup Use existing machines Disadvantages Slow communication Real Time Systems System used when there are rigid time requirements on the flow of data Sensors bring data to the computer Computer analyzes the data Controls are adjusted if necessary Real Time Systems (cont.) Hard real time systems Guarantee that critical tasks complete on time Soft real time systems Critical tasks get priority over other task and retains priority until it completes