进程的状态及其状态的转换,每种状态的含义和转换的原因。同样我们也知道,在OS引入了进程后,可以使系统中的多道程序可以并发的执行,进程的并发执行一方面极大的提高了系统的资源利用率和吞吐量,但是另一方面却使系统变得更加复杂,如果不能采取有效的措施,对多个进程的并发执行进行妥善的管理,必然会因为这些进程对系统资源的无序争夺给系统造成混乱,致使每次的处理结果显现出不可再现性。

对于上面的问题,大家想一想这么一个场景,如果我们在买火车票(just for 举栗子)时,没有排队这个机制,大家乱糟糟的围在售票员旁边,手里举着钱大叫来一张到xxx的硬座、来张到xxx的卧铺。。。咦,不寒而栗、可怕、脑壳痛。但是如果我们有序的排队购票,大家就都可以快速的买到自己想要的通往幸福的车票。

进程同步机制就是这么一个保障OS中多个进程能够有条不紊的运行的“规则”。本文中,我们将会详细的介绍几种进程同步机制。(本章中所讲的OS是单处理机系统,多处理机系统中的情况过于复杂,不利于理解)
1.进程同步的几个重要概念
进程同步机制的主要任务,是对多个相关的进程在执行次序上进行协调,使并发执行的诸多进程之间能够按照一定的规则共享系统资源,并能很好的相互合作,从而是程序之间的执行具有可再现性。
进程间的两种制约关系:
间接相互制约(互斥):因为进程在并发执行的时候共享临界资源而形成的相互制约的关系,需要对临界资源互斥地访问; 直接制约关系(同步):多个进程之间为完成同一任务而相互合作而形成的制约关系。临界资源:只同一时刻只允许一个进程可以访问的资源称之为临界资源,诸进程之间应采取互斥方式,实现对临界资源的共享。比如打印机、磁带机等都是临界资源。我们通过打印机来说明为什么临界资源同一时刻只允许一个进程使用,假设同一时刻A、B进程同时访问打印机,两个进程同时执行打印任务,因为进程的并发性,最后可能导致的就是打印机打出来的内容就是混杂着两方的文字,这样得到的打印结果既不是A进程想要的也不是B进程想要的,只会造成资源的浪费。
临界区:进程中访问临界资源的那段代码。显然若能保证诸进程互斥的进入自己的临界区,便可实现进程间对临界资源的互斥访问。因为每个进程每个进程在进入临界区之前,应先对欲访问的临界资源的“大门”状态进行检测(主要检查该临界资源是否有进程正在访问,如果此时临界资源未被访问,对应的“大门”是敞开的状态),如果“大门”敞开,进程便可进入临界区,并将临界区的“大门”关上;否则就表示有进程在临界区内,当前进程无法进入临界区。










