Unit I-Processes and Threads Operating System:: V+ Team
Unit I-Processes and Threads Operating System:: V+ Team
COM
Operating System:
A program that acts as an intermediary between a user of a computer and the computer hardware
Operating system
-Controls and coordinates use of hardware among various applications and users
Application programs – define the ways in which the system resources are used to solve
the computing problems of the users
-Word processors, compilers, web browsers, database systems, video games
Users
-People, machines, other computers
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
User View
System View
System Goals:
Convenience and Efficiency
Mainframe System
Batch System
Operating System
Multiprogrammed System
Operating System
Job 1
Job 2
Job 3
Job 4
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Desktop System
Personal computers – computer system dedicated to a single user.
I/O devices – keyboards, mice, display screens, small printers.
User convenience and responsiveness.
Can adopt technology developed for larger operating system’ often individuals have sole
use of computer and do not need advanced CPU utilization of protection features.
May run several different types of operating systems (Windows, MacOS, UNIX, Linux
Multiprocessor System
Three Advantages
o Increased throughput
o Economy of scale
o Increased reliability
Distriduted System:
Computer-System Operation
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Interrupt transfers control to the interrupt service routine generally, through the interrupt
vector, which contains the addresses of all the service routines
Interrupt architecture must save the address of the interrupted instruction
Incoming interrupts are disabled while another interrupt is being processed to prevent a
lost interruptnA trap is a software-generated interrupt caused either by an error or a user
request
Interrupt Handling
The operating system preserves the state of the CPU by storing registers and the program
counter
Determines which type of interrupt has occurred:
polling
vectored interrupt system
Separate segments of code determine what action should be taken for each type of
interrupt
I/O Structure
After I/O starts, control returns to user program only upon I/O completion
Wait instruction idles the CPU until the next interrupt
Wait loop (contention for memory access)
At most one I/O request is outstanding at a time, no simultaneous I/O processing
After I/O starts, control returns to user program without waiting for I/O completion
System call – request to the operating system to allow user to wait for I/O completion
Device-status table contains entry for each I/O device indicating its type, address, and
state
Operating system indexes into I/O device table to determine device status and to modify
table entry to include interrupt
Process Management
A process is a program in execution. It is a unit of work within the system. Program is a
passive entity, process is an active entity.
Process needs resources to accomplish its task
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Memory Management
All data in memory before and after processing
All instructions in memory in order to execute
Memory management determines what is in memory when
Optimizing CPU utilization and computer response to users
Memory management activities
Keeping track of which parts of memory are currently being used and by whom
Deciding which processes (or parts thereof) and data to move into and out of memory
Allocating and deallocating memory space as needed
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
I/O operations - A running program may require I/O, which may involve a file or an I/O
device
File-system manipulation - The file system is of particular interest. Obviously, programs
need to read and write files and directories, create and delete them, search them, list file
Information, permission management.
One set of operating-system services provides functions that are helpful to the user.
Communications – Processes may exchange information, on the same computer or
between computers over a network
Communications may be via shared memory or through message passing (packets moved
by the OS)
o For each type of error, OS should take the appropriate action to ensure correct and
consistent computing
o Debugging facilities can greatly enhance the user’s and programmer’s abilities to
efficiently use the system
Another set of OS functions exists for ensuring the efficient operation of the system itself
via resource sharing
Resource allocation - When multiple users or multiple jobs running concurrently,
resources must be allocated to each of them
Many types of resources - Some (such as CPU cycles, main memory, and file storage)
may have special allocation code, others (such as I/O devices) may have general request
and release code
Accounting - To keep track of which users use how much and what kinds of computer
resources
Protection and security - The owners of information stored in a multiuser or networked
computer system may want to control use of that information, concurrent processes
should not interfere with each other
Protection involves ensuring that all access to system resources is controlled
Security of the system from outsiders requires user authentication, extends to defending
external I/O devices from invalid access attempts
If a system is to be protected and secure, precautions must be instituted throughout it. A
chain is only as strong as its weakest link.
System Calls
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Mostly accessed by programs via a high-level Application Program Interface (API) rather
than direct system call usenThree most common APIs are Win32 API for Windows,
POSIX API for POSIX-based systems (including virtually all versions of UNIX, Linux,
and Mac OS X), and Java API for the Java virtual machine (JVM)
Why use APIs rather than system calls?(Note that the system-call names used throughout
this text are generic)
Often, more information is required than simply identity of desired system call
Exact type and amount of information vary according to OS and call
Three general methods used to pass parameters to the OS
Simplest: pass the parameters in registers
In some cases, may be more parameters than registers
Parameters stored in a block, or table, in memory, and address of block passed as a
parameter in a register
This approach taken by Linux and Solaris
Parameters placed, or pushed, onto the stack by the program and popped off the stack by
the operating system
Block and stack methods do not limit the number or length of parameters being passed
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Process control
File management
Device management
Information maintenance
Communications
System Programs
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
o Some of them are simply user interfaces to system calls; others are considerably
more complex
File management - Create, delete, copy, rename, print, dump, list, and generally
manipulate files and directories
Status information
o Some ask the system for info - date, time, amount of available memory, disk
space, number of users
o Others provide detailed performance, logging, and debugging information
o Typically, these programs format and print the output to the terminal or other
output devices
o Some systems implement a registry - used to store and retrieve configuration
information
File modification
o Text editors to create and modify files
o Special commands to search contents of files or perform transformations of the
text
Programming-language support - Compilers, assemblers, debuggers and interpreters
sometimes provided
Program loading and execution- Absolute loaders, relocatable loaders, linkage editors,
and overlay-loaders, debugging systems for higher-level and machine language
Communications - Provide the mechanism for creating virtual connections among
processes, users, and computer systems
o Allow users to send messages to one another’s screens, browse web pages, send
electronic-mail messages, log in remotely, transfer files from one machine to
another
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
SYSTEM Structure
Simple Structure
MS-DOS – written to provide the most functionality in the least space
o Not divided into modules
o Although MS-DOS has some structure, its interfaces and levels of functionality
are not well separated
Layered Approach
The operating system is divided into a number of layers (levels), each built on top of
lower layers. The bottom layer (layer 0), is the hardware; the highest (layer N) is the user
interface.
With modularity, layers are selected such that each uses functions (operations) and
services of only lower-level layers
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Virtual Machines
A virtual machine takes the layered approach to its logical conclusion. It treats hardware
and the operating system kernel as though they were all hardware
The operating system creates the illusion of multiple processes, each executing on its own
processor with its own (virtual) memory
The resources of the physical computer are shared to create the virtual machines
o CPU scheduling can create the appearance that users have their own processor
o Spooling and a file system can provide virtual card readers and virtual line
printers
The virtual-machine concept provides complete protection of system resources since each
virtual machine is isolated from all other virtual machines. This isolation, however,
permits no direct sharing of resources.
The virtual machine concept is difficult to implement due to the effort required to provide
an exact duplicate to the underlying machine
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Process Concept
A process includes:
o program counter
o stack
o data section
Process State
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Schedulers
Long-term scheduler (or job scheduler) – selects which processes should be brought
into the ready queue
I/O-bound process – spends more time doing I/O than computations, many short
CPU bursts
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
CPU-bound process – spends more time doing computations; few very long CPU
bursts
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
Context-switch time is overhead; the system does no useful work while switching
Operations on Processes:
Process Creation
Resource sharing
Execution
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Address space
UNIX examples
o exec system call used after a fork to replace the process’ memory
space with a new program
int main()
Pid_t pid;
pid = fork();
exit(-1);
wait (NULL);
exit(0);
Process Termination
Process executes last statement and asks the operating system to delete it
(exit)
o If parent is exiting
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Cooperating Processes
o Information sharing
o Computation speed-up
o Modularity
o Convenience
Producer-Consumer Problem
Shared data
#define BUFFER_SIZE 10
Typedef struct {
...
} item;
item buffer[BUFFER_SIZE];
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
int in = 0;
int out = 0;
The code for the producer and consumer processes follows.The producer process
has a local variable nextProduced in which the new item to be produced is stored:
while (true) {
/* Produce an item */
buffer[in] = item;
The consumer process has a local variable nextConsumed in which the item to be
consumed is stored:
while (true) {
item = buffer[out];
return item;
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Message system – processes communicate with each other without resorting to shared
variables
receive(message)
IPC-Message Passing
Mechanism for processes to communicate and to synchronize their actions
Message system – processes communicate with each other without resorting to shared
variables
IPC facility provides two operations:
send(message) – message size fixed or variable
receive(message)
If P and Q wish to communicate, they need to:
establish a communication link between them
exchange messages via send/receive
Implementation of communication link
physical (e.g., shared memory, hardware bus)
logical (e.g., logical properties)
IPC-Naming
Processes that want to communicate must have a way to refer to each other. They can use either
direct or indirect communication.
Direct Communication
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Indirect Communication
Messages are directed and received from mailboxes (also referred to as ports)
Operations
destroy a mailbox
Mailbox sharing
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Solutions
Allow the system to select arbitrarily the receiver. Sender is notified who the receiver
was.
IPC-Synchronization
Message passing may be either blocking or non-blocking
Blocking send has the sender block until the message is received
Non-blocking send has the sender send the message and continue
IPC-Buffering
Queue of messages attached to the link; implemented in one of three ways
Bounded capacity – finite length of n messages. Sender must wait if link full
Sockets
A socket is defined as an endpoint for communication
Socket Communication
The client-side stub locates the server and marshalls the parameters.
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
The server-side stub receives this message, unpacks the marshalled parameters, and
peforms the procedure on the server.
Execution of RPC
RMI allows a Java program on one machine to invoke a method on a remote object.
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Marshalling Parameters
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
The server creates two private communication ports and returns the handle to one of
them to the client
The client and server use the corresponding port handle to send messages or callbacks
and to listen for replies
Threads
To introduce the notion of a thread — a fundamental unit of CPU utilization that forms
the basis of multithreaded computer systems
To discuss the APIs for the Pthreads, Win32, and Java thread libraries
To examine issues related to multithreaded programming
Overview
A thread, sometimes called a lightweight process (LWP),is basic unit of CPU utilization;
it comprises a thread, a program counter, a register set, and a stack.
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
A traditional (or heavyweight) process has single thread of control. If the process has
multiple threads of control, it can do more than one task at a time.
Motivation
Many software packages that run on modern desktop PCs are multithreaded.
Benefits:
Responsiveness
Resource Sharing
Economy
User Threads
Thread management done by user-level threads library
POSIX Pthreads
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Win32 threads
Java threads
Kernel Threads
Examples
Windows XP/2000
Solaris
Linux
Tru64 UNIX
Mac OS X
Multithreading Models
Many-to-One
One-to-One
Many-to-Many
Many-to-One
Examples:
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
One-to-One
Examples
Windows NT/XP/2000
Linux
Many-to-Many Model
Two-level Model
Examples
IRIX
HP-UX
Tru64 UNIX
Solaris 8 and earlier
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Threading Issues
Semantics of fork() and exec() system calls
Thread cancellation
Signal handling
Thread pools
Scheduler activations
If exec is called immediately after forking, then duplicating all threads is unnecessary, as
the program specified in the parameters to exec will replace the process.
Thread Cancellation
Signal Handling
Signals are used in UNIX systems to notify a process that a particular event has occurred
3. Signal is handled
Options:
Thread Pools
Advantages:
o Usually slightly faster to service a request with an existing thread than create a
new thread
o Allows the number of threads in the application(s) to be bound to the size of the
pool
Useful when you do not have control over the thread creation process (i.e., when using a
thread pool)
Scheduler Activations
Both M:M and Two-level models require communication to maintain the appropriate
number of kernel threads allocated to the application
This communication allows an application to maintain the correct number kernel threads
A POSIX standard (IEEE 1003.1c) API for thread creation and synchronization
Windows XP Threads
o A thread id
o Register set
The register set, stacks, and private storage area are known as the context of the threads
WWW.VIDYARTHIPLUS.COM V+ TEAM
WWW.VIDYARTHIPLUS.COM
Linux Threads
clone() allows a child task to share the address space of the parent task (process)
Java Threads
WWW.VIDYARTHIPLUS.COM V+ TEAM