操作系统学习笔记_05
进程控制
-
进程控制的主要任务:
-
创建进程
-
撤销进程
-
实现进程间的转换
-
进程控制通过操作系统内核来完成,操作系统内核由原语来实现进程控制,使用原语的目的是避免造成进程状态的不确定性,原语在执行时不允许被中断。
-
操作系统内核
-
现代操作系统一般将OS划分为若干层,将OS不同的功能放在不同的层次。
-
处理机执行状态
-
系统态(管态):执行特权指令和非特权指令
-
用户态(目态):执行非特权指令
-
-
支撑功能
-
中断处理:内核最基本功能,使CPU从用户态转换为系统态
-
时钟管理
-
原语操作
-
-
资源管理功能
-
进程管理
-
存储器管理
-
设备管理
-
-
-
进程的创建(调用进程创建原语)
-
进程的层次结构:OS中,允许一个进程(父进程)创建另一个进程(子进程)
-
进程图:描述进程间关系的一颗有向树
-
引起创建进程的事件
-
用户登录:分时系统中,用户登录成功,系统会为其创建一个进程
-
作业调度:多道批处理系统中,有新作业放入内存,系统会为其创建一个进程
-
提供服务:用户向系统提出一个请求时,系统会创建一个进程来处理该请求
-
应用请求:由用户进程请求创建一个子进程
-
-
为新进程分配内存资源时,OS必须知道它的大小
-
批处理系统中由用户提供
-
子进程由父进程提供
-
交互型系统系统分配
-
-
初始化PCB
-
初始化标识符:内部标识符、父进程标识符
-
初始化处理机状态信息:PC、栈指针
-
初始化处理机控制信息:进程状态设置为就绪或者静止就绪;优先级通常设置为最低优先级,除非用户显示提出高优先级要求
-
-
-
进程终止(调用进程终止原语)
-
正常结束
-
异常结束:错误或者故障被迫终止
-
外界干预:死锁、父进程请求、父进程终止
-
-
进程阻塞或唤醒
-
引起进程阻塞或唤醒的事件:
-
向系统请求共享资源失败
-
等待某种操作完成
-
新数据未到达
-
等待新任务到达
-
-
进程阻塞过程(调用进程阻塞原语)
-
状态:执行→阻塞
-
将PCB插入阻塞队列
-
保留被阻塞进程的处理机状态,按新进程PCB中处理机状态设置CPU环境
-
-
进程唤醒过程(调用进程唤醒原语)
-
将被阻塞的进程从等待该事件的阻塞队列中移除
-
将PCB现行状态改为就绪
-
将PCB插入到就绪队列
-
如果在某进程中调用了阻塞原语,则必须在与之相合作的另一进程中或其他相关的进程中安排唤醒原语,以能唤醒阻塞进程;否则,被阻塞进程将会因不能被唤醒而长久地处于阻塞状态,从而再无机会继续运行
-
-
进程的挂起(调用挂起原语)
-
检查状态:活动就绪→静止就绪或者活动阻塞→静止阻塞
-
复制PCB:将该进程的PCB复制到指定的内存区域
-
重新调度
-
-
进程的激活(激活原语)
-
将进程从外存调入内存
-
静止就绪→活动就绪/静止阻塞→活动阻塞
-
-
进程同步
-
目的:对并发的多个进程在执行次序上进行调度,使执行结果具有可再现性
-
__EOF__

本文链接:https://www.cnblogs.com/zyj3955/p/16133424.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-04-12 全国疫情数据可视化展示(详细介绍,含完整源码)