Process life and death. Tuesday, September 28, 2010
|
|
- Leonard Burns
- 6 years ago
- Views:
Transcription
1 The_Visible_OS Page 1 Process life and death Tuesday, September 28, :50 PM So far, We've studied what a process is, and know that it has a limited view of the OS, and has one of a limited number of states. In this lecture, We'll explore a process's world in linux, how a process is born and dies, and how it requests services from the operating system.
2 System calls Wednesday, September 13, :26 PM You're used to running programs in "the shell" (bash or tcsh). In this lecture, we will learn how to run a program from inside a C program. This does exactly what the shell does. This is done via system calls. The_Visible_OS Page 2
3 The_Visible_OS Page 3 Creating a process Thursday, September 23, :10 PM Two steps From file.c to a.out from a.out to running image
4 From file.c to a.out Thursday, September 23, :09 PM The_Visible_OS Page 4
5 My program Tuesday, September 25, :44 PM #include <stdio.h> main() { printf("hi there\n"); } You can see the contents of file.o with the command nm. The_Visible_OS Page 5
6 The_Visible_OS Page 6 From a.out to running image Thursday, September 23, :13 PM file.o contains external symbols and defined symbols libc.a contains.o files for all library functions. Process of linking: scan libc.a for symbols declared external by file.o, load appropriate.o files. A window into libc.a: "ar" ar t /usr/lib/libc.a # lists all the.o files in libc.a A window into linking: "nm" nm file.o # lists the file's symbol table.
7 ld.so: the dynamic linker Thursday, September 23, :13 PM This is a memory saving device The_Visible_OS Page 7
8 The_Visible_OS Page 8 Notes Wednesday, September 13, :52 PM ld is the static linker: turns an object file into a program. ld.so is the dynamic linker: turns an a.out into a process.
9 The concept of sharing Tuesday, September 27, :41 PM q The_Visible_OS Page 9
10 The_Visible_OS Page 10 The concept of sharing Wednesday, September 13, :53 PM The purpose of ld.so is to allow programs to share things that don't change. Example: the text segment is read-only, so it is shared among all instances of a program.
11 The_Visible_OS Page 11 Executing a process Thursday, September 23, :13 PM When you try to run a process: fork(2) creates a copy of the current process (your shell) exec(2) replaces that copy with the new process: run ld.so to load process into memory. Load a.out followed by libc.so (and perhaps other dynamic libraries) Link external symbols in a.out to defined symbols in libc.so Start execution of new process.
12 The_Visible_OS Page 12 Shared memory Thursday, September 23, :00 PM The.so file is a shared object Same format as an object file (.o) Designed to be shared between processes. Only one copy for all processes, in memory!
13 The_Visible_OS Page 13 Designing for shared memory Thursday, September 23, :00 PM Calling printf loads printf.o in libc.a, which is a stub that just calls the printf shared code in libc.so. so that your program only has to load a tiny subroutine in order to access the shared space!
14 Picture of the whole process Wednesday, September 13, :02 PM The_Visible_OS Page 14
15 The_Visible_OS Page 15 Process sharing behavior Thursday, September 22, :41 PM Process sharing behavior Program is in the text segment Read-only Shared among every running instance of the program Data is in the stack, heap, global segments. Read-write Not shared. If 100 students are running emacs, there is one copy of its text segment!
16 The_Visible_OS Page 16 Copy on write Tuesday, September 25, :00 PM Copy on write When a read/write page is copied, it isn't actually copied until some process writes to it. It's made read only so write to it will generate an interrupt(!) The first process that writes to a copy-onwrite page Generates an interrupt Copies the page, makes both copies r/w Resumes execution
17 The_Visible_OS Page 17 "DLL Hell" Thursday, September 22, :58 PM This has behavioral ramifications Every Microsoft application comes with its own DLLs (Dynamically Linked Libraries, Microsoft's version of.so's) One application can overwrite the DLLs of another. Result: execution errors! Exact same problem with.so's in linux. But: my students have verified that -- at least -- RedHat has its act together.
18 The_Visible_OS Page 18 Process life and death Monday, September 18, :39 PM Process life and death Every process other than the first one (init, process with process-id=1) is the child of some other process (that called fork(2) to create it). Every process reports its exit code to its parent, who must "reap" that code. If a parent is remiss in reading the code, a process becomes a zombie, i.e., the living dead. Zombie processes can clutter a process table and bring a system to its knees.
19 The_Visible_OS Page 19 Process creation Monday, September 18, :39 PM Demystifying process creation and destruction: three important system calls: fork(), exec(), and wait(). fork(): make an identical copy of the current process. exec(): replace the current process with another one, specified via exec's arguments. wait(): wait for a child process to complete and reaps its exit code.
20 The_Visible_OS Page 20 Creation examples Friday, September 23, :58 AM Example: running a "cat" command in the foreground: Example: running a "cat" command in the foreground with explicit wait: Example: running a "cat" command in the background with implicit wait: Example: running a user-typed command in the foreground without arguments: Example: running a user-typed command in the background without arguments:
21 The_Visible_OS Page 21 Picture of first example Monday, September 22, :32 PM
22 The_Visible_OS Page 22 The point Tuesday, September 27, :06 PM The point of this discussion: typing./a.out in the shell is an explicit wait. typing./a.out & in the shell is a background execution. The difference is which system calls are called when.
23 The_Visible_OS Page 23 Caveats about waiting Friday, September 23, :59 AM General caveats about waiting if parent dies, parent doesn't have to wait. Children become children of the system process init, which reaps them when they die. if parent doesn't call wait or reap, child becomes a zombie until it does. Thus it is quite easy to make a host a "city of the living dead": while (1) { if (!fork()) { exit(0); } } The process spawns an unlimited number of children, each of which immediately dies and becomes a zombie, because the parent is still running and hasn't "wait"ed for the child's status! Compare this with while (1) { if (!fork()) { exit(0); } // child dies else { wait(&status); } // parent reaps } which works correctly (if uselessly).
24 The_Visible_OS Page 24 What exactly happens during a fork()? Friday, September 23, :00 AM What exactly happens during a fork()? The whole running program gets copied, including its environment. all open files. Both copies then proceed to execute independently. The parent gets the pid of the child from fork(). The child gets a 0 (indicating that it is not a parent to anything).
25 The_Visible_OS Page 25 What happens during an exec? Friday, September 23, :04 AM What happens during an exec? Environment is preserved. Open files stay open. All of memory is replaced. File buffers are silently lost. In particular: File buffers are not flushed. The buffers themselves are erased! Buffered writes can be lost.
26 The_Visible_OS Page 26 What is the purpose of a wait? Friday, September 23, :07 AM What is the purpose of a wait? When a process dies, it stores an exit code (an integer). 0 means a normal exit. non-zero exit codes represent errors. You set that code with the exit system call: exit(1); // error exit wait's purpose is to read that code (in the parent).
27 The_Visible_OS Page 27 Strange fork behavior Tuesday, September 27, :16 PM E.g., consider the following: main() { printf("this will get printed ") if (fork()) { printf("...eventually\n"); } else { printf("...twice\n"); } } This prints something like: this will get printed...eventually\n this will get printed...twice\n because the first printf buffers the write before the fork. Question: in which order?
28 The_Visible_OS Page 28 Strange execl behavior Tuesday, September 27, :19 PM E.g., consider the following main() { printf("this won't get seen at all "); execl("/bin/cat", "cat", "/dev/null", 0); } // prints nothing at all, because // the execl erases the unwritten line buffer!
29 The_Visible_OS Page 29 End of lecture on 9/13/2017 Wednesday, September 13, :32 PM
30 The_Visible_OS Page 30 Aspects of the execution environment Monday, September 18, :12 PM Aspects of execution environment environment variables: specify user preferences resource limits: specify what a process can or cannot do. i/o: which files are open? Caveat: when a process forks, its environment is copied exactly into its child.
31 The_Visible_OS Page 31 During execution Friday, September 23, :11 AM During execution, A process can open and close files. (and -- implicitly -- make those open files available to children) open, close: unbuffered open and close of a file. fopen, fclose: buffered open and close of a file. A process can read and change its own environment (and -- implicitly -- the environments of its children!) getenv: read an environment variable. setenv: change an environment variable (for children) A process can limit its own behavior (and -- implicitly -- that of its children)
32 The_Visible_OS Page 32 Environment Monday, September 18, :12 PM Purpose of environment variables: inform programs of defaults: Example: PRINTER In TCSH: lp file # prints to default printer. setenv PRINTER hp231 lp file # prints to printer outside my office
33 The_Visible_OS Page 33 getenv and setenv Friday, September 23, :58 AM getenv and setenv Can set environment variables These are present in the child after a fork() They remain present after an exec()!
34 Limiting behaviors Wednesday, September 20, :03 PM Limiting process behaviors getrlimit, setrlimit: make processes "behave" struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit */ }; int getrlimit(int kind, struct rlimit *limits); int setrlimit(int kind, const struct rlimit *limits); Kinds of limits RLIMIT_CPU: CPU time utilized RLIMIT_DATA: size of data segments RLIMIT_FSIZE: max size of files created by process RLIMIT_LOCKS: number of advisory file locks used RLIMIT_MEMLOCK: size of memory prevented from swapping out RLIMIT_NOFILE: number of files that can be open. RLIMIT_NPROC: number of processes created. RLIMIT_RSS: size of resident memory set. RLIMIT_STACK: stack size Kinds of limits: soft limits inform the process that it's over bounds, but do not stop it. hard limits terminate the process. Note: a normal process can only make its limits more restrictive. The_Visible_OS Page 34
35 It cannot remove a limit! See The_Visible_OS Page 35
36 The_Visible_OS Page 36 Why would you want to limit yourself? Friday, September 23, :25 AM Why would you want to limit yourself? Protect the system from potential errors. Limit child behavior. E.g. if (fork()) { // parent wait... } else { // child setrlimit // limit the child ONLY exec // do something potentially unsafe }
37 The_Visible_OS Page 37 What can the process see? Friday, September 23, :27 AM What can the process see? Resource utilization. Operating system status.
38 Resource monitoring Wednesday, September 20, :38 PM Resource monitoring make processes aware of information about themselves and the operating system allow intelligent decision-making on the part of processes struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ long ru_maxrss;/* maximum resident set size */ long ru_ixrss;/* integral shared memory size */ long ru_idrss;/* integral unshared data size */ long ru_isrss;/* integral unshared stack size */ long ru_minflt;/* page reclaims */ long ru_majflt;/* page faults */ long ru_nswap;/* swaps */ long ru_inblock;/* block input operations */ long ru_oublock;/* block output operations */ long ru_msgsnd;/* messages sent */ long ru_msgrcv; /* messages received */ long ru_nsignals; /* signals received */ long ru_nvcsw; /* voluntary context switches */ long ru_nivcsw; /* involuntary context switches */ }; struct rusage r; getrusage(rusage_self, &r); // fetch data for self: man 2 getrusage getrusage(rusage_children, &r); // fetch data for children See The_Visible_OS Page 38
39 The_Visible_OS Page 39 Watch out! Friday, September 23, :23 AM Watch out! Not all resources are actually monitored! Some are only updated on process exit! Some are only updated on child reap!
A Unix Process. Joseph Cordina
1 A Unix Process We have examined the memory layout of a UNIX process before. In this section we will see more in detail about how each process executes within the UNIX environment. Each process is identified
More informationThe Life and Death of A Process
COMP 111: Operating Systems (Fall 2013) The Life and Death of A Process Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah Based on a presentation by Professor
More informationScore-P A Joint Performance Measurement Run-Time Infrastructure for Periscope, Scalasca, TAU, and Vampir (continued)
Score-P A Joint Performance Measurement Run-Time Infrastructure for Periscope, Scalasca, TAU, and Vampir (continued) VI-HPS Team Congratulations!? If you made it this far, you successfully used Score-P
More informationLesson 2. process id = 1000 text data i = 5 pid = 1200
Lesson 2 fork: create a new process. The new process (child process) is almost an exact copy of the calling process (parent process). In this method we create an hierarchy structure for the processes,
More informationScore-P A Joint Performance Measurement Run-Time Infrastructure for Periscope, Scalasca, TAU, and Vampir
Score-P A Joint Performance Measurement Run-Time Infrastructure for Periscope, Scalasca, TAU, and Vampir VI-HPS Team Congratulations!? If you made it this far, you successfully used Score-P to instrument
More informationThe Environment of a Unix Process
Contents 1. Preface/Introduction 2. Standardization and Implementation 3. File I/O 4. Standard I/O Library 5. Files and Directories 6. System Data Files and Information 7. Environment of a Unix Process
More informationPROCESS MANAGEMENT. Operating Systems 2015 Spring by Euiseong Seo
PROCESS MANAGEMENT Operating Systems 2015 Spring by Euiseong Seo Today s Topics Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication
More informationOperating System Structure
Operating System Structure CSCI 4061 Introduction to Operating Systems Applications Instructor: Abhishek Chandra Operating System Hardware 2 Questions Operating System Structure How does the OS manage
More informationUnix Processes. What is a Process?
Unix Processes Process -- program in execution shell spawns a process for each command and terminates it when the command completes Many processes all multiplexed to a single processor (or a small number
More informationjust a ((somewhat) safer) dialect.
Intro_to_C Page 1 Intro to C Tuesday, September 07, 2004 5:30 PM C was developed specifically for writing operating systems Low level of abstraction. "Just above machine language." Direct access to the
More informationCPSC 341 OS & Networks. Processes. Dr. Yingwu Zhu
CPSC 341 OS & Networks Processes Dr. Yingwu Zhu Process Concept Process a program in execution What is not a process? -- program on a disk A process is an active object, but a program is just a file It
More informationProcesses. CS3026 Operating Systems Lecture 05
Processes CS3026 Operating Systems Lecture 05 Dispatcher Admit Ready Queue Dispatch Processor Release Timeout or Yield Event Occurs Blocked Queue Event Wait Implementation: Using one Ready and one Blocked
More informationProcess Control. Philipp Koehn. 23 April 2018
Process Control Philipp Koehn 23 April 2018 Control Flow 1 The CPU executes one instruction after another Typically, they are next to each other in memory (unless jumps, branches, and returns from subroutine)
More informationCMPS 105 Systems Programming. Prof. Darrell Long E2.371
+ CMPS 105 Systems Programming Prof. Darrell Long E2.371 darrell@ucsc.edu + Chapter 7: The Environment of a UNIX process + Introduction + The main() fuction n int main(int argc, char* argv[]); n argc =
More informationIntroduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras
Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Week 03 Lecture 12 Create, Execute, and Exit from a Process
More informationProject 1: Implementing a Shell
Assigned: August 28, 2015, 12:20am Due: September 21, 2015, 11:59:59pm Project 1: Implementing a Shell Purpose The purpose of this project is to familiarize you with the mechanics of process control through
More informationProcess Management forks, bombs, zombies, and daemons! Lecture 5, Hands-On Unix System Administration DeCal
Process Management forks, bombs, zombies, and daemons! Lecture 5, Hands-On Unix System Administration DeCal 2012-10-01 what is a process? an abstraction! you can think of it as a program in the midst of
More informationThe Big Picture So Far. Today: Process Management
The Big Picture So Far From the Architecture to the OS to the User: Architectural resources, OS management, and User Abstractions. Hardware abstraction Processor Memory I/O devices File System Distributed
More informationEXPERIMENT NO : M/C Lenovo Think center M700 Ci3,6100,6th Gen. H81, 4GB RAM,500GB HDD
GROUP - C EXPERIMENT NO : 12 1. Title: Implement UNIX system calls like ps, fork, join, exec family, and wait for process management (use shell script/ Java/ C programming) 2. Objectives : - To understand
More informationMemory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory.
Memory Management Page 1 Memory Management Wednesday, October 27, 2004 4:54 AM Memory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory. Two kinds
More informationGetting to know you. Anatomy of a Process. Processes. Of Programs and Processes
Getting to know you Processes A process is an abstraction that supports running programs A sequential stream of execution in its own address space A process is NOT the same as a program! So, two parts
More informationCS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2018 Lecture 20
CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2018 Lecture 20 LAST TIME: UNIX PROCESS MODEL Began covering the UNIX process model and API Information associated with each process: A PID (process ID) to
More informationCS 31: Intro to Systems Processes. Kevin Webb Swarthmore College March 31, 2016
CS 31: Intro to Systems Processes Kevin Webb Swarthmore College March 31, 2016 Reading Quiz Anatomy of a Process Abstraction of a running program a dynamic program in execution OS keeps track of process
More informationDebugging Page 1. Current context. Monday, October 15, :38 PM
Debugging Page 1 Current context 4:38 PM Debugging Wednesday, October 10, 2012 9:51 AM The art of debugging Actually a misnomer. You aren't "debugging a program." You're "debugging your understanding"
More informationUNIT 4 UNIX PROCESSES
Gechstudentszone.worpress.com Prajwal K R UNIT 4 UNIX PROCESSES INTRODUCTION A Process is a program under execution in a UNIX or POSIX system. main FUNCTION A C program starts execution with a function
More informationUNIX. Session 2. UNIX processes and forking fork system call exec system call death of process kill fork and I/O using it UNIX.
ProgrammingII Session 2 process handling processes and forking fork system call exec system call death of process kill fork and I/O using it ProgrammingII Short Course Notes Alan Dix 1996 II/20 process:
More informationLecture 4: Process Management
Lecture 4: Process Management (Chapters 2-3) Process: execution context of running program. A process does not equal a program! Process is an instance of a program Many copies of same program can be running
More informationCS240: Programming in C
CS240: Programming in C Lecture 16: Process and Signals Cristina Nita-Rotaru Lecture 16/ Fall 2013 1 Processes in UNIX UNIX identifies processes via a unique Process ID Each process also knows its parent
More informationAltering the Control Flow
Altering the Control Flow Up to Now: two mechanisms for changing control flow: Jumps and branches Call and return using the stack discipline. Both react to changes in program state. Insufficient for a
More informationPROCESSES. Jo, Heeseung
PROCESSES Jo, Heeseung TODAY'S TOPICS What is the process? How to implement processes? Inter-Process Communication (IPC) 2 WHAT IS THE PROCESS? Program? vs. Process? vs. Processor? 3 PROCESS CONCEPT (1)
More informationProcesses. Jo, Heeseung
Processes Jo, Heeseung Today's Topics What is the process? How to implement processes? Inter-Process Communication (IPC) 2 What Is The Process? Program? vs. Process? vs. Processor? 3 Process Concept (1)
More informationChap 4, 5: Process. Dongkun Shin, SKKU
Chap 4, 5: Process 1 Process Concept Job A bundle of program and data to be executed An entity before submission for execution Process (= running program) An entity that is registered to kernel for execution
More informationProcesses. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Processes Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu OS Internals User space shell ls trap shell ps Kernel space File System Management I/O
More informationToday: Process Management. The Big Picture So Far. What's in a Process? Example Process State in Memory
The Big Picture So Far Today: Process Management From the Architecture to the OS to the User: Architectural resources, OS management, and User Abstractions. A process as the unit of execution. Hardware
More informationPrinceton University Computer Science 217: Introduction to Programming Systems. Process Management
Princeton University Computer Science 217: Introduction to Programming Systems Process Management 1 Goals of this Lecture Help you learn about: Creating new processes Waiting for processes to terminate
More informationfork System-Level Function
Princeton University Computer Science 217: Introduction to Programming Systems Process Management Goals of this Lecture Help you learn about: Creating new processes Waiting for processes to terminate Executing
More informationCS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017
CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 Outline o Process concept o Process creation o Process states and scheduling o Preemption and context switch o Inter-process communication
More informationAltering the Control Flow
Altering the Control Flow Up to Now: two mechanisms for changing control flow: Jumps and branches Call and return using the stack discipline. Both react to changes in program state. Insufficient for a
More informationWhat is a Process? Processes and Process Management Details for running a program
1 What is a Process? Program to Process OS Structure, Processes & Process Management Don Porter Portions courtesy Emmett Witchel! A process is a program during execution. Ø Program = static file (image)
More informationWeek 2 Intro to the Shell with Fork, Exec, Wait. Sarah Diesburg Operating Systems CS 3430
Week 2 Intro to the Shell with Fork, Exec, Wait Sarah Diesburg Operating Systems CS 3430 1 Why is the Shell Important? Shells provide us with a way to interact with the core system Executes programs on
More informationProcess Management 1
Process Management 1 Goals of this Lecture Help you learn about: Creating new processes Waiting for processes to terminate Executing new programs Shell structure Why? Creating new processes and executing
More informationProcesses. Johan Montelius KTH
Processes Johan Montelius KTH 2017 1 / 47 A process What is a process?... a computation a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other
More informationPrinceton University. Computer Science 217: Introduction to Programming Systems. Process Management
Princeton University Computer Science 217: Introduction to Programming Systems Process Management 1 Goals of this Lecture Help you learn about: Creating new processes Waiting for processes to terminate
More informationCSC 1600 Unix Processes. Goals of This Lecture
CSC 1600 Unix Processes q Processes Goals of This Lecture q Process vs. program q Context switching q Creating a new process q fork: process creates a new child process q wait: parent waits for child process
More informationA process. the stack
A process Processes Johan Montelius What is a process?... a computation KTH 2017 a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other processes
More informationChapter 3: Processes. Operating System Concepts 9 th Edit9on
Chapter 3: Processes Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 3: Processes 1. Process Concept 2. Process Scheduling 3. Operations on Processes 4. Interprocess
More informationProcesses. CS439: Principles of Computer Systems January 30, 2019
Processes CS439: Principles of Computer Systems January 30, 2019 What We Know Operating system complexity increased over time in response to economic and technological changes The three roles did not show
More informationOperating Systems CMPSCI 377 Spring Mark Corner University of Massachusetts Amherst
Operating Systems CMPSCI 377 Spring 2017 Mark Corner University of Massachusetts Amherst Clicker Question #1 Program == Process (A) True (B) False Answer on Next Slide The Big Picture So Far Hardware abstraction
More informationPrinceton University Computer Science 217: Introduction to Programming Systems. Process Management
Princeton University Computer Science 217: Introduction to Programming Systems Process Management 1 Goals of this Lecture Help you learn about: Creating new processes Waiting for processes to terminate
More informationOS Structure, Processes & Process Management. Don Porter Portions courtesy Emmett Witchel
OS Structure, Processes & Process Management Don Porter Portions courtesy Emmett Witchel 1 What is a Process?! A process is a program during execution. Ø Program = static file (image) Ø Process = executing
More informationProcesses: Introduction. CS 241 February 13, 2012
Processes: Introduction CS 241 February 13, 2012 1 Announcements MP2 due tomorrow Deadline and contest cutoff 11:59 p.m. Fabulous prizes on Wednesday MP3 out Wednesday: Shell (1 week) Code from this lecture
More informationWindows architecture. user. mode. Env. subsystems. Executive. Device drivers Kernel. kernel. mode HAL. Hardware. Process B. Process C.
Structure Unix architecture users Functions of the System tools (shell, editors, compilers, ) standard library System call Standard library (printf, fork, ) OS kernel: processes, memory management, file
More informationSo far, system calls have had easy syntax. Integer, character string, and structure arguments.
Pointers Page 1 So far, system calls have had easy syntax Wednesday, September 30, 2015 10:45 AM Integer, character string, and structure arguments. But this is not always true. Today, we begin to explore
More information518 Lecture Notes Week 3
518 Lecture Notes Week 3 (Sept. 15, 2014) 1/8 518 Lecture Notes Week 3 1 Topics Process management Process creation with fork() Overlaying an existing process with exec Notes on Lab 3 2 Process management
More informationPROCESS CONTROL BLOCK TWO-STATE MODEL (CONT D)
MANAGEMENT OF APPLICATION EXECUTION PROCESS CONTROL BLOCK Resources (processor, I/O devices, etc.) are made available to multiple applications The processor in particular is switched among multiple applications
More informationCSC 252: Computer Organization Spring 2018: Lecture 19
CSC 252: Computer Organization Spring 2018: Lecture 19 Instructor: Yuhao Zhu Department of Computer Science University of Rochester Action Items: Programming Assignment 3 grades are out Programming Assignment
More informationIntroduction to OS Processes in Unix, Linux, and Windows MOS 2.1 Mahmoud El-Gayyar
Introduction to OS Processes in Unix, Linux, and Windows MOS 2.1 Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Mahmoud El-Gayyar / Introduction to OS 1 Processes in Unix, Linux, and Windows Unix pre-empted
More informationProcesses. CS439: Principles of Computer Systems January 24, 2018
Processes CS439: Principles of Computer Systems January 24, 2018 Last Time History Lesson Hardware expensive, humans cheap Hardware cheap, humans expensive Hardware very cheap, humans very expensive Dual-mode
More information(In columns, of course.)
CPS 310 first midterm exam, 10/9/2013 Your name please: Part 1. Fun with forks (a) What is the output generated by this program? In fact the output is not uniquely defined, i.e., it is not always the same.
More informationProcesses. Dr. Yingwu Zhu
Processes Dr. Yingwu Zhu Process Growing Memory Stack expands automatically Data area (heap) can grow via a system call that requests more memory - malloc() in c/c++ Entering the kernel (mode) Hardware
More informationShark Cluster Overview
Shark Cluster Overview 51 Execution Nodes 1 Head Node (shark) 2 Graphical login nodes 800 Cores = slots 714 TB Storage RAW Slide 1/17 Introduction What is a High Performance Compute (HPC) cluster? A HPC
More informationChapter 3: Process Concept
Chapter 3: Process Concept Chapter 3: Process Concept Process Concept Process Scheduling Operations on Processes Inter-Process Communication (IPC) Communication in Client-Server Systems Objectives 3.2
More informationChapter 3: Process Concept
Chapter 3: Process Concept Chapter 3: Process Concept Process Concept Process Scheduling Operations on Processes Inter-Process Communication (IPC) Communication in Client-Server Systems Objectives 3.2
More information3. Process Management in xv6
Lecture Notes for CS347: Operating Systems Mythili Vutukuru, Department of Computer Science and Engineering, IIT Bombay 3. Process Management in xv6 We begin understanding xv6 process management by looking
More informationCS 355 Operating Systems. Keeping Track of Processes. When are processes created? Process States 1/26/18. Processes, Unix Processes and System Calls
CS 355 Operating Systems Processes, Unix Processes and System Calls Process User types command like run foo at keyboard I/O device driver for keyboard and screen Command is parsed by command shell Executable
More informationChapter 3: Processes. Operating System Concepts 8th Edition,
Chapter 3: Processes, Administrivia Friday: lab day. For Monday: Read Chapter 4. Written assignment due Wednesday, Feb. 25 see web site. 3.2 Outline What is a process? How is a process represented? Process
More informationPart II Processes and Threads Process Basics
Part II Processes and Threads Process Basics Fall 2017 Program testing can be used to show the presence of bugs, but never to show their absence 1 Edsger W. Dijkstra From Compilation to Execution A compiler
More informationHint #1. Define a syscall
PC 5 System call Exercice Clone the git repository git clone http://gitlab.montefiore.ulg.ac.be/info0940/kernel-4.4.50.git Make a "PC4" branch Add a sys_forkexec system call It is the equivalent of calling
More informationProcesses. slide 1 kv, gm. Silberschatz chapter 3
Processes slide 1 Silberschatz chapter 3 Process concepts slide 2 definition of a process (sometimes called a Task) aprogram in execution an executable file + some kind of dynamic data managed by the OS
More informationCSci 4061 Introduction to Operating Systems. Processes in C/Unix
CSci 4061 Introduction to Operating Systems Processes in C/Unix Process as Abstraction Talked about C programs a bit Program is a static entity Process is an abstraction of a running program provided by
More informationProcess concepts. Processes. Process in Memory. Process Creation. definition of a process (sometimes called a Task) aprogram in execution
Processes slide 1 Process concepts slide 2 Silberschatz chapter 3 definition of a process (sometimes called a Task) aprogram in execution an executable file + some kind of dynamic data managed by the OS
More informationCS 201. Processes. Gerson Robboy Portland State University
CS 201 Processes Gerson Robboy Portland State University Review Definition: A process is an instance of a running program. One of the most fundamental concepts in computer science. Not the same as program
More informationChapter 3: Process Concept
Chapter 3: Process Concept Silberschatz, Galvin and Gagne 2013! Chapter 3: Process Concept Process Concept" Process Scheduling" Operations on Processes" Inter-Process Communication (IPC)" Communication
More informationOperating systems and concurrency - B03
Operating systems and concurrency - B03 David Kendall Northumbria University David Kendall (Northumbria University) Operating systems and concurrency - B03 1 / 15 Introduction This lecture gives a more
More informationCSC209 Fall Karen Reid 1
' & ) ) #$ "! How user programs interact with the Operating System. Somehow we need to convert a program into machine code (object code). A compiler passes over a whole program before translating it into
More informationExceptional Control Flow Part I Oct. 17, 2002
15-213 The course that gives CMU its Zip! Exceptional Control Flow Part I Oct. 17, 2002 Topics Exceptions Process context switches Creating and destroying processes class16.ppt Control Flow Computers do
More informationThe Software Stack: From Assembly Language to Machine Code
COMP 506 Rice University Spring 2018 The Software Stack: From Assembly Language to Machine Code source code IR Front End Optimizer Back End IR target code Somewhere Out Here Copyright 2018, Keith D. Cooper
More informationChapter 3: Processes
Chapter 3: Processes Silberschatz, Galvin and Gagne 2013 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication
More information"what you don't know, that can't kill you (but can kill your performance)"
Hashes Page 1 Addressing Tuesday, November 02, 2010 1:21 PM Today, we study how memory is managed Part architecture: what a modern processor can do Part tradition: we've always done it that way. Part performance:
More informationControl Flow. Systemprogrammering 2007 Föreläsning 2 Exceptional Control Flow Part I. Exceptional Control Flow. Altering the Control Flow
Systemprogrammering 2007 Föreläsning 2 Exceptional Control Flow Part I Topics Exceptions Process context switches Creating and destroying processes Control Flow Computers do Only One Thing From startup
More informationIntroduction to Processes
Computer Systems II Introduction to Processes 1 Review: Basic Computer Hardware CPU Instruction Register Control BUS read (disk) local buffer Disk Controller Memory Executable Disk 1 Review: Timing Problem
More informationChapter 3 Processes. Process Concept. Process Concept. Process Concept (Cont.) Process Concept (Cont.) Process Concept (Cont.)
Process Concept Chapter 3 Processes Computers can do several activities at a time Executing user programs, reading from disks writing to a printer, etc. In multiprogramming: CPU switches from program to
More informationSep 12, 2006 Lecture 2: System Programming
Sep 12, 2006 Lecture 2: System Programming September 19, 2007 1 Introduction In this lecture, we will introduce the basics of systems programming using the language of choice C language. We also introduce
More informationExceptional Control Flow Part I September 22, 2008
15-213 Exceptional Control Flow Part I September 22, 2008 Topics Exceptions Process context switches Creating and destroying processes class11.ppt Control Flow Computers do only one thing: From startup
More informationAnnouncement. Exercise #2 will be out today. Due date is next Monday
Announcement Exercise #2 will be out today Due date is next Monday Major OS Developments 2 Evolution of Operating Systems Generations include: Serial Processing Simple Batch Systems Multiprogrammed Batch
More informationGiving credit where credit is due
CSCE 230J Computer Organization Exceptional Control Flow Part I Dr. Steve Goddard goddard@cse.unl.edu http://cse.unl.edu/~goddard/courses/csce230j Giving credit where credit is due Most of slides for this
More informationProblem Set: Processes
Lecture Notes on Operating Systems Problem Set: Processes 1. Answer yes/no, and provide a brief explanation. (a) Can two processes be concurrently executing the same program executable? (b) Can two running
More informationRoadmap. Tevfik Ko!ar. CSC Operating Systems Fall Lecture - III Processes. Louisiana State University. Processes. September 1 st, 2009
CSC 4103 - Operating Systems Fall 2009 Lecture - III Processes Tevfik Ko!ar Louisiana State University September 1 st, 2009 1 Roadmap Processes Basic Concepts Process Creation Process Termination Context
More informationCITS2002 Systems Programming. Creating a new process using fork() 1 next CITS2002 CITS2002 schedule
1 next CITS2002 CITS2002 schedule Creating a new process using fork() fork() is very unusual because it returns different values in the (existing) parent process, and the (new) child process: the value
More informationOperating Systems. Lecture 05
Operating Systems Lecture 05 http://web.uettaxila.edu.pk/cms/sp2013/seosbs/ February 25, 2013 Process Scheduling, System Calls Execution (Fork,Wait,Exit,Exec), Inter- Process Communication Schedulers Long
More informationECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017
ECE 550D Fundamentals of Computer Systems and Engineering Fall 2017 The Operating System (OS) Prof. John Board Duke University Slides are derived from work by Profs. Tyler Bletsch and Andrew Hilton (Duke)
More informationFall 2017 :: CSE 306. Process Abstraction. Nima Honarmand
Process Abstraction Nima Honarmand Administrivia Course staff email: cse306ta at cs.stonybrook.edu Both Babak and I will be monitoring the account to ensure a timely response What to use it for: any email
More informationProblem Set: Processes
Lecture Notes on Operating Systems Problem Set: Processes 1. Answer yes/no, and provide a brief explanation. (a) Can two processes be concurrently executing the same program executable? (b) Can two running
More informationChapter 3: Processes. Operating System Concepts Essentials 2 nd Edition
Chapter 3: Processes Silberschatz, Galvin and Gagne 2013 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication
More informationShark Cluster Overview
Shark Cluster Overview 51 Execution Nodes 1 Head Node (shark) 1 Graphical login node (rivershark) 800 Cores = slots 714 TB Storage RAW Slide 1/14 Introduction What is a cluster? A cluster is a group of
More informationReading Assignment 4. n Chapter 4 Threads, due 2/7. 1/31/13 CSE325 - Processes 1
Reading Assignment 4 Chapter 4 Threads, due 2/7 1/31/13 CSE325 - Processes 1 What s Next? 1. Process Concept 2. Process Manager Responsibilities 3. Operations on Processes 4. Process Scheduling 5. Cooperating
More informationOS lpr. www. nfsd gcc emacs ls 1/27/09. Process Management. CS 537 Lecture 3: Processes. Example OS in operation. Why Processes? Simplicity + Speed
Process Management CS 537 Lecture 3: Processes Michael Swift This lecture begins a series of topics on processes, threads, and synchronization Today: processes and process management what are the OS units
More informationExceptional Control Flow Part I
Exceptional Control Flow Part I Today Exceptions Process context switches Creating and destroying processes Next time Signals, non-local jumps, Chris Riesbeck, Fall 2011 Original: Fabian Bustamante Control
More informationCS 550 Operating Systems Spring Process III
CS 550 Operating Systems Spring 2018 Process III 1 Recap: Memory Layout of a typical process MAX Stack Function Call Arguments, Return Address, Return Values Gap Heap Data Dynamically allocated memory
More informationCS370 Operating Systems
CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture a Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ? Notes: TA office hours on the web PA1
More information