📅  最后修改于: 2023-12-03 15:28:36.825000             🧑  作者: Mango
本文介绍了1996年的计算机科学门考试中的第59章,主要涉及以下几个内容:进程同步、管程、信号量。
在多进程系统中,进程之间会因为共享资源的使用而出现冲突。解决这种冲突的方法就是进程同步。常用的有以下几种方法:
互斥访问就是限制同时只有一个进程可以访问共享资源,其他进程必须等待。相当于是对共享资源加锁,当某个进程访问完之后,才会解锁,其他进程才能访问。
同步访问是指多个进程按照特定的顺序来访问共享资源,避免竞争和死锁。
前趋图是指一个进程要访问共享资源,必须先完成一定的其他操作,形成一张图,这样就可以按照图中的顺序来访问共享资源,避免竞争和死锁。
管程是一种解决进程同步和互斥的高级工具,它包括数据和一组操作数据的过程,数据和操作数据的过程只能被管程内的进程调用。
使用管程可以很方便地实现进程的同步和互斥,因为管程中的操作是原子的,只有当某个进程离开管程后,其他进程才能进入并执行相应的操作。这也避免了死锁和饥饿问题。
信号量是一种用于进程同步的机制。信号量可以是整形或结构体,用于表示某种资源的数量。当一个进程需要使用这种资源时,它会将信号量减一。当另一个进程使用完该资源时,它会将信号量加一。
信号量的操作有两种,分别是P操作和V操作。P操作会将信号量减一,并检查是否已经达到了0,如果达到了0,则进入等待状态,直到某个进程释放了该资源,将信号量加一。V操作会将信号量加一,并唤醒因P操作而进入等待状态的进程。
本文介绍了进程同步、管程和信号量三个主题,它们都是解决多进程系统中资源竞争和死锁问题的有效工具。虽然它们的实现方式不同,但都可以很好地实现进程的同步和互斥。