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

Processes

This document provides an overview of operating system concepts related to processes including: 1. Definitions of processes and programs, process states and transitions between running, ready, and blocked states. 2. How processes are created, terminated, and managed through process control blocks and process tables. 3. Scheduling policies and queues for ready and blocked processes.
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)
52 views

Processes

This document provides an overview of operating system concepts related to processes including: 1. Definitions of processes and programs, process states and transitions between running, ready, and blocked states. 2. How processes are created, terminated, and managed through process control blocks and process tables. 3. Scheduling policies and queues for ready and blocked processes.
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/ 66

Course Syllabus

1. Introduction - History; Views; Concepts; Structure


2. Process Management - Processes; State + Resources; Threads;
Unix implementation of Processes
3. Scheduling – Paradigms; Unix; Modeling
4. Synchronization - Synchronization primitives and their
equivalence; Deadlocks
5. Memory Management - Virtual memory; Page replacement
algorithms; Segmentation
6. File Systems - Implementation; Directory and space management;
Unix file system; Distributed file systems (NFS)
7. Security – General policies and mechanisms; protection models;
authentication
8. Multiprocessors, Virtualization

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 1
Processes: The Process Model

 Multiprogramming of four programs


 Conceptual model of 4 independent, sequential processes
 Only one program active at any instant

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 2
Processes and programs
The difference between a process and a program:
 Baking analogy:
o Recipe = Program
o Baker = Processor
o Ingredients = data
o Baking the cake = Process
 Interrupt analogy
o The baker’s son runs in with a wounded hand
o First aid guide = interrupt code

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 3
Main OS Process-related Goals
 Interleave the execution of existing processes to
maximize processor utilization
 Provide reasonable response times
 Allocate resources to processes
 Support inter-process communication (and
synchronization) and user creation of processes

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 4
How are these goals achieved?
 Schedule and dispatch processes for execution by the
processor
 Implement a safe and fair policy for resource
allocation to processes
 Respond to requests by user programs
 Construct and maintain tables for each process
managed by the operating system

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 5
Process Creation
?When is a new process created

1. System initialization (Daemons)


2. Execution of a process creation system call by a
running process
3. A user request to create a process
4. Initiation of a batch job

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 6
Process Termination
?When does a process terminate

1. Normal exit (voluntary)


2. Error exit (voluntary)
3. Fatal error (involuntary)
4. Killed by another process (involuntary)

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 7
Processes: outline

 Basic concepts
 Process states and structures
 Process management
 signals
 Threads
 Specific implementations

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 8
Process States

 Running - actually using the CPU


 Ready – runnable, temporarily stopped to let
another process run
 Blocked - unable to run until some external event
happens

A process can block itself, but not “run” itself

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 9
Process State Transitions
When do these
?transitions occur Running

1. Process blocks for input


or waits for an event 1
2
2. End of time-slice, or
3
preemption
3. Scheduler switches back Blocked
to this process
4. Input becomes available, Ready
event arrives 4

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon


Meisels 10
Five-State Process Model

Dispatch Release
Admit
New Ready Running Exit

Time-out

Event Event
Occurs Wait

Blocked

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 11
Scheduling: Single Blocked Queue
Ready Queue
Dispatch Release
Admit
Processor

Time-out

Event Wait

Event
Occurs
Blocked Queue

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 12
Scheduling: Multiple Blocked Queues
Ready Queue
Dispatch Release
Admit
Processor

Time-out

Event 1 Event 1 Wait


Occurs
Event 1 Queue

Event 2 Event 2 Wait


Occurs
Event 2 Queue
Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 13
Suspended Processes
 Processor is much faster than I/O so many processes
could be waiting for I/O
 Swap some of these processes to disk to free up
more memory
 Blocked state becomes blocked-suspended state
when swapped to disk, ready becomes
ready-suspended
 Two new states
o Blocked-suspended
o Ready-suspended

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 14
Process State Transition Diagram with Two
Suspend States
New

Admit Suspend
Admit

Activate Dispatch
Ready, Ready Running Exit
suspend
Suspend Time out

Event Event
Event
Occurs Wait
Occurs

