操作系统
计算机系统由硬件和软件组成的,而操作系统是计算机中最基本的系统软件,它既管理计算机系统的软、硬件资源,又控制程序的执行。
虽然系统具体实现方式随着时间在不断变化,但是系统内在的概念却没有改变。为了提升程序员或工程师自身能力,向架构师方向迈进,很有必要加深对操作系统的理解。
操作系统(Operating System, OS)
是计算机系统中的核心系统软件,负责管理和控制计算机系统中的硬件和软件资源,合理地组织计算机工作流程和有效地利用资源,在计算机与用户之间起接口作用。
按照操作系统功能划分,操作系统疾病类型有批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统、嵌入式操作系统、微操作系统。
操作系统中主要功能是包括:进程管理、存储管理、设备管理、文件管理和作业管理的工作。
1 进程管理
进程(Process)是系统中正在运行的程序实例。
进程通常会有三种状态:
- 创建,从磁盘或二级存储设备上,加载到主存
- 阻塞, 如果进程在等待机器调度或者资源,那么进程切换到阻塞状态
- 运行状态,进程在处理器中运行
- 就绪,进程执行结束
2 存储管理
任何程序和数据以及各种控制用的数据结构都必须占有一定的存储空间。
存储器由内存和外存组成,内存是有系统实际提供的存储单元组成的一个连续地址空间,处理器可以直接存取。外存(辅存)指软盘、硬盘、光盘等外部存储部件。
存储管理主要是指对内存的管理,负责对内存的分配和回收、内存的保护和内存的扩充。存储管理的目的是尽量提高内存的使用效率。
存储管理的机制经历了多次变迁,由以前的单一连续区管理到分区存储管理再到分区存储管理再发展为段页是管理。前两种技术已经被淘汰了。
段页式存储
页式存储
分页的基本思想是把程序的逻辑空间和内存的物理空间按照相同大小划分成若干页面,并以页面为单位进行分配。在页式存储管理中,系统中虚拟地址是一个有序对(页号、位移)。系统为每一个进程建立一个页表,其中内容包括进程的逻辑页号与物理页号的对应关系。
段式存储
段式存储管理与页式存储管理相似。分段的基本思想是把用户作业按逻辑意义上有完整意义的段来划分,并以段为单位作为内外存交换的空间尺度。一个作业由若干个具有逻辑意义的段(如主程序、子程序、数据段等)组成。分段系统中,允许程序占据内存中许多分离的分区。每个分区存储一个程序分段。
段页式存储
段页式存储是段式存储和页式存储的结合,根据程序模块分段,段内再进行分页,内存被划成定长的页。段页式系统中的虚拟地址形式是(段号、页号、页内偏移)。
段页式存储管理采用段式分配、页式使用的方法,便于动态链接和存储的动态分配,有利于提供内存的空间利用率。
段式虚拟管理还是以段为单位分配内存空间,整段的调出、装入,有时还要移动,这些都增加了系统的开销。如果按段页式存储管理的方式,把每一段再分成若干页面,那么,每一段不必占用连续的存储空间;甚至当内存块不够时,可只将一段中的部分页面装入内存,这种管理方式称为“段页式虚拟存储管理”。
3 设备管理
在计算机系统中,除了处理器和内存外,其他的大部分硬件设备称为外部设备。它包括输入/输出设备,辅存设备及终端设备等。
主要需要掌握两个方面:
数据传输控制方式
设备管理主要负责管理外围设备与内存或CPU之间的数据传送。主要发方式有如下几种
程序控制方式。处理器启动数据传输,然后等设备完成
中断方式
程序控制方式不能实现并发。中断方式的数据传输过程是这样的,进
程启动数据传输(如读)后,该进程放弃处理器,当数据传输完成,设备控制器产生中断请
求,中断处理程序对数据传输工作处理之后,让相应进程成为就绪状态。以后,该进程就可
以得到所需要的数据。直接存储访问(Direct Memory Access,DMA)
指外部设备和内存之间开辟直接的数据交换通路。除了控制状态寄存器和数据缓冲寄存器外,DMA 控制器中还包括传输字节计数器、内存地址寄存器等。DMA 方式采用窃取(或挪用)处理器的工作周期和控制总线而实现辅助存储器和内存之间的数据交换。有的 DMA 方式也采用总线浮起方式传输大批量数据。通道方式
通道又称为输入/输出处理器(Input/Output Processor,IOP),可以独
立完成系统交付的输入/输出任务,通过执行自身的输入/输出专用程序(称通道程序)进行
内存和外设之间的数据传输。主要有 3 种通道:字节多路通道、选择通道和成组多路通道。
虚拟设备与SPOOLING技术
采用假脱机技术,可以将低速的独占设备改造成一种可共享的设备,而且一台物理设备可以对应若干台虚拟的同类设备。假脱机(Simultaneous Peripheral Operation On Line,SPOOLING)的意思是外部设备同时联机操作,又称为假脱机输入/输出操作,采用一组程序或进程模拟一台输入/输出处理器。
4 文件管理
计算机系统的重要作用之一是能快速处理大量信息,因此数据的组织、存取和保护成为一个极重要的内容。文件系统是操作系统中组织、存取和保护数据的一个重要部分。
文件的逻辑结构
记录文件有顺序文件、索引顺序文件、索引文件和直接文件。
(1)顺序文件。大多数文件是顺序文件。顺序文件的记录定长,记录中的数据项的类型长度与次序固定,一般还有一个可以唯一标识记录的数据项,称为键(key),记录是按键值的约定次序组织的。顺序文件常用于批处理应用,对于查询或更新某个记录的处理性能不太好。
(2)索引顺序文件。索引顺序文件是基于键的约定次序组织的,而且维护键的索引和溢出区域。键的索引也可以是多级索引。索引顺序文件既适用于交互方式应用,也适用于批
处理方式应用。
(3)索引文件。索引文件是基于记录的一个键数据项组织的。许多应用需按照别的数据项访问文件,为此,常采用索引文件方法,即对主文件中的记录按需要的数据项(一个或几个)建索引,索引文件本身是顺序文件组织。
(4)直接文件。直接文件又称哈希(Hash)文件。记录以它们在直接访问存储设备上
的物理地址直接(随机地)访问。直接文件常用 于需要高速访问文件而且每次仅访问一条
记录的应用中。
5 作业管理
作业是系统为完成一个用户的计算任务(或一次事务处理)所做的工作总和。例如,对于用户编制的源程序,需经过对源程序的编译、连接编辑或连接装入及运行产生计算结果。这其中的每一个步骤,常称为作业步,作业步的顺序执行即完成了一个作业。