1、操作系统与计算机系统
操作系统层次结构:硬件层,系统软件层,支撑软件层,应用软件层
资源管理技术:
- 资源复用,解决物理资源数量不足
- 空分复用共享,
- 时分复用共享,进程在一段时间内独占整个物理资源
- 时分独占式
- 时分共享式:随时可能被剥夺资源
- 资源虚拟,解决物理资源数量不足,提高服务的能力和水平
- 虚拟技术可用于外部设备--虚拟设备。 SPOOLing,将物理上的一台独占设备转化成逻辑上的多台虚拟独占设备
- 虚拟内存: 把多个物理资源(内存+外存)变成单个逻辑上的对应资源(虚存)
- 资源抽象,处理系统的复杂性,解决资源的易用性
- 指通过创建软件来屏蔽硬件资源物理特性和接口细节,简化对硬件资源的操作、控制和使用的一类技术
- 面向抽象(进程、文件、窗口、虚拟机等)
多道程序设计:操作系统跟踪当前是哪个进程在执行,应该执行多长时间,这种共享硬件的技术称为多道程序设计
操作系统三个基础抽象:
- 进程,是对于进入内存的执行程序在处理器上操作的状态集的一个抽象
- 虚存:虚存是通过结合对内存和外存的管理来实现的,把一个进程的虚存中的内容存储在磁盘上,用内存作为磁盘的高速缓存,以此为用户提供比物理内存空间大得多的虚拟内存空间
- 文件是通过将文件中的字节映射到存储设备的物理块中来实现文件抽象
操作系统虚拟机:
组成:
- 虚处理器--对CPU采用时分复用,为每个进程运行提供“虚处理器”
- 虚拟内存--对物理内存采用虚存技术,系统自动传输当前计算相关的程序或数据,为每个进程实现“虚内存”
- 虚拟设备--对独占型I/O设备,采用SPOOLing,为每个进程实现“虚设备”
- 虚拟外存--通过文件来抽象磁盘设备,每个进程操纵文件来存取信息,都有各自独占的“虚外存”
操作系统:管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户方便有效地使用计算机提供良好运行环境的一种系统软件
- 服务用户观点--操作系统作为用户接口和公共服务程序
- 进程交互观点--操作系统作为进程执行的控制者和协调者 •
- 系统实现观点--操作系统作为扩展机或虚拟机
- 资源管理观点--操作系统作为资源的管理者和控制者
操作系统的功能:
- 处理器管理
- 进程
- 控制和管理
- 同步和互斥
- 通信
- 死锁
- 线程控制和管理
- 处理器调度,高级调度、中级和低级
- 进程
- 存储管理
- 内存分配、地址转换、存储保护、内存共享、存储扩充
- 设备管理
- 设备中断处理、缓冲区管理
- 提供设备独立性、实现逻辑设备到物理设备的映射
- 设备分配和回收
- 共享型设备的驱动调度
- 实现虚拟设备
- 文件管理
- 逻辑组织方法、物理组织方法
- 存储和使用方法
- 目录管理
- 共享和安全性控制
- 存储空间管理
- 网络与通信管理
- 网络资源管理、数据服务管理、应用服务、网络管理
操作系统的特性:
- 并发性
- 并发是同一时间间隔,并行是同时
- 共享性
- 透明资源共享
- 显示资源共享:临界资源与独占访问
- 异步性
- 作业到达系统的类型和时间是随机的
- 程序运行发生错误或异常时刻是随机的...
2、操作系统的形成和发展
多道程序设计:
- 是指允许多个程序同时进入一个计算机系统的内存储器并启动进行计算的方法
- 优点:
- 提高了CPU的利用率
- 提高了内存和I/O设备的利用率
- 改进了系统的吞吐率
- 充分发挥了系统的并行性
- 缺点:延长每道程序的计算时间
- 程序等待I/O操作的时间占其运行时间的比例为p,当内存中有n道程序时,所有程序都等待I/O的概率是pn,那么,
CPU利用率=1-pn
- 实现多道程序设计需解决:
- 存储保护与程序浮动(地址重定位)
- 处理器的管理和调度
- 系统资源的管理和调度
多重程序设计:指配置了多个物理CPU,能真正同时执行多道程序
程序运行时特性:
- I/O操作慢而CPU较快
- 程序在执行I/O操作时不需要CPU
三种基本的操作系统类型:
- 批处理系统
- 用户脱机工作
- 成批处理作业
- 多道程序运行
- 作业周转时间长
- 分时操作系统:系统把处理器的时间划分为时间片轮流分配给各个联机终端,时间片用完则产生时钟中断,控制权转至操作系统并重新进行调度
- 特征:同时性、独立性、及时性、交互性
- 实时操作系统
- 是指当外部事件或数据产生时,能够对其予以接收并以足够快的速度处理,所得结果能够在规定时间内控制生产过程或对控制对象做出快速响应,并控制所有实时任务协调运行的OS
- 三种典型的实时系统
- 过程控制系统(生产过程控制)
- 信息查询系统(情报检索)
- 事务处理系统(银行业务)
- 处理流程:数据采集、加工处理、操作控制、反馈处理
批处理与分时系统的区别:
- 追求目标不同:1是提高资源利用率和作业吞吐率,2是强调公平性,对于联机用户的请求要求快速反应
- 适应作业的性质不同:1、已调试好的大型作业,2、适应正在调试的小型作业
- 资源使用率不同:1、最佳,2、系统调度开销较小,能够公平地调配CPU和内存资源
- 作业控制方式不同
3、操作系统基本服务和用户接口
基本服务:
-
创建程序
-
执行程序
-
数据I/O
-
信息存取
-
通信服务
-
错误检测和处理
- 还具有其他功能:资源分配,统计,保护
用户接口:
系统调用:
- 内核提供一系列实现预定功能的内核函数,通过系统调用把应用程序的请求传达给内核,内核调用对应的内核函数完成请求所需处理后,再将处理结果返回给应用程序
- 系统调用是一种中介角色,把用户与硬件隔离开来,应用程序通过系统调用才能请求系统服务和使用系统资源
- 作用:
- 内核可基于权限和规则对资源访问进行裁决,保证系统的安全性
- 系统调用封装资源抽象,提供一致性接口,避免用户使用资源时可能发生的错误,且使编程方便效率高
- 是应用程序获得操作系统服务的唯一途径
- 内核的主体是系统调用的集合,内核可以看成是特殊的公共子程序
- 分类:
- 进程管理
- 文件管理
- 设备管理
- 内存管理
- 信息维护
- 进程通信
- 实现:
- 编写系统调用处理服务例程
- 设计一张系统调用入口地址表,每个入口地址都指向一个对应系统调用的服务例程
- 陷阱处理机制,开辟现场保护区,保存发生系统调用时的处理器现场
- 参数传递:
- 由访管指令(中断指令)自带参数,包括直接参数和间接参数
- 通过CPU的通用寄存器传递参数,或在内存的一个块或表中存放参数,其首地址送入寄存器,实现参数传递
- 在内存中开辟专用堆栈区域传递参数
- 与函数调用(2)的区别:
- 调用形式和实现方式不同
- 1仅提供功能号,在内核态
- 2转向固定地址,在用户态
- 被调用代码位置不同
- 提供方式不同
- 调用形式和实现方式不同
POSIX(Portable Operating System Interface )标准,为不同平台下的应用程序提供相同的应用程序接口,规定了 约100个API(即OS应提供的服务功能);
API的实现既可用系统调用,也可用库函数
操作接口:
- 是OS为用户操作控制计算机工作和提供服务的手段集合,通常可借助操作控制命令、图形操作界面(命令)、以及作业控制语言(命令)等来实现
- 作业控制方式
- 联机作业控制方式与操作控制命令
- 命令行方式
- 批命令方式
- 图形化方式
- 脱机作业控制方式与作业控制语言
- 批处理接口:作业控制语言JCL( Job Control Language)
- 用户使用JCL语句,把运行意图(需要对作业进行的控制和干予)写在作业说明书上,将作业连同作业说明书一起提交给系统
- 批处理作业的调度执行过程:由系统调用JCL语言处理程序或命令解释程序来控制执行
- 联机作业控制方式与操作控制命令
- 系统程序又称实用程序或支撑程序(Utilities),虽非操作系统的核心,但却必不可少,为用户程序的开发、调试、执行、和维护解决带有共性的问题或执行公共操作
- 分类:文件管理、状态信息、程序设计语言支持、程序装入和执行支持,通信、其他软件工具
4、操作系统结构和运行模型
OS设计问题:
- 复杂程度高
- 生成周期长
- 正确性难保证
操作系统结构分类:
- 单体式结构
- 基于结构化程序设计,又叫无序调用法
- 设计思想:模块为基本单位,OS按功能随意分解,明确模块间接口关系并可自由调用,数据多数作为全程量使用,最后,把所有模块连结成完整的单体系统
- 优点:结构紧密、组合方便、灵活性大、系统效率高
- 缺点:模块独立性差,形成复杂的调用关系或循环调用,造成系统结构不清晰,正确性难保证,可靠性降低系统功能的增、删、改困难
- 层次式结构
- 基于单向依赖关系的OS结构设计方法
- 设计思想:OS划分为内核和若干模块或进程,它们按功能的调用次序排列成若干层次,各层之间只能存在单向依赖或单向调用关系,反之则不能
- 优点:整体问题局部化,模块或进程组织成层次结构,具有单向依赖性,使依赖和调用关系清晰规范,接口少且简单。增加、修改或替换层次方便,有利于维护和扩充
- 缺点:必须建立模块或进程间通信机制,系统通信开销较大
- 虚拟机结构
- 基于将多道程序功能和提供虚拟机功能分开实现的OS结构设计方法
- 设计思想:通过多重化和共享等资源管理技术,解决物理资源不足和生成若干台虚拟计算机,这些虚拟机是实际物理计算机(裸机)的逻辑复制品,即功能都与裸机等同
- 优点:虚拟机上可运行不同OS,多个不同OS可在一台物理计算机上同时运行
- 缺点:但设计、实现复杂,对硬件性能要求高
- 微内核结构:
- 基于将OS内核设计成最小功能的OS结构设计方法
- 设计思想:OS分成两部分,一是运行在核心态的内核,它提供系统基本功能,完成极少内核态任务;二是运行在用户态并以客户--服务器方式执行的进程层,OS其他功能由若干服务器进程来实现
- 优点:对进程的请求提供一致性接口;具有较好可扩充性和易修改性;可移植性好;对分布式系统提供有力支撑
- 进程间必须通过内核的通信机制才能进行通信,故运行效率较低
内核:
- 内核(kernel)是作为可信软件来提供支持进程并发执行的基本功能和基本操作的一组程序模块
- 内核通常驻留在内核空间,运行于核心态,具有访问硬设备和所有内存空间的权限,是仅有的能执行特权指令的那部分程序
- 在内核的支撑下,机器功能得到扩展、进程运行环境得到改善,安全性得到保证,系统效率得到提高
- 分类:
- 单内核
- 微内核
- 功能:
- 中断处理
- 时钟管理:支撑时间片调度,实现进程定时发送。。。
- 短程调度:分配处理器,完成现场保护和恢复
- 原语管理:
- 原语:实现特定功能的不可中断的过程
- 原语由内核实现
- 属性:
- 内核是由中断驱动的
- 内核是不可抢占的
- 内核可以在屏蔽中断状态下执行
- 内核可以使用特权指令 :特权指令只允许在内核态下使用,如I/O、状态修改、内存清除等
- 虚拟机特性:
- 虚拟机没有中断,因而,进程设计者不再需要有硬件中断的概念,用户进程执行中无需处理中断
- 虚拟机为每个进程提供一台虚处理器,每个进程就好象在各自的私有处理器上顺序地推进,实现了多进程并发执行
- 虚拟机为进程提供功能强大的指令系统,即它们能够使用机器非特权指令和系统调用所组成的新的指令系统