408计算机考研:操作系统基础知识解析

发表时间: 2021-11-28 17:54

一:操作系统的概念

为用户提供应用的硬件和软件可以视为一种层次结构(如下图所示)

如中央处理器、内存、输入和输出设备这样的硬件提供基本的计算资源;如数字处理程序、编译器、浏览器等这样的应用程序为用户解决问题,我们的操作系统则控制和协调各用户的应用程序对硬件的分配和使用

操作系统(Operating System,OS):是控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合,是计算机系统中的最基本系统软件


应用程序的用户,也就是终端用户通常并不关心计算机的硬件细节,因此
终端用户把计算机系统视为一组应用程序。因此终端用户把计算机系统视为一组应用程序,一个应用程序可以用一种程序设计语言描述,并由程序员开发而成。

如果直接用机器指令开发应用程序则相当困难,这意味着你直接在和二进制打交道,并且用户与计算机进行交互时也是相当不友好的。所以我们在硬件之上安装操作系统,让操作系统对外暴露一些直接了当,简单易懂的接口,用户使用起来就非常方便了,用户无序关心底层逻辑怎样,只需用好接口即可

其实类比生活中的汽车,我们知道汽车的实现逻辑也是十分复杂的


但是作为用户我们需要知道它的实现原理吗?很显然不要,你只需要知道方向盘怎么用,油门怎么踩,怎么开安全

二:操作系统的目标和功能

(1)作为计算机系统资源的管理者

操作系统实际上不过是一组计算机程序,它与其他计算机程序类似,也给处理器提供指令,主要区别在于程序的意图。操作系统控制处理器使用其他系统资源,并控制其他程序的执行时机。但处理器要做这些事情时,必须停止执行操作系统程序,转而去执行其他程序,因此这时操作系统会释放对处理器的控制,让处理器去做一些其他有用的工作,然后用足够长的时间恢复控制权,让处理器准备好做下一项工作

为了给多道程序提供良好的运行环境,操作系统应该具有四大管理功能(注意后续的章节就是学操作系统是如何管理的)

  • 处理机管理(进程管理):在多道程序环境下,处理机的分配和运行都以进程或线程为基本单位,因而对处理机的管理可以归结为对进程的管理。进程管理的任务主要是:进程控制、进程同步、进程通信、死锁处理、处理机调度等等
  • 存储器管理(内存管理:主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充
  • 设备管理:主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要有缓冲管理、设备分配、设备处理虚拟设备等功能
  • 文件管理:主要包括文件存储空间的管理、目录管理以及文件读写管理和保护

(2)作为用户和计算机硬件系统的接口

现如今,我们和操作系统交流的方式主要依靠GUI(图形用户界面)


而早期的操作系统主要依靠命令行完成交互

不管怎么样这些都属于操作系统提供的接口,方便用户和操作系统交流。操作系统提供的接口主要有两类:

  • 命令接口:用户利用这些操作命令来组织和控制作业的执行
  • 程序接口:编程人员可以使用它们来请求操作系统服务

A:命令接口

联机命令接口:又称为交互式命令接口,适用于分时或实时系统的接口。它由一组键盘操作命令组成。用户通过控制台终端输入操作命令,向系统提出各种服务要求。用户每输入一条命令,控制权就转给操作系统的命令解释程序,然后由命令解释程序解释并执行输入的命令,完成指定的功能。之后,控制权转回控制台或中断

  • 比如说dos中的dir命令就是列出当前盘符下的文件

    脱机命令接口 :又称为批处理命令接口,适用于批处理系统,它由一组作业控制命令完成。脱机用户不能直接干预作业的运行,而应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起提交给系统。系统调度到该作业时,由系统中的命令解释程序逐条解释执行作业说明书上的命令。
  • 批处理程序后缀名为.bat,会批处理可以完成很多用户无法轻松做到的一些的工作,比如批量修改文件名等等
@echo offset  /p a="请输入:"echo %a%echo 请按任意键退出程序 & pause > nul

B:程序接口

程序接口 由一组系统调用组成 。用户通过在程序中使用这些系统调用来请求操作系统为其提供服务。比如说经典的C语言中的printf,大家都知道它是用来向屏幕输出信息的,但是向屏幕输出东西很明显需要借助操作系统完成,因为这就是对于硬件的控制,所以printf在底层会调用类似接口。在Linux系统编程中我们就提及了,它其实调用了write接口向stdout输入了信息

(3)需要实现对硬件机器的扩展

没有任何软件支持的计算机称之为裸机。它仅构成了计算机系统的物质基础,而实际呈现在用户面前的计算机是经过若干层软件改造过的计算机。裸机在最里面,其外面是操作系统,操作系统所提供的资源管理功能和方便用户的各种服务功能,将逻辑改造成功能更强、使用更方便的机器。因此,我们通常把覆盖了软件的机器称为扩充机器或虚拟机

三:操作系统的四个特征

(1)并发(Concurrence)

并发: 指两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,但是在微观上是交替发生的

操作系统的并发性: 指的是计算机系统“同时”运行着多个程序,这些程序宏观上看是运行着的,而微观上看是交替运行的

  • 操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统的程序并发是一起诞生的
  • 需要注意单核CPU同一时刻只能执行一个程序,各个程序只能并发执行;多核CPU同一时刻可以同时执行多个程序,多个程序可以并行执行

(2)共享(Sharing)

共享: 是指系统中的资源可供内存中的多个并发执行的进程共同使用

A:互斥共享

互斥共享很典型的例子就是摄像头,使用QQ进行视频聊天时,微信暂时就不能使用摄像头

互斥共享:当进程A访问某个资源时,必须先提出请求,若此时该资源空闲,则系统并将其分配给进程A使用,此后有其他进程也要访问该资源时,只要A没有用完就必须等待。当且仅当进程A访问并释放资源后,才运行另一个进程对资源进行访问。这一段资源称之为临界资源

B:同时共享

这里的共享仍然是指宏观上的共享,其微观上可能也是交替地进行资源访问的。比较典型的资源就是磁盘设备


并发和共享是操作系统的两个最基本特征,两者互为存在的前提如果失去并发,则系统只有一个程序在运行,则共享就失去了存在的意义;如果失去共享,则两个程序无法同时访问资源,有些并发操作也无从谈起

(3)虚拟(Virtual)

虚拟: 是指把一个物理上的实体变为若干逻辑上的对应物。物理实体是实的,即实际存在的,而后者虚拟的,是用户感觉上的事物

虚拟处理器技术是通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用一个处理器。此时虽然只有一个处理器,但是他能同时为多个用户服务,让每个终端用户都感觉有一个CPU在为它专门服务。利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器


类似的,可以采用虚拟存储器技术将一台机器的物理存储变为虚拟存储器,以便从逻辑上扩充存储器的容量,当然此时用户感觉到的内存容量是虚的,
我们把用户感觉到的存储器称为虚拟存储器


还可以采用虚拟设备技术将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备,使原来仅允许在一段时间内由一个用户访问的设备也即临界资源,变为在一段时间内允许多个用户同时访问的共享设备

操作系统的虚拟技术也有

  • 时分复用技术:如处理器的分时共享
  • 空分复用技术:如虚拟存储器

(4)异步(Asynchronism)

异步: 是指在多道程序环境下,允许多个程序并发执行,但是由于资源有限,进程的执行不能做到一气呵成,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性