三、进程管理
-
程序基本概念
1. 程序执行的两种方式:顺序执行、并发执行(现代操作系统多为并发执行,引入并发执行的目的是为了提高资源利用率)。
2. 顺序执行:一个计算的若干操作必须按照严格的先后次序顺序地执行,这类计算过程就是程序的顺序执行过程。
3. 并发执行:指一组在逻辑上相互独立的程序或程序段在执行过程中,其执行时间在客观上相互重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。
-
进程基本概念
1. 定义:进程是指一个具有独立功能的程序对某个数据集在处理机上的执行过程和分配资源的基本单位。
2. 进程和程序的区别:
3. 进程的组成:进程通常由程序、数据集合和进程控制块PCB三部分组成。程序和它操作的数据是进程存在的静态实体,而专门的数据结构PCB用来描述进程当前的状态、本身的特性等。
-
进程的状态
1. 就绪状态:处于就绪状态的进程已经得到除CPU之外的其他资源,只要由调度得到处理机,便可立即投入执行。
2. 运行状态:进程调度程序从就绪队列中选择一个进程分配给它CPU控制权,该进程所处的状态为运行状态。
3. 等待状态:进程因等待某个事件的发生(如等待I/O的完成),而暂停执行,则该进程处于等待状态(这时,即使给它CPU,它也无法执行)。
-
进程的相互作用:多道程序的环境中,系统中的多个进程可以并发执行,同时它们又要共享系统中的资源。这些资源有些是可共享使用的,如磁盘,有些是以独占方式使用的,如打印机。由此将会引起一系列的矛盾,产生错综复杂的相互制约的关系。
-
进程互斥
1. 临界资源:一次仅允许一个进程使用的资源成为临界资源。
2. 临界区:每个进程中访问临界资源的那段程序段称为临界区。
3. 互斥的定义:在操作系统中,当某一进程正在访问某临界区时,就不允许其它进程进入,进程之间的这种相互制约的关系成为互斥。
-
进程同步
1. 异步环境下的一组并发进程互相发送消息而进行互相合作、互相等待,使得各进程在执行速度上相互协调,这样的相互制约关系称为进程同步。
2.
同步与互斥的关系:
-
死锁
1. 定义:指各并发进程彼此相互等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源。从而造成大家都想得到资源而又都得不到资源,各并发进程不能继续向前推进的状态。
2. 死锁的必要条件:互斥条件(资源是不可共享的临界资源,进程要求对所分配的资源进行排他性控制);部分分配(进程每次申请它所需要的一部分资源,在等待新资源的同时,继续占有已经分配到的资源);不剥夺条件(进程已经获得资源,在没有使用完之前不能被剥夺);环路条件(在发生死锁时,必然存在一种进程-资源的循环链,链中每一个进程已获得的资源同时被下一个进程所请求)。
3. 安全状态:现有进程资源占有的情况下,各进程按照某种推进顺序仍然可以使每个进程得到其对资源的最大需求,从而都可以顺利地完成。
4. 死锁的排除方法:
5. 预防死锁的方法:
-
银行家算法的实质就是要设法保证系统动态分配资源后仍然保持安全状态,从而避免死锁的发生。要求进程预先告知自己的最大资源需求,并且假设系统拥有固定的资源总量。
1.
2.
3.
4.
-
进程间通信IPC:http://www.cnblogs.com/applebunny/archive/2012/07/11/2586483.html
1. 通信类型:低级通信(只传送控制信息)和高级通信(传送大批量的数据,目的是为了交换信息);直接通信(发送和接收时都要致命进程的名字。信息直接传递给接收方,如:管道)和间接通信(发送进程发消息时不指定接收进程的名字,而是借助于收发双方进程之外的共享数据结构作为通信中转,如消息队列。)。
2. 通信方式——消息/邮箱机制:
3. 通信方式——共享存储区:两个需要互相交换信息的进程通过对同一共享数据区(sharedmemory)的操作来达到互相通信的目的。这个共享数据区是每个互相通信进程的一个组成部分。
4. 通信方式——消息缓冲机制:发送进程先申请一个消息缓冲区,写入消息后把该消息缓冲区送入接收进程的消息队列中,通知接收进程。接收进程从消息队列中摘下一消息缓冲区,取出所需要的信息。
-
线程的基本概念
1. 引入线程目的:为了提高系统的执行效率,减少处理机的空转时间(使得单个进程可以利用CPU和I/O之间的并行性),减少调度切换(保护现场信息)的时间,以及便于系统管理,引入了“线程”。
2. 定义:线程是进程的一个实体,是CPU调度的最基本单位。(资源分配的基本单位还是进程)
3.