计算机操作系统概述


1. 计算机系统基本概述

1.1 操作系统

现代计算机由软件和硬件组成,而现代计算机系统的软硬件层次结构如下:

其中每一层都具有一组功能并且能对层外提供相应接口。同时对层内隐藏了实现细节,对层外约束了使用规定。

应用软件: 提供特定应用服务的软件。
支撑软件(语言开发环境SDE): 支撑应用软件的开发、运行和维护。比如环境数据库、接口软件、工具软件等。
系统软件: 系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作,通常用来支持应用软件的运行。比如:操作系统、实用程序、语言处理程序、数据库管理系统等。
计算机硬件: 是计算机软件的载体。比如处理器、存储器、IO设备等实体硬件。

操作系统(Operating System,OS)的定义

①它是计算机系统中最基础的系统软件
②更好地管理、控制硬件和软件资源;
③合理的组织、调度程序与资源分配
④它帮助用户更好地组织、控制程序运行;更好地方便人机交互,为用户使用计算机提供更好的环境。

操作系统的目标/目的

开放性 (比如苹果的高封闭性和安卓的高开放性)
拓展性 (能够方便地添加新的功能模块)
方便性 (图形界面系统和只能使用机器语言的系统)
有效性 (提高系统资源的利用率和系统的吞吐量)


1.2 计算机硬件系统

计算机硬件系统的组成:
计算机硬件系统由CPU(中央处理器)、主存储器、外围设备等组件构成。这里全部组件都是通过系统总线相互连接。

CPU包括运算单元和控制单元,运算单元用于执行具体的机器指令,控制单元则用于解释机器指令。

冯·诺依曼结构
计算机系统包括运算器、存储器、控制器和输入输出设备。

1.以运算单元为中心,控制流由控制单元产生;
2.采用 储存程序 原理,面向主存储器组织数据流;
3.主存储器按照地址访问,提供线性编址空间;
4.指令由操作码和地址码组成;
5.数据以二进制编码。

计算机的各个部件通过总线相连接。

总线:
定义:总线是计算机各种功能部件之间传输信息的公告通信干线。

一、按照所传输的信息分类,总线可分为控制线、数据线和地址线
二、为了提高计算机系统通信的效率,计算机总线是分级的,主要包括:
内部总线: 用于CPU内部各个元件的连接。(CPU内)
系统总线: 用于连接CPU、存储器和各个I/O模块。(主板上)
通信总线 用于各个计算机系统之间的连接。(计算机外)

北桥(主存控制器) 将CPU、主存储器和南桥通过不同总线连接起来。而 南桥(I/O控制器) 则是通过不同总线连接了其他部件和外设。

中央处理器
CPU主要包含以下3部分:

运算逻辑部件: 包括一个或多个运算器,执行算术逻辑运算。
控制部件: 包含对指令进行译码并控制其指向的解译电路,以及实现处理器内部各部件联系的数据、控制以及地址总线。
高速储存部件: 包括通用寄存器、控制寄存器与状态寄存器,以及高速缓存存储器(cache)。

存储器

特点: 一般来说,越上级的存储器单位字节实现成本越高,速度更快,容量更小。

其中L1 ~ L3统称为cache,L5 ~ L6统称为外存储器。

CPU一定包括了寄存器和一级cache(L1),还可能存在L2和L3。

Cache: 是介于CPU和主存储器之间的高速小容量存储器,由静态随机存储器(SRAM)组成,访问速度比主存更快。

L1与CPU同频,与寄存器一样连接在内部总线上,访问速度也与寄存器同步
L2 容量比L1大但速度慢 ,可以连接在 内部总线 上,也可以连接在 系统总线 上。 一般用于储存主存储器的数据或CPU现场。
L3容量比L2大但速度快于主存慢于L2,连接在内部总线和系统总线上,一般用于储存游戏数据、多媒体计算机数据等。

主存储器: 又称为内存或主存,CPU现场和外围设备控制器都面向主存交换数据。

外围(外部)设备
外围设备包括但不限于输入输出设备、储存设备和网络设备
计算机系统对外围设备的控制方式:

轮询: CPU用于控制输入输出,实现外设与主存的数据交换的方式。是让CPU以一定的周期(定时)按次序查询每一个外设对应的状态寄存器中的位,看它是否有数据输入或输出的要求。若有,则进行相应的输入/输出服务;若无,或I/O处理完服务,CPU就接着查询下一个外设。
中断(外中断): 中断不需要处理器轮询IO设备的状态,IO设备在自己发生状态改变时将主动发送一个信号给处理器(PIC),后者在接收到这一通知信号时,会暂停当前正在执行的任务转而去处理响应外设的中断请求。中断通知机制通过硬件信号异步唤起处理器的注意,解决了外部设备与处理器之间速度不匹配导致的资源浪费问题。
直接存储器访问(DMA): 主要功能是可以把数据从一个地方搬到另外一个地方,而且不占用CPU,待到数据交换结束后再中断CPU进行处理。采用DMA方式进行I/O数据的传送在传送的过程中是不需要CPU干预的。这个数据传送的工作是由一个专门的硬件电路控制,可以直接将外设的数据传到存储器或者将存储器中的数据传到外设,而这个专门的硬件控制电路就称为DMA控制器,简称为DMAC


