0% found this document useful (0 votes)
8 views30 pages

Wa0001

cys

Uploaded by

jehad yaseen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views30 pages

Wa0001

cys

Uploaded by

jehad yaseen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

Chapter 3: Processes

Operating System Concepts – 9 th Edition Silberschatz, Galvin and Gagne ©2013


Chapter 3: Processes
● Process Concept
● Process Scheduling
● Operations on Processes
● Interprocess Communication

Operating System Concepts – 9 th Edition 3.2 Silberschatz, Galvin and Gagne ©2013
Process Concept

● Process – a program in execution; process execution must


progress in sequential fashion
● Process Multiple parts
● text section: The program code.
● Current activity Section: including program counter,
processor registers
● Stack section: containing temporary data
4 Function parameters, return addresses, local
variables
● Data section: containing global variables
● Heap section: containing memory dynamically
allocated during run time

Operating System Concepts – 9 th Edition 3.3 Silberschatz, Galvin and Gagne ©2013
Process Concept (Cont.)
● Program is passive entity stored on disk (executable file),
process is active
● Program becomes process when executable file loaded into
memory
● One program can be several processes
● Consider multiple users executing the same program

Operating System Concepts – 9 th Edition 3.4 Silberschatz, Galvin and Gagne ©2013
Process in Memory

Operating System Concepts – 9 th Edition 3.5 Silberschatz, Galvin and Gagne ©2013
Process State
● 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

Diagram of Process State

Operating System Concepts – 9 th Edition 3.6 Silberschatz, Galvin and Gagne ©2013
Process Control Block (PCB)
Information associated with each process
(also called task control block)
● Process state – running, waiting, etc
● Program counter – location of
instruction to next execute
● CPU registers – contents of all
process-centric registers
● CPU scheduling information- priorities,
scheduling queue pointers
● Memory-management information –
memory allocated to the process
● Accounting information – CPU used,
clock time elapsed since start, time
limits
● I/O status information – I/O devices
allocated to process, list of open files

Operating System Concepts – 9 th Edition 3.7 Silberschatz, Galvin and Gagne ©2013
CPU Switch From Process to Process

Operating System Concepts – 9 th Edition 3.8 Silberschatz, Galvin and Gagne ©2013
Question

● What to we mean by save and reload the


process state in the case of context
switch?

Operating System Concepts – 9 th Edition 3.9 Silberschatz, Galvin and Gagne ©2013
Process Scheduling

● Maximize CPU use, quickly switch processes onto CPU for


time sharing
● Process scheduler selects among available processes for
next execution on CPU
● Maintains scheduling queues of processes
● Job queue – set of all processes in the system
● Ready queue – set of all processes residing in main
memory, ready and waiting to execute
● Device queues – set of processes waiting for an I/O
device
● Processes migrate among the various queues

Operating System Concepts – 9 th Edition 3.10 Silberschatz, Galvin and Gagne ©2013
Ready Queue And Various I/O Device Queues

Operating System Concepts – 9 th Edition 3.11 Silberschatz, Galvin and Gagne ©2013
Representation of Process Scheduling

● Queueing diagram represents queues, resources, flows

Operating System Concepts – 9 th Edition 3.12 Silberschatz, Galvin and Gagne ©2013
Schedulers
● Short-term scheduler (or CPU scheduler) – selects which process
should be executed next and allocates CPU
● Sometimes the only scheduler in a system
● Short-term scheduler is invoked frequently (milliseconds) ⇒ (must be
fast)
● Long-term scheduler (or job scheduler) – selects which processes
should be brought into the ready queue
● Long-term scheduler is invoked infrequently (seconds, minutes) ⇒
(may be slow)
● The long-term scheduler controls the degree of multiprogramming
● 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
● Long-term scheduler strives for good process mix

Operating System Concepts – 9 th Edition 3.13 Silberschatz, Galvin and Gagne ©2013
Addition of Medium Term Scheduling
● Medium-term scheduler can be added if degree of multiple
programming needs to decrease
● Remove process from memory, store on disk, bring back
in from disk to continue execution: swapping

Operating System Concepts – 9 th Edition 3.14 Silberschatz, Galvin and Gagne ©2013
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 via a context switch
● Context of a process represented in the PCB
● Context-switch time is overhead; the system does no useful
work while switching
● The more complex the OS and the PCB the longer the
context switch
● Time dependent on hardware support
● Some hardware provides multiple sets of registers per
CPU multiple contexts loaded at once

Operating System Concepts – 9 th Edition 3.15 Silberschatz, Galvin and Gagne ©2013
Operations on Processes

● System must provide mechanisms for:


● process creation.
● process execution.
● process termination.

