当前位置:网站首页 > 编程语言 > 正文

操作系统基本作用(操作系统的作用?)



计算机由外到内:
多个用户
各个软件
操作系统
硬件



操作系统目标:
方便(对用户)
有效(能运行用户的程序;高效,对系统)
可扩充(低成本、高质量地在现有系统中添加新功能和优化现有功能)
开放性(人们可以通过自己编写软件来扩充系统的功能,实现复杂的计算)



现代OS主要目标:
提高资源利用率
方便用户

操作系统作用:
是接口,是用户和计算机硬件系统之间的接口
实现了计算机资源的抽象
管理者,是计算机资源的管理者
组织者,是计算机工作流程的组织者(为众多作业切换处理机,协调它们的推进进度,提升系统性能)



操作系统发展过程:
无操作系统的计算机系统
单道批处理系统
多道批处理系统
分时系统
实时系统
微机操作系统





无操作系统的计算机系统:
1 人工操作,穿孔纸带
2 脱机输入/输出方式,低速输入设备、磁带

单道批处理系统:
内存仅放置一个,处理顺序尽可能提高资源利用率
缺点:
内存仅放置一个作业,造成内存浪费
CPU利用率不高,因为内存程序在完成后,CPU才能运行





多道批处理系统
1 多道程序设计技术
内存同时放置多个作业,这些作业宏观同时运行,微观交替执行,它们共享系统资源
2 多道批处理系统:多道程序设计技术的批处理系统




多道批好处(单道批、多道批):
1 提高CPU、内存、利用率
2 提高系统吞吐量

批处理好处:
资源利用率高
系统吞吐量大




分时系统的引入:
批处理系统(单、多)缺点:
无法进行人机交互
多用户无法同时使用计算机资源(它很宝贵的!)
因此引入分时系统



分时系统定义:
一个主机连接多个屏幕、键盘等终端(1960,最多连接30台终端机)
且允许多个用户同时用自己的终端和主机交互,即共享主机资源



分时系统目标:及时响应用户终端命令

分时系统特征:
多路 多个用户
独立 多个用户互不影响
及时
交互




应用于:
工业武器控制
信息查询
多媒体系统(集电话、电视、媒体、计算机网络 于一身的信息综合化系统)
嵌入式系统(由硬件、软件组成,能独立进行运作的)



实时系统:
多路、独立、及时可靠、交互

分时系统和实时系统 区别在于、、:

及时性:
分时系统:用户能接受的响应时间
实时系统:秒级、毫秒级

可靠:
分时系统可靠
实时系统更可靠

交互性:
分时系统 交互性较好
实时系统 交互性较差


无结构 = 整体式:调试、维护不方便,可读、可扩充性较差
模块化结构OS:模块划分、接口的规定 困难,模块间存在依赖,使得机构不清晰
分层式结构OS
微内核结构OS


模块化 分层式
同:操作系统分为简单、独立的模块,它们可以交互,之间有接口
异:
分层式:
内部各个模块有序,不同层次的模块不能随意依赖、调用,只能单向依赖、单向调用
组织结构、依赖关系更清晰
系统可读性、可靠性、适应性增强





内核:是软件,是硬件的第一层软件扩充,常驻内存
目的:为减少系统开销,
包含:
与硬件紧密相关的(中断处理程序、设备驱动程序)、
基本的、公共的、
运行频率高的模块(如时钟管理、进程调度等)、
关键性数据结构





内核:单内核、微内核

微内核:
目标:将系统服务的实现 与 系统的操作规则分离
用原语来实现

系统态 = 核心态 = 内核态 = 管态:
权限高,访问、执行一切指令和区域

用户态 = 目态:
权限低,访问、执行部分指令和区域

基本特征:
并发、异步、共享、虚拟

并发最重要!

并发:多事件同一时间 间隔发生
多道程序环境下,多时间宏观同时进行,微观交替进行
程序:静态实体,不能并发,并发需要进程

共享:
系统的资源给多个并发的进程使用
共享:互斥共享、同时访问
互斥共享:资源当下仅被一个进程使用(打印机、变量、队列)
同时访问:资源当下被多个进程使用(磁盘、可重入代码)



虚拟:
物理实体变为逻辑上的对应物
使进程可以更方便共享系统资源


4个管理:
处理机、存储器、设备、文件
提供友好的用户接口

处理机管理:

处理机分配、运行
处理机基本单位:进程
处理机管理 = 进程管理,包括:
进程的控制、同步、通信、调度


