1.概念
操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理组织和调度计算机的工作和资源分配,是最基本的系统软件。
2.特征
并发、共享(两个最基本的特征)、虚拟、异步。
并发:指同一时间间隔内发生,区别于并行。微观上分时地交替执行。
3.功能
(1)计算机系统资源(处理机、存储器、文件、设备)的管理者。
(2)用户与计算机硬件系统之间的接囗。
命令接口:允许用户直接使用
程序接口:由一组系统调用命令组成。GUI
系统调用是由操作系统提供给用户的, 它只能通过用户程序间接使用。
4.操作系统的发展:
批处理一>分时一>实时一>网络和分布式
(1)单道批处理:内存中始终保持一道作业,没有交互能力
(2)多道批处理:多道、宏观上并行,微观上串行
(3)分时系统:以时间片为单位,允许多个用户以交互的方式使用计算机。特点:同时性、交互性、独立性、及时性。时间片一定时,用户数越多,响应时间越长。
(4)实时系统:在某个时间限制内完成某些紧急任务而不需时间片排队。特点:及时性、可靠性。
(5)网络和分布式:区别是在分布式中,若干计算机相互协同完成同一任务
1.CPU的状态
用户态(目态)、和心态(管态)
2.内核
内核是计算机配置的底层软件。包含四方面的内容:
(1)时钟管理:计时;通过时钟中断的管理实现进程的切换
(2)中断机制:提高CPU的利用率
(3)原语:特点:1)处于操作系统最底层;2)运行具有原子性;3)运行时间短,调用频繁
(4)系统控制的数据结构与处理:如:PCB、作业控制块、设备控制块
发生中断或者异常时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的。
1.概念
引入中断技术的初衷是提高多道程序运行环境中CPU的利用率
2.分类
外中断:来自CPU执行指令以外的事件的发生。外设请求、时钟中断
内中断(异常、例外、陷入trap):程序非法操作码、地址越界、算数溢出、虚存系统缺页以及专门的陷入指令
3.系统调用
用户在程序中调用操作系统提供的一些子功能。用户程序可以执行陷入指令(又称访管指令或trap指令)来发起系统调用。
一些由用户态转向核心态的例子:
(1)系统调用
(2)发生一次中断
(3)用户程序发生了一个错误状态
(4)用户程序企图执行一条特权指令
(5)从核心态转向用户态由一条指令实现,这条指令也是特权指令,一般是中断返回指令
注:PV操作是一种低级的进程通信语言, 由两个不可中断的过程组成,并非系统调用 。
注:系统调用是一种特殊公共子程序陷入指令,是唯一一个只能在用户态执行, 而不可在核心态执行的指令。
1.概念
进程(动态)是资源分配的一个独立单位。程序:静态。进程实体(进程映像)由程序段、数据段、PCB三部分组成。PCB是进程存在的睢一标志。
2.特征
动态性(最基本)、并发性、独立性、异步性、结构性。
独立性:进程实体是一个能独立运行、独立获得资源和独立接收调度的基本单位。
异步性:由于进程的相互制约,使得进程具有执行的间断性
结构性:程序段、数据段和进程控制段组成。
3.进程的状态
运行态、就绪态、阻塞态、创建态、结束态
4.进程控制
(1)进程的创建:1)为新进程分配唯一进程标识号,申请空白PCB;2)为进程分配资源;3)初始化PCB
(2)进程的终止:1)正常结束:进程完成退出;2)异常结束:如越界、非法指令;3)外界干预:父进程请求和父进程终止
(3)阻塞和唤醒
(4)进程切换:区别于调度,切换是执行行为,而调度是决策行为。如:时间片用完、主动放弃处理机、被更高优先级的进程剥夺。注:进程切换的过程包括更新PCB信息。
5.进程的通信
(1)一个进程不能直接访问另一个进程的地址空间。PV操作是低级的通信方式,高级通信方式是指以较高的效率传输大量数据的通信方式。
(2)高级通信方法:
1.目的:减小程序的时空开销,提高程序并发执行的程度,提高系统效率
2.概念
线程是程序执行的最小单元,并不拥有任何系统资源 (进程才有),是独立调度的基本单位。同一进程中,线程的切换不会引起进程的切换,切换到另一进程中的线程才会切换。同一进程或者不同进程内的线程都可以并发执行。
1.作业调度(高级调度):按一定的原则从外存上处于后备状态的作业中挑选作业,给他们分配资源,建立相应的进程
2.内存调度(中级调度):将暂时不运行的进程调至外存等待,称为挂机态;把已经具备条件的进程跳入内存,修改为就绪态。引入中级调度为了提高内存利用率和吞吐量。
3.进程调度(低级调度):从就绪队列中选取一个进程,将处理机分配给它。是OS中最基本的一种调度,一般OS中必须配置,使用频率很高。
4.不能进行进程调度/切换的情况:
(1)处理中断过程中
(2)进程在OS内核程序临界区中。需要独占式访问共享资源(不能进行进程DD但还是能进行CPU调度!前提:不能破坏临界资源使用规则)
(3)需要完全屏蔽中断的原子操作中。如:加锁、解锁、中断现场保护、恢复。
5.应该进行进程调度/切换的情况:
(1)发生引起调度的条件且当前进程无法继续执行下去(非剥夺方式)
(2)中断或者trap处理结束后,返回被中断进程的用户态程序执行现场前,可以马上进行调度与切换。(剥夺方式)
6.调度方式:剥夺式引、非剥夺式(非枪占)
(1)剥夺式:当某个更紧急的进程要CPU时,立即暂停正在执行的进程,先分给更紧急的。(必须遵循一定规则,如:优先权、SJF or时间片)优点:提高系统吞吐率和响应效率
(2)非剥夺式:一旦CPU分配给一个进程,该进程保持CPU直到终止or转换到等待态。特点:实现简单、系统开销小; 适用于批处理, 不能用于分时or实时!
8.计算
CPU利用率=忙碌的时间/总时间
系统吞吐量=总共完成了多少道作业/总共花了多少时间
周转时间=作业完成时间=作业提交时间
带权周转时间=作业周转时间/作业实际运行时间
1.先来先服务调度算法FCFS:属于不可剥夺算法。特点.算法間单,有利于CPU繁忙型作业,不利于I/O繁忙型作业。
2.短作业优先调度算法SJF:会产生饥饿现象,是调度策略问题。特点:平均等待时间、 平均周转时间最少。
3.优先级调度:静态优先级:优先级在创建进程时确定,整个运行期间不变。动态优先级:随着进程执行时间增加,其优先权下降
4.高响应比优先调度算法
5.时间片轮转调度算法(队列的思想):主要适用于分时系统;绝对可抢占;时间片过大时,相当于 FCFS。注: |/0型作业优先权高于计算型作业0 /0作业要及时完成,无法长期保存入/输出的数据。
6.多级反馈队列调度算法
1.临界资源(独占资源):一次仅允许一个进程访问使用的资源(如打印机、共享变量、共享缓冲区、公用队列)
2.共享资源:磁盘存储介质、可重入代码 (一次可供个进程使用,不允许任伺修改的代码->共享程序)
3.临界区:进程中访问临界资源的那段代码。注:进程处于临界区时,不能进行进程DD,但是能进行处理机℃PU调度!但要不能破坏临界资源使用规则。同步机制遵循的原则:空闲让进,忙则等待,有限等待,让权等待,当进程不能进入临界区时,应释放处理器。
4.实现临界资源互斥的基本方法:
(1)软件实现方法:设置一些标志来表明是否有进程在临界区中
(2)硬件实现方法:特殊的硬件指令
5.信号量
信号量可用来解决互斥和同步问题,只能被两个原语访问,P操作和V操作。
(1)整型信号量:表示资源数量 (不满足"让权等待")
(2)记录型信号量:除需要一个表资源数量的整型变量value外,再增加一个进程链表L,用来链接所有等待该资源的进程。
6.利用信号量相制实现同步与互斥
7.题型:生产者消费者、吸姻者问题、读者写者
1.定义:多个进程因竞争资源而造成的互相等待
2.原因
(1)竟争系统资源(不可剥夺资源),独占资源分配不当;
(2)进程推进顺序非法;
(3)死锁产生的必要条件:1)互斥;2)不剥夺;3)请求和保持;4)循环等待
不剥夺:未使用完之前不能被其他进程强行夺走,只能是主动释放!
请求和保持:保持资源时又请求被其他进程占有的资源,对已获得的资源保持不放。
3.死锁的处理策略
(1)死锁预防:通过设立限制条件,破坏四个必要条件。互斥无法破坏。 SPOOLing技术、把互斥资源改造为允许共享使用.包括.采用静态分配法,一次申请完全部资源,采用顺序资源分配法,按编号.
(2)死锁避免:在资源动态分配过程中,用一些算法防止系统进入不安全状态。如:银行家算法
(3)死锁检测和解除:不采取任何限制性措施,允许进程内发生死锁。通过系统检测死锁发生,然后采取某种措施解除死锁。如:资源分配图、死锁定理。
4.死锁和饥饿
(1)概念
都是不安全状态,都是由资源分配策略不当。
死锁:两个或多个进程无限地等待一个事件,而这个事件只能由这些等待进程之一来产生
饥饿:在不公平的资源分配策略下,导致某个进程一直等待,得不到资源分配
(2)死锁与饥饿的主要差别:
1)进入饥饿状态的进程可以只有一个,而死锁的进程必须是两个或两个以上
2)处于饥饿状态的进程可以是一个就绪进程,而死锁进程必定是阻塞进程
Why?内存容量再怎么增长,也不可能把所有进程要的数据和程序全部放入主存,因此需要对内存空间进行有效分配。通过内存管理,更好地支持多道程序并发植行,提升系统牲能,从逻辑上扩充内存。
1.过程
编译、链接、装入
编译:源代码编译成若干目标模板
链接:目标模块和库函数链接成完整的装入模块。分为:静态链接、装入时动态链接、运行时动态链接。
2.逻辑地址和物理地址
覆盖与交换技术是在多道程序环境下用来扩充内存的两种方法
1.覆盖
基本思想:将用户空间分成固定区和覆盖区,将程序活跃部分存在固定区,其他部分分段,将即将要访问的段放入覆盖区覆盖原有的段。
2.交换
基本思想:把处于等待状态的程序换出,把准备好竞争CPU的程序从辅存换入主存
连续分配管理指的是为一个用户程序分配一个连续的内存空间。连续分配方式分为:单一连续分配、固定分区分配、动态分区分配。
1.单一连续分配
概念:内存中永远只有一道程序,只能用于单用户、单任务的操作系统
2. 固定分区分配
(1)概念:最简单的一种多道程序存储管理方式。将内存空间分成固定大小的区域。
(2)内部碎片:当程序小于固定分区大小,也占用一整个分区,这样分区内部会浪费
3.动态分区分配
(1)这种分区方法不预先划分内存,而是在进程装入内存时根据进程大小建立分区。
(2)外部碎片:动态分区在开始分配时很好,但之后会导致内存中出现许多小的内存块,会越来越多。
(3)分配算法:进程装入主存时确定分配给哪个内存块给进程快使用。
首次适应算法:满足条件的第一个空闲分区。(比最佳算法效果好)
最佳适应算法:空闲分区按递增排序,找到第一个能满足的空闲分区。
最坏适应算法:空闲分区按递减排序,找最大的分区存入。
邻近适应算法:从上次查找结束的位置开始查找。
允许一个程序分散的存入不相邻的内存分区。根据分区大小是否固定,分为:分页存储管理方式和分段存储管理方式。
1.基本分页存储管理
(1)概念:把主存空间分成大小相等且固定的块,作为主存的基本单位,同时也对进程按照块为单位进行划分。
(2)分页存储的几个概念:
(3)具有快表的的地址变换机构:存取一个数据或者一条指令至少要访问两次内存。第一次访问页表,确定物理地址;第二次根据地址存取数据或指令。
(4)快表:一个具有并行查找能力的高速缓冲存储器。查找时,先从快表查找匹配页号,如没有则从慢表中查找,并将该记录写入快表。
2.基本分段存储管理
(1)概念:分页管理方式目的是提高内存利用率,通过硬件机制实现。分段方式的提出则考虑了用户和程序员。
(2)分段:按照用户进程中的自然段划分逻辑空间。例如用户进程由主程序、两个子程序、站和一段数据组成,于是把进程划分为5段。每段从0开始编制,并分配一段连续的地址空间。段内要求连续,段间不要求连续。
3.段页式存储管理
页式存储管理能有效提高内存利用率,分段存储管理能反映程序的逻辑结构并有利于段的共享。
许多程序运行中不用或暂时不用的程序和数据占据了内存的大量空间,而一些需要运行的作业又无法装入运行,显然浪费了宝贵的内存资源。
1.局部性原理
(1)时间局部性:程序中的某条指令一旦执行,不久后该指令可能再次执行:选择访问的数据等会儿可能会再次访问
(2)空间局部性:一旦程序访问某个存储单元,不久后可能也会访问它附件的存储单元
2.虚拟存储器的定义和特征
(1)定义:操作系统将内存中暂时不使用的内容换出到外存中,从而腾出更多的空间给其他进程。这样,系统就好像为用户提供了一个比原本内存更大的内存。
(2)特征:多次性、对换性、虚拟性
多次性:作业允许被分成多次调入内存
对换性:允许作业在运行过程中,进行换进和换出
虚拟性:逻辑扩充
3.请求分页管理方式
建立在基本分页管理基础之上,为了支持虚拟存储器功能,增加了请求调页和页面置换功能。请求分页是目前常见的一种实现虚拟存储器的方法。
(1)请求分页需要的条件:
(2)页面置换算法(决定应该换入哪页、换出哪页)
(3)抖动
页面置换中会出现一种糟糕的现象:刚刚换出的页面马上又要换入主存,刚刚换入的页面马上又要换出主存。这种频繁的页面调度行为称为抖动。
1.定义
文件是以计算机磁盘为载体的信息集合。在用户输入输出时,以文件为单位。
2.属性
名称、标识符(文件的唯一标签)、类型、位置、大小、保护、时间、日期
文件的逻辑结构是从用户观点出发看到分组织形式,文件的物理结构是从实际观点看到的文件在外存上的存储组织形式。按逻辑结构,文件可划分为无结构文件和有结构文件。
1.无文件结构
将数据按顺序组织成记录并积累、保存,以字节为单位。如源程序文件、目标代码文件。
2.有文件结构
顺序文件:文件记录一个接一个地顺序排列,记录通常是定长的。只有顺序文件才能存储在磁带上,但顺序文件对查找、修改、增加、删除单条记录比较困难。
索引文件:
索引顺序文件:
直接文件或散列文件:散列文件有很高的存取速度,但是会引起冲突。
目录结构指的是文件“外部”的逻辑结构。为了实现目录管理,引入文件控制块的数据结构。
1.文件控制块File Control Block(FCB)
用来存放控制文件需要的各种信息的数据结构。FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。
FCB主要包含以下信息:
基本信息:文件名、文件物理位置、逻辑结构
存取控制信息:如存取权限
使用信息:如文件建立、修改时间
注意:FCB必须连续存放
2.目录结构
单级目录结构:查找速度慢、文件不许重名、不便文件共享
两级目录结构:缺乏灵活性,不能对文件分类
树形目录结构:增加了磁盘访问次数,影响查询速度
图形目录结构:方便实现文件共享
1.基本索引结点(硬链接)
利用索引结点将共享文件链接到两个或多个用户目录中
2.利用符号连实现(软链接)
用户B想要共享用户A的文件F,系统创建一个LINK类型的新文件,取名F,将新文件F写入B的目录中,以实现B的目录与F的链接。新文件F中只包含被连接文件F的路径名。
为用户设置权限
1.文件系统层次结构
(1)用户调用接口:(用户查看F的内容)
(2)文件目录系统:管理文件目录(查找目录以查找F的索引信息)
(3)存取控制验证:验证用户访问控制权限(用户是否有权限)
(4)逻辑文件系统与文件信息缓冲区:逻辑(得到文件内容的逻辑地址)
(5)物理文件系统:逻辑记录所对的块号换成实际的物理地址(得到物理地址)
(6)辅助分配模块:管理辅助空间(要释放F空间)
(7)设备管理程序模块:(用于输入/输出)
2.目录实现
查找目录
3.文件实现
得到文件的物理结构
1.结构
磁盘地址用“柱面号·盘面号·扇区号(或块号)”
2.访问时间
(1)寻找时间TS:将磁头移动到指定磁道所需要的时间。
Ts=m*n+s
m:跨越1条磁道的时间。n:需要跨越的磁道数。s:启动磁臂的时间,约为2ms
(2)延迟时间TR:磁头定位到某一扇区的时间。
Tr=1/2r
r:磁盘的转速
(3)传输时间tt:从磁盘读出或向磁盘写入数据所需的时间。
Tt=b/rN
b:字节数。r:磁盘转速。N:一个磁道上的字节数
注:延迟时间占用时间最长,因为需要移动磁臂
3.调度算法
(1)先来先服务算法:根据请求访问磁盘的先后顺序
(2)最短寻找时间优先算法:根据当前磁头所在磁道距离最近的磁道
(3)扫描算法(电梯调度算法):在当前移动方向上选择最近的请求
(4)循环扫描:在扫描算法的基础上规定磁头单向移动
4.磁盘管理
1.设备分类
(1)人机交互类外部设备。打印机、显示器、鼠标
(2)存储设备。磁盘、光盘
(3)网络通信设备。网络接口、调制解调器
2.I/O控制方式
外围设备和内存之间的输入/输出控制方式有4种:
(1)程序直接控制方式:CPU的大部分时间都处在等待I/O设备完成中,造成了CPU资源的大量浪费
(2)中断驱动方式:允许I/O设备主动打断CPU的运行并请求服务,从而解放CPU
(3)DMA方式:在中断方式中,I/O设备与内存之间的数据交换还是要经过CPU中的寄存器,所以速度还是受限。DMA的基本思想是在I/O设备与内存之间开辟直接的数据交换通路,彻底解放CPU。特点:1)基本单位是数据块;2)数据是从设备直接送入内存的;3)仅在传送数据块的开始和结束时才需要用到CPU,传输过程在DMA的控制器的控制下完成
(4)通道控制方式:DMA的发展。I/O通道是指专门负责输入/输出的处理机。把一个数据块的读写为单位的干预,减少为一组数据块的控制和管理为单位。
I/O通道与DMA方式的区别:1)DMA方式需要CPU来控制传输,而通道方式不需要;2)每个DMA控制器对应一台设备,而一个通道可以控制多台设备与内存交换数据。
3.I/O层次结构
(1)用户层I/O软件
(2)设备独立性软件
(3)设备驱动程序
(4)中断处理程序
(5)硬件设备
1.单缓冲
2.双缓冲
3.循环缓冲
4.缓冲池
5.缓冲区与高速缓存的对比
1.概述
根据用户的I/O请求分配所需的设备
2.数据结构
设备控制表、控制器控制表、通道控制表、系统设备表
3.策略
(1)分配原则:充分发挥设备的使用率,又要避免造成进程死锁,还要将程序和设备隔离开
(2)分配方式
(3)分配算法
4.映射
逻辑设备表:用于将逻辑设备映射为物理设备名
为了缓和CPU的高速性和I/O设备低速性之间的矛盾。利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上,或者相反。是一项将独占设备改造成共享设备的技术。
1.输入井和输出井:磁盘上开辟出的两个存储区域,用于收容输入和输出的数据。
2.输入缓冲区和输出缓冲区:内存中开辟的两个缓冲区。输入缓冲区用于暂存输入设备送来的数据,以后再送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再送到输出设备。
3.输入进程输出进程:模拟脱机时的外围控制机。
4.特点:提高了I/O的速度;将独占设备改造为共享设备;实现了虚拟设备功能。
图片来源:如有侵权,联系删除