What is an Operating System?
An operating system is an event driven program which acts as an interface between a user of a computer, and the computer hardware.
What are the main purposes of an operating system?
1. Transform a bare machine into an environment or virtual machine in which a user may execute programs.
2. To use the computer hardware in an efficient way.
3. To create a friendly interface between the user and bare machine.
User
Operating System
Bare Machine
To create such an environment the operating system provides certain services to programs and to the users of those programs. Some of these services are:
Program execution:
Error handling:
Job sequencing:
Input/Output operations:
Interrupt handling:
File system manipulation:
Scheduling:
Resource Allocation:
Accounting of computer resources:
Protection:
Program execution: Users are interested in executing programs. The system must be able to load a program into memory and run it. The program must be able to end its execution, either normally or abnormally.
Error handling: For each type of error, the operating system should take the appropriate action to assure correct ant consistent computing.
Example:
Power failure in the CPU or memory.
Parity error on tape.
Printer out of paper.
Arithmetic overflow.
Access illegal memory location.
Job sequencing: The system must determine the sequence in which jobs should be processed. In the first operating systems to transfer control from one Job to the next, a Job Control language interpreter(a command interpreter) had to be used.
Example:
$JOB
$COMPILE "Fortran“
Program
$LOAD & RUN
Data
$EOJ
Input/Output operations: Since a user program cannot execute I/O operations directly, the O.S. must provide some means to do so.
Example:
Rewind tape drive
Start I/O
Skip first record
Interrupt handling: Operating systems are event driven programs. If there are no programs to execute, no
I/O devices to service, and no user to respond to, an O.S. will sit quietly, waiting for something to happen. Events are almost always signaled by the occurrence of an interrupt or trap.
When an interrupt occurs, the hardware transfers control to the O.S., it determines which type of interrupt has occurred, and takes the appropriate actions.
Types of interrupts: 1) Software interrupts
2) Hardware interrupts
Software interrupts: They are generated within the CPU.
1. System calls(also known as SuperVisor Calls-SVC)
2. Traps(i.e. to handle program errors)
Hardware interrupts: These are signals sent to the cpu by devices to indicate that an I/O operation is completed.
1.
I/O interrupts
Timer interrupt: Every time the O.S. assigns the CPU to a program, the timer register is set to a value, say 100 ms, and at each clock tick the register is decremented by one. When the timer register reaches the value zero, an interrupt is generated, and the O.S. takes control of the computer system again, avoiding thus, that none program monopolizes the CPU.
File system manipulation: Users will want to be able to create, delete, read, or write files.
Scheduling: The system has to decide when to introduce new processes into the system and the order in which processes should run.
Resource Allocation: When there are multiple process running concurrently, resources must be allocated to each one of them.
Example:
A compiler.
A tape unit.
Memory.
Accounting of computer resources: The operating system must keep track of the type and amount of resources used by each user. This information can be used for the purpose of paying for the use of the system or for accumulating usage statistics.
Protection: When several processes are being executed concurrently to increase CPU utilization, it should not be possible for one process to interfere the others.
Operating system characteristics
Concurrency:
Sharing:
Long term storage:
Determinacy
Non-determinacy:
Concurrency:
The existence of several simultaneous or parallel activities: for example, overlapping I/O operations and computation.
INPUT DEVICE
CPU
OUTPUT DEVICE
| Data 1 | Data 2 | Data 3 |
| Data 1 | Data 2 | Data 3|
| Data 1 | Data 2 | Data 3|
Sharing:
The existence of several processes accessing the same data area or device. For example, sharing a compiler or a disk unit.
Long term storage:
Programs and data can be stored for long periods of time.
Determinacy
The same program running with the same data should produce the same results.
Non-determinacy:
The operating system must respond to events, which will occur in an unpredictable order but it must preserve the consistency of the whole system. If we have two processes, say P1 and P2, running concurrently, and P1 produces the events E1, E2, E3 and P2 produces the events E3, E4, E5. These six events might occur in different orders, such as E1,E2, E4, E3, E5,E6 or E3, E1, E4, E2,
E3, E5 and the OS will keep all the system in a coherent way.
Operating systems types
Mainframe operating systems
Server operating systems
Multiprocessor operating systems
Network Operating Systems
Distributed Operating Systems
Web operating systems (meta-computing)
Personal computer operating systems
Real time operating systems
Embedded operating systems
Smart card operating systems