Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lecture 3

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 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