进程控制:为作业创建进程、撤销进程,控制进程的状态
进程同步:协调进程执行次序,使并发执行的程序 执行结果可再现
进程通信:进程之间的信息交换
进程调度:为多个就绪的进程分配处理机,得到处理机的就绪进程
投入执行



处理机 CPU 处理器
处理机:是部件,它处理计算机系统中存储程序和数据,使其按程序规定的步骤执行指令
cpu处理器:计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元


存储器管理:

为多道程序运行提供好的环境
包括:内存分配、保护、扩充,地址映射
内存保护:
每个用户程序只在自己的内存空间中运行,各个程序互不影响
内存扩充:
逻辑上扩充内存容量,物理实际并没有,以便大作业的运行、增加可并发作业的数量
地址映射:转为






设备管理:

完成用户请求,包括:
缓冲管理
设备分配
设备处理


设备分配:
为用户分配设备、设备控制器,以便完成用户的请求
有通道的系统中,还为用户分配通道


文件管理

使用户方便安全使用信息资源,包括:
管理 目录
管理 文件存储空间
文件共享
文件读写管理保护




友好的用户接口:

用户接口、程序接口

用户接口:
联机用户接口:用户用联机命令直接控制自己作业
脱机用户接口:用户用作业控制语言间接控制自己作业
图形用户接口:用户可以用鼠标键盘操作


进程的控制、同步、通信、调度

进程基本状态(线程也是):
就绪:就差CPU了
执行:就绪 + CPU = 开始执行
阻塞:正在执行,因某事件而暂停


进程挂起、激活:
挂起的进程就不能竞争CPU了,它们处于静止状态
就绪、阻塞的进程才能挂起,对应 静止就绪、静止阻塞

激活:挂起的进程可以竞争CPU了

用于:
要准备足够的内存空间给就绪进程
调节系统负荷
检查资源使用情况


进程控制:
每个操作都用原语执行:
创建原语 撤销原语、
阻塞原语 唤醒原语、
挂起原语 激活原语



进程创建:新建PCB
申请空白PCB,分配资源,初始化PCB,尝试新进程插入就绪队列


进程:回收PCB
出现情况:
该进程执行完毕
异常错误
父进程请求



唤醒就是转为就绪

中断

必要条件:
多道程序设计、并发 → 中断
多道程序设计、并发 一定要有 中断
有 中断 不一定有 多道程序设计、并发


中断定义:
CPU运行一个进程a好好的,此时系统内外发生异步事件,CPU暂停该进程,去处理异步对应进程b,结束了再运行原进程a
异步:多道程序环境,每个程序何时执行、暂停 均未知,但结果可再现

中断源:引起中断的事件

进程同步:协调进程执行次序,使并发执行的程序 执行结果可再现

同步 互斥:

同步:
不同任务的若干程序片断,运行按某种先后次序 (次序依赖于要完成的特定的任务)
场景:两个及以上的进程线程在运行过程中协同步调,按预定次序运行。如 A 任务的运行依赖于 B 任务产生的数据。

互斥:
不同任务的若干程序片断,当运行其中一程序片段时,其它任务就不能运行
场景:一个公共资源同一时刻仅被一个进程、线程使用

临界区:访问临界资源的代码

同步的规则:
空闲让进
忙则等待
有限等待:不死等
让权等待 :进程不能访问自己的临界资源时,释放处理机



进程同步的应用 - 信号量:
整型信号量、记录型信号量、AND型信号量

 

整型信号量:
整型量S:仅有两个标准原子操作 wait(S)、signal(S)
未遵循让权等待,而是使进程处于忙等状态

 

其数据结构:

 

其PV操作:

 

value初始为1时,此时是互斥的信号量

AND型信号量:
使用情景:多进程竞争多个临界资源,出现死锁的概率很大
思想:请求的资源全部分配给进程,要么一个也不分配

这里没有用到记录型信号量的数据结构

 

死锁 deadlock

产生原因:
竞争资源
推进顺序非法

产生死锁必要条件:
互斥
请求和保持
不剥夺
环路等待



激活成功教程死锁:

1 预防 2 避免

破坏 不剥夺
无法运行时释放已得资源
缺点:
不易实现
反复申请资源,增加系统负担,降低吞吐量



破坏 环路等待
资源编号,按编号递增获取资源
缺点:
增加系统负担
编号和系统规定顺序不同,造成资源浪费



