【哈工大李治军操作系统听课笔记】L8. CPU管理的直观想法

1.对CPU运行管理的直观想法

一个基本的常识:CPU的工作原理就是不断地取指,执行,再取指,再执行的过程。因此管理CPU最直观的想法就是,直接设好PC指针需要指向的程序入口地址,然后让CPU不断地执行就完事。
【哈工大李治军操作系统听课笔记】L8. CPU管理的直观想法_第1张图片

2.并发概念

但是这样就会自然地发现一些问题。假设一个程序需要等待IO相应后才能继续执行下去,那么在等待响应的这段时间内,CPU就是完全空闲的状态。如果程序需要多次等待这种不需要CPU参与的相应,这不就造成了CPU资源的浪费了吗。

我们发现,上边给出的“直观想法”虽然可以使得CPU运转起来,但是实际上这种管理方式会使得CPU的利用率变得很低。

因此我们自然会想到,使用多到程序一起执行,一旦一个程序遇到了等待事件,我们就切到另一个程序中执行,这样就可以让CPU不停地运转下去,保证其利用率。

这就产生了并发的思想,即多个程序一起出发,交替执行。当A程序需要等待某个事件的时候,就切换到B程序继续执行。通过这种方法,CPU就可以一直处于忙碌状态。
【哈工大李治军操作系统听课笔记】L8. CPU管理的直观想法_第2张图片

3.进程和PCB

要想实现这种切换,操作系统只要单纯地修改PC指针指向另一个程序就可以了吗?显然是不行的。
例如执行A程序的时候寄存器上保存的值是A的计算结果,如果此时切换到B程序执行,这些寄存器上的值就会被B程序覆盖。等到再次切换回A程序的时候,A之前保存在寄存器上的结果就丢失了,这样就会造成计算的不准确。

那么为了防止这种情况的出现,自然需要一种数据结构来保存各个程序运行的时候的执行位置,执行现场等重要信息。那么现在的运行起来的程序就和静态的程序产生区别了,运行起来的程序变成了另一种结构的组合,即:程序+记录当前执行情况的数据结构。

这种程序+记录当前执行情况的数据结构是并发造成的一个必然结果。因此需要一个新的名字来命名它。我们给这个结构定义一个概念:进程。而保存进程执行情况的数据结构叫做进程控制块,即PCB。

运行的程序和静态程序不一样

  • 需要描述这些不一样… (这些不一样就成了 进程概念的外延)
  • 程序 + 所有这些不一样 -> 一个概念 (所有的不一样都表
    现在PCB中…)

你可能感兴趣的:(操作系统专栏,操作系统)