EVOLUTION OF OPERATING SYSTEM
1. Serial Processing - 1940’s – 1950’s programmer interacted directly with hardware. No operating system.
Scheduling - users sign up for machine time. Wasted computing time
Setup Time- Setup included loading the compiler, source program, saving compiled program, and loading and linking. If an error occurred - start over.
2. Simple Batch Systems
Improve the utilization of computers.
Jobs were submitted on cards or tape to an operator who batches jobs together sequentially. The program that controls the execution of the jobs was called monitor - a simple version of an operating system. The interface to the monitor was accomplished through Job Control Language (JCL). For example, a JCL request could be to run the compiler for a particular programming language, then to link and load the program, then to run the user program.
Memory protection: do not allow the memory area containing the monitor to be altered
Timer: prevents a job from monopolizing the system
Bad utilization of CPU time - the processor stays idle while I/O devices are in use.
3. Multiprogrammed Batch Systems
More than one program resides in the main memory. While a program A uses an I/O device the processor does not stay idle, instead it runs another program B.
Memory management - to have several jobs ready to run, they must be kept in main memory
Job scheduling - the processor must decide which program to run.
4. Time-Sharing Systems
Multiprogramming systems: Several programs use the computer system.
Time-sharing systems: Several (human) users use the computer system interactively.
·Using multiprogramming to handle multiple interactive jobs ·Processor’s time is shared among multiple users
·Multiple users simultaneously access the system through terminals
5. Operating-System Services
The OS provides certain services to programs and to the users of those programs.
1. Program execution:
The system must be able to load a program into memory and to run that program. The program must be able to end its execution, either normally or abnormally (indicating error).
2. I/O operations:
A running program may require I/O. This I/O may involve a file or an I/O device.
3. File-system manipulation:
The program needs to read, write, create and delete files.
4. Communications :
In many circumstances, one process needs to exchange information with another process. Such communication can occur in two major ways. The first takes place between processes that are executing on the same computer; the second takes place between processes that are executing on different computer systems that are tied together by a computer network.
5. Error detection:
The operating system constantly needs to be aware of possible errors. Errors may occur in the CPU and memory hardware (such as a memory error or a power failure), in I/O devices (such as a parity error on tape, a connection failure on a network, or lack of paper in the printer), and in the user program (such as an arithmetic overflow, an attempt to access an illegal memory location, or a too-great use of CPU time). For each type of error, the operating system should take the appropriate action to ensure correct and consistent computing.
6. Resource allocation:
Different types of resources are managed by the Os.
When there are multiple users or multiple jobs running at the same time, resources must be allocated to each of them.
We want to keep track of which users use how many and which kinds of computer resources. This record keeping may be used for accounting or simply for accumulating usage statistics.
The owners of information stored in a multiuser computer system may want to control use of that information. Security of the system is also important.
6. CP derivatives
4. Microsoft Windows
1. Windows 3.x
2. Windows 95/98/Me
3. Windows Xp
4. Windows Vista
5. Windows 7
6. windows 8
7. MULTICS derivatives
· Unix V5 (SCO Unix)
· Modern Unix (Solaris / BSD )
4. Plan 9 jim bading tahaha ·Inferno to hell
7. Mac OSX
8. MIPS RISC/os
9. RISC iX
8. VMS derivatives
3. Microsoft Windows =rude-magic!
9. MacOS derivatives
4. Mac OS
1. Mac OS 9
10. Cambridge CAP Computer derivatives
11. IBSYS derivatives
12. AmigaOS Derivatives
1. AmigaOS 4.x
13. Novel Operating Systems