跳转至

操作系统概述

操作系统定义

没有公认的精确定义

操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。

操作系统是一个控制程序

  • 一个系统软件
  • 控制程序执行过程,防止错误和计算机的不当使用
  • 执行用户程序,给用户程序提供各种服务
  • 方便用户使用计算机系统

操作系统是一个资源管理器

  • 应用程序与硬件之间的中间层
  • 管理各种计算机软硬件资源
  • 提供访问计算机软硬件资源的高效手段
  • 解决资源访问冲突,确保资源公平使用

操作系统作为系统资源的管理者需要具备哪些功能

文件管理,设备管理,内存管理,处理机制(进程管理)目标:安全,高效。

操作系统作为用户和计算机硬件之间的接口需要哪些功能

用户接口:分为命令接口和程序接口。

命令接口:用户可以直接使用,它又分为联机命令接口和脱机命令接口; 什么是联机命令接口? 用户输入一个命令,系统执行一个命令,例如你打开dos窗口,输入time,然后会显示当前系统时间,并且还可以设置时间。那什么优势脱机命令接口?脱机命令接口其实就是用户输入一大堆命令,然后系统执行一堆处理,这个打个比方就是创建一个文件,文件里面是系统要执行的命令,然后把后缀名改成 .bat或者其它可执行文件,然后交给系统执行。

程序接口:用户通过程序间接调用:由程序接口组成; 例如程序员使用C语言或者C++函数接口操作系统的资源。

GUI图形用户界面:方便用户使用。

操作系统作为最接近硬件层次需要哪些功能和目标

需要提供的功能和目标:实现对硬件及其的扩展 没有任何软件支持的计算机成为裸机。裸机上安装操作系统可以提供资源管理功能和方便用户的服务功能,讲裸机改造成功能更强,使用更加方便的机器。 通常把覆盖了软件的机器成为虚拟机

操作系统内核特征

1. 并发

并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。

并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。

操作系统通过引入进程和线程,使得程序能够并发运行。

2. 共享

共享是指系统中的资源可以被多个并发进程共同使用。

有两种共享方式:互斥共享和同时共享。

互斥共享的资源称为临界资源,例如打印机等,在同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问。

3. 虚拟

虚拟技术把一个物理实体转换为多个逻辑实体。

主要有两种虚拟技术:时(时间)分复用技术和空(空间)分复用技术。

多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占用处理器,每次只执行一小个时间片并快速切换。

虚拟内存使用了空分复用技术,它将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。

4. 异步

异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。

如果失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义,同样共享是建立在并发的基础上的,如果没有并发,共享是无法实现的。

操作系统的发展与分类

  • 手工处理阶段 :主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低;人机速度矛盾指的是:人通过打孔机在纸带上打孔,譬如:打孔的是1,没打孔的是0,然后将这条纸袋上的数据交给计算机处理得到结果,计算机处理的速度很快,处理后还是以纸袋的形式打出来,最后人们再践行解析,这个过程计算机处理的速度很快但是人们的输入与输出速度太慢了,在同一时刻,用户是独占整个机器来得到结果。
  • 批处理阶段:分为单道批处理和多道批处理
  • 单道批处理:引入了脱机技术/输入技术(用磁带完成),并监督程序负责控制作业的输入、输出;这个算是计算机操作系统的雏形,他的优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。主要缺点:内存中仅有一道程序运行,只有该程序运行结束后才能调入下一道程序。CPU有大量的时间是在闲置等待这个任务完成。资源利用率还是很低。
  • 多道批处理:他允许每次往内存中输入多个程序,操作系统处理这些程序,这个时候的操作系统才算是正式诞生,并引入了中断技术,由操作系统负责管理这些程序的运行,各个程序并发执行。主要优点:多道程序并发执行,共享计算机资源,资源利用率大幅度提升,系统的吞吐量变大,CPU开始忙碌起来。主要缺点:用户响应时间变长。用户与计算机之间没有交互,如果想知道这些程序计算的结果对不对只能等待计算机一次性处理完才知道,用户并不能控制自己的程序执行。
  • 分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。主要优点:用户请求可以被即时响应,解决了人机交互问题,允许多个用户同时使用一个计算机,并且用户对计算机的操作相互独立,感受不到被人的存在。主要缺点:不太能优先处理一些紧急任务,操作系统对各个用户、作业之间都是公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
  • 实时操作系统:能够优先响应一些紧急任务,某些紧急任务不许时间片排队。在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且在严格时间内处理完事件,实时操作系统的主要特点就是及时性和可靠性。例如:自动驾驶技术,导弹控制系统必须严格规定时间内完成处理,这是如遇实时操作系统中的硬实时操作系统,哪还有软实时操作系统:能 接收偶尔违反时间规定的操作系统。
  • 网络操作系统:随着计算机网络的发展而诞生能够把各个计算机有机的结合起来实现数据传送的功能,例如windows NT
  • 个人计算机操作系统:Window MacOS,Linux等
  • 分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,有他们并行协同完成。

操作系统的结构

(1)简单的操作系统:

MS-DOS 不分模块的单体内核 (内部通过函数调用访问,缺点,复杂,紧耦合,易受攻击)

(2)微内核:

尽可能把内核功能移植到用户空间,**缺点**性能低。

(3)外核:

内核分为一块,一块负责和硬件打交道,另一部分和应用打交道。

(4)虚拟机:

VMs(虚拟机)->VMM(虚拟机监视器)->物理机硬件,多操作系统共享硬件资源。