操作系统的定义:是硬件上的第一层软件,管理这些设备,提高设备的利用率和系统的吞吐量,并为
用户和应用程序设置一个简单的接口,便于用户使用。
操作系统的作用:
1、OS作为用户与计算机硬件系统之间的接口。
(1)命令方式类似cmd命令
(2)系统调用通过应用程序进行系统调用
(3)通过图像窗口方式。
2、OS作为计算机系统资源的管理者。
3、OS实现了对计算机资源的抽象。
分时系统:作业直接存入内存,引入时间片,在不长的时间内能使所有的作业都执行一个
时间片的时间,便能让用户及时与自己作业进行交互。
分时系统原理和特征:
特征1.多路性。2.独立性。3.及时性。4.交互性。
操作系统的基本特征
并发、共享、虚拟、异步性。
程序顺序执行时的特征:
1、顺序性
2、封闭性
3、可再现性
程序并发执行时的特征:
1、间断性
2、非封闭性
3、不可再现性
进程和程序的区别:
进程是动态的,程序是静态的。
进程可以并发执行,程序不能并发执行。
进程是一个能独立运行,独立获得资源和独立接受调度的单位,程序不能作为一个单位运行。
进程各自独立完成以不可预知的方式进行,在程序上并发会导致不可再现性。
进程和程序的组成不同。
一个程序对应多个进程,一个进程对应多个程序。
操作系统的虚拟性:通过“空分复用”、“时分复用”技术将一个物理实体变为若干逻辑上
的对应物的功能成为“虚拟”。时分复用技术:“它利用某设备为以用户服务的空闲时间,又转去为
其他用户服务,使设备得到充分利用。虚拟处理机技术通过时分复用技术,将一个处理机虚拟成多台
逻辑上的处理机,在每台逻辑处理机上运行一道程序,我们把用户所感觉到的处理机称为虚拟处理器。
虚拟设备技术:通过时分复用将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用
一台逻辑上的I/O设备。一段时间内多个用户“同时”访问共享设备。
空分复用:利用存储器的空闲空间分区域存放和运行其它的多道程序。
虚拟存储技术:根据根据分时复用内存的方式,把每次用户运行程序的一部分调入内存,运行完毕
后将该部分换出。再将内存的另一部分到内存中运行,通过置换功能,实现了虚拟。
进程的引入:为了能让程序并发,并且可以对并发的程序加以控制和描述,人们引入了进程。
进程的定义:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个单位。
进程状态转换:
就绪-执行:进程调度
执行-就绪:时间片完
执行-阻塞:I/O请求
阻塞-就绪:I/O完成
具有挂起状态的进程状态及其相互转换原因:
执行
活动就绪 静止就绪
活动阻塞 静止阻塞
执行-静止就绪 挂起
活动就绪-静止就绪挂起反之激活
活动阻塞-静止阻塞激活挂起
静止阻塞-静止就绪释放。
PCB:进程表。
PCB作用:
一、OS根据PCB对并发执行的进程进行控制和管理。
二、PCB是判断进程存在与否的唯一标志,随着进程的建立而建立
随着进程的撤销而撤销。
临界资源:一段时间只允许一个进程访问的资源称为临界资源。
临界区:进程中访问临界资源的代码称为临界区。
进程同步:进程并发,且不同进程之间存在相互制约的关系。
同步机制的四条准则:
1、空闲让进
2、忙则等待
3、有限等待
4、让权等待
记录型信号量定义:
struct {int value;
   struct process_control_block *list;}
