导图社区 操作系统基本概念
介绍了操作系统基本概念及功能如进程管理、存储管理、设备管理、文件管理、作业管理等。进程管理包括进程控制、进程间通信如PV操作等。存储管理如分区存储管理等。可以用于入门了解,或复习总结。
编辑于2022-06-30 12:26:06介绍归纳 C Sharp 语音的基础重点知识。包括语言基础、字面常量、程序集、不安全代码、基础类、枚举、数组、泛型、字符串、正则表达式、委托与事件、文件、异常、多线程、异步、反射、网络、绘图、WinForm、Windows、跨平台调用等内容。思维导图示例中,有示例代码,方便学习与练习。
这份思维导图归纳了一些HTML基本的元素标签、布局、表单,以及 HTML5 API 如 WebSockets、Fetch API 等内容。CSS 主要是归纳了选择器。JavaScript 主要是包含了函数与箭头函数、this 关键字、Promise 异步对象。此外还有AJAX、jQuery 与 jQuery AJAX、JSONP 等内容。导图中的注释有很多相关的详细说明与示例代码,其中后端的测试代码是用的 PHP。希望能帮到大家!
WPF开发相关的笔记。WPF基本概念、XAML基本语法、控件与布局、Binding、依赖属性与附加属性、路由事件与附加事件、命令、资源、模板与样式、2D绘图与动画、3D绘图等内容。导图中的注释还有很多相关的详细说明与示例代码,希望能帮到大家!
社区模板帮助中心,点此进入>>
介绍归纳 C Sharp 语音的基础重点知识。包括语言基础、字面常量、程序集、不安全代码、基础类、枚举、数组、泛型、字符串、正则表达式、委托与事件、文件、异常、多线程、异步、反射、网络、绘图、WinForm、Windows、跨平台调用等内容。思维导图示例中,有示例代码,方便学习与练习。
这份思维导图归纳了一些HTML基本的元素标签、布局、表单,以及 HTML5 API 如 WebSockets、Fetch API 等内容。CSS 主要是归纳了选择器。JavaScript 主要是包含了函数与箭头函数、this 关键字、Promise 异步对象。此外还有AJAX、jQuery 与 jQuery AJAX、JSONP 等内容。导图中的注释有很多相关的详细说明与示例代码,其中后端的测试代码是用的 PHP。希望能帮到大家!
WPF开发相关的笔记。WPF基本概念、XAML基本语法、控件与布局、Binding、依赖属性与附加属性、路由事件与附加事件、命令、资源、模板与样式、2D绘图与动画、3D绘图等内容。导图中的注释还有很多相关的详细说明与示例代码,希望能帮到大家!
操作系统
概述
计算机软件
分类
系统软件
操作系统
应用软件
计算机系统资源
硬件资源
如中央处理机、存储器、输入/输出设备等
软件资源
以文件形式保存在存储器上的程序和数据等信息
传统计算机系统资源
感知、能源、通信、服务资源
现代计算机系统资源
定义
能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。
主要作用
通过资源管理提高计算机系统的效率
提高计算机系统在单位时间内处理工作的能力(称为系统的“吞吐量(throughput)”)。
改善人机界面向用户提供友好的工作环境
特征
并发性
共享性
虚拟性
不确定性
功能
进程管理
存储管理
设备管理
文件管理
作业管理
其他
提供系统命令一级的接口
提供编程一级的接口
分类
批处理操作系统
分类
单道批处理系统
多道批处理系统
分时操作系统
实时操作系统
网络操作系统
分类
集中模式
客户端/服务器模式
对等模式(Peer-to-Peer)模式
例:
UNIX、Windows NT、NetWare
分布式操作系统
微型计算机操作系统
例:
Linux、Mac OS、Windows
嵌入式操作系统
特点
微型化
可定制
实时性
可靠性
易移植性
为提高易移植性,常采用如下底层设计技术
板级支撑包(Board Support Package,BSP)
硬件抽象层(Hardware Abstraction Level,HAL)
例:
VxWorks、μClinux、PalmOS、WindowsCE、μC/OS-ΙΙ、eCos
操作系统的发展
主要动力
需求推动发展
促使发展的因素
硬件的升级
新的服务需求
修补自身的错误
进程管理
概念
进程
进程管理也称处理机管理
在多道程序批处理系统和分时系统中有多个并发执行的程序,为了描述系统中程序执行时动态变化的过程引入了进程
进程是资源分配和独立运行的基本单位
进程是程序的一次执行,该程序可以和其他程序并发执行
进程管理重点需要研究诸进程之间的并发特性,以及进程之间相互合作与资源竞争产生的问题
是完成用户任务的执行实体
程序与进程
前驱图
前驱图是一个有向无循环图,由结点和有向边组成,结点代表各程序段的操作,而结点间的有向边表示两个程序段操作之间存在的前驱关系(→)。 程序段 Pi和Pj 的前驱关系表示成 Pi→Pj,其中,Pi是Pj的前趋,Pj是Pi的后继,其含义是 Pi 执行结束后 Pj 才能执行
程序顺序执行的特征

