







Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of processes in operating systems, covering key concepts such as process scheduling, operations on processes, and interprocess communication. It explains the process concept, including the different parts of a process like the text section, stack, data section, and heap. The document also discusses process states (new, running, waiting, ready, terminated), process control blocks (pcbs), and process scheduling, including short-term and long-term schedulers. Additionally, it touches on multitasking in mobile systems and context switching. The content is derived from 'operating system concepts' by silberschatz, galvin, and gagne, 9th edition, chapter 3, offering a structured introduction to process management.
Typology: Lecture notes
1 / 13
This page cannot be seen from the preview
Don't miss anything!








Operating System Concepts – 9th^ Edition Silberschatz, Galvin and Gagne ©
Operating System Concepts – 9th^ Edition 3.2 Silberschatz, Galvin and Gagne ©
(^) Process Concept (^) Process Scheduling (^) Operations on Processes (^) Interprocess Communication (^) Examples of IPC Systems (^) Communication in Client-Server Systems
(^) To introduce the notion of a process -- a program in execution, which forms the basis of all computation (^) To describe the various features of processes, including scheduling, creation and termination, and communication (^) To explore interprocess communication using shared memory and message passing (^) To describe communication in client-server systems
(^) An operating system executes a variety of programs: (^) Batch system – jobs (^) Time-shared systems – user programs or tasks (^) Textbook uses the terms job and process almost interchangeably (^) Process – a program in execution; process execution must progress in sequential fashion (^) Multiple parts (^) The program code, also called text section (^) Current activity including program counter, processor registers (^) Stack containing temporary data (^) Data section containing global variables (^) Heap containing memory dynamically allocated during run time
Operating System Concepts – 9th^ Edition 3.5 Silberschatz, Galvin and Gagne ©
(^) Program is passive entity stored on disk (executable file e.g. exe), process is active (^) Program becomes process when executable file loaded into memory (^) How Program Becomes a Process: (^) Execution of program started via GUI mouse clicks, command line entry of its name, etc (^) The loaded Program is now a process (^) One program –>multiple processes (^) Asdf Single program can creates a multiple processes (^) e.g. If two users open MS Word (^) Example: (^) Program: Chrome.exe (stored on disk) (^) Process: When open chrome it runs as process (chrome.exe in Task Manager) (^) Multiple Processes: Open multiple chrome tabs Operating System Concepts – 9th^ Edition 3.6 Silberschatz, Galvin and Gagne ©
(^) As a process executes, it changes state (^) new: The process is being created (^) running: Instructions are being executed (^) waiting: The process is waiting for some event to occur (^) ready: The process is waiting to be assigned to a processor (^) terminated: The process has finished execution
Operating System Concepts – 9th^ Edition 3.13 Silberschatz, Galvin and Gagne ©
(^) Maximize CPU use, quickly switch processes onto CPU for time sharing (^) Process scheduler selects among available processes for next execution on CPU (^) Maintains scheduling queues of processes (^) Job queue – set of all processes in the system (^) Ready queue – set of all processes residing in main memory, ready and waiting to execute (^) Device queues – set of processes waiting for an I/O device (^) Processes migrate among the various queues Operating System Concepts – 9th^ Edition 3.14 Silberschatz, Galvin and Gagne ©
(^) Queueing diagram represents queues, resources, flows
(^) Short-term scheduler (or CPU scheduler) – Decide which process runs next on the CPU (^) Sometimes the only scheduler in a system (^) Runs very frequently (milliseconds) (must be fast, direct impact on system performance) (^) Example: switching between multiple applications running on your PC (browser , music player etc. ) (^) Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue (^) Invoked infrequently (seconds, minutes) (may be slow) (^) Controls the degree of multiprogramming (how many processes run simultaneously) (^) Processes can be described as either: (^) I/O-bound process – spends more time doing I/O than computations, Have short CPU burst followed by long waits. Example: web browser waits for a webpage to load (^) CPU-bound process – spends more time doing computations; Have long CPU bursts with fewer interruptions Example: Video Editing, rendering, gaming etc. (^) A well-optimized OS keeps a good mix of both process types for smooth performance!
(^) Medium-term scheduler can be added if degree of multiple programming needs to decrease (^) Remove process from memory, store on disk, bring back in from disk to continue execution: swapping
Operating System Concepts – 9th^ Edition 3.17 Silberschatz, Galvin and Gagne ©
(^) Some mobile systems (e.g., early version of iOS) allow only one process to run, others suspended (^) Due to screen real estate, user interface limits iOS provides for a (^) Single foreground process- controlled via user interface (^) Multiple background processes– in memory, running, but not on the display, and with limits (^) Limits include single, short task, receiving notification of events, specific long-running tasks like audio playback (^) Android runs foreground and background, with fewer limits (^) Background process uses a service to perform tasks (^) Service can keep running even if background process is suspended (^) Service has no user interface, small memory use Operating System Concepts – 9th^ Edition 3.18 Silberschatz, Galvin and Gagne ©
(^) When CPU switches to another process, the system must save the state of the old process and load the saved state for the new process via a context switch (^) Context of a process represented in the PCB (^) Context-switch time is overhead; the system does no useful work while switching (^) The more complex the OS and the PCB the longer the context switch (^) Time dependent on hardware support (^) Some hardware provides multiple sets of registers per CPU multiple contexts loaded at once
(^) System must provide mechanisms for: (^) process creation, (^) process termination, (^) and so on as detailed next
(^) Parent process create children processes, which, in turn create other processes, forming a tree of processes (^) Generally, process identified and managed via a process identifier (pid) (^) Resource sharing options (^) Parent and children share all resources (^) Children share subset of parent’s resources (^) Parent and child share no resources (^) Execution options (^) Parent and children execute concurrently (^) Parent waits until children terminate
Operating System Concepts – 9th^ Edition 3.25 Silberschatz, Galvin and Gagne ©
(^) Many web browsers ran as single process (some still do) (^) If one web site causes trouble, entire browser can hang or crash (^) Google Chrome Browser is multiprocess with 3 different types of processes: (^) Browser process manages user interface, disk and network I/O (^) Renderer process renders web pages, deals with HTML, Javascript. A new renderer created for each website opened (^) Runs in sandbox restricting disk and network I/O, minimizing effect of security exploits (^) Plug-in process for each type of plug-in Operating System Concepts – 9th^ Edition 3.26 Silberschatz, Galvin and Gagne ©
(^) Processes within a system may be independent or cooperating (^) Cooperating process can affect or be affected by other processes, including sharing data (^) Reasons for cooperating processes: (^) Information sharing (google docs: multiple users edit the same doc.) (^) Computation speedup (video rendering: different frames processed in parallel by multiple cores) (^) Modularity (A web browser has separate processes for tabs, ensuring one crash doesn’t affect others.) (^) Convenience (Auto-save in Microsoft Word runs in the background while you continue typing) (^) Cooperating processes need interprocess communication (IPC) (^) Two models of IPC (^) Shared memory (^) Message passing Operating System Concepts – 9th^ Edition 3.28 Silberschatz, Galvin and Gagne ©
(^) Paradigm for cooperating processes, producer process produces information that is consumed by a consumer process (^) A producer generates data (e.g., a camera recording a video). (^) A consumer processes it (e.g., a video player displaying the footage). (^) They cooperate using shared memory or message passing. (^) unbounded-buffer places no practical limit on the size of the buffer (^) bounded-buffer assumes that there is a fixed buffer size
Operating System Concepts – 9th^ Edition 3.29 Silberschatz, Galvin and Gagne ©
(^) Shared Memory is an IPC mechanism where multiple processes can access a common memory region without OS intervention after it is set up. (^) The communication is under the control of the users processes not the operating system. (^) Major issues is to provide mechanism that will allow the user processes to synchronize their actions when they access shared memory. (^) Synchronization is discussed in great details in Chapter 5. Operating System Concepts – 9th^ Edition 3.30 Silberschatz, Galvin and Gagne ©
(^) Mechanism for processes to communicate and to synchronize their actions (^) Message system – processes communicate with each other without resorting to shared variables (^) IPC facility provides two operations: (^) Send (message) (^) Receive (message) (^) The message size is either fixed or variable
(^) If processes P and Q wish to communicate, they need to: (^) Establish a communication link between them (^) Exchange messages via send/receive (^) Implementation issues: (^) How are links established? (^) Can a link be associated with more than two processes? (^) How many links can there be between every pair of communicating processes? (^) What is the capacity of a link? (^) Is the size of a message that the link can accommodate fixed or variable? (^) Is a link unidirectional or bi-directional?
(^) Implementation of communication link (^) Physical: (^) Shared memory (^) Hardware bus (^) Network (^) Logical: (^) Direct or indirect (^) Synchronous or asynchronous (^) Automatic or explicit buffering
Operating System Concepts – 9th^ Edition 3.37 Silberschatz, Galvin and Gagne ©
(^) Message passing may be either blocking or non-blocking (^) Blocking is considered synchronous (^) Blocking send -- the sender is blocked until the message is received (^) Blocking receive -- the receiver is blocked until a message is available (^) Non-blocking is considered asynchronous (^) Non-blocking send -- the sender sends the message and continue (^) Non-blocking receive -- the receiver receives: (^) A valid message, or (^) Null message (^) Different combinations possible (^) If both send and receive are blocking, we have a rendezvous Operating System Concepts – 9th^ Edition 3.38 Silberschatz, Galvin and Gagne ©
(^) Queue of messages attached to the link. (^) implemented in one of three ways
(^) Sockets (^) Remote Procedure Calls (^) Pipes (^) Remote Method Invocation (Java)
Operating System Concepts – 9th^ Edition 3.41 Silberschatz, Galvin and Gagne ©
(^) A socket is defined as an endpoint for communication (^) Concatenation of IP address and port – a number included at start of message packet to differentiate network services on a host (^) The socket 161.25.19.8:1625 refers to port 1625 on host 161.25.19. (^) How Sockets Works?
(^) RPC allows a program to call a function on another machine just like a local function call. This helps in network communication between processes without worrying about the underlying details. (^) How RPC Works? (^) Client calls a function
(^) How RPC Works? (^) Server-side stub receives & executes