信号量正负值的物理意义
正值表示可用的资源,负值表示阻塞的进程数。
wait和signal的操作看是整形信号量,记录型信号量。
and型信号量:将进程在整个运行过程中的所有资源一次性全部地分配给进程,待进程使用完后再一次
起释放。只要一个资源未能分配给进程,其它所有可能为之分配的资源也不分配给他。
Swait如果所需资源都大于1,所有资源数目减一,退出,否则进入缺少第一个资源的阻塞队列。
Ssignal对每个资源加一并移除该资源所对应的阻塞队列。
利用信号量可以实现,前驱关系。
不会死锁的哲学家问题。
1、AND型信号量。
高级通信机制可归结为四大类:
高级通信:能高效的传送大量数据,隐藏了实现进程通信的具体细节。
共享存储器系统、管道通信系统、信息传递系统、客户机-服务器系统。
消息缓冲队列分为基于共享存储器系统。
线程减少了执行时的时空开销。
线程的概念:
进程中一个单一顺序的控制流。
线程和进程的区别:
1、线程进行切换的开销比进程小
2、多个进程并发,线程属于进程一部分,可以进程中多个
线程并发,也可以多个进程的多个线程并发。
3、进程创建和撤销,系统都要为之分配和回收控制块,
分配和回收其他资源,开销大于线程的创建和撤销。
4、进程拥有资源作为拥有资源的一个单位,线程本身
拥有保持独立运行的资源,共享该进程所拥有的资源。
引入线程后:
进程即是资源分配的单位,又是调度运行的单位。
线程是进程中的一条控制流,用于完成指定的任务。
高级调度:
从外存选择作业,为它创建进程,分配资源,并将新进程插入就绪
队列上。
低级调度:
从就绪队列中选择进程获得处理及,并由分派程序将处理及
分给进程
中级调度:
将暂时不运行的进程从内存引入外存,适当时机再引入内存。
目的:为提高内存利用率和系统吞吐量。
进程调度方式:
1、非抢占方式
2、抢占方式
抢占方式的原则:
1、优先权原则
2、短进程优先原则
3、时间片原则
选择进程调度方式和算法的准则是什么:
面向系统:
1、系统吞吐量高
2、处理机利用率高
3、资源平衡利用
面向用户:
1、周转时间短
2、响应时间快
3、截止时间的保证
4、优先权准则
先来先服务:先完成先来的
短进程优先:可以抢占根据服务时间-运行时间判断
优先权:高优先权可以抢占低优先权的
周转时间:进程结束时间-进程就绪时间
带权周转时间:周转时间/占用cpu时间
平均周转时间:周转时间除以用户总数
平均带权周转时间:带权时间除以用户总数
高响应比优先调度算法:
优先权=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间
特点:
1、等待时间相同,又利用短作业。
2、要求服务时间相同,等待时间长,优先级高。
3、对于长作业,随着等待时间的增加而提高,等待时间足够长,
也可以获得处理机。
时间片轮转调度算法原理:
将CPU时间划分成大小相同的时间片,将所有就绪进程按到达
的先后次序排成队列,每次调度从队首选择进程运行。在时间
片中运行结束,则进程运行结束,否则终止进程运行,插入到
就绪队列队尾。再从队首选择一个新进程使其运行。
多级反馈队列调度算法:
1、设置多个就绪队列,不同队列具有不同优先级,第一个
最高,以后次之。
2、给不同队列分配不同大小的时间片,第一个队列最小,
以后次之。有的系统也将最后一级队列不划分时间片。
3、每一级队列均按先来先服务算法调度。
4、仅当前一级队列为空时,才调度下一级队列的进程。
5、算法采用抢占式调度策略(必须先执行高优先级队列)
6、进程的时间片执行完毕,进入下一级队列的队尾。
死锁定义:
俩个或多个进程由于资源竞争而造成的一种僵局,若无外力
作用,这些进程无法向前推进。
死锁原因:
1、竞争资源
2、进程推荐顺序不当
死锁的必要条件:
1、互斥条件
2、请求保持条件
3、不可抢占条件
4、循环等待条件
死锁的处理方法。
预防死锁、避免死锁、死锁的检查和解除。
预防死锁最简单。
不能破坏互斥条件。
预防死锁取得较好的系统性能是:破坏循环等待。
安全状态:
系统能按某种进程顺序,来为每个进程P分配其所需资源。
直至每个进程都可顺利完成。
不安全状态:
找不到安全序列,则称系统处于不安全状态。
处于安全状态的,可以不产生死锁。
银行家算法:
首先判断申请资源数和最大资源数是否小于。
接着判断申请资源和现有可用资源作对比。
最后对可获得数值、分配数值、需要数值进行修改。
最后进行安全性算法,不安全将此次试探作废。
安全性算法:work表示可提供给进程使用的资源数。
finish表示是否把资源分配给进程。
当有一个need<work则
wokr=work+allocation
finish=ture
再次循环。
所有进程都是true处于安全状态,否则不安全状态。
死锁定理的作用:
通过简化资源分配图来检测系统的状态是否处于死锁状态。
找出一个既不阻塞又不孤立的进程节点,消去该节点和相关
各边,使之孤立。
该进程施放所有资源后,再找一个既不阻塞也不孤立的节点,进
行,重复上述过程,直到该图是完全可简化的。
重定位:
我们把装入时对目标程序中的指令地址和数据地址
的修改过程称为重定位。
静态重定位:重定位是再装入时由装入程序一次完成的。
动态重定位:在把装入模块装入内存后,并不立即把装入模块
中的相对地址转换为绝对地址,而是把地址转换推迟到程序
真正要执行时才进行。
首次适应法:
当一个作业到达时,从该表中尺寸能满足要求且未分配的分区
然后按照作业大小从该分区中划分出一块内存空间分配给他
余下空间仍然保留。
循环首次适应法:
由首次适应法演变而来,只不过从上一次的空闲分区开始查找。
最佳适应法:
当一个作业到达时,从该表中检索出尺寸能满足要求,且未分配
的最小分区分配给他。该方法碎片小,如果剩余空间分区太小,
则将整个分区全部分配给他。
快速适应:
将空闲分区根据其容量大小进行分类,每一类具有相同容量的
所有空闲分区,单独设立一个空闲分区链表,这样系统中存在
多个空闲分区链表,同时在内存中设立一张管理索引表,其中
每一个索引表项对应一个空闲分区类型。
紧凑:
通过移动内存中作业的位置,把原来多个分散的小分区拼接成
一个大分区的方法,叫紧凑。重定位寄存器:用来存放程序和
数据的起始数据。
对换:
是把内存中暂时不能运行的进程或程序和数据,调出外存上,
以便腾出足够的内存空间,再把已具备运行条件的进程或进程
所需要的程序和数据调入内存。
对换空间的管理:
外存分为文件区和对换区。
文件区强调外存利用率采用离散分配。
对换区强调访问效率,采用连续分配。
进程换出的依据:
阻塞或睡眠状态的进程、进程的优先级、进程在内存驻留时间、
无阻塞进程则考虑优先级低的就绪进程。
进程的换入:
换入就绪且换出状态的进程。
分页存储管理:
将用户的程序地址空间分为若干大小的区域,称为页。将内存
空间分为若干个物理块和页框,页和块的大小相同。这样可将
用户程序的任一页放在物理块中。
页表将页号和物理块号对应。
逻辑地址变为物理地址:
页号、页内地址。
页表始址+页号
页号得出块内+页内地址
二级页表的地址结构:
外层页号+外层页内地址+页内地址。
地址变换:
外部页号加外部页表寄存器。
得出地址再加上页号。
得出块数+逻辑地址。
分段存储管理原理及地址变换过程,根据逻辑地址算物理地址。
分段原理:
一个作业由若干个程序段构成,每个段都有独立的名字,并且都从0开始
编址,而在调用时按照段名和段内位移量进行访问。
分段系统地址
段号16+段内地址16
段号加段表始址,在加位移量。
分页存储
有页表寄存器有起始页表地址+页表长度
控制寄存器
段表始址+段表长度。
业内碎片计算
求余之后用总体减去余。
快表:
在地址变换机构中增设一个具有并行查寻能力的特殊高速缓冲寄存器,又称为快表。
快表的作用减少访问内存的次数。
增加快表后至少访问一次。
分页:两次;
一是访问内存中存放的页表,实现地址变换,得到真正的物理地址;
二是访问真正的物理地址得到相应的指令或数据
分段:两次;
一是访问内存中存放的段表,实现地址变换,得到真正的物理地址;
二是访问真正的物理地址得到相应的指令或数据
段页式:三次;
一是访问内存中存放的段表,查找段内页表的起始地址;
二是访问内存中存放的页表,实现逻辑地址到物理地址的变换;
三是访问真正的物理地址得到相应的指令或数据
段页式存储管理
原理:段页式存储管理的基本实现原理就是分页和分段原理的结合。
程序分段、段内分页。
分页和分段主要区别
1、页是信息的物理单位,是系统需要。段是逻辑单位,为了更好满足用户。
2、页的大小固定由系统决定;段的长度不固定由用户编写程序决定。
3、分页的地址空间是一维的,单一的线性地址空间;而分段的作业地址
是二维的。
常规存储器的特征:
1、一次性:将作业代码一次性装入主存。
2、驻留性:装入内存的作业在运行完毕之前永久驻留内存。
虚拟存储器的定义:
虚拟存储器就是把作业的一部分装入内存便可运行的存储器系统
,具体说是具有请求调入功能和置换功能,能从逻辑上对内存容量
进行扩充的一种存储器系统。
虚拟存储器的特征:
1、离散性:非连续性,实现虚拟存储器的前提。
2、多次性:一个作业多次调入内存。
3、对换性:运行作业在运行过程中换入、换出。
4、虚拟性:从逻辑上扩充内存容量。
分页申请系统的硬件:
1、请求分页的页表机制。
2、缺页中断机构。
3、地址变换机构。
请求分页的页表结构
页号、物理块号、状态位、访问字段、修改位、外村地址。
存在位:表示该页是否调入内存。
访问字段:记录本页被访问次数,提供置换算法作为参考。
修改位:表明是否被修改过是否写回内存。
外存地址;该页在外存上的地址。
缺页中断和一般中断的区别:
在指令执行期间产生和处理中断信号
一条指令在执行期间可能产生多次缺页中断
产生抖动的原因:
系统能运行的进程太多,分配给进程的物理块太少,不能满足
进程正常运行的基本需求,让每个进程运行时,频繁的出现缺页
必须申请系统将所缺之页调入内存。
每个进程的大部分时间都用于页面的换进/换出,而几乎
不能再去做任何有效的工作,从而导致处理及的利用率趋于0,
我们称之为抖动。
最佳置换算法:
淘汰以后永不使用或最长时间不再被访问的页面。
先进先出:
每次置换都是淘汰最先进入内存的页面进行淘汰。
LRU:
最久未被访问的页面予以淘汰。
缺页率=缺页次数/总页数
置换率=置换次数/总页数
置换次数=缺页次数-物理块数
总页数是使用的所有次数
段名、段长、段基址、存取方式、访问字段、修改位、存在位、增补位、外存始址
存取方式:段是逻辑单位,可根据信息属性对其实施保护,增加存取方式字段,俩位只执行、只读
和运行读写
访问字段:表示被访问的频繁程度。
修改位:表示该页进入内存是否被修改过
存在位:表示是否进入内存。
增补为:表示段是否做过动态增长。
外存始址:本段在外存的起始地址,盘块号
I/O宗旨:
尽量减少主机对I/O控制的干预,把主机从繁杂的I/O控制事物中
解脱出来,以便更多地去完成数据处理任务。
I/O控制:
采用轮询的可编程I/O方式
采用中断的可编程I/O方式
直接存储器的的访问方式
I/O通道方式
引入缓冲区的原因:
1、缓和CPU与I/O设备间速度不匹配的矛盾
2、减少对CPU的中断频率,放宽对CPU中断响应实际的限制
I/O软件层次:
用户层I/O软件
设备独立性软件
设备驱动程序
中断处理程序
应用程序独立于具体的物理设备叫设备独立性。
逻辑设备表:逻辑设备、逻辑设备名、物理设备名。
设备分配的数据结构:
设备控制表、控制器控制表、通道控制表、系统设备表
设备驱动程序功能:
1、将接收的抽象要求转换为具体要求
2、检查I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备有关的参数
设置设备的工作方式。
3、发出I/O命令,启动I/O设备,完成I/O操作。如果设备忙碌,请求者的请求块
挂在设备队列。
4、及时响应由控制器或通道发来的I/O请求并进行处理。
5、对设置有通道的系统、驱动程序根据用户的I/O请求自动构成通道程序
Spooling系统的组成:
1、输入井和输出井
2、输入缓冲区和输出缓冲区
3、输入进程和输出进程
4、井管理程序
Spooling系统原理:
输入进程-输入设备-输入缓冲区-输入井-输入缓冲区-井管理程序-运行的作业
-输出缓冲区-输出井-输出缓冲区-输出设备
磁盘访问时间:
1、寻道时间
2、旋转延迟时间
3、传输时间
寻道时间:m*n+s。s磁臂启动时间,n是移动的磁道,m和磁盘驱动器有关
旋转延迟实际:指定扇区移动到磁头下面所经历的实际。
传输时间:b/rN b是字节数,r是磁盘每秒转数,N是磁道上的字节数。
先来先服务:根据进程请求访问磁盘的先后顺序进行调度。
最短寻道时间:访问磁道与当前磁头距离最近的。
平均寻道长度=移动磁道数/总数
扫描算法是:俩个方向先往外走,到最外边往里走。
循环扫描:走到最外边立马找到最里边的磁道继续往外走。
文件是指由创建者所定义的、具有文件名的一组相关元素的集合。
文件的逻辑结构:从用户观点出发所观察到的文件组织形式
分类:有结构文件、无结构文件。
物理结构:文件在外存上的组织形式。
顺序结构
链式结构
索引结构
文件控制块:
1、为了能对一个文件进行正确的存取,必须为文件设置
用于描述和控制文件的数据结构称为文件控制块。
作用:对大量文件施以有效管理
文件目录:文件目录是指:为实现“按名存取”,必须建立文件名与辅存空间中物理地址的对应关系,
体现这种对应关系的数据结构称为文件目录。
目录管理的要求:
1、实现按名存取。
2、提高对目录的检索速度
3、文件共享
4、允许文件重名
索引节点的引入:
由于检索目录文件只用到文件名,即用不到该文件的描述信息,
故系统采用将文件名与文件描述信息,故系统采用将文件名与文件
描述信息分开的方法,将文件描述信息单独形成一个数据结构叫
索引节点。
索引节点:将文件描述信息单独形成一个数据结构叫索引节点。
连续分配
为每一个文件分配一组连续的磁盘物理块,盘块都集中于一个磁道上
优点:
顺序访问容易
顺序访问速度快
缺点:
要求有连续的存储空间
必须事先知道文件的长度
插入删除记录不灵活
不便于文件动态增长
连接方式:
为文件分配多个不连续的盘块,再通过每个盘块上的链接指针,将同属一个文件的多个离散
盘块链接成一个链表。
优点:
消除了磁盘的外部碎片,提高利用率。
对插入、删除和修改都非常容易。
能适应文件的动态增长。
隐式:缺点可靠性差
显示:不支持高效的直接存储。
需要较大的内存空间
索引组织的原理:
将每个文件所对应的盘块号集中地放在一起,在访问某个文件时,将该文件所对应的盘块号一起调入
内存,将这些盘号一起调入内存,用索引块记录盘块。
优点
1、支持直接访问。
2、不产生外部碎片
缺点
1、小文件不适用于采取索引分配
显示链接:
将物理块的指针显示存放在一张连接表中。
隐式链接:
文件目录的目录项有开始和最后的盘块指针。
盘块顺序访问。
文件分配表FAT属于显示链接
空闲磁盘空间管理采用哪些方法:
空闲表法、空闲链表法、位视图法、成组链接法,Unix常用成组链接法。
操作系统的接口分为:
用户接口和程序接口。
用户接口包括程序接口和图形接口。
程序接口是由一组系统调用组成。
系统调用:
是指用户在程序中调用OS所提供的一些子功能,以获得其服务。
设备分配的对象是设备,设备控制器和通道