【系统架构设计】操作系统(二)

操作系统(二)

操作系统的类型与结构

操作系统基本原理

进程管理

存储管理

内存 大小由系统硬件 决定,存储容量 受到实际存储单元的限制 。虚拟存储器(简称"虚存 ")不考虑实际内存的大小和数据存取的实际地址,只考虑相互有关的数据之间的相对位置,其容量由计算机地址的位数决定

存储管理主要是 指对内存储器 的管理,负责对内存的分配和回收、内存的保护和内存的扩充。存储管理的目的是 尽量提高内存的使用效率。存储管理的机制经历了多次变迁,由以前的单一连续区管理到分区存储管理再发展到段页式管理。目前前两种技术已逐步淘汰。

  1. 页式存储管理

分页的基本思想是 把程序的逻辑空间和内存的物理空间按照同样的大小划分成若干页面,并以页面为单位进行分配。在页式存储管理种,系统中虚地址是一个有序对(页号、位移)。系统为每一个进程建立一个页表,其内容包括进程的逻辑页号与物理页号的对应关系、状态等。

页式系统的动态地址转换过程 :当进程运行时,其页表的首地址已在系统动态地址转换机构的基本地址寄存器中。执行的指令访问虚拟地址(p,d)时,首先根据页号p查页表,由状态可知,这个页是否已经调入内存。若已经调入内存,则得到该页的内存地址p' ,然后与页内相对位移d组合,得到物理地址r;如果没有调入内存,则产生缺页中断,以装入所需的页。整个转换过程如图2-5所示。

  1. 段式存储管理

段式存储管理与页式存储管理相似,分段的基本思想是把用户作业按逻辑意义上有完整意义的段来划分,并以段为单位作为内外存交换的空间尺度。段式存储管理中虚地址时一个有序对(段号、位移)

分段系统的动态地址转换如下 :进程执行时,其段表的首地址已在基本地址寄存器中,执行的指令访问虚存(s,d)时,首先根据段号s查段表,若段已经调入内存,则得到该段的内存起始地址,然后与段内相对地址(段内偏移量)相加得到实地址;如果该段尚未调入内存,则产生"缺段中断",以装入所需的段。

  1. 段页式存储管理

综合了段式组织和页式组织的特点,根据程序模块分段,段内再分页,内存被分划成定长的页。段页式系统中虚地址形式是(段号、页号、页内偏移) ,如图2-6所示。系统为每个进程建立一个段表,为每个段建立一个页表。段页式管理采用段式分配、页式使用 的方式,便于动态连接和存储的动态分配这种存储管理能提高内存空间的利用率,但增加了设置表格(段表、页表)和查表等开销 ,一般只在大型计算机系统中使用。

段页式存储管理地址转换过程: 为每一个装入内存的作业建立一张段表,还要为每一段建立页表。段表中指出该段的页表存放位置和长度,页表中应指出该段的各页在磁盘上的位置以及页是否在内存中,如果在内存中则填上占用的内存块号。作业执行时按段号查段表,找到相应的页表再根据页号查页表,由标志位判断该页是否已在内存中,若是则进行地址转换;否则进行页面调度。

页面调度: 当内存中无空闲块时,为了装入一个页面而必须按某种算法从已在内存的页中选择一页,将它暂时调出内存,让出内存空间以存放所需装入的页面。

设备管理

数据传输控制方式

设备管理的主要任务之一 是控制设备和内存或CPU之间的数据传送。选择和衡量控制方式的原则如下:

  • 数据传送速度足够高,能够满足用户的需要但又不丢失数据
  • 系统开销小,所需的处理控制程序少
  • 能充分发挥硬件资源的能力,使得I/O设备尽量处于使用状态中,而CPU等待时间少

外围设备和内存之间常用的数据传送控制方式主要有以下几种:

  • 程序控制方式。处理器启动数据传输,然后等设备完成。但不能实现并发。
  • 中断方式。进程启动数据传输(如读)后,该进程放弃处理器,当输出传输完成后,设备控制器产生中断请求,中断处理程序对数据传输工作处理之后,让相应进程成为就绪状态。以后,该进程就可以得到所需要的数据。
  • 直接存储访问(Direct Memory Access ,DMA)方式。指外部设备和内存之间开辟直接的数据交换通道。DMA方式采用窃取(或挪用)处理器的工作周期和控制总线而实现辅助存储器和内存之间的数据交换。有点DMA方式也采用总线浮起方式传输大批量数据。
  • 通道方式。通道又称为输入/输出处理器(Input/Output Procesor ,IOP),可以独立完成系统交付的输入/输出任务,通过执行自身的输入/输出专用程序(称通道程序)进行内存和外设之间的数据传输。主要有3种:字节多路通道、选择通道、成组多路通道。

虚设备与SPOOLING 技术

采用假脱机技术,可以将低速的独占设备改造成一种可共享的设备,而且一台物理设备可以对应若干台虚拟的同类设备 。假脱机(Simultaneous Peripheral Operation On Line ,SPOOLING)即外部设备同时联机操作 ,又称为假脱机输入/输出操作,采用一组程序或进程模拟一台输入/输出处理器。SPOOLING 系统必须有高速、大容量并且可随机存取的外存(例如,磁盘或磁鼓)支持。

SPOOLING 系统组成如图2-8所示 ,利用专门的外围控制机将低速I/O设备上的数据传送到高速设备上,或者相反。但是当引入多道程序后,完全可以利用其中一道程序来模拟脱机输入时的外围控制机的功能,把低速的I/O设备上的数据传送到高速磁盘上;再利用另一道程序来模拟脱机输出时外围控制机的功能,把高速磁盘上的数据传送到低速I/O设备上。这样便可以在主机的控制下实现脱机输入、输出的功能。此时外围的操作与CPU对数据的处理可以同时进行。

ps:共享打印机就是使用假脱机技术将独占式的打印机虚拟成为共享打印机。对每个用户而言,系统并非即时执行真实打印操作,而只是即时将数据输出到缓冲区,让用户感觉系统已为他打印;真正的打印操作,是在打印机空闲且该打印任务在等待队列中已排到队首时进行的。

文件管理

作业管理

相关推荐
IT 青年3 小时前
操作系统(21)文件保护
操作系统
碳学长5 小时前
2025系统架构师(一考就过):案例题之一:嵌入式架构、大数据架构、ISA
大数据·架构·系统架构
肖老师+13 小时前
期末复习.操作系统课后习题答案
操作系统
p@nd@1 天前
Oracle筑基篇-调度算法-LRU的引入
数据库·oracle·操作系统·lru
肖老师+2 天前
“从零到一:揭秘操作系统的奇妙世界”【操作系统中断和异常】
操作系统
七灵微2 天前
进程与线程以及如何查看
linux·系统架构
oioihoii2 天前
桌面图形界面生成原理:从流水灯到电脑屏幕
系统架构
颯沓如流星3 天前
软件架构设计方法之The Clean Architecture 整洁架构
架构·系统架构
GoGeekBaird3 天前
69天探索操作系统-第20天:页替换算法 - 深度剖析
后端·操作系统
柔弱女子爱java3 天前
spring专题笔记(五):依赖注入--p命名空间注入、c命名空间注入、util命名空间
java·笔记·后端·spring·架构·系统架构