操作系统 || 进程(线程)同步

本文详细介绍了操作系统中线程同步的重要性、方法,包括互斥锁、信号量、管程和消息传递,并通过实例解释了如何使用这些机制解决生产者-消费者问题,确保数据访问的安全性和正确性。
摘要由CSDN通过智能技术生成

1.为什莫要同步?

为了保证数据访问资源的正确性和安全性

2.进程(线程)同步

线程同步定义

  • 线程同步指的是当一个线程在对某个临界资源进行操作时,其他线程都不可以对这个资源进行操作,直至该线程完成操作,其他线程才能操作,也就是协同步调,让所有线程按照一定的顺序执行,使其正确性和效率都有迹可循

竞争:两个或多个线程竞争执行同一段代码或访问统一资源的现象
临界资源:该资源只能互斥共享
临界区:访问临界资源的代码段
在单核情况下,在同一个时刻两个线程都在同一段代码上,就是代码竞争,如果两个线程同时访问一个数据就叫数据竞争

进程是系统分配资源的基本单位
线程是处理机调度的基本单位

线程同步四种方法

  • 互斥锁,信号量,读写锁,条件变量

3. 互斥

  1. 任何时刻只能有一个人在临界区里,称为互斥
  2. 互斥要满足的四个条件
    1>不能有两个进程同时在临界区里面
    2>能偶在任何数量和速度的CPU上正确执行
    3>在互斥区域外不能阻止另一个进程的运行
    4>进程不能无限制的等待进入临界区

3.1 sleep,wakeup解决生-消问题

  1. 生产者和消费者问题
    生产者 缓冲区 消费者
    在这里插入图片描述
    在这里插入图片描述

sleep:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值