- 操作系统的目标、作用和模型
OS的目标:
方便性:用户无需了解底层硬件,无需用0、1机器语言操作。
有效性:CPU、I/O、存储等的管理专门、合理地被组织管理起来,提高资源的利用率。
可扩充性:扩充应用软件;适应硬件和体系结构发展,扩充底层管理功能模块等。
开放性:网络环境,遵循开放互联标准。
OS的作用:- 作为用户与计算机硬件系统之间的接口
2)OS作为计算机系统资源的管理者
3)OS用作扩充机器
操作系统附加在裸机上第一层,对裸机的首次扩充: “虚拟机”
- 作为用户与计算机硬件系统之间的接口
- 发展历程
-
- 人工操作方式(1946-50年代中)
- 脱机输入/输出(Off-Line I/O)方式
- 单道批处理系统(Simple Batch Processing System)
- 多道批处理系统
优点:
资源利用率高:CPU和内存利用率较高;
系统吞吐量大:单位时间内完成的工作总量大;
缺点:
平均周转时间长:短作业的周转时间显著增长;
无交互能力:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;
1)多道批处理系统的特征:
多道性
无序性
作业入内存由算法决定,不按提交顺序。入内存后顺序执行。
调度性
包括作业调度、进程调度
此时操作系统成型,定义为:一组控制和管理计算机硬件和软件资源,
合理地对各类作业进行调度(多道),方便用户使用的程序的集合。
5.分时系统(time-sharing system)
解决交互、共享两个关键问题。
1)实现方法:
改变批处理系统的运行方式:
多个用户连接主机
请求的作业发送到主机后,直接进入主机内存以快速响应
系统采用时间片轮转方式处理服务请求
2)分时系统的特征:
多路、独立、及时、交互 - 实时系统(Real-Time System) (实时控制、实时信息处理)
系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
1)实时系统的实现关键
系统必修有能够保证其承担的多个任务在规定的时间完成,调度和能力是关键。
三大操作系统比较
- 基本特性
1.并发concurrence
并行性:两个或多个事件在同一时刻发生
并发性:两个或多个事件在同一时段发生
2.共享sharing
系统中的资源可供内存中多个并发执行的进程(线程)共同使用。主要有两种共享方式:
互斥共享方式:
临界资源(独占资源):一段时间内只允许一个进程访问的资源。
同时访问方式:
对允许“同时”访问的资源(如磁盘)采用该方式,但“同时”仍然是“宏观并行微观串行”的,不是真正的同时
3. 虚拟virtual
通过某种技术把一个物理实体变为若干个逻辑对应物,两种实现方式:
时分复用
一个物品被多人分时使用,在一段时间内就表现为每个人都有一个该物品可用,1虚拟为n。
空分复用
一个物品划分为多个部分,多个人每人都有一部分可用,主观上看也是1虚拟成n。
4.异步性asynchronism
指进程的执行顺序和执行时间的不确定性,需要进程互斥和同步手段来保证。 - 主要功能
处理机管理功能(作业管理)
1)进程控制:
为作业创建进程、撤销已结束的进程,控制进程在运行过程中的状态转换。以及线程的创建撤销等。
2)进程同步:
为多个进程运行进行协调(包括互斥和同步)
3)进程通信:
用来实现在相互合作进程间的信息交换;(直接通信和网络通信)
4)调度:
作业调度(入内存)和进程调度(分配CPU)
存储器管理功能
1)内存分配
分配方式:动态、静态
分配机制需要的数据结构、分配算法、回收内存功能
2)内存保护
3)地址映射(变换)
4)内存扩充
设备管理功能
1)缓冲管理
2)设备分配
3)设备处理
文件管理功能
1)存储空间的管理
2)目录管理
3)文件的读写管理和保护
用户接口
1)命令接口
联机用户接口:由一组磁盘操作命令和命令解释程序组成。
脱机用户接口:由一组作业控制语言组成,如批处理文件。
2)程序接口
用户程序在执行中访问系统资源而设置,由一组系统调用组成。
早期汇编语言才能使用,后高级语言及C语言中都给出了系统调用对应的库函数。
3)图形接口
- 结构
1.传统的OS结构
1)无结构OS
2)模块化OS结构
3)分层式OS结构
2.微内核OS结构
微内核OS结构以OS为核心,以C/S为基础,采用了面向对象程序设计方法。
微内核包含的基本功能
进程(线程)管理,包括进程调度、进程通信、进程同步等;低级存储管理;中断和陷入处理。调度算法、虚拟内存的页面置换算法等都放入外部服务器中实现。
微内核的优点
灵活、可扩充:可选配功能服务器模块
增强可靠性:内核是稳定的核心,只有它能直接访问硬件。服务器在用户态出错绝不会导致系统瘫痪。
可移植性:操作系统绝大部分(各种服务器程序)与硬件平台无关,在不同硬件平台间移植时修改比较小。
该机制尤其适用于分布式系统
采用面向对象技术,减少开发开销
微内核存在的问题
1)运行效率降低
一次客户请求需要多次消息传递和用户/内核模式的上下文切换,开销增大。有的服务需要借助其他服务,则需要的切换开销更大。
2)如何改善:
重新把一些常用基本功能由服务器移入内核。代价就是内核容量增大,接口定义和性能也将受影响。