【操作系统复习】第三章 第四节 进程同步与进程通讯

操作系统复习

第三章 进程管理

3.4 进程同步与进程通信

一、进程间同步与互斥
  • 进程间制约关系
    • 直接制约关系:同步
    • 间接制约关系:互斥
  • 临界资源与临界区
    • 临界资源:一次仅允许一个进程访问的资源
    • 临界区:访问临界资源的程序段
      • 进入区
      • 临界区
      • 退出区
    • 临界区的原则
      • 空闲让进
      • 忙则等待
      • 有限等待
      • 让权等待
二、硬件方法解决互斥/硬件同步机制:硬件层面

1.关中断

2.专用机器指令:

  • Test-and-Set加锁:lock
  • swap指令实现互斥
三、信号量和PV原语:操作系统层面

大题:用信号量机制写PV操作代码实现互斥/同步

  • 信号量的物理意义:
    • S>0,表示有S个资源可用
    • S=0,表示无资源可用
    • S<0,则|S|表示S等待队列中的进程个数
    • 进程等待队列s.queue是阻塞在该信号量的各个进程
  • 对信号量的操作:初始化和两个标准原语
    • 初始化:资源数目
      • 若初始化为1,则用于进程互斥
    • P(s)操作:申请一个资源
      • s–
      • If s < 0, 则阻塞进程
    • V(s)操作:释放一个资源
      • s++
      • if s <= 0, 则唤醒一个等待的进程
  • 利用信号量实现互斥
    • 借书系统
  • 利用信号量实现同步
    • 进程执行顺序问题
    • 司机-售票员问题
    • 生产者-消费者问题
    • 读者-写者问题
      • 读者优先
      • 写者优先
    • 哲学家进餐问题
四、管程机制:语言层面
  • 思想:把信号量及其操作原语封装在一个对象内部
  • 管程是编译语言的组成部分,互斥由编译器负责
  • 条件变量
    • 一个数据结构,指向等待队列,每个队列等待原因不同
五、进程通讯

1.进程通讯

  • 低级通讯:简单的信号交换,如PV操作
  • 高级通讯:高效、大量的数据传递

2.进程通讯类型

  • 共享存储器系统:共享数据、数据区
  • 消息传递系统
    • 直接通讯方式:消息缓冲
      • 采用进程的消息缓冲队列
      • 消息发送者将消息直接放在接收者的消息缓冲队列
      • 接收者从消息缓冲队列中读取数据
    • 间接通讯方式:邮箱通讯
      • 利用中间者——信箱、邮局来传递信件。
      • 发送进程将消息发送到信箱中,接收进程从信箱中取出消息
  • 管道通讯:共享文件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值