顺序性
封闭性
可再现性
程序并发执行的特征
若在计算机系统中采用多道程序设计技术,则主存中的多道程序可处于并发执行状态。 对于上述有3个程序段的作业类,虽然每个作业有前驱关系的各程序段不能在CPU和输入/输出各部件并行执行,但是同一个作业内没有前驱关系的程序段或不同作业的程序段可以分别在CPU和各输入/输出部件上并行执行。 
失去了程序的封闭性(和可再现性)
程序和机器的执行程序的活动不再一一对应
需要进行进程间的 同步 与 互斥
并发程序间的相互制约性
两个基本属性
可拥有资源的独立单位
可独立调度和分配的基本单位
进程的组成
进程数据块(Process Control Block,PCB)
是进程存在的唯一标志
主要内容
进程标识符
状态
位置信息
控制信息
队列指针
优先级
现场保护区
其他
程序
描述了进程需要完成的功能
一般应该以可再入(纯)码的形式编制
执行时不可修改
数据
包括程序执行时所需的数据及工作区
执行时可以修改
进程的状态
在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化
模型
三态模型
图示
  活跃就绪:进程在主存并且可被调度的状态; 静态就绪:就绪进程被对换到辅存时的状态;
五态模型
图示

进程的控制
概念
即对系统中的所有进程从创建到消亡的全过程实施有效的控制
为实现进程的控制,操作系统设置了一套控制机构
该机构的主要功能包括
创建一个新进程
撤销一个已经运行完的进程
改变进程的状态
实现进程间的通信
该控制机构是操作系统内核(Kernel)中的一套原语
原语(Primitive)
定义
是指由若干条机器指令组成的,用于完成特定功能的程序段
特点
在执行时不能被分割,即原子操作“要么都做,要么都不做”
分类
进程控制原语
进程创建原语
进程撤销原语
进程阻塞原语
进程唤醒原语
进程挂起原语
进程激活原语
进程通信原语
资源管理原语
其他原语
进程间的通信
概念
在多道程序环境的系统中存在多个可以并发执行的进程,故进程间必然存在资源共享和相互合作的问题
进程通信是指各个进程交换信息的过程
根据交换信息量的多少和效率的高低,进程间通信的方式可分为
低级方式
低级通信原语
高级方式
高级通信原语
同步与互斥
同步
是合作进程间的 直接制约问题
在计算机系统中,多个进程可以并发执行,每个进程都以各自独立的、不可预知的速度向前推进,但是需要在某些确定点上协调相互合作进程间的工作
互斥
是申请临界资源进程间的 间接制约问题
即系统中多个进程因争用 临界资源 而互斥执行
在多道程序系统环境中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源(Critical Resource, CR)。
临界区(Critical Section,CS)
即进程中对临界资源实施操作的 那段程序
管理规则
有空则进
当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。
无空则等
当有一个进程在临界区时,其他欲进入临界区的进程必须等待,以保证进程互斥地访问临界资源。
有限等待
对于要求访问临界资源的进程,应保证进程能在有限的时间进入临界区,以免陷入“饥饿”状态。
让权等待
当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入忙等状态。
信号量(Semaphore)机制
是一种进程同步与互斥的工具
信号量机制由荷兰学者 Dijkstra 提出。
分类
整型信号量机制
记录型信号量机制
信号量集机制
整型信号量
信号量是一个整型变量
根据控制对象的不同被赋予不同的值
物理意义
S≥0,表示某 资源的可用数
S<0,绝对值表示阻塞队列中 等待该资源的进程数
分类
私用信号量
实现进程间的同步
初始值为 0 或 某个正整数
公用信号量
实现进程间的互斥
初始值为 1 或 资源的数目
PV操作
概念
是实现进程同步与互斥的常用方法
是低级通信原语,在执行期间不可分割
定义
P 操作
Passeren
表示申请一个资源
Procedure P(Var S : Semaphore); Begin S := S-1; If S<0 then W(S) { 执行P操作的进程插入阻塞等待队列 } End;
S := S-1
若 S≥0
则执行P操作的进程 继续执行
若 S<0
则执行P操作的进程 置为阻塞状态,并将其插入阻塞队列
V 操作
Vrijgeven
表示释放一个资源
Procedure V(Var S : Semaphore); Begin S := S+1; If S<=0 then R(S) { 从阻塞队列中唤醒一个进程 } End;
S := S+1
若 S>0
则执行V操作的进程 继续执行
若 S≤0
则从阻塞队列 唤醒一个进程,并将其插入就绪队列;然后执行V操作的进程 继续执行
利用 PV操作 实现 进程的互斥
例:
P(mutex) 临界区 V(mutex)
令信号量 mutex 的初值为1, 当进入临界区时执行P操作; 退出临界区时执行V操作;
利用 PV操作 实现 进程的同步
基于 互斥 实现 同步。
进程的同步是由于进程间合作引起的相互制约的问题,要实现进程的同步可用一个信号量与消息联系起来, 当信号量的值为 非0 时表示希望的 消息已经存在, 当信号量的值为 0 时表示希望的 消息未产生
假定用信号量S表示某条消息, 进程可以通过调用 P操作测试消息是否到达, 调用 V操作通知消息已准备好
例:
最典型的同步问题是 单缓冲区的生产者和消费者的同步问题
问题:生产者进程P1不断地生产产品送入缓冲区,消费者进程P2不断地从缓冲区中取产品消费。 解:为了实现P1与P2进程间的同步问题,需要设置两个信号量S1和S2,根据信号量初值不同可有两种实现方案。 方案1:信号量 S1的初值为1,表示缓冲区空,可以将产品送入缓冲区;信号量S2的初值为0,表示缓冲区有产品。  方案2:信号量 S1的初值为0,信号量S2的初值为0。 
高级通信原语
分类
共享存储模式
相互通信的进程共享某些数据结构(或存储区)实现进程之间的通信
消息传递模式
进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来实现通信。如Send(A)、Receive(A)
管道通信
管道 是指用于连接一个读进程和一个写进程,以实现它们之间通信的 共享文件(pipe文件)
向管道(共享文件)提供输入的发送进程(即写进程),以字符流的形式将大量的数据送入管道;而接收进程可从管道接收大量的数据。 由于它们通信时采用管道,所以称为管道通信
死锁
定义
指两个以上的进程 互相都要求对方已经占有的资源 导致无法继续运行下去的现象
产生的
原因
竞争资源及进程推进顺序非法
当系统中有多个进程所共享的资源不足以同时满足它们的需求时,将引起它们对资源的竞争导致死锁。 进程推进顺序非法,指进程在运行的过程中请求和释放资源的顺序不当,导致进程死锁。
必要条件
互斥条件、请求保持条件、不可剥夺条件、环路条件
处理策略
鸵鸟策略(即不理睬策略)
预防策略
预先静态分配法
破坏了“不可剥夺条件”,预先分配所需资源,保证不等待资源。
资源有序分配法
破坏了“环路条件”,把资源分类按顺序排列,保证不形成环路。
避免策略
说明
银行家算法对于进程发出的每一个系统可以满足的资源请求命令加以检测,如果发现分配资源后系统进入不安全状态,则不予分配;若分配资源后系统仍处于安全状态,则实施分配。 与死锁预防策略相比,它提高了资源的利用率,但检测分配资源后系统是否安全增加了系统开销。 所谓安全状态,是指系统能按某种顺序如<P1,P2,...,Pn>来为每个进程分配其所需资源,直到最大需求,使每个进程都可顺序完成。 通常称<P1,P2,...,Pn>序列为安全序列。若系统不存在这样一个安全序列,则称系统处于不安全状态。
检测与解除死锁
检测
系统定时地运行一个死锁检测程序,判断系统是否发生死锁,若检测到有死锁,则设法加以解除。
解除方法
资源剥夺法
撤销进程法
管程
概念
引入原因
用 PV操作 实现进程的同步与互斥时,编程是分散的,使用不当会导致死锁等错误。所以后续提出了另一种同步机制——管程(Monitor)
基本思想
采用资源集中管理的方法,将系统中的资源用某种数据结构抽象地表示出来。 由于临界区是访问共享资源的代码段,建立一个管程管理进程提出的访问请求
采用这种方式对共享资源的管理就可以借助数据结构及在其上实施操作的若干过程来进行,对共享资源的申请和释放可以通过过程在数据结构上的操作来实现。
组成
一些共享数据
一组能为并发进程所执行的作用在共享数据上的操作的集合
初始代码
存取权
功能
提供了一种可以允许多进程安全、有效地共享抽象数据类型的机制。管程实现同步机制由“条件结构(Condition Construct)”所提供
为实现进程互斥同步,必须定义一些条件变量, 例如 var notempty、notfull:condition,这些条件变量只能被 wait 和 signal 操作所访问。 notfull.wait 操作意味着调用该操作的进程将被挂起,使另一个进程执行; 而 notfull.signal 操作仅仅是启动一个被挂起的进程,如无挂起进程,则 notfull.signal 操作相当于空操作,不改变 notfull 状态,这不同于V操作。
进程调度
概念
是指当有更高优先级的进程到来时如何分配CPU
分类
可剥夺式
是指当有更高优先级的进程到来时,强行将正在运行进程的CPU分配给高优先级的进程
不可剥夺式
是指当有更高优先级的进程到来时,必须等待正在运行进程自动释放占用的CPU,然后将CPU分配给高优先级的进程
三级调度
在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度
高级调度
又称“长调度”“作业调度”或“接纳调度”
它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。 在系统中一个作业只需经过一次高级调度。
中级调度
又称“中程调度”或“对换调度”
它决定处于交换区中的哪个就绪进程可以调入内存,以便直接参与对CPU的竞争。 在内存资源紧张时,为了将进程调入内存,必须将内存中处于阻塞状态的进程调出至交换区,以便为调入进程腾出空间。 这相当于使处于内存的进程和处于盘交换区的进程交换了位置。
低级调度
又称“短程调度”或“进程调度”
它决定处于内存中的哪个就绪进程可以占用CPU。低级调度是操作系统中最活跃、最重要的调度程序,对系统的影响很大。
调度算法
先来先服务(FCFS)
按照作业提交或进程成为就绪状态的先后次序分配CPU
时间片轮转
主要用于微观调度
用于提高进程并发性和响应时间特性,从而提高资源利用率
方法
固定时间片
可变时间片
优先级调度
是让每一个进程都拥有一个优先数,系统在调度时总选择优先数大的占用CPU
分类
静态优先级
动态优先级
多级反馈调度
是时间片轮转算法和优先级调度算法的综合与发展
线程
概念
引入原因
将传统进程的两个基本属性分开, 线程作为调度和分配的基本单位,进程作为独立分配资源的单位。 用户可以通过创建线程来完成任务,以减少程序并发执行时付出的时空开销。
线程是进程中的一个实体,是被系统独立分配和调度的基本单位
线程基本上不拥有资源,只拥有一点运行中必不可少的资源(如程序计数器、一组寄存器和栈),它可与同属一个进程的其他线程共享进程所拥有的全部资源。 由于线程具有许多传统进程所具有的特性, 故称为“轻型进程(Light-Weight Process)”;传统进程称为“重型进程(Heavy-Weight Process)”。 线程可创建另一个线程,同一个进程中的多个线程可并发执行。
线程的状态
3种基本状态
就绪、运行、阻塞
分类
用户级线程(User-Level Threads)
用户级线程不依赖于内核,该类线程的创建、撤销和切换都不利用系统调用来实现:
内核支持线程(Kernel-Supported Threads)
内核支持线程依赖于内核,即无论是在用户进程中的线程,还是在系统中的线程,它们的创建、撤销和切换都利用系统调用来实现。
存储管理
概念
管理的
对象
主存存储器(简称 主存、内存)
目的
解决多个用户使用主存的问题
主要功能
主存空间的分配和回收
提高主存的利用率
扩充主存
对主存信息实现有效保护
存储器的结构
存储组织的功能是在存储技术和CPU寻址技术许可的范围内组织合理的存储结构,使得各层次的存储器都处于均衡的繁忙状态。
常用结构
“寄存器-主存-外存”结构
“寄存器-缓存-主存-存储组织的功能外存”结构

