Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Course Overview Principles of Operating Systems Introduction Computer System Structures Operating System Structures Processes Process Synchronization Deadlocks CPU Scheduling © 2000 Franz Kurfess Memory Management Virtual Memory File Management Security Networking Distributed Systems Case Studies Conclusions Processes 1 Chapter Overview Processes Motivation Objectives Processes and Programs Process States Operations on Processes Operating System Control Structures Process Control Block © 2000 Franz Kurfess Processes and Threads Process Scheduling Cooperating Processes Interprocess Communication Important Concepts and Terms Chapter Summary Processes 2 Motivation applications can only run through the use of processes processes are the fundamental unit of operation in an operating system most components of the operating systems provide services for the execution of processes processes require resources for their execution © 2000 Franz Kurfess Processes 3 Objectives understand the use of processes for running programs know the requirements and mechanisms for the execution of processes understand the principles of cooperation between processes acquire the terminology related to processes and their execution © 2000 Franz Kurfess Processes 4 Processes and Programs both terms are used to describe the activities performed by a computer program refers to the instructions as specified by the programmer process refers to the activities performed by the computer as the instructions of a program are executed © 2000 Franz Kurfess Processes 5 Terminology program application job task process thread © 2000 Franz Kurfess Processes 6 Program set of instructions specifying the activities necessary to accomplish a task frequently used in a broad sense static: usually doesn’t change unless modified by the programmer © 2000 Franz Kurfess Processes 7 Application program used for a specific task often used for programs available to the user, in contrast to programs used internally by the OS © 2000 Franz Kurfess Processes 8 Job used to describe the unit of work in a batch system frequently used synonymously to process © 2000 Franz Kurfess Processes 9 Task unit of work from the user’s perspective in a timesharing or multitasking system often corresponds to an application program may comprise several processes © 2000 Franz Kurfess Processes 10 Process program in execution unit of work from the OS perspective, in particular with respect to resource ownership dynamic: changes its state over time (during execution) may consist of several threads © 2000 Franz Kurfess Processes 11 Thread smallest dispatchable unit in the OS several threads are usually grouped into a process, and can cooperate on a task sometimes also called lightweight processes © 2000 Franz Kurfess Processes 12 Execution of Programs multiprogramming multiprocessing multitasking multithreading © 2000 Franz Kurfess Processes 13 Example Processes consider three processes process A executes 100 instructions, reads two blocks from hard disk, and executes another 100 instructions process B reads one block from hard disk, executes 100 instructions, and writes one block to disk process C executes 1000 instructions, and writes two blocks to disk timing 10 ns per CPU instruction (100 MHertz clock frequency) 10 ms average transfer time per block between hard disk and memory © 2000 Franz Kurfess Processes 14 Example Single-Programming A B 1,000 ns CPU 1,000 ns I/O CPU 20 ,000 ,000 ns I/O C 1,000 ns CPU I/O 10 ,000 ,000 ns 10 ,000 ,000 ns 10,000 ns CPU I/O 20 ,000 ,000 ns overall execution time for single-programming 20,002,000 + 20,001,000 + 20,010,000 ns = 60,013,000 ns CPU is idle for 60,000,000 ns © 2000 Franz Kurfess Processes 15 Multiprogramming several programs are simultaneously under execution they are between start and finish simultaneously refers to a human time-scale (seconds) at the CPU time scale, only one process is handled by the CPU (single processor systems) creates logical parallelism mainly used in batch systems to increase CPU utilization © 2000 Franz Kurfess Processes 16 Example Multiprogramming 1,000 ns A 1,000 ns I/O A CPU A CPU A 20 ,000 ,000 ns 1,000 ns B I/O B CPU B 10 ,000 ,000 ns I/O B 10 ,000 ,000 ns logical parallelism: all three programs are run simultaneously problem: only one CPU available 10,000 ns C CPU C I/O C 20 ,000 ,000 ns © 2000 Franz Kurfess Processes 17 Example Multiprogramming 1,000 ns 10,000 ns Proc. A Proc. C I/O B 10 ,000 ,000 ns 1,000 ns Proc. B Proc. A I/O A 20 ,000 ,000 ns Attention: Dimensions not to scale I/O B I/O C 20 ,000 ,000 ns 10 ,000 ,000 ns solution: 1,000 ns multiplexing of the CPU by switching between processes I/O operations concurrently with CPU operations problem: more complex requires process management © 2000 Franz Kurfess Processes 18 Multiprocessing several processes run simultaneously on different CPUs creates physical parallelism advantages short overall execution time problems CPUs might have to share memory, I/O devices low CPU utilization communication between processes process allocation and load balancing © 2000 Franz Kurfess Processes 19 Example Multiprocessing 1,000 ns CPU 1 1,000 ns I/O A Proc. A Proc. A 20 ,000 ,000 ns physical parallelism: all three programs are run simultaneously on three different CPUs 1,000 ns CPU 2 I/O B Proc. B 10 ,000 ,000 ns I/O B 10 ,000 ,000 ns 10,000 ns CPU 3 Proc. C I/O C 20 ,000 ,000 ns © 2000 Franz Kurfess Processes 20 Multitasking conceptually similar to multiprogramming: better CPU utilization by switching between processes more frequent switching so that users can interact with the program necessary for time-sharing system © 2000 Franz Kurfess Processes 21 Multithreading within one single process, multiple threads of execution are used independent activities within one program or application can be performed in parallel either on different CPUs, or via switching between threads decreases the overhead of switching between processes © 2000 Franz Kurfess Processes 22 Process States over their existence, processes can be in different states newly created ready to run on the CPU running on the CPU blocked because it is waiting for an event or an I/O operation terminated © 2000 Franz Kurfess Processes 23 Process State Diagram new terminated admission release dispatch ready running time-out I/O or event completion © 2000 Franz Kurfess blocked I/O or event wait Processes 24 Operations on Processes process new creation batch job, user login, OS service, child process process termination normal completion, time limit exceeded, resources unavailable, protection error, calculation error, invalid instruction, OS intervention, parent termination, parent request context switch execution of one process is stopped, and another process continues change of process state implicit via context switch, explicit by the OS © 2000 Franz Kurfess Processes 25 Operating System Control Structures used to maintain information about important entities and activities in the computer system management of processes and resources information about the status of processes and devices usually stored in tables, possibly with pointers to further information cross-references must exist between different tables the OS must know the basic configuration of the computer system © 2000 Franz Kurfess Processes 26 OS Control Structures Memor y Tables Devic e Tables File Tables Memory Devices Files Processes Process Image Process 1 Process Image Process Tables Process 1 Process 2 Process 3 Process n . . . Process n © 2000 Franz Kurfess [adapted from Stallings 98] Processes 27 Memory Tables used to keep track of memory usage allocation OS and user processes allocation of secondary memory to processes swap space or virtual memory protection of main memory to processes attributes of memory segments access permissions © 2000 Franz Kurfess Processes 28 I/O Tables used for the management of I/O devices allocation of devices to processes status of devices available, allocated to a process I/O operation in progress memory segment involved in the I/O operation in some operating systems, I/O devices are integrated into the file system © 2000 Franz Kurfess Processes 29 File Tables used for the management of files and directories access file information for files name, path location on secondary memory status information open, closed processes using the file © 2000 Franz Kurfess Processes 30 Process Tables used for the management of processes location of the process main memory, secondary storage process attributes process identification (pid) unique number, often used as index into the process table parent process, affiliated user, children © 2000 Franz Kurfess Processes 31 Process Image user program program user to be executed data program system data, user stack, modifiable parts of the program stack parameters, procedure call and return addresses at least one per process process control block essential © 2000 Franz Kurfess process data needed by the OS Processes 32 Process Control Block process identification processor state information process control information © 2000 Franz Kurfess Processes 33 Process Identification process id, parent process, user id used by the operating system for all activities involving processes process management, main memory, I/O devices, interprocess communication cross-reference to between process and other OS tables © 2000 Franz Kurfess Processes 34 Processor State Information user registers registers system available to the user program registers used for control and status information program counter, condition codes (e.g. division by zero, overflow), status register (interrupt enabled, system/user mode) stack pointers points to the top of system stacks these stacks contain parameters, procedure call and return addresses, and execution-related data © 2000 Franz Kurfess Processes 35 Process Control Information scheduling process process and state information state, priority, time in ready queue, etc. relations links to other processes (waiting queues, parent/child)interprocess communications flags, signals, messages, shared memory process privileges memory memory access, instruction execution, resources management pointers to memory segments used by the process resources ownership © 2000 Franz Kurfess and utilization of resources Processes 36 Processes and Address Spaces Process 1 Process 2 Process n Process Identification Process State Information Process Control Information Process Identification Process State Information Process Control Information Process Identification Process State Information Process Control Information System Stack System Stack System Stack User Stack User Stack Process Control Block User Stack User Address Space Shared Address Space © 2000 Franz Kurfess User Address Space User Address Space Shared Address Space [adapted from Stallings 98] Processes 37 Processes in Memory Process 2 several processes need to be accomodated OS has its own memory section simplified view larger number of processes processes do not occupy one single section in memory, but several smaller ones (noncontiguous allocation) not the whole process image is always present in memory (virtual memory) © 2000 Franz Kurfess Main Memory Process n Process 1 Operating System Processes 38 Process Scheduling objective: efficient allocation of CPU processing time to processes in uniprocessor systems: multiplexing of the CPU between processes in multiprocessor systems: allocation of processes to CPUs, load balancing across CPUs, multiplexing if there are more processes than processors very important in multiprogramming and multitasking maximization of CPU utilization interaction between programs and users © 2000 Franz Kurfess Processes 39 Schedulers job scheduler long-term scheduling medium-term not CPU scheduler used in all systems scheduler short-term © 2000 Franz Kurfess scheduling Processes 40 Job Scheduler manages processes that can’t be executed immediately not enough memory available CPU load too high processes waiting for I/O are kept separately controls the degree of multiprogramming number is of processes in main memory not invoked too frequently mainly © 2000 Franz Kurfess when processes enter or leave the system Processes 41 Medium-Term Scheduler processes are temporarily moved out of main memory to secondary storage (“swapping”) memory space restrictions to improve the process mix (balance between CPU-intensive and I/O-intensive processes) determines © 2000 Franz Kurfess which processes to swap out and in Processes 42 CPU scheduler manages processes in the ready queue processes have all the resources they need, except for CPU time is invoked very frequently a process requests an I/O operation time slice of a process is over interrupt or trap OS intervention must be very fast to reduce overhead © 2000 Franz Kurfess Processes 43 Scheduling Queues first-in, first-out (FIFO) data structures used to administer the scheduling of processes types of queues job queue: newly created processes not yet ready for execution ready queue: processes in main memory and ready for execution device queue: processes waiting for a particular device event queue: processes waiting for an event queuing can diagrams display the interdependencies be derived from the process state diagram © 2000 Franz Kurfess Processes 44 Two-State Process Model Process State Diagram admission dispatch not running running release pause Queuing Diagram admission © 2000 Franz Kurfess release dispatch Queue CPU pause [adapted from Stallings 98] Processes 45 Five-State Process Model new terminated admission release dispatch ready running time-out I/O or event completion © 2000 Franz Kurfess blocked I/O or event wait Processes 46 Queuing Diagram Five-State admission Job Queue release forward dispatch Ready Queue CPU time-out Event 1 Queue Event 2 Queue I/O or event completion © 2000 Franz Kurfess . . . Event n Queue I/O or event wait Processes 47 Context Switch the execution of one process on the CPU is halted, and the CPU continues with another information about the old process must be saved saved information about the new process must be restored highly dependent on hardware support multiple sets of registers special instructions, e.g. to load and store registers context switching time is pure overhead no productive work is done should be kept as low as possible © 2000 Franz Kurfess Processes 48 Threads reduce the overhead of context switching only essential information about individual threads is saved for a thread switch program counter, register set, stack other information is shared by a group of threads within a process or task code section, data section, resources enable asynchronous and distributed processing support modular programs also sometimes referred to as lightweight processes © 2000 Franz Kurfess Processes 49 Types of Threads user-level threads managed by the user process instead of the OS uses user-level libraries instead of system calls often more efficient since the OS is not involved can be difficult to program kernel-level threads scheduled by the OS threads may be distributed over several processors © 2000 Franz Kurfess Processes 50 Multithreaded Process Model Process Process Identification Process State Information Process Control Information Process Control Block User Address Space Shared Address Space © 2000 Franz Kurfess Thread 1 Thread 2 Thread 3 Thread Identification Thread State Information Thread Control Information Thread Identification Thread State Information Thread Control Information Thread Identification Thread State Information Thread Control Information User Stack User Stack User Stack System Stack System Stack System Stack [adapted from Stallings 98] Processes 51 Cooperating Processes processes existing simultaneously may be independent or cooperating processes independent: not affected by the execution of other processes in the system processes are not completely independent since they have to share resources cooperating: influences the execution of other processes information sharing computation speedup modularity © 2000 Franz Kurfess Processes 52 Example: Producer-Consumer a producer process produces data that is consumed by a consumer process a buffer is used to allow producer and consumer processes to run concurrently unbounded buffer: unlimited size bounded buffer: limited size explicitly coded (shared memory) or provided by the OS (interprocess communication) shared data are accessed through regular memory read and write operations © 2000 Franz Kurfess Processes 53 Interprocess Communication mechanisms for processes to communicate and synchronize their activities does not rely on shared variables or shared memory communication links must be established between processes basic operations send(message) receive(message) © 2000 Franz Kurfess Processes 54 Direct Communication processes must explicitly name the recipient or sender of the messages send(receiver, message) receive(sender, message) processes must know each other’s identity properties of direct links links are established automatically by the OS one link between a pair of processes a link is associated with exactly two processes © 2000 Franz Kurfess Processes 55 Indirect Communication messages are sent to and received from mailboxes send(mailbox_1, message) receive(mailbox_1 , message) processes can communicate only if they share a mailbox properties of direct links links are established only if there is a common mailbox mailboxes are created by the OS there may be several links between a pair of processes a mailbox may be associated with several processes © 2000 Franz Kurfess Processes 56 Important Concepts and Terms address space CPU scheduler computer system context switch graphical user interface hardware interprocess communication job kernel-level thread lightweight process link mailbox message message passing © 2000 Franz Kurfess multiprocessing multiprogramming multitasking multithreading port process register resources, services scheduling shared memory stack task thread user-level thread Processes 57 Chapter Summary Processes a process is a program in execution it is the dynamic entity associated with a static program a process requires resources a CPU time, main memory, I/O devices process can be in one of several states new, ready, running, blocked, terminated process control block contains important information processes short, are scheduled for execution medium, long term scheduling processes can run concurrently independent or cooperating multiplexing in a single-processor system © 2000 Franz Kurfess Processes 58