Processes in Unix, Linux, and Windows

Slides:



Advertisements
Similar presentations
3.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process An operating system executes a variety of programs: Batch system.
Advertisements

CSE 451: Operating Systems Winter 2007 Module 4 Processes Ed Lazowska Allen Center 570.
IT344 – Operating Systems Winter 2011, Dale Rowe.
CSC 501 Lecture 2: Processes. Von Neumann Model Both program and data reside in memory Execution stages in CPU: Fetch instruction Decode instruction Execute.
CSE 451: Operating Systems Winter 2006 Module 4 Processes Ed Lazowska Allen Center 570.
Processes CSCI 444/544 Operating Systems Fall 2008.
Advanced OS Chapter 3p2 Sections 3.4 / 3.5. Interrupts These enable software to respond to signals from hardware. The set of instructions to be executed.
Process in Unix, Linux and Windows CS-3013 C-term Processes in Unix, Linux, and Windows CS-3013 Operating Systems (Slides include materials from.
CS-502 Fall 2006Processes in Unix, Linux, & Windows 1 Processes in Unix, Linux, and Windows CS502 Operating Systems.
Unix & Windows Processes 1 CS502 Spring 2006 Unix/Windows Processes.
Processes April 5, 2000 Instructor: Gary Kimura Slides courtesy of Hank Levy.
1 Process Description and Control Chapter 3 = Why process? = What is a process? = How to represent processes? = How to control processes?
Process Description and Control A process is sometimes called a task, it is a program in execution.
Processes in Unix, Linux, and Windows CS-502 Fall Processes in Unix, Linux, and Windows CS502 Operating Systems (Slides include materials from Operating.
Process. Process Concept Process – a program in execution Textbook uses the terms job and process almost interchangeably A process includes: – program.
BINA RAMAMURTHY UNIVERSITY AT BUFFALO System Structure and Process Model 5/30/2013 Amrita-UB-MSES
The Programming Interface. Main Points Creating and managing processes – fork, exec, wait Performing I/O – open, read, write, close Communicating between.
Lecture Topics: 11/3 Address spaces Memory protection Creating a process –NT style –Unix style.
Process in Unix, Linux, and Windows CS-3013 A-term Processes in Unix, Linux, and Windows CS-3013 Operating Systems (Slides include materials from.
Introduction to Processes CS Intoduction to Operating Systems.
Implementing Processes and Process Management Brian Bershad.
Multiprogramming CSE451 Andrew Whitaker. Overview Multiprogramming: Running multiple programs “at the same time”  Requires multiplexing (sharing) the.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-1 Process Concepts Department of Computer Science and Software.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
ITEC 502 컴퓨터 시스템 및 실습 Chapter 2-1: Process Mi-Jung Choi DPNM Lab. Dept. of CSE, POSTECH.
Computer Studies (AL) Operating System Process Management - Process.
Processes – Part I Processes – Part I. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Review on OSs Upon brief introduction of OSs,
CS 153 Design of Operating Systems Spring 2015 Lecture 5: Processes and Threads.
Operating Systems Process Creation
1 A Seven-State Process Model. 2 CPU Switch From Process to Process Silberschatz, Galvin, and Gagne  1999.
CS241 Systems Programming Discussion Section Week 2 Original slides by: Stephen Kloder.
A process is a program in execution A running system consists of multiple processes – OS processes Processes started by the OS to do “system things” –
Process Management Process Concept Why only the global variables?
Chapter 3: Process Concept
Lecture Topics: 11/1 Processes Process Management
Process Management Presented By Aditya Gupta Assistant Professor
CSE 451: Operating Systems Autumn 2013 Module 4 Processes
Chapter 3: Processes.
Process Realization In OS
Processes in Unix, Linux, and Windows
IT 344: Operating Systems Module 4 Processes
System Structure and Process Model
System Structure and Process Model
Processes in Unix, Linux, and Windows
Lecture 5: Process Creation
Lecture 2: Processes Part 1
System Structure B. Ramamurthy.
System Structure and Process Model
Chapter 3: Processes.
Lecture Topics: 11/1 General Operating System Concepts Processes
Process Description and Control
Processes Hank Levy 1.
Tutorial: The Programming Interface
Processes and Process Management
Lecture 6: Multiprogramming and Context Switching
Chapter 3: Processes.
October 7, 2002 Gary Kimura Lecture #4 October 7, 2002
CSE 451: Operating Systems Winter 2003 Lecture 4 Processes
Processes in Unix, Linux, and Windows
CSE 451: Operating Systems Autumn 2009 Module 4 Processes
IT 344: Operating Systems Winter 2008 Module 4 Processes
CSE 451: Operating Systems Winter 2007 Module 4 Processes
Processes in Unix and Windows
Chapter 2 Processes and Threads 2.1 Processes 2.2 Threads
CS510 Operating System Foundations
CSE 451: Operating Systems Autumn 2004 Module 4 Processes
EECE.4810/EECE.5730 Operating Systems
Processes Hank Levy 1.
CSE 451: Operating Systems Autumn 2010 Module 4 Processes
Presentation transcript:

Processes in Unix, Linux, and Windows CS-3013 Operating Systems Hugh C. Lauer (Slides include materials from Slides include materials from Modern Operating Systems, 3rd ed., by Andrew Tanenbaum and from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne) CS-3013, C-Term 2012 Windows, Linux, and Unix Processes

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, Windows, and other OSes adopted Unix definition CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 2

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, … … CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 3

Windows, Linux, and Unix Processes Reading Assignment Tanenbaum, §2.1 Also §10.3.1, 10.3.2 CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 4

Process Address Space (traditional Unix) 0xFFFFFFFF (Virtual) address space Program code (text) Global and static data Heap (dynamically allocated) Stack PC SP CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 5

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 CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 6

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 CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 7

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 CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 8

Windows, Linux, and Unix Processes 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 CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 9

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 CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 10

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”) Windows NT/XP/7 – Access Control List Processes “inherit” privileges from user or from creating process CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 11

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 CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 12

Windows, Linux, and Unix Processes 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 %d\n", name, child_pid); return 0; } else { printf("I am the parent %s. My child is %d\n", } _______________________________ % ./forktest Child of forktest sees PID of 0 I am the parent forktest. My child is 486 CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 13

Result – Two identical processes int main(int argc, char **argv) { char *name = argv[0]; int child_pid = fork(); if (child_pid == 0) { printf("Child of %s sees PID" " %d\n", name, child_pid); return 0; } else { printf("I am the parent %s. " "My child is %d\n", name, child_pid); } int main(int argc, char **argv) { char *name = argv[0]; int child_pid = fork(); if (child_pid == 0) { printf("Child of %s sees PID" " %d\n", name, child_pid); return 0; } else { printf("I am the parent %s. " "My child is %d\n", name, child_pid); } True False One Difference CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 14

Windows, Linux, and Unix Processes 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 as function call to main() Initializes context – e.g. passes arguments *argv Place PCB on ready queue Preserves, pipes, open files, privileges, etc. CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 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 CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 16

Fork + Exec – shell-like int main(int argc, char **argv) { char *argvNew[5]; int pid; if ((pid = fork()) < 0) { printf( "Fork error\n“); exit(1); } else if (pid == 0) { /* child process */ argvNew[0] = "/bin/ls"; /* i.e., the new program */ argvNew[1] = "-l"; argvNew[2] = NULL; if (execvp(argvNew[0], argvNew) < 0) { printf( "Execvp error\n“); exit(1); /* program should not reach this point */ } } else { /* parent */ wait(pid); /* wait for the child to finish */ CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 17

Windows, Linux, and Unix Processes 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 CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 18

Windows, Linux, and Unix Processes Processes – Windows Windows NT/XP – combines fork & exec CreateProcess(10 arguments) No parent child relationship Note – privileges are required to create a new process See Tanenbaum, §11.4 (More in this section than we have discussed so far) CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 19

Windows, Linux, and Unix Processes 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! CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 20

Windows, Linux, and Unix Processes Windows and Linux Threads (next topic) are units of scheduling Threads are used for everything CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 21

Non-Traditional Unix E.g., iPhone, Android, etc. 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! CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 22

A Note on Implementation Many OS implementations include (parts of) kernel in every address space Protected Easy to access Allows kernel to see into client processes Transferring data Examining state … CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 23

Processes – Address Space 0x00000000 0xFFFFFFFF Virtual address space code (text) static data heap (dynamically allocated) Kernel Code and Data PC SP User Space stack Kernel Space 32-bit Linux & Win XP – 3G/1G user space/kernel space CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 24

Linux Kernel Implementation Kernel may execute in either Process context vs. Interrupt context In Process context, kernel has access to Virtual memory, files, other process resources May sleep, take page faults, etc., on behalf of process In Interrupt context, no assumption about what process was executing (if any) No access to virtual memory, files, resources May not sleep, take page faults, etc. CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 25

Windows, Linux, and Unix Processes Reading Assignment Tanenbaum, §2.1 & §10.3.1–10.3.2 CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 27

Windows, Linux, and Unix Processes Questions? CS-3013, C-Term 2012 Windows, Linux, and Unix Processes 28