美文网首页
多进程图像

多进程图像

作者: 邵俊颖 | 来源:发表于2020-06-26 21:28 被阅读0次

概述

用户使用计算机就是启动一堆进程,用户管理计算机就是管理这一堆进程。

多进程的组织:PCB + 队列 + 状态

PCB

操作系统是使用PCB来感知进程的。PCB存储了进程的信息和各种状态。

状态

内存中的进程有三个状态,分别是进行中、排队等待中、等待事件中。其中对于排队等待中和等待事件中的进程,操作系统都是将其PCB创建一个队列进行管理的。

进程的状态转移图如下图所示:


进程状态转换图

队列

阻塞态和就绪态的进程都是使用队列来管理进程的PCB。

多进程引发的问题

多进程在内存中互相影响

两个不同的进程可能会对同一块地址进行写操作,进而造成进程的崩溃。

为了解决这个问题,引入了多进程的地址空间分离,即内存管理。将不同内存操作的内存地址映射到不同的内存区域。例如,进程1访问地址为100的内存,最终映射到了地址为780的区域;而进程2访问地址为100的内存是则会被映射到地址为1260的内存区域。从而避免了不同进程之间的互相影响。

进程管理+内存管理=多进程映像

多进程的合作

多个进程同时向打印机的缓冲队列中同一块区域写入数据,可能会造成冲突。这个问题类似于生产者和消费者问题。

多个进程同时进行写操作,可能会造成意想不到的结果。例如起始时资源数量为5,两个进程同时分别进行生产和消费,则最终可能的资源数为4或6,最终导致进程崩溃。

为了解决这个问题,在准备写时,需要首先检查指定资源是否被上锁,如果被上锁要等到锁被释放,否则首先对资源上锁,之后再进行写操作。

相关文章

网友评论

      本文标题:多进程图像

      本文链接:https://www.haomeiwen.com/subject/ypxpfktx.html