+ All Categories
Home > Documents > Implementing Processes, Threads, and Resources

Implementing Processes, Threads, and Resources

Date post: 09-Jan-2016
Category:
Upload: lottie
View: 23 times
Download: 3 times
Share this document with a friend
Description:
Implementing Processes, Threads, and Resources. P i CPU. P j CPU. P k CPU. …. P i Executable Memory. P j Executable Memory. P k Executable Memory. P i Address Space. P k Address Space. P j Address Space. Implementing the Process Abstraction. Ideal Abstraction: - PowerPoint PPT Presentation
42
Operating Systems: A Modern Perspective, Chapter 6 Slide 6- 1 Copyright © 2004 Pearson Education, Inc. Implementing Processes, Threads, and Resources
Transcript
Page 1: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-1

Copyright © 2004 Pearson Education, Inc.

ImplementingProcesses, Threads,

and Resources

Page 2: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-2

Copyright © 2004 Pearson Education, Inc.

OS AddressSpace

OS AddressSpace

Implementing the Process Abstraction

ControlUnit

OS interface

Mac

hine

Exe

cuta

ble

Mem

ory

ALU

CPUPi Address

Space

Pi AddressSpace

Pi CPU

Pi ExecutableMemory

Pi ExecutableMemory

Pk AddressSpace

Pk AddressSpace

Pk CPU

Pk ExecutableMemory

Pk ExecutableMemory

Pj AddressSpace

Pj AddressSpace

Pj CPU

Pj ExecutableMemory

Pj ExecutableMemory

Ideal Abstraction:As if using anActual machine

Page 3: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-3

Copyright © 2004 Pearson Education, Inc.

Modern process

“The value of the modern process model is that it enables the programmer to design software so that various parts of the computation can work together as a set of threads within a single modern process framework.”

Classic process can work together but they do not share a customized computational framework

Page 4: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-4

Copyright © 2004 Pearson Education, Inc.

External View of the Process Manager

Hardware

ApplicationProgram

ApplicationProgram

Dev

ice

Mgr

Pro

cess

Mgr

Mem

ory

Mgr

Fil

e M

gr

UNIXD

evic

e M

gr

Pro

cess

Mgr

Mem

ory

Mgr

Fil

e M

gr

Windows

CreateThread()CreateProcess()CloseHandle()

WaitForSingleObject()

fork()

exec()wait()

Page 5: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-5

Copyright © 2004 Pearson Education, Inc.

Process Manager Responsibilities

• Define & implement the essential characteristics of a process and thread– Algorithms to define the behavior– Data structures to preserve the state of the execution

• Define what “things” threads in the process can reference – the address space (most of the “things” are memory locations)

• Manage the resources used by the processes/threads• Tools to create/destroy/manipulate processes & threads• Tools to time-multiplex the CPU – Scheduling the

(Chapter 7)• Tools to allow threads to synchronization the operation

with one another (Chapters 8-9)• Mechanisms to handle deadlock (Chapter 10)• Mechanisms to handle protection (Chapter 14)

Page 6: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-6

Copyright © 2004 Pearson Education, Inc.

Modern Processes and Threads

OS interface

…Pi CPU

Thrdj in Pi Thrdk in Pi

Page 7: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-7

Copyright © 2004 Pearson Education, Inc.

Modern Threads

User Space Threads - underlying Os implements classic processes and the user space thread library executes on top of the OS abstract machine to multiprogram the threads. (Mach C and POSIX threads)

Kernel Threads - OS time-multiplexes the execution of threads instead of processes. Therefore when one thread blocks the other threads can still execute. (Windows)

Page 8: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-8

Copyright © 2004 Pearson Education, Inc.

Resources

Any element of the abstract machine that a process can request and can cause the process to be blocked if not available.

If device is allocated to a process then it is configured into the abstract machine for process

Multiple resource managers - hardware devices, processor, abstract synch resources, primary memory, and files

Each resource manager must present a common behavior described by a general model

Page 9: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-9

Copyright © 2004 Pearson Education, Inc.

Processes &Threads

Add

ress

Spa

ceA

ddre

ss S

pace

MapMap

Sta

ck

State

Pro

gram

Sta

tic d

ata

Res

ourc

es

Sta

ck

State

MapMap

Page 10: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-10

Copyright © 2004 Pearson Education, Inc.

The Address Space

ProcessProcess

AddressSpace

AddressBinding

ExecutableMemory

Other objects

Files

Page 11: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-11

Copyright © 2004 Pearson Education, Inc.

Building the Address Space

• Some parts are built into the environment– Files– System services

• Some parts are imported at runtime– Mailboxes– Network connections

• Memory addresses are created at compile (and run) time

Page 12: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-12

