本文章是学习《操作系统》慕课版 和 王道《2024年 操作系统 考研复习指导》后所做的笔记,其中一些图片来源于学习资料。
目录
裸机 + I/O 软件 + 用于管理文件的软件 + 面向用户的窗口软件


OS 的目标与应用环境有关
主要目标:方便性、有效性、可扩充性和开放性
方便性和有效性是设计 OS 时最重要的两个目标
可扩充性的好坏与 OS 的结构有着十分紧密的联系
无结构 —> 模块化结构 —> 分层式结构 —> 微内核结构
微内核结构:方便地添加新的功能和模块,对原有的功能和模块进行修改,具有良好的可扩充性
计算机 OS 的应用环境:单机环境 —> 网络环境
开放性指系统能遵循世界标准规范,特别是能遵循开放系统互连 OSI 国际标准
凡遵循国际标准所开发的硬件和软件,都能彼此兼容,方便地实现互连
含义:OS 处于用户与计算机硬件系统之间,用户通过 OS 使用计算机系统;或者说,用户在 OS 的帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序
用户使用计算机的方式:

接口:
PS:命令接口和程序接口有时统称为用户接口
总结:

一个计算机系统中,通常含有多种硬件和软件资源

OS 必须对共享资源的使用请求进行授权,已协调诸多用户对共享资源的使用
补充知识:执行一个程序前需要将该程序放到内存中,才能被 CPU 处理
例子:使用 QQ 与朋友视频聊天的过程
总结:

一个完全无软件的计算机系统
隐藏了 I/O 设备操作的细节,并可向上将 I/O 设备抽象为一组数据结构以及一组 I/O 操作命令【在裸机上铺设的 I/O 软件,隐藏了 I/O 设备的具体细节,向上提供了一组抽象的 I/O 设备】

把覆盖了上述软件的 I/O 设备称为扩充机器或虚机器,向用户提供了一个可以对硬件进行操作的抽象模型
I/O 软件实现了对计算机硬件操作的第一个层次的抽象
实现对文件操作的细节,并向上层提供一组实现对文件进行存取操作的数据结构及命令,用户可利用该软件提供的数据结构及命令对文件进行存取,用户看到的是一台功能更强、使用更方便的虚机器
文件管理软件实现了对硬件资源操作的第二个层次的抽象
用户可在窗口环境下方便地使用计算机,从而形成一台功能更强的虚拟机
OS 是铺设在计算机硬件上的多层软件的集合,不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型
一个硬件不仅可在低层加以抽象,还可在高层对该资源低层已抽象的模型进行再次抽象,从而形成更高层的抽象模型。抽象层次越高,抽象接口所提供的功能越强,用户使用起来越方便
OS:简单 —> 复杂、低级 —> 高级
单道批处理系统 —> 多道批处理系统,通过减少计算机的空闲时间提高 CPU 的 I/O 设备的利用率
出现支持多个用户使用一台计算机的分时系统,使系统资源利用率得到极大提高
改善 I/O 设备和 CPU 利用率的假脱机系统
提出能够有效提高存储器系统利用率并能从逻辑上扩大内存的虚拟存储器技术
在网络环境下,通过在服务器上配置网络文件系统和数据库系统,将资源提供给全网用户共享,进一步提高资源的利用率
当资源利用率不高的问题得到基本解决后,用户在使用计算机和调试程序时的不方便性成为主要矛盾
分时系统:提高了系统资源的利用率,实现人机交互,使用户能像早期使用计算机时一样感觉自己独占全机资源,对其进行直接操控,同时极大地方便程序员对程序进行调试和修改
图形用户界面:进一步方便用户对计算机的使用
信息技术、微机芯片、外部设备
计算机:单处理机系统 —> 多处理机系统 OS:单处理机 OS —> 多处理机 OS
计算机网络出现 网络OS(不仅能有效管理好网络中的共享资源,还能向用户提供许多网络服务)
简单的批处理系统 —> 多道批处理系统 —> 分时系统 —> 实时系统 —> 微机 OS、多处理机 OS、网络 OS、分布式 OS

事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带上的程序和数据输入磁带。当 CPU 需要这些程序和数据时,再从磁带上将它们高速地调入内存