Operating System Concepts – 9 th Edition 3.16 Silberschatz, Galvin and Gagne ©2013
Process Creation & Exec.
● Parent process create children processes, which, in turn create
other processes, forming a tree of processes
● Generally, process identified and managed via a process
identifier (pid)
● Resource sharing options
● Parent and children share all resources
● Children share subset of parent’s resources
● Parent and child share no resources
● Execution options
● Parent and children execute concurrently
● Parent waits until children terminate
● Address space
● Child duplicate of parent
● Child has a program loaded into it

Operating System Concepts – 9 th Edition 3.17 Silberschatz, Galvin and Gagne ©2013
Process Creation & exec. (Cont.)
● UNIX examples
● fork() creates new process
● exec() used after a fork() to execute the process code.

Operating System Concepts – 9 th Edition 3.18 Silberschatz, Galvin and Gagne ©2013
● The fork() command makes a complete copy of the
running process and the only way to differentiate the
two is by looking at the returned value
● fork() returns the process identifier (pid) of the child process in
the parent
● fork() returns 0 in the child.

Operating System Concepts – 9 th Edition 3.19 Silberschatz, Galvin and Gagne ©2013
#include <stdio.h>
#include <stdlib.h>
int main()
{
int pid;
/* fork another process */
pid = fork(); C Program
if (pid < 0) { /* error occurred */
fprintf(stderr, "Fork Failed"); Forking
}
exit(-1);
Separate
else if (pid == 0) { /* child process */ Process
execlp("/bin/ls", "ls", NULL);
}
else { /* parent process */
/* parent will wait for the child to complete */
wait (NULL);
printf ("Child Complete");
exit(0);
}
return 0;
}
Operating System Concepts – 9 th Edition 3.20 Silberschatz, Galvin and Gagne ©2013
A tree of processes on a typical Solaris

Operating System Concepts – 9 th Edition 3.21 Silberschatz, Galvin and Gagne ©2013
Question

● Why do we need fork to create new


processes?

Operating System Concepts – 9 th Edition 3.22 Silberschatz, Galvin and Gagne ©2013
Process Termination

● Process executes last statement and then asks the operating


system to delete it using the exit().
● Returns status data from child to parent .
● Process’ resources are deallocated by operating system
● Parent may terminate the execution of children processes using
the abort(). Some reasons for doing so:
● Child has exceeded allocated resources
● Task assigned to child is no longer required
● The parent is exiting and the operating systems does not
allow a child to continue if its parent terminates

Operating System Concepts – 9 th Edition 3.23 Silberschatz, Galvin and Gagne ©2013
Process Termination

● Some operating systems do not allow child to exists if its parent


has terminated. If a process terminates, then all its children must
also be terminated.
● cascading termination. All children, grandchildren, etc. are
terminated.

Operating System Concepts – 9 th Edition 3.24 Silberschatz, Galvin and Gagne ©2013
● How processes communicate?

Operating System Concepts – 9 th Edition 3.25 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication

● Processes within a system may be independent or cooperating.


● Independent process cannot affect or be affected by the
execution of another process
● Cooperating process can affect or be affected by other processes,
including sharing data
● Reasons for cooperating processes:
● Information sharing
● Computation speedup
● Modularity
● Convenience
● Cooperating processes need interprocess communication (IPC)
● Two models of IPC
● Shared memory
● Message passing

Operating System Concepts – 9 th Edition 3.26 Silberschatz, Galvin and Gagne ©2013
Communications Models

(a) Message passing. (b) shared memory.

Operating System Concepts – 9 th Edition 3.27 Silberschatz, Galvin and Gagne ©2013
Question

● What are the strengths and weaknesses


of the two communication models?

Operating System Concepts – 9 th Edition 3.28 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication – Shared Memory

● Interprocess Communication – Shared Memory


● An area of memory shared among the processes that wish
to communicate
● The communication is under the control of the users
processes not the operating system.

● Interprocess Communication – Message Passing


● IPC facility provides two operations:
4 send(message)
4 receive(message)
● If processes P and Q wish to communicate, they need to:
4 Establish a communication link between them
4 Exchange messages via send/receive

Operating System Concepts – 9 th Edition 3.29 Silberschatz, Galvin and Gagne ©2013
Interprocess Communication – Message Passing

● Mechanism for processes to communicate and to synchronize their


actions
● Message system – processes communicate with each other
without resorting to shared variables
● 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
● Implementation of communication link
● physical (e.g., shared memory, hardware bus)
● logical (e.g., logical properties)

Operating System Concepts – 9 th Edition 3.30 Silberschatz, Galvin and Gagne ©2013

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy