28
Processes – Part I Processes – Part I

Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

Embed Size (px)

Citation preview

Page 1: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

Processes – Part IProcesses – Part I

Page 2: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.2 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Review on OSsReview on OSs

Upon brief introduction of OSs, how do you slice an OS?

In a top-down fashion, making assumptions and release assumptions step-by-step?

Page 3: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.3 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Chapter 3: ProcessesChapter 3: Processes

Process Concept

Process Scheduling

Operations on Processes

Cooperating Processes

Interprocess Communication (deferred at later time)

Communication in Client-Server Systems (not covered)

Page 4: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.4 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Process ConceptProcess Concept

An operating system executes a variety of programs: Batch system – jobs Time-shared systems – user programs or tasks

Textbook uses the terms job and process almost interchangeably Process – a program in execution; process execution must

progress in sequential fashion A process includes:

program counter Text section: program code Stack: local variables, function params, return addresses data section: global variables Heap (optional): dynamically allocated memory

What is not a process? -- program on a disk - a process is an active object, but a program is just a file

Page 5: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.5 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Process in MemoryProcess in Memory

Page 6: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.6 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Process StateProcess State

Processes switch between different states based on internal and external events

Each process is in exactly one state at a time As a process executes, it changes state (Typical States of

Processes (varies with OS)) new: The process is being created running: Instructions are being executed (only one process

per processor may be running) waiting: The process is waiting for some event (e.g., I/O,

signals) to occur ready: The process is waiting to be assigned to a processor terminated: The process has finished execution

Page 7: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.7 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Diagram of Process StateDiagram of Process State

Page 8: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.8 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Process Control Block (PCB)Process Control Block (PCB)

-- PCB Stores all of the information about a process

Information associated with each process

Process state

Program counter

CPU registers: accumulators, index registers, stack pointers, etc.

CPU scheduling information: priority, etc.

Memory-management information: base/limit, page tables, or segment tables

Accounting information: CPU, etc

I/O status information: a list of I/O devices allocated, a list of open files, etc.

Page 9: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.9 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Process Control Block (PCB)Process Control Block (PCB)

Page 10: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.10 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

CPU Switch From Process to ProcessCPU Switch From Process to Process

Page 11: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.11 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Maintaining PCBsMaintaining PCBs

Need to keep track of the different processes in the system

Collection of PCBs is called a process table

How to store the process table?

Option 1:

Problems with Option 1:

hard to find processes

how to fairly select a process

P1 P2 P2 P3 P4 P5

Ready Waiting Waiting ReadyNew Term

Page 12: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.12 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Process Scheduling QueuesProcess Scheduling Queues

Store processes in queues based on state

Processes migrate among the various 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 an I/O device

Page 13: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.13 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Ready Queue And Various I/O Device QueuesReady Queue And Various I/O Device Queues

Page 14: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.14 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Representation of Process SchedulingRepresentation of Process Scheduling

Page 15: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.15 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

SchedulersSchedulers

Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue; controls degree of multiprogramming (# of processes in memory)

Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU

Page 16: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.16 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Addition of Medium Term SchedulingAddition of Medium Term Scheduling

Swap in/out processes memory

Page 17: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.17 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Schedulers (Cont.)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

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

Page 18: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.18 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Short-Term SchedulerShort-Term Scheduler

The inner most part of the OS that runs processes

Responsible for:

saving state into PCB when switching to a new process

selecting a process to run (from the ready queue)

loading state of another process

Switching between processes is called context switching

One of the most time critical parts of the OS

Almost never can be written completely in a high level language

Page 19: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.19 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Selecting a Process to RunSelecting a Process to Run

called scheduling

can simply pick the first item in the queue

called round-robin scheduling

is round-robin scheduling fair?

can use more complex schemes

we will study these in the future

use alarm interrupts to switch between processes

when time is up, a process is put back on the end of the ready queue

frequency of these interrupts is an important parameter

typically 3-10ms on modern systems

need to balance overhead of switching vs. responsiveness

Page 20: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.20 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Context SwitchContext 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

Page 21: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.21 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Process CreationProcess 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 subset of parent’s resources

Parent and child share no resources

Execution

Parent and children execute concurrently

Parent waits until children terminate

Page 22: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.22 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Process Creation (Cont.)Process Creation (Cont.)

Address space

Child duplicate of parent

Child has a program loaded into it

UNIX examples

fork system call creates new process

exec system call used after a fork to replace the process’ memory space with a new program

Page 23: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.23 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Forking a New ProcessForking a New Process

create a PCB for the new process copy most entries from the parent clear accounting fields buffered pending I/O allocate a pid (process id for the new process)

allocate memory for it could require copying all of the parents segments however, text segment usually doesn’t change so that could be

shared might be able to use memory mapping hardware to help

will talk more about this in the memory management part of the class

add it to the ready queue

Page 24: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.24 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Process CreationProcess Creation

Page 25: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.25 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

C Program Forking Separate ProcessC Program Forking Separate Process

int main(){pid_t pid;

/* 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);

}}

Page 26: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.26 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

A tree of processes on a typical SolarisA tree of processes on a typical Solaris

Page 27: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.27 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Process TerminationProcess 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 deallocated 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 orphan process

Some operating system do not allow child to continue if its parent terminates

– All children terminated - cascading termination (VMS)

in UNIX becomes child of the root process

Page 28: Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,

3.28 Silberschatz, Galvin and Gagne ©2005Operating System Concepts

Process Termination - UNIX exampleProcess Termination - UNIX example

Kernel frees memory used by the process moved PCB to the terminated queue

Terminated process signals parent of its death (SIGCHILD) is called a zombie in UNIX remains around waiting to be reclaimed

parent process wait system call retrieves info about the dead process

exit status accounting information

signal handler is generally called the reaper since its job is to collect the dead processes