优点:

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

单道批处理系统是在解决人机矛盾和 CPU 与 I/O 设备速度不匹配矛盾的过程中形成的
单道批处理系统旨在提高系统资源的利用率和系统吞吐量
这种单道批处理仍然不能充分利用系统资源

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

因此,应在计算机系统中增加一组软件,此软件应包括:能够有效组织和管理四大资源的软件,合理地对各类作业进行调度并控制它们所运行的软件,以及方便用户使用计算机的软件
OS:一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合
推动多道批处理系统形成和发展的主要动力:提高资源利用率和系统吞吐量
推动分时系统形成和发展的主要动力:为了满足用户对人机交互的需求
分时系统:在一台主机上连接多个配有显示器和键盘的终端所形成的系统,该系统允许多个用户同时通过自己的终端以交互方式使用计算机,并共享主机中的资源
允许有多个用户同时通过自己的键盘键入命令,系统也应能将全部命令及时接收并处理
及时接收多个用户键入的命令或数据,只须在系统中配置一个多路卡即可
用户键入命令后,能对自己的作业及其运行及时地实施控制,或进行修改
用户的作业都必须驻留在内存中
含义:指系统允许将多台终端同时联接到一台主机上,并按分时原则为每个用户服务
优点:允许多个用户共享一台计算机,显著地提高了资源利用率,降低了使用费用,从而促进计算机更广泛的应用
含义:指系统提供了一种用机环境,即每个用户在各自的终端上进行操作,彼此之间互不干扰,给用户的感觉就像是他一人独占主机
含义:指用户的请求能在很短的时间内获得响应,这一时间间隔是根据人们所能接受的等待时间确定的,通常仅为1~3 s
含义:指用户可以通过终端与系统进行广泛的人机对话
广泛性表现在:用户可以请求系统提供多方面的服务
不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性
含义:指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行
实时采集现场数据,并对所采集的数据进行及时处理,进而能够自动控制相应的执行机构,使之具有按预定的规律变化的功能
用于对武器的控制
接收用户从远程终端上发来的服务请求,根据用户发来的请求对信息进行检索和处理,并能及时对用户做出正确的回答
文本、图像、音频和视频等信息已能被集成在一个文件中,进而形成一个多媒体文件
为了保证好的视觉和听觉感受,用于播放视频和音频的多媒体系统必须是实时信息处理系统
芯片+仪器 / 设备 —> 智能仪器 / 智能设备
智能仪器 / 智能设备 + OS —> 具有实时控制或处理功能
周期性实时任务:外部设备周期性地发出激励信号给计算机,要求它按制定周期循环执行,以便周期性地控制某外部设备
非周期性实时任务:无明显地周期性,但都必须联系着一个截至时间,或称为最后期限
硬实时任务 HRT:系统必须满足任务对截至时间的要求,否则可能出现难以预测地结果 工业控制和武器控制的实时系统
软实时任务 SRT:联系着一个截至时间,但并不严格,若偶尔错过了任务的截至时间,则对系统产生的影响不会太大 信息查询系统和多媒体系统
信息查询系统:系统按分时原则为多个终端用户服务
实时控制系统:系统周期性地对多路现场信息进行采集,并对多个对象或多个执行机构进行控制
信息查询系统:每个终端用户在与系统进行交互时,彼此相互独立、互不干扰
实时控制系统:对信息的采集和对对象的控制彼此互不干扰
信息查询系统:依据人所能接受的等待时间确定
多媒体系统:播放出来的音频和视频能令人满意
实时控制系统:以控制对象所要求的截至时间确定,一般为秒级到毫秒级
信息查询系统:人与系统的交互性仅限于访问系统中某些特定的专用服务程序
多媒体系统:用户发出某些特定的命令,然后由系统立即响应
实时系统:要求系统高度可靠,因为任何差错都可能会带来无法预料的灾难性后果;采取多级容错措施,以保障系统及数据的安全性
配置在微机上的操作系统

