操作系统第四版第2章课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统第四版第2章课件

共69页 第*页 (3)并发性 引入线程后,使得系统的并发执行程度更高。 进程之间、进程内的多线程之间可并发执行。 (4)安全性 同一进程的多线程共享进程的所有资源,一个线程可以改变另一个线程的数据,而多进程实现则不会产生此问题。共享方便。 共69页 第*页 系统对线程的支持 1)用户级线程 有关线程的所有管理工作都由用户进程通过调用用户态运行的线程库完成。自己设计线程调度算法。 内核以进程为单位进行调度。一个线程阻塞,其依附的进程也阻塞。 多线程对应核心级一个进程。 如,POSIX的Pthread线程库 共69页 第*页 运行时系统(Run-time system)是一个管理线程的过程集合,包括:thread_create、thread_exit、thread_wait。 内核 用户空间 内核空间 运行时系统 进程表 线程表 进程 线程 共69页 第*页 2)核心级线程 有关线程的管理工作都由内核完成。应用程序通过系统调用来创建或撤销线程。 一个线程的阻塞,不影响其他线程的执行。 Windows Linux 多处理机系统 内核 用户空间 内核空间 进程表 线程表 进程 线程 共69页 第*页 3)两级组合 既支持用户级线程,也支持核心级线程。 用户级多个线程对应核心级多个线程。 当内核了解到一个线程阻塞后,通知运行时系统,重新调度其他线程。 内核线程 Solaris 用户线程??LWP ??内核线程 运行时系统 LWP 轻进程:Light Weight Process 可以把LWP看作一个可以执行代码和系统调用的虚拟CPU。 LWP建立了从用户级到内核级的桥梁。 一个进程可申请多个LWP,一个LWP可交叉运行多个用户线程。 LWP和内核线程是一对一的关系。 共69页 第*页 共69页 第*页 由于线程拥有较少的资源,又具有传统进程的许多特性,因此有的把线程叫做轻型进程。把传统的进程叫做重型进程。 Linux,线程就是轻量级进程(LightWeight Process)。一个进程拥有一组共享其地址空间和资源的轻量级进程。Clone()函数 创建进程时,系统同时为进程创建第一个线程。进程中的其它线程是通过调用线程创建原语显式创建的。 Windows, 创建线程的函数 CreateThread(…,lpStartAddress,… ) 共69页 第*页 作业 P40 2-9 2-12 2-13 * * * 共69页 第*页 (1)创建进程的时机 批处理系统中,会为每个提交的作业创建一个进程。 分时系统中,系统会为每个登录用户创建一个终端进程。 交互式系统中,键入一个命令或点击一个图标都会开始一个新进程。 创建原语 共69页 第*页 在UNIX和Windows系统中,用户可以同时打开多个窗口,每个窗口都对应一个进程。 UNIX的系统调用fork()会创建一个与调用进程具有相同副本的进程,子进程通过execve()系统调用会运行一个新的程序。 Windows中的Win32函数调用CreateProcess()创建新进程,运行新程序。 共69页 第*页 (2) 创建原语的功能 扫描进程表,找到一个空闲的PCB。 为新进程的程序、数据、用户栈分配内存 初始化PCB 。把调用者提供的参数(进程名、进程优先级、实体所在主存的起始地址、所需的资源清单、记帐信息及进程家族关系等)填入PCB中。 将新进程插入就绪队列。 共69页 第*页 进程执行完或因故障不能继续运行。 功能: 在PCB集合中寻找要撤销的进程; 若有子进程,也须终止,以防成为不可控的; 将其占用的系统资源归还系统; 撤销其PCB。 (UNIX中用exit(); Windows 用ExitProcess()) 撤消原语 共69页 第*页 在运行过程中进程期待某一事件发生时,自己执行阻塞原语,由运行态变为阻塞态。(等待键盘输入;等待磁盘数据传输完成;等待其它进程发送一个信息) 功能:中断CPU;将其运行现场信息保存在PCB中;置状态为阻塞态,插入相应事件的阻塞队列中;转进程调度。 阻塞原语 共69页 第*页 唤醒原语 若进程等待的事件是I/O完成。I/O完成后,CPU响应中断,在中断处理中,将等待I/O完成而阻塞的进程唤醒,并置为就绪态。 若等待某进程发信息。由发送进程调用唤醒原语把该等待者唤醒,置为就绪态。插入就绪队列。 共69页 第*页 UNIX 阻塞/唤醒 Sleep()将在指定时间内阻塞本进程 Pause()阻塞本进程以等待信号。 Wait()阻塞本进程以等待子进程的结束。 Kill()向指定进程或进程组发送信号。 Wakeup() 共69页 第*页 实时系统,根据实时现场的需要,会将正在执行的或没有执行的

文档评论(0)

sandaolingcrh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档