- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第二章 进程概念
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3、拥有资源 无论是传统OS,还是引入线程的OS,进程都是拥有资源的独立单位,线程一般不拥有系统资源,但它可以访问隶属进程的资源。即一个进程的所有资源可供进程内的所有线程共享。 * 4、系统开销 进程的创建和撤消的开销要远大于线程创建和撤消的开销,进程切换时,当前进程的CPU环境要保存,新进程的CPU环境要设置,线程切换时只须保存和设置少量寄存器,并不涉及存储管理方面的操作,可见,进程切换的开销远大于线程切换的开销。 同时,同一进程内的各线程由于它们拥有相同的地址空间,它们之间的同步和通信的实现也变得比较容易。 * 线程实例:Solaris 进程: 用户地址空间 用户栈 进程控制块 * 实例:Solaris(续1) 用户级线程(线程库): 可在应用进程中建立多个ULT 每个ULT需要:栈、程序计数器 不受调度程序的调度,线程切换快 对操作系统不可见 * 实例:Solaris(续2) 核心级线程: 设置了大量KLT 有一个小的数据结构和栈 完成内核的所有工作 处理器调度的单位 * 实例:Solaris(续3) 轻型进程(LWP): 每个ULT利用LWP与内核通信 每个LWP支持一个或多个用户级线程,并映射到一个核心级线程 每个LWP对应用程序可见,内核看到的是多个LWP而看不到ULT * 进程 1 进程 2 进程 3 进程 4 进程 5 运行系统 用户 内核 硬件 用户级线程 内核级线程 轻型线程 处理器 * 思考 为什么要引入线程? 任何两个线程切换的开销是大致相当的吗? OS如何管理和控制线程?(提示:OS如何管理和控制进程) * 小结 概念: 并发、进程、线程 关系: 程序的顺序执行和并发执行 进程和程序 进程和线程 * * * * * * * * * * * * * * * * * * * * * * * * 进程撤销 根据被终止进程的标识符,从PCB集合中检索出该进程的PCB 将进程所拥有的资源交给父进程或系统进程 释放PCB * 进程撤销 算法: kill 输入:无 输出:无 { 由运行指针得到当前进程的pid ; 释放本进程占用的资源; 该进程从总链队列中摘去; 释放PCB; 转进程调度程序; } * 进程的阻塞 阻塞:当一个进程所期待的某一事件尚未出现时,该进程调用阻塞原语将自己阻塞。 进程阻塞是进程的自身的一种主动行为。 * 进程的阻塞 算法 :susp 输入:chan(进程等待的原因) 输出:无 { 保护现进程的CPU的现场到PCB结构中; 置该进程的状态为“阻塞”态; 将该进程的PCB插入到chan的等待队列; 转进程调度程序; } * 进程的唤醒 唤醒:处于阻塞状态的进程是绝不可能叫醒它自己的,它必须由它的合作进程用唤醒原语唤醒它。 * 进程的唤醒 进程唤醒原语的形式: wakeup(chan) 其中:chan 唤醒进程阻塞的原因。 * 进程的唤醒 算法 wakeup 输入:chan等待的事件(阻塞原因) 输出:无 {保护现行进程的CPU现场到pcb结构中; 置该进程为“就绪”态; 将该进程入就绪队列; 找到该阻塞原因的队列指针; for(该队列上每一个等待的进程) {将进程移出此等待队列; 置进程状态为“就绪”; 将进程入就绪队列; } 转进程调度; } * 思考 请设想一下进程在什么情况下会变为阻塞状态? 阻塞进程在什么情况下会被唤醒?谁来唤醒它? * 进程切换 在某时刻,一个正在运行的进程被中断,操作系统就将另一个进程置为运行状态,并对其进行控制。当操作系统掌握控制权时,切换随时会发生。可能将控制权交给操作系统的事件有: 中断 对外部事件的响应 陷阱 处理错误或意外情况 系统调用 调用操作系统功能 * 进程切换 操作系统将进行以下步骤完成进程切换: ① 保存处理器内容。 ② 对当前运行进程的PCB进行更新。 ③ 将这个进程的PCB移入适当的队列。 ④ 挑选其他进程执行。 ⑤ 对挑选进程的PCB进行更新。。 ⑥ 对存储器管理数据结构进行更新。 ⑦ 将被选中进程上次移出时的处理器状态进行恢复。 * 思考 OS如何进行进程切换? 何时会发生进程切换? * 三、线
文档评论(0)