[操作系统]进程的控制
2023-02-18 15:41:42 时间
进程控制:创建新的进程,撤销已有进程,实现进程状态转换
创建完成,提交===>就绪队列===>调度,切换===>CPU===>完成/异常结束
用原语实现进程控制,原语的特点是执行期间不允许中断,只能一气呵成,这种不可中断操作就是原子操作
原语采用"关中断指令"和"开中断指令"
1.进程的创建:
从无-->创建态-->就绪态
1)创建原语
申请空白PCB
为新进程分配所需资源
初始化PCB
将PCB插入就绪队列
2)引起进程创建的事件
用户登录-分时系统中,用户登录成功,系统会为其建立一个新进程
作业调度-多道批处理系统中,有新的作业放入内存
提供服务-用户向操作系统提出某些请求
应用请求-用户进程主动请求创建
2.进程的终止
1)撤销原语
从PCB集合中找到终止进程的PCB
立即剥夺CPU,将CPU分配其他进程
终止其所有子进程
将该进程的资源归还给父进程或操作系统
删除PCB
2)引起进程终止的事件
正常结束
异常结束
外界干预
3.进程的阻塞
引起进程阻塞的事件
需要等待系统分配某种资源
需要等待相互合作的其他进程完成工作
4.进程的唤醒
5.进程的切换
1)当前进程时间片到
2)有更高优先级的进程到达
3)当前进程主动阻塞
4)当前进程终止
相关文章
- 无需新型token mixer就能SOTA:MetaFormer视觉基线模型开源,刷新ImageNet记录
- 推荐一款神仙颜值的Redis客户端工具
- 首个在ImageNet上精度超过80%的二值神经网络BNext问世,-1与+1的五年辛路历程
- Redis+Guava,性能炸裂!这组合真的太顶了....
- 【eureka问题:已解决】Request execution failed with message: java.net.ConnectException: Connection refused:
- 【已解决】Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon runnin
- 【已解决】springboot在使用redisTemplate的测试的时候报空指针
- 差两个像素让我很难受,这问题绝不允许留到明年!
- React DevUI 18.0 正式发布🎉
- 好慌,我代码没了!不会是变基变出问题了吧?
- 老板:你为什么要选择 Vue?
- 实用的 Bash 快捷键
- Quill基本使用和配置 - DevUI
- Quill富文本编辑器的实践 - DevUI
- 如何解决异步接口请求快慢不均导致的数据错误问题? - DevUI
- 让我们一起建设 Vue DevUI 项目吧!🥳
- 号外号外!DevUI Admin V1.0 发布啦!
- 手把手教你搭建自己的Angular组件库 - DevUI
- 2021 年最值得推荐的 7 个 Angular 前端组件库 - DevUI
- 立完flag,你可能需要对flag进行量化