| Operating System Evolution |
Article Index for Operating System |
Website Links For Operating System |
Information AboutOperating System Evolution |
|
Early Systems (1950s and early-1960s) Loading a program into memory involved manual word; the data had to be manually fed in via a key panel, punch cards or tapes. The then get the program running, more manual work (physical swiching) was required. The hardware systems were not standardized. Things marginally improved with the coming of the first compilers such as Fortran and Cobol. The process would be something like loading the compiler tape, running the compiler, unloading the compiler, running the assembler, unloading the assembler, unloading the assembler, loading the program, and finally running the program. Stacked Jobs Batch Systems AKA Simple Batch Systems (mid-1950s to mid-1960s) Batch systems were a FCFS system; One queue to the CPU, and each process would lock the CPU until it was complete. During its time, this was no problem, because as the name implies, batch systems were not interactive, users would submit jobs (punch cards) to the system, and hours or days later, the result would be ready. Spooling Batch Systems (mid-1960s to late-1970s) Multiprogrammed Batch Systems (1960s) Multiprogramming was developed so when a process began IO, the CPU would perform what is known as a Context Switch and stop work with that process, beginning on the next one in the queue. This may sound like multitasking, but be clear that it is very different; Although the mutiprogramming system was much more efficient than the pure-batch (CPU was always busy), it was still a batch system at heart as it only cared about keeping itself busy, and gave no notice or guarantee that a program will run in a timely manner. ie Batch multiprogramming was designed to utilize CPU beter, but was still not an interactive system. A multiprogramming operating system is a system that allows more than one active user program (or part of user program) to be stored in main memory simultaneously. Time-Sharing AKA Multi-tasking AKA Interactive Multiprogramming (1970s to present) Finally, When computer usage evolved from batch mode to interactive mode, multiprogramming was no longer a suitable approach. Enter time-sharing. Early time-sharing systems relied on programs to give up control, ie co-operative multi-tasking. Later this was remedied with pre-emptive multi-tasking where the kernel took control, and the system longer relied on programs politeness. A time-sharing (multi-tasking) system is a multiprogramming system, but multiprogramming system is not necessarily a time-sharing (multi-taskig) system. Parallel Systems Parallel Systems come in several falvours and implementations. Flavours:
Implementations:
Realtime (1970s) This is also a form of interactive system, however the value of any computation is no longer judged merely by its computational evaluation, but also with the time in which it was produced, ie time is of the essence. This time-factor gives rise to two streams of realtime systems; hard-realtime, and soft-realtime. Where in hard realtime systems, a computation must meet a deadline, after which time the data is worthless, in a soft-realtime system the data value does not suddenly become worthless, but does begin to lose value. Some time-sharing systems pretend to be realtime by giving certain tasks higher priority, but what happens when implicite underlying design intervenes unexpectedly. Every running program will eventually call upon the kernel to perfom a task; Where an explicit call (eg system call) is signalled, it can be deemed as high or low priority and allow the psuedo-RT system to function as expected; what happens when an implicit call happens, such as a page-fault? Virtual memory means page-faults, and page-swaps. This will cause an unexpected delay in the computation, and is one thing that will stop the everyday desktop from being deemed as a real realtime system. Personal Computer Systems (1980s) Multiprocessor Systems (1980s) Network Systems (1980s) In a network operating system the user is aware of the existence of multiple computers. Network operating systems are not fundamentally different from single processor operating systems; communication established at application level (~OSI layer 7), not at a low level. PCs these days are part of a network system when they conduct in activities such as client-server (eg, mail client, mail servcer), or peer-to-peer (online file-sharing). In fact network systems are primarily used for file or data sharing. Distributed Systems (1980s) A distributed operating system, in contrast, is one that appears to its users as a traditional uniprocessor system, even though it is actually composed of multiple processors. The network, or the existence of one is mostly transparent to the user, producing a powerful virtual machine. Beowolf Linux is an example of a distributed OS. Handheld (1990s) Examples are modern cellular/mobile phones and PDAs. The purpose of these devices are mobility and size, and the consequence is smaller screens, slower processing and limited power. |
|
|