地址
虚拟地址
对于程序员来说,数据的存放地址是由符号决定的,故称 符号名地址、名地址
符号名地址空间 不是主存中的真实地址,故称为 相对地址、程序地址、逻辑地址、虚拟地址
物理地址
主存物理地址
地址空间
逻辑地址空间
(简称 地址空间)是逻辑地址的集合
相对地址空间 即程序中由相对地址组成的空间
把程序中由符号名组成的空间称为名空间。 源程序经过汇编或编译后再经过链接编辑程序加工形成程序的装配模块,即转换为相对地址编址的模块,它是以0为基址顺序进行编址的。 相对地址也称为逻辑地址或虚拟地址,把程序中由相对地址组成的空间称为逻辑地址空间。
物理地址空间
(简称 存储空间)是物理地址的集合
绝对地址空间也称为物理地址空间
绝对地址空间也称为物理地址空间。 相对地址空间通过地址再定位机构转换到绝对地址空间。
地址重定位
定义
是指将逻辑地址变换成主存物理地址的过程
在可执行文件装入时,需要解决可执行文件中地址(指令和数据)与主存地址的对应关系, 由操作系统中的装入程序 Loader 和地址重定位机构来完成。
分类
静态地址重定位
指在程序装入主存时已经完成了逻辑地址到物理地址的变换,在程序的执行期间将不会再发生变化
静态地址重定位的优点是无须硬件地址变换机构的支持,它只要求程序本身是可重定位的,只对那些要修改的地址部分具有某种标识,由专门设计的程序来完成。在早期的操作系统中大多采用这种方法。 静态重定位的缺点是必须给作业分配一个连续的存储区域,在作业的执行期间不能扩充存储空间,也不能在主存中移动,多个作业也难以共享主存中的同一程序副本和数据。
动态地址重定位
指在程序运行期间完成逻辑地址到物理地址的变换
其实现机制要依赖硬件地址变换机构,如基地址寄存器(BR)。 动态地址重定位的优点是程序在执行期间可以换入和换出主存,以解决主存空间不足的问题;可以在主存中移动,把主存中的碎片集中起来,以充分利用空间;不必给程序分配连续的主存空间,可以较好地利用较小的主存块;可以实现共享。
方案
分区存储管理
概念
基本思想
把主存的用户区划分成若干个区域,每个区域分配给一个用户作业使用,并限定它们只能在自己的区域中运行
划分方式
固定分区
是一种静态分区方式
可变分区
是一种动态分区方式
分区算法
最佳适应算法
最差适应算法
首次适应算法
循环首次适应算法
可重定位分区
分区保护
目的
防止未经核准的用户访问分区
常用方式
采用上界/下界寄存器保护
上界寄存器中存放的是作业的装入地址,下界寄存器中装入的是作业的结束地址,形成的物理地址必须满足如下条件: 上界寄存器≤物理地址≤下界寄存器
采用基址/限长寄存器保护
基址寄存器中存放的是作业的装入地址,限长寄存器中装入的是作业的长度,形成的物理地址必须满足如下条件: 基址寄存器≤物理地址<基址寄存器+限长寄存器
分页存储管理
概念
分页原理
将一个进程的地址空间划分成若干个大小相等的区域,称为 页
相应地,将主存空间划分成与页相同大小的若干个物理块,称为 块或页框
在为进程分配主存时,将进程中若干页分别装入多个不相邻接的块中
页表
定义
当进程的多个页面离散地分配到主存的多个物理块时,系统应能保证在主存中找到进程要访问的页面所对应的物理块。 为此,系统为每个进程建立了一张页面映射表,简称页表。
使用
进程在执行时,系统通过查找页表就可以找到每页所对应的物理块号, 再拼接页内地址得到物理地址
分页地址的结构
(页表中的)页号+页内地址(物理块中的(偏移量))
快表
来源
为了提高访问主存的速度,在地址映射机构中增加的一个小容量的联想存储器。 联想存储器由一组高速存储器组成,称之为快表,用来保存当前访问频率高的少数活动页的页号及相关信息。
两级页表机制
来源
为了减少页表所占用的连续的主存空间而采用的机制
将页表进行分页,每个页面的大小与主存物理块的大小相同,并为它们进行编号,可以离散地将各个页面分别存放在不同的物理块中。 为此需要建立一张页表,称为外层页表(页表目录),即第一级是页目录表,其中的每个表目是存放某个页表的物理地址; 第二级是页表,其中的每个表目所存放的是页的物理块号。
分段存储管理
概念
作业的地址空间被划分为若干个段
例如:主程序段、子程序段、数据段及堆栈段等
每个段是一组完整的逻辑信息
每个段都有自己的名字,都是从0开始编址的一段连续的地址空间,各段的长度是不等的
段表
分段地址的结构
(段表中的)段号(名)+段内地址(物理块中的(偏移量))
段页式存储管理
概念
基本原理
先将整个主存划分成大小相等的存储块(页框),将用户程序按程序的逻辑关系分为若干个段,并为每个段赋予一个段名,再将每个段划分成若干页,以页框为单位离散分配。
段页式地址的结果
段号+段内页号+页内地址
虚拟存储管理
概念
虚拟存储器
如果一个作业只部分装入主存便可开始启动运行,其余部分暂时留在磁盘上,在需要时再装入主存,这样可以有效地利用主存空间。从用户角度看,该系统所具有的主存容量将比实际主存容量大得多,人们把这样的存储器称为 虚拟存储器
是具有请求调入功能和置换功能,能仅把作业的一部分装入主存便可运行作业的存储器系统, 是能从逻辑上对主存容量进行扩充的一种虚拟的存储器系统。
程序局部性原理
时间局限性
产生原因
程序中的循环操作
空间局限性
产生原因
程序的顺序执行
虚拟存储器的实现方式
请求分页系统
该系统是在分页系统的基础上增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。它允许只装入若干页的用户程序和数据(而非全部程序)就可以启动运行,以后再通过调页功能和页面置换功能陆续把将要使用的页面调入主存,同时把暂不运行的页面置换到外存上,置换时以页面为单位。 请求分页系统中的地址变换机构是在分页系统的地址变换结构的基础上增加了某些功能,如 产生和处理缺页中断、从主存中换出一页实现虚拟存储。
页面置换算法
最佳(Optimal)置换算法
先进先出(FIFO)置换算法
最近最少使用(Least Recently Used,LRU)置换算法
最近未用(Not Used Recently,NUR)置换算法
请求分段系统
该系统是在分段系统的基础上增加了请求调段和分段置换功能所形成的段式虚拟存储系统。它允许只装入若干段的用户程序和数据就可以启动运行,以后再通过调段功能和置换功能将不运行的段调出,同时调入将要运行的段,置换时以段为单位。
请求段页式系统
该系统是在段页式系统的基础上增加了请求调页和页面置换功能所形成的段页式虚拟存储系统。
工作集
概念
来源
程序在运行中所产生的缺页情况会影响程序的运行速度及系统性能,而缺页率的高低又与每个进程所占用的物理块数目有关。 那么,究竞应该为每个进程分配多少个物理块才能把缺页率保持在一个合理的水平上?否则会因为进程频繁地从辅存请求页面而出现“颠簸”(也称抖动)现象。为了解决这一问题,引入了工作集理论。
就是指在某段时间间隔(Δ)里进程实际要访问的页面的集合
设备管理
概念
管理的设备
实际 I/O 操作的设备
如键盘、鼠标、打印机等
支持设备
如设备控制器、DMA控制器、中断控制器、I/O处理机(通道)等
管理的操作
设备分配
缓冲区管理
实际物理 I/O 设备操作
设备
是计算机系统与外界交互的工具,具体负责计算机与外部的输入/输出工作,所以常称为外部设备(简称外设)
I/O 系统
计算机系统中负责管理设备和输入输出的机构
组成
设备、控制器、通道(具有通道的计算机系统)、总线和 I/O软件
目标
主要是如何提高设备的利用率,为用户提供方便、统一的界面
即 提高 CPU 与 I/O 设备之间的并行操作程度
任务
保证在多道程序环境下,当多个进程竞争使用设备时,按一定的策略分配和管理各种设备,控制设备的各种操作,完成 I/O 设备与主存之间的数据交换。
主要功能
动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理 I/O 设备的操作、提供设备使用的用户接口及设备的访问和控制。
设备分类
按数据组织分
块设备(Block Device)
如磁盘
指以数据块为单位来组织和传送数据信息的设备
字符设备(Character Device)
如交互式终端、打印机
指以单个字符为单位来传送数据信息的设备
按数据传输分
低速设备
指传输速率为每秒钟几个字节到数百个字节的设备
中速设备
指传输速率在每秒钟数千个字节到数十千个字节的设备
高速设备
指传输速率在每秒数百千个字节到数兆字节的设备
按功能分
输入设备
输出设备
存储设备
网络联网设备
供电设备
按资源分配分
独占设备
大多数低速I/O设备,如交互式终端、打印机
指在一段时间内只允许一个用户(进程)访问的设备
共享设备
如磁盘
指在一段时间内允许多个进程同时访问的设备
虚拟设备
一般可以利用假脱机技术(Spooling技术)实现虚拟设备。
指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备
I/O 软件
概念
设备管理软件的设计思想
基本思想
分层构造
低层与硬件相关,它把硬件与较高层次的软件隔离开来
高层的软件则向应用提供一个友好的、清晰且统一的接口
设计 I/O 软件的主要目标
设备独立性和统一命名
I/O 软件独立于设备,就可以提高设备管理软件的设计效率。当输入/输出设备更新时,没有必要重新编写全部设备驱动程序。用户在实际应用中也可以看到,在常用操作系统中,只要安装了相对应的设备驱动程序,就可以很方便地安装好新的输入/输出设备,甚至不必重新编译就能将设备管理程序移到他处执行。
一般的分层
中断处理程序
设备驱动程序
与设备无关的系统软件
与设备无关的用户级软件
设备管理的相关技术
通道技术
说明
引入通道的目的是使数据的传输独立于CPU,使CPU从烦琐的I/O工作中解脱出来。 设置通道后,CPU只需向通道发出I/O命令,通道收到命令后,从主存中取出本次I/O要执行的通道程序并执行,仅当通道完成了I/O任务后才向CPU发出中断信号。
根据信息交换方式可分为
字节多路通道
数组选择通道
数组多路通道
DMA 技术
说明
直接主存存取(Direct Memory Access, DMA)是指数据在主存与I/O设备间直接成块传送,即在主存与I/O设备间传送一个数据块的过程中不需要CPU的任何干涉,只需要CPU在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做别的事情。
缓冲技术
说明
缓冲技术可提高外设利用率,尽可能使外设处于忙状态。 缓冲技术可以采用硬件缓冲和软件缓冲。 硬件缓冲是利用专门的硬件寄存器作为缓冲,软件缓冲是通过操作系统来管理的。 在所有的I/O设备与处理机(主存)之间都使用了缓冲区来交换数据,所以操作系统必须组织和管理好这些缓冲区。
分类
单缓冲
双缓冲
多缓冲
环形缓冲
Spooling 技术
说明
是Simultaneous Peripheral Operations On Line(外围设备联机操作)的简称。 所谓Spooling技术,实际上是用一类物理设备模拟另一类物理设备的技术,是使独占使用的设备变成多台虚拟设备的一种技术,也是一种速度匹配技术。
Spooling 系统组成

