CH 3
CH 3
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Outline
▪ Process Concept
▪ Process Scheduling
▪ Operations on Processes
▪ Interprocess Communication
▪ IPC in Shared-Memory Systems
▪ IPC in Message-Passing Systems
▪ Examples of IPC Systems
▪ Communication in Client-Server Systems
Operating System Concepts – 10th Edition 3.2 Silberschatz, Galvin and Gagne ©2018
Objectives
▪ Identify the separate components of a process and illustrate how they
are represented and scheduled in an operating system.
▪ Describe how processes are created and terminated in an operating
system, including developing programs using the appropriate system
calls that perform these operations.
▪ Describe and contrast interprocess communication using shared
memory and message passing.
▪ Design programs that uses pipes and POSIX shared memory to
perform interprocess communication.
▪ Describe client-server communication using sockets and remote
procedure calls.
▪ Design kernel modules that interact with the Linux operating system.
Operating System Concepts – 10th Edition 3.3 Silberschatz, Galvin and Gagne ©2018
Process Concept
▪ An operating system executes a variety of programs that run as a
process.
▪ Process – a program in execution; process execution must progress
in sequential fashion. No parallel execution of instructions of a single
process
▪ Multiple parts
• The program code, also called text section
• Current activity including program counter, processor registers
• Stack containing temporary data
Function parameters, return addresses, local variables
• Data section containing global variables
• Heap containing memory dynamically allocated during run time
Operating System Concepts – 10th Edition 3.4 Silberschatz, Galvin and Gagne ©2018
Process Concept (Cont.)
▪ Program is passive entity stored on disk (executable file);
process is active
• Program becomes process when an executable file is
loaded into memory
▪ Execution of program started via GUI mouse clicks, command
line entry of its name, etc.
▪ One program can be several processes
• Consider multiple users executing the same program
Operating System Concepts – 10th Edition 3.5 Silberschatz, Galvin and Gagne ©2018
Process in Memory
Operating System Concepts – 10th Edition 3.6 Silberschatz, Galvin and Gagne ©2018
Memory Layout of a C Program
Operating System Concepts – 10th Edition 3.7 Silberschatz, Galvin and Gagne ©2018
Process State
Operating System Concepts – 10th Edition 3.8 Silberschatz, Galvin and Gagne ©2018
Diagram of Process State
Operating System Concepts – 10th Edition 3.9 Silberschatz, Galvin and Gagne ©2018
Process Control Block (PCB)
Information associated with each process(also called task
control block)
▪ Process state – running, waiting, etc.
▪ Program counter – location of instruction to next
execute
▪ CPU registers – contents of all process-centric
registers
▪ CPU scheduling information- priorities, scheduling
queue pointers
▪ Memory-management information – memory
allocated to the process
▪ Accounting information – CPU used, clock time
elapsed since start, time limits
▪ I/O status information – I/O devices allocated to
process, list of open files
Operating System Concepts – 10th Edition 3.10 Silberschatz, Galvin and Gagne ©2018
Threads
▪ So far, process has a single thread of execution
▪ Consider having multiple program counters per process
• Multiple locations can execute at once
Multiple threads of control -> threads
▪ Must then have storage for thread details, multiple program
counters in PCB
▪ Explore in detail in Chapter 4
Operating System Concepts – 10th Edition 3.11 Silberschatz, Galvin and Gagne ©2018
Process Representation in Linux
Operating System Concepts – 10th Edition 3.14 Silberschatz, Galvin and Gagne ©2018
Ready and Wait Queues
Operating System Concepts – 10th Edition 3.15 Silberschatz, Galvin and Gagne ©2018
Representation of Process Scheduling
Operating System Concepts – 10th Edition 3.16 Silberschatz, Galvin and Gagne ©2018
CPU Switch From Process to Process
A context switch occurs when the CPU switches from
one process to another.
Operating System Concepts – 10th Edition 3.17 Silberschatz, Galvin and Gagne ©2018
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 pure 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
Operating System Concepts – 10th Edition 3.18 Silberschatz, Galvin and Gagne ©2018
Schedulers
▪ Short-term scheduler (or CPU infrequently (seconds, minutes)
scheduler) – selects which process (may be slow)
should be executed next and • The long-term scheduler controls
allocates CPU the degree of multiprogramming
• Short-term scheduler is invoked ▪ Processes can be described as
frequently (milliseconds) (must either:
be fast)
• I/O-bound process – spends more
• Sometimes the only scheduler in time doing I/O than computations,
a system many short CPU bursts
▪ Long-term scheduler (or job • CPU-bound process – spends
scheduler) – selects which processes more time doing computations;
should be brought into the ready few very long CPU bursts
queue
▪ Long-term scheduler strives for good
• Long-term scheduler is invoked process mix
▪ 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 – 10th Edition 3.21 Silberschatz, Galvin and Gagne ©2018
Operations on Processes
Operating System Concepts – 10th Edition 3.22 Silberschatz, Galvin and Gagne ©2018
Process Creation
Operating System Concepts – 10th Edition 3.23 Silberschatz, Galvin and Gagne ©2018
Process Creation (Cont.)
▪ Address space
• Child duplicate of parent
• Child has a program loaded into it
▪ UNIX examples
• fork() system call creates new process
• exec() system call used after a fork() to replace the process’
memory space with a new program
• Parent process calls wait()waiting for the child to terminate
Operating System Concepts – 10th Edition 3.24 Silberschatz, Galvin and Gagne ©2018
A Tree of Processes in Linux
Operating System Concepts – 10th Edition 3.25 Silberschatz, Galvin and Gagne ©2018
C Program Forking Separate Process
Operating System Concepts – 10th Edition 3.26 Silberschatz, Galvin and Gagne ©2018
Creating a Separate Process via Windows API
Operating System Concepts – 10th Edition 3.27 Silberschatz, Galvin and Gagne ©2018
Process Termination
▪ Process executes last statement and then asks the operating
system to delete it using the exit() system call.
• Returns status data from child to parent (via wait())
• Process’ resources are deallocated by operating system
▪ Parent may terminate the execution of children processes using
the abort() system call. Some reasons for doing so:
• Child has exceeded allocated resources
• Task assigned to child is no longer required
• The parent is exiting, and the operating systems does not
allow a child to continue if its parent terminates
Operating System Concepts – 10th Edition 3.28 Silberschatz, Galvin and Gagne ©2018
Process Termination
▪ Some operating systems do not allow child to exists if its parent
has terminated. If a process terminates, then all its children
must also be terminated.
• cascading termination. All children, grandchildren, etc.,
are terminated.
• The termination is initiated by the operating system.
▪ The parent process may wait for termination of a child process
by using the wait()system call. The call returns status
information and the pid of the terminated process
pid = wait(&status);
▪ If no parent waiting (did not invoke wait()) process is a
zombie
▪ If parent terminated without invoking wait(), process is an
orphan
Operating System Concepts – 10th Edition 3.29 Silberschatz, Galvin and Gagne ©2018
Quiz
▪ Using the program, explain what the output will be at LINE A.
Operating System Concepts – 10th Edition 3.30 Silberschatz, Galvin and Gagne ©2018