Presentation is loading. Please wait.

Presentation is loading. Please wait.

2.1 Processes  process = abstraction of a running program.

Similar presentations


Presentation on theme: "2.1 Processes  process = abstraction of a running program."— Presentation transcript:

1 2.1 Processes  process = abstraction of a running program

2 2.1 Processes  multiprogramming = CPU switches from running program to running program  pseudoparallelism  each process has its own virtual CPU  each process is considered to be simply sequential

3 2.1 Processes Make no assumptions about timing!  Ex. 1. Start process A. 2. Start process B. 3. Which ends first?  Ex. 1. Start running test.exe. 2. Start running a second test.exe. 3. Which ends first? Make no assumptions about timing unless...

4 Processes cont’d  critical real-time requirements = particular events must occur within a specified number of milliseconds  Ex. QNX, VxWorks, RT11 (ancient), Windows Embedded (see http://www.microsoft.com/windowsembedd ed/en-us/about/solutions/medical-devices- healthcare.mspx?WT.mc_id=HS_search) http://www.microsoft.com/windowsembedd ed/en-us/about/solutions/medical-devices- healthcare.mspx?WT.mc_id=HS_search http://www.microsoft.com/windowsembedd ed/en-us/about/solutions/medical-devices- healthcare.mspx?WT.mc_id=HS_search  http://en.wikipedia.org/wiki/Real- time_operating_system http://en.wikipedia.org/wiki/Real- time_operating_system http://en.wikipedia.org/wiki/Real- time_operating_system

5 Processes cont’d  What’s the difference between a process and a program?  process – an activity  = program + input + output + state

6 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., email, telnet, ftp, web server, etc.)

7 Process creation 4 major events causing process creation: 1.system initialization 2.running process executes a process creation system call 3.user requests creation of a new process 4.initiation of a batch job

8 Process creation cont’d  win32: use task manager to view process  Unix: ps –edalf command

9 Process creation cont’d  win32: CreateProcess()  10 parameters  creates and loads new process  Unix: fork() + execve() system calls  fork() creates new process (copy of parent)  execve() loads new program

10 Unix process creation: fork() #include int main ( const int argc, const char* const argv[] ) { puts( "forking" ); pid_t ret = fork(); puts( "forked" ); return 0; }

11 #include 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 here break; default:printf( "parent: child has pid=%d \n", ret ); break; } return 0; } fork and exec fork and exec

12 Child process #include int main ( const int argc, const char* const argv[] ) { printf( "child process %s running with %d arg(s). \n", argv[0], argc ); return 0; }

13 Process termination  Conditions:  Voluntary:  Normal exit  Error exit  Win32: ExitProcess()  Unix: exit()  Involuntary:  Fatal error (e. g., divide by zero, illegal memory access)  Killed by another process

14 Process hierarchies  None in win32  Unix maintains a parent/child relationship called a process group.

15 Process states 1. Running 2. Ready 3. Blocked

16 Implementation of processes  Process table = array of structures (process control blocks)

17 Implementation of processes struct ProcessManagement { inteax, ebx, ecx, …; intpc; inteflags; …};

18 Implementation of processes struct MemoryManagement { char*text; char*data; char*stack; };

19 Implementation of processes #define MAX_FDS 100 //max open files struct FileManagement { char*root; char*working; intfd[ MAX_FDS ]; intuserID; intgroupID; };

20 Process table = array of structures (process control blocks) struct ProcessTable { struct ProcessManagementpm; struct MemoryManagementmm; struct FileManagementfm; }; #define MAX_PROCESSES 500 struct ProcessTable pt[ MAX_PROCESSES ]; Implementation of processes

21 Context switch/interrupt service


Download ppt "2.1 Processes  process = abstraction of a running program."

Similar presentations


Ads by Google