导图社区 计算机操作系统
内容涵盖了系统架构设计师考试大纲中计算机网络的所有知识点,通过此图,可以清晰地理清知识脉络,掌握知识点的分步。
编辑于2022-04-15 20:43:03计算机操作系统
操作系统类型
批处理操作系统
批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。这种采用批量处理作业技术的操作系统称为批处理操作系统。批处理操作系统分为单道批处理系统和多道批处理系统。批处理操作系统不具有交互性,它是为了提高CPU的利用率而提出的一种操作系统。
特征:用户脱机使用计算机、成批处理、多道程序运行
分时操作系统
把计算机与许多终端用户连接起来,分时操作系统将系统处理机时间与内存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用。由于时间间隔很短,每个用户的感觉就像他独占计算机一样。分时操作系统的特点是可有效增加资源的使用率。
特征:交互性、多用户同时性、独立性
实时操作系统
实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,调度一切可利用的资源完成实时任务。实时操作系统往往是专用的,系统与应用很难分离。实时操作系统并不强调资源利用率,而更关心及时性、可靠性和完整性。
特征:提供即时响应、高可靠性
网络操作系统
网络操作系统按照网络架构的各个协议标准进行开发,包括网络管理、通信、资源共享、系统安全和多种网络应用服务等。在网络系统中,各计算机的操作系统可以互不相同,它需要有一个支持异种计算机系统之间进程通信的网络环境,以实现协同工作和应用集成。
特征:互操作性、协作处理
分布式操作系统
分布式操作系统要求有一个统一的操作系统,实现系统操作的统一性,负责全系统的资源分配和调度,为用户提供统一的界面。
特征:必要的数据冗余
具备五个基本功能
处理机管理
存储管理
设备管理
文件管理
作业管理
操作系统结构
无序结构
又称整体结构或模块组合结构。模块化结构是指将整个操作系统按功能划分为若干个模块,每个模块实现一个特定的功能。模块之间的通信只能通过预先定义的接口进行。或者说模块之间的相互关系仅限于接口参数的传递。
优点
缩短了系统的开发周期
缺点
模块之间调用关系复杂、相互依赖,从而使分析、移植、维护系统较易出错
层次结构
把操作系统所有的功能模块按照功能调用次序分别排成若干层,各层之间的模块只有单向调用关系(例如,只允许上层或外层模块调用下层或内层模块)。
优点
层次结构清晰,简化了接口设计,有利于系统功能的增加或者删改,易于保证可靠性,便于维护和移植
面向对象结构
基于面向对象程序设计的概念,采用了各种不同的对象技术。可以把对象作为系统中的最小单位,由对象、对象操作、对象保护组成的操作系统,就是面向对象的操作系统。
优点
适用于网络操作系统和分布式操作系统中
对称多处理结构
如果一个操作系统在系统中的所有处理机运行且共享同一内存,这样的系统就是一个对称多处理系统
优点
适合共享存储器结构的多处理机系统,即紧耦合的多处理机系统
微内核结构
把系统的公共部分抽象出来,形成一个底层核心,提供最基本的服务,其他功能以服务形式建立在微内核之上。它具有良好的模块化和结构化特征,模块之间和上下层之间通过消息来通信。建立在微内核上的服务器可以根据不同的需要结构,从而形成不同的操作系统。
目标
将系统服务的实现和系统的基本操作规则分离开来
优点
具有统一的接口,在用户态和核心态之间无需进程识别
可伸缩性好,能够适应硬件更新和应用变化
可移植性好,所有与具体机器特征相关的代码,全部隔离在微内核中
实时性好,微内核可以方便的支持实时处理
安全可靠性高,微内核将安全性作为系统内部特性来进行设计,对外仅适用少量应用编程接口
支持分布式系统,支持多处理器的架构和高度并行的应用程序
真正面向对象的操作系统
适合嵌入式的专用系统,因为精简了核心功能,内核规模比较小
网络操作系统
定义
指能使网络上各计算机方便而有效的共享网络资源,为用户提供所需的各种服务的操作系统软件
分类
对等式网络操作系统
网络操作系统相等的分步在网络上的所有节点
集中式网络操作系统
网络操作系统的主要部分驻留在中心节点
功能
提供高效可靠的网络通讯能力
提供多项网络服务功能,如远程管理、文件传输
特征
硬件独立
可以运行于各种硬件平台之上
网络特性
管理计算机资源并提供良好的用户界面
可移植性和可集成性
多用户、多任务
支持多处理机技术是对现代网络操作系统的基本要求
组成
网络驱动程序
网络驱动程序涉及数据链路层和网络层,是网卡和高层协议间的接口
子网协议
主要任务是如何对通信量进行路由选择,提供拥塞和流量控制,提供统一的网络寻址方法,以便令牌环和以太网络能够理解
应用层协议
处理器管理
进程状态
概念
在操作系统中,进程是进行系统资源分配、调度和管理的最小单位
进程是资源分配的最小单位,线程是CPU调度的最小单位
比喻:进程=火车,线程=车厢
三态模型
运行
进程已获得处理机,其程序正在执行
等待
进程因发生某事件(如请求 I/O、申请缓冲空间等)而暂停执行时的状态
就绪
具备运行条件,等待系统分配处理器以运行
三态转换

