操作系统课件第3章--进程同步与通信.pptVIP

  • 5
  • 0
  • 约7.4千字
  • 约 58页
  • 2021-09-10 发布于广东
  • 举报

操作系统课件第3章--进程同步与通信.ppt

第3章 进程的同步与通信 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.1 进程同步的基本概念 3.2 信号量机制 3.2 信号量机制 3.2 信号量机制 3.2 信号量机制 3.2 信号量机制 3.2 信号量机制 3.2 信号量机制 3.2 信号量机制 3.2 信号量机制 3.2 信号量机制 3.2 信号量机制 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.3 经典进程同步问题 3.4 管程机制 3.4 管程机制 3.4 管程机制 3.4 管程机制 3.4 管程机制 3.4 管程机制 3.4 管程机制 3.5 进程通信 3.5 进程通信 3.5 进程通信 3.5 进程通信 3.5 进程通信 3.5 进程通信 共享缓冲区的合作进程的同步 当cp进程把计算结果送入buff后,iop进程 才能从buff中取出结果去打印,既当buff中有 消息时,Iop才能动作,否则必须等待; 当iop进程把buff中的数据取出打印后,cp 进程才能把下一个计算结果送入buff中,既只 有当buff为空时,cp进程才能动作,否则必须 等待; 共享缓冲区的合作进程的同步 Int Sa=0; Int Sb=0; Main() { parbegin CP(); IOP(); parend } CP() { while (计算未完成) { 得到一个计算机结果; p(Sb); 将数据送入缓冲区; v(Sa); } } IOP() { while (打印工作未完成) { p(Sa) ; 从缓冲区中取一数; v(Sb); 从打印机上输出 ; } } 生产者—消费者问题 Dijkstra把广义同步问题抽象成一种“生产者与消费者问题”(Producer-consumer-relationship)的抽象模型。事实上,计算机系统中的许多问题都可归结为生产者与消费者问题,生产者与消费者可以通过一个环形缓冲池(见下图)联系起来,环形缓冲池由几个大小相等的缓冲块组成,每个缓冲块容纳一个产品。每个生产者可不断地每次往缓冲池中送一个生产产品,而每个消费者则可不断地每次从缓冲池中取出一个产品。 生产者—消费者问题 生产者—消费者问题 (1)公用信号量mutex:初值为1,用于实现临界区互斥。 (2)生产者私用信号量empty:初值为n,指示空缓冲块数目。 (3)消费者私用信号量full:初值为0,指示满缓冲块数目。 (4)整型量i和j初值均为0,i指示首空缓冲块序号,j指示首满缓冲块序号。 模块设计(见教材74、75) 生产者—消费者问题 有三个进程PA、PB和PC合作解决文件打印问题:PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;PC将缓冲区2的内容打印出来,每执行一次打印一个记录。缓冲区的大小等于一个记录大小。请用P、V操作来保证文件的正确打印。 生产者—消费者问题 生产者—消费者问题 桌上有一空盘,允许存放一个水果,爸爸可向盘中放苹果,也可向盘中放橘子,儿子

文档评论(0)

1亿VIP精品文档

相关文档