本系列博客重点在深圳大学操作系统课程的核心内容梳理,参考书目《计算机操作系统》(有问题欢迎在评论区讨论指出,或直接私信联系我)。
梗概
本篇博客主要介绍操作系统第一章操作系统引论的相关知识。
目录
一、操作系统概述
操作系统不直接解决最终具体应用问题,也不负责编译源程序...
操作系统为你完成所有“硬件相关、应用无关” 的工作,以给你方便、效率、安全
- 定义
操作系统是一组有效控制和管理计算机系统的硬件和软件资源、合理地组织计算机工作流程以及方便用户的程序集合。
二、操作系统的目标与作用
目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。通常在计算机硬件上配置的OS,其目标有以下几点:
1. 方便性
2. 有效性
3. 可扩充性
4. 开放性
而对于操作系统的作用,不同的角度出发有不同的观点。
1、从计算机系统组成观点――操作系统是系统软件
计算机系统组成:
- 软件:应用软件、系统软件(操作系统、语言处理系统和常用的例行服务程序)
- 硬件:输入/输出(I/O)设备、存储器(内存) 、中央处理器(CPU)
2、从资源管理程序观点――操作系统是系统资源(处理器、存储器、 I/O设备以及信息(数据和程序)四类)管理者
3、从软件分层、扩充机器的观点――操作系统是扩充裸机的第一层系统软件(虚拟机)
4、从服务用户的观点―― 操作系统是用户与裸机之间接口
操作系统的发展动力主要是:
1.不断提高计算机资源利用率 2. 方便用户 3. 器件的不断更新换代 4. 计算机体系结构的不断发展
三、操作系统发展历程
操作系统发展历程主要是:1、人工操作方式 2、脱机输入/输出(Off-Line I/O)方式(单道批处理->多道批处理->分时系统->实时系统)
单道批处理是内存中仅有一道作业,多道批处理为了提高资源利用率和系统吞吐量多作业并行,为了满足用户需求分时系统(多用户、多任务)出现了,主要需求是(1) 人—机交互、(2) 共享主机、(3) 便于用户上机。其中,最关键的问题是如何使用户能与自己的作业进行交互。
分时系统的重要指标是响应时间,用户发生终端命令到系统开始作出响应间的时间间隔。假设分时系统中用户数为n,每个用户的运行时间片为q,则系统的响应时间为T=n×q。每个用户分到的时间片q由二部分组成,用于对换时间S和用于真正处理时间T(处理)。
T = n × q
q = S + T(处理)
分时系统中时间片q的选择是一个复杂和关键的任务。
- 如时间片选得过大,造成响应时间不变时用户数减少,或造成响应时间过长
- 当时间片过小时,在一个时间片内切换开销相对增加,一个进程相对要花费更多的时间片才能运行结束,一个进程在系统中的周转时间大大增长
- 最佳的时间片值应既能使分时用户得到好的响应时间,同时又要使在一个时间片内切换开销相对较小可忽略。
总的来说,分时系统特点如下:
- 交互性:用户与系统进行人机对话。
- 多路性:多用户同时在各自终端上使用同一CPU。
- 独立性:用户可彼此独立操作,互不干扰,互不混淆。
- 及时性:用户在短时间内可得到系统的及时回答。
而对于实时系统,所谓“实时”,是表示“及时”,而实时系统(Real-Time System)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
对于实时任务,一般都联系着截止时间:
① 开始截止时间——任务在某时间以前必须开始执行;
② 完成截止时间——任务在某时间以前必须完成。
根据截止时间划分任务,则有:
(1) 硬实时任务(hard real-time task)。系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。
(2) 软实时任务(Soft real-time task)。它也联系着一个截止时间, 但并不严格,若偶尔错过了任务的截止时间, 对系统产生的影响也不会太大。
四、操作系统基本特征
1、并发:
并发性是指两个或多个事件在同一时间间隔内发生
Tips:并行性是指两个或多个事件在同一时刻发生
单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。多CPU系统可以并行
2、共享:
在操作系统环境下,所谓共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。一般有(1)互斥共享(打印机、磁带机)、(2)同时访问(磁盘) 两种。
3、虚拟:
操作系统中的所谓“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物(虚拟CPU、虚拟内存、虚拟外部设备等)。
比如虚拟处理机,通过多道程序设计技术,让多道程序并发执行的方法,来分时使用一台处理机的。虽然只有一台处理机,但它能同时为多个用户服务,使每个终端用户都认为是有一个CPU在专门为他服务。即把一台物理上的CPU虚拟为多台逻辑上的CPU
4、异步性:
在多道程序环境下,允许多个进程并发执行, 但只有进程在获得所需的资源后方能执行。由于资源等因素的限制,使进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。进程是以人们不可预知的速度向前推进,此即进程的异步性。
五、操作系统主要功能
1、处理机管理功能:
- 进程控制:进程创建、资源分配与管理、状态转换、撤销
- 进程同步:使多进程有条不紊按一定顺序运行(通过互斥与同步机制)
- 进程通信:多进程间交换信息(直接通信或间接通信)
- 进程调度:如何从队列中选择执行进程
2、存储器管理功能:
- 内存分配:静态与动态内存分配(空间是否确定、不可变)
- 内存保护:保每道用户程序都只在自己的内存空间内运行,彼此互不干扰
- 地址映射:将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址
- 内存扩充:借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多; 或者是让更多的用户程序能并发运行(请求调入、置换)
3、设备管理功能:
- 缓冲管理:设置缓冲区(单、双),缓解设备与CPU的矛盾
- 设备分配:根据用户进程的I/O请求、系统的现有资源情况以及按照某种设备分配策略,为之分配其所需的设备
- 设备处理:用于实现CPU和设备控制器之间的通信
4、文件管理功能:
- 文件存储空间管理:文件系统为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的运行速度
- 目录管理:为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取
- 文件的读/写管理和保护:顾名思义
5、用户接口:
- 命令接口:(1)联机用户接口:用户可通过先后键入不同命令的方式,来实现对作业的控制(2)脱机用户接口:委托系统代替用户对作业进行控制和干预
- 程序接口:用户程序取得操作系统服务的惟一途径,主要使用系统调用
- 图形接口:可用鼠标或通过菜单和对话框,来完成对应用程序和文件的操作
六、操作系统的结构设计
1. 软件的含义
所谓软件,是指当计算机运行时,能提供所要求的功能和性能的指令和程序的集合,该程序能够正确地处理信息的数据结构;作为规范软件,还应具有描述程序功能需求以及程序如何操作使用的文档。如果说,硬件是物理部件, 那么,软件则是一种逻辑部件,它具有与硬件完全不同的特点。
2. 软件工程的含义
软件工程是指运用系统的、规范的和可定量的方法,来开发、运行和维护软件;或者说,是采用工程的概念、 原理、 技术和方法,来开发与维护软件, 其目的是为了解决在软件开发中所出现的编程随意、软件质量不可保证以及维护困难等问题。
对于操作系统的结构,传统OS主要是一到三代(为了控制该软件的复杂性,在开发OS时,先后引入了分解、模块化、 抽象和隐蔽等方法),而把微内核的OS结构称为现代OS结构。
1、无结构操作系统:
OS是为数众多的一组过程的集合,各过程之间可以相互调用,在操作系统内部不存在任何结构
2、模块化OS结构:
基于“分解”和“模块化”原则来控制大型软件的复杂度的。为使OS具有较清晰的结构,OS不再是由众多的过程直接构成,而是将OS按其功能划分为若干个具有一定独立性和大小的模块。
- 缺点:首先,在开始设计OS时,对模块的划分及对接口的规定并不精确, 而且还可能存在错误,因而很难保证按此规定所设计出的模块会完全正确, 这将使在把这些模块装配成OS时发生困难;其次,从功能观点来划分模块时,未能将共享资源和独占资源加以区别; 由于管理上的差异,又会使模块间存在着复杂的依赖关系使OS结构变得不清晰。
3、层次(layered)结构法:
将模块间无序调用变为有序调用,它把OS的所有功能模块,按功能流图的调用次序,排列成若干层,各层之间的模块只能是单向调用关系,即是只允许上层模块调用相邻下层模块。
4、微内核技术OS:
所谓微内核技术,是指精心设计的、能实现现代OS核心功能的小型内核。它与一般的OS(程序)不同, 它更小更精炼,它不仅运行在核心态,而且开机后常驻内存, 它不会因内存紧张而被换出内存。
微内核所提供的功能,通常都是一些最基本的功能,如进程管理、存储器管理、进程间通信、 低级I/O功能。
七、一些例题
选1.在设计分时操作系统时,首先要考虑的是﹎﹎A﹎﹎;在设计实时操作系统时,首先要考虑的是﹎﹎B﹎﹎;在设计批处理系统时,首先要考虑的是﹎﹎C﹎﹎。
A、B、C:(1)灵活性和可适应性;(2)交互性和响应时间;(3)周转时间和系统吞吐量;(4)实时性和可靠性。
A:(2)B:(4)C:(3)
选2.为了提高计算机的处理机和外部设备的利用率,把多个程序同时放入主存储器,在宏观上并行运行是﹎﹎A﹎﹎;把一个程序划分成若干个同时执行的程序模块的设计方法是﹎﹎B﹎﹎;多个用户在终端设备上的交互方式输入、排错和控制其程序的运行是﹎﹎C﹎﹎;由多个计算机组成的一个系统,这些计算机之间可以通信来交换信息,互相之间无主次之分,它们共享系统资源,程序由系统中的全部或部分计算机协同执行,管理上述计算机系统的操作系统是﹎﹎D﹎﹎;有一类操作系统的系统响应时间的重要性超过系统资源的利用率,它被广泛地应用于卫星控制、导弹发射、飞机飞行控制、飞机订票业务等领域是﹎﹎E﹎﹎。 A--E: ① 分时OS ② 实时OS ③ 批处理系统 ④ 网络OS ⑤ 分布式OS ⑥ 单用户OS ⑦ 多重程序设计 ⑧ 多道程序设计 ⑨ 并发程序设计
A:⑧ B:⑦ C:① D:④ E:②
首先,多道程序设计是为了提高CPU利用率充分发挥计算机各部件的并行性,第A空填8;B空的主要题眼在同时执行,和前面提到的宏观上并行不同,这是实实在在的利用多处理机实现了程序的并行执行,应该选7;C主要体现了分时操作系统的交互性,选1;D主要考察分布式OS和网络OS,这两个操作系统的主要区别是计算机之间是否有主次之分,选4;E体现了实时操作系统的及时性,故选2