3. 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
4. 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.
5. 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
6. 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
9. 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