2 避免死锁:

银行家算法 安全性算法

银行家算法
available 记录各资源可用情况
max 记录各进程对资源的需求
allocation 记录各进程已占有资源情况
need 记录各进程还需多少资源情况
request 记录某进程请求资源情况




银行家算法过程:

 

安全性算法:
2个向量
work = available,资源可用情况
finish = false 记录系统是否可以满足进程资源需求


 

3个经典同步问题:

生产者消费者、哲学家进餐、读者写者问题

生产者消费者问题:
缓冲区大小n,生产者向其投入,消费者拿取
需要3个信号量:
互斥信号量 mutex = 1,生产者 消费者互斥访问缓冲区
资源信号量 empty = n,空闲缓冲区数量
资源信号量 full = 0,满缓冲区数量




记录型信号量 PV操作:

 
 

ADN型信号量:

 
 

哲学家进餐:
哲学家要么吃饭 要么思考,他们坐在1张桌子,5个碗,5筷子

筷子是临界资源,相邻哲学界取筷子互斥


若针对筷子进行 信号量进程同步:

 

可能会造成死锁:哲学家都在拿左筷子,都需要右筷子
解决办法:
1 仅允许4个哲学家同时进餐
2 哲学家进餐要全给两个筷子,要么一个也不给
3 奇数号哲学家先拿左筷子,偶数号哲学家先拿右筷子



仅允许4个哲学家同时进餐:

 
 

ADN型信号量:

 

奇数号哲学家先拿左筷子,偶数号哲学家先拿右筷子

 

读者写者问题:
读文件进程 - “Reader进程”,其它进程 - “Writer进程”
读可以共享,写只能独享



记录型信号量:
3个信号量
wmutex = 1 写程序独享临界资源
rmutex = 1 因为文件是临界资源,需要互斥访问
rcount = 0 读进程共享临界资源,对访问该临界资源的读进程计数



 

进程通信:进程之间的消息交换,也用原语

低级通信:交换信息量少,效率低,对用户不可见

进程通信类型(高级通信):
共享存储器系统:
消息传递系统
管道通信
客户机服务器系统



还有直接通信:消息缓冲队列通信

共享存储器系统:
共享存储区的读写 做消息缓冲区,高级通信
若用数据结构做缓冲区,低级通信

消息传递系统:
格式化消息为单位, = 网络中
直接通信 间接通信

客户机服务器系统 3种:
套接字
远程过程调用
远程方法调用


套接字:
类似管道通信
文件做消息缓冲区,文件类型的套接字关联这个共享文件,两进程还在一个计算机上

网络类型的套接字:
通信的目的地址
端口号
通信网络的传输层协议
进程所在的网络地址



两进程(接收、发送进程)各有一个套接字

消息缓冲队列:
发送进程将消息写在,消息缓冲区放在消息缓冲队列中
接收进程在消息缓冲队列取下一个

其 消息缓冲区 数据结构:

 

其PCB增加:
mq 消息缓冲队列 首指针
sm 消息缓冲队列 资源信号量
mutex 消息缓冲队列 互斥信号量


 

接收原语:

 

三级调度:
高级调度、低级调度、中级调度
作业调度 进程调度 处理机调度

低级调度 = 进程调度 = 处理机调度(内存→CPU):
就绪队列中的进程选择性的给予处理机(CPU)
两个方式:
剥夺式 = 抢占式
非剥夺式 = 非抢占式



剥夺式 = 抢占式:
根据进程优先级,把当前正在运行的程序转入就绪,来运行另一个进程
原则:
优先级、短作业优先、时间片原则


非剥夺式 = 非抢占式:
不主动把当前正在运行的程序转入就绪,除非它自己已经完成或因某时间而转入阻塞
不能满足紧急任务



中级调度 = 对换功能(外存→内存):
暂时不能运行的程序放入外存去 等待,而不是内存的就绪队列中
存在于分时系统、有虚拟存储器的系统

运行频率
低级 > 中级 > 高级


调度算法:

先来先服务 FCFS
短作业优先 = 最短剩余时间优先 SJF
时间片轮转 RR
优先级 HPF
高响应比优先 HRP
多级反馈队列 FB




点我跳转设备分配调度

先来先服务 FCFS,非抢占:

优点:公平,容易实现
缺点:不利于短作业和作业


短作业优先 SJF,非抢占:

优点:容易实现
缺点:效率不高,忽视了作业等待时间,会出现饥饿现象(= 大作业等待时间过长)


