0% found this document useful (0 votes)
58 views23 pages

OSS - Lecture 02-1 - Processes Threads

The document discusses processes and threads in operating systems. It defines a process as a program in execution that forms the basis of computation. Key process concepts covered include scheduling, creation/termination, and communication. The document also describes process states, process control blocks (PCBs), and how threads allow multiple execution points within a process. It discusses process scheduling and different types of schedulers. Finally, it covers operations on processes like creation, termination, and a multiprocessor browser architecture.

Uploaded by

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

OSS - Lecture 02-1 - Processes Threads

The document discusses processes and threads in operating systems. It defines a process as a program in execution that forms the basis of computation. Key process concepts covered include scheduling, creation/termination, and communication. The document also describes process states, process control blocks (PCBs), and how threads allow multiple execution points within a process. It discusses process scheduling and different types of schedulers. Finally, it covers operations on processes like creation, termination, and a multiprocessor browser architecture.

Uploaded by

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

Operating System Security

IKB20103

Processes & Threads


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
Process Concept
 An operating system executes a variety of programs:
 Batch system – jobs
the execution of a series of jobs in a program on a computer without
manual intervention (non-interactive). Ex. System update
 Time-shared systems – user programs or tasks
 Process – a program in execution; process execution must
progress in sequential fashion
 Main concepts:
 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 (Cont.)
 Program is passive entity stored on disk (executable
file), process is active
 Program becomes process when executable file
loaded into memory
 Execution of program started by using mouse click
 One program can be several processes
Process in Memory

Function parameters, return


addresses, local variables

containing memory dynamically


allocated during run time

User data

program code
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
Process Control Block (PCB)
Information associated with each process
(also called process control block(PCB))
 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(passed since start, time limits
 I/O status information – I/O devices allocated to
process, list of open files
CPU Switch From Process to Process
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
 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
Ready Queue And Various I/O Device Queues
Representation of Process Scheduling
Queueing diagram represents queues, resources, flows
Schedulers
 Short-term scheduler (or CPU scheduler) – selects which
process should be executed next and allocates CPU
 Sometimes the only scheduler in a system
 Short-term scheduler is invoked frequently (milliseconds)  (must be fast)
 Long-term scheduler (or job scheduler) – selects which
processes should be brought into the ready queue
 Long-term scheduler is invoked infrequently (seconds, minutes)  (may be
slow)
 The long-term scheduler controls the degree of multiprogramming
 Processes can be described as either:
 I/O-bound process – spends more time doing I/O than computations, many
short CPU bursts
 CPU-bound process – spends more time doing computations; few very long
CPU bursts
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
Operations on Processes

 System must provide mechanisms for:


 process creation,
 process termination,
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
A Tree of Processes in Linux
i ni t
pi d = 1

l ogi n kt hr e add s s hd
pi d = 8415 pi d = 2 pi d = 3028

bas h khe l pe r pdf l us h s s hd


pi d = 8416 pi d = 6 pi d = 200 pi d = 3610

e mac s t cs ch
ps
pi d = 9204 pi d = 4005
pi d = 9298
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
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.
Multiprocessor 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 multiprocessor with 2 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
Q&A

You might also like