操作系统四大功能

摘要: 进程调度、内存管理、I/O设备管理、文件系统是操作系统的四大功能。本文针对这四个方面,重点介绍了进程调度、虚拟内存、I/O控制方式与I/O软件层次结构和基于i节点的文件系统的思想和原理;并对针对Linux操作系统,对Linux操作系统发展的现状和主要领域进行了简要介绍。

一、进程的调度机制的原理和思想

操作系统的程序设计方式分为顺序和并发两种,顺序程序设计是指程序指令的执行是严格按序的,只有一个程序指令执行完成才能执行下一个程序指令;而并发程序设计可以把一个具体的问题分解成若干个可执行的程序模块,让多个程序竞争CPU和其他资源,可以带来明显的效率提升。

进程是操作系统进行资源分配和调度的一个独立单位,是程序执行的全过程。进程在操作系统中有三种状态,分别是运行态、就绪态和等待态。运行态指进程占有处理器运行;就绪态指进程具备运行条件等待处理器运行;等待态指进程由于等待资源、输入输出、信号等而不具备运行条件。运行态可以转换为就绪态和等待态,等待态可以转换为就绪态,就绪态可以转换为运行态。进程控制块是操作系统用于记录和刻画进程状态和环境信息的数据结构,操作系统借助进程控制块来管理进程。

进程是系统资源分配和保护的独立单位,不需要频繁切换;线程是系统调度和分派的基本单位,会被频繁调度和切换。线程的出现可以减少进程并发执行所付出的时空开销,提高并发性能。

进程之间的关系包括同步、异步、互斥三种。不同进程常常存在需要共享的资源,为避免不同进程同时抢占资源造成死锁,需要进程间通信机制进行协调。如何实现两个进程之间的消息传递和协调两个进程之间的互斥和同步情况是进程通信需要考虑的主要问题。

常见的IPC机制有忙等待模型、睡眠和唤醒模型、消息传递模型三种。忙等待模型在进程进入临界区时进行严格的检查,只能解决互斥问题;睡眠和唤醒模型通过改变进程的状态来实现互斥和同步,能够同时解决互斥与同步;消息传递模型是一种复杂的IPC机制,以公共的通信机制来控制进程状态变化,实现同步和互斥。

忙等待模型重要思想是设定一个变量,表示临界区状态,互斥进程检查变量判断是否能进入临界区。常用的方法有:关中断、锁变量、严格轮转等。关中断是指在临界区中防止发生进程调度,保证临界区操作的完整性,即在一个进程使用临界区资源时关闭系统中断。锁变量是指设定监控变量,通过监控变量的值判断是否进入临界区。严格轮转法通过turn变量控制哪一个进程进入临界区。

睡眠唤醒模型的主要思想是操作系统调用原语,改变进程状态。主要方法有简单的睡眠唤醒方法、信号量机制和管程方法。简单的睡眠唤醒方法使用Sleep()原语将进程变为阻塞态,Wakeup(ID)原语唤醒ID标识的进程。信号量机制使用Up原语和Down原语,并引入信号量表示积累的睡眠或唤醒操作,从根本上解决潜在竞争条件问题。管程方法的核心思想是实现一种包含过程、变量、数据结构的独立模块,由编译器支持实现进程间互斥。

消息传递模型中进程通过Send和Receive原语来实现同步与互斥,并能传送大容量信息。

常见的进程调度算法有优先数调度算法、短作业优先、高响应比优先、先来先服务、时间片轮转、多级队列算法等。优先数调度是为每个进程赋予一个优先级,按优先级顺序进行调度。短作业优先是优先调度运行时间较短的进程。高响应比优先是为进程计算响应比,赋予一种动态优先权再进行调度。先来先服务是优先调度到达CPU的进程。时间片轮转是每个进程依次分别运行相同的时间段,只要时间结束,不论进程是否完成都要让出CPU。多级队列优先是引入多个就绪队列,通过各队咧的区别对待,达到综合的调度目标。

二、虚拟内存机制的原理和思想

由于主存容量限制给操作系统内存管理带来诸多不便。虚拟存储机制是一种地址空间扩展技术,需要建立两个地址空间,把进程全部信息放在辅存中,执行时将其中一部分装入主存,之后根据需要随用随调入;如果主存中空间不够,就将主存中暂时不用的信息调到辅存中。