运行态 - 等待态
等待使用资源,如等待外设传输,等待人工干预等
等待态- 就绪态
资源得到满足,如外设传输结束,人工干预完成
运行态 - 就绪态
运行时间片到、出现更高优先权进程
就绪态 - 运行态
CPU空闲时选择一个就绪进程
注意
没有等待态到运行态之间的转换
五态模型
挂起态
原因
对换的需要
进程均处于等待,把一些阻塞进程对换出去以腾出内存装入就绪进程
终端用户的请求
一边根据中间执行情况进行调试、检查和修正
父进程请求
以便考查和修改子进程,或者协调各子进程间的活动
负荷调节的需要
当实时系统中的工作负荷较重,有可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统正常运行
操作系统的需要
以便检查运行中资源的使用情况及进行记账
特性
该进程不能立即执行
挂起进程可能会等待一个事件,但所等待的事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件
进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行
结束进程挂起状态的命令只能通过操作系统或父命令发出
阻塞态:进入阻塞态通常是因为在等待IO完成或等待分配到所需资源
五态转换

信号量与PV操作
术语
临界资源
进程间需要互斥方式对齐进行共享的资源
临界区
每个进程中访问临界资源的那段代码
信号量
应用于PV操作中的特殊变量
p操作
s=s-1
s<0
阻塞进程
放入进程队列,处于等待状态
s≥0
继续执行当前进程
v操作
s=s+1
s≤0
唤醒进程
从进程队列中拿出进程,继续执行
s>0
继续执行当前进程
互斥控制
同一时刻只允许一个进程使用资源
阻止多个进程同时进入访问这些资源的代码段,这个代码段称为临界区
p(信号量) 临界区 v(信号量)
p(s)
s<0表示等待队列中的进程数
v(s)
s≤0,等待队列中存在进程,调入一个新的进程进入
s>1表示可以允许多少个进程进入
同步控制
速度有差异,在一定情况停下等待
进程A 进程B L1:P(信号量) L2:V(信号量)
确保进程b执行v操作之前,不运行l1,设置信号量初始值为0
生产者-消费者问题
分析
布景要解决生产者与消费者进程的同步关系,还要处理缓冲区的互斥关系
三个信号量
empty
同步
说明空闲的缓冲区数量
因为程序开始时,缓冲区为空,因此初始值应为缓冲区个数
full
同步
说明已填充的缓冲区数量
因为程序开始时,所有缓冲区都为空,所以初始值为0
mutex
互斥
保证同时只有一个进程在写缓冲区
因此初始值为1
注意
如果对缓冲区的读写无须互斥控制,则可以省去mutex信号量
备注
通常一个互斥或一个同步关系可以使用一个信号量来解决
信号量的初始值通常就是资源可用数
对于初始值为0的信号量,会先做v操作
在资源使用前,会先进行p操作;在资源使用后,将会使用v操作
互斥关系中,pv操作在一个进程中成对出现;同步关系中,必定出现在多个进程上
死锁
描述
多个进程之间互相等待对方的资源,在得到对方资源之前又不释放自己资源
根本原因
系统提供的资源个数少于并发进程所要求的该类资源数
必要条件
互斥条件
一个资源每次只能被一个进程使用
保持与等待条件
有一个进程已经获得了一些资源,但在请求其他资源被阻塞时,对已获得资源不释放
不可抢占条件
有些系统资源是不可抢占的,某个进程获得这种资源后,系统不能强制回收
循环等待条件
若干个进程形成循环链,每个都占用对方要申请的下一个资源
银行家算法
分配资源之前先看资源分配后是否会导致系统死锁,如果会死锁,则不分配资源
分配原则
当一个进程对资源的最大需求量不超过系统中的资源数是可以接纳该进程
进程可以分期请求资源,但总请求量不得超过最大需求量
现有资源不能满足进程需求时,可以推迟分配,但总能使进程在有限时间内获得资源
现有资源满足进程请求资源时,先判断现有资源能否满足该进程最大资源需求数,不满足则推迟分配
解决策略
预防
破坏死锁四个必要条件中任意一个可以预防死锁
会降低系统效率
避免
进程每次申请资源时判断是否安全,如银行家算法
增加系统开销
检测
判断系统是否处于死锁状态
解除
对某进程所拥有的资源进行强制回收,分配给其他资源
管线与线程
申请进程必须互斥的进入管程
线程是进程的活动成分,是处理器分配资源的最小单位
每个进程创建时只有一个线程(主线程),根据需要在运行过程中创建更多的线程
采用线程的优点是节省开销,传统创建子进程的方法内存开销大,创建时间长
同一进程的线程共享进程的地址空间
文件管理
文件管理是对外部存储设备上的以文件方式存放的信息的管理
文件的逻辑组织
逻辑组织是为了方便用户使用,逻辑结构是用户可见的结构
无结构的字符流文件
有结构的记录文件
连续结构
把记录按生成的先后顺序排列的逻辑结构。实用性强,可用于所有文件,且排列顺序与内容无关。缺点是搜索性能较差
多重结构
把记录按 键和记录名 排列成行列式结构,一个包含n个记路名、m个键的文件构成一个m×n维行列式
转置结构
把含有相同建的记录指针全部指向该键,也就是,把所有与同一键对应的记录的指针连续置于目录中该键的位置下。转置结构最适合于给定键后的记录搜索
顺序结构
把文件中的键按规定的顺序排列起来
文件的物理组织
在文件系统中,文件的存储设备通常划分为若干个大小相等的物理块。文件的物理结构是指文件在存储设备上的存储方法。
连续文件(顺序文件)
描述
最简单的物理文件结构,它把一个在逻辑上连续的文件信息依次存放到物理块中。
优点
一旦知道文件在存储设备上的起始位置和文件长度,就能进行存取。
适合于顺序存取,在连续存取相邻信息是,存取速度快
缺点
文件建立时必须指定文件的信息长度,以后不能动态增长,需要经常修改的文件一般不宜采用此方式存储
串联文件(链接文件)
描述
用非连续的物理块来存放文件信息,这些物理块之间没有顺序关系,每个物理块设有一个指针,指向下一个物理块的地址,这样所有物理块被链接起来,形成一个链接队列
优点
可以解决存储器的碎片问题,提高存储空间利用率
缺点
由于只能按照队列链接指针顺序查找,因此搜索效率低
一般只适用于顺序访问,不适用于随机存取
索引文件
描述
索引文件也是一种对文件存储不连续分配的方法,为每个文件建立一张索引表,索引表中的每一表项指出文件信息所在的逻辑块号和与之对应的物理块号。
索引文件既可以满足文件动态增长的要求,又可以方便而迅速地实现随机存取。
对于一些大的文件,一般采用多级索引技术(间接索引)
优点
既适用于顺序存取,又适用于随机存取
缺点
存取文件时至少需要访问两次磁盘,一次是访问索引表,另一次是根据索引表提供的物理块号访问文件信息
索引表增加了存储空间的开销
改进措施
在对某个文件进行操作之前,预先把索引表调入内存
文件的存取就能直接从在内存的索引表中确定相应的物理块号,从而只访问一次磁盘
树形目录结构
文件控制块的集合成为文件目录,文件目录也被组织成文件,常称为目录文件。文件系统一般采用一级目录结构、二级目录结构、多级目录结构。
存储空间管理
原理
由于文件存储设备是分成许多大小相同的物理块,并以块为单位交换信息,因此文件存储设备的管理,实质上是对空闲块的组织和管理问题
方法
空闲表法
连续分配,系统为外存上的所有空闲区建立一张空闲表,每个空闲区对应一个空闲表项,包括序号、第一空闲盘区号和空闲盘块数
空闲链表法
将所有空闲盘区,拉成一条空闲链
根据链的基本元素分类
空闲盘块链
空闲盘区链
位图法
用二进制位表示磁盘中的一个盘块的使用情况,0空闲,1已分配。磁盘上的所有盘块都与一个二进制位相对应,由所有的二进制位构成的集合,称为位图。
优点
容易找到一个或一组相邻的空闲磁盘
位图小,可以保存在内存中,从而节省了磁盘的启动操作
成组链接法
将空闲表和空闲链表结合形成的一种空闲盘块管理方法,适用于大型文件系统
存储管理
虚拟存储
在内存中保留一部分程序或数据,在外存中放置整个地址空间的副本
程序运行中需要的数据不在内存中时,将内存中部分数据写回外存,外存调入所需数据进入内存,实现作业内部局部转换
允许程序的地址空间大于实际分配的存储区域,主要解决内存容量问题
地址交换
用户变成所用的地址成为逻辑地址(虚地址),是内存地址成为物理地址(实地址)
每次访问内存都要进行逻辑地址到物理地址的转换,这种转换由硬件完成
内存和外存间信息动态调度是硬件和操作系统两者配合完成的
重定位
静态重定位
在虚空间程序执行之前由装备程序完成地址影射工作
优点
不需要硬件支持
缺点
无法实现虚拟存储器,必须占用连续的内存空间
难以做到程序和数据的共享
动态重定位
在程序执行过程中,在CPU访问内存之前,将要访问的程序或数据地址转为内存地址
依靠硬件地址交换机构完成
优点
可以对内存进行非连续分配,提供了虚拟存储器的基础,有利于程序段共享
存储组织
单一连续分区
把所有用户区都分配给唯一的用户作业,当作业被调度时,进程全部进入内存
不支持多道程序设计
固定分区
把内存划分成若干个固定的和大小不同的分区,每个分区能够装入一个作业
支持多道程序设计的最简单的存储管理方法
容易生成较多的存储器碎片
可变分区
优点
内存分配更灵活,提高了内存利用率
缺点
系统在不断分配和回收中,出现无法分配的不连续碎片
解决
拼接:像一个方向(如低地址)移动已分配的作业,是零散的小空闲区在另一方向连成一片。分区的拼接技术,一方面是要求能够对作业进行重定位,另一方面要消耗时间
可重定位分区
这是客服固定分区碎片问题的一种存储分配方法,能够把相邻的空闲存储空间合并成一个完整的空区,还能整理各个作业的存储位置,达到消除碎片的目的。
紧缩工作需要花费大量的时间和系统资源
段式
一个作业由若干个逻辑意义的段组成。段式存储管理中,允许程序占据内存中若干分离的分区。分段系统中的虚地址是一个有序对。系统为每一个作业建立一个段表,其内容包括段号与内存起始地址的对应关系、段长和状态等
划分方式
段(不定长),每个作业一张段表
虚地址
(s,d),即(段号,段内偏移)
虚实转换
段表内找出起始地址,然后加段内偏移
优点
简化了任意增长和搜索的数据段管理,鲤鱼进程间共享过程和数据
缺点
段外碎片降低了利用率
页式
将各进程的虚拟空间划分为若干个长度相等的页,把内存空间以与页相等的大小划分为片或页面,采用请求调页或预调页技术实现内外存的统一管理
划分方式
页(定长),每个进程一张页表
虚地址
(p,d),即(页号,页内偏移)
虚实转换
页表内找出起始地址,然后加页内偏移
优点
消除了页外碎片
缺点
存在页内碎片
段页式
分段式和分页式结合的存储器管理方法,充分利用了分段管理和分页管理的优点。作业按逻辑结构分段,段内分页,内存分块。作业只需将部分页装入即可运行,所以支持虚拟存储,可实现动态连接和装配
划分方式
先将内存分为长页,每个作业一张段表(通常由一个基号指向它),每段对应一组页表
虚地址
(s,p,d),即(段号,段内页号,页内偏移)
虚实转换
先在段表中找到页表的起始地址,然后在页表中找到起始地址,最后加页内偏移
优点
结合了段与页的优点,便于控制存取访问
缺点
提高复杂度,增加硬件。存在页内碎片
存储管理
策略
在虚拟存储器的管理中,涉及(载入)、放置(放入分区)和置换(swapping)等问题
调入策略
即何时将一页或一段从外存中调入内存
请求调入法:需要使用时才调入
先行调入法:将预计要使用的页/段先行调入内存
放置策略
调入后,放在内存的什么位置,这与内存管理基本上是一致的
置换策略
由于实际内存是小于虚存的,因此可能会发生内存中已满,单需要使用的页不在内存中这一情况(成为缺页中断)。这时就需要置换
置换算法
最优算法
选择淘汰不在使用或将来才使用的页,这时理想的算法,但难以实现,常用于淘汰算法的比较
随机算法
随机地选择淘汰的页,开销小,但可能选中立即就要访问的页
先进先出算法
选择淘汰在内存中主驻留时间最长的页,可能产生抖动
最近最少使用
选择淘汰离当前点时刻最近的一段时间内最少使用的页
局部性原理
定义
今晨往往会不均匀的高度局部化地访问你村
时间局部性
最近访问的存储位置,将来可能还要访问
空间局部性
访问某个位置后,很可能也要访问附近的位置
作业管理
作业的状态
提交
作业由输入设备进入外存储器的过程称为提交状态。 处于提交状态的作业,其信息正在进入系统
后备
当作业的全部信息进入外存后,系统就为该作业建立一个作业控制块
执行
一个后备作业被作业调度程序选中分配了必要的资源并进入了内存, 作业调度程序同时为其建立了相应的进程
完成
作业正常运行结束,占用的资源尚未全部被系统回收时的状态
作业调度
处理器调度
高级调度
也称作业调度。在批处理作业的后备作业队列中选择一个或一组作业, 为他们建立进程,分配必要的资源,使他们能够运行起来
中级调度
也称交换调度。决定进程在内存、外存之间的调入、调出。在内存资源不足时将某些处于等待状态或就绪状态的进程调出内存,腾出空间后,再将外存上的就绪进程调入内存
低级调度
也称进程调度,确定处理器在就绪进程间的分配
作业调度算法
先来先服务
按作业到达先后次序调度,不利于短作业
短作业优先
按作业的估计运行时间调度,估计运行时间短的作业优先调度。不利于长作业得到调度
响应比高者优先
一种关于上面两种方法的综合平衡,R=(W+T)/T = 1+W/T,T为改作业估计需要执行时间,w为作业等待时间。选R最大者执行
优先级调度
优先级高者先调度
设备管理
设备管理程序功能
提供和进程管理系统的接口
进行设备分配
按照设备类型和响应的分配算法把设备和其他有关的硬件分配给请求该设备的进程
把未分配到所请求设备或其他有关硬件的进程放入等候队列
实现设备和设备、设备和CPU之间的并行操作
进行缓冲区管理
减少外部设备和内存和CPU之间数据速度不匹配的问题,系统中一般设有缓冲区来暂放数据。设备管理程序负责进行缓冲区分配、释放及有关的管理工作
数据传输方式
程序控制方式
CPU直接利用IO指令编程,实现数据的输入输出
程序中断方式
CPU利用中断方式完成数据的输入/输出,当IO系统与外设交换数据是,CPU无需等待,当IO系统完成了数据传输后则以中断信号通知CPU
DMA方式
使用DMA控制器来控制和管理数据传输
通道方式
通道是一种通过执行通道程序管理IO操作的控制器,它使主机与IO操作之间达到更高的并行程度
输入输出处理机
也称外围处理机,是一个专用处理机,具有丰富的指令系统和完善的中断系统
磁盘调度算法
访问磁盘的时间由寻道时间、等待时间和数据传输时间组成