1.3 计算机软件系统

计算机软件系统的组成
计算机软件系统包含系统软件、支撑软件和应用软件

系统软件: 包含操作系统、实用程序、语言处理程序、数据库管理系统和专用文件系统。

操作系统:是为了方便用户对各种软硬件资源进行管理、分配、调度和控制的一组程序的集合;
实用程序:是为了方便用户设置的操作系统外围的扩展程序,比如文本编辑工具、调试工具等;
语言处理程序:是负责把汇编语言/高级语言编写的程序翻译成可执行的机器语言的程序;
数据库管理系统与专用文件系统:是在操作系统的文件系统之外专门设置的数据管理软件,查询手段更丰富、效率更高。

支撑软件: 包括接口软件、工具软件、环境数据库等,作用是用来支持用户操作计算机环境,提供软件开发工具。可以看作是系统软件的一部分。
应用软件: 用户按其特殊需要自行编写的程序。

系统调用:

操作系统内核为用户态运行的进程与硬件设备之间进行交互提供了一组具有预定功能的接口,它们屏蔽了程序访问硬件的细节。这些接口被称为系统调用。

扩展机器指令集:

系统调用加上允许用户使用的机器指令子集所构成的一个扩展机器指令集。

计算机程序的解释执行过程


2. 操作系统的运行环境

2.1 操作系统的运行机制

特权指令和非特权指令

特权指令

定义:
因为权限很大,随意使用很容易导致系统崩溃,所以只有在管态下才能使用的指令。一般只能给操作系统和部分软件使用。
比如:清内存、置时钟、分配系统资源、修改虚存的段表和页表,修改用户的访问权限等

非特权指令

定义
目态下都可以使用的指令。比如控制转移、算数运算、取数指令等

所以管态下可以使用所有的特权指令和非特权指令(除了访管指令)

处理器的工作状态:管态和目态

管态

定义:
管态又称 特权态系统态核心态 。CPU在管态下可以执行指令系统的全集。通常,操作系统在管态下运行。
特点:
当CPU处于管态下,则程序就可以访问计算机的任何资源,即它的资源访问权限不受限制。

目态

定义
目态又称 常态用户态 。机器处于目态时,程序只能执行非特权指令。
特点:
当CPU处于目态下,则程序不能直接使用系统资源,也不能改变CPU的工作状态,并且只能访问这个用户程序自己的存储空间。

如何判断CPU的工作状态

查看 程序状态字(Program Status Word,PSW) 的标志位

如何切换CPU的工作状态

用户态—>内核态: 只有通过中断、异常才能实现CPU从用户态转换到内核态(访管指令,也就是陷入指令实际上也是是通过中断实现转换的)
内核态—>用户态: 用户通过使用一条称作加载程序状态字的特权指令(iret)来设置程序状态字(PSW)的标志位为“用户态”,使CPU从内核态返回到用户态。

2.2 中断机制(Interrupt)

中断的概念

中断源

引起中断的事件,即中断请求信号的来源,统称为中断源。

中断(广义中断)

定义:(指广义的中断)
指在程序执行过程中当遇到急需处理的事件时,①暂时中止当前进行程序在CPU上的运行并②保护好现场,转而③执行相应的事件处理程序,待④处理完成后再返回断点或调度其他程序执行(中断嵌套)
作用:
① 让操作系统强行夺回 CPU 的控制权
② 令 CPU 从目态转换成管态
中断分类
广义中断又分为 狭义中断(interrupt)异常(exception)
其中狭义中断简称为中断,又称为外中断异常又称为内中断
意义:
OS 实现其功能的手段。

中断的分类

外中断

定义:
指来自 CPU 执行指令以外的事件,与当前执行的程序无关。又称为中断
分类:
①硬件故障中断
②I/O中断
③外部中断,又称 异步中断事件

内中断

定义:
指源自 CPU 执行指令内部的事件,与当前执行的程序有关。又称为异常
分类:
①自愿性中断,又称为 陷阱系统异常系统调用陷入(trap)访管中断
②程序性中断

硬件故障中断

定义:
由计算机系统的关键性硬件故障导致的,比如电源故障、主存故障等。
处理原则:
保护现场,停止设备,停止CPU,向操作员报告并对故障造成的破坏进行估计和恢复,等待人工干预(复位、设置、替换等)

I/O中断

定义:
来自设备执行输入/输出的过程中
在计算机系统中 CPU 和外围设备是并行操作的,而在外围设备运行过程中,无论是正常运行结束还是遇到一些特殊的问题,都需要请求操作系统进行后续处理。
处理原则:
① I/O操作正常结束:(本进程设置为就绪态、让等待传输的下一个进程占用设备或通道并启动数据传输)
② I/O操作发生故障:(先向设备发送命令索取状态字,分析故障的确切原因,在执行复执或请求人工干预)
③ I/O操作发生异常:(分析情况,采取相应措施并向操作员报告)

外部中断

定义:
来自于 CPU 现场之外的信号。又称 异步中断事件外部事件都是异步产生的(即产生的时刻不确定),与 CPU 的执行无关。
处理原则:
① 时钟中断:(计时)
② 间隔时钟中断:(时间片到,被中断进程要交出处理器并进入就绪队列)
③ 设备报告和结束中断:(调整设备表)
④ 键盘/鼠标信号中断:(根据信号做出相应的反应)
⑤ 关机/重启动中断:(写回文件,终止 CPU 和其他设备)

