2.1 processes process = abstraction of a running program multiprogramming = cpu switches from…

14
2.1 Processes 2.1 Processes process = abstraction of a process = abstraction of a running program running program multiprogramming = CPU switches multiprogramming = CPU switches from running program to running from running program to running program program pseudoparallelism pseudoparallelism each process has its own virtual CPU each process has its own virtual CPU each process is considered to be each process is considered to be simply sequential simply sequential make no assumptions about timing make no assumptions about timing

Upload: theodore-gibbs

Post on 19-Jan-2018

212 views

Category:

Documents


0 download

DESCRIPTION

Process Types 1. Foreground – process that interacts with user 2. Background – not associated with a specific user; specific/dedicated function  daemon = background process to handle some activities (e. g., , telnet, ftp, web server, etc.)

TRANSCRIPT

Page 1: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

2.1 Processes2.1 Processes process = abstraction of a running process = abstraction of a running

programprogram multiprogramming = CPU switches from multiprogramming = CPU switches from

running program to running programrunning program to running program pseudoparallelismpseudoparallelism each process has its own virtual CPUeach process has its own virtual CPU

each process is considered to be simply each process is considered to be simply sequentialsequential

make no assumptions about timingmake no assumptions about timing

Page 2: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Processes cont’dProcesses cont’d

critcal real-time requirements = particular critcal real-time requirements = particular events must occur within a specified events must occur within a specified number of millisecondsnumber of milliseconds

difference between a process and a difference between a process and a programprogram Process – an activityProcess – an activity

= program, input, output, and state= program, input, output, and state

Page 3: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Process TypesProcess Types

1.1. Foreground – process that interacts with Foreground – process that interacts with useruser

2.2. Background – not associated with a Background – not associated with a specific user; specific/dedicated functionspecific user; specific/dedicated function

daemon = background process to handle daemon = background process to handle some activities (e. g., email, telnet, ftp, web some activities (e. g., email, telnet, ftp, web server, etc.)server, etc.)

Page 4: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Process creationProcess creation

4 major events causing process 4 major events causing process creation:creation:

1.1. system initializationsystem initialization2.2. running process executes a process running process executes a process

creation system callcreation system call3.3. user requests creation of a new user requests creation of a new

processprocess4.4. initiation of a batch jobinitiation of a batch job

Page 5: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Process creation cont’dProcess creation cont’d

win32: use task manager to view processwin32: use task manager to view process

Unix: ps –edalf commandUnix: ps –edalf command

Page 6: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Process creation cont’dProcess creation cont’d

win32: CreateProcess()win32: CreateProcess() 10 parameters10 parameters creates and loads new processcreates and loads new process

Unix: fork() + execve() system callsUnix: fork() + execve() system calls fork() creates new process (copy of parent)fork() creates new process (copy of parent) execve() loads new programexecve() loads new program

Page 7: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Unix process creation: fork()Unix process creation: fork()

#include <stdio.h>#include <sys/types.h>#include <unistd.h>

int main ( const int argc, const char* const argv[] ) { puts( "forking" ); pid_t ret = fork(); puts( "forked" ); return 0;}

Page 8: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

#include <stdio.h>#include <sys/types.h>#include <unistd.h>

int main ( const int argc, const char* const argv[] ) { puts( "parent: forking" ); pid_t ret = fork(); switch (ret) { case -1: puts( "parent: error: fork failed!" );

break; case 0: puts( "child: here (before execl)!" );

if (execl( "./child.exe", "./child.exe", 0 )==-1)perror( "child: execl failed:" );

puts( "child: here (after execl)!" ); //should never get herebreak;

default: printf( "parent: child has pid=%d \n", ret );break;

} return 0;}

fork and execfork and exec

Page 9: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Child processChild process

#include <stdio.h>

int main ( const int argc, const char* const argv[] ) {

printf( "child process %s running with %d arg(s). \n", argv[0], argc );

return 0;}

Page 10: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Process terminationProcess termination Conditions:Conditions:

Voluntary:Voluntary: Normal exitNormal exit Error exitError exit Win32: ExitProcess()Win32: ExitProcess() Unix: exit()Unix: exit()

Involuntary:Involuntary: Fatal error (e. g., divide by zero, illegal memory Fatal error (e. g., divide by zero, illegal memory

access)access) Killed by another processKilled by another process

Page 11: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Process hierarchiesProcess hierarchies

None in win32None in win32 Unix maintains a parent/child relationship Unix maintains a parent/child relationship

called a process group.called a process group.

Page 12: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Process statesProcess states

1.1. RunningRunning2.2. ReadyReady3.3. BlockedBlocked

Page 13: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Implementation of processesImplementation of processes

Process table = array of structures Process table = array of structures (process control blocks)(process control blocks)

Page 14: 2.1 Processes  process = abstraction of a running program  multiprogramming = CPU switches from…

Context switch/interrupt serviceContext switch/interrupt service