0% found this document useful (0 votes)
49 views

Lecture 3

The document discusses operating system processes and process management. It defines what a process is, describes process states and control blocks. It covers CPU scheduling concepts like queues, schedulers and context switching. It also explains process creation using fork(), execution using exec(), and termination. Process communication between parent and child processes is enabled through these system calls.

Uploaded by

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

Lecture 3

The document discusses operating system processes and process management. It defines what a process is, describes process states and control blocks. It covers CPU scheduling concepts like queues, schedulers and context switching. It also explains process creation using fork(), execution using exec(), and termination. Process communication between parent and child processes is enabled through these system calls.

Uploaded by

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

Operating

Systems
Lecture 3
Agenda for Today
 Process concept
 Process scheduling concepts
 Process creation and termination
 Recap of the lecture
What is a process?
 Process – a program in execution; process
execution must progress in sequential
fashion.
 A process consists of:
 Code (text) section
 Data section
 Stack
 Heap
 Environment
 CPU state (program counter, etc.)
 Process control block (PCB)
CPU and I/O Bound
Processes
Processes can be:
 I/O-bound process – spends more time doing
I/O than computations, many short CPU
bursts.
I/O Burst CPU Burst I/O Burst CPU Burst

 CPU-bound process – spends more time


doing computations; few very long CPU
bursts.
CPU Burst I/O CPU Burst I/O
Process States
As a process executes, it changes state
 new: The process is being created.
 ready: The process is waiting to be
assigned to a processor.
 running: Instructions are being executed.
 waiting: The process is waiting for some
event to occur.
 terminated: The process has finished
execution.
Process States
Process Control Block
(PCB)
Process information and attributes
 Process state
 Program counter
 CPU registers
 CPU scheduling information
 Memory-management information
 Accounting information
 I/O status information
 Per process file table
 Process ID (PID)
 Parent PID, etc.
Process Control Block
(PCB)
CPU Switch From
Process to Process
Process Scheduling
Queues
 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 I/O devices.
 Process migration between the various
queues.
Queues in the OS
Queues in a Computer
System
Schedulers
 Long term scheduler
 Short term scheduler
 Medium term scheduler
Long Term Scheduler
 Long-term scheduler (or job scheduler) –
selects processes from the job pool to be
brought into the ready queue.
 Long-term scheduler is invoked very
infrequently (seconds, minutes)  (may be
slow).
 The long-term scheduler controls the degree
of multiprogramming.
 More processes, smaller percentage of time
each process is executed
Short Term Scheduler
 Short-term scheduler (or CPU scheduler) –
selects which process should be executed
next and allocates it the CPU through the
dispatcher.
 Short-term scheduler is invoked very frequently
(milliseconds)  (must be fast).
 Invoked when following events occur
 CPU slice of the current process finishes
 Current process needs to wait for an event
 Clock interrupt
 I/O interrupt
 System call
 Signal
Medium Term
Scheduler
 Also known as swapper
 Selects an in-memory process and swaps
it out to the disk temporarily
 Swapping decision is based on several
factors
 Arrival of a higher priority process but no
memory available
 Poor mix of jobs
 Memory request of a process cannot be met
Addition of Medium
Term Scheduling
Context Switch
 When CPU switches to another process,
the system must save the state (context)
of the ‘current’ (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;
typically in microseconds
Process Creation
 Parent process create children processes,
which, in turn create other processes,
forming a tree of processes.
 Resource sharing
 Parent and children share all resources.
 Children share a subset of parent’s resources.
 Parent and child share no resources.
 Execution
 Parent and children execute concurrently.
 Parent waits until children terminate.
Processes Tree on a
UNIX System
Process Termination
 Process executes the last statement and
requests the operating system to terminate
it (exit).
 Output data from child to parent (via wait).
 Process resources are deallocated by the
operating system, to be recycled later.
Process Termination …
 Parent may terminate execution of
children processes (abort).
 Child has exceeded allocated resources
(main memory, execution time, etc.).
 Parent needs to create another child but has
reached its maximum children limit
 Task performed by the child is no longer
required.
 Parent exits.
 Operating system does not allow child to continue
if its parent terminates.
 Cascaded termination
Process Management
in UNIX/Linux
Important process-related UNIX/Linux
system calls
 fork
 wait
 exec
 exit
fork()
 When the fork system call is executed, a
new process is created which consists of a
copy of the address space of the parent.
 This mechanism allows the
parent process to communicate
easily with the child process.
SYNOPSIS
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
fork() ...
 The return code for fork is zero for the
child process and the process identifier of
child is returned to the parent process.
 On success, both processes continue
execution at the instruction after the fork
call.
 On failure, -1 is returned to the parent
process and errno is set appropriately to
indicate the reason of failure; no child is
created
fork()—Sample Code
main()
{
int pid;
Parent Process pid = 1234

...
pid = fork();
if (pid == 0) {
/* Code for child */ Child Process pid = 0
...
}
else {
/* Code for parent */
...
}
... Kernel Space
}
fork()—Inherits from
the Parent
The child process inherits the following
attributes from the parent:
 Environment
 Open file descriptor table
 Signal handling settings
 Nice value
 Current working directory
 Root directory
 File mode creation mask (umask)
 Etc.
fork()—Child Differs
from the Parent
The child process differs from the
parent process:
 Different process ID (PID)
 Different parent process ID (PPID)
 Child has its own copy of parent’s file
descriptors
 Etc.
fork()—Reasons for
Failure
 Maximum number of processes allowed to
execute under one user has exceeded
 Maximum number of processes allowed
on the system has exceeded
 Not enough swap space

You might also like