自愿性中断

定义:
又称为系统调用、系统异常、陷阱、陷入或访管中断。是由于程序执行陷入指令(访管指令)引起的,使 CPU 从目态转换到管态,表示当前运行程序对操作系统功能的调用。
处理流程:
① 程序执行陷入指令,并通过某种方法指定系统调用的功能号和传递参数;
② 通过系统陷阱机制进入系统调用处理程序,现场信息被保护到核心栈,按功能号实现跳转;
③ 通过系统调用入口表找到相应系统调用对应的服务例程的入口地址;
④ 执行系统调用服务例程,结束后返回执行系统调用的下一条语句。

程序性中断

定义:
处理器执行机器指令出错或异常引起的。
处理原则:
① 除数为零、操作数溢出等算术异常:(简单处理、报告用户,由用户判断计算机结果是否可信;也可以由用户编写中断续元程序,操作系统把处理权交给用户)
② 非法指令、用户态使用特权指令、地址越界、非法存取等指令异常:(终止进程)
③ 终止进程指令:(终止进程)
④ 虚拟地址异常:(发现了不在实际主存的地址,需要调整主存后重新执行指令)

哪些中断事件需要人工干预?

硬件故障中断、I/O中断、程序性中断

中断系统

中断系统

定义:
计算机中响应和处理中断的系统,包括硬件子系统(中断装置)软件子系统(中断处理程序)两部分。
其中硬件子系统主要完成中断响应的工作,软件子系统主要完成中断处理的过程。

指令的执行周期:

取指、解释、执行

通过在指令的执行周期后面加入一个检查中断的微操作,操作系统达成了支持中断的目的。

中断装置

