第三章 进程的同步与通信

原创 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.消息缓冲队列机制

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

 ⑵发送原语

 ⑶接收原语 

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

进程同步和进程通信总结

在Linux下: 进程同步的意思是说,让不同进程能够在同时到达一个已知的特定状态之前等待另一方的执行。Linux   下常见的同步方法有SysVIPC   的   sem(信号量)、file   lo...

进程间同步的方法

进程间同步的方法   2010-05-10 01:03:42|  分类: Linux|字号 订阅 进程间通讯(IPC)方法主要有以下几种:        管道/F...
  • jfkidear
  • jfkidear
  • 2012年07月09日 14:59
  • 11698

OS2012_UNIT4 进程的同步与通信

  • 2012年12月17日 19:05
  • 258KB
  • 下载

进程间通信第三章(System V IPC)

1.概述 System V IPC的三种类型: System V消息队列 Syste V信号量

进程同步与通信

  • 2013年11月18日 23:06
  • 484KB
  • 下载

进程的同步与通信

  • 2013年01月12日 19:18
  • 216KB
  • 下载

Python 中的多线程,多进程,并发,并行,同步,通信

本文简单介绍了Python中并发和并行的机理,如何实现并发和并,以及一些多线程,多进程之间通信和同步的问题...

进程通信与同步

  • 2012年02月10日 22:15
  • 3.13MB
  • 下载

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

第一次发blog,若有错误请谅解和指导,谢谢!!!! 好了,我们回归正题: 随着时代的发展,线程应运而生。这是为什么呢?这是因为我们要进一步减少CPU的空转时间,支持多处理器以及减少上下文切换的开销,...
  • hbz1993
  • hbz1993
  • 2014年11月26日 19:26
  • 658
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第三章 进程的同步与通信
举报原因:
原因补充:

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