Operating System services:
What services an operating system provides?
-OS provides certain services to programs and to the users of these programs.
-There are some common classes of services:
Program execution: load, run, end.
I/O operations: - I/O request file or device
-Signal to I/O devices.
File system manipulation:
- Read.
-Write.
-Delete.
-Create files
Error detection: - in the CPU and memory H/W (memory error, power failure).
-In I/O devices (printer, out of paper).
-User program (arithmetic overflow, attempt to accept illegal memory location, using too much CPU time).
-For each type of error, the OS should take the appropriate action to insure consist and correct computing.
-Another functions exist for the efficient operation of the system itself.
Resource allocation: when there are multiple users or multiple jobs running at the same time, resources must be allocated to each of them.
Resources are: (CPU cycles, main memory, file storage)
Accounting: We want to keep track of which users use how much and what kinds of computing resources.
Protection: When several disjoint jobs are being executed simultaneously inorder to increase utilization; it should not be possible for one job to interfere with the others.
How the OS provides these services?
-Two basic methods: 1. System calls
2. System programs
System calls:
-They provide the interface between the running program and the OS. They are available as assembly language instructions.
-Can be grouped into major categories:
- Process or job control. (halt, load, executer, create process, terminate process, get process attributes, set process attributes)
- File manipulation. (create file, delete file, open, close file, read, write reposition, get file attributes, set file attributes)
- Device management. (request device, release device, read, writes reposition the device, get and set device attributes).
- Information maintenance. (get time and date, set time and date, get system date, set system date, get process, file or device attribute, set process, file or device attributes)
System programs:
Most systems supply a large collection of system programs to solve problems, provide environment for program development and execution. Divided into:
-File manipulation: create, delete, copy, rename, print, dump, list (files & directories)
-Status information: date, time, amount of available memory, disk space, no. of users.
-File modification: text editors (create, modify, store files).
-Program language support: compilers, assemblers, interpreters.
-Program loading & execution: absolute loader, relocatable loader, linker, debugger.
-Application programs: DB, statistical packages, plotting packages, etc.
-Command interpreter: running when job start or user log-in gets command and executes it (shell UNIX)
Operating system concepts:
Processes:
-A process is the key concept in all operating systems. It is a program in execution.
-In various OSs, processes may be called jobs, users, programs, tasks or activities.
-Process execution is a cycle of CPU execution and I/O wait.
-Process execution begins with a CPU burst, followed by an I/O burst, followed by another CPU burst, then another I/O burst and so on.
-Eventually, the last CPU burst will end with a system request to terminate execution.
Process state:
-As a process executes, it changed state.
-Each process may be in one of the following states:
New: the process is being created.
Running: instructions are being executed.
Waiting: the process is waiting for some event to occur (such as an I/O completion)
Ready: the process is waiting to be assigned to a processor.
Terminated: the process has finished execution.
admitted exit
interrupt
Scheduler dispatch
I/O or I/O or
event event waiting
completion
Diagram of process state
Process control block: (PCB)
-Each process is represented in the OS by a PCB also called task control block.
-PCB is a data block or record containing many pieces of the information associated with a specific process, including:
Process state: (new, running, waiting, or halted)
Program counter: (indicates the address of the next instruction to be executed for this process).
CPU registers: (vary in numbers and type, including accumulators, index registers, general purpose registers, stack pointer, plus any condition code information)
CPU scheduling information: (including a process priority, pointers to scheduling queues, and any other scheduling parameters)
Memory management information: including such information as the value of the base and limit registers, the page tables, or the segment tables depending on the memory system used.
Accounting information: including the amount of CPU and real time used, time limits, account numbers, job or process numbers and so on.
I/O status information: include outstanding I/O requests, I/O devices allocated to this process, a list of open files, etc.
-The PCB is the central store of information that allows the OS to locate all key information about a process.
Scheduling Queues:
-Multiple programming has many processes in memory and one is running at all times.
-Uniprocessor system: there will be no more than one running process.
-If there are more processes, the rest will be waiting until the CPU is free.
-The processes, which are ready and waiting to executeare, kept in a list called the ready queue, which is a linked list.
-A ready queue header will contain pointers to the 1st and last PCBs in the list.
PCB#7PCB#2
Q Header
RQ
Mag
Tape
Unit 0
.
.
.
PCB#3PCB34 PCB#6
Disk
Unit0
PCB#5
Terminal
Unit 0
RQ and various I/O device queues
-Each PCB has a pointer field which points to the next process in the ready queue.
-The RQ is not necessarily a (FIFO) queue. It can be implemented as a FIFO queue, a priority queue, or an unordered linked list.
-There are also other queues in the system.
-The list of processes waiting for a particular I/O device is called a device queue.
-Each device has its own device queue.
Queuing diagram representation of CPU scheduling
-A new process is initially put in the RQ. It waits in the RQ until it is selected for execution (or dispatched) and is given the CPU.
-One of the several events could occur:
- Process could issue an I/O request. Then placed in I/O queue.
- Process may create a new sub process and wait for its termination.
- Process could be removed forcibly from the CPU as a result of an interrupt, and put back in the RQ.
-If the device is a dedicated device (time-sharing terminal). The device queue will never have more than one process in it.
-If the device is sharable (Disk), several processes may be in the device queue.
Scheduling
-A process moves between the various scheduling queues throughout its lifetime. OS selects for scheduling purposes, processes by appropriate scheduler.
-An OS has many schedulers.
-There are two main schedulers:
- Long-term scheduler (job schedulers), which selects jobs from the job, pool and load them into memory for execution.
- Short-term scheduler (CPU scheduler)” which selects from among the jobs in memory which re ready to execute and allocates the CPU to one of them.
long-termshort-term
end
-The primary distribution between these two schedulers is the frequency of there execution.
- The short-term must select a new process for the CPU quite often, and must be very fast. (A process may execute for only a few milliseconds before waiting for an I/O request). If it takes 10 milliseconds to decide to execute a process for 100 milliseconds then (10/(100+10)) =9% of the CPU is being used (waist) simply for scheduling the work.
-The long-term executes must less frequently. It may be minutes between the arrivals of new jobs in the system.
- The long-term scheduler controls the degree of multiprogramming (no. of processes in memory).
-If the degree is stable, then the average rate of process creation equal to the average departure rate. Therefore the scheduler invoked only when a process leaves the system.
-Because of the longer interval between executions, the long-term scheduler can afford to take more time to decide which process should be selected for execution.
-Most processes can be described as either I/O bound or CPU bound.
-I/O bound: it spends more of its time doing I/O than it spends doing computation.
-CPU bound process: using more of its time doing computation.
-Long-term scheduler must select a good mix of I/O bound & CPU bound processes.
-On some systems, the long-term may be absent or minimal.
-Example: in time sharing systems often have no long-time scheduler, but simply put every new process in memory for the short-term scheduler.
-Some systems (using virtual memory or time sharing) can have medium-term scheduler to reduce the degree of multiprogramming by using the swapping scheme.
Swap inswap out
Adding medium term scheduler
-Can remove process from memory and reduce the degree of multiprogramming some time later, reintroduce into memory and continued.
1