进程管理
并发程序的特征:间断性;市区封闭性;不可再现性。
进程的定义:进程是一个有一定独立功能的程序在某个数据集合上的一次运行活动。
进程具有的特征:
1)动态性(进程是程序在并发系统中的一次执行,一个进程有一个产生到消亡的生命周期);
2)并发性;
3)独立性;
4)制约性(互斥使用资源和进行进程之间的同步和通信) 。
进程和程序的区别:
1)进程是程序的执行,进程属于动态概念,而程序只是一组指令的有序集合,是静态概念;
2)进程是程序的执行,因而它是有生命过程的,其存在是暂时的,而程序的存在是永久的;
3)进程是程序的执行,因此进程的组成还应包括程序和数据。除此之外,进程还由记录进程信息的进程控制块PCB组成;
4)一个程序可能对应多个进程
PCB是OS感知进程存在的唯一标识,PCB结构如下:
进程标识符、现行状态、现场保留区、程序与数据地址、互斥与同步机构、进程通信机构、进程优先数、资源清单、链接字、家族关系。
进程状态及其转化如下:
进程管理原语:
1、创建原语:主要工作是为被创建进程建立一个PCB,初值PCB参数;分配唯一的进程标识号、内存和其他必要的资源,置进程状态为就绪;
2、撤消原语:在进程完成任务后,撤销进程,包括它的PCB在内;都应由OS回收,同时撤销其所有的子进程;
3、挂起原语:当需要将进程置于挂起就绪或者挂起阻塞时可调用挂起原语。
创建进程的方法:1)由OS的初启程序以特殊方式创建系统的第一个进程
2)父进程通过相应的系统调用
进程互斥指的是读个进程之间要排他地使用临界资源(一次只允许一个进程使用的资源)。
进程同步指的是系统中往往有几个进程共同完成一个任务,因此他们之间必须协同配合,需要交换信息进行进程间的通信,要不断调整他们之间的相对速度。
临界区准则:
1)一次至多允许一个进程进入临界区;
2)多个进程同时要求进入临界区时,在有限时间内允许其中之一进入
3)进程在临界区逗留有限时间
临界区软件解决方案:
1)DEKKER算法(优待标记算法);
2)用屏蔽和开放中断指令实现临界区(在代码前后加入改变CPU中断优先级的代码)
3)上锁与解锁指令
信号量(PV实现互斥)
使用PV注意事项:
1)PV成对出现;
2)PV都是原语,不可中断
经典同步问题
1)生产者--消费者问题
2)5个哲学家就餐问题
进程间通信
1)软中断通信(向某进程的proc(PCB常驻内存部分)发送软中断信号(0-19),0表示正常)
2)共享存储区(剪贴板)通信
3)管道通信
4)消息通信(申请一个消息缓冲区)
线程
1、线程继承所属进程的资源,作为基本的调度单位
2、线程和进程的异同点:
1)都属于动态概念,生命期短暂;
2)线程是进程的一个组成部分
3)系统以线程作为调度单位,执行的是线程
4)都是并发的
5)进程拥有资源,线程共享所依附进程的资源
6)都有多种状态
7)进程的创建、切换、撤销需要很大的时空开销,进程的多个线程在进程地址空间活动,,线程的通信、切换需要的系开销较小
多核环境下的进程同步实现方法:
1)总线锁;
2)测试并设置指令(test、set)
3)旋锁