定义:为了完成某个特定功能而设计的系统,或是具有附加机制的系统,或是其他部分的计算机硬件与软件的结合体
许多情况下,嵌入式系统是一个大系统或产品中的一部分
嵌入式系统的数量远超过普通的 OS,而且应用广泛
嵌入式系统的需求和限制有很大的不同
嵌入式系统通常与其所处的环境紧密联系
由于与环境交互的需要,从而产生实时限制,这类限制决定软件操作的时限;若多个活动必须进行同步管理,则需要更复杂的实时限制
应用于嵌入式系统的 OS
一种用途广泛的系统软件,包括与硬件相关的低层驱动软件、系统内核、设备驱动接口、通信协议、图形用户界面、标准化浏览器……
负责嵌入式系统的全部软硬件资源的分配、任务的调度以及并发活动的协调……
必须体现其所在系统的特征,必须能够通过装卸某些模块实现系统所要求的功能
用于在计算机网络环境下对网络资源进行管理和控制,实现数据通信及对网络资源的共享,为用户提供网络资源接口的一组软件和规程的集合
网络 OS 建立在网络中的计算机各自不同的单处理机 OS 之上,为用户提供使用网络资源的桥梁
网络 OS 不仅涵盖了单处理机 OS 的全部功能,还具有支持数据通信、应用互操作【以实现“信息互通性”及“信息互用性”】、网络管理【确保最大限度地增加网络的可用时间、提高网络设备的利用率、改善网络的服务质量以及保障网络的安全性】等功能
为了实现网络中计算机之间的数据通信,网络 OS 应具有如下基本功能:
基于软件实现的一种多处理机系统,是多个处理机通过通信线路互联而构成的松散耦合系统,系统的处理和控制功能分布在各个处理机上
分布式系统是利用软件系统方式构建在计算机网络上的一种多处理机系统
分布式系统由多台计算机组成
资源和控制的分布性也称为自治性
分布式系统的系统资源被所有计算机共享,每台计算机的用户不仅可以使用本机的资源,还可以使用分布式系统中其他计算机的资源
分布式系统中的若干台计算机可以通过相互协作来完成同一任务,或者说一个程序可以分布在几台计算机上并行地运行
系统具备一个全局性的进程通信机制,系统中的任意两台计算机都可以通过该机制实现信息交换
配置在分布式系统上的公用 OS
以全局的方式对分布式系统中的所有资源进行统一管理,可以直接对系统中地理位置分散的各种物理和逻辑资源进行动态分配和调度,有效地协调和控制各个任务的并行执行,协调和保持系统内的各个计算机间的信息传输与协作运行,并向用户提供一个统一的、方便的、透明的使用系统界面和标准接口
涵盖单处理机 OS 的主要功能