Activate
Blocked, Blocked
suspend
Suspend Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon 15
Meisels
Process Management Operations
 Process creation and termination
 Process scheduling and dispatching
 Process switching
 Process synchronization and support for inter-
process communication

The OS maintains process data in the


Process Control Blocks (PCB)

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 16
Process Table
 Process image consists of program (code/text), data,
stack, and attributes
 Control Attributes form the Process Control Block -
PCB
o Unique ID (may be an index into the PT)
o User ID; User group ID, Parent process ID
o process control information
o Processor state information

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 17
Process Control Information
 Additional information needed by the operating
system to control and coordinate the various active
processes
o Execution state: see next slide…
o Scheduling-related information - state; priority;
scheduling info
o inter-process communication - signals; pipes
o Time of next alarm
o memory management - pointers to text/data/stack
segments
o resource ownership and utilization - open files
o Process relationships: Parent, process group…
o Environment variables

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 18
Processor State Information
 Contents of processor registers
o General registers
o Program counter
o Program Status Word (PSW)
• condition codes
• mode (user/kernel)
• status register - interrupts disabled/enabled
o Stack pointers - user and kernel stacks

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 19
Process-State-Management
Process
Control
Block

Running
Ready
Blocked

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 20
Processes: outline

 Basic concepts
 Process states and structures
 Process management
 signals
 Threads
 Specific implementations

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 21
Process Creation
 Assign a unique process identifier
 Allocate space for the process
 Initialize process control block
 Set up appropriate linkage to the scheduling
queue:
o In the former example: add the PCB to the ready queue

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 22
Stop a running process

 Clock event: process has executed a full


time-slice (a.k.a. time-quantum)
 Process becomes blocked
 Another process is ready
 Error occurred
 Signal received

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 23
Process Context Switch
 Save processor context, including program counter
and other registers
 Update the process control block with the new state
and any accounting information
 Move process control block to appropriate queue -
ready, blocked
 Select another process for execution
 Update the process control block of the process
selected
 Update memory-management data structures
 Restore context of selected process

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 24
Switching Processes

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon 25


Meisels
Managing Processes (Unix)

 pid = fork() - create a child process


 wait(status) / waitpid(pid, status, opts) - wait for
termination of a child. Either blocks, gets child
return-code, or exit code (if no children)
 execvp(name, args) – replace image by name, with
arguments args
 exit(status)

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 26
The Unix Process
 fork system call:
o memory address space is “copied”
o parent receives pid of child (value of fork())
o child gets 0 (value of fork())

pid = fork(); /* upon success of fork() pid > 0 in parent */


if (pid < 0) { /* fork failed - memory full ... table full */
} else if (pid > 0) { /* Parent code goes here ... */
} else { /* Child code goes here ... */
}

* to find own pid - getpid()

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon 27


Meisels
Process Creation in Unix – fork()
 Check to see if process table is full
 Try to allocate memory to child’s data and stack
 Copy the parent’s code, data and stack to the child’s
memory (“copy on write” trick…)
 Find a free process slot and copy parent’s slot to it
 Enter child’s memory map in process table
 Inform kernel and file system about the child
 Return the appropriate PIDs to parent and child

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 28
Executing a New Program (Unix)

 Children are duplications of their parents


 In order to perform another program, the
program code is loaded to the process' image:
o the fork() system call creates a new process
o execvp system call (used after fork() ) replaces the
process core image with that of another
executable program

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 29
Executing the ls command

User
code

Kernel
code

Steps in executing the command ls, typed to the shell


Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 30
Processes: outline

 Basic concepts
 Process states and structures
 Process management
 Signals
 Threads
 Specific implementations

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 31
31
Unix signals
 A signal is a software interrupt

 Signals are generated:


o From the keyboard: Ctrl-C, Ctrl-Z, …
o From the command line: kill -<sig> <PID>
o Using a system call: kill(PID, sig)

 A process can send a signal to all processes within its


process group

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 32
Handling signals
 Upon receiving a signal the process can:
o Ignore it (not always…)
o Let the system take default action
o Catch it by a process' signal handler

 This is accomplished by calling:


signal(signum, [function | SIG_IGN | SIG_DFL ]);

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 33
More on Unix signals
 kernel sets signal bits in the PCB upon receiving
