Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
OPERATING SYSTEMS PROCESSES 1 OPERATING SYSTEM Processes • Process Definition • Scheduling Processes • What Do Processes Do? • Inter-process Communication 2 Process A process is : • An instance of a program in execution • An asynchronous activity • The “animated spirit” of a procedure • The “locus of control” of a procedure in execution • The “dispatch able” unit • An unit of work individually schedulable by an operating system. Formally, we can define a process is an executing program, including the current values of the program counter, registers, and variables. The subtle difference between a process and a program is that the program is a group of instructions whereas the process is the activity. A program is passive; a process is active. 3 Process Management Functions The process management functions include: 1. Process creation 2. Termination of the process 3. Controlling the progress of the process 4. Process Scheduling 5. Dispatching 6. Interrupt handling / Exceptional handling 7. Switching between the processes 8. Process synchronization 9. Inter process communication support 10. Management of Process Control Blocks 4 Process States • Let us start with these states: • The Running state • The process that is executing on the CPU is in the Running state • The Blocked state • A process that is waiting for something (e.g. I/O) to complete is in the Blocked state • The Ready state • A process that is ready to be executed, but not currently assigned to a CPU, is in the Ready state • Only one process can be running on any processor at any instant. • Many processes may be ready and waiting. 5 PROCESSES PROCESS STATE(5) As a process executes, it changes state new: The process is being created running: Instructions are being executed waiting: The process is waiting for some event to occur ready: The process is waiting to be assigned to a processor terminated: The process has finished execution 6 A Seven-State Process Model But it is better to add two more states to keep track of those that are still blocked, and those which are no longer blocked because their event has occurred.. 7 Some New state Transitions • Blocked --> Blocked Suspend • When all processes are blocked, the OS may remove a blocked process to bring an unblocked process into memory • The “swap out” frees up memory to allow this to happen • Blocked Suspend --> Ready Suspend • When the event for which process has been waiting occurs • Ready Suspend --> Ready • When there are no ready processes in main memory • Normally, this transition is paired with Blocked --> Blocked suspend for another process (a “swap”) • Ready--> Ready Suspend • When there are no blocked processes and must free up memory for performance reasons • New--> Ready Suspend 8 • Probably the preferred way to introduce new processes PROCESSES Process State PROCESS CONTROL BLOCK: Each process is represented in the O.S. by a Process Control Block. 1. Program counter 2. CPU registers 3. CPU scheduling information 4. Memory-management information 5. Accounting information 6. I/O status information. 9 PROCESS CONTROL BLOCK • A PCB contains the following Information: – Process state: new, ready, … – Program counter: indicates the address of the next instruction to be executed for this program. – CPU registers: includes accumulators, stack pointers, – CPU scheduling information: includes process priority,pointers to scheduling queues. – Memory-management information: includes the value of base and limit registers (protection) … – Accounting information: includes amount of CPU and real time used, account numbers, process numbers, … – I/O status information: includes list of I/O devices allocated to this process, a list of open files, … 10 PROCESSES Scheduling Components Context Switch The act of Scheduling a process means changing the active PCB pointed to by the CPU. Also called a context switch. •When CPU switches to another process, the system must save the state of the old process and load the saved state for the new process •Context-switch time is overhead; the system does no useful work while switching •Time dependent on hardware support 11 Two Types of Context Switch • Simple Mode Switch to process an interrupt without switching processes: user process is suspended but will be resumed immediately: • only save what is necessary to resume execution of the same process (e.g. program counter, couple of registers) • Full Process Switch: process is suspended and another process will get the CPU: • save entire context into PCB, load new context from other PCB, update process state. • A “heavier duty” operation 12 CPU Switch From Process to Process Let us understand with the help of an example. Suppose if two processes P0 and P1 are in ready queue. Suppose if two processes P0 and P1are in ready queue. If CPU is executing process P0 and process P1 is in wait state. If an interrupt occurs for Process P0, the operating system suspends the execution of the first process, and stores the current information of Process P0 in its PCB and context to the second process namely Process P1. In doing so, the program counter from the PCB of Process P1 is loaded, and thus execution can continue with the new process. 13 Process Scheduling Queues • Objective of multiprogramming is to have some process running at all time to maximize CPU utilization. • Objective of time sharing is to switch the CPU among processes so frequently that users can interact with each program while it is running. •For a uniprocessor system, there will never be more than one running process. If there are more processes, the rest will have to wait until the CPU is free and can be rescheduled. •Job queue – Set of all processes in the system •Ready queue – Set of all processes residing in main memory, ready and waiting to execute. Ready queue is stored as linked list. A Ready queue Header will contain pointers to the first and last PCBs in the list. Each PCB has a pointer field that points to the next process in the Ready queue. • Device queues – Set of processes waiting for an I/O device Each device has its own device queue. Processes migrate among the various queues Representation of Process Scheduling Schedulers Long-term scheduler (or Job scheduler) – Selects which processes should be brought into the ready queue (i.e, selects processes from pool (disk) and loads them into memory for execution). • Short-term scheduler (or CPU scheduler) – Selects which process should be executed next and allocates CPU (i.e, selects from among the processes that are ready to execute, and allocates the CPU to one of them) . Schedulers (Cont.) •Short-term scheduler is invoked very frequently (milliseconds) (must be fast) •Long-term scheduler is invoked very infrequently (seconds, minutes) (may be slow) •The long-term scheduler controls the degree of multiprogramming (The number of processes in the memory) Medium-term scheduler – Is used to remove processes from memory and reduce the degree of multiprogramming (the process is swapped out and swapped in by the medium-term scheduler. Addition of Medium Term Scheduling Schedulers (Cont.) Processes can be described as either: – I/O-bound process – spends more time doing I/O than computations, many short CPU bursts. – CPU-bound process – spends more time doing computations; few very long CPU bursts. • If all processes are I/O bound, the ready queue will almost always be empty and the short-scheduler will have little to do. • If all processes are CPU bound, the I/O waiting queue will almost always be empty, devices will go unused, and the system will be unbalanced. • To get best performance the system should have a combination of CPU and I/O bound processes. 19 Dispatcher (short-term scheduler) • An OS program that switches the CPU from one process to another selected by the short term scheduler. It involves —Context switching —Switching to user mode • It prevents a single process from monopolizing CPU time.It decides who goes next according to a scheduling algorithm • The time it takes for the dispatcher to stop one process and start another running is called dispatch latency • The CPU executes instructions in the dispatcher while switching from process A to process B 20 Process Creation • A process may create several new processes, via a create-process system call, during execution. • Parent process creates children processes, which, in turn create other processes, forming a tree of processes. • Resource sharing, such as CPU time, memory, files, I/O devices … – The Parent continues to execute concurrently with its children – The parent waits until some or all of its children have terminated – The child process is a duplicate of the parent process (it has the same program and data as the parent) – The child process has a new program loaded into it 21 Process Creation (Cont.) • UNIX examples – fork system call creates new process – execve system call used after a fork to replace the process memory space with a new program. 22 Process Creation int main() { pid_t pid; /* C Program Forking Separate Process /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); } } 23 When does a process get terminated? • Batch job issues Halt instruction • User logs off • Process executes a service request to terminate • Error or fault conditions 24 Process Termination • Process executes last statement and asks the operating system to delete it (exit) • Output data from child to parent (via wait) • Process’ resources are de-allocated by operating system • Parent may terminate execution of children processes (abort) —Child has exceeded allocated resources —Task assigned to child is no longer required • If parent is exiting Some operating system do not allow child to continue if its parent terminates – All children terminated - cascading termination 25 Threads •Process creation is heavy-weight while thread creation is lightweight – Threads run within application • Multiple tasks with the application can be implemented by separate threads Update display Fetch data Spell checking Answer a network request • Can simplify code, increase efficiency • Kernels are generally multithreaded. • A traditional or heavyweight process is equal to a task with one thread. 26 Single and Multithreaded Processes Benefits Responsiveness Resource Sharing Economy Scalability Cooperating Processes • Independent process cannot affect or be affected by the execution of another process • Cooperating process can affect or be affected by the execution of another process • Advantages of process cooperation • • • • Information sharing Computation speed-up Modularity Convenience 28 Synchronization • Message passing may be either blocking or non-blocking • Blocking is considered synchronous • Blocking send has the sender block until the message is received • Blocking receive has the receiver block until a message is available • Non-blocking is considered asynchronous • Non-blocking send has the sender send the message and continue • Non-blocking receive has the receiver receive a valid message or null 29 Interproces Communication Mechanism for processes to communicate and to synchronize their actions. • IPC is best provided by message-passing systems. • IPC facility provides two operations: – send(message) – message size fixed or variable – receive(message) • If P and Q wish to communicate, they need to: – establish a communication link between them – exchange messages via send/receive • Processes can communicate in two ways: – Direct communication – Indirect communication Direct Communication Processes must name each other explicitly: – send (P, message) – send a message to process P – receive(Q, message) – receive a message from process Q • Properties of communication link – Links are established automatically. – A link is associated with exactly one pair (two processes) of communicating processes. – Between each pair there exists exactly one link. – The link may be unidirectional, but is usually bidirectional Disadvantage of Direct Communication: The names of processes must be known - they can't be easily changed since they are explicitly named in the send and receive. 31 Indirect Communication Messages are directed and received from mailboxes (also referred to as ports). – Each mailbox has a unique id. – Processes can communicate only if they share a mailbox. • Properties of communication link: – Link established only if processes share a common mailbox – A link may be associated with many processes. – Each pair of processes may share several communication links. – Link may be unidirectional or bi-directional. • The O.S. provides a mechanism that allows a process: – create a new mailbox – send and receive messages through mailbox – destroy a mailbox 32 Indirect Communication (Continued) Example: Mailbox sharing – P1, P2, and P3 share mailbox A. – P1, sends; P2 and P3 receive. – Who gets the message? • Solutions: – Allow a link to be associated with at most two processes – Allow only one process at a time to execute a receive operation. – Allow the system to select arbitrarily the receiver. Sender is notified who the receiver was 33 Buffering Queue of messages attached to the link; implemented in one of three ways. 1. Zero capacity – 0 messages. Sender must wait for receiver (rendezvous). 2. Bounded capacity – finite length of n messages. Sender must wait if link full. 3. Unbounded capacity – infinite length. Sender never waits. 34 QA 1.Process is a)program in High level language kept on disk b)contents of main memory c) A program in execution d) Job in secondary memory 2. Which of the following is not the state of a process ? a) New b) Old c) Waiting d) Running 3.What is the ready state of a process? a) when process is scheduled to run after some execution b) when process is unable to run until some task has been completed c) when process is using the CPU d) none of the mentioned QA 4.What is interprocess communication? a) communication within the process b)communication between two process c) communication between two threads of same process d) none mentioned 5.The address of the next instruction to be executed by the current process is provided by the a) CPU registers b) program counter c) process stack d) pipe 6.In Unix, Which system call creates the new process? a) fork b) create c) new d) none of the mentioned 36 QA 7. A Process Control Block(PCB) does not contain which of the following : a) Code b) Stack c) Program Counter d) bootstrap program 8. The Process Control Block is : a) Process type variable b) Data Structure c) a secondary storage section d) a Block in memory 9. The degree of multi-programming is : a) No. of processes executed per unit time b) No. of processes in the ready queue c) No. of processes in the I/O queue d) No. of processes in memory QA 10. The child process completes execution, but the parent keeps executing, then the child process is known as : a) Orphan b) Zombie c) Body d) Dead 11. Context switch is involved in a) Switching computer on b) Switching CPU from one process to another c) Switching a process on d) None of these 12. Scheduling a process from Ready Queue to CPU is done by a) Short term scheduler b) Midlle term Scheduler c) Long-Term Scheduler d) Dispatcher QA 39