目录

1、操作系统的目标和作用

(1)操作系统的目标

(2)操作系统的作用

2、操作系统的发展过程

(1)未配置操作系统的计算机系统

(2)单道批处理系统(Simple Batch Processing System)

(3)多道批处理系统(Multiprogrammed Batch Processing System)

(4)分时系统(Time Sharing System)

(5)实时系统(RealTime System)

(6)微机操作系统

3、操作系统的基本特性

(1)并发

(2)共享

(3)虚拟

(4)异步

4、操作系统的主要功能

(1)处理机管理功能/进程管理

(2)存储器管理功能

(3)设备管理功能

(4)文件管理功能


        操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。

1、操作系统的目标和作用

(1)操作系统的目标

        在计算机系统上配置操作系统,其主要目标是:方便性、有效性、可扩充性和开放性。

  • 方便性:使计算机变得易学易用
  • 有效性:第一层含义是提高系统资源的利用率。在早期未配置 OS 的计算机系统中,诸如处理机、I/O设备等都经常处于空闲状态,各种资源无法得到充分利用,所以在当时,提高系统资源利用率是推动 OS 发展最主要的动力。有效性的另一层含义是,提高系统的吞吐量。OS 可以通过合理地组织计算机的工作流程,加速程序的运行,缩短程序的运行周期,从而提高了系统的吞吐量。
  • 可扩充性:能方便地增添新的功能和模块,以及对原有的功能和模块进行修改
  • 开放性:是指系统能遵循世界标准规范,特别是遵循开放系统互连 OSI国际标准事实上,凡遵循国际标准所开发的硬件和软件,都能彼此兼容,方便地实现互连。

(2)操作系统的作用

        1 - OS作为用户与计算机硬件系统之间的接口

        OS 处于用户与计算机硬件系统之间,用户通过OS 来使用计算机系统。或者说,用户在 OS 帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序。

        2 - OS作为计算机系统资源的管理者

        计算机系统中资源分为四类:处理机、存储器、I/O 设备以及文件(数据和程序)。相应地,OS 的主要功能也正是对这四类资源进行有效的管理。

        3 - OS实现了对计算机资源的抽象

        如图所示,由 I/O 设备管理软件实现对 I/O 设备操作的细节,并向上将 I/O 设备抽象为一组数据结构以及一组 I/O 操作命令,如 Read 和 Write 命令,这样用户即可利用这些数据结构及操作命来进行数据输入或输出,而无需关心 I/O 是如何具体实现的。

2、操作系统的发展过程

(1)未配置操作系统的计算机系统

        对计算机的全部操作都是由人工操作的方式进行。//原始机器、使用纸带、磁带

        人工操作方式严重降低了计算机资源的利用率,此即所谓的人机矛盾。虽然 CPU 的速度在迅速提高,但 I/O 设备的速度却提高缓慢,这使 CPU 与 I/O 设备之间速度不匹配的矛盾更加突出。

(2)单道批处理系统(Simple Batch Processing System)

        为实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下,使这批作业能一个接一个地连续处理。// 解决人机矛盾

        1 - 单道批处理系统的处理过程

  • 首先由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业;
  • 当该作业处理完成时,又把控制权交还给监督程序,再由监督程序把磁带上的第二个作业调入内存。

        计算机系统就这样自动地一个作业紧接一个作业地进行处理,直至磁带上的所有作业全部完成,这样便形成了早期的批处理系统。虽然系统对作业的处理是成批进行的,但在内存中始终只保持一道作业,故称为单道批处理系统

        2 - 单道批处理系统的缺点

        单道批处理系统最主要的缺点是,系统中的资源得不到充分的利用。这是因为在内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU 便处于等待状态,必须在其I/O 完成后才继续运行。又因I/O设备的低速性,更使CPU的利用率显著降低。// CPU在I/O过程中必须等待

