Process Management in Operating Systems, Lecture notes of Operating Systems

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

2021/2022

Uploaded on 07/05/2025

haider-rafi
haider-rafi 🇸🇬

5 documents

1 / 13

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Chapter 3: Processes
3.2 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Chapter 3: Processes
Process Concept
Process Scheduling
Operations on Processes
Interprocess Communication
Examples of IPC Systems
Communication in Client-Server Systems
3.3 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Objectives
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
3.4 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition
Process Concept
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd

Partial preview of the text

Download Process Management in Operating Systems and more Lecture notes Operating Systems in PDF only on Docsity!

Operating System Concepts – 9th^ Edition Silberschatz, Galvin and Gagne ©

Chapter 3: Processes

Operating System Concepts – 9th^ Edition 3.2 Silberschatz, Galvin and Gagne ©

Chapter 3: Processes

 (^) Process Concept  (^) Process Scheduling  (^) Operations on Processes  (^) Interprocess Communication  (^) Examples of IPC Systems  (^) Communication in Client-Server Systems

Objectives

 (^) 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

Process Concept

 (^) 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 ©

Process Concept (Cont.)

 (^) 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 ©

Process in Memory

Process State

 (^) 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

Diagram of Process State

Operating System Concepts – 9th^ Edition 3.13 Silberschatz, Galvin and Gagne ©

Process Scheduling

 (^) 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 ©

Representation of Process Scheduling

 (^) Queueing diagram represents queues, resources, flows

Schedulers

 (^) 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!

Addition of Medium Term Scheduling

 (^) 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 ©

Multitasking in Mobile Systems

 (^) 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 ©

Context Switch

 (^) 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

Operations on Processes

 (^) System must provide mechanisms for:  (^) process creation,  (^) process termination,  (^) and so on as detailed next

Process Creation

 (^) 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 ©

Multiprocess Architecture – Chrome Browser

 (^) 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 ©

Interprocess Communication

 (^) 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 ©

Producer-Consumer Problem

 (^) 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 ©

Interprocess Communication – Shared Memory

 (^) 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 ©

Interprocess Communication – Message Passing

 (^) 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

Message Passing (Cont.)

 (^) 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?

Message Passing (Cont.)

 (^) 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 ©

Synchronization

 (^) 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 ©

Buffering

 (^) Queue of messages attached to the link.  (^) implemented in one of three ways

  1. Zero capacity : no messages are queued on a link. Sender must wait for receiver (rendezvous)
  2. Bounded capacity : finite length of n messages Sender must wait if link full
  3. Unbounded capacity: Infinite length Sender never waits

Local Procedure Calls in Windows

Communications in Client-Server Systems

 (^) Sockets  (^) Remote Procedure Calls  (^) Pipes  (^) Remote Method Invocation (Java)

Operating System Concepts – 9th^ Edition 3.41 Silberschatz, Galvin and Gagne ©

Sockets

 (^) 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?

  • (^) Two devices establish a connection using sockets.
  • (^) A socket needs both an IP address and a port to differentiate between services.
  • (^) Communication happens between a pair of sockets (one on each device).  (^) All ports below 1024 are well known, used for standard services Operating System Concepts – 9th^ Edition 3.42 Silberschatz, Galvin and Gagne ©

Socket Communication

Remote Procedure Calls

 (^) 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

  • The client calls a function that looks like local function  (^) Client-Side Stub Handles Communication
  • (^) The function is forwarded to the client-side stub, which:
  • Locates the server
  • Converts (marshalls) parameters into a format that can be sent over the network  (^) Server-side stub receives & executes (Cont. Next Slide)

Remote Procedure Calls (Cont.)

 (^) How RPC Works?  (^) Server-side stub receives & executes

  • (^) The server-side stub receives the request,
  • (^) Unpacks (unmarshalls) the parameters
  • (^) Calls the actual function on the server  (^) Result Sent Back
  • The result is sent back to the client via the stubs
  • (^) The client receives the result as if it was a normal function call  (^) Summary:
  • (^) RPC makes remote function calls look like local calls
  • (^) Stubs handle communication (client-side & server-side)
  • (^) Marshalling converts data to a network-friendly format
  • RPC uses ports for differentiation
  • Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©
    • End of Chapter