操作系统概论
操作系统概观
1 操作系统与计算机系统
计算机系统:软件 + 硬件
四个层:
1.a 计算机硬件系统
结构见图:计算机系统
冯·诺依曼模型:
[外链图片转存失败(img-87GcCxfF-1567438797784)(F:\我的坚果云\操作系统\冯·诺依曼结构.jpg)]
特点:分离计算单元和存储单元
原理:
- 以运算单元为中心,由指令流产生控制流
- 存储程序,程序可以在运行时自我修改,产生数据流
- 主存按照地址访问,是线性编址的空间
- 指令由操作码和地址码组成
- 数据以二进制编码
1.b 计算机软件系统
结构见图:计算机系统
-
应用软件: 基于用户需求编写、安装的专用程序
-
支撑软件: 实用程序、语言处理程序、数据库管理系统
类型 作用 例子 实用程序 解决基础用户应用 文本编辑器、画图板 语言处理程序 把程序代码翻译成可执行机器语言 javac 数据库管理系统 在软件层面再次对处理程序与数据分离 Oracle, MySQL等 -
系统软件: 操作系统
- 操作系统:管理与控制各类软硬件资源
操作系统与支撑、应用软件层次的区别:
- 操作系统有权分配物理硬件资源
- 其它上层软件只能通过操作系统来使用资源
操作系统用于隔离硬件与其它上层软件
2 操作系统的资源管理技术
2.1 资源管理
资源管理的原因:
- 物理资源有限
- 物理资源在硬件实现上的复杂性
资源管理的技术:
- 复用(资源
- 虚拟 有限)
- 抽象(复杂)
2.1.a 资源复用
原因:计算机系统的物理资源宝贵且稀有,导致系统内有多个进程竞争使用资源
作用:让众多进程共享优先的物理资源
进程能够空分复用贮存资源进入主存,可以时分复用处理器以执行代码
多道程序设计: 多个进程共享硬件的技术
2.1.a.甲 空分复用共享
原理:资源可以从空间上分割成更小的单元进行使用
做法:
- 内存被划分成不同的单元(第4章)
- 连续存储管理
- 分页分段存储管理
- 虚拟存储管理
- 硬盘(外存)被划分成不同的单元(第5章)
- 磁盘分区、柱面、簇、扇区
2.1.a.乙 时分复用共享
原理:资源可以从时间上分割成更小的单位供进程使用。
特点:
- 单一进程必须通过独占方式来使用资源
- 不能将资源划分成更多和更小的单位
- 从时间上进行分割,形成时间片,确保在单一时间片内,进程对资源是独占的
分类:
-
时分独占式
对资源执行多个操作,通常使用一个完整周期后才会释放
典例:磁带机(转速不变,固定操作时间不变,一个周期后释放,是一种典型的时间序列模型)
-
时分独享式
进程占用该类资源后很可能随实被剥夺,被另一个进程抢占使用
典例:
处理器(CPU)(并发进程因为种种原因可能交替,分时地使用处理器,极端的情况下每个进程每次仅执行一条指令)
磁盘机:不同用户进程都发出磁盘I/O请求等待传送数据,操作系统并不要求某用户进程的几个磁盘I/O请求之间不能插入其它请求。
2.1.b 资源虚拟
原理:对资源进行转化、模拟或整合,把一个物理资源转变为逻辑上的多个对应物(虚拟打印机技术),也可以将多个转换为一个(虚拟内存技术,虚拟文件系统)
作用:解决某类物理资源数量不足的难题,为应用程序提供更易于使用、高效的虚拟资源
与复用的区别:复用所分割的是实际存在的物理资源,解决有限资源利用不充分的问题;而虚拟则实现假想的虚拟同类资源,解决有限资源不足的问题。
典例:
外部设备:
将文件形式的输出信息写至虚拟打印机而不是直接与物理打印机交互,当输出信息全部汇集后,才被送到物理打印机上打印,这样就不会发生进程阻塞,这种技术称作外部设备同时联机操作(SPOOLing)
存储资源:
实现虚拟内存:只要某个程序的运行空间超出分给它的可用物理内存大小,操作系统便在内存和磁盘之间自动传送与当前计算有关的程序段或者数据段(其余部分放入磁盘)
文件系统:
虚拟文件系统(VFS,Virtual File System)是操作系统在VFS控制下可以同时支持多种具体文件系统
2.1.c 资源抽象
作用:用于处理系统的复杂性,重点解决资源的易用性。
原理:通过创建软件来屏蔽硬件资源的物理特性和接口细节,简化对硬件资源的操作、控制和使用,即不考虑物理细节而对资源执行操作
2.1.d 组合资源管理
同时实施抽象和虚拟技术
打印机:既配置打印函数(利用设备驱动程序,简化操作接口)又实施SPOOLing技术(虚拟多个设备)
显示器:既提供输出函数,又使用窗口软件(多个进程,共享一个屏幕)
2.2 OS中的基础抽象
计算机系统中的物理资源分为:
- 计算及存储类:处理器和内存
- 接口类:外存、外部设备等
三种基本抽象:
- 进程抽象
- 虚存抽象
- 文件抽象
种类 | 进程 | 虚存 | 文件 |
---|---|---|---|
抽象 | 处理器的一种抽象 | 内存的一种抽象 | 设备的一种抽象 |
用户 | 运行应用程序,以进程方式运行(并发执行) | 运行应用程序,使用逻辑地址 | 运行应用程序,使用文件 |
虚拟机界面 | fork(), wait(), exec() …(系统调用) | 虚拟地址 | open(), read(), write() |
OS | 进程及其管理 | 虚存及其管理 | 文件及其管理 |
物理机界面 | 进程调度和上下文切换 | 物理地址 | 设备驱动 |
硬件 | 处理器 | 内存 + 外存 | 磁盘及其它设备 |
作用 | 进程调度、同步、并发通信 | 地址转换、分配、保护 | I/O缓冲、调度,文件组织、存储 |
OS的两项基本任务:
- 防止硬件资源被失控的应用程序滥用
- 屏蔽复杂的硬件操作细节
基础抽象间的包含关系:
[外链图片转存失败(img-yjh3qj5m-1567438797786)(F:\我的坚果云\操作系统\基础抽象包含关系.jpg)]
- 进程的执行依赖于存储的抽象
- 虚存的管理依赖于对文件的抽象
其它抽象:
低层硬件资源抽象:中断、时钟、网络接口
没有特定基础硬件的软件资源:消息、信号量、共享数据结构
2.3 OS虚拟机
操作系统提供简单、清晰、易用和高效的下虚拟计算机
每个进程:
- 利用时分复用分享,可以独占处理器(时间片)
- 利用虚存管理,获得了完整的内存寻址空间
- 利用文件系统,实现对外部(虚拟)设备的高效访问
所有复杂的硬件处理系统由操作系统屏蔽
[外链图片转存失败(img-euEcWgHY-1567438797788)(F:\我的坚果云\操作系统\操作系统虚拟机.jpg)]
3 操作系统定义与作用
定义:
- 管理系统资源
- 控制程序执行
- 改善人机界面
- 提供各种(系统调用)服务
- 合理组织计算机工作流程
- 为用户方便有效使用计算机提供良好运行环境
的一种系统软件
看待操作系统作用的4种常用观点:
-
系统实现观点
-
以计算机物理实体机为基础,按某种结构添加层次或模块
-
每添加一层,就形成一次新的抽象
-
每添加一个模块,就增加一点新的系统功能
-
从而使用户获得较基础硬件更为丰富、强大的软件支持
-
-
资源管理观点
所有分配给用户使用的各类软硬件设施都是资源
- 软件资源(程序和数据)
- 硬件资源(处理器、存储器、外部设备)
通过对资源进行复用、虚拟、抽象,制定资源分配策略,来满足多用户对资源的使用需求
方便用户使用,实现资源共享,提高资源利用率和整体系统效率
-
进程交互观点
通过引入进程的概念,组织多道程序在计算机上的有序运行
操作系统包含:
- 多个独立进程,既有系统进程,也有用户进程
- 一个对诸进程进行控制和协调的内核
内核通过对硬件资源的管理,控制和协调各进程的运行,以及进程之间的同步、通信、死锁等问题
-
服务用户观点
满足用户需求与硬件效率间的差距
- 基础硬件复杂,只提供基础及其指令集
- 无法满足多个用户并发执行多个程序的需求
提供系统调用,扩展了及其指令集,是一种特殊的公共服务程序
提供良好的人机接口,能够高效、方便、安全、可靠地使用
操作系统既是管理员,又是服务员:
对内作为管理员:做好计算机系统软硬件资源的管理、控制与调度,提高系统效率和资源利用率
对外作为服务员:是用户和硬件之间的接口和人机界面,为用户提供尽可能友善的运行环境和最佳服务
4 操作系统功能与特性
4.1 五项主要功能:
-
处理器管理
目标:最大限度提高处理器利用率,通过调度、分配和回收处理器资源,使多道程序能够同时执行
-
存储管理
目标:管理内存(和辅存)资源,支撑多道程序运行,提高存储空间和利用率
-
设备管理
目标:完成用户各种外部设备的I/O请求,加快数据传输速度,发挥设备并行性,提高设备利用率;
利用设备驱动程序,屏蔽硬件操作细节,提供简单的设备使用方法。
-
文件管理
目标:不同于处理器、存储和设备管理室真对计算机硬件资源的管理,文件管理针对的是信息(数据)资源的管理;
程序和数据,都是以文件形式存储在外存中。
-
联网与通信管理
没讲
4.2 操作系统的3大特性:
-
并发性(concurrency)
定义:两个或两个以上的活动或时间在同一时间间隔内发生
并行性(parallelism):两个或两个以上的活动或时间在同一时刻发生
多任务处理系统(multi-tasking system):同时存在若干个运行着的程序(包括操作系统程序和用户程序),利用并发性,这些程序交替、穿插地执行
作用 / 优点:
- 消除系统中部件之间地相互等待,有效地改善系统资源地利用率,改进系统的吞吐量,提高系统效率
- 使多个I/O设备同时输入输出,使设备I/O与CPU地计算同时进行
实质:有限个物理CPU在若干道程序之间实现多路复用,在多用户(/ 进程)间共享以提高资源利用率
导致的系统复杂性:
- 怎样从一个程序切换到另一个程序
- 以什么样的策略来选择下一个运行的程序
- 如何将各个运行的程序隔离开来
- 怎样让多个运行程序互通消息和协作完成任务
- 怎样协调多个运行程序对资源的竞争
- 多个运行程序共享文件数据时,如何保证数据的一致性
引入进程概念来实现并发性(现在操作系统的一个重要基础)
-
共享性(sharing)
原因:多道程序环境下,系统并发性必然会产生资源共享的需求
定义:操作系统中的资源(硬件资源和信息资源)可被多个并发执行的进程共同使用,而不是被其中某个程序独占
共享方式:
- 透明资源共享:每个进程独占完整的虚拟机,时分复用处理器,空分复用存储器。需要解决好资源隔离和授权访问的问题。
- 独占资源共享:同一时间段内只允许一个程序访问的临界资源,需要互斥或同步访问,如打印机、磁盘(写入)等
并发性和共享性是OS两个最基本的特性:
-
资源的共享是因为程序的并发,不允许并发就不存在资源共享问题
-
若系统不能对资源共享实施有效管理,必然会影响到程序的并发执行,甚至程序无法并发执行
所以:需要解决好资源的分配、保护、存取控制等问题
-
异步性(asynchronism)
又称:随机性、不确定性
原因:多道程序环境中,多进程得并发活动导致随机事件发生
操作系统需要保证:只要运行环境相同,多次运行同一程序,得到得计算结果完全相同
个程序独占
共享方式:
- 透明资源共享:每个进程独占完整的虚拟机,时分复用处理器,空分复用存储器。需要解决好资源隔离和授权访问的问题。
- 独占资源共享:同一时间段内只允许一个程序访问的临界资源,需要互斥或同步访问,如打印机、磁盘(写入)等
并发性和共享性是OS两个最基本的特性:
-
资源的共享是因为程序的并发,不允许并发就不存在资源共享问题
-
若系统不能对资源共享实施有效管理,必然会影响到程序的并发执行,甚至程序无法并发执行
所以:需要解决好资源的分配、保护、存取控制等问题
-
异步性(asynchronism)
又称:随机性、不确定性
原因:多道程序环境中,多进程得并发活动导致随机事件发生
操作系统需要保证:只要运行环境相同,多次运行同一程序,得到得计算结果完全相同