66
Ch4 Process and Operating System

Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Embed Size (px)

Citation preview

Page 1: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Ch4 Process and Operating System

Page 2: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling policies:

RMS; EDF.

Interprocess communication.

Page 3: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Multi-task System

Multiple tasks manage timing complexity:

multiple rates multimedia automotive

asynchronous input user interfaces communication systems

Page 4: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Life without processes Code turns into a

mess: interruptions of

one task for another

spaghetti code

time A

B

C

A

C

A_code();…B_code();…if (C) C_code();…A_code();…switch (x) { case C: C(); case D: D(); ...

Page 5: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Co-routines

ADR r14,co2aco1a …

ADR r13,co1bMOV r15,r14

co1b …ADR r13,co1cMOV r15,r14

co1c ...

co2a …ADR r14,co2bMOV r15,r13

co2b …ADR r14,co2cMOV r15,r13

co2c …

Co-routine 1 Co-routine 2

Page 6: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Co-routine methodology

Like subroutine, but caller determines the return address.

Co-routines voluntarily give up control to other co-routines.

Pattern of control transfers is embedded in the code.

Page 7: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Foreground/background system

又称超循环系统 (super loops)

应用程序是一个无限循环,循环中调用相应的函数完成相应的操作,可以看作后台行为 ( 任务级 ) ;中断服务程序处理异步事件,可以看作前台行为( 中断级 ) 。

Page 8: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Processes A process is a unique execution of a

program. Several copies of a program may run

simultaneously or at different times. A process has its own state:

registers; memory.

The operating system manages processes.

Page 9: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Processes and CPUs Activation

record: copy of process state.

Context switch: current CPU

context goes out;

new CPU context goes in.

CPU

PC

registers

process 1

process 2

...

memory

Page 10: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Terms

Thread = lightweight process: a process that shares memory space with other processes.

Reentrancy: ability of a program to be executed several times with the same results.

Page 11: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

可重入函数 可重入函数:可以被多个进程同时调用

不必担心数据破坏的函数。 两种情况:

只使用局部变量,即变量保存在寄存器或堆栈中;

使用全局变量,则对全局变量进行保护

Page 12: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Examples

Page 13: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Processes in POSIX Create a process

with fork: parent process

keeps executing old program;

child process executes new program.

process a

process a process b

Page 14: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

fork()

The fork process creates child:

childid = fork();if (childid == 0) {

/* child operations */} else {

/* parent operations */}

Page 15: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

execv() Overlays child code:childid = fork();if (childid == 0) {

execv(“mychild”,childargs);perror(“execv”);exit(1);

}

file with child code

Page 16: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Context switching

Who controls when the context is switched?

How is the context switched?

Page 17: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Co-operative multitasking

Improvement on co-routines: hides context switching mechanism; still relies on processes to give up CPU.

Each process allows a context switch at cswitch() call.

Separate scheduler chooses which process runs next.

Page 18: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Problems with co-operative multitasking

Programming errors can keep other processes out: process never gives up CPU; process waits too long to switch,

missing input.

Page 19: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Preemptive multitasking

Most powerful form of multitasking: OS controls when contexts switches; OS determines what process runs next.

Use timer to call OS, switch contexts:

CPU tim

er

interrupt

Page 20: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Flow of control with preemption

time

P1 OS P1 OS P2

interrupt interrupt

Page 21: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Preemptive context switching

Timer interrupt gives control to OS, which saves interrupted process’s state in an activation record.

OS chooses next process to run. OS installs desired activation

record as current CPU state.

Page 22: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Context switching

Must copy all registers to activation record, keeping proper return value for PC.

Must copy new activation record into CPU state.

Page 23: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Context switching in ARM

Save old process:

STMIA r13,{r0-r14}^

MRS r0,CPSRSTMDB r13,{r0,r15}

Start new process:

ADR r0,NEXTPROCLDR r13,[r0]LDMDB r13,{r0,r14}MSR CPSR,r0LDMIA r13,{r0-r14}^MOVS pc,r14

Page 24: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Processes and UML

A process is an active class---independent thread of control.

processClass1

myOperations()

startresume

myAttributes

Signals

Page 25: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

UML signals

Signal: object that is passed between processes for active communication:

acomm: datasignal

Page 26: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Designing with active objects

Can mix normal and active objects:

p1: processClass1

master: masterClass

w: wrapperClass

a: rawMsg

ahat: fullMsg

Page 27: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Operating systems The operating system controls

resources: who gets the CPU; when I/O takes place; how much memory is allocated.

The most important resource is the CPU itself. CPU access controlled by the

scheduler.

Page 28: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Process state A process can be

in one of three states: executing on the

CPU; ready to run; waiting for data.

executing

ready waiting

gets dataand CPU

needsdata

gets data

needs data

preemptedgetsCPU

Page 29: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Priority-driven scheduling

Each process has a priority. CPU goes to highest-priority

process that is ready. Priorities determine scheduling

policy: fixed priority; time-varying priorities.

Page 30: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Priority-driven scheduling example Rules:

each process has a fixed priority (1 highest); highest-priority ready process gets CPU; process continues until done.

Processes P1: priority 1, execution time 10 P2: priority 2, execution time 30 P3: priority 3, execution time 20

Page 31: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Priority-driven scheduling example

time

P2 ready t=0 P1 ready t=15

P3 ready t=18

0 3010 20 6040 50

P2 P2P1 P3

Page 32: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Operating system structure

OS needs to keep track of: process priorities; scheduling state; process activation record.

Processes may be created: statically before system starts; dynamically during execution.

Page 33: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Embedded vs. general-purpose scheduling

Workstations try to avoid starving processes of CPU access. Fairness = access to CPU.

Embedded systems must meet deadlines. Low-priority processes may not run

for a long time.

Page 34: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Interprocess communication Interprocess communication (IPC): OS

provides mechanisms so that processes can pass data.

Two types of semantics: blocking: sending process waits for respo

nse; non-blocking: sending process continues.

Page 35: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

IPC styles

Shared memory: processes have some memory in

common; must cooperate to avoid

destroying/missing messages. Message passing:

processes send messages along a communication channel---no common address space.

Page 36: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Other operating system functions

I/O Device File system Networking Security

Page 37: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Scheduling Policies

Scheduling Policy: How to choose a ready process to

execute Metrics:

Ability to satisfy all deadlines. CPU utilization---percentage of time

devoted to useful work. Scheduling overhead---time required to

make scheduling decision.

Page 38: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Rate monotonic scheduling

RMS (Liu and Layland): widely-used, analyzable scheduling policy.

Analysis is known as Rate Monotonic Analysis (RMA).

Page 39: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

RMA model

All process run on single CPU. Zero context switch time. No data dependencies between

processes. Process execution time is constant. Deadline is at end of period. Highest-priority ready process runs.

Page 40: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

RMS priorities

Optimal (fixed) priority assignment: shortest-period process gets highest

priority; priority inversely proportional to period; break ties arbitrarily.

No fixed-priority scheme does better.

Page 41: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

RMS Example

Page 238

Page 42: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Process parameters

Ti is computation time of process i; i is period of process i.

period i

Pi

computation time Ti

Page 43: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

RMS CPU utilization

Utilization for n processes is i Ti / i

As number of tasks approaches infinity, maximum utilization approaches 69%.

Page 44: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

RMS CPU utilization, cont’d.

RMS cannot use 100% of CPU, even with zero context switch overhead.

Must keep idle cycles available to handle worst-case scenario.

However, RMS guarantees all processes will always meet their deadlines.

Page 45: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

RMS implementation

Efficient implementation: scan processes; choose highest-priority active

process.

Page 46: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Earliest-deadline-first scheduling

EDF: dynamic priority scheduling scheme.

Process closest to its deadline has highest priority.

Requires recalculating processes at every timer interrupt.

Page 47: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

EDF Example

Page 241

Page 48: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

EDF analysis

EDF can use 100% of CPU. But EDF may fail to miss a

deadline.

Page 49: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

EDF implementation

On each timer interrupt: compute time to deadline; choose process closest to deadline.

Generally considered too expensive to use in practice.

Page 50: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Fixing scheduling problems

What if your set of processes is unschedulable? Change deadlines in requirements. Reduce execution times of processes. Get a faster CPU.

Page 51: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Further Analysis of Modeling Assumption Priority inversion Data dependencies Context-switching time

Page 52: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Priority inversion Priority inversion: low-priority process

keeps high-priority process from running.

Improper use of system resources can cause scheduling problems: Low-priority process grabs I/O device. High-priority device needs I/O device, but

can’t get it until low-priority process is done. Can cause deadlock.

Page 53: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Solving priority inversion

Give priorities to system resources. Have process inherit the priority of

a resource that it requests. Low-priority process inherits priority

of device if higher.

Page 54: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Data dependencies Data dependencies

allow us to improve utilization. Restrict combination

of processes that can run simultaneously.

P1 and P2 can’t run simultaneously.

P1

P2

Page 55: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Context-switching time

Non-zero context switch time can push limits of a tight schedule.

Hard to calculate effects---depends on order of context switches.

In practice, OS context switch overhead is small.

Page 56: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

POSIX scheduling policies

SCHED_FIFO: RMS SCHED_RR: round-robin

within a priority level, processes are time-sliced in round-robin fashion

SCHED_OTHER: undefined scheduling policy used to mix non-real-time and real-time processes.

Page 57: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Interprocess communication OS provides interprocess communicat

ion mechanisms: various efficiencies; communication power.

Page 58: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Signals

A Unix mechanism for simple communication between processes.

Analogous to an interrupt---forces execution of a process at a given location. But a signal is caused by one process with

a function call. No data---can only pass type of signal.

Page 59: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

POSIX signals

Must declare a signal handler for the process using sigaction().

Handler is called when signal is received.

A signal can be sent with sigqueue():sigqueue(destpid,SIGRTMAX-1,sval)

Page 60: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

POSIX signal types

SIGABRT: abort SIGTERM: terminate process SIGFPE: floating point exception SIGILL: illegal instruction SIGKILL: unavoidable process

termination SIGUSR1, SIGUSR2: user defined

Page 61: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Signals in UML

More general than Unix signal---may carry arbitrary data:

<<signal>>aSig

p : integer

someClass

sigbehavior()<<send>>

Page 62: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

POSIX shared memory

POSIX supports counting semaphores with _POSIX_SEMAPHORES option. Semaphore with N resources will not blo

ck until N processes hold the semaphore. Semaphores are given name:

/sem1 P() is sem_wait(), V() is sem_post().

Page 63: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

POSIX message-based communication

Unix pipe supports messages between processes.

Parent process uses pipe() to create a pipe. Pipe is created before child is created

so that pipe ID can be passed to child.

Page 64: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

POSIX pipe example/* create the pipe */if (pipe(pipe_ends) < 0) { perror(“pipe”); break; }/* create the process */childid = fork();if (childid == 0) { /* child reads from pipe_ends[1] */

childargs[0] = pipe_ends[1];execv(“mychild”,childargs);perror(“execv”);exit(1);

}else { /* parent writes to pipe_ends[0] */ … }

Page 65: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Evaluating performance

May want to test: context switch time assumptions; scheduling policy.

Can use OS simulator to exercise process set, trace system behavior.

Page 66: Ch4 Process and Operating System. Content Motivation for processes The process abstraction Context switching and Multitasking Operating System Scheduling

Processes and caches

Processes can cause additional caching problems. Even if individual processes are well-

behaved, processes may interfere with each other.

Worst-case execution time with bad behavior is usually much worse than execution time with good cache behavior.