第5-6讲 进程同步(A)
- 格式:ppt
- 大小:1.07 MB
- 文档页数:54


操作系统进程同步与互斥在操作系统中,进程同步与互斥是非常重要的概念,它们对于保证系统的正确运行、提高资源利用率以及避免各种错误和冲突起着关键作用。
首先,咱们来聊聊什么是进程。
进程可以简单理解为正在运行的程序的实例。
比如说,你打开一个浏览器浏览网页,这时候就有一个浏览器进程在运行;你同时又打开一个文档编辑器写文章,那就又多了一个进程。
那进程同步又是什么呢?想象一下,有两个进程 A 和 B,它们需要合作完成一项任务。
进程 A 要完成某个操作后,进程 B 才能继续进行下一步操作。
这就需要一种机制来确保这种先后顺序,使得它们能够协调工作,这种机制就是进程同步。
举个例子,假设有一个打印任务。
进程 A 负责生成要打印的数据,进程 B 负责控制打印机进行打印。
进程 A 必须先把数据准备好,进程B 才能开始打印。
如果没有进程同步,进程 B 可能在数据还没准备好的时候就去打印,那结果肯定是一团糟。
再来说说进程互斥。
当多个进程都想要访问同一个资源,比如一个共享的变量或者一段代码,但是在同一时间只能有一个进程使用这个资源,这时候就需要进程互斥来保证资源的正确使用。
比如说,有一个银行账户,多个进程可能同时想要对这个账户进行操作,比如存钱或者取钱。
但在同一时刻,只能有一个进程来修改账户的余额,否则就会出现混乱,比如余额计算错误等问题。
为了实现进程同步和互斥,操作系统提供了一些常用的方法和机制。
信号量就是其中一种重要的工具。
信号量可以看作是一个计数器,它的值表示当前可以使用的资源数量。
进程通过对信号量进行操作来实现同步和互斥。
比如,P 操作会减少信号量的值,如果信号量的值小于 0 ,进程就会被阻塞;V 操作会增加信号量的值,如果有被阻塞的进程,就会唤醒其中一个。
还有管程,它把共享资源和对共享资源的操作封装在一起,进程只能通过管程提供的接口来访问共享资源,这样就保证了互斥访问。
另外,临界区也是常见的概念。
临界区是一段代码,在这段代码中进程访问共享资源。