系统中的程序能并发执行,使得 OS 能有效地提高系统中资源的利用率,增加系统的吞吐量
并行:指两个或多个事件在同一时刻发生
并发:指两个或多个事件在同一时间间隔内发生
若在计算机系统中有多个处理机,则这些能并发执行的程序便可被分配到多个处理机上实现并行执行,即利用每个处理机处理一个可并发执行的程序,多个程序便可同时执行
PS:
未引入进程:同属于一个应用程序的计算程序和 I/O 程序只能顺序执行
引入进程:为计算程序和 I/O 程序分别建立一个进程后,这两个进程便可并发执行
若对内存中的多个程序都分别建立一个进程,则其可以并发执行,能极大限度地提高系统资源的利用率、增加系统的吞吐量
进程的定义:指在系统中能独立运行并能作为资源分配对象的基本单位,是一个能独立运行的活动实体
进程的组成:一组机器指令、数据、堆栈……
PS:多个进程之间可以并发执行和交换信息
资源共享:某种资源能被大家使用
OS 环境下的资源共享 / 资源复用:指系统中的资源可供内存中多个并发执行的进程共同使用【时间:进程在内存中时;地点:内存】
定义:当进程 A 要访问某资源时,必须提出请求。若此时该资源空闲,系统便可将其分配给进程 A 使用。此后若再有其他进程也要访问该资源,则只要进程 A 未用完,其他进程就必须等待。仅当进程 A 访问完并释放后,才允许另一进程对该资源进行访问
临界资源 / 独占资源:在一段时间内只允许一个进程访问的资源,系统中的大多数物理设备、栈、变量、表格……
定义:允许在一段时间内由多个进程“同时”(宏观)访问的资源
微观:进程对该资源的访问是交替进行的(分时共享)
并发和共享是多用户(多任务)OS 的两个最基本的特征
并发和共享互为对方存在的条件,即:
定义:在 OS 中,把通过某种技术将一个物理实体【实的,实际存在】变为若干个逻辑上的对应物【虚的,用户感觉存在】的功能
虚拟技术:用于实现虚拟的技术
实现:在 OS 中利用时分复用和空分复用技术实现“虚拟”
PS:虚拟的实现,若采用分时复用技术,即对某一物理设备进行分时复用,设 N 是某物理设备所对应的虚拟的逻辑设备数,则每台虚拟设备的平均速度必然等于或小于物理设备速度的 1/N;若采用空分复用技术,则此时一台虚拟设备平均占用的空间必然等于或小于物理设备所拥有空间的 1/N
利用处理机的空闲时间来运行其他程序以提高处理机的利用率
目的:提高资源的利用率
时分复用技术能提高资源利用率的根本原因:令某设备在为一个用户服务的空闲时间转去为其他用户服务,进而使设备得到最充分的利用
微观:处理机在各个微小地时间段内交替着为各个进程服务
PS:若失去了并发性,则一个时间段内系统只需运行一道程序,失去实现虚拟性的意义,故,没有并发性就谈不上虚拟性
利用多道程序设计技术,为每道程序建立至少一个进程,使多道程序并发执行
虽然系统中只有一台处理机,但通过时分复用技术能实现(宏观上)同时为多个用户服务,使每个终端用户都认为有一个处理机在专门为他服务。即,利用多道程序设计技术,可将一台物理上的处理机虚拟为多台逻辑上的处理机,然后可在每台逻辑处理机上运行一道程序
虚拟处理机:用户所感觉到的处理机
利用时分复用技术,将一台物理上的 I/O 设备虚拟为多台逻辑上的 I/O 设备,并允许每个用户占用一台逻辑上的 I/O 设备,并允许每个用户占用一台逻辑上的 I/O 设备
使原来仅允许在一段时间内由一个用户访问的设备(即临界资源)变为允许多个用户“同时”访问的共享设备,即其在宏观上能“同时”为多个用户服务
利用存储器的空闲时间来存放其他程序以提高内存的利用率
单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量
空分复用存储器+虚拟存储技术:逻辑上扩大存储容量
虚拟存储技术本质上是实现内存的时分复用,即可以通过时分复用内存的方式使一道程序仅在远小于它的内存空间中运行
进程的异步性:进程以人们不可预知的速度向前推进
PS:若失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。只有系统拥有了并发性,才有可能导致异步性
位置:位于计算机的固件中
要求:初始化系统的各个组件以及内存内容;知道如何加载 OS 并开始执行系统
作用:定位 OS 内核并将其加载到内存中
硬件中断或软件中断引起
CPU 执行
位于内存
位于外存

定义:指 OS 一直运行在计算机上的程序【与硬件紧密相关的模块、各种常用设备的驱动程序、运行频率较高的模块、许多模块所公用的一些基本操作,安排在紧靠硬件的软件层次中,常驻内存】
程序:内核、系统程序(与系统运行有关的程序,但不是内核)、应用程序(与系统运行无关的其他程序)
内核程序:实现操作系统的程序
目的:
支撑功能主要实现提供给 OS 其他众多模块所需要的一些基本功能
地位:内核最基本的功能,整个 OS 赖以活动的基础
为减少处理中断的时间,提高程序执行的并发性,内核在对中断进行“有限处理”后便会转入相关的进程,由这些进程继续完成后续的处理工作
地位:内核的一项基本功能,在 OS 中的许多活动都需要得到它的支撑
原语:由若干条指令组成的,用于完成一定功能的一个过程
原语与一般过程的区别:原语是原子操作
原子操作:指一个操作中的所有动作,要么全做,要么全不做,即原子性,是一个不可分割的基本单位。原子操作在内核态下执行,常驻内存
PS:原语在执行过程中不允许被中断
在进程管理中,或者由于各个功能模块的运行频率较高,或者由于它们为多种原语操作所需要,通常放在内核中,以提高 OS 的性能
存储器管理软件的运行频率比较高,通常放在内核中,以保证存储器管理具有较高的运行速度
由于设备管理与硬件紧密相关,因此其中很大部分设置在内核中
目的:双重模式执行提供了保护手段,以防止 OS 和用户程序受到错误用户程序的影响
定义:可能引起损害的机器指令
具体说明:
定义:不可能引起损害的机器指令
具体说明:
实现:应用程序所使用的都是非特权指令的限制由硬件实现,如果在应用程序中使用了特权指令,则硬件不会执行该指令,而是认为该指令非法,并发出权限出错信号,OS 捕获到这个信号后,将会转入相应的错误处理程序,以停止该应用程序的运行,并重新进行程序调度
程序运行的过程其实就是 CPU 执行一条一条的机器指令的过程
在 CPU 设计和生产时就划分了特权指令和非特权指令,故 CPU 执行一条指令前就能判断出其类型
处理机至少需要两种单独运行模式:用户态(又称目态)和内核态(又称管态、系统态、核心态)
表示方式:计算机硬件可以通过一个模式位(状态位)来表示当前模式,内核态(0)和用户态(1)
模式位的作用:区分为 OS 所执行的任务和为用户所执行的任务
用户态到内核态的切换:

