Chapter 5 线程管理
30 Process revisited 进程重游
进程是:
· 资源配置单位; a unit of resource allocation;
· 调度(调度)单元。a unit of dispatching (scheduling).
传统上,进程只有一个控制线程。
如果我们将上述两个概念分开,并允许在一个进程中有多个控制线程,我们就得到了线程。也就是说,进程被用来将资源分组在一起;线程是被调度(计划)dispatched(scheduled)在CPU上执行的实体
31 线程的概念thread
线程是现代操作系统中CPU利用率的基本单位。也称为轻量级进程lightweightprocess(LWP). (LWP)。
多线程:a.允许在同一进程中有多个线程。B.它们共享属于同一进程的资源,如代码段、数据段、打开文件等。C.但是,一个进程中的每个线程都有一个私有线程上下文(包括CPU寄存器集和其他状态信息)和一个私有堆栈。
进程和线程项目对比:
32 单线程进程和多线程进程
33 线程的好处
a. 响应性 允许其他线程继续响应用户,即使一个或多个线程被阻塞或执行冗长的操作。
b.资源共享 由于同一进程中的线程共享内存和文件,因此它们可以彼此通信,而无需调用内核。
c.经济 创建新线程所需的时间和资源要比创建进程少得多。在同一进程中上下文切换线程所需的时间要少得多。
d.利用多处理器架构 通过为每个CPU分配一个线程,可以实现并行。
34.进程的实现
可以实现多线程
· 在用户空间为用户线程;
· 在内核为内核线程。
· 通过将用户线程和内核线程结合使用混合方案。
35 用户线程
它在内核之外实现,作为用户空间中的线程库。它是为线程创建、调度和管理提供支持的库。就内核而言,它是管理普通的单线程进程。
例子:Mach C-threads Solaris 2 UI-threads
用户线程的优点。
· 线程管理和上下文切换不需要困在内核中。这将节省许多CPU周期。
· 允许每个进程有自己的自定义调度算法。
用户线程的缺点
· 执行阻塞系统调用的任何用户级线程都会导致整个进程阻塞。即使其他线程已经准备好在进程中运行。
· 在具有多处理器的系统上,用户级的线程不能被分派并行执行。
36 内核线程
它直接由操作系统支持。内核在内核空间中执行线程创建、调度和管理。
例子Windows NT / XP Solaris
优点和缺点
用户线程的反转