优先级调度算法 HPF:

优先级设置:
静态优先、动态优先


高响应比优先 HRP HRRN 抢占式:

响应比 = = + 1
等待时间越长,响应比越大
要求服务时间越短,响应比越大
服务时间:使用CPU的时间




优点:
短作业、先后次序兼顾,长作业不会长期得不到服务
缺点:
增加系统开销


多级反馈队列 FB 抢占式:

不同队列,其优先级不同
优先级越高,时间片越短
插入队列按照 先来先服务 FCFS顺序
若时间片内未完成就插入下一级队列末尾,再下一级…






实时调度(抢占式)

该系统需要有快速切换机制

2个调度算法
最早截止时间优先 EDF
最低松弛度优先 LLF

最早截止时间优先 EDF

非抢占
截止时间越早,优先级越高


最低松弛度优先 LLF

松弛度越低,优先级越高
松弛度=截止时间-服务时间-当前时间
服务时间=调用CPU的时间=本身运行的时间



调度评价指标

周转时间
响应时间
截止时间

周转时间:
外存后备队列等待时间
内存就绪队列等待时间
CPU上执行时间
等待操作时间



服务时间:使用CPU的时间

程序顺序执行特征:
顺序
封闭
可再现性
独享资源



并发:同一时间间隔内交替执行

程序并发执行特征:
间断:执行 间断 执行
不封闭:一个程序会受其他程序影响
结果不可再现:一个程序重复执行,结果不同
共享资源



进程引入的目的:
内存中的多道程序能正确的并发执行
提高资源利用率、提高系统的效率

线程引入目的:
减少程序并发而付出的时空开销
并发程度更好

没有进程的程序不能并发执行的原因 = 程序并发执行特征

进程的几个定义:(进程 程序)
1 是程序的一次执行
2 是程序、其数据在处理机上顺序执行所发生的活动
是程序在一个数据集合上运行的过程
是进程实体的运行过程
3 是CPU调度的 分配单位




线程定义:
进程内的执行单位 = 进程内可调度法实体
是CPU调度 的执行单位

线程包含线程

线程3个基本状态:
就绪:就差CPU了
执行:就绪 + CPU = 开始执行
阻塞:正在执行,因某事件而暂停


进程特征:
并发:多个进程一段时间同时执行
异步:多道程序环境,每个程序何时执行、暂停 均未知,但结果可再现
动态:程序执行过程动态
独立:各个实体独立的 运行、分配资源、接受调度



 

用户级线程:
线程仅在用户级中,线程的 创建 撤销 切换 不通过OS内核执行
切换速度块

内核级 相对 用户级线程 的优势:
同一进程的多个线程可以在多个处理器中
一个线程被阻塞,内核可以调度同一进程的其他线程
内核本身也可以用多线程实现


缺点:
速度、效率不如用户级
其原因是:
即使CPU在同一进程多个线程之间切换,也要陷入内核


陷入内核:

管程

管程引入目的:
信号量机制的缺点:
进程自备同步操作,P(S)和V(S)操作大量分散在各进程中,不易管理,容易死锁

管程组成:
1 局部于管程的共享变量
2 对数据结构进行操作的过程
3 对局部于管程的数据进行初始化的语句


管程的属性:
共享、互斥
安全
封装


安全:
管程局部变量只能被管程的过程访问,不允许进程、其它管程直接访问
管程不能访问不属于它的变量

封装:
管程内的数据结构是私有的,只能在管程内使用,管程内的过程也只能使用管程内的数据结构。
进程通过调用管程的过程使用临界资源

协程

进一步提高系统并发数量,对线程进一步分割,这就是协程

进程控制块 PCB

进程控制块PCB(Processing Control Block)
PCB记录了信息,这些信息有:
进程标识符
处理机状态
进程调度、控制信息
它们是OS所需要的、用于描述进程的当前情况




PCB的引入:描述、控制 进程的运行

多个PCB组织方式:线性、链接、索引

名空间 地址空间 主存的存储空间

名空间=名字空间:
符号名的集合
符号指令、地址空间、I/O说明
高级语言的源程序存储在名空间中


存储器包括
CPU寄存器
内存=内存储器=主存=主存储器
辅存


精细一点:
CPU寄存器
高速缓存 Cache
内存=内存储器=主存=主存储器
辅存
移动介质




(由上往下:
速度越来越慢,
价格越来越低,
容量越来越大)