PS:除了非法使用特权指令之外,很多事件会触发中断信号,一个共性是,但凡需要操作系统介入的地方,都会触发中断信号
用户程序需要使用特权指令怎么办?
解决方法:系统调用,视为软中断

例子:
触发方式:硬件通过系统总线发送信号到 CPU 触发的
地位:中断是计算机体系结构的重要组成部分
操作系统内核夺回 CPU 使用权的唯一途径
若没有“中断”机制,那么一旦应用程序上 CPU 运行,那么 CPU 会一直运行这个应用程序
与当前执行的指令有关,中断信号来源于 CPU 内部
定义:一种由软件引起的中断,或源于出错,或源于用户程序的特定请求,OS 的这种中断特性规定了系统的通用结构
检查中断信号:CPU 在执行指令时会检查是否有异常发生
处理:对于每一种中断,OS 都会通过不同的代码处理它,中断处理程序应用于处理中断
类型:
例子:
与当前执行的指令无关,中断信号来源于 CPU 外部
检查中断信号:每个指令周期末尾,CPU 都会检查是否有外中断信号需要处理
类型:
不同的中断信号,需要用不同的中断处理程序处理。当 CPU 检测到中断信号后,会根据中断信号的类型查询“中断向量表”,以此找到相应的中断处理程序在内存中的存放位置
中断处理程序一定是内核程序,需要运行在“内核态”