(3)多道批处理系统(Multiprogrammed Batch Processing System)

        在多道批处理系统中,用户所提交的作业先存放在外存上,并排成一个队列,称为“后备队列”。然后由作业调度程序按一定的算法,从后备队列中选择若干个作业调入内存,使它们共享 CPU 和系统中的各种资源。由于同时在内存中装有若干道程序这样便可以在运行程序 A 时利用其因 I/O 操作而暂停执行时的 CPU 空档时间再调度另一道程序 B 运行,同样可以利用程序 B 在 I/O 操作时的 CPU 空档时间,再调度程序 C 运行,使多道程序交替地运行,这样便可以保持 CPU 处于忙碌状态。// 最大化利用CPU空闲时间

        1 - 多道批处理系统的优缺点

  • 资源利用率高。引入多道批处理能使多道程序交替运行,以保持 CPU处于忙碌状态;在内存中装入多道程序可提高内存的利用率;此外还可以提高 I/O 设备的利用率。
  • 系统吞吐量大。能提高系统吞吐量的主要原因可归结为:CPU和其它资源保持“忙碌”状态,仅当作业完成时或运行不下去时才进行切换,系统开销小。
  • 平均周转时间长。由于作业要排队依次进行处理,因而作业的周转时间较长,通常需几个小时,甚至几天。
  • 无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互,修改和调试程序极不方便。// 多道批处理无人机交互能力

        2 - 多道批处理系统需要解决的问题

        多道批处理系统是一种十分有效,但又非常复杂的系统,为使系统中的多道程序间能协调地运行,系统必须解决下述一系列问题:

  • 处理机争用问题。既要能满足各道程序运行的需要,又要能提高处理机的利用率。
  • 内存分配和保护问题。系统应能为每道程序分配必要的内存空间,使它们“各得其所”,且不会因某道程序出现异常情况而破坏其它程序。
  • I/O设备分配问题。系统应采取适当的策略来分配系统中的I/O设备,以达到既能方便用户对设备的使用,又能提高设备利用率的目的。
  • 文件的组织和管理问题。系统应能有效地组织存放在系统中的大量的程序和数据使它们既便于用户使用,又能保证数据的安全性。
  • 作业管理问题。系统中存在着各种作业(应用程序),系统应能对系统中所有的作业进行合理的组织,以满足这些作业用户的不同要求。
  • 用户与系统的接口问题。为使用户能方便的使用操作系统,OS还应提供用户与OS之间的接口。

        据此,引出操作系统的定义:操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。// 代表系统:IBM OS/360操作系统

(4)分时系统(Time Sharing System)

        多道批处理系统形成和发展的主要动力是提高资源利用率和系统吞吐量

        分时系统形成和发展的主要动力,则是为了满足用户对人机交互的需求

        分时系统是指,在一台主机上连接了多个配有显示器和键盘的终端并由此所组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机中的资源

        实现人机交互的关键在于:及时接受及时处理

        人机交互中,用户键入命令后,能对自己的作业及其运行及时地实施控制或进行修改。因此,各个用户的作业都必须驻留在内存中,并能频繁地获得处理机运行。否则,用户键入的命令将无法作用到自己的作业上。

        所以需要改变原来批处理系统的运行方式,转而采用下面的方式:// 引入时间片的概念

  • 作业直接进入内存。因为作业在磁盘上是不能运行的,所以作业应直接进入内存。
  • 采用轮转运行方式。如果一个作业独占CPU 连续运行,那么其它的作业就没有机会被调度运行。为避免一个作业长期独占处理机,引入了时间片的概念。一个时间片,就是一段很短的时间(例如30s)。系统规定每个作业每次只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行。如果在不长的时间内能使所有的作业都执行一个时间片的时间,便可以使每个用户都能及时地与自己的作业进行交互,从而可使用户的请求得到及时响应。// 时间片的出现就是为了满足人机交互,每个程序都能获得处理机处理

(5)实时系统(RealTime System)

        所谓“实时”,是表示“及时”,而“实时计算”,则可以定义为这样一类计算:系统的正确性,不仅由计算的逻辑结果来确定,而且还取决于产生结果的时间。事实上实时系统最主要的特征,是将时间作为关键参数,它必须对所接收到的某些信号做出“及时”或“实时”的反应。由此得知,实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行// 武器控制系统、嵌入式系统等

(6)微机操作系统

        配置在微型机上的操作系统称为微机操作系统,最早诞生的微机操作系统是配置在8位微机上的CP/M。后来出现了16 位、32位、64位微机,相应的微机操作系统也应运而生。微机操作系统可按微机的字长来分,也可将它按运行方式分为如下几类:

        1 - 单用户单任务操作系统

        单用户单任务操作系统的含义是,只允许一个用户上机,且只允许用户程序作为一个任务运行,这是最简单的微机操作系统,主要配置在8位和16 位微机上,最有代表性的单用户单任务微机操作系统是 CP/M MS-DOS

        2 - 单用户多任务操作系统

        单用户多任务操作系统的含义是,只允许一个用户上机,但允许用户把程序分为若干个任务,使它们并发执行,从而有效地改善了系统的性能。目前在 32 位微机上配置的操作系统,基本上都是单用户多任务操作系统。其中最有代表性的是由微软公司推出了Windows

        3 - 多用户多任务操作系统

        多用户多任务操作系统的含义是,允许多个用户通过各自的终端,使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系统吞吐量。在大、中和小型机中所配置的大多是多用户多任务操作系统,而在32 位微机上,也有不少配置的是多用户多任务操作系统,其中最有代表性的是UNIX OS

        现在最有影响的两个能运行在微机上的 UNIX 操作系统变形是 Solaris OS Linux OS

3、操作系统的基本特性

(1)并发

        并发使 OS能有效地提高系统中的资源利用率,增加系统的吞吐量。

        1 - 并行与并发

        并行性是指两个或多个事件在同一时刻发生。而并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。// 并发->交替执行

        2 - 什么是进程?

        进程,是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。

