学习操作系统原理,你学习之后至少要掌握以下的内容,不然和没学就差不多了:
- 掌握操作系统的基本概念、基本结构及运行机制。
- 深入理解进程线程模型,深入理解进行同步机制,深入理解理解死锁概念及解决方案。
- 深入理解文件系统的设计、实现,以及提高文件系统性能的各种方法。
- 了解I/O设备管理的基本概念、I/O软件组成,掌握典型的I/O设备管理技术。
- 了解操作系统的演化过程、新的设计思想和实现技术。
在操作系统概述部分所要掌握的有:
- 操作系统基本概念、特征、分类。
- 操作系统的主要功能。
- 操作系统发展演化过程,典型操作系统。
- 操作系统结构设计,典型的操作系统结构。
下在作者对以下问题一一作出解答。其中的斜体字部分为作者所添加的注释。本文部分内容出自《全国计算机等级考试四级教程——操作系统原理(2015年版)》。本系列博文的目标在于让想知悉操作系统原理的人可以对于操作系统原理的了解达到入门水平,而又不需要花费太多的时间在相关的书本上。
计算机系统
计算机系统是一种可以按用户的要求接收和存储信息,自动进行数据处理并输出结果信息的系统。计算机系统包括硬件(子)系统和软件(子)系统。计算机系统的资源包括两大类:硬件资源和软件资源。
中央处理器(CPU)、内存储器、外存储器(磁盘、磁带)以及各种输入/输出设备(键盘、鼠标、显示器、打印机等)组成了计算机硬件系统;而各种程序和数据则组成了计算机的软件系统。在计算机系统中,集中了资源管理功能和控制程序执行功能的一种软件,称为操作系统。资源管理功能指的是操作系统要对硬件资源还有软件资源进行有效管理,如CPU、内存、磁盘还有其他的I/O设备,要准确了解现在的资源才能进行正确的管理,而只有有效地对硬件资源进行管理,才能使CPU等有效率的工作;软件资源是程序与数据,操作系统通过各种策略进行高效管理。而对于控制程序执行功能就是指操作系统对于进程线程的管理,以得到最大效率的并发执行程序功能。
操作系统的定义
操作系统是计算机系统中的一个系统软件,它是这样一些程序模块的集合——它们能有效地组织和管理计算机的硬件及软件资源,合理地组织计算机的工作流程,控制程序的执行,并向用户提供各种服务功能,使用户能够灵活、方便、有效地使用计算机。灵活意味着操作系统可以对于各种各样随机的情况做出正确的反应及操作;方便意味着操作系统对于用户的使用来说是方便,用户不需要了解太多关于操作系统本身的知识也可以很好的使用操作系统,而对于程序员来说也是一样,对于操作系统不用过于了解就可以编写出运行良好的程序,关于操作系统对于程序员所提出的要求,后面会提到;有效指的是操作系统可以努力达到硬件的最大化使用,这也是操作系统的目标。
操作系统的任务之一是组织和管理计算机系统中的硬件和软件资源。
“有效”:根据用户的不同要求,在管理计算机资源时要考虑到系统运行的效率和资源的利用率。要尽可能提高中央处理器的利用率,让它尽可能少地空转。
“合理”:操作系统要“公平”对待不同的用户程序,保证系统不发生“死锁”和“饥饿”现象。对于“死锁”与“饥饿”在进程和线程的部分会做出讲解,简单来理解就是,“死锁”就是两个进程各占着对方需要的资源,还不相让,导致大家都没有足够我资源前进。而“饥饿”就是一直都没有办法得到资源,而会饥饿至死。
操作系统的别一项重要任务,是向用户提供各种服务功能。一是向程序开发和设计人员提供高效的程序接口; 二是向计算机系统的用户提供接口,使用户能够灵活、方便、有效地使用计算机。
“方便”:操作系统的人机界面要考虑用户使用界面和程序设计接口两个方面的易用性、易学性和易维护性。
操作系统的特征
- 并发性:是指计算机系统中同时存在若干个运行着的程序。宏观上看,是同时向前推进的。计算机程序的并发性体现在如下两个方面:用户程序与用户程序之间并发执行;用户程序与操作系统之间并发执行。根据处理器个数的不同,微观下可能是并发的,也有可能是交替运行的。
- 共享性:是指操作系统程序与多个用户共用系统中的各种资源。这种共享性是在操作系统控制下实现的。资源的工享性主要针对计算机系统中如下几项重要资源:(1)中央处理器(2)内存储器(3)外存储器(4)外部设备。在计算机系统中,对于资源的共享有两种形式:互斥共享和同时共享。
- 随机性:操作系统的运行是在一种随机的环境下进行的。
研究操作系统的观点
- 软件的观点:操作系统是一种大型软件系统,它是多种功能的集合。作为一种大型软件,操作系统有软件的外在与内在特性。外在特性是指操作系统是一种软件,它的外部表现形式,即它在操作命令定义集和它的界面,完全确定了操作系统这个软件的使用方式。内在特性是指既然是一种软件,它就具有一般软件的结构特点。
- 资源管理的观点:在计算机系统中,硬件和软件资源可以分成以下几部分:中央处理器、存储器(内存和外存)、外部设备和信息(文件)。操作系统就是负责记录谁在使用什么样的资源,系统中还有哪些资源空闲,当前响应了谁对资源的要求,以及收回哪些不再使用的资源等。
- 进程的观点:操作系统可以看作是由多个可以同时独立运行的程序和一个对这些程序进行协调的核心所组成。
- 虚机器的观点:是从系统功能分解的角度出来来考虑操作系统的结构。这种观点将操作系统的功能分成若干个层次,每一层次完成特定的功能,从而构写一个虚机器。
- 服务提供者的观点:该服务提供者(操作系统)为用户提供了比裸机更强、服务质量更高,更方便、灵活的虚拟机器。为用户使用便利,该服务提供都 提供了一组功能强大、方便、易用的广义指令(系统调用)。
操作系统的功能
- 进程管理:其实质是对中央处理器进行管理。包括进程控制(创建、撤销、控制进程运行时的状态转换)、进程同步(在相互协作共同完成任务的进程之间,用同步机制协调它们之间的执行顺序)、进程间通信(协作的进程之间相互交换数据和消息的手段)、调度(包括进程调度、线程调度、作业调度)。
- 存储管理 :管理计算机内存的资源。包括内存的分配与回收、存储保护(防止越界,现在计算机系统中,通常提供由硬件实现的存储保护机制,MPU)、内存扩充(借助于虚拟存储技术在逻辑上增加进程运行空间的大小,这个大小比实际的物理内存要大得多)。
- 文件管理 :有效地支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题,以使用户方便、安全地访问文件。(1)文件存储空间的管理(2)目录管理(3)文件系统的安全性
- 作业管理
- 设备管理:计算机系统中除了CPU和内存以外的所有输入、输出设备的管理。
操作系统的发展
- 手工操作
- 监控程序(早期批处理)
- 多道批处理
- 分时系统:是指多个用户通过终端设备与计算机交互作用来运行自己的作业,并且共享一个计算机系统而互不干扰,就好像自己有一台计算机。
- UNIX通用操作系统
- 个人计算机操作系统
- Android操作系统
操作系统分类
- 批处理操作系统:(1)基本工作方式:用户将作业交给系统操作员,系统操作员在收到作业后,并不立即将作业输入计算机,而是在收到一定数量的用户作业之后,组成一批作业,再把这批作业输入到计算机中。(2)特点与分类:成批处理;简单批处理系统和多道批处理系统(3)设计思想:在监控程序启动之前,操作员有选择地把若干作业合并成一批作业,将这批作业安装在输入设备上。然后启动监控程序,监控程序将自动控制这批作业的执行。(4)作业控制说明书:由作业控制语言编写的一段程序,它通常存放在被处理作业的前面,作业运行的步骤是由作业控制说明书来传递给监控程序的。(5)一般指令与特权指令(6)系统调用的过程:第一,当系统调用发生时,处理器通过一种特殊的机制,通常是中断或者异常,把控制流程转移到监控程序内的一些特定位置。同时,处理器模式转变成特权模式。第二,由监控程序执行被请求的功能代码。这个功能代码代表着对一段标准程序段的执行,用以完成所请求的功能。第三,处理结束之后,监控程序恢复系统调用之前的现场;所运行模式从特权模式恢复成为用户方式;最后将控制权转移回原来的用户程序。(7)SPOOLing技术:在多道批处理系统中,关键技术就是多道程序运行、SPOOLing技术(有时也称为假脱机技术)等。SPOOLing(Simulataneous Peripheral Operating On-Line,同时的外部设备联机操作)技术的基本軐是用磁盘设备作为主机的直接输入/输出设备,主机直接从磁盘上选取作业运行,作业的执行结果也存在磁盘上;相应的,通道(后面会讲述)则负责将用户作业从卡片机上动态写入磁盘,而这一操作与主机并行。多道程序设计的基本思想是在内存中同时保持多个作业,主机可以以交替的方式同时处理多个作业。
- 分时系统:(1)基本工作方式:时间片轮转方式处理服务请求(2)设计思想:分时操作系统将CPU的时间划分成若干个小片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。(3)特点:多路性、交互性、独占性、及时性,这些特点都是用用户角度出发的。一般通用操作系统结合了分时系统与批处理系统两种系统的特点,典型就是UNIX系统,处理原则:分时优先,批处理在后。
- 实时操作系统(Real Time Operating System,RTOS):是指使计算机能在规定时间内及时响应外部事件的请求,同时完成对该事件的处理,并能够控制所有实时设备和实时任务协调一致地工作的操作系统。实时操作系统的主要目标是:在严格的时间范围内,对外部请求作出反应,系统具有高度可靠性。实时系统除了能够实现硬实时或软实时的要求,除了具有多道程序系统的基本能力外,还需要具有以下几方面的能力:实时时钟管理、过载防护、高可靠性
- 嵌入式操作系统(Embedded Operating System):就是运行在嵌入式芯片环境中,对整个芯片能及它所操作、控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。
- 个人计算机操作系统(Personal Computer Operating System)
- 网络操作系统:各种计算机操作系统按网络体系协议标准设计开发的软件,它包括网络管理、通信、安全、资源共享和各种网络应用。可以是不同的操作系统。
- 分布式操作系统:将大量的计算机通过网络联结在一起,可以获得极高的运算能力及广泛的数据共享。必须是相同的操作系统。
- 智能卡操作系统:典型例子就是SIM卡。
操作系统结构
- 整体式结构:即首先确定操作系统的总体功能,然后将总功能分解为若干个子功能,实现每个子功能的程称为模块。
- 层次式结构:把操作系统的所有功能模块、按功能流图的调用次序,分别将这些模块排列成若干层,各层之间的模块只能是单向依赖或单向调用(如只允许上层或外层模块调用下层或内层模块)关系。
- 微内核(客户机/服务器结构):特点(1)运行在核心态的内核(2)运行在用户态的客户机/服务器方式运行的进程层
相关概念说明
- 原语:原语是由若干条指令所组成,用来实现草根个特定的操作。原语的执行必须是连续的,一旦开始执行就不能间断,直到执行结束。原语是操作系统核心(不是由进程而是由一组程序模块所组成)的一个组成部分,它必须在管态下执行,并且常驻内存。
Where there’s a shell, there’s a way.
未经允许不得转载:TacuLee » 操作系统原理之操作系统概论