引入 OS 的主要目的:为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊地、高效地运行,并能最大限度地提高系统中各种资源的利用率和方便用户的使用
处理机管理的主要功能:创建和撤销进程,对进程的运行进行协调,实现进程之间的信息交换,按照一定的算法把处理机分配给进程
主要功能:为作业创建进程,撤销(终止)已结束的进程,控制进程在运行过程中的状态转换
进程同步机制的主要任务:对多个进程(含线程)的运行进行协调,协调方式有进程互斥方式和进程同步方式
进程同步最常用的机制:信号量机制
由源进程利用发生命令,直接将信息挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息
基本任务:按照一定的算法,从后备队列中选出若干个作业,并为它们分配运行所需的资源;在将这些作业调入内存后,分别为它们建立进程,以使它们都成为可能会获得处理机的就绪进程,并将这些进程插入就绪队列
任务:按照一定的算法,从进程的就绪队列中选出一个进程,将处理机分配给它,并为它设置运行现场,使其投入执行
存储器管理的主要任务:为多道程序的运行提供良好的环境、提高存储器的利用率、方便用户使用,并能从逻辑上扩大内存
主要任务:
分配方式:
内存属于有限资源,随着系统的运行,内存会被逐渐消耗
当程序执行完毕后,需要将其所占用的内存及时回收再分配,以提高系统内存资源的利用率
任务:回收程序所占用的资源,并根据当前的内存管理算法将回收的内存经过处理放入对应的管理数据结构中,供下次分配时使用
主要任务:
一种比较简单的内存保护机制:设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。在程序运行时,系统须对每条指令所要访问的地址进行检查,如果发生越界,则发出越界中断请求,以停止该程序的执行
逻辑地址:可装入程序的地址从 0 开始
物理地址:不可能从内存的“0”地址开始装入
各程序段的地址空间内的逻辑地址与其在内存空间中的物理地址并不一致,为保证程序能正确运行,存储器管理必须提供地址映射功能,即能够将地址空间中的逻辑地址变换为内存空间中与之对应的物理地址
实现:在硬件的支持下实现
借助虚拟存储技术,从逻辑上去扩大内存容量,使用户感觉到内存容量比实际内存容量大得多,以便让更多的用户程序能并发运行。既满足了用户的需要,又改善了系统的性能
为了能在逻辑上扩大内存,系统必须设置内存扩充机制,用于实现以下功能:
设备管理的主要任务:
作用:在 I/O 设备和 CPU 之间引入缓冲,可有效地缓和 CPU 与 I/O 设备速度不匹配的矛盾,提高 CPU 的利用率,进而提高系统吞吐量
缓冲区机制:
基本任务:根据用户进程的 I/O 请求与系统现有资源情况,按照某种设备分配策略,为之分配其所需的设备
设备处理程序:又称设备驱动程序,基本任务是实现 CPU 和设备控制器之间的通信,即由 CPU 向设备控制器发出 I/O 命令,要求其完成指定的 I/O 操作;以及有 CPU 接收从设备控制器发出来的中断请求,并给予迅速的响应和响应的处理
设备处理过程:
文件管理的主要任务:对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性
实现:系统中设置相应的数据结构,用于记录文件存储空间的使用情况,以分配存储空间时参考;系统还应具有对存储空间进行分配和回收的功能
主要任务:为每个文件分配必要的外存空间、提高外存的利用率,有助于提高文件系统的存取速度
主要任务:为每个文件建立一个目录项,目录项包括文件名、文件属性、文件在磁盘上的物理位置等,并对众多的目录项加以有效的组织,以实现方便的按名存取(用户只须提供文件名,即可对该文件进行存取)
其他作用:
根据用户的请求从外存中读取数据,或将数据写入外存
文件读(写)操作:在进行文件读(写)时,系统先根据用户给出的文件名去检索文件目录,从中获得文件在外存中的位置;然后,利用文件读(写)指针对文件进行读(写)操作,一旦读(写)完成,便修改读(写)指针,为下一次读(写)做好准备
由于读操作和写操作不会同时进行,故可合用一个读/写指针
为防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能,以实现:
用户可通过该接口向作业发出命令以控制作业的运行
服务对象:联机用户
组成:由一组键盘操作命令及命令解释程序组成
操作:当用户在终端或控制台上键入一条命令后,系统立即转入命令解释程序,对该命令加以解释并执行。完成指定操作后,“控制”又返回到终端或控制台上,等待用户键入下一条命令。这样,用户可以通过先后键入不同命令的方式实现对作业的控制,直至作业完成
服务对象:批处理作业的用户
操作:用户使用作业控制语言把需要对作业进行的控制和干预的命令,事先写在作业说明书上,然后将它与作业连在一起提供给系统。当系统调度到该作业运行时,通过调用命令解释程序对作业说明书上的命令逐条进行解释执行,直到遇到作业结束语句,系统停止该作业的运行
采用图形化的操作界面,采用非常容易识别的各种图标将系统的各项功能、各种应用程序和文件直观、逼真地表示出来。用户可以通过菜单(和对话框),用移动鼠标选择菜单项的方式取代命令的键入,方便、快捷地完成对应用程序和文件地操作在,从而把用户从烦琐且单调地操作中解脱出来
程序接口为用户程序在执行中访问系统资源而设置的,是用户程序取得 OS 服务的唯一途径
组成:由一组系统调用组成,每个系统调用都是一个能完成特定功能地子程序
操作:每当应用程序要求 OS 提供某种服务(功能)时,便调用具有相应功能的系统调用
一个用来确认被认证对象是否名副其实的过程,即确定对象的真实性,以防止入侵者进行假冒与篡改等
对系统中所须存储和传输的数据进行加密,使之成为密文
有效地保护了系统中信息资源的安全性
可通过两种途径保障系统中资源的安全性:一是通过对用户存取权限的设置,可以限定用户只能访问被允许访问的资源,即限定用户对系统资源的访问范围;二是通过对文件属性的设置,可以保障指定文件的安全性
对硬盘上所有的可执行文件进行扫描,以检查硬盘上所有可执行文件,若发现有病毒,则立即将其清除
在源主机和目标主机之间实现无差错的数据传输
对网络中的共享资源(硬件和软件)实施有效的管理,以协调各用户对共享资源的使用,保证数据的安全性和一致性
在一个由若干个不同网络互联所构成的互联网络中,必须提供应用互操作功能,以实现信息的互通性(指在处于不同网络中的用户之间能实现信息的互通)和信息的互用性(指用户可以访问不同网络中的文件系统和数据库系统中的信息)
OS 是无结构的,是为数众多的一组过程的集合,每个过程均可任意地调用其他过程,内部复杂、混乱
例子:MS-DOS、早期的 UNIX
定义:将 OS 按其功能划分为若干个具有一定独立性和大小的模块,并规定好各模块间的接口,使各模块之间能通过该接口实现交互;然后进一步将各模块细分为若干个具有一定功能的子模块,规定好各子模块之间的接口;若子模块较大,可将其进一步细分
模块-接口法设计 OS 结构的关键问题:模块的划分和规定好模块之间的接口
模块独立性越高,各模块间的交互越少,系统的结构越清晰
衡量模块独立性的标准:
设计思想:内核有一组核心组件,提供核心服务,其他服务在内核运行时动态实现(动态链接)
动态链接服务优于直接添加新功能到内核,因为对于每次更改,后者都需重新编译内核
每个组件在需要时被加载到内核
例子:现代 UNIX 系统(Solaris、Linux、Mac OS X……)、Windows 系统
OS 分为若干个层次,每层由若干个模块组成,每层之间只存在单向的依赖关系,即高层仅依赖于紧邻它的低层
自底向上分层设计法的基本原则:每一步设计都建立在可靠的基础上
底层(0 层):硬件
最高层(N 层):用户层
例子:THE、Multics

