当前位置:网站首页>进程管理基础
进程管理基础
2022-07-06 18:46:00 【坎坷的程序员】
进程管理也称处理机管理
程序与进程
- 程序的执行顺序:1-2-3,1是2的前驱,2是1的后继
- 同一个作业没有前驱关系的程序断或不同作业的程序段可以分别并行执行。
- 程序并发执行的特征:失去了程序的封闭性,程序和机器的执行顺序不再一一对应,并发程序见的相互制约性
进程的组成
- pcb是进程存在的唯一标准
- 程序:一个程序能被多个进程同时共享执行,那这一部分就应该再入纯码的形式编制,程序执行时不可以修改
- 数据:数据部分包括程序执行时所需的数据以及工作区,该部分只能为一个进程所专用,是进程的可修改部分
进程的状态
- 三态模型
运行:当一个进程在处理机上运行
就绪:一个进程已经准备好了一切,准备运行
阻塞:一个进程运行的过程中需要等待某事才可以运行
五态模型
创建:创建了但是没有提交
终止:当进程执行完之后,就释放内存了
挂起状态
活跃就绪:进程在主存中可以被调度
静止就绪:进程被切换到辅存中,只有等待主存中有位置,才会被调度,或者它的优先级更高
活跃阻塞:进程在主存中,等待的事件一旦完成,就进入就绪
静止就绪:阻塞的时间太久,就会被切换到辅存,只有让等待的事件完成,才可以到静止就绪,等待机会才可以活跃就绪
进程控制
所有进程从创建到消亡的全过程实施有效的控制
进程控制是由操作系统内核中的原语实现的
进程间的通信
- 同步与互斥
- 同步:进程间的相互协调,a进程完成,b进程开始
- 互斥:我的你不能拿
- 管理原则:有空则进,无空等待,有限等待,让权等待
- 有限等待:要保障进程在有限的时间进入临界区
- 让权等待:当进程不能进入临界区,就释放
- 信号量机制:公用:互斥,1 私用;同步 0
高级通信原语
- 共享存储模式:相互通信的进程共享某些数据结构实现通信
- 消息传递模式:通过原语进行通信
- 管道通信:通过pip文件,写进程和读进程
管程
- 将资源集中管理,将系统中的资源抽象的表现出来。
- 管程是由:共享数据,一些能为并发进程所执行的作用在共享数据上的操作集合,初始代码以及存取权组成。
进程调度
- 高级调度:高级调度也叫:长调度,接纳调度,作业调度。将进程丢到就绪状态
- 中级调度:也叫:中程调度,对换调度,将交换区的进程丢到运行,或者将阻塞状态的丢到交换区,让路给其他进程
- 低级调度:也叫短程调度或者进程调度,将内存中的进程丢到运行
- 调度算法:
- 先来先服务:谁先谁用
- 时间片轮转:固定时间片:分配给每个进程的时间片相等,可变时间片:根据实际情况进行变化
- 优先级调度:根据优先级进行调度,静态优先级:开始的时候就会创建一个优先级,不能变化,动态优先级:可以变化
- 多级反馈调度:最高优先级队列可以先运行
- 进程优先级确定:
- 对于I/O型进程,最高级队列,计算性进程,最低级队列,I/O次数不多,主要是cpu的进程,在完成I/O之后,优先返回I/O进程结束的队列
死锁 - 有2个资源,一人一个,但是他们都要抢对方的,就会构成一个环路,造成死锁
- 死锁的解决方法:
- 预先静态分配法:一次性请求所有资源,不给他们抢的机会
- 资源有序分配法:把资源分类按顺序排列,不让他们形成环路
边栏推荐
- 15million employees are easy to manage, and the cloud native database gaussdb makes HR office more efficient
- 阿里云易立:云原生如何破解企业降本提效难题?
- Tips for web development: skillfully use ThreadLocal to avoid layer by layer value transmission
- Several classes and functions that must be clarified when using Ceres to slam
- Halcon实例转OpenCvSharp(C# OpenCV)实现--瓶口缺陷检测(附源码)
- The boss is quarantined
- 纽约大学 CITIES 研究中心招聘理学硕士和博士后
- Overall query process of PostgreSQL
- leetcode:736. Lisp 语法解析【花里胡哨 + 栈 + 状态enumaotu + slots】
- Detailed explanation of line segment tree (including tested code implementation)
猜你喜欢
Lumion 11.0软件安装包下载及安装教程
压缩 js 代码就用 terser
The boss is quarantined
Word wrap when flex exceeds width
Lidar: introduction and usage of ouster OS
使用Ceres进行slam必须要弄清楚的几个类和函数
Infrared camera: juge infrared mag32 product introduction
【论文阅读|深读】 GraphSAGE:Inductive Representation Learning on Large Graphs
leetcode:736. LISP syntax parsing [flowery + stack + status enumaotu + slots]
处理streamlit库上传的图片文件
随机推荐
Apifox,你的API接口文档卷成这样了吗?
传感器:DS1302时钟芯片及驱动代码
Zhang Ping'an: accelerate cloud digital innovation and jointly build an industrial smart ecosystem
真实项目,用微信小程序开门编码实现(完结)
Overall query process of PostgreSQL
unity webgl自适应网页尺寸
所谓的消费互联网仅仅只是做行业信息的撮合和对接,并不改变产业本身
Collection recommandée!! Quel plug - in de gestion d'état flutter est le plus fort? Regardez le classement des manons de l'île, s'il vous plaît!
How to build a 32core raspberry pie cluster from 0 to 1
MetaForce原力元宇宙开发搭建丨佛萨奇2.0系统开发
Processus général de requête pour PostgreSQL
[paper reading | deep reading] graphsage:inductive representation learning on large graphs
GEE升级,可以实现一件run tasks
[C # notes] use file stream to copy files
argo workflows源码解析
Draco - glTF模型压缩利器
How can reinforcement learning be used in medical imaging? A review of Emory University's latest "reinforcement learning medical image analysis", which expounds the latest RL medical image analysis co
Halcon实例转OpenCvSharp(C# OpenCV)实现--瓶口缺陷检测(附源码)
阿里云中间件开源往事
1500万员工轻松管理,云原生数据库GaussDB让HR办公更高效