作者:书友48058773 | 来源:互联网 | 2023-09-12 18:09
进程控制
并发控制环境中:创建进程,分配资源;撤销已结束的进程;控制正在进行的程序状态的改变。
进程同步
为了使进程有条不紊的执行,程序设置进程同步机制,进程同步的主要任务就是对众多进行运行进行协调:
方式有两种,分别是
同步
相互合作的进程,由同步机构对它们的执行次序进行协调,前一个进程结束了,后一个进程才开始,前一个进程不结束,后一个进程就不能开始,在这种进程之间合作的执行关系叫同步。
进程同步实现的方法中 最常用的是 信号量机制
互斥
进程在对临界资源进行访问时,采用互斥方式,也就是当一个进程访问临界资源时,另一个要访问该资源的进程必须等待,当占用资源的进程释放资源后,其他进程才能获取临界资源,这种进程间的相互 制约方式叫做互斥。
进程互斥最常用的方法是设置锁,通过加锁、解锁实现互斥。
进程通信
多个进程需要相互配合来完成任务,所以进程间需要通信,进程通信的任务就是完成进程间的信息交换。
同一台计算机系统采用直接通信方式,源进程利用发送命令直接将消息发送到目标进程的消息队列上,然后由目标进程利用接收命令从消息队列里取出消息。
不在同一台计算机系统,由源进程利用发送命令到一个专门存放消息的中间实体中,然后目标进程利用接收命令从中间实体中取出消息。
处理器调度
高级调度(作业调度)将外存上处于后备队列中的那些作业调人内存,并为它们创建进程,分配资源,然后将创建的进程排在就绪队列上,准备在执行。
低级调度(进程调度)按照某种原则决定就绪队列中哪个进行应该获得处理机,在由分配程序执行处理机分配该进程的具动作。进程调度是操作系统中 最基本的调度。
中级调度,负责内外存之间的进程对换,以解决内存紧张的问题,提高内存的利用率和系统吞吐量
进程的描述
概念:一个数据结构以及能在其上进行操作的一个程序
或者说一个程序在一个数据集合上执行的过程,是操作系统资源分配和调度的一个独立单位。
一个程序在不同的数据集合上的运行,乃至一个程序在同一数据集合上的多次运行都是不同的进程。
进程的状态转换
就绪状态按照调度算法,获得处理器资源就会进入执行状态
运行状态时间片就会进入就绪状态,若是被I/O请求中断或者等待某一个资源就会进入阻塞状态
等待状态如果获得资源或者完成I/O操作就会进入就绪状态,等待下一次调度。
挂起(静止就绪状态)
未被挂起的称为活动就绪状态
进程控制
进程控制的主要任务
为作业程序创建进程、撤销已结束的进程以及控制进程在运行过程中的状态转换
进程控制块PCB
存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。
进程控制块组成 进程标识信息(内部和外部标识) | 进程名绘制序号 |
说明信息(进程调度信息) | 进程状态 |
进程优先权 |
进程等待原因 |
…… |
现场信息(处理器状态信息) | 通用寄存器内容 |
指令寄存器内容 |
…… |
管理信息(进程控制信息) | 程序和数据的地址 |
队列指针 |
进程同步和通信机制 |
资源清单 |
链接指针 |
…… |
其他信息 | …… |
进程的创建
只有进程才能得到执行,因此程序想要运行,必须为之创建进程,进程创建是操作系统执行程序的需要或者用户或进程要求创建一个新的进程。
引起创建进程的主要事件
- 用户登录:用户在终端键入登录命令,合法用户系统为之建立进程,放入就绪队列
- 作业调度:批处理系统,作业调度程序按照一定的算法调度某个作业时,便将该作业装入主存,为其分配资源,创建进程,放入就绪队列
- 提供服务:运行中用户提出某种请求,系统会专门创建进程为用户提供服务,如打印
- 应用请求:例如某程序需要不断从键盘读入数据,然后进行相应处理,处理结果以表格形式显示到屏幕,该进程会分别创建键盘输入进程、表格输入进程来完成相应地工作。
进程创建的处理过程:使用创建原语,按照以下步骤创建进程
为新进程分配唯一的进程标识符,从PCB队列申请一个空闲的PCB;
为新进程的程序和数据,以及用户栈分配相应地主存空间以及其他资源;
初始化PCB中的相应信息,如标识信息、处理信息、进程信息等;
如果就绪队列可以纳入新进程,便将新进程纳入到就绪队列中。
进程的撤销
引起进程撤销的事件:
- 进程正常结束
- 进程异常结束,如越界错误、超时故障、非法指令、运行超时、等待超时、算数运算错误、I/O故障等。
- 进程应外界的请求而终止运行,例如操作或者操作系统要求父进程干预或者父进程结束等。
进程撤销的过程:调用进程终止原语,按照下列步骤终止进程
- 根据终止进程的标识符,从PCB集合中检索该进程的PCB,读出该进程的状态;
- 若该进程处于运行状态,则立即终止该进程的运行;
- 如果该进程有子孙进程,还要将子孙进程终止;
- 将该进程所 占用的资源回收,归还给父进程或者操作系统;
- 将终止进程的PCB从所在队列中移出,撤销该进程的PCB,并将其加入到空闲队列。
进程与线程的管理
1,进程完成指派工作,正常终止。
2,由于出现错误,异常终止。
2,父(或者祖先)进程的要求被终止。
进程的等待
引起进程等待的事件
- 请求系统服务:正在运行的程序,请求系统提供服务时,例如申请打印机,但申请的资源正在被其他资源占用,该进程只能处在等待状态;
- 新数据尚未到达:如果一个进程需要另外一个进程提供数据后才能继续运行,在所需数据到达之前,只能处于等待状态。
- 无新工作可做
处理过程:调用进程等待原语,按照以下步骤阻塞指定进程
立即停止执行该进程;
- 修改PCB中的相关信息,把PCB中运行状态又运行改为等待,并填入等待原因,以及进程的各种状态;
- 把PCB插入到等待队列,根据等待队列的组织方式,把等待进程的PCB插入到等待队列中;
- 转调度程序重新调度,运行就绪队列中其他进程。
进程的唤醒
引起进程唤醒的事件
- 请求系统服务得到满足
- 启动某种操作完成
- 新数据已到达
- 有新工作可做
进程唤醒的过程:调用进程唤醒原语按照下列步骤唤醒指定进程
- 从等待队列中找到该进程;
- 修改该进程PCB控制块中的相关内容,把等待状态改为运行状态,删除等待原语等;
- 把PCB插入到就绪队列中,按照就绪队列的组织方式,把唤醒的PCB插入到就绪队列中。
摘自《操作系统》李冬梅