系统效率较低:由于分层式结构是分层单向依赖的,必须在各层之间都建立层间的通信机制,OS 每执行一个功能,通常要自上而下穿越多个层次,增加系统的通信开销,导致系统效率降低

OS 划分为两大部分:微内核、多个服务器
定义:指精心设计的、能实现现代 OS 最基本核心功能的小型内核;是 OS 最基本、最核心的部分

微内核不是一个完整的 OS,只是 OS 中最基本的部分
微内核包含:

单处理机微内核结构的 OS 都采用了客户/服务器模式
客户与服务器之间借助微内核提供的消息传递机制实现信息交互

机制:实现某一功能的具体执行机构,处于系统的基层,放在 OS 的微内核中
策略:在机制的基础上,借助于某些参数和算法实现该功能的优化或达到不同的功能目标,处于系统的高层
结构设计:降低 OS 的复杂度
面向对象技术的“抽象”和“隐蔽”原则:控制系统的复杂性
面向对象技术的“对象”、“封装”、“继承”:确保 OS 的“正确性”、“可靠性”、“易修改性”、“易扩展性”……提高 OS 的设计速度
大多数的微内核 OS,对于进程管理功能的实现,都采用策略与机制分离的原则
微内核中存在的功能:进程(线程)之间的通信功能、进程的切换、线程的调度、处理机之间的同步……
在微内核中,只配置最基本的低级存储器管理机制
微内核中存在的机制:将用户空间的逻辑地址变换为内存空间的物理地址的页表机制和地址变换机制……
大多数微内核 OS 都将与硬件紧密相关的一小部分放入微内核中进行处理,此时微内核的主要功能是捕获所发生的中断和陷入事件,并进行相应的前期处理,然后将有关事件的信息转换成消息,并把它发送给相关的服务器;由服务器根据中断或陷入事件的类型,调用相应的处理程序进行后期处理
运行效率有所降低
主要原因:在完成一次客户对 OS 提出的服务请求时,需要利用消息实现多次交互,进行用户/内核模型与上下文的多次切换

PS:变态的过程是有成本的,要消耗不少时间,频繁地变态会降低系统性能

