threads, smp, and microkernels

Post on 18-Mar-2016

26 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Threads, SMP, and Microkernels. Chapter 4. Process. Resource ownership - process includes a virtual address space to hold the process image Scheduling/execution - follows an execution path that may be interleaved with other processes - PowerPoint PPT Presentation

TRANSCRIPT

1

Threads, SMP, and Microkernels

Chapter 4

2

ProcessResource ownership - process

includes a virtual address space to hold the process image

Scheduling/execution- follows an execution path that may be interleaved with other processes

These two characteristics are treated independently by the operating system

3

Process

Dispatching is referred to as a thread or lightweight process

Resource of ownership is referred to as a process or task

4

Multithreading(多线程) Operating system supports multiple

threads of execution within a single process

MS-DOS supports a single thread UNIX supports multiple user

processes but only supports one thread per process

Windows, Solaris, Linux, Mach, and OS/2 support multiple threads

5

6

Process

the unit of resource allocation(资源分配 ) and the unit of protectionHave a virtual address space

which holds the process imageProtected access to processors,

other processes, files, and I/O resources

7

Thread An execution state (running, ready,

etc.) Saved thread context when not

running Has an execution stack Some per-thread static storage for

local variables Access to the memory and resources

of its process– all threads of a process share this

8

1.每个线程有独立的栈和控制信息2.所有线程共享进程的状态和资源

9

Benefits of Threads Takes less time to create a new

thread than a process Less time to terminate a thread than a

process Less time to switch between two

threads within the same process Since threads within the same

process share memory and files, they can communicate with each other without invoking the kernel

10

Threads

Suspending a process involves suspending all threads of the process since all threads share the same address space

Termination of a process, terminates all threads within the process

11

Thread StatesThe key states for a thread are

Running, Ready and Blocked. If a process is swapped out, all

of its threads are necessarily swapped out because they all share the address space of the process. So, the suspend states of thread is not necessary.

12

Thread States States associated with a change in

thread state– Spawn(产生 )

• Spawn another thread– Block(阻塞 )– Unblock(非阻塞 )– Finish

• Deallocate(释放 ) register context and stacks

13

Multithreading

14

The categories of threads

User-level threads(ULTs, 用户级线程 )Kernel-level threads(KLTs,内核级线程 )

15

User-Level Threads All thread management is done by

the application The kernel is not aware of the

existence of threads Using threads library to create and

destroy threads, pass message and data between threads, schedule thread execution, and to save and restore thread contexts

16

User-Level Threads

17

18

The advantages of ULTs Thread switching does not require

kernel mode privileges. Scheduling can be application specific. ULTs can run on any operating

system.

19

The disadvantages of ULTs When a threads are blocked on system

call, all of the threads within the process are blocked.

A kernel assigns one process to only one processor at a time, so a multithreaded application cannot take advantage of multiprocessing.

20

Kernel-Level Threads

Windows is an example of this approach

Kernel maintains context information for the process and the threads

Scheduling is done on a thread basis

21

Kernel-Level Threads

22

The advantages of KLTs The kernel can simultaneously schedule

multiple threads from the same process on multiple processors.

If one thread in a process is blocked, the kernel can schedule another thread of the same process

23

The disadvantages of KLTs The transfer of control from one thread

to another within the same process requires a mode switch to the kernel.

24

Combined Approaches

Example is Solaris Thread creation done in the user space Bulk of scheduling and

synchronization of threads within application

The multiple ULTs from a single application are mapped onto some (smaller or equal) number of KLTs.

25

Combined Approaches

top related