操作系统概念中文版-chapter_第1页
操作系统概念中文版-chapter_第2页
操作系统概念中文版-chapter_第3页
操作系统概念中文版-chapter_第4页
操作系统概念中文版-chapter_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统概念第四章:进程本章主要内容2进程概念进程调度进程操作进程协作进程间通信客户机-服务器系统通信4.1

进程概念3一个操作系统执行一系列的程序批处理系统-作业分时系统-用户程序或任务在本书中,作业与进程几乎是可以互换的进程-执行中的程序;进程执行必须以一种有序的方式来进行进程包括:程序计数器堆栈数据段进程状态4进程在执行时会改变状态,每个进程可能处于下列状态之一新建运行等待就绪终止进程状态转换图5进程控制块(PCB)6每个进程在OS内用进程控制块来表示,它包含与特定进程相关的许多信息进程状态程序计数器CPU寄存器CPU调度信息内存管理信息计帐信息I/O状态信息进程控制块示意图7CPU在进程间的切换图8进程调度队列9作业队列-包括系统中的所有进程就绪队列-所有驻留在内存中就绪的等待运行的进程列表。设备队列-所有等待I/O设备的进程列表进程在不同的队列之间移动就绪队列和各种I/O设备队列10表示进程调度的队列图11调度程序12长期调度程序(或作业调度)-从作业池中选择进程,并将它们装入内存以执行。短期调度程序(或CPU调度)-从就绪可执行的进程中选择进程,并为其中之一分配CPU。增加了中期调度的队列图13调度程序(续)短期调度程序执行频率非常高(毫秒级),执行效率要非常快长期调度程序执行得并不频繁(秒,或分为计量单位)执行过程也许比较慢长期调度程序控制多道程序设计的程序,即内存中的进程数量绝大多数进程可以分为I/O为主的进程

-在执行I/O方面比执行计算要花费的时间CPU为主的进程-很少产生I/O请求,与I/O为主的进程相比将

的时间用在执行计算上。14上下文切换15将CPU切换到另一进程需要保存原来进程的状态并装入新进程的保存状态。上下文切换时间是额外开销,因为切换时系统并不能做什么有用的工作。上下文切换时间与硬件支持密切相关。4.3进程操作-进程创建16父进程创建子进程,子进程又创建其他进程,从而形成了进程树三种资源共享方式父进程与子进程共享所有资源子进程共享父进程中的部分资源父进程与子进程不共享任何资源当进程创建新进程时,有两种执行可能父进程与子进程并发执行父进程等待,直到某个或全部子进程执行完毕进程创建(续)地址空间子进程是父进程的

品子进程装入另一个程序进来UNIX例子fork系统调用创建新的进程exec系统调用在fork调用后用新程序来取代进程的内存空间17fork另外一个进程的C程序18#include

<stdio.h>void

main(int

argc,

char

*argv[]){int

pid;/*fork

another

process

*/pid

=fork();if

(pid

<

0)

{fprintf(stderr,

“Fork

Failed”);exit(-1);}else

if(pid

==

0)

{execlp(“/bin/ls”,

“ls”,

NULL);}else

{wait(NULL);printf(“Child

Complete”);exit(0);}}一个典型的UNIX系统中的进程树19进程终止当进程完成执行最后的语句并使用系统调用exit请求操作系统删除它时,进程终止。此时进程可以返回数据到其父进程(通过系统调用wait)进程资源会被OS所在以下情况下,父进程可以通过abort系统调用终止另一个进程子进程使用了超过它所分配到的一些资源分配给子进程的任务已不再需要父进程退出级联终止204.4

进程协作21如果一个进程不能影响或被在系统内执行的其他进程所影响,那么该进程是独立的。如果一个进程能影响或被在系统内执行的其他进程所影响,那么该进程是协作的。进程协作的优点信息共享(Information

sharing)加快计算(Computation

speed-up)模块化(Modularity)方便(Convenience)生产-消费者问题22生产者进程产生信息,以供消费者进程消费。无限缓冲(unbounded

buffer)-对缓冲区大小没有实际限制有限缓冲(bounded

buffer)-假设缓冲区大小固定4.5

进程间通信23进程间通信(Interprocess

Communication,IPC)是用于进程间通信和行为同步的机制消息系统-允许进程间相互通信而不需要利用共享变量IPC工具至少提供两个操作发送(消息)接收(消息)如果进程P和Q需要通信,那么他们需要相互建立通信线路通过发送/接收来交换消息通信线路的实现物理方式(如,共享内存,硬件总线)逻辑方式(如,逻辑工具)进程间通信必须解决以下实际问题24通信线路如何建立?一个通信线路能否与两个以上进程关联每一对通信的进程之间允许存在多少通信线路?通信线路的能力是什么?通信线路容纳的消息的长度是固定还是可变的?线路是单向的,还是双向的?直接通信25需要通信的进程必须明确地命名通信的接收者或发送者send(P,message)-发送消息至进程Preceive(Q,message)

-从进程Q接收消息通信线路具有以下属性通信线路自动建立一个线路只与两个进程相关每对进程之间只有一个线路通信线路可能是单向的,但通常情况下是双向的间接通信对于间接通信,消息通过邮箱或端口来发送和接收。每个邮箱都有一个惟一的标识符进程只有共 个邮箱才能相互通信个邮箱,那么就建立通信线路具有如下属性只要一对进程中的两个成员共了它们之间的通信线路一个线路可以与两个或多个进程相关联两个通信进程之间可有多个不同的线路,每个线路对应于一个邮箱线路可以是单向的或双向的26间接通信(续)27操作创建一个新邮箱通过该邮箱发送和接收消息删除邮箱原语send(A,

message)-发送消息给邮箱Areceive(A,message)-从邮箱A接收消息间接通信(续)28邮箱共享P1,P2,P3共享邮箱AP1发送消息;P2和P3接收谁将获得这个消息?解决办法允许一条线路与两个以上的进程关联任一时刻只允许一个进程执行接收操作允许系统选择接收者,并且可以告诉发送者谁是接收者同步29消息传递可以是阻塞或非阻塞的阻塞的消息传递也称为同步消息阻塞send:发送进程阻塞,直到消息为接收进程或邮箱所接收阻塞receive:接收者阻塞,直到有消息可用非阻塞的消息传递也称为异步消息非阻塞send:发送进程发送消息并再继续操作非阻塞receive:接收者收到一个有效消息或无效消息缓冲通信线路用消息队列来保存消息,有以下三种实现方式零容量:队列中的最大长度为0。这种情况发送者必须阻塞,直到接收者接收消息有限容量:队列的长度为有限的n;因此,最多只能有n个消息难留其中。无限容量:队列长度可以无限;因此,不管多少消息都可在其中等待。发送者不阻塞304.6

客户机-服务器系统通信套接字(sockets)

过程调用(Remote

Procedure

Calls,RPC)

方法调用(Remote

Method

Invocation,RMI)31套接字(Sockets)套接字可定义为通信的端点。套接字由IP地址和端

连接组成套接字161.25.19.8:1625指的是主机161.25.19.8上的1625端口通信由一对套接字组成32使用套接字通信33过程调用(RPC)RPC设计成抽象过程调用机制,用于通过网络进行连接的系统。存根(Stubs)-RPC语言允许客户机调用位于主机上的过程,就如同调用本地过程一样。RPC系统通过在客户机端提供存根来做到这一点。客户机存根定位服务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论