内存=内存储器=主存=主存储器:
CPU可直接访问内存
分类:
只读存储器 ROM ()
随机存取存储器(读写) RAM()



外存=外存储器=辅存=辅助存储器:
有磁带、磁盘
CPU不能直接访问
其基本单位:块=物理块
对应文件管理



内存管理 磁盘存储管理

内存组成:
存储信息的物理单元(字、字节)
每个单元()都有地址

内存单元:
存储单元:存放一个机器字,字地址
存储单元:存放一个字节,字节地址

作业虚拟地址空间:
作业中各程序虚拟地址空间的并集
(作业、程序、进程)

程序装入:

程序在外存中存储,将其装入内存的过程

程序转入方式:
绝对装入方式
静态重定位
动态重定位


程序被装入内存,其≠

静态重定位:
程序被装入时,虚拟地址转为物理地址,以后无需转换
缺点:不便于维护,影响存储空间利用率
实例:DOS操作系统


动态重定位:
程序被装入时,未进行地址转换,有需要时再转换
存储管理单元:

动态重定位的控制逻辑



程序链接:
静态链接、
装入时动态链接
运行时动态链接


常规存储管理办法、虚拟存储器

常规存储管理办法:

分区
分页
分段
段页式


分区:针对内存,划分大小给作业使用
分页:针对作业,划分为大小相同的模块,有效利用内存
分段:针对作业,划分为大小可以不同的模块,满足用户
段页式:针对作业,划分为大小可以不同的模块,满足用户,对每个模块划分大小相同的子模块


分区:

存储单元连续

分区方法

单一连续分配
固定分区分配
可变分区分配=动态分区分配
伙伴系统


单一连续分配:
有系统区、用户区
系统区:供OS用
用户区:放作业
实例:单用户操作系统,MS-DOS



固定分区分配:
内存有若干分区,这些分区大小不可改变,每个分区可转入一个作业,多道程序可用
内部碎片:作业大小与分区大小不相等
用静态重定位
存储保护:
限界寄存器,进程运行时,基址寄存器放分区地址(首地址),限界寄存器放分区最后一个存储单元地址





可变分区分配 = 动态分区分配:
引入目的:克服固定分区分配的缺点(碎片)
作业转入,在可用内存动态分配大小与作业相等的分区


分区分配算法:
首次适应
循环首次适应
最佳适应
最坏适应



首次适应:从头找大小合适的分区
循环首次适应:
从上次分区后面找大小合适的分区

用动态重定位

缺点:
动态算法复杂
存在碎片,回收空闲分区要分区合并,系统开销大

内存扩充 (对换、覆盖):

整体对换=进程对换:
以整个进程为单位
页面对换=分段对换=部分对换:
以 页 段 为单位


覆盖:
小内存运行大作业不再是空想
将程序分成几个功能独立的程序段,根据程序的逻辑结构,不能同时执行的程序段共享相同的内存区域

对换与覆盖异同点:

结构不同
对换:不要求程序员给出程序段之间的交换通道结构
覆盖:要求程序员在程序段之间提供覆盖结构

单位不同
对换的范围:进程或作业之间的交换
覆盖的范围:相同的过程中进行

效果不同
对换:单进程大小 < 内存实际大小
覆盖:单进程大小 > 内存实际大小 是允许的

分页 page

页表:
作用:页号和块号一一对应的记录表


地址结构:
页长大小是 字节
逻辑地址长度 n 位

偏移量 = 位移量

地址变换机构:

普通页表的缺点:
页表在内存中,访问数据有两步
1 访问页表,找到,及对应,形成
2 根据访问数据(该数据也在内存中哦)


引入快表目的:
普通页表经过两步才能访问数据,效率低
块表经过一步才能访问数据!

运算过程:
1 由,得,将与快表中的比较
2 有匹配的页号(命中),直接得对应的, 再和拼接形成, 访问之。 一步即可访问数据
3 如果没有找到匹配的页号(未命中), 则访问内存中的页表两步访问。找到页表项后, 将其存入快表,若快表已满, 则按照某算法对旧的页表项进行替换


多级页表:
现代计算机,页表有时很大,有时没有那么大的连续空间
多级页表:对页表分页!


点我 请求分页存储管理方式




分段

分页 page:
页、页长、页号:
针对作业进行划分,每一部分大小相等( 字节),每一部分为,大小为,每一有0,1,2。。。

