Professional Documents
Culture Documents
Chapter 2b
UNIX PROCESS
1
Operating Systems
Unix
• A multitasking, multi-user computer operating
system.
2
Operating Systems
http://duckopensource.blogspot.com/2012/12/apostila-de-programacao-shell-rubens.html
Unix Process
• Unix shell a
command-line
interpreter that provides
a traditional user
interface.
Chapter 2
• Examples 2.1a:
$cat file1 file2
shell creates a process to run command cat
Chapter 2
http://s0.cyberciti.org/uploads/faq/2012/02/cat-command-with-numbers.png
4
Operating Systems
• Example 2.1b:
$ls | wc -l
2 processes are created to run ls and wc
concurrently
Chapter 2
5
Operating Systems
6
Operating Systems
Application of fork()
8
Operating Systems
fork()
Before fork() After fork()
printf(“One\n”) printf(“One\n”)
pid = fork() pid = fork()
PC
printf(“Two\n”) printf(“Two\n”) PC
printf(“One\n”)
What is the output of pid = fork()
printf(“Two\n”)
Chapter 2
the program? PC
One
Two
Two
9
Operating Systems
pid1 = fork();
pid2 = fork();
print pid1, pid2;
Chapter 2
10
Operating Systems
Id= 4
pid1 = fork();
1 pid1 = 5 pid1 = 5
pid2 = fork();
print pid1, pid2;
pid2 = ? pid2 = 6
Id= 6
pid1 = fork();
pid2 = fork(); pid1 = 5
3 print pid1, pid2; pid2 = 0
Id= 5
pid1 = fork();
2 pid2 =fork(); pid1 = 0 pid1 = 0 Output:
print pid1, pid2; pid2 = ? pid2 = 7 5 6
0 7
Chapter 2
Id= 7
5 0
pid1 = fork();
4 0 0
pid2 = fork(); pid1 = 0
print pid1, pid2; pid2 = 0
11
Operating Systems
Question:
• Trace the program and determine the output and the number
of processes created when the above program is executed.?
12
Operating Systems
i= 1
id= 5 id= 6
i= 2
id= 7 id= 8 id= 9 id= 10
Chapter 2
13
Operating Systems
parent 0 child 2
child 0 parent 2
parent 1 child 2
parent 1 child 2
child 1 parent 2
parent 2 child 2
child 1
Chapter 2
parent 2
14
Operating Systems
exec()
• Application:
– To execute a new program
• exec() does not create a new process.
15
Operating Systems
ret = execl(path,arg0,arg1,…,argn,(char*)0);
arg1,…,argn – parameter
16
Operating Systems
exit()
• Application: to terminate a process.
• Format:
int status;
exit(status);
17
Operating Systems
perror(“fork failed”);
exit(1); }
18
Operating Systems
THREAD CONCEPT
Chapter 2
19
Operating Systems
Introduction
• Multiple actions executing simultaneously
a) Heavyweight process (traditional process) Processes with
multiple
• Owns the resources subprocesses
• Passive element
b) Lightweight process (Thread)
Proces with
• Uses CPU and scheduled for execution multiple threads
• Active element
c) Multithreaded applications programs
• Contain several threads running at one time
• Same or different priorities
Chapter 2
• Examples:
– Web browsers and time-sharing systems
20
Operating Systems
Thread
• Thread: a basic unit of CPU utilization;
• It composes of:
» Program counter
» Set of registers
» Stack
• A thread has its own thread ID.
• Thread shares the following items with other threads
that are created in the same process:
» code section
Chapter 2
» data section
» Other operating system resources
21
Operating Systems
http://smart-dzikra.blogspot.com/2010/10/thread-states.html
Chapter 2
22
Operating Systems
23
Operating Systems
http://smart-dzikra.blogspot.com/2010/10/thread-states.html
Chapter 2
Applications
• Use by many software packages that run on
modern desktop PCs.
25
Operating Systems
• Increase responsiveness
26
Operating Systems
27
Operating Systems
– Example: Solaris OS
• process creation is 30 times slower than thread
Chapter 2
creation and
• context switching is about 5 times slower.
28
Operating Systems
EXAMPLE:
Screenshot from
MacBook Pro
Chapter 2
29
Chapter 2 Operating Systems
30
Chapter 2 Operating Systems
31