Chapter 3: Processes: Process concept and process scheduling PDF
Document Details
Uploaded by SatisfyingLogarithm2261
University of Southern Mindanao
2018
Tags
Summary
This document summarizes Chapter 3 from the "Operating System Concepts" textbook, focusing on process concepts, including process scheduling, interprocess communication, and client-server communication.
Full Transcript
Chapter 3: Processes: Process concept and process scheduling Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018 Outline ▪ Process Concept ▪ Process Scheduling ▪...
Chapter 3: Processes: Process concept and process scheduling 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 ▪ 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 – 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 Represented by the C structure task_struct pid t_pid; long state; unsigned int time_slice struct task_struct *parent; struct list_head children; struct files_struct *files; struct mm_struct *mm; Operating System Concepts – 10th Edition 3.12 Silberschatz, Galvin and Gagne ©2018 Process Scheduling ▪ Process scheduler selects among available processes for next execution on CPU core ▪ Goal -- Maximize CPU use, quickly switch processes onto CPU core ▪ Maintains scheduling queues of processes Ready queue – set of all processes residing in main memory, ready and waiting to execute Wait queues – set of processes waiting for an event (i.e., I/O) Processes migrate among the various queues Operating System Concepts – 10th Edition 3.13 Silberschatz, Galvin and Gagne ©2018 Ready and Wait Queues Operating System Concepts – 10th Edition 3.14 Silberschatz, Galvin and Gagne ©2018 Representation of Process Scheduling Operating System Concepts – 10th Edition 3.15 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.16 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.17 Silberschatz, Galvin and Gagne ©2018 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 – 10th Edition 3.18 Silberschatz, Galvin and Gagne ©2018 End of ILO CO2 – 3.1 Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018