期末复习写的blog,可能对你有帮助
第一章
操作系统的概念####
操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充,其主要作用是管理好这些设备,提高他们的利用率和系统的吞吐量,并为用户和应用程序提高一个简单的接口,便于用户使用。OS是现代计算机系统中最基本和最重要的系统软件,而其他的诸如编译程序、护具库管理系统等软件,以及大量应用软件,都直接依赖于操作系统的支持,取得它所提供的服务,事实上OS以及成为现代计算机系统,多处理机系统、计算机网络中都必须配置的系统软件。
操作系统的目标和作用(背)
目标:
- 方便性
- 有效性
- 可扩充性
- 开放性
作用:
- OS作为用户与计算机硬件系统之间的接口
- OS作为计算机系统资源的管理者
- OS实现了对计算机资源的抽象
操作系统的发展
- 人工阶段
- 单道批处理
- 多道批处理
- 分时操作系统
- 实时操作系统
- 微机操作系统
- 分布式操作系统
操作系统的基本特征
并行
并行与并发
引入进程
共享
互斥共享方法:对某些资源,在一定时间内只能允许一个进程访问
同时访问方式:在一段时间内可以同时被不同进程访问
虚拟
时分复用:对时间片划分,宏观上一直在执行,但实际进行了调度
空分复用:对内存进行调度,在少的空间运行大程序,调用。
异步
进程以人们不可预知的速度向前推进。异步运行是允许的。
操作系统的主要功能
处理机管理功能
- 进程控制
- 进程同步
- 进程通信
- 调度:作业调度,进程调度
存储器管理功能
- 内存分配:为每个程序分配空间、提高存储器利用率,尽量减少碎片、允许程序申请附加内存空间。静态和动态两种方式
- 内存保护
- 地址映射
- 内存扩充
设备管理功能
- 缓冲管理
- 设备分配
- 设备处理
文件管理功能
- 文件存储空间的管理
- 目录管理
- 文件读写权限管理和保护
操作系统与用户间的接口
- 用户接口:为了方便用户直接或间接控制自己的作业,向用户提供命令接口
- 联机用户接口:cmd
- 脱机用户接口:脚本
- 图形用户接口:GUI
- 程序接口:用户程序执行中,用户程序取得操作系统服务的唯一途径
模块化OS
将功能精心划分成若干具有一定独立性和大小的模块。每个模块具有某方面的管理功能,并仔细规定好各模块间的接口
- 模块独立性:
- 内聚性:模块内部各部分间的联系紧密程度,内聚性越高,模块独立性越强
- 耦合度:模块间相互联系和影响的程度,耦合度越低,模块独立性越好
- 优点:
- 提高OS设计的正确性,可理解性和可维护性
- 增强OS的可适应性
- 加速OS的开发过程
- 缺点:
- 在OS设计时,对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求
- 在OS设计阶段,设计者必须做出一系列的决定,每一个决定必须建立在上一个决定基础上,但模块化设计结构在,各模块的设计齐头并进,无法寻找一个可靠的决定顺序,造成各种“无序性”,很难做到“设计者的每一步决定”都是建立在可靠的基础上,因此模块-接口又被称为“无序模块法”
微内核OS
是一种内核的设计架构,运行在核心态,开机常驻内存
- 足够小的内核:并非一个完整OS,只是将操作系统中最基本的部分放入微内核
- 与硬件处理紧密相关的部分
- 一些基本的功能
- 复杂客户和服务器之间的通信.
- 基于C/S服务器模式
- 将操作系统最基本的部分放入内核,把操作系统绝大部分功能都放在微内核外面的一组进程(服务器)中实现。
- 应用”机制与策略分离“原理
- 机制:实现某一功能的具体执行
- 策略:在机制的基础上借助某些参数和算法实现功能的优化
- 传统OS中,将机制放在OS内核的较低层,把策略放在内核的较高层次中
- 微内核中,通常将机制放在OS微内核中,策略并没有放在其中。
- 采用面向对象技术
- 包含的基本功能:进程(线程)管理、低级存储管理、中断和陷入处理等。
- 调度算法、虚拟内存页面置换算法等都放入外部服务器中实现
- 优点:
- 提高了系统的可扩展性:提供最底层的机制,只需在相应服务器中添加相应功能,同时更新方便
- 增强了系统的可靠性,微内核OS是通过精心设计和严格测试的,保证正确的,提供了规范精简的API,由于所有服务器都运行在用户态,服务器与服务器间采用消息传递通信机制,因此,当服务器出错时不会影响内核,也不会影响其他服务器
- 可移植性强
- 提供了对分布式系统的支持。
- 融入面向对象技术,便于维护
- 缺点:
- 效率低下
第二章
前驱图画法
并发执行的特征
间断性
相互制约,这个程序执行完需要另一个程序执行完,会产生等待,因此会有间断
失去封闭性
各种资源被多个并行程序共享,资源状态会被各程序改变,使其中任一程序运行时,其环境都必然会受到其他程序的影响
不可再现性
由于失去封闭性,任意程序的执行环境都不可能完全一致。由于并行的各程序执行速度完成先后有区别,每次执行都不能保证完全的一致
进程的定义
多道程序环境下,程序的执行属于并发执行,此时他们失去了封闭性,并具有间断性,以及其运行结构不可再现性的特征。这决定了通常的程序是不能参与并发执行的,因为程序结果不同所以无意义。为了能够使程序并发执行,并且对程序加以描述和控制,引入“进程”的概念
为了使参与并发执行的每个程序(含数据)都能够独立运行,在操作系统中必须为之配置专门的数据结构:进程控制块(Process Control Block,PCB)。系统利用PCB来描述进程的基本情况和获得过程。进而控制和管理进程。
进程
- 进程是程序的一次执行
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
- 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
进程的特征
- 动态性:具有生命周期
- 并发性:多个进程同时进行
- 独立性:进程实体能够独立运行,独立获得资源,独立接受调度的基本单位
- 异步性:按未知速度推进
PCB
为每个进程专门定义了一个数据结构:FCB。FCB作为进程实体的一部分,记录了操作系统所需的、用于描述进程当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构
进程的三支状态及三种状态的转换
- 就绪态:
- 阻塞完成转为就绪态
- 时间片用完从执行转为就绪态
- 当进程被调度时从就绪态转为执行态
- 执行态
- 当进程被调度时从就绪转为执行
- 当因某事件致使当前进程执行受阻,转为阻塞态
- 阻塞态
- 执行态受阻塞转入阻塞态
- 阻塞撤销转为就绪态等待调度
系统内核、系统态、用户态
为了防止OS本身及关键数据遭受应用程序有意或无意的破坏,通常将处理及的执行状态分为系统态和用户态两种
- 系统态:管态,内核态。拥有较高特权,能执行一切指令,访问所有寄存器和存储区,传统的OS都运行在系统态
- 用户态:目态。具有较低特权的执行状态,仅能执行规定指令,访问规定的寄存器和存储区,多数情况下应用程序只能运行在这一状态。
系统内核
内核”指的是一个提供硬件抽象层、与硬件紧密相关的的模块磁盘及文件系统控制、多任务等功能的系统软件。内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法来完成这些操作。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。
进程同步※#####
临界资源
并发程序共享的资源,会被各程序修改,但结果不一定对
临界区
人们把在每个进程中访问临界资源的那段代码称为临界区。因此保证各程序互斥的进入临界区就能把总临界资源的安全性。
同步机制应遵循
- 空闲让进
- 忙则等待
- 优先等待
- 让权等待
信号同步:
wait() signal()
生产者消费者问题:#####
- 监测三个信号量,分别是empty=n:有几个空间空余
- full=0:已经充满了几个
- muxer=1:是否正在对缓冲池操作
哲学家吃饭:#####
- 只让最多4个哲学家同时拿左边的筷子
- 两边筷子都空余时才拿起
- 12号先竞争1号筷子,34号先竞争3号筷子。五位哲学家都先竞争奇数号筷子,获得后再去竞争偶数号筷子,最后总会有一位哲学家能同时获得两个筷子
进程通信类型
- 共享存储器
- 管道通信系统
- 消息传递系统
- 客户机-服务器模式
线程
线程是轻量级的进程,一个进程内部可以存在一个或多个线程,进程与进程之间是不能共享内存的,进程之间通信不方便,但一个进程内部的线程之间共享这个进程的内存空间,线程间通信方便。
线程——作为调度和分配的基本单位
引入线程的原因:
- 线程之间共享内存
- 进程太重
- 进程切换开销大,线程基本无需开销
线程与进程的比较
- 调度的基本单位(切换方面)。
- 进程作为独立调度和分派的基本单位,能够独立运行的基本单位,每次被调度时都要进行上下文切换,开销大
- 引入线程后,将线程作为调度和分派的基本单位,可以独立运行,切换时仅需保存和设置少量寄存器,代价远小于进程。同一进程中线程的切换不会引起进程的切换,但一个进程中的线程切换到另一个进程中的线程就会引起切换
- 并发性
- 引入线程后,不仅进程间可以并发执行,同一个进程间的线程也可以并发执行,OS并发性提高
- 拥有资源
- 进程可以拥有资源,线程本身并不拥有系统资源(仅有一些必不可少的,能保证独立运行的资源)
- 线程可以访问该进程中所有申请到的资源
- 独立性
- 线程的独立性要比进程差(统一进程下的线程相比)。
- 线程的堆栈可以被其他线程读,打开的文件也可供其他文件读写
- 系统开销
- 创建或撤销进程时,系统都要为之分配和回收FCB,分配回收其他资源,要远远大于创建线程时的开销。
- 线程的切换、同步、通信都无需操作系统内核干预
- 支持多处理机系统
- 对于传统进程,无论多少处理及,进程都只能运行在一个处理及上
- 对于多线程进程,可将一个进程中的多个线程分配到多个处理机上,并发执行,加速。
第三章
调度的概念、处理机调度算法的层次
调度实际上是一种资源的分配,为过多的进程合理的分配处理机,从而达到良好的性能
- 高级调度:对象是作业
- 低级调度:对象是进程
- 中级调度:提高内存利用率和系统吞吐量
处理及调度算法的共同目标
- 提高资源利用率:cpu利用率=cpu有效工作时间/cpu有效工作时间+cpu空闲等待时间
- 公平性:各进程合理的获取cpu时间
- 平衡性
- 策略强制只想:优先级
作业控制块的概念
为了管理和调度作业,为每个作业设置了一个作业控制块JCB,他是作业在系统在存在的标志,保存了系统对作业进行管理和调度所需的全部信息。
一般含有以下信息:
- 作业标识
- 用户名称
- 用户账户
- 作业类型
- 作业状态
- 调度信息
- 资源需求
- 资源使用情况等
作业调度算法####
先来先服务FCFS
短作业优先SJF
必须提前预知作业时间
优先级调度算法SPA
高相应比调度算法HRRN
响应比=(等待时间+要求服务时间)/要求服务时间
为什么需要高响应比算法?优缺点?
FCFS算法所考虑的只是作业等待时间,SJF只考虑了作业运行时间。高响应比会兼顾二者,从而改善处理机性能
优点:实现了较好的折中
缺点:每次调度前都计算,增加了系统的开销
进程调度算法
抢占/非抢占方式
非抢占:一旦处理机分配,就一直运行下去,绝不会因为时钟中断或任何其他原因去抢占当前正在运行程序的处理机
抢占:允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机分配给另一进程。优先级、断进程优先、时间片原则
轮转调度算法
就绪队列的每个进程每次仅运行一个时间片,n个进程,就获得1/n个的处理机时间
若时间片没用完就执行完毕,立即从就绪队列删除,同时抛弃剩余时间片,开启新时间片,开启就绪队列首部进程。
注意将进程到达按队列方式进行书写
优先级调度算法
- 抢占式:一旦处理及分配给队列最高优先级进程后,该进程将一直执行下去,或因进程发生某事件放弃处理机,才能被分配给另一最高优先级进程
- 非抢占式:分配给最高优先级,期间只要出现一个优先级高的进程,就将处理机剥夺。每出现一个新进程,都要与最高优先级进行比较
实时调度
抢占/非抢占
略
最早截止时间优先EDF算法
根据任务的截止时间确定任务的优先级,截止时间越早,越排在就绪队列的首部
最低松弛度优先
松弛=截止时间-到达时间-本身运行时间
死锁
在一组进程发生死锁的情况下,这组死锁进程中的每一个进程,都在等待另一个死锁进程所占有的资源,或者是每个进程所等待的事件是改组中其他进程释放所有占有的资源。但由于所有的进程都无法运行,因此都无法释放资源,无限循环等待
定义:如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程就是死锁
死锁的必要条件:
- 互斥条件
- 请求和保持条件
- 不可抢占条件
- 循环等待条件
第四章
程序的链接方式
静态链接:链接后形成一个整体,对每个相对地址进行换算,将整体直接装入内存,运行前所有需要的模块都已就位
装入时动态链接:装入一个目标模块时,调用外部模块时才会让装入模块去寻找相应的外部模块并装入内存(都是在装入阶段,并没有运行)
运行时动态链接:运行时遇到了再去找
动态分区分配算法####
基于顺序搜索
- 首次适应算法
- 循环首次适应算法:从上一次找到的分区的下一空闲分区开始查找,知道找到一个满足空闲分区
- 最佳适应算法:将所有空闲分区按容量以小到达的顺序形成一个空闲分区链,从小的开始查,这样第一次找到满足需求的空闲区一定是最佳的。
- 最坏适应算法:将所有空闲分区按容量从大到小排序,从大的开始查,然后在里面划分出一部分给作业
基于索引搜索
- 快速适应算法:将空闲区按容量大小进行分类
- 伙伴系统:将大小进行划分,每次除2,直到第一个最小能容纳数据的块出现
- 哈希
分页存储管理方式####
页面:将进程的逻辑空间分为若干页
块:把内存的物理地址分为若干块
类似掩码,将地址分为页号和页内地址(网络号与网内地址),根据页号查找映射的块号,从而生成新的地址
访问内存的有效时间#####
第一次访问内存的时间(查找页表对应的页表项所消耗的时间)t1
第二次访问内存的时间(将页表项中的物理块号与页内地址拼接成实际物理地址所耗费的时间)t2
EAT = t1+t2 = 2t
引入快表后,通过查快表可以直接得到逻辑页所对应的物理块号,由此拼接成世界的物理地址,减少了一次访问。存在命中率
EAT = a*λ[查快表命中]+(t+λ)(1-a)[快表没命中去查了内存]+t[计算地址访问内存] = 2t+λ-t*a
a:命中率
λ:查快表所需要的时间
t:访问一次内存所需要的时间
分段存贮方式
不止把程序(作业)分了页,也赋予了每个段(页)实际的逻辑信息:(main,func1,datastick)
每个段都从0开始编址,采用一段连续的地址空间。
长度由相应逻辑信息组的长度决定,因此长度并不像页一样固定
整个空间被分为多个段,表现出二维特性
分段存储管理方式满足了用户和程序员的哪几方面要求?###
- 方便编程:解决了命名空间的问题,保证每个子段逻辑地址从0开始的可能
- 信息共享:在实现对程序和数据共享时,以信息的逻辑单位为基础。
- 信息保护
- 动态增长
- 动态链接
分段和分页的区别####
分段和分页都采用离散分配的方式,都是通过地址映射机构实现地址变换
区别:
- 页是信息的物理单位,段是信息的逻辑单位:分页实现了离散分配,消除了内存的外零头,提高内存利用率,对用户不可见,属于底层封装。而分段中其是一组意义相对完整的信息,满足了用户的可见性
- 页的大小固定由系统决定,段的长度由程序决定并不固定:分页在硬件结构上就把用户程序的逻辑地址划分为页号与页内地址,直接由硬件实现。段的长度不固定,取决于用户写的程序,在编译时根据信息性质划分
- 分页的用户程序地址空间是一维的,分段的用户程序地址空间是二维的。分页完全是系统行为,在分页中用户使用的逻辑地址是线性的地址,程序员只需要提供一个地址就行。分段是用户行为,因此用户在使用是需要给出段号以及地址
段页式:
在分段基础上,对实际的存储位置进行分页。
第五章
局部性原理的定义####
程序在运行时存在局部性原理:在一较短时间内,程序的执行仅限于某个部分,相应的,其所访问的存储空间也局限于某个区域。
- 程序运行时,大多数情况下是顺序执行的。
- 过程调用会将程序的执行轨迹由一部分转移到另一部分区域。
- 程序中存在许多循环结构
- 程序中包含许多对数据结构的处理,通常局限在很小的范围
局限性表现在:####
- 时间局限性:某条指令执行,不久后仍有可能执行,数据被访问过,仍有可能被访问。程序中存在着大量的循环
- 空间局限性:一旦程序访问了某个存储单元,不久后,附近的存储单元也将被访问。一段时间内访问的地址可能集中在一定范围内
虚拟存储器的定义####
虚拟存储器:具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存和外存容量之和决定,运行速度接近内存速度,成本又接近于外存。是一种性能优越的存储器管理系统
页面置换算法#####
抖动:刚被换出的页又很快被访问,重新调入,频繁的置换会发生抖动
最佳置换算法
计算块中每个页面与其下一次被调用的时间,将最长的剔除,加入所需的页面
先进先出页面置换算法
队列,依次退出
最近最久未使用置换算法
给每个页面记录自上一次访问后的生存时间(调入时设为0,访问时也记为0),在需要淘汰时将生存时间最长的剔除
最少使用置换算法
同样有个计数器,近期访问一次就加1,需要时将计数最少的淘汰。
Clock置换算法
为每页设置一个访问位,再将内存中的所有页面都通过链接指针链接成一个循环队列。当某页被访问时,访问位置1。淘汰一页时,只需检查该页的访问位,如果是0就将页面换出,如果是1就将其置为0,暂时不换出,继续检查下一页
页面会被换出的条件:访问为是0,且当前页面不是需要的页面
每次都会导致访问位的翻转
第六章
IO系统的基本功能##
- 隐藏物理设备的细节:封装
- 与设备的无关性:无需重新编译就可以接新设备,虚拟名称,即插即用
- 提高处理机和io设备的利用率
- 对io设备进行控制
- 确保对设备的正确共享:可以被几个进程访问
- 错误处理:进行底层错误处理,无法处理再上报
IO系统接口类型:块设备接口、流设备接口、网络通信接口##
- 块设备接口:块设备指数据存取和传输都是以数据块为单位的设备,隐藏了磁盘的二维结构,将抽象命令映射为底层操//作
- 流设备接口:字符设备指数据存取和传输是以字符位单位的设备,提供get/put操作·,in-control指令
- 网络通信接口:提供网络接口
中断处理程序##
略
对io设备的控制方式###
- 使用轮询的可编程IO方法:轮流询问
- 使用中断的可编程IO方法:io使中断
- 直接存储器访问:直接修改存储器
- IO通道控制
与设备无关的io软件定义###
- 引入了逻辑设备名
- 逻辑设备名要作到物理设备名的转换
- 设备驱动程序的统一接口
- 缓冲管理
- 差错控制
- 对独立设备的分配与回收
- 独立于设备的逻辑数据块
- 综合看来,与设备无关的io软件引入了逻辑设备名,同时完成了对逻辑设备名到物理设备名的转换,同时保证了设备驱动的统一接口,实现缓冲管理,差错控制,对独立设备的分配与回收,并拥有独立于设备的逻辑数据块
什么是假脱机技术###
通过假脱机技术,将一台物理io设备虚拟为多台逻辑io设备,允许多个用户共享一台物理io设备。再联机情况下实现的同时外围操作的技术称为SPOOLing技术,也称假脱机技术
操作系统会以为:哦我已经把完成了写操作,其实是往SPOOLing井里丢入了数据,让SPOOLing托管数据,待io空闲再完成剩余操作
引入缓冲区的原因###
- 缓和CPU和io设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
- 解决数据粒度不匹配的问题(数据单元大小)
- 提高CPU和IO设备的并行性。
环形缓冲区##
将多个缓冲区链接成环形循环使用,通过指针标识工作状态,增加缓冲区性能
磁盘调度算法#####
磁道:圈
寻道时间:m是磁头移动到指定磁道的速度,n是移动了几个磁道,s是启动速度。寻道时间=m*n+s
- 先来先服务FCFS:哪个需要就去哪个位置
- 最短寻道时间优先SSTF:往最近的去,但同时会产生饥饿
- 扫描(电梯):有一个顺序,根据顺序中最短距离的前往1~100→100~1→1~100
- 循环扫描:1~100→1~100→1~100
第七章
文件扩展名##
添加在文件名后面的若干字符,用于指示文件的类型,方便系统和用户了解文件的类型长度是1~4个字符
文件的逻辑结构:按文件组织方式分类####
有结构文件:每个记录都用于描述实体集中的一个实体,并记录着有着相同或不同数目的数据项
无结构文件:源程序,可执行文件,库函数,也称为流式文件
- 顺序文件:指由一系列记录按某种顺序排列所形成的文件,其中记录可以是定长的也可以是边长记录
- 索引文件:指为可变长记录文件建立一张索引表,为每个记录设置一个表项,加速对记录的检索速度
- 索引顺序文件:顺序文件和索引文件相结合的产物,为每个文件建立一张索引表时,并不是为每一个记录建立一个索引表象,而是为一族记录中的第一个记录建立一个索引表项
文件控制块##
一个文件控制块就是一个文件目录项。为了能对大量文件施以有效的管理,在文件控制块中,通常应该含有三类信息:
基本信息:名称,物理地址,逻辑结构
存取控制信息:权限
使用信息:时间等
树形目录、当前目录的定义###
每个文件目录中只允许有一个根目录,每个文件和每个目录只有一个父目录,子叶是文件,其余节点均为目录或子目录(文件夹)
当前目录:进程对个文件的访问都要相对于当前目录进行,
第八章
外存的组织方式###
- 连续组织方式
- 链接组织方式
- 索引组织方式
连续存储方式的优缺点####
优点:
- 顺序访问容易。连续的访问只需找到开始存在的第一个盘块,依次往下读取即可
- 顺序访问速度块。由于连续分配所装入的文件,其所占用的盘块经常是在相邻的磁道上,磁头移动距离短
缺点:
- 要求为一个文件分配连续的空间,导致外存碎片的产生,虽然定期可以使用紧凑的方式消除碎片,但又需要小号大量时间
- 必须事先知道文件大小长度,而在获取大小长度时经常采用估算,导致文件大小比实际存储空间要大,产生浪费
- 不能灵活的删除和插入记录。由于文件是有序的,删除插入需要对相邻记录做物理上的移动,还需要动态改变文件的大小
- 对于动态增长的文件很难提供支持。会让大量空间处于空闲
链接存储方式的优缺点####
优点:
- 消除了磁盘的外部碎片,提高了外存的利用率
- 对插入、删除和修改记录都非常容易实现
- 能够适应文件的动态增长,无需预先知道文件的大小
缺点:
- 存取速度慢
- 查找某一块必须从头沿指针进行
- 可靠性问题:指针出错,或FAT表记录
- 更多的寻道次数和寻道时间
- 链接指针占据一部分空间
FAT12、16、32、NTPS##
一张表。只有一个记录值。一个编号表项的记录值是与之链接的块的编号,没有的画就置为空。12、16、32分别代表其最高支持的地址位数n 空间:(2^n)
NTPS:改进型
位视图法
标明盘块使用情况,0是已分配,1是空闲。m*n位数=盘块数,成为视图。本质上是一个二维数组[m,n]
对应盘块号b=(i-1)+j
map[i,j]=1
相当于把盘块号映射到一个二维数组上,里面只存0和1
提高io速度的途径##
从三方面着手:
- 改进的文件目录结构以及检索目录的方法
- 选取好的文件存储结构
- 提高磁盘的io速度
磁盘高速缓存
提前度
延迟写
优化物理块分布
虚拟盘(把一部分内存作为硬盘)
廉价磁盘冗余阵列 (RAID)的定义##
利用一台磁盘冗余阵列统一管理和控制一族磁盘驱动器,组成一个大型磁盘系统
有多个小磁盘组成一个大容量的RAID
并行交叉存取:将需要存的数据分成子块,然后分别存在小磁盘的相同位置,可以并行读取,加快速的。
其他
事务的定义##
一系列的读写操作。要么全部完成(submit)要么全部回滚,事务具有原子性
一致性
隔离性
原子性
持久性
系统调用的概念####
重述系统态和用户态:OS内核运行在系统态,应用程序运行在用户态,防止应用程序对内核的破坏
特权指令与非特权指令:由硬件实现
系统调用
为了使应用程序可以根据系统调用间接的调用OS中的相关过程,取得相应服务,本质上是应用程序请求OS内核完成某项功能时的一族过程调用,很特殊,有以下特点(和一般的调用过程相比)
运行在不同的系统状态:一般的调用过程都是同态调用,要么是系统态调系统态要么是用户态调用户态,但系统调用是:调用程序运行在用户态,被调用态运行在系统态
有状态的转换:系统调用需要首先通过状态转换,先由用户态转为系统态,由内核分析后才能转向相应的系统调用处理子程序。(软中断)
返回问题:在采用了抢占式进程调度的系统中,在被调用进程执行完后需要重新计算优先级
嵌套调用:系统调用允许嵌套调用,可以用一个系统调用去调用另一个系统调用,深度有限制
大致分为三类:
- 进程控制类系统调用
- 文件操纵类系统调用
- 进程通信类系统调用