【系统架构】操做系统

操做系统

计算机系统由硬件和软件组成的,而操做系统是计算机中最基本的系统软件,它既管理计算机系统的软、硬件资源,又控制程序的执行。程序员

虽然系统具体实现方式随着时间在不断变化,可是系统内在的概念却没有改变。为了提高程序员或工程师自身能力,向架构师方向迈进,颇有必要加深对操做系统的理解。web

操做系统(Operating System, OS) 是计算机系统中的核心系统软件,负责管理和控制计算机系统中的硬件和软件资源,合理地组织计算机工做流程和有效地利用资源,在计算机与用户之间起接口做用。网络

按照操做系统功能划分,操做系统疾病类型有批处理操做系统、分时操做系统、实时操做系统、网络操做系统、分布式操做系统、嵌入式操做系统、微操做系统。数据结构

操做系统中主要功能是包括:进程管理、存储管理、设备管理、文件管理和做业管理的工做。架构

1 进程管理

进程(Process)是系统中正在运行的程序实例。并发

进程一般会有三种状态:分布式

  1. 建立,从磁盘或二级存储设备上,加载到主存
  2. 阻塞, 若是进程在等待机器调度或者资源,那么进程切换到阻塞状态
  3. 运行状态,进程在处理器中运行
  4. 就绪,进程执行结束

这里写图片描述

2 存储管理

任何程序和数据以及各类控制用的数据结构都必须占有必定的存储空间。svg

存储器由内存和外存组成,内存是有系统实际提供的存储单元组成的一个连续地址空间,处理器能够直接存取。外存(辅存)指软盘、硬盘、光盘等外部存储部件。性能

存储管理主要是指对内存的管理,负责对内存的分配和回收、内存的保护和内存的扩充。存储管理的目的是尽可能提升内存的使用效率。操作系统

存储管理的机制经历了屡次变迁,由之前的单一连续区管理到分区存储管理再到分区存储管理再发展为段页是管理。前两种技术已经被淘汰了。

段页式存储

  1. 页式存储

    分页的基本思想是把程序的逻辑空间和内存的物理空间按照相同大小划分红若干页面,并以页面为单位进行分配。在页式存储管理中,系统中虚拟地址是一个有序对(页号、位移)。系统为每个进程创建一个页表,其中内容包括进程的逻辑页号与物理页号的对应关系。
    这里写图片描述

  2. 段式存储
    段式存储管理与页式存储管理类似。分段的基本思想是把用户做业按逻辑意义上有完整意义的段来划分,并以段为单位做为内外存交换的空间尺度。

    一个做业由若干个具备逻辑意义的段(如主程序、子程序、数据段等)组成。分段系统中,容许程序占据内存中许多分离的分区。每一个分区存储一个程序分段。

  3. 段页式存储

    段页式存储是段式存储和页式存储的结合,根据程序模块分段,段内再进行分页,内存被划成定长的页。段页式系统中的虚拟地址形式是(段号、页号、页内偏移)。
    这里写图片描述

段页式存储管理采用段式分配、页式使用的方法,便于动态连接和存储的动态分配,有利于提供内存的空间利用率。

段式虚拟管理仍是以段为单位分配内存空间,整段的调出、装入,有时还要移动,这些都增长了系统的开销。若是按段页式存储管理的方式,把每一段再分红若干页面,那么,每一段没必要占用连续的存储空间;甚至当内存块不够时,可只将一段中的部分页面装入内存,这种管理方式称为“段页式虚拟存储管理”。

3 设备管理

在计算机系统中,除了处理器和内存外,其余的大部分硬件设备称为外部设备。它包括输入/输出设备,辅存设备及终端设备等。

主要须要掌握两个方面:

  1. 数据传输控制方式

    设备管理主要负责管理外围设备与内存或CPU之间的数据传送。主要发方式有以下几种

    • 程序控制方式。处理器启动数据传输,而后等设备完成

    • 中断方式
      程序控制方式不能实现并发。中断方式的数据传输过程是这样的,进
      程启动数据传输(如读)后,该进程放弃处理器,当数据传输完成,设备控制器产生中断请
      求,中断处理程序对数据传输工做处理以后,让相应进程成为就绪状态。之后,该进程就可
      以获得所须要的数据。

    • 直接存储访问(Direct Memory Access,DMA)
      指外部设备和内存之间开辟直接的数据交换通路。除了控制状态寄存器和数据缓冲寄存器外,DMA 控制器中还包括传输字节计数器、内存地址寄存器等。DMA 方式采用窃取(或挪用)处理器的工做周期和控制总线而实现辅助存储器和内存之间的数据交换。有的 DMA 方式也采用总线浮起方式传输大批量数据。

    • 通道方式
      通道又称为输入/输出处理器(Input/Output Processor,IOP),能够独
      立完成系统交付的输入/输出任务,经过执行自身的输入/输出专用程序(称通道程序)进行
      内存和外设之间的数据传输。主要有 3 种通道:字节多路通道、选择通道和成组多路通道。

  2. 虚拟设备与SPOOLING技术

    采用假脱机技术,能够将低速的独占设备改形成一种可共享的设备,并且一台物理设备能够对应若干台虚拟的同类设备。假脱机(Simultaneous Peripheral Operation On Line,SPOOLING)的意思是外部设备同时联机操做,又称为假脱机输入/输出操做,采用一组程序或进程模拟一台输入/输出处理器。

4 文件管理

计算机系统的重要做用之一是能快速处理大量信息,所以数据的组织、存取和保护成为一个极重要的内容。文件系统是操做系统中组织、存取和保护数据的一个重要部分。

  1. 文件的逻辑结构

    记录文件有顺序文件、索引顺序文件、索引文件和直接文件。
    (1)顺序文件。大多数文件是顺序文件。顺序文件的记录定长,记录中的数据项的类型长度与次序固定,通常还有一个能够惟一标识记录的数据项,称为键(key),记录是按键值的约定次序组织的。顺序文件经常使用于批处理应用,对于查询或更新某个记录的处理性能不太好。
    (2)索引顺序文件。索引顺序文件是基于键的约定次序组织的,并且维护键的索引和溢出区域。键的索引也能够是多级索引。索引顺序文件既适用于交互方式应用,也适用于批
    处理方式应用。
    (3)索引文件。索引文件是基于记录的一个键数据项组织的。许多应用需按照别的数据项访问文件,为此,常采用索引文件方法,即对主文件中的记录按须要的数据项(一个或几个)建索引,索引文件自己是顺序文件组织。
    (4)直接文件。直接文件又称哈希(Hash)文件。记录以它们在直接访问存储设备上
    的物理地址直接(随机地)访问。直接文件经常使用 于须要高速访问文件并且每次仅访问一条
    记录的应用中。

5 做业管理

做业是系统为完成一个用户的计算任务(或一次事务处理)所作的工做总和。例如,对于用户编制的源程序,需通过对源程序的编译、链接编辑或链接装入及运行产生计算结果。这其中的每个步骤,常称为做业步,做业步的顺序执行即完成了一个做业。

这里写图片描述