Unix & Windows Processes 1 CS502 Spring 2006 Unix/Windows Processes.

Slides:



Advertisements
Similar presentations
Chapter 3 Process Description and Control
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.
Thursday, June 08, 2006 The number of UNIX installations has grown to 10, with more expected. The UNIX Programmer's Manual, 2nd Edition, June, 1972.
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.
Ceng Operating Systems Chapter 2.1 : Processes Process concept Process scheduling Interprocess communication Deadlocks Threads.
CS-502 Fall 2006Processes in Unix, Linux, & Windows 1 Processes in Unix, Linux, and Windows CS502 Operating Systems.
CSSE Operating Systems
CSE451 Processes Spring 2001 Gary Kimura Lecture #4 April 2, 2001.
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.
CSE 451: Operating Systems Spring 2012 Module 4 Processes Ed Lazowska Allen Center 570.
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.
WEEK 2 PROCESSES THREADS Operating Systems CS3013 / CS502.
Introduction to Processes CS Intoduction to Operating Systems.
CSC 501 Lecture 2: Processes. Process Process is a running program a program in execution an “instantiation” of a program Program is a bunch of instructions.
Implementing Processes and Process Management Brian Bershad.
Exec Function calls Used to begin a processes execution. Accomplished by overwriting process imaged of caller with that of called. Several flavors, use.
Multiprogramming CSE451 Andrew Whitaker. Overview Multiprogramming: Running multiple programs “at the same time”  Requires multiplexing (sharing) the.
Processes and Threads CS550 Operating Systems. Processes and Threads These exist only at execution time They have fast state changes -> in memory and.
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,
1 Chapter 2.1 : Processes Process concept Process concept Process scheduling Process scheduling Interprocess communication Interprocess communication Threads.
ITEC 502 컴퓨터 시스템 및 실습 Chapter 2-1: Process Mi-Jung Choi DPNM Lab. Dept. of CSE, POSTECH.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Processes.
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.
1 A Seven-State Process Model. 2 CPU Switch From Process to Process Silberschatz, Galvin, and Gagne  1999.
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” –
Processes.
Lecture Topics: 11/1 Processes Process Management
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
Processes in Unix, Linux, and Windows
Processes in Unix, Linux, and Windows
System Structure and Process Model
Process & its States Lecture 5.
Chapter 3: Processes.
CSE 451: Operating Systems Winter 2011 Processes
Lecture Topics: 11/1 General Operating System Concepts Processes
Processes Hank Levy 1.
Processes and Process Management
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
CS510 Operating System Foundations
CSE 451: Operating Systems Autumn 2004 Module 4 Processes
CSE 451: Operating Systems Spring 2006 Module 4 Processes
Process Description and Control in Unix
Processes Hank Levy 1.
CSE 451: Operating Systems Autumn 2010 Module 4 Processes
Presentation transcript:

Unix & Windows Processes 1 CS502 Spring 2006 Unix/Windows Processes

Unix & Windows Processes 2 CS502 Spring 2006 Processes – Defined The process is the OS’s abstraction for execution –the unit of execution –a unit of scheduling –the dynamic execution context Process is often called a job, task, or sequential process

Unix & Windows Processes 3 CS502 Spring 2006 Processes – Contents A process in Unix or Windows comprises (at least) : –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) –the program counter (PC) –a set of processor registers – general purpose and status –a set of system resources files, network connections, privileges, …

Unix & Windows Processes 4 CS502 Spring 2006 Processes – Address Space 0x xFFFFFFFF Virtual address space program code (text) static data heap (dynamically allocated) stack (dynamically allocated) PC SP

Unix & Windows Processes 5 CS502 Spring 2006 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 “points 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 see include/linux/sched.h – over 70 fields –NT – defined in EPROCESS – about 60 fields

Unix & Windows Processes 6 CS502 Spring 2006 Processes in the OS – PCB Typical PCB contains: –execution state –PC, SP & processor registers – stored when process is made inactive –memory management info –Privileges and owner info –scheduling priority –resource info –accounting info

Unix & Windows Processes 7 CS502 Spring 2006 Process – starting and ending Process start –When the system boots –By the actions of another process –By the actions of a user –By the actions of a batch manager Processes end –Normally – exit –Voluntarily on an error –Involuntarily on an error –Terminated (killed) by the actions a user or a process

Unix & Windows Processes 8 CS502 Spring 2006 Processes – Switching When a process is running, its hardware state is in the CPU – PC, SP, processor registers When the OS suspends running a process, it saves the hardware state in the PCB Context switch is the act of switching the CPU from one process to another –timesharing systems may do 100s or 1000s of switches/sec –takes microseconds on today’s hardware

Unix & Windows Processes 9 CS502 Spring 2006 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 Waiting Running Ready New Dispatch Interrupt I/O Wait I/O Complete Exit

Unix & Windows Processes 10 CS502 Spring 2006 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 state 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

Unix & Windows Processes 11 CS502 Spring 2006 Processes – Privileges This a a brief introduction to a facet of system security which will be covered in more detail in the future 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 “world” WinNT – Access Control List –Processes “inherit” privileges from user

Unix & Windows Processes 12 CS502 Spring 2006 Processes – Creation Unix/Linux –Create a new (child) process – fork(); Allocates new PCB Clones the calling process (almost) –Copy of parent process address space –Copies resources in kernel (e.g. files) Places PCB on Ready queue Return from call –0 for child –child PID for parent

Unix & Windows Processes 13 CS502 Spring 2006 fork( ) int main(int argc, char **argv) { char *name = argv[0]; int child_pid = fork(); if (child_pid == 0) { printf(“Child of %s is %d\n”, name, child_pid); return 0; } else { printf(“My child is %d\n”, child_pid); return 0; } _______________________________ %./forktest Child of forktest is 0 My child is 486

Unix & Windows Processes 14 CS502 Spring 2006 Processes – New Programs Starting another program –Unix – int exec (char *prog, char **argv) Check privileges and file type Loads program “prog” into address space Initializes context – e.g. passes arguments (*argv) Place PCB on ready queue –Windows/NT – combines fork & exec CreateProcess ( 10 arguments ) Not a parent child relationship Note – privileges required to create a new process

Unix & Windows Processes 15 CS502 Spring 2006 Processes – Address Space 0x xFFFFFFFF Virtual address space code (text) static data heap (dynamically allocated ) Kernel Code and Data PC SP User Space stack (dynamically allocated ) Kernel Space Linux – 3G/1G WinNT – 2G/2G user space/kernel space

Unix & Windows Processes 16 CS502 Spring 2006 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"; argvNew[1] = "-l"; argvNew[2] = NULL; if (execve(argvNew[0], argvNew, environ) < 0) { printf( "Execve error\n“); exit(1); } } else { /* parent */ wait(0); /* wait for the child to finish */ }