signals (software interrupt)
 Some Examples (predefined signal numbers):
o sigabrt - abort process (core dump)
o sigalrm - alarm clock (alarm, sleep, pause)
o sigsegv - segmentation violation (invalid address)
o sigkill – kill the process
o sigill - illegal instruction
 Upon child process termination, the signal
SIGCHILD is sent to parent. If parent executes
wait(), it gets the exit code too
Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 34
Signals: a simple example
int main(void) {
if (signal(SIGUSR1, sig_usr) == SIG_ERR)
err_sys(“can’t catch SIGUSR1”);
if (signal(SIGUSR2, sig_usr) == SIG_ERR)
err_sys(“can’t catch SIGUSR2”)
for ( ; ; )
pause(); }

Static void sig_usr(int signo) {


if (signo == SIGUSR1)
printf(“received SIGUSR1\n”);
else if (signo == SIGUSR2)
printf(“received SIGUSR2\n”);
else
err_dump(“received signal %d\n”, signo); }
Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 35
Unix signals: terminology & semantics
 A signal is generated for a process when the event that
causes it occurs. This usually causes the setting of a bit in
the PCB
 A signal is delivered to a process when the action for the
signal is taken
 During the time when a signal is generated and until it is
delivered, the signal is pending
 A process has the option of blocking the signal (signals
mask)
 If a signal is generated multiple times while it is blocked, it
is typically delivered only once

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 36
System Calls for Process Management

s is an error code
pid is a process ID
residual is the remaining time from the previous alarm
Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 37
Terminated processes
 If a child process terminates and the parent doesn’t
