12
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts 9 th Edition, Chapter 3: Processes

Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Chapter 3: Processes

Page 2: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Chapter 3: Processes

Process Concept

Process Scheduling

Operations on Processes

Interprocess Communication

Examples of IPC Systems

Communication in Client-Server Systems

Page 3: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Process 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 (among other things):

program counter

stack

data section (globals)

text (program)

heap

Process in Memory

Page 4: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Process State

As a process executes, it changes state

1. How many processes can be in each state?

Page 5: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Process Control Block (PCB)

Information associated with each process

Process state

Program counter

CPU registers

CPU scheduling information

Memory-management information

Accounting information

I/O status information

1. Who owns this data structure?

Page 6: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Process Scheduling

Processes fall into one of two types

I/O Bound (e.g.

CPU Bound (e.g.

New processes go into the ready queue

After a process is allocated the CPU

it executes for a while and eventually quits

is interrupted

waits for the completion of an I/O request

Page 7: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Schedulers Long-term scheduler (or job scheduler)

selects which processes should be brought into the ready

queue

i.e loads the process into memory for execution

must select a good mix of I/O bound and CPU bound

processes

Short-term scheduler (or CPU scheduler) – selects which

process should be executed next and allocates CPU

Page 8: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Ready Queue And Various I/O Device Queues

Page 9: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Context Switch 1. What is the context of a process?

2. What is a context switch?

3. Does useful work happen for the user during a context switch? Explain.

Page 10: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Process Creation During program execution, a process may create several new processes

Process tree

Process Id

Parent Process

Child Process

1. Explain the login process

2. How are there 2 processes

created by bash

Page 11: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Process Creation

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 12: Chapter 3: Processes - Pacific Universityzeus.cs.pacificu.edu/ryand/cs460/2014/Lectures/ch03a9thModified.pdfOperating System Concepts –9th Edition 3.3 Silberschatz, Galvin and Gagne

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

Process Creation /* This code works on Zeus! What happens????? */

int main()

{ pid_t pid; int value = 0; value = 9;

/* fork another process */ pid = fork(); fprintf(stderr,”The value: %d”, value); 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 */ wait (NULL); /* parent will wait for the child to complete */

printf ("Child Complete"); exit (0); } } /* page 118 of Silberschatz */