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

第三章 内存管理

  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盘)
    • 逻辑格式化【文件系统相关】:即创建文件系统,包括创建文件系统的根目录、对保存空闲磁盘块信息的数据结构进行初始化(如位示图、空闲分区表)
相关推荐
WZF-Sang1 天前
Linux—进程学习-01
linux·服务器·数据库·学习·操作系统·vim·进程
Goboy2 天前
0帧起步:3分钟打造个人博客,让技术成长与职业发展齐头并进
程序员·开源·操作系统
结衣结衣.2 天前
【Linux】Linux管道揭秘:匿名管道如何连接进程世界
linux·运维·c语言·数据库·操作系统
OpenAnolis小助手2 天前
龙蜥副理事长张东:加速推进 AI+OS 深度融合,打造最 AI 的服务器操作系统
ai·开源·操作系统·龙蜥社区·服务器操作系统·anolis os
小蜗的房子3 天前
SQL Server 2022安装要求(硬件、软件、操作系统等)
运维·windows·sql·学习·microsoft·sqlserver·操作系统
邂逅岁月5 天前
【多线程奇妙屋】 Java 的 Thread类必会小技巧,教你如何用多种方式快速创建线程,学并发编程必备(实践篇)
java·开发语言·操作系统·线程·进程·并发编程·javaee
CXDNW6 天前
【系统面试篇】进程和线程类(1)(笔记)——区别、通讯方式、同步、互斥、死锁
笔记·操作系统·线程·进程·互斥·死锁
Anemone_6 天前
MIT 6.S081 Lab3
操作系统
掘了7 天前
持久化内存 | Persistent Memory
c++·架构·操作系统
结衣结衣.8 天前
【Linux】掌握库的艺术:我的动静态库封装之旅
linux·运维·服务器·c语言·操作系统·