因此,往往就把“并行”和“并发”统称为“并发”
对应的编程方式(解决一个问题,同时搞多个任务来执行,共同协作解决)就称为“并发”
此处cpu的百分数,就是你的进程在cpu舞台上消耗时间的百分比
如果有一个进程,把cpu吃到百分百,意味着其他进程没有执行的时间了,这个进程就把cpu
霸占了,很可能造成系统卡顿
PCB中就需要提供一些属性,来支持系统完成对这些进程的调度
状态,优先级,上下文,记账信息
状态
描述,某个进程,是否能够去cpu上执行
有的时候,某个进程会不太方便,就比如,某个进程,通过Scanner等待用户输入内容
但是用户啥时候输入??完全不可控的事情
就绪状态:随时准备好去cpu上执行 操作系统,一打招呼,就上了
阻塞状态:这个进程,当前不方便去cpu上执行,不应该调度他
(比如,进程在等待IO,来自控制台的输入输出/硬盘输入输出/网卡输入输出)
其他的状态,暂时不做更多展开
程序执行到最后一行的时候,代码就需要暂停下来,不能继续往下走
要等待用户输入一个整数
进程暂停下来,不继续执行,这种等待的状态,就称为“阻塞”
这个阻塞,就是因为等待IO引起的阻塞
等待(wait)和挂起(hung up)
优先级
就比如你电脑上运行了吃鸡和qq,此时吃鸡的优先级是最高的,系统api可以直接设置的
记账信息
针对每个进程,占据了多少cpu时间,进行一个统计
会根据这个统计结果调整调度的策略
因此就需要在下一个轮次进行调整
确保每个进程都不会出现捞不着cpu的情况
计算机 操作系统 核心知识
操作系统定位:
一个非常重要的软件
1)对下管理各种硬件设备
2)对上给软件提供稳定的运行环境
抽象封装
操作系统中的核心概念,进程
当前咱们的系统,都是“多任务”操作系统
每个跑起来的程序,都称为“进程”
所谓的“同时”其实时并发+并行
进程管理
1.描述。PCB
2.组织,双向链表
PCB重要属性
1,PID进程的标识符
2,内存指针 进程使用的内存都在哪里,哪个部分放代码/指令,哪个部分放数据
3.文件描述表符 进程使用的硬盘的相关信息
支持进程调度
4,状态 就绪状态 阻塞状态
5,优先级
6,记账信息
7,上下文 支撑进程调度的重要属性 相当于游戏中的存档和读档