一、操作系统(Operating System, OS):是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,他是计算机系统的最基本的系统软件。
上图中箭头的含义分别是:
①、操作系统作为系统资源的管理者,提供的功能有:处理器管理、储存器管理、文件管理、设备管理。
②、操作系统作为用户与计算机硬件之间的接口,为上层的用户、软件等提供简单易用的服务。提供的功能有:命令接口(允许用户直接使用)、程序接口(允许用户通过程序间接使用)、GUI(图形用户接口)
③、操作系统作为最接近硬件的层次。
注意:命令接口又分为:联机命令接口(交互式命令接口)和脱机命令接口(批处理命令接口);程序接口:由一组系统调用(有时也叫广义指令) 组成
二、操作系统特征:并发、共享、虚拟、异步。其中,并发和共享式两个最基本的特征,二者互为存在条件。
并发:指两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但微观上是交替发生的。操作系统的并发性指的是计算机系统中同时存在着多个运行着的程序。
易混淆点:并行:指两个或多个事件在同一时刻同时发生。
共享:即资源共享,是指系统中资源可供内存中多个并发执行的进程共同使用。共享方式分为互斥共享方式(一个时间段内只允许一个进程访问该资源)和同时共享方式(一个时间段内允许多个进程“同时”访问该资源)。注意:我们这里的同时往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问(即分时共享)。
并发和并行的关系:并发性指计算机系统中同时存在着多个运行着的程序;共享性是指系统中的资源课供内存中多个并发执行的进程共同使用。那么很明显,如果失去了并发性,那么系统中就只会存在一个正在运行的程序,所以共享性就失去了存在的意义;反之,如果失去共享性,那么我们多个进程就不会同时访问硬盘资源,那么久无法实现并发执行的操作。因此我们说并发行和共享性是互为存在条件。
虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应物是用户感受到的。虚拟技术又分为空分复用技术(虚拟存储器技术)和时分复用技术(虚拟处理器),所以很明显,如果没有并发性就不会存在虚拟性。
异步:在多道程序环境下,允许多个程序并发执行,但是由于资源有限,进程执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。因此只有系统拥有并发性,才有可能导致异步性。
三、OS的发展与分类:手工操作阶段——>>>批处理阶段——>>>分时操作系统——>>>实时操作系统——>>>网络操作系统——>>>分布式操作系统——>>>个人计算机操作系统。(每个阶段优点就是解决了上一阶段的主要缺点)。
注意:批处理阶段又分为单道批处理系统和多道批处理系统(操作系统开始出现)。
手工操作阶段:这一阶段,程序员通过打孔的方式在纸带上打下一个一个的孔(代替二进制的 0 和 1 ),然后纸带机将纸带的数据进行读取,之后这些数据会被输入到计算机当中,计算机处理完这些数据之后又会将结果输出到纸袋机上,程序员通过取走纸带机上的纸带就可以看到自己程序的运行结果。
缺点:用户独占全机(整个程序执行过程计算机只能为一个用户服务)、人机速度矛盾(计算机运行速度很快,但是要等待纸带机的慢速输入以及人工往纸带上更慢速的输入)导致资源利用率极低。
单道批处理系统:程序员们首先将自己的程序放到纸带机上,然后通过一个外围机将纸带机上的数据读取到一个速度更快的磁带中,之后计算机从磁带上直接读取数据到内存中进行处理,然后将结果输出到磁带上,然后继续逆向进行。他引入了脱机输入/输出技术(用磁带完成),并用监督程序(操作系统的雏形)负责控制作业的输入、输出。
优点:一定程度上缓解了人机速度矛盾,资源利用率有所提升。
缺点:内存中只能有一道程序运行,即只有运行完这个程序后才能调入下一道程序。CPU有大量时间在空闲等待I/O完成,资源利用率依旧比较低。
多道批处理系统:前面的过程与上面的一致,不同之处在于计算机一个会向内存中输入多道程序,这些程序并发执行,执行的过程需要中断技术的支持。此时操作系统就诞生了,他负责管理这些程序的运行。因此我们说操作系统和多道批处理系统同时诞生。
优点:多道程序并发执行,共享计算机资源(CPU、内存等)。资源利用率大幅提升,使CPU和其他资源保持忙碌状态。
缺点:用户等待的时间长,没有人机交互功能,即用户提交代码之后只能等待计算机上处理完成,这个过程中不能人工干预。
这里我们经常会看如下的练习题:
通过上图我们可以发现系统资源会更加忙碌,因此系统资源利用率就会大幅提高。
分时操作系统:计算机以时间片为单位轮流为每个用户/作业进行服务,每个用户可以通过终端与计算机进行交互,解决了人机交互问题,它允许多个用户同时使用一台计算机。
缺点:由于操作系统对每个用户都是公平的,他会循环的为每一个用户提供一个时间片,因此它不能优先处理一些紧急任务。
实时操作系统:优点是能够响应一些紧急任务,即紧急事务不用进行时间片排队。特点是及时性和可靠性。
四、OS的运行机制和体系结构:
指令:CPU能识别、执行的最基本的命令。分为特权指令(不允许用户程序使用)和非特权指令。CPU通过识别CPU所处的状态来进行判断是否可以执行特权指令。
这两种状态分别为用户态(目态)和核心态(管态)。当CPU处于用户态时,它只能执行非特权指令;当他处于核心态时特权指令和非特权指令他都可以执行。
这两种状态我们用程序状态字寄存器(PSW) 中的某一个标志位来标识当前处理器处于什么状态。
计算机还存在两种程序:内核程序和应用程序。其中内核程序是系统的管理者,既可以执行特权指令又可以执行非特权指令,因此运行在核心态;应用程序只能执行非特权指令,因此运行在用户态。
内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分,实现操作系统内核功能的程序就是内核程序。
注意:不同的操作系统在对内核的划分上是不同的。有的系统会将时钟管理、中断处理、原语和对系统资源进行管理的功能(进程管理、存储器管理、设备管理)都算作操作系统的内核;但是,有的操作系统不会将对系统资源进行管理的功能算在内核之中,这一类操作系统内核就只会包含时钟管理、中断处理、原语。
由此我们引入大内核和微内核的概念,大内核是将上图中的进程管理、存储器管理、时钟管理、中断处理等操作均包含在内;微内核是只有最接近底层软件的时钟管理、中断处理、原语等。
五、中断与异常
①当中断发生时,CPU立即进入核心态。
②当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
③对于不同的中断信号会进行不同的处理。
发生了中断,就意味着需要操作系统介入来开展管理工作。由于操作系统的管理工作(进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
因此我们说:从用户态到核心态是通过中断实现的,并且中断是唯一的途径。核心态到用户态的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为”用户态“。
中断的分类方式:主要是看中断信号的来源是CPU的内部还是外部。
外中断的处理过程:CPU执行完每个指令后会检测是否存在外部中断信号——>>>如果存在外中断信号,则会保护被中断进程的CPU环境——>>>根据中断信号类型转入相应的中断处理程序——>>>恢复原进程的CPU环境并退出中断,返回原进程继续往下执行。