Copyright © 2004 Pearson Education, Inc.

The OS

• Abstract machine interface– Host hardware instruction set and set of

functions exported by OS

• Unix and Windows most widely used

• Unix - POSIX interface (standard)

Page 13: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-13

Copyright © 2004 Pearson Education, Inc.

Modern Process Framework

• Thread-based computation is executed within this framework

• Modern Process structure– Address space– Program– Data - shared by threads– Resources

• Threads share the resources that have been allocated to the process

– Process Id

Page 14: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-14

Copyright © 2004 Pearson Education, Inc.

Threads

• Active Element

• Threads– Host process environment– Thread-specific data (at least a stack)– Thread ID

Page 15: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-15

Copyright © 2004 Pearson Education, Inc.

Tracing the Hardware Process

Bootstap

LoaderProcessManager

InterruptHandler P1 P,2 Pn

Machine isPowered up

InitializationLoad the kernel

Service an interrupt

Har

dwar

e pr

oces

s pr

ogre

ss

Execute a thread

Schedule

Page 16: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-16

Copyright © 2004 Pearson Education, Inc.

The Abstract Machine Interface

User ModeInstructions

User ModeInstructions

Application Program

User ModeInstructions

Abstract Machine Instructions

TrapInstruction

Supervisor ModeInstructions

Supervisor ModeInstructions

fork()

create()open()

OS

Page 17: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-17

Copyright © 2004 Pearson Education, Inc.

Abstract Machine Instruction SetALU - load, store, add…Control Unit - branch, procedure_call…Trap - create_process(), open_file()…

Linux 2.4x - exports over 200 functions- 2.5 million lines of code

Windows NT/2000/XP- exports over 2,000 functions- over 25 million lines of code

Page 18: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-18

Copyright © 2004 Pearson Education, Inc.

Context Switching

ProcessManager

InterruptHandler

P1

P2

Pn

Executable Memory

Initialization1

23

45

7Interrupt

8

9

6

Page 19: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-19

Copyright © 2004 Pearson Education, Inc.

Process Descriptors

• OS creates/manages process abstraction

• Descriptor is data structure for each process– Register values– Logical state– Type & location of resources it holds– List of resources it needs– Security keys– Process ID, parent process

Page 20: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-20

Copyright © 2004 Pearson Education, Inc.

Creating a Process in UNIX

pid = fork();

UNIX kernelUNIX kernel

Process Table

Process Descriptor

Page 21: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-21

Copyright © 2004 Pearson Education, Inc.

Linux Process Descriptor

Page 22: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-22

Copyright © 2004 Pearson Education, Inc.

Linux Process Descriptor

Page 23: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-23

Copyright © 2004 Pearson Education, Inc.

Linux Process Descriptor

Page 24: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-24

Copyright © 2004 Pearson Education, Inc.

EPROCESS

…void *UniqueProcessId;…

NT Executive

Windows NT Process Descriptor

KPROCESS…uint32 KernelTime;uint32 UserTime;…Byte state;

NT Kernel

NT Kernel handles object management, interrupt handing, thread scheduling

NT Executive handles all other aspect of a process

Page 25: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-25

Copyright © 2004 Pearson Education, Inc.

Windows NT Process Descriptor (2)

Kernel process object includes: Pointer to the page directory Kernel & user time Process base priority Process state List of the Kernel thread descriptors that are

using this process

Page 26: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-26

Copyright © 2004 Pearson Education, Inc.

Windows NT Process Descriptor (3)

Parent identification Exit status Creation and termination times. Memory status Security information executable image Process priority class used by the thread scheduler. A list of handles used by this process A pointer to Win32-specific information

Page 27: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-27

Copyright © 2004 Pearson Education, Inc.

ETHREAD

Windows NT Thread Descriptor

EPROCESS

KPROCESS

NT KernelKTHREAD

NT Executive

Page 28: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-28

Copyright © 2004 Pearson Education, Inc.

Creating a Process in NT

CreateProcess(…);

Win32 SubsystemWin32 Subsystem

ntCreateProcess(…);…ntCreateThread(…);

NT ExecutiveNT Executive

NT KernelNT Kernel…

Handle Table

Process Descriptor

Page 29: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-29

Copyright © 2004 Pearson Education, Inc.

Windows NT Handles

Application

KernelObject

Executive Object

User Space

Supervisor Space

NT Executive

NT Kernel

Handle

Page 30: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-30

Copyright © 2004 Pearson Education, Inc.

Thread AbstractionProcess Manager has algorithms to control threads and thread descriptor (data structure) to keep track of threads.

Management Tasks- Create/destroy thread- Allocate thread-specific resources- Manage thread context switching