预输入程序
井管理程序
输入井
输出井
缓输出程序
输入井中作业的状态
提交状态
后备状态
执行状态
完成状态
磁盘调度
概念
需要调度的原因
磁盘是可被多个进程共享的设备。当有多个进程请求访问磁盘时,为了保证信息的安全,系统在每一时刻只允许一个进程启动磁盘进行I/O操作,其余的进程只能等待。 因此,操作系统应采用一种适当的调度算法,使各进程对磁盘的平均访问(主要是寻道)时间最小。 由于访问磁盘最耗时的是寻道时间,因此,磁盘调度的目标是使磁盘的平均寻道时间最少。
调度步骤
(1)移臂调度
(2)旋转调度
移臂调度算法
先来先服务(First-Come First-Served,FCFS)
最短寻道时间优先(Shortest Seek Time First,SSTF)
扫描算法(SCAN)
单向扫描调度算法(CSCAN)
旋转调度算法
文件管理
概念
引入原因
如果没有文件系统用户要访问外存储器上的信息是很麻烦的,不仅要考虑信息在外存储器上的存放位置,而且要记住信息在外存储器的分布情况,构造/O程序。 稍不注意,就会破坏已存放的信息。特别是多道程序技术出现后,多个用户之间根本无法预料各个不同程序间的信息在外存储器上是如何分配的。 鉴于这些原因,引入文件系统专门负责管理外存储器上的信息,而这些信息是以文件的形式存放的,使用户可以“按名”高效、快速和方便地存取信息。
文件与文件系统
文件(File)
概念
是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合
信息项
是构成文件内容的基本单位
文件是一种抽象机制,它隐藏了硬件和实现细节,提供了将信息保存在磁盘上而且便于以后读取的手段,使用户不必了解信息存储的方法、位置以及存储设备实际操作方式便可存取信息
组成
文件体
文件真实的内容
文件说明
操作系统为了管理文件所用到的信息
包括文件名、文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等。
分类
一般的分类
按文件性质和用途分
系统文件
库文件
用户文件
按信息保存期限分
临时文件
档案文件
永久文件
按文件的保护方式分
只读文件
读/写文件
可执行文件
不保护文件
UNIX 系统中的分类
普通文件
目录文件
设备文件(特殊文件)
文件系统
概念
是操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构
功能
按名存取
统一的用户接口
并发访问和控制
安全性控制
优化性能
差错恢复
分类
FAT
Vfat
NTFS
Ext2
HPFS
文件的结构
概念
是指文件的组织形式
分类
文件的逻辑结构
概念
从用户角度看到的文件组织形式
分类
有结构的记录式文件
概念
由一个以上的记录构成的文件,故又称为记录式文件
在记录式文件中,所有的记录通常都是描述一个实体集的,有着相同或不同数目的数据项。
分类
定长记录
指文件中所有记录的长度相同。所有记录中的各个数据项都处在记录中相同的位置,具有相同的顺序及相同的长度,文件的长度用记录数目表示。
变长记录
指文件中各记录的长度不相同。这是因为:一个记录中所包含的数据项数目可能不同,数据项本身的长度不定。
无结构的流式文件
概念
由一串顺序字符流构成的文件
文件体为字节流,不划分记录。 无结构的流式文件通常采用顺序访问方式,并且每次读写访问可以指定任意数据长度,其长度以字节为单位。 对于流式文件访问,是利用读/写指针指出下一个要访问的字符。可以把流式文件看作是记录式文件的一个特例。 在UNX系统中,所有的文件都被看作是流式文件,即使是有结构的文件,也被视为流式文件,系统不对文件进行格式处理。
文件的物理结构
概念
文件在文件存储器上的存放方式
文件的物理结构是指文件的内部组织形式,即文件在物理存储设备上的存放方法。
分类
连续结构
链式结构
索引结构
多个物理块的索引表
索引表的组织方式
链接文件
多重索引方式
例:
UNIX 文件系统
采用的是三级索引结构
在文件系统中 inode 是基本的构件,它表示文件系统树形结构的结点。
文件索引表项分4种寻址方式
直接寻址、一级间接寻址、二级间接寻址、三级间接寻址
文件目录
概念
即文件控制块(FCB)的有序集合
为了实现“按名存取”,系统必须为每个文件设置用于描述和控制文件的数据结构,它至少要包括文件名和存放文件的物理地址,这个数据结构称为文件控制块(FCB)。 文件控制块也称为文件的说明或文件目录项(简称目录项)。
文件控制块中的3类信息
基本信息类
例如文件名、文件的物理地址、文件长度和文件块数等。
存取控制信息类
文件的存取权限。
使用信息类
文件建立日期、最后一次修改日期、最后一次访问的日期、当前使用的信息(如打开文件的进程数、在文件上的等待队列)等。
常用目录结构
一级目录结构
整个系统中只需建立1张目录表,系统为每个文件分配1个目录项
二级目录结构
由 主文件目录 和 用户目录 组成
多级目录结构
在采用多级目录结构的文件系统中,用户要访问一个文件,必须指出文件所在的路径名,路径名是从根目录开始到该文件的通路上所有各级目录名拼起来得到的。在各目录名之间、目录名与文件名之间需要用分隔符隔开。 例如,在MS-DOS中分隔符为“\”,在UNIX中分隔符为“/”。 绝对路径名(Absolute Path Name)是指从根目录“/”开始的完整文件名,即它是由从根目录开始的所有目录名以及文件名构成的。 文件的全文件名应包括盘符及从根目录开始的路径名; 文件的相对路径是从当前工作目录下的路径名;
也称 树形目录结构
从树根往下
每个结点是一个目录
叶结点是文件
非循环图目录结构
概念
允许一个文件或目录在多个父目录中占有项目,但不构成环路,便于文件夹共享
链接的分类
逻辑链接(/软链接)
物理链接(/硬链接)
存取方法和存储空间管理
文件的存取方法
概念
是指读/写文件存储器上的一个物理块的方法
方法分类
顺序存取
随机存取
文件存储空间的管理
概念
原因
要将文件保存到外部存储器(简称外存或辅存)上首先必须知道存储空间的使用情况,即哪些物理块是被“占用”,哪些是“空闲”。 特别是对大容量的磁盘存储空间被多用户共享时,用户执行程序经常要在磁盘上存储文件和删除文件,因此,文件系统必须对磁盘空间进行管理。
磁盘分配表(Disk Allocation Table)
外存空闲空间管理的数据结构
常用方法
空闲区表
位示图
空闲块表
成组链接法
文件的使用
概念
通过逻辑文件与物理文件的对应关系使用
文件系统将用户的逻辑文件按一定的组织方式转换成物理文件存放到文件存储器上,也就是说,文件系统为每个文件与该文件在磁盘上的存放位置建立了对应关系。 当用户使用文件时,文件系统通过用户给出的文件名查出对应文件的存放位置,读出文件的内容。在多用户环境下,为了文件安全和保护起见,操作系统为每个文件建立和维护关于文件主、访问权限等方面的信息。
操作系统向用户提供的文件服务
操作级
命令级
目录管理类命令
文件操作类命令
如 复制、删除、修改
文件管理类命令
如 设置文件权限
编程级
系统调用和函数
文件的共享和保护
文件共享
概念
是指不同用户进程使用同一文件
它不仅是不同用户完成同一任务所必需的功能,还可以节省大量的主存空间,减少由于文件复制而增加的访问外存的次数。 采用文件名和文件说明分离的目录结构有利于实现文件共亭。
文件链接分类
符号链接
Symbolic Link
概念
符号链接建立新的文件或目录,并与原来文件或目录的路径名进行映射, 当访问一个符号链接时,系统通过该映射找到原文件的路径,并对其进行访问
采用符号链接可以跨越文件系统,甚至可以通过计算机网络连接到世界上任何地方的机器中的文件,此时只需提供该文件所在的地址以及在该机器中的文件路径。 符号链接的缺点是其他用户读取符号链接的共享文件比读取硬链接的共享文件需要增加读盘操作的次数。因为其他用户去读符号链接的共享文件时,系统中根据给定的文件路径名逐个分量地去查找目录,通过多次读盘操作才能找到该文件的索引结点。而用硬链接的共享文件的目录文件表目中已包括了共享文件的索引结点号。
硬链接
Hard Link
概念
文件的硬链接是指两个文件目录表目指向同一个索引结点的链接, 该链接也称基于索引结点的链接
换句话说,硬链接是指不同文件名与同一个文件实体的链接。 文件硬链接不利于文件主删除它拥有的文件,因为文件主要删除它拥有的共享文件,必须首先删除(关闭)所有的硬链接,否则就会造成共享该文件的用户的目录表目指针悬空。
文件的保护
概念
文件系统对文件的保护常采用存取控制方式进行
存取控制
就是不同的用户对文件的访问规定不同的权限,以防止文件被未经文件主同意的用户访问
存取控制方法
存取控制矩阵
存取控制表
用户权限表
密码
系统的安全与可靠性
系统的安全
涉及的问题
技术、管理、法律、道德、政治等
操作系统的安全机制
安全管理的级别
系统级
用户级
目录级
文件级
文件系统的可靠性
概念
是指系统抵抗和预防各种物理性破坏和人为性破坏的能力
保证措施
转储和恢复
日志文件
文件系统的一致性
作业管理
概念
作业
是系统为完成一个用户的计算任务(或一次事务处理)所做的工作总和
是用户向系统提交任务的任务实体
操作系统可以进一步为每个作业 创建作业步进程,完成用户的工作
作业步
例:
源代码经过编译、连接、装入以及执行等步骤得到结果,这其中的每一个步骤称为作业步
作业管理程序
在操作系统中用来控制作业进入、执行和撤销的一组程序
作业的组成
程序
数据
作业说明书
作业基本情况
用户名
作业名
编程语言
最大处理时间
作业控制描述
作业控制方式
作业步的操作顺序
作业执行出错处理
作业资源要求描述
处理时间
优先级
主存空间
外设类型和数量
作业控制
概念
作业控制块(JCB)
是记录与该作业有关的各种信息的登记表
是作业存在的唯一标志,包括用户名、作业名和状态标志等信息
作业后备队列
由于在输入井中有较多的后备作业,为了便于作业调度程序调度,通常将作业控制块排成一个或多个队列, 而这些队列称为作业后备队列
是由若干个JCB组成的
控制方式
脱机控制方式
作业运行的过程无须人工干预
用户必须将自己想让计算机干什么的意图用作业控制语言(JCL)编写成作业说明书,连同作业一起提交给计算机系统。
联机控制方式
作业运行的过程需要人工干预
操作系统向用户提供了一组联机命令,用户可以通过终端输入命令将自己想让计算机干什么的意图告诉计算机,以控制作业的运行过程。
作业状态
分类
提交
后备
执行
完成
转换
图示

