进程(Process)和操作系统(Operation System)
操作系统
操作系统是计算机中最重要的一个软件。
市面上最常见的操作系统有:windows,Linux,MacOs,IOS,Android。
操作系统的作用
操作系统的作用通俗讲是搞管理,可以分为对上和对下:对上是要给软件提供一个稳定的运行环境(我们现在后台所运行的各种软件,都是在Windows这个操作系统之上所运行的);对下是管理所有的硬件设备。
操作系统的还一个重要工作是会让用问题的程序只影响自身,而不去影响别的程序。
操作系统如何进行管理
操作系统进行管理分为描述和组织。
描述:操作系统要进行管理硬件资源和软件资源,需要一些“结构体”进行描述硬件和软件的属性。
组织:把若干个对象通过数据结构串起来,方便后续的增删改查。
操作系统的BUG
操作系统也会遇到BUG,例如windows会出现蓝屏情况(Windows特有的情况),这就是操作系统中的驱动程序(在操作系统内部运行)出现bug,导致蓝屏。
进程(Process)
操作系统要管理的软件和硬件资源很多,但进程这一软件资源很重要。
”运行起来的程序“在计算机术语中叫进程,当运行一个程序(双击一个.exe),就会在操作系统中生成一个或多个进程,每个进程都要消耗一定的系统资源。
在操纵系统中,进程是资源分配的基本单位。
进程管理
操作系统会对进程进行管理。
描述:操作系统会通过一些结构体把一个进程的关键属性描述出来——PCB((Process Controtll Block)进程控制块)
组织:操作系统会通过一些数据结构(最典型是链表)将上面得结构体对象串起来(不可以使用数据库表示进程,数据库本质上是在操作系统上的一个软件,数据库是先有数据结构,再有数据库)。
那么所谓的创建进程:创建一个新的PCB对象,将它插入链表。
销毁进程:将链表上的PCB对象进行删除,释放。
进程使用CPU资源(进程调度)
并行:同一时刻,两个处理器核心,分别运行两个进程。
并发:一个处理器核心,通过”分时复用“的方式,运行两个进程。
CPU中的处理器在同一时刻,要处理两百个进程,所以操作系统在实际执行过程中会同时进行并行和并发。
进程PCB的关键属性
1)PID(进程的ID)
进程在系统上的身份表示,不会重复(当前计算机,同一时刻)。
2)内存指令(一组/多个)
进程在执行时,要申请一系列的内存资源,因此,操作系统就要能够知道,每个进程的整个内存空间中分成了哪几个区域,每个区域什么样的作用。而通过内存指针,操作系统就可以知道,哪里可以找到数据,哪里可以找到指令。
这里体现了进程使用”内存资源“。
3)文件操作符表
硬盘资源,也是重要的资源,操作系统通过”文件“进行管理硬盘,进程在使用某一文件时,就是在访问相应的硬盘空间。
进程进行访问文件,需要打开文件才能访问,那么如果打开成功,就会得到一个文件描述符,而一个进程在运行时会打开多个文件,就会得到多个文件描述符,这些文件描述符通过数组/顺序表就得到了文件操作符表。
体现了进程使用硬盘资源。
4)状态
有些进程不方便被CPU调度执行,有些方便。
状态有很多种,其中最重要的两个:
就绪状态:进程随时可以调度到CPU上。
阻塞状态:进程随时可以进行调度。
5)优先级
CPU给进程分配的资源不同。
6)上下文
一个进程在进行运行的时候,会有一系列的中间状态,当进程被从CPU上调度走时,就需要把这一中间结果保存,等下次进程重新回到CPU上时,就把中间状态恢复,继续执行,类似于”存档“。
7)记账信息
PCB会在记录该进程在过去在CPU上一共执行了多久/执行了多少次。
可以识别出是不是某个进程太久没在CPU上执行。