虚拟存储的动态内存管理方式有分页和分段两种。分页技术采用固定大小的页来描述逻辑地址空间,用相同大小的页框来描述物理内存空间,由操作系统实现从逻辑页到物理页框的映射,同时负责对所有页的管理和进程运行的控制。页表是一种特殊的数据结构,用于记录页到页框的映射关系,为提高寻址效率可使用多级页表。页式虚拟存储管理的基本思想是把进程全部页面装入虚拟存储器,执行时把部分页面装入实际内存,然后根据执行行为,动态调入不再内存的页,同时将暂时不需要页调出。分段技术把程序的地址空间划分为若干个段,程序加载时,分配其所需的所有段,段与段之间按照逻辑关系分割,不需要像页一样连续。段式虚拟存储管理的基本思想是把进程的所有分段都放在辅存中,进程运行时先把当前需要的一段或几段装入内存,在执行过程中再根据需要动态装入需要的段。段页式存储管理结合了分段和分页的优点,先把程序按照逻辑关系分成若干段,再将每个段分成若干页,其中每个进程都有一张段表,每个段都有一张页表。

三、I/O控制方式与I/O软件层次结构的原理和思想

I/O设备控制方式主要有程序控制、中断控制、DMA控制、I/O通道机制。程序控制I/O是CPU直接与I/O设备进行通信,负责将用户数据传送到I/O端口,用户程序通过系统调用来使用I/O设备,CPU需要不断查询I/O设备的端口状态。中断控制I/O需要CPU设定I/O设备的初始值,然后不再忙等待,运行其他进程,阻塞当前进程;当I/O设备工作完成后向CPU发出中断,I/O中断处理程序负责传输剩余的数据。DMA控制I/O使用独立的DMA控制器代替CPU与I/O设备通信,CPU继续执行其他工作,DMA在数据传输结束后向CPU发送中断。I/O通道机制增加了I/O处理机,专门负责I/O设备的控制和操作,I/O指令不再由CPU执行,而是放在主存中由I/O处理器执行,与CPU并行工作。

I/O软件层次结构由低到高分别是中断处理程序、设备驱动程序、独立于设备的I/O软件、用户空间的I/O软件。I/O中断处理程序位于操作系统底层,与硬件密切相关,进程向I/O发送请求时,通常被挂起,直到数据传输完成后并产生I/O中断时,操作系统接管CPU后转向中断处理程序。设备驱动程序是I/O进程与设备控制器之间的通信程序,从独立于设备的软件中接收并执行I/O请求,把用户提交的逻辑I/O转换为物理I/O,并监督设备是否正确执行。独立于设备的I/O软件执行适用于所有设备的常用I/O功能,并向用户层提供一致性接口;主要功能有设备命名、设备保护、提供与设备无关的数据单位、缓冲技术、设备分配和状态跟踪、错误处理和报告。用户空间的I/O软件是一部分不在操作系统中,与应用程序链接在一起的库函数,甚至完全由运行于用户态的程序组成。

四、基于i节点的文件系统实现机制的原理和思想

文件的空间分配方式有连续分配、链接表分配、索引链接表、I-Node方式。I-Node方式为每个文件建立类似于页表的I-Node表,把分配给该文件的盘块号都记录在索引块中。所以打开文件时,只需要把文件的盘块号调入内存,而不需要将整个FAT调入内存,这样提高了访问性能、可支持大容量文件。

五、Linux发展现状和发展趋势

在服务器领域,Linux服务器在请求服务器操作系统市场占据了较大的份额。Linux在使用和维护成本、硬件支持、灵活性、安全性、稳定性、可靠性和性价比等方面具有明显优势。Linux服务器广泛应用于金融、交通、电信等关键领域。

在桌面操作系统领域,Linux发展还有所不足。主要不足表现在易用性差、软硬件兼容性差等方面。现阶段Ubuntu、Cent OS等Linux操作系统已经逐渐在普通用户中扩大影响力,但和Windows还有较大差距。在国家的推动下,拥有许多国内厂商和科研院所开始推出自主研发的Linux操作系统,在信息安全方面有较大优势。

在移动嵌入式操作系统领域,Linux广泛应用于手机、平板电脑、智能家居等设备。基于Linux的Android操作系统是世界上最流行的智能手机操作系统。

在云计算和大数据领域,凭借Linux系统的低成本和易拓展性,Linux成为云服务器的主要操作系统。早在2007年,IBM就宣布了云计算计划,随后Google、Amazon等互联网公司也陆续推出云计算平台。现在国内互联网公司也建立了阿里云、腾讯云等平台为企业或个人提供云计算服务。随着互联网技术和发展,Linux操作系统会发挥出更大的作用。

作者: 公子小白

SOS团团员,非外星人、未来人、超能力者。。。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注