作业调度
调度算法需考虑的因素
与系统的整个设计目标一致
均衡地使用系统资源
平衡系统和用户的要求
对于用户来说,作业能“立即执行”往往难以做到,但是应保证进入系统的作业在规定的截止时间内完成,而且系统应设法缩短作业的平均周转时间。
常用调度算法
先来先服务
短作业优先
响应比高优先
优先级调度算法
均衡调度算法
调度算法性能的衡量指标
平均周转时间
平均带权周转时间
用户界面
概念
用户界面(User Interface)是计算机中实现用户与计算机通信的软/硬件部分的总称
也称 用户接口,或 人机界面
组成
硬件部分
用户向计算机输入数据或命令的输入装置
常用的输入装置有键盘、鼠标等。
由计算机输出供用户观察或处理的输出装置
常用的输出装置有显示器、打印机等。
软件部分
用户与计算机相互通信的协议、约定、操纵命令及其处理软件
常用的人机通信方法有命令语言、选项、表格填充及直接操纵等。
发展阶段
控制面板式用户界面
这是计算机发展早期,用户通过控制台开关、板键或穿孔纸带向计算机送入命令或数据,而计算机通过指示灯及打印机输出运行情况或结果。 这种界面的特点是人去适应现在看来十分笨拙的计算机。
字符用户界面
字符用户界面是基于字符型的,用户通过键盘或其他输入设备输入字符,由显示器或打印机输出字符。 字符用户界面的优点是功能强、灵活性好、屏幕开销少;缺点是操作步骤烦琐,学会操作也较费时。
图形用户界面
随着文字、图形、声音和图像等多媒体技术的出现,各种图形用户界面应运而生,用户既可使用传统的字符,也可使用图形、图像和声音同计算机进行交互,操作将更加自然、更加方便。 现代界面的关键技术是超文本。超文本的“超”体现在它不仅包括文本,还包括图像、音频和视频等多媒体信息,即将文本的概念扩充到超文本,超文本的最大特点是具有指向性。
新一代用户界面
虚拟现实技术将用户界面的发展推向一个新阶段:人将作为参与者,以自然的方式与计算机生成的虚拟环境进行通信。 以用户为中心、自然、高效、高带宽、非精确、无地点限制等是新一代用户界面的特征。 多媒体、多通道及智能化是新一代用户界面的技术支持。 语音、自然语言、手势、头部跟踪、表情和视线跟踪等新的、更加自然的交互技术将为用户提供更方便的输入技术。 计算机将通过多种感知通道来理解用户的意图,实现用户的要求。 计算机不仅以二维屏幕向用户输出,而且以真实感(立体视觉、听觉、嗅觉和触觉等)的计算机仿真环境向用户提供真实的体验。