操作系统中一些零散的知识点

第三章 内存管理

  1. 在虚拟内存系统中,虚拟内存的最大容量是由计算机的地址结构(CPU寻址范围)确定的,而虚拟内存的实际容量是受到"内存大小+磁盘空间大小"、"地址线位数"共同制约,取二者最小值
  2. 实现虚拟内存管理必须有相应硬件的支持,如:记录当前进程页表始址的页表寄存器、判断逻辑地址是否越界显然也需要硬件实现、以及将页表始址和逻辑地址转换成页表项的地址(即查页表的过程)也是需要硬件完成
  3. 虚拟地址空间VS物理地址空间:
  4. 分段存储管理方法有利于程序的动态链接
  5. 当操作系统对内存的管理采用页式存储管理方法时,所划分的页面大小由什么决定?
    • 硬件层面(CPU架构)决定了可以支持哪些页面大小,而操作系统则在CPU架构支持的页面大小中选定一种页面大小。页面大小一旦选定,则所有的页面都一样大。
  6. 虚拟存储技术是补充内存逻辑空间的技术。内存逻辑空间大小就表现为虚拟地址的位数
  7. 虚拟内存的特征:多次性(进程数据分多次调入内存)、对换性(暂时用不到的数据可以对换到外存)、离散性(进程数据离散存储)、虚拟性
    • 其中,多次性和对换性需要基于非连续分配而实现;虚拟性需要基于多次性和对换性而实现
  8. 页面引用串:即该程序一段时间内需要调用的页号序列,又可称为访问串
  9. 导致LRU算法实现起来耗费高的原因是需要对所有的页进行排序
  10. 抖动和Belady异常:
    • 抖动:当单个进程分配到的内存块少于某个数目时(此数目大概是工作集大小),该进程的页面会频繁地进行换入换出,导致缺页率急剧升高。本质上就是因为进程被分配的页数不够。【所有页面置换策略都有可能引起抖动】
    • Belady异常:给进程分配的页框增加,但缺页率不降反增。【只有FIFO策略会引起Belady异常】
  11. 磁盘由对换区和文件区组成,其中对换区用于辅助实现虚拟内存
  12. 在内存非常满的情况下,CPU访问内存则很有可能发生缺页,就会频繁的在内存与对换区之间执行换入换出,此时CPU的利用率就会很低(会长时间处于等待页面置换的状态)。此时通过增加内存条来增加物理空间容量可以从根本解决问题
  13. 可变分配搭配局部置换的意思:刚开始为每个进程分配一定数量的物理块。发生缺页时只允许从自己的物理块中选出一个换出外存。若进程在运行中频繁缺页,系统会为该进程多分配几个物理块,直至该进程缺页率趋于适量值;若进程在运行中缺页率非常低,则可适当减少分配给该进程的物理块。
  14. 数据结构中说"链表是不连续存储的",其中这个"不连续"指的是虚拟地址不连续;"数组是顺序存储的"也只是虚拟地址的连续(因为如果同一个数组的元素个数很多,超过了一个页面,那么不同页面的元素,其物理地址就可能不同,因为虽然一个页面中的元素肯定是顺序存储的,但是不同页面在物理地址中不能保证仍是连续的)
  15. 查慢表不可能不命中,但有可能缺页

