0% found this document useful (0 votes)
4 views24 pages

Processes of Operating System

The document provides an overview of operating systems, focusing on processes, their states, and management through process control blocks. It discusses process creation, termination, and interprocess communication, highlighting the differences in multitasking between mobile systems like iOS and Android. Additionally, it covers the architecture of multiprocess systems, such as the Chrome browser, and the importance of process scheduling and context switching.

Uploaded by

EmG Z
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views24 pages

Processes of Operating System

The document provides an overview of operating systems, focusing on processes, their states, and management through process control blocks. It discusses process creation, termination, and interprocess communication, highlighting the differences in multitasking between mobile systems like iOS and Android. Additionally, it covers the architecture of multiprocess systems, such as the Chrome browser, and the importance of process scheduling and context switching.

Uploaded by

EmG Z
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Introduction to Operating Systems

DLSU - CCS College of Computer Studies


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
Process Concept
● 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
Process In Memory
Memory Layout of a C Program
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
Process State
Process Control Block
● 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
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
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
Ready and Wait queues
Ready and Wait queues
Context Switch
● CPU switches from one process to another
Process Scheduling
● 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
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
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
● Address space
○ Child duplicate of parent
○ Child has a program loaded into it
● UNIX
○ fork() system call creates new process
○ exec() system call used after a fork() to load a new
program
○ Parent process calls wait() waiting for the child to
terminate
Process Creation
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
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
Termination - Android Process Importance Hierarchy

● Mobile operating systems often have to terminate processes to reclaim


system resources such as memory. From most to least important:
○ Foreground process
○ Visible process
○ Service process
○ Background process
○ Empty process
● Android will begin terminating processes that are least important.
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
Interprocess Communication (IPC)
● 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
○ Computation speedup
○ Modularity
○ Convenience
● Cooperating processes need interprocess communication (IPC)
● Two models of IPC
○ Shared memory
○ Message passing
Interprocess Communication (IPC)
References
Silberschatz, A., Galvin, P. B., Gagne, G. (2014)
Operating Systems Concepts (10th ed.).
John-Wiley and Sons.

You might also like