计算机操作系统原理与应用.PPT

6.6.3 线程的实现 许多现代的操作系统都已实现了线程。例如,Solaris2、Windows 2000/XP/Server 2003/Server 2008/7、Mac和Linux等。 按实现方式,有两类线程:用户级线程和内核级线程。 用户级线程在用户层通过线程库实现,线程库提供了对线程的创建、调度和管理的支持。由于内核并不知道用户级的线程,所有线程的创建和调度都是在用户空间内进行的,无须内核的干预。 内核级线程由操作系统直接支持,内核在其空间内执行线程的创建、调度和管理。许多系统都支持用户级线程和内核级线程,但在两者的映射关系上有不同。 常见的多线程模型有三种。 1.多对一模型 多对一模型将多个用户级线程映射到一个内核级线程。线程管理是在用户空间进行的,因此效率比较高,但是若一个线程执行了阻塞,则整个进程就会阻塞。而且,任何时刻只允许一个线程访问内核,因此多个线程不能并行运行在多处理器上。在这种模型中,处理器调度的单位仍然是进程。 2.一对一模型 一对一模型将每个用户线程映射到一个内核级线程。当一个线程执行阻塞时,该模型能够允许另一个线程继续执行,所以它提供了比多对一模型更好的并发功能。该模型也允许多个线程运行在多处理器系统上。这种模型的缺点是每创建一个用户线程就需要创建一个相应的内核级线程。创建内核级线程的开销会影响应用程序的性能,所以这种模型的绝大多数实现都限制了系统所

文档评论(0)

1亿VIP精品文档

相关文档