2021-08-03

随便写写

今天,看了一些操作系统的内容。
主要是关于进程同步和进程互斥的。这方面有许多有趣的问题。比如生产者消费者问题,多生产者消费者问题,哲学家吃饭问题,吸烟者问题,读者-写者问题等。

  1. 关于这些问题,主要的解决的方法是找出问题中可能存在的需要进行同步或者互斥的部分,设置对应的信号量。
  2. 其中需要注意的是,“空”可能也是一种资源,一个没有装水的杯子,杯子中的空间,本身就是一种资源。另外还要注意,对互斥访问的信号量需要设置在同步信号量的外面,也就是说,一个进程在运行到需要进行同步和互斥的代码时,应该先对需要与其同步的进程说“我看看有没有我需要的资源(P操作)”,然后如果有再对其他所有相关进程说“你们先别动这个共享空间”,接着进行完操作,就释放互斥信号量,再释放同步信号量。
  3. 还有,如果想让一些代码绑在一起运行,那就可以在前后加一个信号量(哲学家问题的一种解决思路)
  4. 最后是关于管程机制,管程中蕴含了一种封装思想,它把需要进行同步或者互斥的代码从逻辑中抽离出来并封装起来,使得使用管程的人可以不用担心自己的代码会因cpu的切换而不按顺序执行最后得到无法预期的结果。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值