第三章 进程的同步与通信

原创 2007年09月29日 18:57:00

第三章 进程的同步与通信

3.1   进程同步的概念

3.2   信号量机制

3.3   经典进程同步问题

3.4   管程机制

3.5   进程通信

 3.1     进程同步的概念

进程之间的关系:

资源共享关系:

相互合作关系:

1.  临界资源

临界资源的定义:

2.  临界区:

⑴临界区的定义

⑵临界区进入和退出的方法:

⑶同步机制应该遵循的准则:

  空闲让进、忙则等待、有限等待、让权等待

3.  利用软件方法解决进程互斥问题

4.  利用硬件方法解决进程互斥问题

⑴利用Test-and-Set指令实现互斥

   TS指令:

   TS(lock)

   Int   *lock;

   { int t;

    t=*lock;

    *lock=1;

    return(t);

   }

   入口:while(TS(&lock));

   出口:lock=0;

⑵利用Swap指令实现互斥

  Swap指令:

  Swap(a,b)

   Int  *a,*b;

  {

int  t;

t=*a;

a=b;

*b=t;

      }

      入口:key=1;

            do

            {swap(&lock,&key);

              }while(key==0);

           }

      出口:lock=0;

 

3.2     信号量机制

1.  整型信号量机制:

⑴整形信号量:

⑵利用信号量互斥:

⑶利用信号量描述前驱关系:

2.  记录型信号量机制:

3.  信号量集机制:

⑴AND信号量集机制:

⑵一般信号量集机制:
 

3.3     经典进程同步问题

1.        生产者消费者问题。

2.        读者写者问题。

3.        哲学家进餐问题。
 

3.4     管程机制

1.管程的引入:

2.管程的基本概念:

  ⑴管程的定义:

  ⑵条件变量

3.利用管程解决生产者----消费者问题

4.  利用管程解决哲学家进餐问题

5.  利用管程解决读者写者问题:(孙钟秀)

 

3.5     进程通信

进程通信的定义:进程间的信息交换。

进程通信:

低级进程通信:少量的信息交换,没有专门的通信机制,如信号量机制

             缺点:效率低,通信对用户不透明

高级进程通信:大量的信息交换,有专门的通信机制

 

1.  进程的通信类型:

⑴共享存储器系统

①基于共享数据结构的通信方式:

②基于共享存储区的通信方式:

  ⑵消息传递系统:

   message为传递单位

    直接通信方式和间接通信方式(信箱方式)

  ⑶管道通信

2.  直接通信和间接通信方式

 ⑴直接通信方式:

 ⑵间接通信方式:

3.  消息传递系统的几个问题:

 ⑴通信链路

 ⑵消息的格式

 ⑶进程的同步方式

  ①发送进程阻塞,接收进程阻塞;

  ②发送进程不阻塞,接收进程阻塞;

  ③发送进程和接收进程均不阻塞;

4.消息缓冲队列机制

 ⑴消息缓冲队列机制中的数据结构:

 ⑵发送原语

 ⑶接收原语 

版权声明:本文为博主原创文章,未经博主允许不得转载。

进程间通信 和 线程间同步

以前经常搞混,所以记录下来。 进程间通信主要是指多个进程间的数据交互。 而进程/线程间同步主要指维护多个进程/线程之间数据准确、一致性。 一.进程间通信主要有以下几种方式: 管道(pipe):...
  • majianfei1023
  • majianfei1023
  • 2016年05月31日 23:47
  • 1505

进程的同步与通信

[来源于文章,表示十分古老的文章了] (http://oa.gdut.edu.cn/os/multimedia/oscai/chapter8/pages/ch83.htm)Sleep 与 wakeup...
  • xiaorenwuzyh
  • xiaorenwuzyh
  • 2015年05月28日 21:11
  • 426

linux进程和线程之间通信方法和同步方法总结

linux进程和线程之间通信方法和同步方法总结; 共享内存,消息队列,管道; 信号量,互斥锁,条件变量,读-写锁...
  • Linux_ever
  • Linux_ever
  • 2015年12月18日 21:43
  • 1074

进程/线程同步、互斥、通信的问题:

最近也是遇到很多进程、线程同步、互斥,进程间通信的问题,这些问题放在一起很容易引起混淆,最近也查阅了相关的书籍资料和一些博客,在此写出自己的一些相关总结,希望对大家有帮助。首先要说的是进程、线程两种最...
  • Alvin_CSDN_blog
  • Alvin_CSDN_blog
  • 2017年03月20日 12:33
  • 517

进程同步和互斥的关系

进程的同步和互斥是并发进程的两种重要的关系,进程互斥反映了进程间的竞争的关系,进程同步反映了进程间协作的关系,从以上对进程互斥和同步的分析中,进程互斥其实就是一种特殊的进程的同步,例如,进程的互斥是进...
  • hello_world6
  • hello_world6
  • 2016年09月25日 19:56
  • 1715

操作系统 - 进程间的通信方式:

进程间的通信方式:    1.管道(pipe)及有名管道(named pipe):      管道可用于具有亲缘关系进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程...
  • tangchao1011
  • tangchao1011
  • 2014年09月22日 13:33
  • 1549

android中进程与进程,线程与线程之间如何通信??

原文地址:Android中的进程与线程    原文作者:江鹏 android中进程与进程,线程与线程之间如何通信?? 1.一个android程序开始运行时,会单独启动一个process 默认情况...
  • zxcvzxcv7
  • zxcvzxcv7
  • 2012年04月08日 11:35
  • 2282

初学者浅谈“进程间通信的同步和互斥的比较简单的作用和用法”

第一次发blog,若有错误请谅解和指导,谢谢!!!! 好了,我们回归正题: 随着时代的发展,线程应运而生。这是为什么呢?这是因为我们要进一步减少CPU的空转时间,支持多处理器以及减少上下文切换的开销,...
  • hbz1993
  • hbz1993
  • 2014年11月26日 19:26
  • 749

进程同步与异步概念

进程同步: 我们把异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互...
  • nkguohao
  • nkguohao
  • 2014年08月25日 16:27
  • 1055

在操作系统中,进程之间是如何通信的?

进程间通信(IPC),指的是进程之间信息交换,所交换的信息量少则是一个状态或树枝,多则是成千上万个字节。用于进程间通讯的方式分为两类: 共享内存,消息机制 分类一转载自 http://www.cn...
  • cczz598
  • cczz598
  • 2015年04月22日 16:39
  • 1621
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第三章 进程的同步与通信
举报原因:
原因补充:

(最多只允许输入30个字)