外核或外内核 OS 的基本思想:在完成一次客户对操作系统提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模型与上下文的多次切换
例子:Aegis 系统
库 OS 的实现思想:基于应用程序的需求定制 OS 内核,将原本属于 OS 内核的功能以库的形式提供给用户
| 操作系统结构 | |||
| 特性、思想 | 优点 | 缺点 | |
| 分层结构 | 内核分多层,每层可单向调用更低一层提供的接口 | 1.便于调试和验证,自底向上逐层调试验证 2.易扩充和易维护,各层之间调用接口清晰固定 | 1.仅可调用相邻低层,难以合理定义各层的边界 2.效率低,不可跨层调用,系统调用执行时间长 |
| 模块化 | 将内核划分为多个模块,各模块之间相互协作 内核=主模块+可加载内核模块 主模块:只负责核心功能,如进程调度、内存管理 可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核 | 1.模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发 2.支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强 OS 适应性 3.任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高 | 1.模块间的接口定义未必合理、实用 2.模块间相互依赖,更难调试和验证 |
| 宏内核 (大内核) | 所有的系统功能都放在内核里(大内核结构的 OS 通常也采用了“模块化”的设计思想) | 性能高,内核内部各种功能都可以直接相互调用 | 1.内核庞大功能复杂,难以维护 2.大内核中某个功能模块出错,就可能导致整个系统崩溃 |
| 微内核 | 只把中断、原语、进程通信等最核心的功能放入内核。进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态 | 1.内核小功能少、易于维护,内核可靠性高 2.内核外的某个功能模块出错不会导致整个系统崩溃 | 1.性能低,需要频繁的切换 用户态/内核态。用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信 2.用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信 |
| 外核 | 内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全 | 1.外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源 2.减少了虚拟硬件资源的“映射层”,提升销量 | 1.降低了系统的一致性 2.使系统变得更复杂 |
系统调用不仅可供所有的应用程序使用,还可供 OS 自身使用
每一个系统调用都是一个能完成特定功能的子程序
概念:是 OS 提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用请求获得操作系统内核的服务
目的:使应用程序可以通过系统调用间接调用 OS 中的相关过程,进而取得相应的服务
本质:应用程序请求 OS 内核完成某功能时的一种过程调用,但是是一种特殊的过程调用
一般的过程调用与系统调用的区别:
| 一般的过程调用 | 系统调用 | |
| 运行在不同的系统状态 | 调用程序和被调程序运行在相同的状态——内核态或用户态 | 调用程序运行在用户态,被调程序运行在内核态 |
| 状态的转换 | 不涉及系统状态的转换,可直接由调用过程转向被调用过程 | 调用过程和被调用过程工作处于不同的系统状态,不允许由调用过程直接转向被调用过程,需要通过软中断机制先由用户态转换为内核态,经内核分析后转向相应的系统调用处理子程序 |
| 返回问题 | 采用抢占式(剥夺)调度方式的系统,在被调用过程执行完成后,要对系统中所有要求运行的进程做优先级分析,当调用进程仍具有最高优先级时,才返回到调用进程继续执行;否则,将重新调度,以便让优先级最高的进程优先执行。此时,将把调用进程放入就绪队列 | |
| 嵌套调用 | 对嵌套调用的深度没有限制 | 对嵌套调用的深度有一定的限制 |

实现:系统调用通过中断机制实现,一个 OS 的所有系统调用都通过同一个中断入口实现;对于拥有保护机制的 OS 来说,中断机制本身是受保护的
系统调用与库函数的区别:

| 普通应用程序 | 可直接进行系统调用,也可使用库函数。有的库函数涉及系统调用,有的不涉及 |
| 编程语言 | 向上提供库函数,有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序员编程更加方便 |
| 操作系统 | 向上提供系统调用,使得上层程序能请求内核的服务 |
| 裸机 |
应用:凡是与共享资源有关的操作、会直接影响到其他进程的操作,就一定需要 OS 介入,都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成
作用:
获得有关系统和文件的时间信息、OS 版本、当前用户以及有关空闲内存和磁盘空间大小等多方面的信息
陷入指令 = trap 指令 = 访管指令
PS: