0% found this document useful (0 votes)
42 views

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
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

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
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