引入分段的目的:
方便用户编程
有利于信息的共享保护
有利于段的动态增长、动态链接


分段:
逻辑段、段号、段长、基址:
针对作业进行划分,根据作业的逻辑关系,把作业划分成每个大小可以不相等的逻辑段( 字节)
每个对应一个过程、程序模块、数据集合
段号:每个的编号0,1,2。。。
段长:每个的容量大小
基址:每个在内存中的物理地址





逻辑地址 = 段号 + 段内偏移地址

段表:
作用:段号、段长和基址一一对应的记录表




分页 分段 异同点:

点我跳转 请求分段存储管理方式

段页式

先分段,后分页

段号、段内页号、页内偏移量:

虚拟存储器

虚拟存储器:针对内存不够用、小内存运行大作业

常规存储管理办法的特征:
一次性:作业一次性放进内存,才能运行
驻留性:作业放进内存后,直到运行结束,才能移出内存

虚拟存储器:

局部性原理:
1 存取指令、数据,所访问的存储单元都聚在较小的连续区域中
2 程序可以部分装入内存,就可以运行,运行结束,也不马上调出内存

多次性:作业分块多次调入内存
对换性:与不同,对换性将内存暂时不用的程序、数据调出内存至对换区,提高内存利用率
虚拟性:小内存运行大作业的感觉

虚拟内存 = 虚存:逻辑上比实际内存大的内存, = 实际内存 + 部分磁盘
虚拟地址:虚拟内存中的指令和数据
虚拟地址空间:给进程的虚拟内存

虚拟存储器的基础:离散分配作业

硬件基础:
一定容量的内存、大外存
请求分页的页表机制、请求分段的段表机制
缺页中断机构、缺段中断机构
地址变换机构



虚拟存储器管理方式:
请求分页存储管理方式
请求分段存储管理方式

请求分页存储管理方式

页、页长、页号:
针对作业进行划分,每一部分大小相等( 字节)
每一部分为,大小为,每一有0,1,2。。。

存储块、块号:
对内存划分,每一部分和一样,每一部分是,每一部分有0,1,2。。。
点我跳转分页

将作业的部分装入内存,作业就在运行,而不是全部装入内存

请求分页中,内存分配、置换策略的组合:
内存分配:固定分配、可变分配
置换策略:全局置换、局部置换

固定分配无法全局置换,只能局部置换

3种组合:
固定分配 局部置换
可变分配 全局置换
可变分配 局部置换


置换算法:
请求调页,发现内存中需要的页不存在,就触发,将其调入内存,内存已满,此时需要选择内存已存在的页调出内存至外存

6个置换算法:
最佳置换(OPT)
先进先出置换(FIFO)
最近最久未使用(LRU)(重点)
时钟(CLOCK)置换
最少使用(LFU)
页面缓冲(PBA)





最佳置换(OPT):

理想法:
在内存中被调出页:以后不再用 或 最长时间没有调用的页面
难以实现





先进先出置换(FIFO)

在内存中被调出页:最先进入内存的页面
实现简单,性能差




最近最久未使用(LRU)

在内存中被调出页:最近一段时间最久未被用到的页面
性能较好




时钟(CLOCK)置换 接近 LRU
附加位 = 使用位
未被用到,使用位是,用了就是



最少使用(LFU)

在内存中被调出页:最近一段时间用的次数最少的页面
效果不佳,常用的页面可能此时没用,以后还要用,增加无益操作


页面缓冲(PBA)

在内存中被调出页:空闲页面缓冲池 = 空闲页链表

空闲块:淘汰页面占用的内存块

请求分段存储管理方式

点我跳转分段

请求调段、段置换

我觉得磁盘也属于存储管理的一部分

磁盘空间管理

磁盘调度

磁盘调度:减少磁盘平均寻道时间,减少磁头移动总量
先来先服务 ()
最短时间寻道优先 ()
扫描法
循环扫描法 ()
N-Step-SCAN 算法




N-Step-SCAN 算法:
磁盘请求队列分成n个子队列,按FCFS处理子队列。
每处理一个子队列时,按SCAN算法

系统的 基本功能、设备类型、组成、控制方式

组成:软件层次结构、硬件

外部设备:除了中央处理器(CPU)、主存储器外的其他硬件

基本功能、设备类型、组成

系统基本功能:
1 隐藏物理设备细节
2 与设备的无关性:提高OS可移植性、适应性
3 提高处理机和的利用率
4 对设备进行控制
5 确保设备的正确共享
6 错误处理





