计算机操作系统测试第一轮【错题涉及知识点】 处理器CPU{ 硬件{ 由于集成电路集成度越来越高,为降低系统成本,越来越多的功能集成在了芯片组中,芯片组与CPU同步发展,有什么样功能和速度的CPU,就有什么样的芯片组与之配套,所以芯片组里面啥都有,就没有CPU 控制器{ MMU用来管理虚拟存储器 、物理存储器的控制线路,同时也负责虚拟地址 映射为物理地址 。 } } 频率{ 微型计算机的主频是微处理器时钟工作频率 外频有时称为系统总线频率。是内存和cpu之间传送数据的频率,体现数据传送能力! } 架构{ RISC大多数指令在一个时钟周期内完成 RISC的内部通用寄存器数量相对CISC多 RISC的指令数、寻址方式和指令格式种类相对CISC少 } CPU硬件{ 用于执行系统软件和应用软件的微处理器称为CPU,目前几乎所有计算机的CPU使用的都是微处理器也就是集成电路 } 处理器调度{ 处理器调度可以在进程结束时能进行调度 //cpu将该进程代码执行完毕,此时cpu空闲 处理器调度可以在创建新进程后能进行调度//进程创建好进入就绪队列,抢占调度会判断该进程优先级抢占CPU 处理器调度可以在系统调用完成并返回用户态时能进行 //调度可以打断cpu运行(抢占式/轮转式) 处理器调度可以在进程处于临界区时也能进行//临界区不属于原子操作,可以把互排资源占有,并退出CPU 算法复杂度{ T(n)= T(n – 1)+1,T(1)=1 --> O(N) //线性 T(n)= 2n^2 -->O(N^2) //去掉系数 T(n)= T(n/2)+1,T(1)=1 -->O(logN) T(n)= 3nlog2n -->O(NlogN) //去掉系数} } CPU状态切换{
} cpu指令{ 指令 = 操作码+地址码 //地址码是操作对象的地址,不是直接就是数据 寄存器传送指令完成内存和CPU之间的传送,不是寄存器与cpu } 调度计算{ 周转时间=作业完成时间—作业提交时间; 平均周转时间=(作业1的周转时间+...+作业n的周转时间)/n; 带权周转时间=作业周转时间/作业实际运行时间; 平均带权周转时间=(作业1的带权周转时间+...+作业n的带权周转时间)/n; 响应比 =(等待时间+服务时间)/ 服务时间;--> 高效应比优先算法是已经等待时间长的优先,短工作时长的优先; 错题1{
} 错题2{ 假设有四道作业,他们的提交时间和执行时间由下表给出。 请计算在单道程序环境下,用最短作业优先调度算法(SJF)时的平均周转时间和平均带权周转时间是(8,2.13) 作业名 |提交时刻(时) |执行时间(小时) A | 0 | 4 B | 1 | 5 C | 2 | 2 D | 3 | 3 E | 4 | 4 } 错题3{
} 错题4{
} 错题5{
} 错题6{
} } } 线程与进程{ 基础{ 并行是指多个事件在同一时刻发生,缓冲区就是为了使io能与cpu并行 并发是指多个事件在同一时间间隔内发生。 线程是进程的一个执行单元,同一个进程的多个线程共享资源。创建或撤销线程不会分配和回收资源。 进程申请读磁盘操作的时候,因为要等待磁盘IO完成,将自身阻塞,进入阻塞态。当IO完成之后,从阻塞进入就绪态 线程执行开销小,但是不利于资源管理和保护 进程同步也是进程之间直接的制约关系,进程互斥是进程之间的间接制约关系 静止就绪==挂起就绪;活动就绪==就绪 每个线程都有各自私有的程序计数器、寄存器和栈。一个线程既不能读也不能写另一个线程的私有数据 } 进程通信{ 两个进程它们都各自拥有程序段和数据段,即有各自的全局变量,不可能通过全局变量交换数据,只能通过第三方比如数据库,pipe,共享内存传递信息;线程共用数据段,可以用全局变量交换数据 管道是pipe文件,由于文件的读写是互斥的,一次只能有一个进程对该管道读/写操作,管道是队列结构,一个进程(写进程)在管道的 尾部写入数据 ,另一个进程(读进程)从管道的 头部读出数据 ,所以是单向的半双工,其他进程被阻塞! 信号量{ 同步信号量的初值一般设为0; 互斥信号量的初值一般设为1; } } 死锁{ 资源分配图中存在回路,系统不一定存在死锁;死锁一定,存在资源分配图中存在回路 单处理机系统中,若有4 个用户进程,处于阻塞状态的进程最多有4个,全部死锁了,cpu没有进程运行。 避免死锁{ 银行家算法中,对某时刻的资源分配情况进行安全分析,如果该时刻状态是安全的,则存在一个安全序列,代表进程推进顺序,进程推进顺序可以多种,安全序列可以是多个! } 错题{
} } 内存管理{ 系统内存{ 内存没有那么大的空间,操作系统的程序和用户程序一样,是对换到外存也就是硬盘/磁盘的。 } 虚拟内存{ 虚存容量的扩大是以牺牲 CPU 工作时间以及内、外存交换时间为代价的 } 分区管理{ 变分区管理方案中,若采用“最佳适应”分配算法,通常将空闲区按容量递增排列。 内部碎片指的是在存储管理时,给程序配了一定的内存,但是没有全部使用,有一部分空闲而浪费。 外部碎片指的是就是没有分配给程序的内存碎片; 可变分区解决了不可变分区的内部碎片的问题,产生了外部碎片问题 } 页管理{ 错题1{ 下图的页表是存放在内存中的,对逻辑地址进行读写时。第一次找到对应的块号,第二次从内存绝对地址行读写,必须访问两次主存
分析:页号4位 + 页内地址10位 逻辑地址0A1F = 0000 10,10 0001 1111 = 0010(页号)+(1000011111)页内地址 物理地址 = 3(块号) + (1000011111)块内地址=页内地址 = 11,1000011111 } 错题2{
} 二级分页/页表页{ //页表和现实中的书本结合理解 //页表等于一页书,每一页对应一个页表项 //页表大小等于一页书能写多少字(字节) //页表页就是页目录就是专门存放页表项就是书本目录,查书必须先翻目录页 //页表项就是书本目录的每一行,一行记载某一页书大致信息(页表项大小) //逻辑空间大小1000页等于整本书1000页 页表项 == 【页号】【物理块号】【状态位P】【访问字段A】【修改位M】【外存地址】 【状态位P】:用于指示该页是否已调入内存; 【访问字段A】:用于记录本页在一段时间内被访问次数,供选择换出页面时参考; 【修改位M】:表示该页在调入内存后是否被修改过,供置换页面时参考; 【外存地址】:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考; 例题1{ 某计算机采用二级页表的分页存储管理方式,页面大小为1024B,每个页表项占2B,若逻辑地址空间的大小为64K个页面,则表示整个逻辑地址空间等于需要128页表页! 解:整本书64K页,每页对应一个页表项,全部64K页表,占地64K×2字;一页1024字,需要128页专门放页表项,等于需要128页表页 } 例题2{
} } } 分页虚拟存储{ //虚拟存储代表内存外存统一管理;虚拟地址代表逻辑地址 Belady现象是指分页式虚拟存储器管理中,发生缺页时的置换算法采用FIFO(先进先出)算法时,增加内存中的页面,缺页率反而增加,FIFO算法的缺页率最高(belady--become lady--麻烦) 页式虚拟存储管理的“虚拟”说明:不要求将作业同时全部装入;“页式”说明:存入的主存可以不连续。 工作集指的是一段时间内使用过的页面的集合。 缺页{ 影响缺页中断率的因素有四个: 分配给作业的主存块数多则缺页率低 页面大,缺页中断率低; 程序编制方法:少使用goto语句可以保护好程序的局部性,数组每一行元素存放在一页中,则按行处理各元素缺页中断率低; 页面调度算法对缺页中断率影响很大 分页存储管理的存储保护是通过页表完成的,起始地址与限长地址。 请求分页管理/虚拟分页管理中,已修改过的页面再次装入cpu时应来自磁盘对换区 请求分页管理 == 虚拟分页管理 在缺页处理过程中,操作系统执行的操作有,修改页表项(回看页表项定义),磁盘 I/O(调入页),分配页框(页是进程中的块,页框是内存中的块,页放入页框中的) 抖动是页面在内存与外存之间频繁的换入与换出的现象,可能是由于置换算法不合适引起的,可能是由于物理内存数量不足引起的,导致CPU比较忙碌,不会崩溃 错题1{
} 错题2{
} } } } 段管理{ 分段对程序员是可见的,代码段和数据段,bss段等! } 段页管理{ 段页式存储器管理系统中,不会产生外部碎片,会产生内部碎片,因为段分成多页,分页产生内部碎片 } 数据存放{ 例题1{ 8086读写一个以奇数地址开始的双字,最少需3周期 //8086是1986年的16位小端模式, //字等于2字节,int是2字节,奇地址是高地址,偶地址是低地址 //一次取一个字也就是一个int,16位 |奇地址|偶地址| } } 链接{ 静态连接{ 在程序运行之前,将目标程序段及它们所需的库函数链接成一个完整的可执行程序 } 动态链接{ 能够装入内存任何位置的代码程序必须是可动态链接的 动态链接前提是要有动态重定位 运行时,先将主程序所对应的目标程序段(链接要求以段作为管理的单位)装入内存并启动运行,当运行过程中又需要调用某段时,才将该目标程序段调入内存并进行链接。 } 重定位{ 采用动态重定位方式装入作业,在执行中允许操作系统在一定条件下将其移走。 } } } 外存{ 基础{ 磁带只能存放是顺序型文件,所以存储介质决定数据文件类型 磁带/磁盘/硬盘/光碟/U盘/都叫外存,他们叫产品,ROM,FLASH也叫外存,他们叫技术,技术构成产品 外存硬件划分为扇区/块;系统分配磁盘空间为簇,簇等于若干扇区辅存就是外存 位示图只能用在磁盘空间的管理;位向量的用处为磁盘空闲空间的管理 虚拟存储将外存非连续空间与内存统一管理;为了把所有的能用的存储空间都统一起来,拟内存的容量是受到内外存容量和计算机地址位数限制的 } 例题1{ 例如某文件系统的簇和磁盘扇区大小分别为1 KB和512 B。若一个文件的大小为1 026B,则系统分配给该文件的磁盘空间大小是2KB=2048B
} 文件系统{ 文件{ 索引文件是记录文件,比如目录文件,流式文件是顺序文件 流式文件是指无结构的文件,记录式文件是具有逻辑结构的文件 文件系统在内存中维护唯一的一张文件分区表,其中保存了系统所有已打开文件的FCB。 Linux 文件名的长度不能超过256个字符。 索引文件{
![]()
} 错题1{
} } 文件权限{ 如果系统的umask设置为244,创建一个新文件后, 它的权限是422 == 100 010 010 == - /r--/ -w-/-w- umask是从权限中“拿走”相应的位,且文件创建时不能赋予执行权限. 所以文件默认666,目录默认777,666减去umask的位就是结果422 } 文件链接{ 硬链接{ 基于索引节点的共享,当用户A创建一个新文件时,它便是该文件的所有者,此时将“源文件链接数”置为1。当有用户 B要共享此文件时,在用户B的目录中增加一个目录项,并设置一指针指向该文件的索引结点。此时,文件主仍然是用户A,“源文件链接数”=2。如果用户A不再需要此文件,不能将文件直接删除。若直接删除了该文件,也必然删除了该文件的索引结点,这样便会使用户B的指针悬空。 若文件f1的硬链接为f2,两个进程分别打开f1和f2,获得对应的文件描述符为fd1和fd2;两个进程各自维护自己的文件描述符 硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接就是一个文件的一个或多个文件名。目的是多个文件名能同时修改同一个文件。 一个文件有几个文件名,我们就说该文件的链接数为几。链接数可以是1, 这表明该文件只有一个文件名。 通过文件名存取文件时,文件系统内部的操作过程是通过文件名在目录中查找对应的i节点,通过i节点存取文件数据。 } 软链接{ 也叫符号链接,可以建立对于文件和目录创建新的链接文件,文件类型是链接文件l,链接文件具有新的i节点,是一个全新的文件,相当于快捷方式,不改变源文件链接数。 符号链接就是快捷方式,可以跨文件系统,即可以跨磁盘分区,如果采用符号链接的方式共享文件,那么当文件被删除的时候,该共享链接会失效 } 错题{ 在linux 中,设文件F1 的当前引用计数为1,先建立F1 的符号链接文件F2,再建立F1 的 硬链接文件 F3,则此时文件F1、F2 和F3 的引用计数值分别是(2,1, 2) 。 } } } } 虚拟地址{ 虚拟地址不是外存,是逻辑地址 虚存逻辑地址最大为Min(内存+外存,2^地址线) 例题1{ 段的逻辑地址形式是段号10位,段内地址20位,主存的容量为512MB,辅存的容量为1GB那么虚拟存储器最大实际容量是min(10×2^20=1024MB,512MB+1GB) = 1024MB } 例题2{ 一个虚拟存储器系统中,设主存的容量为16MB,辅存的容量为1GB,而地址寄存器的位数32 位,在这样的系统中,虚存的实际最大容量是min(2^32=4GB,1GB+16MB) = 1GB+16MB } } 中断{ 硬中断就是硬件设备引起的中断,比如按键,触发硬件中断,转去执行服务函数的程序 软中断是软件模拟的中断,是软件指令触发,比如访管指令可以触发软中断进入管态,执行系统调用 中断程序不能写成线程 处理外部中断时,应该由操作系统保存的是通用寄存器的内容,PC值由中断隐指令由硬件自动保存 } 系统OS{ 系统{ 多道批处理系统最重要是运行效率 //进程对IO操作时,阻塞在队列等IO结果,cpu让给其他进程 Unix操作系统是汇编语言,闭源的 Windows 操作系统是是一个批处理多用户操作系统 微内核操作系统中,内核是指精心设计的、能实现现代OS最基本的核心功能的部分。微内核并非是一个完整的OS,而只是操作系统中最基本的部分 多道程序系统是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行,用绝对地址编写的程序不适合多道程序系统运行,后调用的程序可能覆盖之前程序使用的内存,从而导致前面程序访问内存错误 C语言程序能够在不同的操作系统下运行,这说明C语言具有很好的移植性,所以Linux有很好的移植性 } 指令{ 系统调用指令不属于特权指令,系统调用往往以函数调用和陷入指令的方式使用,用户编程使用的系统调用不是特权指令,而是用户指令,超级用户也不可以使用特权指令。特权指令是指只允许操作系统使用,是不能提供给用户的! 访管指令能引起访管中断,它不属于特权指令 } } 校验{ 奇偶校验法{ 判断传输的一组二进制数据中"1"的个数是奇数还是偶数 奇校验:如果以二进制数据中1的个数是奇数为依据,则是奇校验 偶校验:如果以二进制数据中1的个数是偶数为依据,则是偶校验 } } IO设备{ //SPOOLing 技术把独占设备改成共享设备,不是虚拟设备 独享设备:用户作业独享设备。如输入机、磁带机、打印机等。——需要装驱动。 共享设备:多个作业都占有该设备。软硬盘、光盘等块设备都是共享设备。——无需驱动。 通道不含存储器,只含CPU的外部设备,所以才叫IO处理机,有处理器,执行I/O指令
用户程序应与实际使用的物理设备无关,这种特性就称作设备独立性设备名{ 逻辑设备表( LUT )的作用是在物理设备和逻辑设备之间建立对应关系,将逻辑设备名映射为物理设备名 用户申请设备时应指定设备类相对号。用户向系统说明所要使用的设备类型,至于实际使用哪一台,由系统根据该类设备的分配情况来决定。用户申请“设备类、相对号”。系统为用户建立“绝对号”与“设备类、相对号”的对应关系。 } IO系统{ 操作系统的I/O 子系统通常由 4 个层次组成,合理的层次组织排列顺序是{ 用户层I/O软件 //用户直接调用I/O操作的库函数,对设备进行操作 //用户和I/O软件之间 设备无关软件 //I/O软件和设备驱动器之间 设备驱动程序 //设备驱动器与硬件之间 中断处理程序 //中断 } 设备分配算法{ 先来先服务 优先级高者优先 } }