execute `wait’, the child becomes a zombie – it still
holds a PTE
 An ancestor can receive the process exit code stored
in the PTE
 Zombie entries can be erased by the kernel when an
ancestor executes a wait() system call

What happens if the parent


?terminates before the child

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 38
Processes: outline

 Basic concepts
 Process states and structures
 Process management
 Signals
 Threads
 Specific implementations

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 39 39
Threads
Need:
 Multiprogramming within a single application
 Using the same environment for performing
different tasks concurrently

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 40
Single and multithreaded processes
process
control
code data files process code data files
block
control
registers user/kernel stacks block registers registers registers
Thread
user user user
control
/kernel /kernel /kernel
blocks
stacks stacks stacks

thread
thread thread thread
single threaded multithreaded

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 41
The Thread Model

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 42
Processes Threads
 The basic unit of CPU scheduling - threads:
o program counter; register set; stack space
 Peer threads share resources like code section and data
section
 a process is created with a single thread
 multi-threaded tasks (processes) can have one thread running
while another is blocked
 Good for applications that require sharing a common buffer by
server threads
 A word processor can use three threads
 Updating the display (WYSIWYG)
 Interacting with the user (keyboard & mouse)
 Dealing with i/o to the disk
Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 43
Processes Threads
Multithreading in different operating systems:
 Operating systems support multiple threads of
execution within a single process
 Older UNIX systems supported multiple user processes
but only one thread per process; new Unix systems
have multiple threads.
 Windows NT supports multiple threads

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 44
The Benefits of Threads
 Takes less time to create a new thread than a
process
 Less time to terminate a thread than a process
 Less time to switch between two threads within the
same process
 Threads within the same process share memory and
files --> they can communicate without invoking the
kernel

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 45
Creation time: process vs. thread

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 46
More on Threads
 Per-thread dynamic storage for local variables
 Access to process' memory and resources
o all threads of a process share these
 Suspending a process suspends all process threads
since all threads share the same PTE
 Termination of a process, terminates all threads within
the process

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 47
Issues of threads
 Fork – should all threads be inherited?
 If so, and a parent thread was blocked on keyboard
read, would the corresponding child thread be in the
same state?
 What if one thread closes a file while the other is still
reading it?
 Which threads should receive signals?

!Careful design is required


Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 48
Ben-Gurion University
Kernel vs Application (User) threads
threads processes threads processes

User User
space space

Kernel kernel Kernel kernel


space space

Runtime
system Process table Process Threads
table table

Threads table
Operating Systems, 2013, Meni Adler, Michael Elhadad & 49
Amnon Meisels
User-Level Threads
 All thread management is done by the application
 The kernel is not aware of the existence of threads
 Thread switching does not require kernel mode
privileges (and is thus faster)
 Scheduling is application specific (can thus be more
efficient)
 System calls by threads block the process

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 50
User-level Threads - Problems
 Blocking read – all other threads are blocked!
o In Unix, use “select” - if data not in buffer, switch to another
thread
 Page fault – all other threads are blocked!
 Time limit– cannot handle clock interrupts PER
THREAD! Need other method e.g, thread_yield
 Stack growth fault – kernel is not aware of which
thread’s stack caused the fault!

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 51
Kernel-level Threads
 Kernel maintains context information for the process
and the threads
 Kernel can schedule different threads of the same
process to different processors
 Switching between threads requires the kernel
 Kernel threads can simplify context switch of system
functions

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 52
Multi-cores:
Chip Multi-Threading (CMT)
 Multiple cores on the same silicon die
 On-core L1 cache
 External L2 cache (may be either split or joined)

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 53
Execution on single-core vs. multi-core
 Pipelining permits instruction-level parallelism (ILP)
 Multi-core permits both ILP and Thread-Level-Parallelism
(TLP) on same CPU

Execution on single-core Execution on dual-core


Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 54
Simultaneous multi-threading:
Hardware threads
 Core stores more registers and logic for much faster
thread context-switch

 A hardware thread appears as a logical processor to


the operating system
• Scheduler more efficient if OS aware of HW threads

 E.g., Sun's UltraSPARC T2 chip contains 8 cores, each


comprising 8 HW cores for a total of 64 concurrent
threads

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 55
Processes: outline

 Basic concepts
 Process states and structures
 Process management
 Signals
 Threads
 Specific implementations

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 56 56
Solaris 2-8: A Combined Approach for Threads
 Thread creation, scheduling and synchronization can be done
in user space
 Multiple user-level threads are mapped onto some (smaller or
equal) number of kernel-level threads
 In Unix Solaris, a kernel thread into which user threads can be
mapped is called LWP (light-weight process) and an API is
provided to map a user thread to a LWP
 Some kernel threads have no associated LWP
 A user thread may be bound to a LWP for quick response

Many-to-many model
Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 57
Threads in Solaris

58
Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon
Threads & LWP Structure
Threads

Threads library

LWPs

Kernel - OS
Scheduler

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 59
Threads in Unix-Solaris
thr_create create thread
thr_join causes the calling thread to wait until target thread is finished
thr_exit destroy calling thread
thr_suspend suspend target thread
thr_continue make suspended thread active
thr_setconcurrency set desired number threads active at the same time to a new parameter
thr_getconcurrency get current concurrency level
thr_setprio set thread relative priority
thr_getprio get relative priority of the thread
thr_yield causes the current thread to yield its execution in favor of another
thread with the same or greater priority
thr_kill kill a thread
thr_keycreate allocate a key that locates data specific to each thread in the process
thr_min_stack amount of space needed to execute a null thread
thr_setspecific binds thread-specific value to the key
thr get-specific gets thread-specific value of the key

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 60
Threads in POSIX
The principal POSIX thread calls.

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 61
Threads – Sharing options (Linux)
;Pid = clone(function, stack_ptr, sharing_flags, arg)

Bits in the sharing_flags bitmap

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 62
Windows – Processes and Threads

Basic concepts used for CPU and resource management

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 63
Windows: jobs, processes, threads

Relationship between jobs, processes,


threads (fibers not shown in figure)
Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 64
Job, Process, Thread & Fiber - Mgmt. API Calls

Some Win32 calls for managing processes, threads and fibers


Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 65
Inter-Process Communication
 Shared memory – the fastest way
o Need to avoid race conditions
 Non-shared Memory:
o File/Pipes
o Unbuffered messages - Rendezvous
o Buffered messages – Mailboxes and Sockets
o Sockets: Address – Domain+Port
o Sockets: Types – Stream or Datagrams
o Sockets: API: Socket, Bind, Connect, Read/Write

Operating Systems, 2013, Meni Adler, Michael Elhadad & Amnon Meisels 66

You might also like