指系统中一些进程需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态。同步是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。
进程的互斥(间接制约)mutual exclusion
由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥。某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。
相关概念:
互斥:指多个进程不能同时使用同一个资源;
死锁:指多个进程互不相让,都得不到足够的资源;
饥饿:指一个进程一直得不到资源(其他进程可能轮流占用资源)
临界资源:系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量
临界区:进程中访问临界资源的一段代码。
临界区问题
临界区(critical section):进程中访问临界资源的一段代码。
进入区(entry section):在进入临界区之前,检查可否进入临界区的一段代码。如果可以进入临界区,通常设置相应"正在访问临界区"标志
退出区(exit section):用于将"正在访问临界区"标志清除。
剩余区(remainder section):代码中的其余部分。
使用临界区应遵循的准则
有空让进:当无进程在临界区时,任何有权使用临界区的进程可进入
无空等待:不允许两个以上的进程同时进入临界区
多中择一:当没有进程在临界区,而同时有多个进程要求进入临界区,只能让其中之一进入临界区,其他进程必须等待
有限等待:任何进入临界区的要求应在有限的时间内得到满足
让权等待:处于等待状态的进程应放弃占用CPU
平等竞争:任何进程无权停止其它进程的运行进程之间相对运行速度无硬性规定
linux下的进程包含以下几个关键要素:
有一段可执行程序;
有专用的系统堆栈空间;
内核中有它的控制块(进程控制块),描述进程所占用的资源,这样,进程才能接受内核的调度;
具有独立的存储空间
进程和线程有时候并不完全区分,而往往根据上下文理解其含义。
阅读(2436) | 评论(0) | 转发(0) |