这个图详细说明了计算机整个框架,系统调用,操作系统内核和驱动程序三个统称为操作系统,应用程序通过操作系统提供的api来调用硬件设备,而对于硬件设别来说,每个计算机的硬件设备的种类和厂家不同,不能直接被操作系统调用,此时需要通过操作系统中的驱动程序来适配各种计算机的硬件设备,从而达到操作系统对硬件管理的作用。
操作系统指的是对计算机中系统资源管理的软件的统称(这里主要突出的是管理功能,分为对上和对下两个方面的管理:对上给软件提供稳定的运行环境,对下管理硬件设备)。
常见的操作系统:Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。
进程是操作系统对一个正在运行的程序的一种抽象,可以把进程看做程序的一次运行过程,通俗来说,操作系统中一个正在运行的程序叫做进程,不在运行的则不能成为进程。
特性类似于这种在计算机上的程序但并没有在操作系统中运行的就不能叫做进程。
进程是操作系统分配系统资源的基本单位,是一个重要的“软件资源”,它由操作系统内核来负责管理,管理主要包括对进程的描述和组织;
描述:通过C语言中的结构体(因为操作系统底层使用C/C++代码来写的)来对进程的属性和特征进行描述;
组织:每一个结构体成为一个PCB(进程控制块),组织就是通过数据结构把这些PCB串起来,底层所使 用的数据结构可以近似看成一个双向链表(其实远比双向链表复杂)。
每一个进程在执行时需要分配一定的资源(包括硬盘资源和CPU资源),其中硬盘空间很大,硬盘资源的分配比较充裕,而CPU资源较少(大部分为8核或者16核CPU)难以分配给上百个进程,那么如何分配这些CPU资源能让尽可能多的进程可以同时运行呢?这里就会涉及到进程调度。
在讲解进程调度之前,我们需要了解一下操作系统中的并发和并行的问题;
并发:两个进程在微观上不是同时执行,但是进程在不断的快速切换,使得在宏观上感觉是同时执行的。
并发和并行都是由操作系统内核负责处理的,对于操作系统来说,它无法感知进程是并发还是并行,所以我们一般都会称为并发(这里的并发 = 并行 + 并发)。
进程是由操作系统来负责管理的,操作系统中的有一个重要模块叫做进程调度器让有限的CPU来调度执行这么多进程。
下一篇:业务级灾备架构设计