设备类型分类:
从属关系:系统设备、用户设备
传输信息:字符设备、块设备
传输速率:低速、中速、高速设备
资源分配:独占、共享、虚拟设备



系统 结构:
总线型、通道型




接口 的功能、组成

接口 组成

软件 层次结构:
1 用户层软件:与用户交互的接口,用户通过 用户层软件 操作设备
2 设备独立性软件:程序与设备的接口、命名、保护、分配
3 设备驱动程序:数据传输
4 中断处理程序



系统 硬件:
设备:操作的机械部分
设备控制器 = 适配器:控制的电子部分,CPU与的



控制方式、设备缓冲、设备分配、设备处理

系统的 控制方式:
程序控制(早期) = 方式 = 循环检测
中断方式
DMA方式
通道方式



中断方式:

信息传送方式分类:
无条件传送方式
条件传送

条件传送=查询控制方式:



优点:
所需硬件少
缺点:
循环测试浪费时间,降低效率


中断 通道

引入中断目的 = 查询方式的缺点:
CPU对外部设备查询时,不能做别的事,效率低
外设所需服务时间的间隔 < CPU对多个外设轮询循环的时间,导致数据丢失

缺点:
需要响应的硬件
一次中断,需要保护恢复现场,发出多个指令,浪费CPU时间,只适用于少量数据和中低速设备

引入DMA目的:
内存和设备直接传送数据,不需要CPU干涉
一般数据传送,从外部设备传到内存的步骤:输入指令,将外设取入CPU内部的寄存器或累加器,再将其输出至指定单元

DMA优点:
数据传送速度、响应时间极大提高
DMA缺点:
I/O设备的管理、其它操作仍需CPU来完成,而不是DMAC


设备分配:
为用户分配设备、设备控制器,以便完成用户的请求
有通道的系统中,还为用户分配通道

设备处理:
启动设备操作,响应处理设备控制器发来的中断请求
设备处理 = 设备驱动,是设备控制的核心模块
其任务:
接受上层的凑向命令,如打开关闭文件,把命令转为具体要求命令



缓冲CPU的高速与的低速

单缓冲
双缓冲
循环缓冲
缓冲池


单缓冲

某一时刻只能输入或输出数据,不能并行,属于临界资源

双缓冲:

输入输出数据可以并行

循环缓冲:
主存(=内存)中分配大小相同的缓冲区,接口是循环链表

仅适用于:特定I/O、计算进程
是专用缓冲



缓冲池:
Buffer pool
其缓冲期可以让多个进程共享

可输入输出的缓冲池
其3类缓冲区:
空缓冲区
装满输入数据的缓冲区
装满输出数据的缓冲区



同一类型的缓冲区构成队列
空缓冲区队列
输入队列
输出队列




头指针F(emq)

缓冲池的其它4个工作缓冲区:
收容输入数据 hin
提取输入数据 sin
收容输出数据 hout
提取输出数据 sout



 

工作方式:
收容输入 →
提取输入 →
收容输出 →
提取输出 →



空缓冲区队列
输入队列
输出队列

数据结构
分配算法
SPOOLing系统

其数据结构:
设备控制表 DCT()
控制器控制表 COCT()
通道控制表 CHCT()
系统设备表 SDT()



设备分配2类:
静态:系统一次性给作业分配所要求的全部设备、控制器、通道
动态:进程执行期间根据需求动态分配


设备分配算法:
先来先服务 FCFS
优先级 HPF


点我跳转进程调度

SPOOLing系统

SPOOLing系统 = 假脱机技术 = 外部设备同时联机操作

核心:
用一台可共享、大容量、高速的块设备,来模拟独占设备的操作,这样独占设备变成多台可并行 的虚拟设备,逻辑上成为共享设备


spooling系统的组成:

输入井、输出井:磁盘上的
输入缓冲区、输出缓冲区:内存上的


软件资源 - 文件管理

软件:
程序(汇编程序 编译程序 链接程序)
子程序
应用程序
数据



文件分类:

按性质用途
系统文件:仅系统调用,不能读写、修改
库文件:用户可调用,不能被修改
用户文件


按数据
源文件:ASCII 汉字 .c asm
目标文件:01二进制
可执行文件:编译后的01二进制


按保护方式
只读文件
读写文件
可执行文件
不保护文件



按信息流向
输入文件
输出文件
输入输出文件


按存放时限
临时文件
永久文件
档案文件:日志


