现代操作系统允许多程序运行,这就涉及到一个概念:进程---一个执行中的程序,进程是现代分时系统的工作单位
进程能同步执行,要多路使用cpu资源,通过进程对cpu资源的争夺,操作系统使得计算机更具创造性
一个系统由一系列进程组成:操作系统进程执行系统代码,用户进程执行用户代码
进程
👑进程的概念
早期的理解是,进程是一个程序,但是他并不单单是程序代码,还代表着当前的一些活动(由程序计数器和处理器的寄存器表示),通常包括:进程栈(存放全局变量,暂时数据等),堆(编程里的动态内存)
程序与进程的关系:
- 程序是被动的实体:例如一个文件存放的是代码
- 进程是主动的实体:例如程序计数器找出下一句代码并且执行
- 程序可变成进程:当可执行文件被装入内存中时
- 进程可以是代码的执行环境:最最普遍的例子就是java代码,不知道这里有多少码农被这个java虚拟机搞烦过,so,这个java虚拟机就是一个进程
👑进程状态
既然称之为状态,就说明进程状态是为了改变状态而存在的
通常包括:
👑进程控制块
进程通过进程控制块在操作系统中体现
前面介绍了进程状态,那么在状态间切换时,就用到了进程控制块,少侠请看下图
同时,在进程与进程间,也会用到PCB
简言之,PCB就是作为一个进程信息的存储库
👑进程调度
- 多进程的目的是让多个进程同时运行,这样可以最大化利用cpu资源
- 时间分享的目的是让进程轮流享用cpu,这样可以让用户交互到所有程序
为了实现上述两个目的,我们这里引入了进程调度: 在CPU上选择一个(或一组)可用的进程
对于单进程系统,只能运行一个进程,如果存在多个进程,那这些多出来的进程只能等待上一个进程的完毕(CPU is free)
👑上下文切换
处理器的物力资源是有限的,如有限个寄存器,但是没个进程都有自己的寄存器,如何让他们使用这些资源呢?
当然是在上下文切换中保存和恢复硬件状态
- 当上下文切换发生时,内核将旧进程的上下文保存在PCB中,并加载要运行的新进程 ,又提到了PCB :-D
2017年5月16日,再次修改
网友评论