- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 线程、对称多处理和微内核 Outline 线程 对称多处理 微内核 W2K/Linux的进程和线程管理 线程 在没有线程概念的系统中,进程是 资源分配的单位 调度/执行的单位 主要问题:进程切换开销大 每次切换都要保存和恢复进程所具有的全部信息(PCB、有关程序段和相应的数据集等) 线程:一个进程内的基本调度单位 一个进程可有一个或多个线程 多线程 多线程:是指OS支持在一个进程中执行多个线程的能力 多线程环境下的进程和线程 进程/任务:资源分配和保护的单位 拥有用于保存进程映像的虚地址空间 受保护地访问处理器、其他进程、文件和I/O资源 线程 / lightweight process:分派的单位 执行状态(运行、就绪等) 保存的线程上下文(非运行时) 一个执行栈 独立的用来存储局部变量的静态存储器 对进程的存储器和其他资源的访问 与进程的其他线程共享这些资源 单线程和多线程的进程模型 线程的优点(与进程比较) 创建速度快(在已有进程内) 终止所用时间少 切换时间少(保存和恢复工作量小) 通信效率高(在同一进程内,无需调用内核,可利用共享的存储空间) 线程的应用 若应用程序可按功能划分成不同的小段,或可划分成一组相关的执行实体,则用一组线程(比用一组进程)可提高执行效率(尤其是在多处理器系统中) 线程的应用 典型应用: 服务器中的文件管理或通信控制 前台和后台操作 异步处理 加速执行 模块化程序结构 线程的执行特征 线程状态 线程同步 需要对各个线程的活动进行同步,以便它们互不干涉且不破坏数据结构 线程同步机制与进程同步机制相同 线程的状态 挂起状态、终止状态是进程级的概念 挂起一个进程,则该进程的所有线程也挂起(共享地址空间) 终止一个进程,则该进程的所有线程也终止 线程的状态:运行、就绪、阻塞 与线程状态变化有关的操作: 派生(spawn) 阻塞(block) 激活(unblock) 调度(schedule) 结束(finish) 例1:使用线程的RPC 例1:使用线程的RPC 例2:单处理器上的多线程 用户级线程(ULT) 线程管理均由应用程序完成(线程库) 内核不知道线程的存在 优点: 线程切换不需要模式切换 调度算法可应用程序专用 ULT不需内核支持,线程库可在任何OS上运行 缺点: 线程阻塞导致进程阻塞 不能利用多处理器技术 内核级线程(KLT) 线程管理由内核完成(提供API) 调度基于线程进行 实例:W2K, Linux, OS/2 优点: 线程阻塞不会导致进程阻塞 可以利用多处理器技术 内核例程本身也可以使用多线程 缺点: 线程切换需要模式切换 组合方法 线程创建在用户空间完成 线程调度和同步在用户空间进行 应用程序的m个ULT被映射到n个(n≤m)KLT 实例:Solaris 线程和进程的关系 线程和进程的关系 并行处理器体系结构 计算机系统分类: SISD SIMD MISD MIMD 对称多处理系统(SMP) 多个处理器可以执行相同功能(故称“对称”) 内核可运行在任一处理器上 每个处理器可从可用进程和线程池完成自身的调度工作 SMP组织结构 多处理器OS的设计 除多道程序系统的全部功能外,再加上适应多个处理器的附加功能 关键问题 同时的并发进程/线程:内核例程可重入 调度:避免多处理器的调度冲突 同步:控制共享资源的访问 存储器管理 可靠性和容错 微内核 基本思想 只有最基本OS功能放在内核中, 运行在内核模式 不是最基本服务和应用在内核之外, 运行在用户模式 特点: 水平分层 客户/服务器结构 微内核组织结构的优点 一致接口 所有服务都以消息的形式提供 可扩展性 允许增加新的服务 灵活性 可以增加新的功能、删除现有功能 可移植性 把系统移植到新处理器上只需要对内核而不需要对其他服务修改 微内核组织结构的优点 可靠性 模块化设计 小的微内核可以被严格地测试 分布式系统支持 消息传送不需要知道目标机器的位置 对面向对象操作系统的支持 组件是具有明确定义接口的对象,可互连构造软件 W2K的进程和线程管理 W2K进程和线程的重要特点: W2K进程/线程作为对象实现 一个可执行的进程可能包含一个或多个线程 进程对象和线程对象都具有内置的同步能力 W2K进程及其资源 W2K进程和线程对象 W2k线程状态及转换 Linux的进程和线程管理 进程的数据结构task_struct 状态: 执行、就绪、挂起、停止、僵死 调度信息: 普通/实时, 优先级, 计数器 标识号: 进程标识号, 用户标识号, 组标识号 进程间通信(IPC) 链接: 父进程链接, 兄弟进程链接, 子进程链接 时间和计时器: 进程创建时间, 进程消耗处理器总时间, 间隔计时器 文件系统: 打开文件指针 虚存: 分配给该进程的虚
原创力文档


文档评论(0)