操作系统期末复习——第四章 线程
2022/6/9 23:25:47
本文主要是介绍操作系统期末复习——第四章 线程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
第四章 线程
1 线程概述
1.1为什么引入线程
- 有的进程可能需要同时满足许多功能,引入线程增加并发度
- 进程上下文切换系统开销大,线程降低系统开销
- 进程的创建相对困难,线程创建相对简单——只需要复制栈和寄存器的内容
1.2多线程进程
一个进程可以拥有多个线程,多个线程间共享以下内容
- 代码段、全局变量
- 打开的文件标识符
- 工作环境——当前目录,用户权限等
- 内存空间
多线程编程的优点:
- 响应速度快
- 资源共享
- 经济
- 多处理器体系结构的应用:可在多处理器上并行
2 多线程模型
2.1用户线程和内核线程
用户线程:
- 受内核支持
- 由线程库管理,无需内核管理
- 对于内核透明
内核线程:
- 由内核管理
- 由内核进行维护和调度
内核线程和用户线程存在映射关系即:
一对一模型优点:
- 提供并发功能,多处理器并行执行
- 一个阻塞,可以调度另一个线程继续执行
缺点:
- 内核负担重
多对一模型缺点:
- 一个被阻塞其他都无法继续运行
多对多模型缺点:
- 没有以上缺点,需要向内核提供调度机制
二级模型:
- 多对多模型的变种,允许用户线程绑定一对一绑定一个特定内核线程
3 线程库
3.1实现方式
- 非嵌入到内的方式:在用户控件中提供没有内核支持的库,所有代码和数据结构都存在于用户空间中
- 嵌入到内核的方式:调用内核库,代码和数据结构储存在内核中
4 多线程程序相关问题
4.1系统调用fork()与exec()的含义
线程调用fork()创建新进程时,如果调用exec()只复制单个线程,不调用则复制全部全部线程
4.2线程取消
目标线程:线程完成任务前需要被取消的线程
异步取消:一个线程立即终止目标线程
延迟取消:目标线程不断检测它是否应终止
4.3信号处理
同步信号:进程本身产生的信号
异步信号:进程外产生的信号
ctrl + C 信号传送给每个线程,pthread_kill函数可以传信号给指定线程
4.4线程池
在进程开始时创建一定数量的线程备用
主要优点:
- 用现有线程处理请求比等待创建新的线程要快
- 线程池限制了可用线程的数量,防止大量创建并发线程
4.5调度程序激活
暂时略过,复习完有时间再看
这篇关于操作系统期末复习——第四章 线程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法