26
06/27/22 1 Processes ICS 240: Operating Systems William Albritton Information and Computer Sciences Department at Leeward Community College Original slides by Silberschatz, Galvin, and Gagne ©2007 from Operating System Concepts with Java, 7th Edition with some modifications Also includes material by Dr. Susan Vrbsky from the Computer Science Department at the University of Alabama

11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

Embed Size (px)

Citation preview

Page 1: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 1

Processes• ICS 240: Operating Systems

– William Albritton• Information and Computer Sciences

Department at Leeward Community College– Original slides by Silberschatz, Galvin, and Gagne

©2007 from Operating System Concepts with Java, 7th Edition with some modifications

– Also includes material by Dr. Susan Vrbsky from the Computer Science Department at the University of Alabama

Page 2: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 2

Process Concept• The main components of a process include

– Program counter (instruction pointer – IP register)• Contains the address of the next instruction in the program • Also has other data in the CPU’s registers

– Data section• Global data (static variables in Java)

– Code section• All the code in a program

– Stack (runtime stack)• Temporary data for method calls such as parameters, return

address, local variables, and return value

– Heap • Dynamically allocated memory for a running process• The data for Java objects is stored here

Page 3: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 3

Process Concept• A process is a program in execution

– Textbook uses the terms job and process almost interchangeably

– The main components of a process include• Program counter (instruction pointer – IP register)• Data section• Code section• Stack • Heap

Page 4: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/2304/20/23 4

Process Management• A process is a program in execution.

– It is a unit of work within the system.

• A program is a passive entity, process is an active entity.

• Process needs resources to accomplish its task– CPU, memory, I/O, files

• Process termination requires reclaim of any reusable resources

Page 5: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 5

Process in Memory

Page 6: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 6

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

Page 7: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 7

Diagram of Process State

Page 8: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 8

Process Control Block (PCB)

• Information associated with each process is stored in a process control block (PCB)

• Information includes1. Process state

• New, ready, running, waiting, etc.

2. Program counter• Register containing the address of the next instruction

3. CPU registers• Different registers contain sums, index to array

elements, runtime stack addresses, etc.

Page 9: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 9

Process Control Block (PCB)• Information includes

4. CPU scheduling information• Such information as process priority, addresses to

scheduling queues (lines), etc.

5. Memory-management information• Information about where the data is stored

6. Accounting information• Time limits, account numbers, process numbers, etc.

7. I/O status information• List of I/O devices, open files, etc.

Page 10: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 10

Process Control Block (PCB)

Page 11: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 11

Process to Process CPU Switch

Page 12: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 12

Process Scheduling Queues

• Processes migrate among the various queues– 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

• Note that queue is a fancy word for line– As in a line (queue) of people waiting to buy

movie tickets

Page 13: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 13

Ready Queue And Various I/O Device Queues

Page 14: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 14

Schedulers

• Long-term scheduler (or job scheduler) – selects which processes should be brought into the

ready queue

• Short-term scheduler (or CPU scheduler)– selects which process should be executed next and

allocates the CPU to one of them

• Medium-term scheduler– remove process from memory to disk and later

returns the process back to memory (swapping)• helps to free up memory

Page 15: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 15

Schedulers

• Short-term scheduler is invoked very frequently– In milliseconds, because must be fast

• Long-term scheduler is invoked very infrequently– In seconds, or minutes, because may be slow– The long-term scheduler controls the degree of

multiprogramming (number of processes in memory)

• Long-term scheduler may only need to be invoked when a process leaves the system

Page 16: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 16

Schedulers

• Processes can be described as either1. I/O-bound process

• Spends more time doing I/O than computations, many short CPU bursts

2. CPU-bound process• spends more time doing computations; few very long

CPU bursts

• Long-term scheduler balances the system– By selecting a good process mix of both I/O-

bound and CPU-bound processes

Page 17: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 17

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

• the system does no useful work while switching

– Time dependent on hardware support

Page 18: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 18

PID

• On the UNIX & Windows operating systems, each process is assigned a unique number – Called a process identifier (PID)

• UNIX command to list user processes– ps

• UNIX command to list all processes– ps -el

– To view the processes on the Windows, press the three keys ctrl-alt-delete

• Then press Task Manager

Page 19: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 19

Process Creation• Parent process create children processes,

which, in turn create other processes, forming a tree of processes

• Three possibilities for Resource sharing– Parent and children share all resources– Children share subset of parent’s resources– Parent and child share no resources

Page 20: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 20

A tree of processes on a typical Solaris•The Solaris Operating System is a Unix-based operating system by Sun Microsystems

Page 21: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 21

Process Creation (Cont.)• Two possibilities for execution

– Parent and children execute concurrently– Parent waits until children terminate

• Two possibilities for address space– Child duplicate of parent– Child has a program loaded into it

Page 22: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 22

Process Termination• Process executes last statement and asks the

operating system to delete it (exit)– Status value returned to parent process– Process resources are deallocated by OS

• Parent may terminate execution of children processes (abort)– Child has exceeded allocated resources– Task assigned to child is no longer required– If parent is exiting

• Some operating system do not allow child to continue if its parent terminates

– All children terminated - cascading termination

Page 23: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 23

Interprocess Communication• Mechanisms to allow processes to

communicate 1. shared memory

• two processes read & write to the shared region

2. message passing• two processes exchange data with messages

Page 24: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 24

Interprocess CommunicationMessage Passing Shared Memory

Page 25: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 25

Shared Memory

• Producer-Consumer Problem– Paradigm for cooperating processes, producer

process produces information that is consumed by a consumer process

– For example, a web server produces HTML files & images, which a web browser consumes

• unbounded-buffer places no practical limit on the size of the buffer

• bounded-buffer assumes that there is a fixed buffer size

Page 26: 11/13/20151 Processes ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original

04/20/23 26

Message Passing• Processes communicate with each other without

resorting to shared variables• Message passing facility provides two operations:

– send(message) – message size can be 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

• For example, a chat program on the Internet communicates by exchanging messages