1 The Process Dave Eckhardt 1 Synchronization ● Exam flavor? – Is 50 minutes enough? – Two mid-terms? Evening exam? ● Concurrency.

Slides:



Advertisements
Similar presentations
Chapter 3 Process Description and Control
Advertisements

1 CS345 Operating Systems Φροντιστήριο Άσκησης 1.
CSE 451: Operating Systems Winter 2007 Module 4 Processes Ed Lazowska Allen Center 570.
The Process Model.
CSE 451: Operating Systems Winter 2006 Module 4 Processes Ed Lazowska Allen Center 570.
Processes CSCI 444/544 Operating Systems Fall 2008.
CS 311 – Lecture 14 Outline Process management system calls Introduction System calls  fork()  getpid()  getppid()  wait()  exit() Orphan process.
Page 1 Processes and Threads Chapter 2. Page 2 Processes The Process Model Multiprogramming of four programs Conceptual model of 4 independent, sequential.
Page 1 Processes and Threads Chapter Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling.
Forking & Process Scheduling Vivek Pai / Kai Li Princeton University.
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
Unix & Windows Processes 1 CS502 Spring 2006 Unix/Windows Processes.
Advanced Programming in the UNIX Environment Hop Lee.
Process Description and Control A process is sometimes called a task, it is a program in execution.
University of Pennsylvania 9/12/00CSE 3801 Multiprogramming CSE 380 Lecture Note 3.
Processes in Unix, Linux, and Windows CS-502 Fall Processes in Unix, Linux, and Windows CS502 Operating Systems (Slides include materials from Operating.
CSE 451: Operating Systems Autumn 2013 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
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.
Lecture 5 Process, Thread and Task September 22, 2015 Kyu Ho Park.
Today’s Topics Introducing process: the basic mechanism for concurrent programming –Process management related system calls Process creation Process termination.
Chapter 41 Processes Chapter 4. 2 Processes  Multiprogramming operating systems are built around the concept of process (also called task).  A process.
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.
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,
Processes: program + execution state
1 Chapter 2.1 : Processes Process concept Process concept Process scheduling Process scheduling Interprocess communication Interprocess communication Threads.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Processes.
System calls for Process management
CS 153 Design of Operating Systems Spring 2015 Lecture 5: Processes and Threads.
Silberschatz, Galvin and Gagne  Operating System Concepts Process Concept An operating system executes a variety of programs:  Batch system.
Operating Systems Process Creation
CS4315A. Berrached:CMS:UHD1 Process Management Chapter 6.
Processes, Threads, and Process States. Programs and Processes  Program: an executable file (before/after compilation)  Process: an instance of a program.
15-410, S’ The Process Jan. 21, 2004 Dave Eckhardt Bruce Maggs L05_Process “System call abuse for fun & profit”
System calls for Process management Process creation, termination, waiting.
1 Hardware Overview Dave Eckhardt
Direct memory access. IO Command includes: buffer address buffer length read or write dada position in disk When IO complete, DMA sends an interrupt request.
Lecture 5 Page 1 CS 111 Online Process Creation Processes get created (and destroyed) all the time in a typical computer Some by explicit user command.
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?
Protection of System Resources
Process Creation Processes get created (and destroyed) all the time in a typical computer Some by explicit user command Some by invocation from other running.
Chapter 3: Processes.
Processes in Unix, Linux, and Windows
IT 344: Operating Systems Module 4 Processes
Processes in Unix, Linux, and Windows
CS 143A Quiz 1 Solution.
Processes in Unix, Linux, and Windows
CSE 451: Operating Systems Spring 2012 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Mid Term review CSC345.
Process Description and Control
Process Control B.Ramamurthy 2/22/2019 B.Ramamurthy.
CSE 451: Operating Systems Winter 2003 Lecture 4 Processes
Unix Process Control B.Ramamurthy 4/11/2019 B.Ramamurthy.
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
CSE 451: Operating Systems Autumn 2004 Module 4 Processes
Process Description and Control in Unix
Process Description and Control in Unix
Presentation transcript:

1 The Process Dave Eckhardt

1 Synchronization ● Exam flavor? – Is 50 minutes enough? – Two mid-terms? Evening exam? ● Concurrency expertise? – Monitor? P()/V()? Mutex? Condition? ● Anybody reading comp.risks? ● Today – Chapter 4, more or less

1 How's it going? ● You should have tried simics – (really) ● Just do something – Put some characters somewhere on the screen – Then loop forever ● Weekends are fine – but please don't skip this one!

1 Outline ● Process as pseudo-machine – (that's all there is) ● Process life cycle ● Process kernel states ● Process kernel state

1 The Computer

1 The Process

1 Process life cycle ● Birth – (or, well, fission) ● School ● Work ● Death ● (Nomenclature courtesy of The Godfathers)

1 Birth ● Where do new processes come from? – (Not: under a cabbage leaf, by stork,...) ● What do we need? – Memory contents – CPU register contents (all N of them) – "I/O ports" – File descriptors – Hidden stuff (timer state, current directory, umask)

1 Birth ● Intimidating? ● How to specify all of that stuff? – What is your {name,quest,favorite_color}? ● Gee, we already have one process we like...

1 Birth - fork() ● Memory – Copy all of it – Maybe using VM tricks so it' s cheaper ● Registers – Copy all of them ● All but one: parent learns child's process ID, child gets 0

1 Birth - fork() ● File descriptors – Copy all of them – Can't copy the files! – Copy references to open-file state ● Hidden stuff – Do whatever is "obvious"

1 Now what? ● Two copies of the same process is boring ● Transplant surgery! – Implant new memory! ● New program text – Implant new registers! ● Old ones don't point well into the new memory – Keep (most) file descriptors ● Good for cooperation/delegation

1 Now what? ● Hidden state? – Do what's “obvious” ● What do we call this procedure? ● int execve( ● char *path, ● char *argv[ ], ● char *envp[ ])

1 Birth - other ways ● There is another way – Well, two ● spawn() – Carefully specify all features of new process – Don't need to copy stuff you will immediately toss ● Plan 9 rfork() / Linux clone() – Build new process from old one – Specify which things get shared vs. copied

1 School ● Old process called execve( char *path, char *argv[ ], char *envp[ ]); ● Result is char **environ; main(int argc, char *argv[ ]) {... }

1 School ● How does the magic work? – motto: No magic ● Kernel process setup – Toss old data memory – Toss old stack memory – Load executable file – and...

1 The stack! ● Kernel builds stack for new process – Transfer argv[] and envp[] to top of new process stack – Hand-craft stack frame for ~main() – Set registers ● stack pointer (to top frame) ● program counter (to start of ~main()) – (What's a ~main()?)

1 The mysterious ~main() ● What's in a name? – may be ~main(), – Any illegal name will do ● ~main(argc, argv, envp) ● environ = envp; ● exit(main(argc, argv)); ● Where does ~main() come from? –.../.../crt0.o

1 Work ● Process states – Running ● user mode ● kernel mode – Runnable ● user mode ● kernel mode – Sleeping ● in condition_wait(), more or less

1 Work ● Other process states – Forking – Zombie ● “Exercise for the reader” – Draw the state transition diagram

1 Death ● Voluntary ● void exit(int reason); ● Software exception – SIGXCPU - used "too much" CPU time ● Hardware exception – SIGSEGV - no memory there for you!

1 Death ● kill(pid, sig); – ^C  kill(getpid(), SIGINT); – Start logging ● kill(daemon_pid, SIGUSR1); ● % kill -USR1 33 – Lost in Space ● kill(Will_Robinson, SIGDANGER); ● I apologize to IBM for lampooning their serious signal ● No, I apologize for that apology...

1 Process cleanup ● Resource release – Open files: close() ● TCP: 2 minutes (or more) ● Solaris disk offline - forever (“None shall pass!”) – Memory: release ● Accounting – Record resource usage in a magic file ● Gone?

1 “All You Zombies” ● Zombie process – Process state reduced to exit code – Wait around until parent calls wait() ● Copy exit code to parent memory ● Delete PCB

1 Kernel process state ● The dreaded "PCB" – (poly-chloro-biphenol?) ● Process Control Block – “Everything without a memory address”

1 Sample PCB contents ● CPU register save area ● Process number, parent process number ● Countdown timer value ● Memory segment info – User memory segment list – Kernel stack reference ● Scheduler info – linked list slot, priority, “sleep channel”

1 The Big Picture

1 Ready to start? ● Not so complicated... – getpid() – fork() – exec() – exit() – wait() ● What could possibly go wrong?