进程的组成和状态
进程控制块PCB(唯一标志)、程序(描述进程)、数据(存放进程执行所需数据)。
进程基础的状态是下左图的三态图,需要熟练掌握左下图中的进程三态之间的转换。
运行、等待、就绪
前驱图
用来表示哪些任务执行,哪些任务之间有顺序关系,具体如下图所示:
可知,A、B、C 可以并行执行,但必须 A B C 都可以执行完后,才能执行D,这就确定了两点:任务间的并行,任务间的先后顺序。
进程资源图
用来表示进程和资源之间的分配和请求关系,如下图所示:
- P 代表进程,R 代表资源,R 方框中有几个圆球就表示有几个这种资源,在上图中,R1指向P1,表示R1有一个资源已经分配给了P1,P1指向R2,表示P1还需要请求一个R2资源才能执行。
- 阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续,如上图中 P2。
- 非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续运行。如上图中P1、P3.
- 当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。
进程得同步与互斥
临界资源:各进程间需要以互斥得方式对其进行访问得资源。
临界区:指进程中对临界资源实施操作的那段程序,本质是一段程序代码。
互斥:某资源(即lin'jie)内只能由一个任务单独使用,使用时需要加锁,多个任务可以并发执行,只不过有速度上的差异,在一定情况下停下等待,不存在资源是否单独或共享的问题,如自行车和汽车。
互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为1。
同步信号量:对共享资源的访问控制,初值一般是共享资源的数量。
P操作:申请资源,S=S-1,若S>=0,则执行P操作的进程继续执行,若S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。
V操作:释放资源,S=S+1,若S>0,则执行V操作的进程继续执行;若S<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞可以继续执行),然后执行V操作的进程继续。
文章评论