SlideShare a Scribd company logo
1 of 22
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 1
Processes in
Unix, Linux, and Windows
CS-3013, Operating Systems
A-term 2009
(Slides include materials from Modern Operating Systems, 3rd ed., by Andrew Tanenbaum and from
Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne)
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 2
Processes in Unix, Linux, and Windows
• In previous topic, we used “process” in a
generic way to represent the abstraction of
concurrency
• Unix pre-empted generic term “process” to
mean something very specific
• Linux and Windows adopted Unix definition
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 3
Process in Unix-Linux-Windows
comprises
• an address space – usually protected and virtual – mapped
into memory
• the code for the running program
• the data for the running program
• an execution stack and stack pointer (SP); also heap
• the program counter (PC)
• a set of processor registers – general purpose and status
• a set of system resources
– files, network connections, pipes, …
– privileges, (human) user association, …
• …
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 4
Reading Assignment
• Tanenbaum, §2.1
– Also §10.3.1, 10.3.2
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 5
Process Address Space (traditional Unix)
0x00000000
0xFFFFFFFF
(Virtual)
address space
program code
(text)
static data
heap
(dynamically allocated)
stack
(dynamically allocated)
PC
SP
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 6
Processes in the OS – Representation
• To users (and other processes) a process is
identified by its Process ID (PID)
• In the OS, processes are represented by entries in a
Process Table (PT)
– PID is index to (or pointer to) a PT entry
– PT entry = Process Control Block (PCB)
• PCB is a large data structure that contains or
points to all info about the process
– Linux – defined in task_struct (over 70 fields)
• see include/linux/sched.h
– Windows XP – defined in EPROCESS – about 60 fields
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 7
Processes in the OS – PCB
• Typical PCB contains:
– execution state
– PC, SP & processor registers – stored when
process is not in running state
– memory management info
– privileges and owner info
– scheduling priority
– resource info
– accounting info
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 8
Process – starting and ending
• Processes are created …
– When the system boots
– By the actions of another process (more later)
– By the actions of a user
– By the actions of a batch manager
• Processes terminate …
– Normally – exit
– Voluntarily on an error
– Involuntarily on an error
– Terminated (killed) by action of
• a user or
• another process
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 9
Processes – States
• Process has an execution state
– ready: waiting to be assigned to CPU
– running: executing on the CPU
– waiting: waiting for an event, e.g. I/O
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 10
Processes – State Queues
• The OS maintains a collection of process state
queues
– typically one queue for each state – e.g., ready, waiting,
…
– each PCB is put onto a queue according to its current
state
– as a process changes state, its PCB is unlinked from one
queue, and linked to another
• Process state and the queues change in response to
events – interrupts, traps
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 11
Processes – Privileges
• Users are given privileges by the system
administrator
• Privileges determine what rights a user has
for an object.
– Unix/Linux – Read|Write|eXecute by user,
group and “other” (i.e., “world”)
– WinNT – Access Control List
• Processes “inherit” privileges from user
– or from creating process
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 12
Process Creation – Unix & Linux
• Create a new (child) process – fork();
– Allocates new PCB
– Clones the calling process (almost exactly)
• Copy of parent process address space
• Copies resources in kernel (e.g. files)
– Places new PCB on Ready queue
– Return from fork() call
• 0 for child
• child PID for parent
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 13
Example of fork( )
int main(int argc, char **argv)
{
char *name = argv[0];
int child_pid = fork();
if (child_pid == 0) {
printf("Child of %s sees PID of %dn",
name, child_pid);
return 0;
} else {
printf("I am the parent %s. My child is %dn",
name, child_pid);
return 0;
}
}
_______________________________
% ./forktest
Child of forktest sees PID of 0
I am the parent forktest. My child is 486
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 14
Starting New Programs
• Unix & Linux:–
– int exec (char *prog, char **argv)
– Check privileges and file type
– Loads program at path prog into address space
• Replacing previous contents!
• Execution starts at main()
– Initializes context – e.g. passes arguments
•*argv
– Place PCB on ready queue
– Preserves, pipes, open files, privileges, etc.
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 15
Executing a New Program
(Linux-Unix)
• fork() followed by exec()
• Creates a new process as clone of previous
one
• I.e., same program, but different execution of it
• First thing that clone does is to replace itself
with new program
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 16
Fork + Exec – shell-like
int main(int argc, char **argv)
{ char *argvNew[5];
int pid;
if ((pid = fork()) < 0) {
printf( "Fork errorn“);
exit(1);
} else if (pid == 0) { /* child process */
argvNew[0] = "/bin/ls"; /* i.e., the new program */
argvNew[1] = "-l";
argvNew[2] = NULL;
if (execve(argvNew[0], argvNew, environ) < 0) {
printf( "Execve errorn“);
exit(1); /* program should not reach this point */
}
} else { /* parent */
wait(pid); /* wait for the child to finish */
}
}
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 17
Waiting for a Process
• Multiple variations of wait function
• Including non-blocking wait functions
• Waits until child process terminates
• Acquires termination code from child
• Child process is destroyed by kernel
• Zombie:– a process that had never been waited for
• Hence, cannot go away!
• See Love, Linux Kernel Development, pp 37-38
• See Tanenbaum, §10.3.2
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 18
Processes – Windows
• Windows NT/XP – combines fork & exec
– CreateProcess(10 arguments)
– Not a parent child relationship
– Note – privileges required to create a new
process
– See Tanenbaum, §11.4
– (More in this section than we have discussed so far)
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 19
Traditional Unix
• Processes are in separate address spaces
• By default, no shared memory
• Processes are unit of scheduling
• A process is ready, waiting, or running
• Processes are unit of resource allocation
• Files, I/O, memory, privileges, …
• Processes are used for (almost) everything!
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 20
Windows and Linux
• Threads (next topic) are units of scheduling
• Threads are used for everything
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 25
Reading Assignment
• Tanenbaum, §2.1 & §10.3.1–10.3.2
Processes in Unix,
Linux, and Windows
CS-3013 A-term 2009 26
Questions?
Project 1 Assignment

More Related Content

Similar to Processes in Linux.ppt (20)

Unix kernal
Unix kernalUnix kernal
Unix kernal
 
11_UNIX_Processes_Including_Select.ppt
11_UNIX_Processes_Including_Select.ppt11_UNIX_Processes_Including_Select.ppt
11_UNIX_Processes_Including_Select.ppt
 
Process management
Process managementProcess management
Process management
 
UNIX Basics and Cluster Computing
UNIX Basics and Cluster ComputingUNIX Basics and Cluster Computing
UNIX Basics and Cluster Computing
 
Systemcall1
Systemcall1Systemcall1
Systemcall1
 
Linux Internals - Part II
Linux Internals - Part IILinux Internals - Part II
Linux Internals - Part II
 
LSA2 - 02 Namespaces
LSA2 - 02  NamespacesLSA2 - 02  Namespaces
LSA2 - 02 Namespaces
 
Input and Output Devices and Systems
Input and Output Devices and SystemsInput and Output Devices and Systems
Input and Output Devices and Systems
 
operating system
operating systemoperating system
operating system
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Lecture 5 process concept
Lecture 5   process conceptLecture 5   process concept
Lecture 5 process concept
 
Ali.ppt
Ali.pptAli.ppt
Ali.ppt
 
Chapter-01.ppt
Chapter-01.pptChapter-01.ppt
Chapter-01.ppt
 
3 process management
3 process management3 process management
3 process management
 
OPERATING SYSTEM
OPERATING SYSTEMOPERATING SYSTEM
OPERATING SYSTEM
 
Ch3 processes
Ch3   processesCh3   processes
Ch3 processes
 
CS6401 OPERATING SYSTEMS Unit 2
CS6401 OPERATING SYSTEMS Unit 2CS6401 OPERATING SYSTEMS Unit 2
CS6401 OPERATING SYSTEMS Unit 2
 
Linux or unix interview questions
Linux or unix interview questionsLinux or unix interview questions
Linux or unix interview questions
 
SDE TP 4 - Processus
SDE TP 4 - ProcessusSDE TP 4 - Processus
SDE TP 4 - Processus
 
02unixintro
02unixintro02unixintro
02unixintro
 

More from jguuhxxxfp

Operating Systems.pptx
Operating Systems.pptxOperating Systems.pptx
Operating Systems.pptxjguuhxxxfp
 
Input Output Overview.ppt
Input Output Overview.pptInput Output Overview.ppt
Input Output Overview.pptjguuhxxxfp
 
Project Report.pptx
Project Report.pptxProject Report.pptx
Project Report.pptxjguuhxxxfp
 
College Placement Project.pptx
College Placement Project.pptxCollege Placement Project.pptx
College Placement Project.pptxjguuhxxxfp
 
Computer System.ppt
Computer System.pptComputer System.ppt
Computer System.pptjguuhxxxfp
 
Disks and Stable Storage.ppt
Disks and Stable Storage.pptDisks and Stable Storage.ppt
Disks and Stable Storage.pptjguuhxxxfp
 
emp-internet07.ppt
emp-internet07.pptemp-internet07.ppt
emp-internet07.pptjguuhxxxfp
 

More from jguuhxxxfp (7)

Operating Systems.pptx
Operating Systems.pptxOperating Systems.pptx
Operating Systems.pptx
 
Input Output Overview.ppt
Input Output Overview.pptInput Output Overview.ppt
Input Output Overview.ppt
 
Project Report.pptx
Project Report.pptxProject Report.pptx
Project Report.pptx
 
College Placement Project.pptx
College Placement Project.pptxCollege Placement Project.pptx
College Placement Project.pptx
 
Computer System.ppt
Computer System.pptComputer System.ppt
Computer System.ppt
 
Disks and Stable Storage.ppt
Disks and Stable Storage.pptDisks and Stable Storage.ppt
Disks and Stable Storage.ppt
 
emp-internet07.ppt
emp-internet07.pptemp-internet07.ppt
emp-internet07.ppt
 

Recently uploaded

Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VDineshKumar4165
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxJuliansyahHarahap1
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationBhangaleSonal
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptxJIT KUMAR GUPTA
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Servicemeghakumariji156
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Arindam Chakraborty, Ph.D., P.E. (CA, TX)
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startQuintin Balsdon
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxmaisarahman1
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086anil_gaur
 
Bridge Jacking Design Sample Calculation.pptx
Bridge Jacking Design Sample Calculation.pptxBridge Jacking Design Sample Calculation.pptx
Bridge Jacking Design Sample Calculation.pptxnuruddin69
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdfKamal Acharya
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...Health
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayEpec Engineered Technologies
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadhamedmustafa094
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapRishantSharmaFr
 

Recently uploaded (20)

Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086
 
Bridge Jacking Design Sample Calculation.pptx
Bridge Jacking Design Sample Calculation.pptxBridge Jacking Design Sample Calculation.pptx
Bridge Jacking Design Sample Calculation.pptx
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 

Processes in Linux.ppt

  • 1. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 1 Processes in Unix, Linux, and Windows CS-3013, Operating Systems A-term 2009 (Slides include materials from Modern Operating Systems, 3rd ed., by Andrew Tanenbaum and from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne)
  • 2. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 2 Processes in Unix, Linux, and Windows • In previous topic, we used “process” in a generic way to represent the abstraction of concurrency • Unix pre-empted generic term “process” to mean something very specific • Linux and Windows adopted Unix definition
  • 3. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 3 Process in Unix-Linux-Windows comprises • an address space – usually protected and virtual – mapped into memory • the code for the running program • the data for the running program • an execution stack and stack pointer (SP); also heap • the program counter (PC) • a set of processor registers – general purpose and status • a set of system resources – files, network connections, pipes, … – privileges, (human) user association, … • …
  • 4. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 4 Reading Assignment • Tanenbaum, §2.1 – Also §10.3.1, 10.3.2
  • 5. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 5 Process Address Space (traditional Unix) 0x00000000 0xFFFFFFFF (Virtual) address space program code (text) static data heap (dynamically allocated) stack (dynamically allocated) PC SP
  • 6. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 6 Processes in the OS – Representation • To users (and other processes) a process is identified by its Process ID (PID) • In the OS, processes are represented by entries in a Process Table (PT) – PID is index to (or pointer to) a PT entry – PT entry = Process Control Block (PCB) • PCB is a large data structure that contains or points to all info about the process – Linux – defined in task_struct (over 70 fields) • see include/linux/sched.h – Windows XP – defined in EPROCESS – about 60 fields
  • 7. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 7 Processes in the OS – PCB • Typical PCB contains: – execution state – PC, SP & processor registers – stored when process is not in running state – memory management info – privileges and owner info – scheduling priority – resource info – accounting info
  • 8. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 8 Process – starting and ending • Processes are created … – When the system boots – By the actions of another process (more later) – By the actions of a user – By the actions of a batch manager • Processes terminate … – Normally – exit – Voluntarily on an error – Involuntarily on an error – Terminated (killed) by action of • a user or • another process
  • 9. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 9 Processes – States • Process has an execution state – ready: waiting to be assigned to CPU – running: executing on the CPU – waiting: waiting for an event, e.g. I/O
  • 10. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 10 Processes – State Queues • The OS maintains a collection of process state queues – typically one queue for each state – e.g., ready, waiting, … – each PCB is put onto a queue according to its current state – as a process changes state, its PCB is unlinked from one queue, and linked to another • Process state and the queues change in response to events – interrupts, traps
  • 11. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 11 Processes – Privileges • Users are given privileges by the system administrator • Privileges determine what rights a user has for an object. – Unix/Linux – Read|Write|eXecute by user, group and “other” (i.e., “world”) – WinNT – Access Control List • Processes “inherit” privileges from user – or from creating process
  • 12. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 12 Process Creation – Unix & Linux • Create a new (child) process – fork(); – Allocates new PCB – Clones the calling process (almost exactly) • Copy of parent process address space • Copies resources in kernel (e.g. files) – Places new PCB on Ready queue – Return from fork() call • 0 for child • child PID for parent
  • 13. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 13 Example of fork( ) int main(int argc, char **argv) { char *name = argv[0]; int child_pid = fork(); if (child_pid == 0) { printf("Child of %s sees PID of %dn", name, child_pid); return 0; } else { printf("I am the parent %s. My child is %dn", name, child_pid); return 0; } } _______________________________ % ./forktest Child of forktest sees PID of 0 I am the parent forktest. My child is 486
  • 14. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 14 Starting New Programs • Unix & Linux:– – int exec (char *prog, char **argv) – Check privileges and file type – Loads program at path prog into address space • Replacing previous contents! • Execution starts at main() – Initializes context – e.g. passes arguments •*argv – Place PCB on ready queue – Preserves, pipes, open files, privileges, etc.
  • 15. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 15 Executing a New Program (Linux-Unix) • fork() followed by exec() • Creates a new process as clone of previous one • I.e., same program, but different execution of it • First thing that clone does is to replace itself with new program
  • 16. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 16 Fork + Exec – shell-like int main(int argc, char **argv) { char *argvNew[5]; int pid; if ((pid = fork()) < 0) { printf( "Fork errorn“); exit(1); } else if (pid == 0) { /* child process */ argvNew[0] = "/bin/ls"; /* i.e., the new program */ argvNew[1] = "-l"; argvNew[2] = NULL; if (execve(argvNew[0], argvNew, environ) < 0) { printf( "Execve errorn“); exit(1); /* program should not reach this point */ } } else { /* parent */ wait(pid); /* wait for the child to finish */ } }
  • 17. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 17 Waiting for a Process • Multiple variations of wait function • Including non-blocking wait functions • Waits until child process terminates • Acquires termination code from child • Child process is destroyed by kernel • Zombie:– a process that had never been waited for • Hence, cannot go away! • See Love, Linux Kernel Development, pp 37-38 • See Tanenbaum, §10.3.2
  • 18. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 18 Processes – Windows • Windows NT/XP – combines fork & exec – CreateProcess(10 arguments) – Not a parent child relationship – Note – privileges required to create a new process – See Tanenbaum, §11.4 – (More in this section than we have discussed so far)
  • 19. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 19 Traditional Unix • Processes are in separate address spaces • By default, no shared memory • Processes are unit of scheduling • A process is ready, waiting, or running • Processes are unit of resource allocation • Files, I/O, memory, privileges, … • Processes are used for (almost) everything!
  • 20. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 20 Windows and Linux • Threads (next topic) are units of scheduling • Threads are used for everything
  • 21. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 25 Reading Assignment • Tanenbaum, §2.1 & §10.3.1–10.3.2
  • 22. Processes in Unix, Linux, and Windows CS-3013 A-term 2009 26 Questions? Project 1 Assignment