- 【线程】CPU使用的基本单元;(由线程ID、程序计数器、寄存器、寄存器集合和棧组成);(与属于同一进程的其他线程共享代码段、数据段和其他操作系统资源)
- 【传统重量级进程】:只有单个的控制线程
- 多线程编程的优点:(1)响应度高,即使部分阻塞,该程序仍能继续运行; (2)资源共享; (3)经济,进程创建所需要的内存和资源的分配比较昂贵;(4)多处理器体系结构的利用,能充分使用多处理器体系结构,以便每个进程能并行运行在不同的处理器上
- 【用户线程】,接受内核支持,而无须内核管理,属于用户层的线程
- 【内核线程】,由操作系统直接支持和管理
- 【多对一模型】:多线程模型;将许多用户级线程映射到一个内核线程; 线程管理是由线程库在用户空间进行的,效率比较高;但是如果有一个线程执行了阻塞系统调用,那么整个进程会阻塞,因为在任意时刻只有一个线程能访问内核,多个线程不能并行运行在多处理器上
- 【一对一模型】:多线程模型;将每个用户线程映射到一个内核线程; 在某个线程阻塞时,能允许另一个线程继续执行;能允许多个线程能并行运行在多处理器系统上; 缺点是每创建一个用户线程就需要创建一个相应的内核线程
- 【多对多模型】:多线程模型;多路复用了许多用户线程到同样数量或更小数量的内核线程上;是上两种的优化;可以创建任意多的用户线程,并且相应内核线程能在多处理器系统上并发执行,而且当一个线程执行阻塞系统调用时,内核能调度另一个线程来执行
- 【线程库】:为程序员提供创建和管理线程的API
- 实现线程库,【第一种方法】:在用户空间中提供一个没有内核支持的库,此库的所有代码和数据结构都存在于用户空间,调用库中的一个函数只是导致了用户空间中的一个本地函数调用,而不是系统调用;【第二种方法】:执行一个由操作系统直接支持的内核级的库,此时,库的代码和数据结构存在于内核空间中,调用库中的一个API函数通常会导致对内核的系统调用
- 【pthread】:是由POSIX标准为线程创建和同步定义的API,这是线程行为的规范而不是实现
- 【线程取消】:在线程完成之前终止线程的任务; 【异步取消】:一个线程立即终止目标线程; 【延迟取消】:目标线程不断地检查它是否应该终止,这允许目标线程有机会以有序的方式来终止自己
- 【线程池】:在进程开始时创建一定数量的线程,并放到池中以等待工作; 如果没有可用的线程,服务器会一直等待直到有空线程为止
- 【线程特定数据】:每个线程自己的数据
- 【轻量级进程LWP】:为一种应用程序可以被调度用户线程来运行的虚拟处理器; 每个LWP与内核线程相连,该内核线程被操作系统调度到物理处理器上运行; 如果内核线程阻塞,LWP也阻塞,与LWP相连的用户线程也阻塞
- 【调度器激活】:解决用户线程库与内核间通信的方法
- 【线程的上下文】:寄存器集合、棧和私有存储区域
《操作系统概念-第七版》概念复习笔记第4章
最新推荐文章于 2024-07-24 17:04:30 发布