哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)

文章目录

  • 0 接下来的重点
  • 1 多进程图像
    • 1.1 使用CPU
    • 1.2 多道程序交替执行
    • 1.3 并发(同时触发,交替执行)
  • 2 进程

0 接下来的重点


哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)_第1张图片


接下来的重点是进程管理以及文件视图管理。


哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)_第2张图片


了解为什么操作.dev文件,就就能够操作对应的设备呢?操作别的文件可以吗?这都是接下来要学习的内容。


哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)_第3张图片


1 多进程图像

操作系统在管理CPU的时候,引出了多进程图像,也就是说,通过多进程图像,操作系统管理明白了CPU,所以说多进程图像是操作系统的核心图像,多以最先就该明白操作系统怎么管理CPU,但是管理之前,肯定是先使用CPU,使用了才能管理好。

1.1 使用CPU


哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)_第4张图片

  • 使用CPU,程序放到内存当中,发出一个地址,设置PC = 50,然后CPU根据50地址发出取址命令,PC = 50,CPU就会把50放在地址总线上,把50这条指令从总线传回CPU,让其解释执行,总的来说,每次只运行一个进程,管理CPU的简单方案,根据进程的入口地址,设置好PC初值
  • 使CPU工作起来,PC设一个初值,剩下的CPU自动去取址执行即可,CPU就开始工作了,所以管理CPU使用CPU最直观的方法就是设置PC为程序的开始地址

哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)_第5张图片


1.2 多道程序交替执行


哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)_第6张图片

  • 有IO指令的时候,非常慢,因为CPU靠电路运行,所以IO必须得访问磁盘等器件,所以很慢

哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)_第7张图片

  • 现在假如碰到了这样的一种情况,就是一开始是上述的 1 0 6 10^6 106条非IO的指令,然后执行完后是一条IO指令,这CPU碰到了该怎么处理呢?CPU可不可以跳过这个费事的IO去处理下一条指令呢?那是不可以的,因为IO与硬件相关,假如要读一个数据进来,才能使用接下来的指令(指令很可能要依赖IO的结果)所以肯定是不能跳过的。所以CPU在这里,只能等,等IO完事了才能继续。而且从上图可以看出, T 工作 : T 空闲 = 50 : 50 T_{工作}:T_{空闲} = 50 : 50 T工作:T空闲=50:50,基本上是相等的,CPU的利用率是百分之50。注意,这还只是 1 1 1条IO指令,当IO多了去了,CPU利用率肯定会变得很低,那么怎么解决CPU利用率低的问题?
  • 这个问题很好解决,执行不下去的时候,CPU切出去,执行别的程序中继续执行,如果切过去的程序又不能工作了该怎么办?再切回去呗,这样CPU就会“忙”起来了,所以做到多个程序在内存中,也就是多道程序设计

哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)_第8张图片

从上图可以看出,多道程序中CPU忙碌起来了,执行快。


1.3 并发(同时触发,交替执行)


哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)_第9张图片
适当的时候,PC可以进行切换出去(怎么切出去?mov cs xxx // mov ip xxx 怎么切回来?把PC置成原来的即可,所以需要一个记录切出去程序执行到哪里的地址,这里用PCB进行存储),让CPU忙碌起来。


  • 进程不可避免的会有IO操作,CPU利用率就会降低,为了提高CPU利用率,我们希望多个进程可以并发的运行,为此需要实现(用户)进程切换功能,管理CPU不再是设置PC初值那么简单,进程运行时会有上下文信息/机器状态/PCB,切换进程时就需要切换这些上下文信息(关键问题:保存到哪里?怎么恢复?)
  • 操作系统本身也是一个进程,在单个CPU的情况下,在用户进程指令执行的时候,操作系统的指令显然是不能执行的
  • 既然这样的话,操作系统该怎么发挥它的功能呢?
  • 答案很明显,CPU的控制权也会在用户进程和操作系统之间来回转移前面我们讲解系统调用的原理,实际上就是这种转移的一个方面的体现,系统调用会对应一个 0 x 80 0x80 0x80的中断,陷入中断和中断返回的过程,就是CPU控制权在用户进程和操作系统之间转移的过程
  • 再举一个例子,现代操作系统为了实现交互性,降低响应时间,通常都会采用时分共享的时间片轮转调度,时间片触发中断的处理函数,会执行操作系统的进程调度程序,这里也对应了一个陷入中断和中断返回的过程。比较特别的是,在调度之后,中断返回的用户进程大概率不再是陷入中断时的用户进程
  • 可以得到一个结论,在单个CPU的情况下,操作系统要想获得CPU控制权,基本上就是通过中断机制实现的

2 进程

假如刚刚CPU切出去再切回来的程序不一样了,我们记录这个程序运行的时刻,要描述“不一样”(所有的不一样也是存放在PCB当中),多个程序在运行的时候,就需要记录多个程序运行的样子,就引入了进程的概念,进程就是进行中的程序


哈工大李治军老师操作系统笔记【6】:CPU管理的直观想法(Learning OS Concepts By Coding Them !)_第10张图片


  • 为了提高CPU利用率,CPU需要交替的执行多个程序,这是将来的重点

你可能感兴趣的:(OS,鸿蒙系统)