深入理解操作系统1操作系统概述
深入理解操作系统[1]:操作系统概述
文章目录
基本概念
1. 操作系统的定义
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,方便用户进行使用的 程序的集合 (软件)。
2. 操作系统的目标
- 方便性 *:硬件只能识别0,1这样的机器代码,用户要在计算机上运行自己的程序就必须用机器语言书写,而操作系统能解决这个问题.
- 有效性 *:提高系统资源的利用率;数据有序节省存储空间;合理组织计算机工作流程提高系统的吞吐量。
- 可扩充性:适应硬件和网络的发展要求。
- 开放性:遵从世界标准规范,特别是OSI的国际标准。
3. 操作系统的作用
用户与硬件系统的接口。
通过以下3种方式: 命令方式,系统调用,图形窗口。
是计算机4类资源的管理者:处理器,存储器,设备,文件。
实现了对计算机资源的抽象。
文件是对I/O设备的抽象;
虚拟内存是对主存和磁盘的抽象;
进程是处理器,主存和I/O设备的抽象。
4. 操作系统的特征
并发性 *:多个事件在 同一个时间间隔 内发生。
(注:并行是指在同一时刻;并发在单处理器系统上围观串行,在多处理器系统有可能并行)
共享性 *:
-互斥共享方式:对临界资源(栈,变量等软件,打印机这类软件。只能被一个进程访问)的访问;
-同时访问方式:多个进程同时访问的资源(比如重入码写的文件)。
虚拟:通过某种技术把物理实体变成若干逻辑上的对应物。
异步性:进程以不可预知的速度向前推进。
5. 操作系统的功能
处理器的管理:进程控制,进程同步,进程通信及进程调度。
存储器管理:内存分配,内存保护,地址映射和内存扩充。
设备管理:缓冲管理,设备分配,设备处理。
文件管理:文件存储空间管理,目录管理和文件读写的管理及保护。
作为用户与操作系统之间的接口
联机用户接口
——-适用:几乎所有的操作系统
——-组成:命令+终端处理程序+命令解释程序
——-过程:-1 用户在键盘输入命令
————— -2 终端处理程序接收命令并显示在屏幕
————— -3 命令解释程序解释并执行
脱机用户接口
——-适用:批处理系统
——-组成:JCL(作业控制语言) + 作业说名书+命令解释程序
——-过程:-1 用户把作业的控制用JCL写在作业说明书
————– -2命令解释程序按照说明书解释并执行
程序接口
——-目的:为用户程序访问系统资源而设置
——-组成:一组 系统调用
(系统调用:一个系统调用是一个能完成特定功能的子程序)
发展过程
0. 无操作系统
最初:人工操作
特点
- 用户独占机器;
- CPU等待人工操作.
问题
引发人机矛盾:人工操作方式严重降低了计算机的资源利用率。
改进:脱机输入/输出方式
特点
-事先将装有用户程序和数据的纸带(或卡片)装入纸带输入机(或卡片机);
-在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上;
-当 CPU 需要这些程序和数据时,再从磁带上将其高速地调入内存。
优点
- 减少了cpu的空闲时间;
- 提高了i/o速度。
1. 单道批处理系统
过程
一批作业以脱机的方式输入到磁带上,在监督程序的控制下连续处理。
特点
- 自动性-无人工干预(无法交互);
- 顺序性-按进入内存先后执行;
- 单道性- 内存中只保持一道作业 (资源利用率还是低)。
2. 多道批处理系统
过程
-用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;
-然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享 CPU 和系统中的各种资源。
特征
多道性:内存中有多道程序,可并发执行;
无序性:完成时间与进入内存先后顺序无关;
调度性:作业从提交到完成进行两次调度。
—–作业调度(外村-内存,选择多个)
—–进程调度(分配处理器,选择一个)
优点
资源利用率高;
系统吞吐量大(资源忙;完成或运行不下去后才进行切换)。
系统吞吐量 是指系统在单位时间内所完成的总工作量。
缺点
- 平均周转时间长;
- 无交互能力。
3. 分时系统
定义
一台主机连接多个终端,同时允许多个用户通过自己的终端以交互的方式使用计算机,共享主机中的资源。
产生的动力
- 人机交互(便于程序员调试)
- 共享主机(因为计算机昂贵)
- 便于用户上机(用户直接操控计算机,而不是多道批中的机房)
特征
- 多路性:宏观上同时微观上轮流;
- 独立性:每个用户感觉独占主机;
- 及时性:较短的时间内响应;
- 交互性。
4. 实时系统
主要应用
- 实时控制(工业生产,武器控制,自动驾驶);
- 实时信息处理(订票系统)。
微机操作系统的发展
1 单用户单任务
特点
只允许一个用户上机,只允许用户程序作为一个任务运行。
典型
- 第一是CP/M 具有较好的体系结构,可适应性强,且具有可移植性以及易学易用等优点,使之在== 8 位微机==中占据了统治地位。
- MS-DOS(Disk Operating System)操作系统,该操作系统在 CP/M 的基础上进行了较大的扩充,使其在功能上有很大的增强。成为事实上的 16 位 单用户单任务操作系统标准。
2 单用户多任务操作系统
特点
只允许一个用户上机,但允许用户把程序分为若干个任务,使它们并发执行,从而有效地改善了系统的性能。
典型
目前在 32 位微机上配置的操作系统基本上都是单用户多任务操作系统,其中最有代表性的是由微软公司推出的 Windows。
3 多用户多任务操作系统
特点
许多个用户通过各自的终端使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系统吞吐量。
典型
在大、中和小型机中所配置的大多是多用户多任务操作系统,而在 32 位微机上也有不少是配置的多用户多任务操作系统,其中最有代表性的是 UNIX OS。现在最有影响的两个能运行在微机上的 UNIX 操作系统的变型是 Solaris OS 和 Linux OS。
操作系统的结构设计
1 传统的操作系统结构
第一代:无结构的操作系统
设计者只注重功能的实现和获得高的效率上,缺乏首尾一致的设计思想。
第二代:模块化结构操作系统
优点
- 提高 OS 设计的正确性、可理解性和可维护性;
- 增强 OS 的适应性;
- 加速 OS 的开发过程。
问题
在 OS 设计时,对各模块间的接口规定很难满足在模块完成后对接口的实际需求。
在 OS 设计阶段,设计者必须做出一系列的决定(决策),每一个决定必须建立在上一个决定的基础上。但在模块化结构设计中,各模块的设计齐头并进,无法寻找到一个可靠的决定顺序,造成各种决定的“无序性”。
第三代:分层式结构操作系统
将一个操作系统分为若干个层次,每层又由若干个模块组成,各层之间只存在着单向的依赖关系。
优点
- 易保证系统的正确性。自下而上的设计方式,使所有设计中的决定都是有序的,或者说是建立在较为可靠的基础上的,这样比较容易保证整个系统的正确性。
- 易扩充和易维护性。在系统中增加、修改或替换一个层次中的模块或整个层次,只要不改变相应层次间的接口,就不会影响其它层次,这必将使系统维护和扩充变得更加容易。
缺点
由于层次结构是分层单向依赖的,因此必须在相邻层之间都要建立层次间的通信机制,OS 每执行一个功能,通常要自上而下地穿越多个层次,这无疑会增加系统的通信开销,从而导致系统效率的降低。
2. 第四代:微内核结构
特点
- 足够小的内核:实现最基本的核心功能,并非是一个完整的 OS,而只是操作系统中最基本的部分。
- 基于客户/服务器模式:将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现。
- 应用“机制与策略分离”原理: 机制 是指实现某一功能的具体执行机构。 策略 是在机制的基础上借助于某些参数和算法来实现该功能的优化。通常,机制处于一个系统的基层,而策略则处于系统的高层。在传统的 OS 中,将机制放在 OS 的内核的较低层,把策略放在内核的较高层次中。而在微内核操作系统中,通常将机制放在 OS 的微内核中。因此才有可能将内核做得很小。
- 采用面向对象的技术。
基本功能
- 进程/线程管理;
- 低级存储器管理;
- 中断和陷入处理;
优点
- 提高系统可扩展性;
- 增强系统可靠性;
- 可移植性;
- 提供对分布式系统的支持;
- 融入了面向对象技术。
.
.
.
.
.
.
桃花仙人种桃树,又摘桃花换酒钱_