操作系统的并发

现代操作系统的中心问题是多道程序,多进程和分布式式进程,并发是这些问题的基础,同时也是操作系统设计的基础,当多个进程并发执行时,无论是在多处理机系统还是在单处理机系统中都会出现进程间协同的问题。

并发进程可通过多种方式相互作用,互相透明的进程要为使用资源展开竞争。这些资源包括处理机时间,I/O设备的访问权等。当共享某一对象时,进程就间接地觉察到对方的存在,例如共享一块内存或一个文件,进程也可直接认识对方并通过交换信息进行协同,在这些相互作用中的主要问题是互斥和死锁。

对于并发进程,互斥一个必要的条件,在任一时期,只能有一个进程可以访问某一给定的资源或执行某一给定的函数,互斥可用来解决一些冲突,例如竞争资源。也可用于进程同步以使他们能协同工作。例如生产者/消费者模型,一个进程向缓冲区添加数据,另一些进程则从缓冲区取走数据。

现在已有了不少解决互斥问题的算法,其中最著名的是Dekker算法,软件方法开销较大,错误较多,第二种方法是使用特殊的机器指令支持互斥,这种方法虽然减小了开支,但仍有不足,因为它用到了忙等待

另一种解决互斥的方法是在操作系统内部提供支持,两个最常用的技术是信号量好消息传递,信号量和消息传递能方便地实现互斥,而消息传递还可用于进程间通信。

死锁

死锁是由于进程间相互竞争系统资源或通信而引起的一种阻塞现象。如果操作系统不采取特别的措施这种阻塞将永远存在。例如可以杀死一个或多个进程或强迫他们撤回。死锁可能涉及到可重用资源和消耗性资源,消耗性资源在被进程占用时即消失,例如消息和I/O缓冲区的信息。可重用资源是不因使用而受到破坏的资源,例如I/O通道和存储器。

处理死锁的方法通常有3种:死锁预防,死锁 检测和死锁避免。死锁预防通过破坏产生死锁的是哪个必要条件而保证不会出现死锁。在操作系统随时满足资源请求时就要用到死锁检测。操邹系统检测到死锁并采取措施消除死锁。死锁避免是通过对资源请求是否有可能导致死锁的分析来消除死锁的可能性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • word直接复制来了,格式就不改了。至于这门课怎么复习,只要平时实验都认真完成、报告认真写,平时分都很高;考试的话...
    Jozhn阅读 10,199评论 0 8
  • 一、 【例3-1-4】在操作系统中,要对并发进程进行同步的原因是 。 A. 进程必须在有限的时间内完成 B. 进程...
    ZoeyeoZ阅读 10,628评论 0 9
  • 上周日廖元对小组本周规定的任务是“呼吸”。这也是贝茨法需要养成的习惯之一。说实话对自己今天的表现并不满意,首先自己...
    天天smile阅读 1,706评论 0 2
  • 楚天蓝蔚,正百鸟鸣春,遥山青翠。叶绿花红,挟万重烟水。江村柳烟雾笼,小溪潺、影流涓细。故里重游怀绪,惹旧时情意。 ...
    刘小地阅读 3,304评论 21 69
  • 我们不管做啥,都要有目标,无论是在工作,学习,生活,还是人际关系上都应该有明确的目标,这样才可以让自己做事更清晰,...
    小鹏strive阅读 2,607评论 1 1

友情链接更多精彩内容