(2)共享

        OS 环境下的资源共享或称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。// 进程之间存在对共享资源的争夺。

        目前主要实现资源共享的方式有如下两种:

        1 - 互斥共享方式:在一段时间内,只允许一个进程访问资源。

        当进程 A 要访问某资源时,必须先提出请求。若此时该资源空闲,系统便可将之分配给请求进程A 使用。此后若再有其它进程也要访问该资源,只要 A 未用完就必须等待。仅当A 进程访问完并释放系统资源后,才允许另一进程对该资源进行访问。这种资源共享方式称为互斥式共享,把这种在一段时间内只允许一个进程访问的资源,称为临界资源(或独占资源)。系统中的大多数物理设备,以及栈、变量和表格,都属于临界资源,都只能被互斥地共享。

        2 - 同时访问方式:允许在一段时间内有多个进程“同时”对资源进行访问。// 对文件同时读

(3)虚拟

        “虚拟”技术是通过“空分复用”或“时分复用”技术,将一条物理信道变为若干条逻辑信道,使原来只能供一对用户通话的物理信道,变为能供多个用户同时通话的逻辑信道。在 OS中,把通过某种技术将一个物理实体变为若个逻辑上的对应物的功能称为“虚拟”。 OS 中也是利用时分复用和空分复用技术来实现“虚拟”的// 一个物理实体对应多个逻辑对象

        1 - 时分复用技术 -> 提高处理机的利用率

        在计算机领域中,广泛利用时分复用技术来实现虚拟处理机、虚拟设备等,使资源的利用率得以提高。时分复用技术能提高资源利用率的根本原因在于,它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。

        2 - 空分复用技术 -> 提高内存利用率

        比如,电信业中使用频分复用技术(可以看成是空分的一种)来提高信道的利用率。该技术将一个频率范围比较宽的信道划分成多个频率范围较窄的信道(称为频带),其中的任何一个频带都仅供一对用户通话。在计算机中把空分复用技术用于对存储空间的管理,用以提高存储空间的利用率。

        总结:多道程序技术(时分复用技术)通过利用处理机的空闲时间运行其它程序,提高了处理机的利用率,那么,空分复用技术则是利用存储器的空闲空间分区域存放和运行其它的多道程序,以此来提高内存的利用率

(4)异步

        进程是以人不可预知的速度向前推进的,此即进程的异步性。异步运行方式在OS中是允许的,而且是操作系统的一个重要特征。

4、操作系统的主要功能

(1)处理机管理功能/进程管理

        在传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位的,因而对处理机的管理可归结为对进程的管理。处理机管理的主要功能有:创建和撤消进程,对诸进程的运行进行协调,实现进程之间的信息交换,以及按照一定的算法把处理机分配给进程// 进程控制、进程同步、进程通信、作业或进程调度

(2)存储器管理功能

        存储器管理应具有内存分配和回收、内存保护、地址映射和内存扩充等功能

        1 - 内存分配和回收

  • 为每道程序分配内存空间,使它们“各得其所”。
  • 提高存储器的利用率,尽量减少不可用的内存空间(碎片)。
  • 允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。

        2 - 内存保护

        内存保护的主要任务是:// 进程只能在规定的内存块中操作

  • 确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰。
  • 绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它用户程序中去执行

        3 - 地址映射:

        存储器管理必须提供地址映射功能,即能够将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成。// 逻辑地址和物理地址的转换

        4 - 内存扩充:

        借助于虚拟存储技术,从逻辑上扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多,以便让更多的用户程序能并发运行。

  • 请求调入功能:装载用户程序和数据。
  • 置换功能:腾出内存空间,把不用的程序和数据置换为需要调入的程序和数据 //准换算法

(3)设备管理功能

        设备管理的主要任务如下: // 管理IO设备

  • 完成用户进程提出的I/O请求。为用户进程分配所需的I/O设备,并完成指定的I/O操作。
  • 提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。

        为实现上述任务,设备管理应具有缓冲管理设备分配设备处理以及虚拟设备等功能:

        1 - 缓冲管理:在IO设备和CPU之间引入缓冲则可有效地缓和CPU和I/O设备速度不匹配的矛盾,提高CPU的利用率,进而提高系统吞吐量。

        2 - 设备分配:设备分配的基本任务是根据用户进程的 I/O 请求、系统现有资源情况以及按照某种设备分配策略,为之分配其所需的设备。

        3 - 设备处理:设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。

(4)文件管理功能

        文件管理的主要任务是对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。为此,文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理以及文件的共享与保护等功能

        1 - 文件存储空间的管理:主要任务为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存、取速度。

        2 - 目录管理:主要任务是为每个文件建立一个目录项,目录项包括文件名、文件属性文件在磁盘上的物理位置等,并对众多的目录项加以有效的组织,以实现方便的按名存取即用户只需提供文件名,即可对该文件进行存取。

        3 - 文件的读/写管理和保护

  • 文件的读/写管理。该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。
  • 文件保护。为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能,以实现下述目标:防止未经核准的用户存取文件;防止冒名顶替存取文件;防止以不正确的方式使用文件。

// 操作系统主要围绕以上功能进行详细阐述,也是学习的基本框架

        至此,全文结束。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