定义:
操作系统中发现并响应中断的硬件装置。
中断装置分类:
由于中断源的不同,中断装置在计算机表现一般分为以下三类:
① 对于来自CPU外的异步中断事件,通常设置 中断控制器—— 引入操作系统的中断处理程序
(它是一套进行正常处理的解译电路由指令执行周期最后阶段发现中断的微操作触发
② 对于请求操作系统服务的访管中断事件,通常设置 系统陷阱—— 引入操作系统的系统调用处理程序
(它是由处理器执行陷入指令触发指令正常解译电路
③ 对于处理器执行指令引发的程序性中断事件,通常设置陷阱—— 引入操作系统的异常处理程序
(它是由指令的控制逻辑和实现电路触发的一套指令例外处理的解译电路

中断控制器

中断控制器包括了中断寄存器和中断逻辑电路,外部设备向其发出中断请求(IRQ),中断寄存器记录了中断的来源,中断逻辑电路则是形成中断的一个通路。
处理器在指令执行周期最后一个步骤检查中断,也就是由译码器中的中断逻辑电路检查中断寄存器有无中断发生,如果有则改变 CPU 的操作顺序,引入中断处理程序。

系统陷阱和陷阱

都是指令的逻辑实现线路的一部分。
在执行指令出现异常后,会根据异常情况转向操作系统不同的异常处理程序(其他异常处理程序和系统调用处理程序)

  • 例如当出现虚拟地址异常后,一方面需要重新执行指令,另一方面需要执行请求操作系统服务的系统调用,因此往往需要越过陷阱而进一步独立设置页面异常处理程序
  • 当执行陷入指令后,越过陷阱,触发系统陷阱,引入系统调用处理程序

中断的典型响应过程

① 发现中断源,判断是否要屏蔽这些中断(当存在多个需要响应的中断源时,根据规定的优先级选择一个提出中断请求);
② 保存当前程序的 PSW 和 PC 到核心栈,准备中断当前程序的执行(中断结束后,可以根据 PSW 和 PC 返回中断点继续执行);
③ 将处理器状态从目态转换到管态,调出响应中断处理程序的 PSW 和 PC ,转向操作系统的中断处理程序开始执行。

中断处理程序

定义:
中断处理程序是操作系统中处理中断事件的控制程序。
作用:
① 处理中断
② 恢复程序的正常执行
处理中断的工作:
保护处理器现场;
(出于成本考虑,模式切换核心栈只保存了 PSW 和 PC ,没有保留整个处理器现场,即 CPU 的所有寄存器和高级 cache 的内容,这些现场信息应该由中断处理程序来完成保存)
分析被中断进程的 PSW 中断码字段,识别中断源;
根据中断源对中断事件进行具体处理;
恢复程序的正常执行
恢复程序的正常执行的工作:
包含两种情况:
① 对于某些能快速处理的中断,处理完后直接返回中断点继续执行 ;
② 对于其他中断,比如访管中断、虚拟地址中断等(相关进程不具备立即执行的条件),又比如时间片中断、高优先抢占进程出现等(正在运行的进程需要让出 CPU)。这时需要中断当前进程的运行,跳转进程队列,启动进程调度,选择下一个执行的进程并恢复其执行。
总流程:

多中断的响应和处理

中断屏蔽

定义:
中断屏蔽是指禁止 CPU 响应中断或者禁止产生中断。
前者指硬件产生中断请求后, CPU 暂时不响应,一直等到中断开放后,被屏蔽的中断才能被响应并获得处理。常用在处理某个中断时,比如处理一个I/O中断的关键时刻,防止被其他中断干扰。
后者指当引起中断的事件发生时,硬件不允许提出中断请求,所以由于该中断被禁止而不产生中断,通常设备中断、时钟中断等可以被暂时禁止。
作用:
延迟或禁止某些中断的响应,系统程序执行过程中不希望产生干扰事件,以免共享数据结构受到破坏
协调中断响应和中断处理的关系,确保高优先级中断可以打断低优先级中断,反之不能
防止同级中断相互干扰,在处理某优先级中断事件时必须屏蔽该级中断,以免造成混乱

中断优先级

定义:
当发生多种中断事件时,中断装置所预设 的响应中断事件的顺序(不同操作系统不一样)
一般情况的优先级:
硬件故障中断 > 访管中断 > 程序性中断 > 外部中断 > I/O中断

多重中断事件处理(中断嵌套处理)

在计算机系统运行过程中可能会出现多个中断,或者前一个中断尚未处理完接着就又发生了新的中断,于是 CPU 就可能暂停正在运行的中断处理程序,转而执行新的中断处理程序。这通过中断屏蔽和中断优先级实现。
中断可以嵌套处理,但考虑吧到 OS 的实现和开销,嵌套的层数应有限制,一般不超过3重。
中断嵌套处理改变了中断的处理顺序,先响应的有可能后处理。

2.3 系统调用(system call)

系统调用(system call)

定义:
操作系统内核为用户态运行的进程与硬件设备之间进行交互提供了一组具有预定功能的接口
它们屏蔽了程序访问硬件的细节,这些接口封装了内核中的 服务例程
执行过程:
系统调用把应用程序的访问请求传送至内核,内核调用相应的服务例程完成所需处理,再将处理结果返回给应用程序
这种通知机制是靠软中断来实现的,通过引发一个异常来促使系统切换到内核态去执行异常处理程序。此时的异常处理程序就是所谓的系统调用处理程序,它完成了从用户态到内核态转换后的一些必要处理。
作用:
①提高了系统的安全性(内核可以基于权限和规则对资源访问进行安全检查);
②改变CPU工作状态(从目态改变成管态);
③对硬件资源进行抽象,易于用户使用硬件资源。

系统调用分类

进程管理: 创建和撤销进程、终止或异常终止进程、阻塞和唤醒进程、挂起和激活进程、监视和追踪进程、获取和设置进程属性。
文件管理: 创建文件、删除文件、打开文件、关闭文件、读写文件、链接文件、控制文件、显示文件和目录内容、显示和设置文件属性。
设备管理: 申请设备、释放设备、设备I/O操作和重定向、获得和设置设备属性、控制和检查设备状态。
存储管理: 申请和释放主存。
进程通信: 建立和断开通信连接、发送和接收消息、链接和断开共享主存、套接字操作、传送状态信息。
信息维护: 获取和设置日期及时间、获取和设置系统数据、生成诊断和统计数据。

服务例程

定义:
在操作系统内核中定义的一组内核函数,这些内核函数被称为系统调用的“服务例程”。

为什么要使用系统调用而不直接使用内核函数(服务例程)?

因为 程序的运行空间分为用户空间和内核空间 。而应用程序只能在用户空间操纵用户数据,调用用户程序中的过程或函数,不能直接访问内核数据,也无法在用户空间中直接执行内核函数(服务例程)
所以应用程序如果要使用服务例程,就必须使用对应的系统调用。
系统调用是在目态下执行,然后切换到管态执行对应的服务例程。

系统调用的实现

系统异常处理机制

操作系统实现系统调用的机制称为系统陷阱系统异常处理机制

访管指令/陷入指令(trap)

定义:
由于系统调用而引起处理器中断的机器指令被称为陷入指令(trap,又称为访管指令),它是非特权指令,但只可以在用户态下使用。
陷入指令是唯一一个只能在用户态,而不可以在核心态执行的非特权指令
作用:
切换CPU工作状态从用户态转换到内核态。

什么时候指明系统调用的功能号

执行访管指令时,必须通过某种方式指明对应系统调用的功能号(告诉内核使用什么服务例程),大多数情况下还应附带有传递给相应服务例程的参数。

系统调用实现的要点:

1.编写系统服务例程:也就是编写内核函数
2.设计系统调用入口地址表:每个入口地址都指向一个系统调用的服务例程,有些还包含系统调用自带参数的个数
3.陷阱机制:需要开辟现场保护区,以保存发生系统调用时应用程序的处理器现场。

系统调用的处理过程

程序执行系统调用,产生中断转向内核态,进入陷阱处理程序(也就是系统调用处理程序),它将按功能号来查询入口地址表,并转至对应服务例程执行,完成后退出中断,返回程序断点继续执行。

实现应用程序和系统调用之间传递参数方法主要有3种:

访管指令自带参数或参数地址:可以规定访管指令之后的若干单元存放参数,这种称为直接参数;或者是在访管指令之后紧邻的单元存放参数的地址,这种被称为间接参数
通过CPU的通用寄存器传递参数:该方法不适用于大量传参,可以通过在主存中某个区或表中存放参数,然后将首地址送入寄存器
在主存中开辟专用堆栈区传递参数

系统调用和普通函数调用的区别

  • 调用形式不同: 系统调用按功能号调用,普通函数按转向地址调用;
  • 实现方式不同: 系统调用代码在内核态执行,由操作系统提供源码,要通过访管指令从用户态切换到内核态,使用核心栈;普通函数代码在用户态执行,由用户自己编写或库函数提供源码,使用用户栈
  • 被调用的代码位置不同: 普通函数调用是静态调用,调用程序和被调用代码处于同一程序内,编译链接后是目标代码的一部分,当函数修改时必须重新编译链接;而系统调用的服务例程位于操作系统中,是系统级程序,当系统调用的服务器例程升级或修改后与调用程序无关
  • 提供方式不同: 系统调用由操作系统提供;普通函数由编程语言提供。

3. 操作系统的多角度

3.1 资源管理

计算机资源分类

分为硬件和信息资源。硬件资源包含处理器、主存和各类外围设备,信息资源则以数据和程序的形式呈现。

驱动程序

驱动程序是最底层的、直接控制和监视各类硬件(或文件、通信)资源的系统程序部分,用于封装设备控制的烦琐细节,向上层使用者提供一个接口,便于简化上层程序的开发。

用户可以根据操作系统的具体实现方式, 独占或并发 地使用资源。

对于独占型资源 ,操作系统提供了以下资源分配方式:

静态分配: 是指进程运行前一次性拿到全部独占资源,资源使用率低;
动态分配: 是指资源使用前临时申请,但是可能因为资源竞争而产生死锁;
资源抢占式分配: 是指操作系统可以根据需求抢夺正在被使用的资源,但是被抢夺资源的进程需要执行回滚,实现代价大。

现代计算机最基本的三种资源管理技术
目的: 用于解决资源数量不足、资源复用性和资源易用性问题

复用:
定义: 操作系统让众多进程通过不同方式共享物理资源。创建虚拟资源和虚拟机以提高物理资源利用率。
作用: 提高物理资源利用率,从而 解决物理资源数量不足 的问题。
包含空分复用共享时分复用共享两种技术:

空分复用共享: 将物理资源的不同单位同时分配给不同进程,比如主存和磁盘资源。
时分复用共享: 多个进程可以轮流使用物理资源一段时间。

时分独占式: 对资源执行多个操作,通常使用一个周期后才会释放
时分共享式: 进程占用该资源后可能随时被剥夺,被另一个进程抢占使用

虚拟:
定义: 通过对资源进行转化、模拟和整合,通过时分复用(如多道程序技术,分时系统)以及空分复用(如虚拟内存)技术,把一个物理上的实体变为多个逻辑上的对应物,或把多个物理资源变成单个逻辑上的对应物(用户感受到的是虚拟资源)。
作用: 虚拟技术不仅能解决某类物理资源不足的问题,能为程序提供易于使用的虚拟资源 ,还可以实现 资源的共享

抽象:
定义: 指通过创建软件来屏蔽硬件资源的物理特性和实现细节,简化对硬件资源的操作、控制和使用。
比如资源抽象是指通过编制有关软件来屏蔽硬件资源的物理特性和实现细节,简化对硬件资源的操作、控制和使用。比如文件是对硬盘的抽象,虚存是对主存的抽象。
作用: 用于处理系统复杂性,主要解决资源易用性问题。

复用技术和虚拟技术的区别

操作系统中利用了两种复用技术实现虚拟技术 ,即时分复用技术和空分复用技术。
虚拟一定要使用复用技术,反之不一定。 其中虚拟的最主要目的是实现资源的复用。

3.2 程序控制

多道程序设计(multiprogramming)

定义:
允许多个程序同时进入计算机系统的主存,通过竞争处理器资源获得交替执行。宏观上多道程序是同时执行的,都处在开始和结束之间,而微观上这些程序是串行的,它们轮流占用CPU交替执行。
作用:
①提高CPU、主存、和设备的利用率;
②提高系统的吞吐率(使系统单位时间内处理的作业量增加)
③充分发挥系统的并行性(不是并发性),使得设备与设备之间,CPU与设备之间能并行执行。
实现:
如何使用资源: 运行程序执行硬件提供的陷入指令(访管指令)调用操作系统提供的服务例程,陷入操作系统程序以使用资源并让出CPU;
如何复用CPU: 操作系统调度程序在CPU空闲地时候(比如当前程序发送了I/O请求)让其他程序运行;
如何使CPU和设备充分并行: 硬件的设备控制器与通道(专用的I/O处理器)独立完成I/O操作。

3.3 操作系统的控制方式

作业的控制方式

脱机作业控制方式 (批处理系统的作业控制方式,不存在人机交互)
联机作业控制方式 (现代计算机的作业控制方式,存在人机交互)

命令解释程序

定义:
命令结束处理程序是接收和执行一条用户命令并对作业加工处理的程序包。而脱机作业控制方式和联机作业控制方式都需要提供对命令的解释处理。
命令可以是一条语言、一系列图形系统的操作、一串批处理系统的作业步、一个命令行的输入指令等
处理过程:
①操作系统启动命令解释程序,等待命令;
②一旦中断事件发生,操作系统就从命令缓冲区读入用户要求系统执行的那一条命令,然后进行响应,解释分析命令,执行处理代码;
③命令解释处理完毕后,继续等待下一条命令。

3.4 人机交互界面

比如命令行界面、图形用户界面、语言用户界面等。

3.5 系统接口

操作系统提供了3种类型的接口:

1.命令接口
提供一组命令供用户直接或间接操作。
根据作业的方式不同,命令接口又分为联机命令接口和脱机命令接口。

联机命令接口:
又称交互式命令接口,适用于分时或实时系统的接口,由一组键盘操作命令组成。用户输入一条指令,操作系统就执行一条指令。
脱机命令接口:
又称批处理命令接口,使用于批处理系统,由一组作业控制命令组成。用户输入一堆指令,操作系统运行一堆指令。在操作系统运行这些命令时用户不可干预。

2.程序接口
程序接口由一组系统调用命令组成,提供一组系统调用命令供用户程序使用。
3.图形界面接口
通过图标 窗口 菜单 对话框及其他元素,和文字组合,在桌面上形成一个直观易懂 使用方便的计算机操作环境.

可移植操作系统接口(POSIX)

定义:
由 IEEE 定义的一个规定了操作系统必须提供的API的标准。
作用:
为不同平台下的应用程序提供相同的应用程序接口(API),提高应用程序的可移植性。

3.6 系统结构

主流操作系统的结构有六种:

单体式结构、层次式结构、虚拟机结构、微内核结构、外核结构和客户端-服务器模式结构

单体式

基本思想:
把模块作为操作系统的基本单位,按照功能需要而不是程序和书的特性,把整个系统分解为若干模块,每个模块具有一定独立功能,若干关联模块协作完成某个功能。该结构需要明确各个模块之间的接口关系,使得各模块之间可以自由地互相调用;模块之间需要传递参数或返回结果时,其个数和方式也可以随意约定。而数据一般都是作为全程量使用,各模块的设计、编码、调试是分别进行的,最后再把所有模块连接成一个完整的单体式系统。
优点:
①结构精密、组合方便、针对不同环境和需求可以组合不同模块来满足,灵活性大;
②针对某个功能,可以使用最有效的算法和任意调用其他模组中的过程来实现,系统效率增高。
缺点:
①模块独立性差,模块之间牵连多,形成了复杂的调用关系,甚至有循环调用,导致系统结构不清晰,正确性难以保证、可靠性低、系统功能的增删修改困难;
②随着系统规模增大,系统复杂性迅速增长。

层次式

基本思想:
将操作系统划分为若干个模块(进程),这些模块按照功能的调用次序排列成若干层次,各层之间只能存在单向依赖或单向调用关系,即低层为高层提供服务,反之不行。
优点:
①将整体问题局部化(不同层次考虑不同问题),层次间的依赖和调用关系清晰规范;
②系统接口相比其他结构要少且简单;
③整个系统的正确性可以通过确保各层的正确性来保证,即低层正确,则高层使用低层的服务就是正确的服务。
④各层的模块的增删修改不影响其他层次,有利于系统维护或扩充。
缺点:
分层是单向依赖的,必须建立模块间的通信机制,开销大,系统效率降低。

虚拟机

基本思想:
计算机硬件资源可以通过复用和共享技术改造成多个虚拟机;通过一类物理设备来模拟另一类物理设备,或通过分时地使用一类物理设备,把一个物理实体改变成若干个逻辑上的对应物。
虚拟机使得一台计算机可以同时运行两个或多个操作系统。

微内核

基本思想:
操作系统仅将所有应用必需的最小核心功能集放入内核,称为 微内核(microkernel) ,其他功能都在内核之外,由在用户态运行的服务进程实现,通过微内核所提供的消息传递机制完成进程间消息通信
微内核只支持系统基本功能,比如进程调度、消息传递、和设备驱动等,只完成极少数内核态任务。
操作系统其他部分由相对独立的若干服务器进程实现,运行在用户态并以客户端-服务器模式执行,比如文件管理服务、进程管理服务等功能相对较弱的服务。当出错时,这些模块中的错误虽然会使这些模块崩溃,但是不会使得系统死机。
优点:
①高可靠性(当出错时,系统不会死机);
②对进程的请求提供一致性接口,不区分内核级服务和用户级服务,所有服务均借助消息传递机制提供;
③具有较好的可拓展性和易修改性,当需要拓展或修改时,只需要增加或替换服务器;
④可移植性高。
缺点:
运行效率低,因为进程间必须通过微内核提供的消息传递机制才能进行通信。

外核

与虚拟机克隆真实机器不同,另一种策略是对机器进行分区。给每个用户整个资源的一个子集。
在底层中,一种称为外核的程序在内核态中运行。它的任务是为虚拟机分配资源,并检查试图使用这些资源的企图,以确保没有机器会使用他人资源。每个用户层的虚拟机可以运行自己的操作系统,但限制在只能使用已经申请并且获得分配的那部分资源。
外核机制的优点是减少了映像层。在其他的设计中,每个虚拟机都认为它有的磁盘,其盘块号从0到最大编号,这样虚拟机监控程序必须维护一张表格用以重映像磁盘地址,有了外核这个重映像处理就不需要了,外核只需要记录已经分配各个虚拟机的有关资源即可。这个方法还有一个优点,它将多道程序(在外核内)与用户操作系统代码(在用户控件内)加以分离,而且相应负载并不重,这是因为外核所做的一切,只是保持多个虚拟机彼此不发生冲突。

客户端-服务器模式

一个微内核思想的略微变体是将进程划分为:
1.服务器:每个服务器提供某种服务。
2.客户端:使用这些服务。
这个模式就是所谓的客户机-服务器模式。通常在系统最底层是微内核,这个模式的本质是存在客户端进程和服务器进程。
在客户端和服务器之间的通信是消息传递。普遍方式是客户端和服务器在不同的计算机上,通过局域网或广域网连接,由于客户端通过发送消息与服务端通信,客户端并不需要知道这些消息是在它们的本地机器上处理,还是通过网络被送到远程机器上处理。


4. 操作系统的基本功能

4.1 处理器管理(进程管理)

在多道程序环境下, CPU 的分配和执行都以进程(或线程)为基本单位,因而对进程的管理可归纳为处理器的管理。

并发是指在计算机内同时运行多个进程,因此进程何时创建、何时撤销、如何避免冲突、合理共享就是进程管理的最主要的任务
处理器管理的主要功能包括进程管理、临界区管理、死锁通信、处理器调度等。

4.2 存储器管理(内存管理)

存储器管理是指对计算机系统的内存管理。
存储器管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率。
存储器管理的主要功能包括内存的分配与回收、地址映射、内存保护与共享和内存扩充等功能。

4.3 文件管理(文件系统)

文件管理指以同一的方式管理用户和系统的信息存储、检索、更新、共享和保护,为用户提供一套方便有效的文件使用和操作方法。
文件及管理信息资源的程序集合称为文件系统
文件系统4大功能:文件组织、文件存取、文件控制和文件使用。

4.4 设备管理(主要是 I/O 管理)

设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率。
主要功能包括缓存管理、设备分配、设备处理和虚拟设备等功能。


5. 操作系统的基本特征

OS 基本特征

虚拟、并发、异步和共享。

虚拟

定义: 通过对资源进行转化、模拟和整合,通过时分复用(如多道程序技术,分时系统)以及空分复用(如虚拟内存)技术把一个物理上的实体变为多个逻辑上的对应物,或把多个物理资源变成单个逻辑上的对应物(用户感受到的是虚拟资源)。
作用: 虚拟技术不仅能解决某类物理资源不足的问题,能为程序提供易于使用的虚拟资源 ,还可以实现 资源的共享

并发与并行

并行(Parallelism)

定义:
指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是同时执行的。

并发(Concurrency)

定义:
指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。

并发与并行的区别

宏观上并行和并发的进程都是同时执行的,其实并发是指一段时间多个事件同时发生,而并行是是指同一时刻多个事件同时执行。
微观上并行是多个进程同时执行的,并发不是。只是由于CPU处理速度很快,导致我们察觉不出。

共享

定义:
资源共享是指系统中的资源可以供内存中多个并发执行的进程共同使用。
资源共享根据属性分为两种形式:

  • 互斥共享: 计算机中的某个资源一段时间内只能允许一个进程访问,别的进程没有使用权,只能等待到该进程使用完后才能访问。
  • 同时共享: 计算机中的某个资源在在一段时间内可以“同时”(宏观上同时访问,微观上交替进行访问)允许多个进程访问。
    进程访问磁盘一般都是交替地访问。但是实际上可以做到并行共享,比如多个进程访问硬盘,只需要磁盘将要访问的数据块放到一个访问数据流上,读了一组数据块就相当于是为了多个进程读的。

共享和并发互为存在条件

并发对于共享:从定义看,共享是指系统中的资源可以供内存中多个并发执行的进程共同使用——所以如果不存在并发,那么共享就失去了意义,即不存在多个并发的进程共同使用系统的资源。
共享对于并发:如果不存在共享,那么系统就不能对资源共享实施有效地管理,也必将影响到程序的并发执行,甚至无法实现并发执行。

异步和同步

异步(Asynchronous)

定义:
异步指在多道程序环境下,允许多个程序并发执行, 但由于资源有限, 进程的执行不是一贯到底的,而是走走停停, 以不可预知的速度向前推进, 这就是进程的异步性。
异步性就是描述多个并发执行进程的这种以不可预知的速度走走停停、何时开始何时暂停何时结束不可预知的、什么时候打断别的进程不可预知的性质。

  • 比如A进程正在占用CPU计算,B进程这时也想占用CPU计算,B进程只有等,等A进程算完了,A进程去访问磁盘资源了,这时B进程再占用CPU进行计算,B进程还没计算完,A进程从磁盘取出资源了,A进程发现B这时在占用CPU,这时A进程就需要等待,等B算完后再继续到CPU中进行计算。由于每个进程占用资源的时间不固定,所以进程的执行以不可预知的速度前进。

如果失去了并发性, 即系统只能串行地运行各个程序, 那么每个程序的执行会一贯到底。 只有系统拥有并发性, 才有可能导致异步性。
缺点:
异步性使得操作系统运行在一种随机的环境下,可能导致进程产生于时间有关的错误。但是只要运行环境相同,操作系统必须保证多次运行进程,都获得相同的结果。

同步(Synchronous)

定义:
同步又称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而等待、传递信息所产生的制约关系。


6. 操作系统的分类

操作系统是 最基础系统软件 ,它统一管理软硬件程序,控制程序执行,改善人机界面,合理组织计算机工作流程,方便用户使用计算机。

根据不同的原则,操作系统可以分为以下几类:

设计目标: 批处理系统、分时操作系统、实时操作系统
处理方式: 单处理器操作系统、多处理器操作系统
用户和任务: 单任务操作系统、多任务操作系统、单用户操作系统、多用户操作系统
应用领域: 服务器操作系统、并行操作系统、网络操作系统、分布式操作系统、微机操作系统、手机操作系统、嵌入式操作系统、传感器操作系统等

操作系统的发展历程

批(batch)

批是一系列的作业。而作业是一种把程序、数据和作业说明书组织起来的 任务单位
作业的执行依赖至少一个进程,作业与任务类似。

批处理系统

定义:
批处理系统是一个把批中的作业预先输入作业队列中,由操作系统按照作业说明书的要求来调度和控制作业执行,大幅减少人工干预,形成自动转换和连续处理的作业流。
优点:

  • 作业脱机工作
  • 提高了资源利用率和系统吞吐量

缺点:

  • 无交互能力

单道批处理系统 (单用户单任务的操作系统)

定义:
系统对于作业的处理是成批进行的,但是内存中只能存在一道作业,且只有当该作业完成后才能执行下一个作业。
特点

  • 自动性: 磁带上的一系列作业能自动运行,无需人工干预
  • 顺序性: 磁带上的各道作业按顺序地进入内存,先调入内存的作业先完成
  • 单道性: 内存中仅存在且只有一道程序运行

缺点:
当作业在 执行时 发送输入/输出请求时,由于高速的CPU和低速的I/O设备的速率不匹配导致CPU需要等待I/O设备读写完成。

多道批处理系统(多用户多任务的操作系统)

定义:
系统对于作业的处理是成批进行的,但是内存允许同时存在多个作业,并且允许作业之间交互执行——即当一道作业因为发送输入/输出请求而暂停执行时,CPU会立即转去运行另一道作业,进而实现了操作系统的并发性。
特点:

  • 多道 :计算机内存中同时存放多道相互独立的程序
  • 宏观上并行 :同时进入系统的多道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕
  • 微观上串行 :内存中的多道程序轮流占有CPU,交替执行

优点:

  • 系统资源利用率高
  • 作业吞吐量大
  • 批量处理
  • 多道程序运行
  • 作业脱机运行

缺点:

  • 无人机交互能力
  • 作业周转时间延长
  • 不利于程序开发和调试

分时操作系统

定义
多个联机用户同时使用一个计算机系统,在各自终端上进行交互式会话,程序、数据和命令均在会话过程中提供,以回答方式控制程序运行。
系统把处理器的时间划分成时间片(最小时间单位)轮流分配给各个联机终端,若时间片用完则产生时钟中断,将控制权转至操作系统并重新进行调度。
——(换句话说就是当时间片用完时,无论程序是否运行完毕,系统都会产生中断并将控制权转给其他程序)
特点

  • 分时性 :若干个终端用户联机使用计算机,分时是指多个用户分享同一台计算机的CPU时间
  • 独立性 :终端用户之间彼此独立、互不干扰,每个终端用户感觉好像独占整台计算机
  • 及时性(对于小计算量的请求) :终端用户没有大量计算量的立即型请求能够在短时间内得到相应
  • 交互性 :采用人机交互和联机工作的方式,用户直接控制程序执行,便于查询调试和排错

缺点
在一些应用场合,需要系统能对外部的信息在规定的时间(比时间片的时间还短)内作出处理(比如飞机订票系统或导弹制导系统),此时分时操作系统无法胜任。

实时操作系统

定义
用于满足实时控制和实时信息处理的需要。当外部事件发生时,实时操作系统能够及时给予接受并以足够快的速度进行处理,即一方面针对单个实时任务保证在规定时间内控制其生产过程或对控制对象做出快速响应,另一方面能够协调安排所有的实时任务的运行
实时操作系统有硬实时软实时之分:
硬实时要求在规定的时间内必须完成操作,操作系统采用抢占式优先数调用,以保证实时任务的快速排期和执行;软实时则只要按照任务的优先级,操作系统采用时间阈值抢占的折中。
特点

  • 及时性
  • 可靠性

分时操作系统和多道批处理系统的主要区别:

分时操作系统在作业没完成前可以中断,而多道批处理不行。
多道批处理只是在作业产生I/O输入输出请求时CPU会转去另一个作业执行。


7. 操作系统的内核

内核(kernel)

定义:
一组中断驱动的程序模块,作为可信软件来提供支持进程并发执行的基本功能和基本操作
特点:
①它存在于内核空间,运行于内核态;
②它具有执行特权指令、直接访问硬件设备和所有主存空间的权限,且不可以被其他进程抢占,进程在内核上运行;
③内核至少应该提供中断处理、时钟管理、原语管理、进程切换、消息传递等功能
内核设计:
单内核、微内核、混合内核、外内核

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值