第三篇-4:进程管理.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三篇-4:进程管理

* 管道 需求 大量信息 上游的进程往管道中写入数据,下游的一方从管道接收数据 先进先出的单向通信 双向通信需要建立两个管道 操作系统提供建立管道的系统调用函数 命名管道 管道同步:操作系统负责 管道的容量有限,管道满时,发送进程睡眠等待 以字节为单位:没有格式的字节流 “清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村。” “清明时节/雨/纷纷路上行人/欲断魂/借问酒家何处/有牧童遥指/杏花村” 消息队列 需求 保持数据逻辑边界 操作系统提供创建消息队列的系统调用 一个进程可以使用系统调用创建一个消息队列 任何进程都可以向该队列中发送消息,也可以从队列中接收消息 操作系统负责同步 若消息队列已满,则写消息的进程排队 若取消息进程没有找到需要的消息,读等待队列 共享内存 速度最快的进程间通信方式 管道和消息队列都需要数据的复制 发送进程把数据复制到管道或者队列中 接收进程把数据从管道或者队列复制到自己的内存区中 操作系统提供系统调用 让一个进程创建一块共享内存区 其他进程通过系统调用把这段内存映射到自己的用户地址空间中 进程像正常的内存访问一样读写共享内存区间 不涉及数据的复制 没有同步机制 基于网络连接的通信 插口、也叫套接字(socket) 不同计算机进程间通过插口机制通信 需要通信的双方首先要各自创建一个插口,插口声明自己接收来自某端口地址的数据 主机地址:通信地址 端口号:人名 进程通过插口把消息发送到网络中 消息中指明接收进程所在主机名、端口号 网络中的传输设备根据主机地址把消息传递给目的主机。操作系统按照消息中端口号找到声明接收该信息的插口,并把数据复制到插口的缓冲区内。目的进程从插口中接收到数据 可用在同一台计算机上的进程之间通信 进程的缺点 进程切换开销大 上下文切换:保存和恢复相关寄存器的内容; 与进程运行有关的这些数据都需要修改; 进程控制块中的各种队列(如阻塞队列、就绪队列、通信队列); 存储管理有关的一些记录信息; 文件管理有关数据; 进程的地址空间要转换成新被指派运行的进程的地址空间 涉及到读写内存、需要花费很多时间 进程的个数很多、进程转换又频繁发生,那么系统的性能就会下降 怎样减少开销? 为什么要切换这么多信息? 切换处理机时做的工作 与处理机相关的 进程上下文切换、进程状态的改变 与处理机无关,只是与进程有关 存储管理、文件管理相关的数据结构 解决办法 只切换必需的、与处理机相关的信息 进程扮演的角色是什么? 拥有资源的单元体 操作系统以进程为单位分配资源 虚拟地址空间:代码、数据、相关信息 I/O资源 文件 处理机 执行任务的单元体 处理机分配的改变,计算机执行任务的改变 处理机不同于其他资源,处理机切换导致进程切换 新概念的诞生-线程 处理机分配的单位和其他的资源分配的单位不能再是一个实体进程 线程是分配处理机的单位 线程是执行任务的单元体 线程是程序执行过程中的一个子部分或者全部 进程是除了处理机之外的其他资源的分配单位 每个进程至少包含一个线程 同一进程的所有线程共享分配给进程的资源 Code Initialized data Heap DLL’s mapped segments Process’s address space Stack – thread1 PC SP State Registers … TCB for Thread1 Stack – thread2 PC SP State Registers … TCB for Thread2 线程 同一个进程的线程之间切换时,只需要切换与处理机有关的信息 不用切换各种其他资源的相关信息 在不同进程的线程之间切换,同进程切换一样 同一进程的所有线程共享地址空间和文件 线程可以通过共享内存和文件直接通信 操作系统必须提供线程同步的手段 帮助程序员协调线程对共享空间的访问以防出现问题 关于线程的概念 线程是进程内的一个执行单元 线程是进程内的一个可调度的实体 线程是程序中的一个相对独立的控制流序列 线程是执行的上下文,其含义是执行的现场数据和其他的调度所需的信息 线程是进程内一个相对独立的、可调度的执行单元 …… 线程的总结 Process Kernel data structure PCB TCB PCB TCB TCB TCB PCB PCB Single-threading OS kernel Multi-threading OS kernel (virtually all modern OS) 几个问题 什么是周转时间和平均周转时间? 给出采用短作业优先法的平均等待时间? P1=32,P2=3,P3=15 进程中访问互斥资源的代码称作什么? 互斥量的操作由哪种操作实现,该操作

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档