threads, smp, and microkernels

25
1 Threads, SMP, and Microkernels Chapter 4

Upload: jadzia

Post on 18-Mar-2016

26 views

Category:

Documents


2 download

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

Page 1: Threads, SMP, and Microkernels

1

Threads, SMP, and Microkernels

Chapter 4

Page 2: Threads, SMP, and Microkernels

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

Page 3: Threads, SMP, and Microkernels

3

Process

Dispatching is referred to as a thread or lightweight process

Resource of ownership is referred to as a process or task

Page 4: Threads, SMP, and Microkernels

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

Page 5: Threads, SMP, and Microkernels

5

Page 6: Threads, SMP, and Microkernels

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

Page 7: Threads, SMP, and Microkernels

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

Page 8: Threads, SMP, and Microkernels

8

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

Page 9: Threads, SMP, and Microkernels

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

Page 10: Threads, SMP, and Microkernels

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

Page 11: Threads, SMP, and Microkernels

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.

Page 12: Threads, SMP, and Microkernels

12

Thread States States associated with a change in

thread state– Spawn(产生 )

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

• Deallocate(释放 ) register context and stacks

Page 13: Threads, SMP, and Microkernels

13

Multithreading

Page 14: Threads, SMP, and Microkernels

14

The categories of threads

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

Page 15: Threads, SMP, and Microkernels

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

Page 16: Threads, SMP, and Microkernels

16

User-Level Threads

Page 17: Threads, SMP, and Microkernels

17

Page 18: Threads, SMP, and Microkernels

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.

Page 19: Threads, SMP, and Microkernels

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.

Page 20: Threads, SMP, and Microkernels

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

Page 21: Threads, SMP, and Microkernels

21

Kernel-Level Threads

Page 22: Threads, SMP, and Microkernels

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

Page 23: Threads, SMP, and Microkernels

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.

Page 24: Threads, SMP, and Microkernels

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.

Page 25: Threads, SMP, and Microkernels

25

Combined Approaches