按文件组织
普通文件
目录文件
特别文件


文件系统模型:

文件系统组成:

文件组织
文件存取
文件控制
文件使用


文件的结构=组织方式:
逻辑结构
物理结构

逻辑结构:
有结构=记录式文件
无结构=流式文件

有结构文件:
顺序文件
索引文件
索引顺序文件


文件存取:
顺序存取(数组顺序)
直接存取=随机存取(链表)
按键存取(哈希)


文件物理结构
文件存储设备(介质):
磁盘 磁带 光盘

文件物理结构
连续结构
链式结构(链表)
索引结构(哈希、页表、段表)




文件记录的成组、分解
逻辑记录的大小常小于实际物理块大小
成组:多个逻辑记录放在一个物理块中
分解:物理块中某个逻辑记录分离出来


文件管理,使 用户方便安全使用信息资源,包括:
管理 目录
管理 文件存储空间
文件共享
文件读写管理保护
文件操作:创建、打开、读写、关闭、删除




目录结构:
一级目录结构
二级目录结构
多级目录结构


一级目录结构

优点:结构简单

缺点:
查找速度慢
不能重名
共享不方便


二级目录结构
MFD 主文件目录
UFD 用户文件目录

优点(克服了一级目录的缺点)
提高检索速度
解决了不能重名问题





缺点:
不够灵活
无法反映多道程序设计中复杂的文件组织形式

多级目录结构



目录查询:
线性检索
哈希

类似于内存管理

为新创建的文件分配存储空间
连续 :分配速度高,有碎片
离散:分配速度低,无碎片

空间分配的基本单位(交换):磁盘块

文件存储空间管理就是对

3个办法:
空闲块表法
空闲块链法
位示图法


空闲块表法:

空闲块链法:



位示图法:

0:空闲
1:占用
行列,对应盘块号
:每行的位数
回收时









绕道法:

文件中没有共享文件,就向上寻找到,在向下访问到共享文件

链接法:

基本文件目录表法:
基本文件目录


扩展:
https://www.cnblogs.com/life-of-coding/p/10871831.html
https://www.icoa.cn/a/910.html

基于索引节点 = 硬链接

硬链接:
给文件的数据多创建了一个“入口”,
“A.txt”,“B.txt”指向硬盘的同一块区域,因此这两文件的内容一样,
编辑任何一个文件会影响另一文件,删除一个文件,只是删除这个文件其中一个“入口”,要两个文件都删除,文件系统才会标志这块硬盘区域上的文件被删除。




防止文件用户 或其他用户 对文件的破坏

破坏:
系统硬件故障
软件故障
用户文件共享引起的错误


防止 系统硬件故障:
建立副本
定期转储

定期转储:
海量转储 = 全量转储
增量转储

海量转储:
定期 把所有文件复制到大存储中
缺点:
转储过程该文件不能有任何操作(读写)
转储时间长



若发生文件损坏,解决办法:
1全量存储:把最近一次全量转储装入该文件中
2 增量存储:由近及远恢复文件
3 在最近一次的全量存储中,恢复未被恢复的文件


防止文件共享引起的错误:
存取控制矩阵
存取控制表
用户权限表


存取控制矩阵:

每个用户对每个文件的访问权限

存取控制表:

每个用户对每一类文件的访问权限

用户权限表

某一个用户对它要访问的每一个文件的访问权限

到此这篇操作系统基本作用(操作系统的作用?)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 蓝牙hid协议 353 398(蓝牙hid协议 qt)2025-07-14 09:54:08
  • 统信系统怎么装(统信系统怎么装字体)2025-07-14 09:54:08
  • 下载安装包需要读写文件权限(下载安装包需要读写文件权限手机)2025-07-14 09:54:08
  • pdfView为什么打印不了(pdf为什么无法打印出来)2025-07-14 09:54:08
  • 最终幻想7战斗系统(最终幻想战斗系统最好的一代百度贴吧)2025-07-14 09:54:08
  • qq账号需要实名认证(qq账号实名认证多久改一次)2025-07-14 09:54:08
  • 宇宙十大本源法则(宇宙十大本源法则详解)2025-07-14 09:54:08
  • nvim(Nvim 最低系统)2025-07-14 09:54:08
  • autoh开着好吗(auto开着油耗高吗)2025-07-14 09:54:08
  • 主板nvme接口图片(主板 nvme接口)2025-07-14 09:54:08
  • 全屏图片