Post date: Dec 5, 2014 6:24:47 PM
Bootstrap Process
A very small section of memory is made of ROM and holds a small program called the bootstrap program. When the computer is turned on, the CPU counter is set to the first instruction of this bootstrap program and executes the instructions in this program. This program is only responsible for loading the operating system itself, or that part of it required to start up the computer, into RAM memory. When loading is done, the program counter in the CPU is set to the first instruction of the operating system in RAM and the operating system is executed.
Batch systems
Each program to be executed was called a job. An operator ensured that all of the computer's resources were transferred from one job to the next in this era.
Time-sharing systems
Using computer system resources efficiently, multiprogramming was introduced. The idea is to hold several jobs in memory at a time, and only assign a resource to a job that needs it on the condition that the resource is available. The operating system now had to do scheduling. This era, the user could directly interact with the system without going through an operator. And also, a job is a program to be run, while a process is a program that is in memory and waiting for resources.
noted:
scheduling: allocating resources to different programs and deciding which program should use which resource, and when.
Personal systems
When personal computers were introduced, there was a need for an operating system for this new type of computer. During this era, single-user operating systems such as DOS was introduced.
noted:
DOS: Disk Operating System
Parallel systems
It led by a multiple CPUs on the same machine to lead more speed and efficiency. Each CPU can be used to serve one program or a part of a program, which means that many tasks can be accomplished in parallel instead of serially. Hence, the operating systems required for this are more complex than those that support single CPUs.
Distributed systems
A job was previously done on one computer can now be shared between computers that may be thousands of miles apart. A program can be run partially on one computer and partially on another if they are connected through an Internetwork. Moreover, it also combines with new duties now, such as controlling security.
Real-time systems
It is expected to do a task within specific time constraint. They are used with real-time applications, which monitor, respond to, or control external processes or environments. Hence, the application program can sometime be an embedded system such a component of a large system.
Components of an operating system
User interface
Each operating system has a user interface, a program that accepts requests from users and interprets them for the rest of the operating system. A user interface in some operating systems, such as UNIX (Shell), Microsoft (Windows) and Apple (Mac) etc, and has a GUI component now.
noted:
GUI: Graphical User Interface
Memory manager
One of the responsibilities of a modern computer is memory management. Hence, memory allocation must be managed to prevent applications from running out of memory. Operating systems can be divided into two board categories of memory management: monoprogramming and multiprogramming.
Process manager
-Deadlock
For example, assume that there are two processes, A and B. A is holding a file, File1 (that's, File1 is assigned to A) and cannot release it until it acquires another file, File2 (that's, A has requested File2). B is holding it and cannot release it until is has File1. Files in most systems are not sharable-when in use by one process, a file cannot be used by another process. If there is no provision in this situation to force a process to release a file, deadlock is created.
-Starvation
It is opposite of deadlock. It can happen when the operating system puts too many resource restrictions on a process.
For example, imagine an operating system that specifies that a process must have possession of its required resources before it can be run. Imagine process A needs two files, File1 and File2. File1 is being used by B and File2 is being used by E. Process B terminates first and release File1. Process A cannot be started, since File2 is still not available. At this moment, C, which needs only File1, is allowed to run. Now process E terminates and release File2, but A still cannot run because File1 is unavailable.
A classic starvation problem is the one introduced by Edsger Dijkstra. Five philosophers are sitting at a round table. Each philosopher needs two chopsticks to eat a bowl of rice. However, one or both chopsticks could be used by a neighbour. A philosopher could starve if two chopsticks are not available at the same time.
Device manager
It is responsible for access to input/output devices. There are limitations on the number and speed of input/output devices in a computer system. Since these devices are slower in speed compared with the CPU and memory, when a process accesses an input.output device, the device is not available to other processes for a period of time. Hence, we also called it input/output manager.
File manager
Operating systems
UNIX, Linux, Windows