第五章 I/O管理

  1. 缓冲区在主存中;高速缓存(Cache)在CPU中;Spooling技术中的输入/出井在外存中
  2. 所有单机资源利用率的提升的基本前提都是要有"并发性"。如果没有多个进程的并发,那独占设备和共享设备也没什么区别、内存里只放一个进程的数据也无所谓、交换技术也没有存在的意义。下面是几个提高单机资源利用率的例子
    • Spooling技术:独占设备->共享设备,提高设备利用率
    • 虚拟技术:
      • 虚拟内存:提高内存利用率
      • 虚拟设备:提高设备利用率
    • 交换技术:提高内存、CPU利用率
  3. Spooling是以空间换时间的技术;虚拟存储技术、覆盖与交换技术是以时间换空间的技术;通道技术是以金钱换时间的技术(是搞一个单独的硬件)
  4. "在一个磁盘上设置多个分区"并不能改善磁盘设备的I/O性能。这是因为操作系统是安装在C盘的,而如果将磁盘分区后,按照惯例,将应用程序安装在D盘,实际上是与操作系统所在的C盘相隔较远。而操作系统内的程序肯定是经常被访问到的,因此磁头大部分时间都在C盘所在的磁盘内侧柱面移动,而若此时有频繁访问的应用程序在远离C盘的D盘中存在,就会使得磁头移动的距离过长,从而降低磁盘设备的I/O性能。
  5. 在系统内存中设置磁盘缓冲区的主要目的是减少磁盘I/O次数。
    假设一个文件有10个物理块,若没有设置磁盘缓冲区,则每次I/O只能将1块内容读入内存,读整个文件总共需要10次I/O;若设置了磁盘缓冲区,缓冲区可存储10个物理块的内容,则可通过1次I/O就将文件对应的10个物理块全部读入缓冲区,之后便无需再启动磁盘I/O。
  6. 进程在执行驱动程序时可能进入阻塞态(即阻塞I/O)
  7. 初始化设备、读写设备的操作都是由驱动程序控制完成的
  8. 光盘、U盘、磁盘都是既可以随机访问,又可以顺序访问的。其中,光盘的原理和磁盘很类似,都是盘面上会有一圈圈存储介质,光盘有个激头,其作用和磁盘的磁头类似,既可以定位一圈,做到随机访问,又可以在一圈上顺序访问。而U盘实际上是ROM,是基于闪存技术,即EEPROM的集成+一个控制单元
  9. 磁盘的延迟时间和传送时间都和磁盘转速有关。前者一般取平均值转半圈的时间,后者根据要读取的扇区和转速算。
    磁盘的启动时间和磁盘驱动器的物理、电气特性有关。
    找道/寻道时间和磁盘调度算法、磁臂移动速度有关。
    磁盘的处理时间指读取出一个扇区后,磁头需要休息一段时间(这是因为一块数据会把磁盘缓冲区充满)。
    磁盘读取数据的上述时间中,影响最大的是
  10. A cluster(簇)is a group of sectors(block) (扇区(块))on a hard disk drive that is addressed as one logical unit by the operating system.
    即物理块=扇区,逻辑块=簇。
    扇区是物理上限制的读/写一次的基本单位;簇是操作系统限制的存储空间分配基本单位。即操作系统给文件分配空间是以簇为单位的
  11. 旋转延迟的大小取决于磁盘空闲空间的分配程序,旋转延迟的大小与文件物理结构有关。这两个本质都一个意思,就是数据在磁盘上的扇区分配不一样,会导致每次读的旋转延迟时间不一样
  12. SSD(固态硬盘)的随机存取速度很快,传统机械硬盘因为要寻道和找扇区,所以随机存取速度慢,但传统机械硬盘的连续存取很快。因此SSD的优势主要体现在随机存取的速度上。
  13. 磁盘的初始化过程:
    • 刚出厂时,磁盘只是被划分成一个个磁道,并未被划分成扇区
    • 低级格式化(物理格式化)【扇区相关】:将磁盘的各个磁道划分为扇区,并确定管理扇区所需要的各种数据结构,包括扇区校验码(如奇偶校验、CRC循环冗余校验码等,校验码用于校验扇区中的数据是否发生错误)
    • 分区:将磁盘进行分区,每个分区由若干柱面组成(即分为我们熟知的C盘、D盘、E盘)
    • 逻辑格式化【文件系统相关】:即创建文件系统,包括创建文件系统的根目录、对保存空闲磁盘块信息的数据结构进行初始化(如位示图、空闲分区表)
相关推荐
袁庭新7 小时前
CentOS7通过yum无法安装软件问题解决方案
centos·操作系统
别说我什么都不会1 天前
鸿蒙轻内核M核源码分析系列十二 事件Event
操作系统·harmonyos
qq_437896432 天前
动态内存分配算法对比:最先适应、最优适应、最坏适应与邻近适应
操作系统
别说我什么都不会2 天前
鸿蒙轻内核M核源码分析系列十一 (2)信号量Semaphore
操作系统·harmonyos
别说我什么都不会2 天前
鸿蒙轻内核M核源码分析系列十 软件定时器Swtmr
操作系统·harmonyos
别说我什么都不会3 天前
鸿蒙轻内核M核源码分析系列九 互斥锁Mutex
操作系统·harmonyos
别说我什么都不会3 天前
鸿蒙轻内核M核源码分析系列七 动态内存Dynamic Memory
操作系统·harmonyos
别说我什么都不会4 天前
鸿蒙轻内核M核源码分析系列六 任务及任务调度(3)任务调度模块
操作系统·harmonyos
徐徐同学4 天前
【操作系统】操作系统概述
操作系统·计算机系统
守望时空335 天前
Linux内核升级指南
linux·操作系统