Thread Descriptor- state- execution stats- process (reference to associated process)- list of related threads- stack (reference to stack)- thread-specific resources

Page 31: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-31

Copyright © 2004 Pearson Education, Inc.

State of a Process/Thread

State Variable - summary status of the process/thread which is located in descriptor

ReadyBlocked

Running

Start

Schedule

Request

Done

Request

Allocate

Simple State Diagram

Page 32: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-32

Copyright © 2004 Pearson Education, Inc.

UNIX State Transition Diagram

Runnable

UninterruptibleSleep

Running

Start

Schedule

Request

Done

I/O Request

Allocate

zombie

Wait byparent

Sleeping

Traced or Stopped

Request

I/O Complete Resume

Page 33: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-33

Copyright © 2004 Pearson Education, Inc.

Windows NT Thread States

Initialized

CreateThread

Ready

Activate

Sele

ct

Standby

Running

Terminated

Waiting

Transition

Reinitialize

Exit

Pre

empt

Dispatch

WaitWait Complete

Wait Complete

Dispatch

Page 34: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-34

Copyright © 2004 Pearson Education, Inc.

Resources

Resource: Anything that a process can request and then become blocked because that thing is not available.

Resource Descriptors- Internal resource name- Total Units- Available Units- List of available units- List of Blocked processes

Page 35: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-35

Copyright © 2004 Pearson Education, Inc.

Resources

R = {Rj | 0 j < m} = resource typesC = {cj 0 | RjR (0 j < m)} = units of Rj available

Reusable resource: After a unit of the resource has been allocated, it must ultimately be released back to the system. E.g., CPU, primary memory, disk space, … The maximum value for cj is the number of units of that resource

Consumable resource: There is no need to release a resource after it has been acquired. E.g., a message, input data, … Notice that cj is unbounded.

Page 36: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-36

Copyright © 2004 Pearson Education, Inc.

Using the Model• There is a resource manager, Mgr(Rj) for every Rj

Mgr(Rj)ProcessProcess

pi can only request ni cj units of reusable Rj

pi can request unbounded # of units of consumable Rj

• Process pi can request units of Rj if it is currently running

request

•Mgr(Rj) can allocate units of Rj to pi

allocate

Page 37: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-37

Copyright © 2004 Pearson Education, Inc.

A Generic Resource Manager

ProcessProcess

Resource Manager

ProcessProcessProcessProcessProcessProcess

Blocked Processes

Resource Pool

request()

release()

Policy

Page 38: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-38

Copyright © 2004 Pearson Education, Inc.

Process Hierarchies

Initial Process

System Process

System Process

Other Processes

Page 39: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-39

Copyright © 2004 Pearson Education, Inc.

Process Hierarchies• Parent-child relationship may be significant:

parent controls children’s execution

Ready-Active

Blocked-Active

Running

StartSchedule

RequestDone

Request

AllocateReady-Suspended

Blocked-Suspended

SuspendYield

AllocateSuspend

Suspend

Activate

Activate

Page 40: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-40

Copyright © 2004 Pearson Education, Inc.

Process Manager Overview

ProgramProgram ProcessProcess

Abstract Computing Environment

FileManager

MemoryManager

DeviceManager

ProtectionProtectionDeadlockDeadlock

SynchronizationSynchronization

ProcessDescription

ProcessDescription

CPUCPU Other H/WOther H/W

SchedulerScheduler ResourceManager

ResourceManagerResource

Manager

ResourceManagerResource

Manager

ResourceManager

MemoryMemoryDevicesDevices

Page 41: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-41

Copyright © 2004 Pearson Education, Inc.

UNIX Organization

System Call InterfaceSystem Call Interface

FileManager

MemoryManager

DeviceManager

ProtectionProtectionDeadlockDeadlock

SynchronizationSynchronization

ProcessDescription

ProcessDescription

CPUCPU Other H/WOther H/W

SchedulerScheduler ResourceManager

ResourceManagerResource

Manager

ResourceManagerResource

Manager

ResourceManager

MemoryMemoryDevicesDevices

LibrariesLibraries ProcessProcess

ProcessProcess

ProcessProcess

Monolithic Kernel

Page 42: Implementing Processes, Threads, and Resources

Operating Systems: A Modern Perspective, Chapter 6

Slide 6-42

Copyright © 2004 Pearson Education, Inc.

Windows NT Organization

Processor(s) Main Memory Devices

LibrariesLibraries

ProcessProcess

ProcessProcess

ProcessProcess

SubsystemSubsystemUser

SubsystemSubsystem SubsystemSubsystem

Hardware Abstraction LayerHardware Abstraction LayerNT Kernel

NT ExecutiveI/O SubsystemI/O Subsystem

TT

TT

TT T T

T


Recommended