第一章 计算机操作系统概述
一、计算机系统
1、计算机系统概览
电子数字计算机:能够自行按照已设定的程序进行数据处理的电子设备
软件和硬件相结合,面向系统,侧重应用
用户视图:
2、计算机硬件系统
计算机硬件系统的组成
中央处理器
- 运算单元
- 控制单元
主存储器
外围设备
- 输入设备
- 输出设备
- 存储设备
- 网络通信设备
总线
当今计算机硬件经典结构和主流程序方式
总线
计算机各种功能部件之间传送信息的公共通信干线(CPU,内存,输入输出设备)
总线包括:
- 一组控制线
- 一组数据线
- 一组地址线
总线的类型:
- 内部总线:用于CPU芯片内部连接各元件
- 系统总线:用于连接CPU、存储器和各种I/O模块等主要部件
- 通信总线:用于计算机系统之间通信
中央处理器CPU
计算机的运算核心和控制单元,包括:
- 运算逻辑部件
- 寄存器部件
- 控制部件
处理器与寄存器
存储器
外围设备
I/O控制方式:轮询/中断/DMA
3、计算机软件系统
组成:
- 系统软件(操作系统,实用程序(方便用户所设,如文本编辑等)、语言处理程序、数据库管理系统)
- 支撑软件(接口软件,工具软件,环境数据库)
- 应用软件,用户按其需要自行编写的专用程序
程序员视图:
软件开发的不同层次:
- 计算机硬件系统:机器语言
- 操作系统之资源管理:机器语言+广义指令
- 操作系统之文件系统:机器语言+系统调用
- 数据库管理系统:+数据库语言
- 语言处理程序:面向问题的语言
程序执行过程:
二、计算机操作技术
1、计算机操作技术的发展
手工操作:开关置内存地址/机器指令,按“装入地址”/“装入数据”/“运行”按钮
装入程序的引进:卡片和纸袋描述指令数据,自动化程序装入
引入汇编语言:汇编程序和汇编语言程序在计算机上形成可执行代码,然后输入数据得到运行结果
引入高级语言:先高级语言编译成目标代码,再连接程序形成可执行代码,最后输入数据得到运行结果
简单批处理系统的操作控制
引入作业控制语言,用户编写作业说明书,操作员控制计算机成批输入作业
屏蔽了硬件处理细节。I/0中断出现,实现CPU与I/O设备并行;磁带设备出现,输入方式得到提高
操作系统与自动化操作系统
能否同时输入作业重叠时间?需要多道程序同时执行,高速外存储设备
磁盘设备出现,实现计算机自动化控制
2、计算机操作系统
操作系统:简称OS,激素那几系统最基础的系统软件,管理软硬件资源,控制程序执行。为用户使用计算机提供良好的运行环境
- 用户角度:管理资源,扩充硬件,控制程序执行
- 人机交互:用户与机器的接口
- 系统结构:大型软件系统,层次式模块化的程序结构
操作系统的组成
- 进程调度子系统
- 进程通信子系统
- 内存管理子系统
- 设备管理子系统
- 文件管理子系统
- 网络管理子系统
- 作业控制子系统
操作系统的类型
操作控制方式看:
- 多道批处理操作系统,脱机操作系统
- 分时操作系统,交互式控制方式
- 实时操作系统
应用领域分类
- 服务器操作系统(Linux)
- 并行操作系统
- 网络操作系统
- 分布式操作系统
- 个人机操作系统(Windows)
- 手机操作系统(Android)
- 嵌入式操作系统
- 传感器操作系统
三、深入观察操作系统
1、资源管理的视角
硬件资源:处理器、内存、外设
信息资源:数据、程序
屏蔽资源使用的底层细节:驱动程序(直接监视各类硬件资源,并向上提供接口)
资源的共享方式:独占/共享
资源的分配策略:静态分配(运行前一次拿到全部,使用效率低),动态分配(使用前临时申请,会有死锁),资源抢占方式(被抢占资源的进程需要回滚执行)
2、控制程序执行的视角
多道程序同时计算,同时假如内存抢CPU,才可以使外围设备充分运行,提高效率
多道程序处理器利用率计算:找出图中一个重复的区间,答案即为
多道程序设计:让多个程序同时进入计算机的主存储器进行计算
注意:不是多线程(一个进程中分多个线程)或流水线(一个线程中的多条指令同时执行)
特点:
- CPU与外部设备充分并行
- 外部设备之间充分并行
- 发挥CPU的使用效率
- 提高单位时间的算题量
- 但是,单道程序的运算时间会增加
多道程序系统的实现:
进程:为进入内存执行的程序而建立的管理实体
OS管理与控制进程程序的执行,协调管理各类资源在进程中的使用
- 处理器的管理和调度
- 主存储器的管理和调度
- 其他资源的管理和调度
实现要点:
- 使用资源:调用操作系统提供的服务例程
- 复用CPU:调度程序(CPU空闲时安排一个程序来用)
- CPU与I/O充分并行:设备控制器与通道
- 运行的程序让出CPU:中断
多道程序设计学习内容:
3、操作控制计算机的视角
系统操作方式:操作接口:系统程序
两类作业级接口:
- 脱机作业控制方式:作业控制语言
- 联机作业控制方式:操作控制命令
脱机作业控制方式
OS:提供作业说明语言;用户:编写作业说明书,确定作业加工控制步骤;操作员:控制台输入作业;OS:作业控制程序自动控制作业执行
用户提交的是作业而非单条指令,然后电脑后续再执行。
联机作业控制方式
计算机:提供终端;用户:登录系统;OS:提供命令解释程序;用户:练级输入操作控制命令,直接控制作业步的执行(分时OS的交互控制方式)
用户是通过一条条命令实时输入控制的,例如Windows的powershell就是一个联机作业控制方式
命令解释程序:接收和执行一条命令(由用户提出,用于对作业加工处理)
处理过程:OS启动命令解释程序,等待输入(键盘中断、鼠标点击等)。用户每次输入一条命令就中断一次
- 前台命令:在终端中占用当前的会话,执行结束后再次输出
- 后台命令:终端内部处理的命令
4、人机交互的视角
设备包括:传统终端设备和新型模式识别设备,用户控制命令运行和理解
发展:60s行命令控制方式、70s全屏幕控制方式、70s后期WIMP界面(特征为窗口图标菜单和指示装置为基础的图形用户界面)、85年多媒体计算机(音频视频图形和人机交互控制结合)、80s虚拟现实系统(模拟三维虚拟世界,身临其境,支持三位HCL)
新型人机交互产品:侧重多媒体技术(触摸式桌面计算机、3D显示器等)、多通道技术(手写汉字识别系统,语音识别)
5、程序接口的视角
操作系统的程序接口:为程序运行扩充的编程接口
系统调用:为所有运行程序提供访问操作系统的接口,可以用于完成某种特定功能
实现机制
- 陷入处理机制
- 陷入指令(用于实现系统调用的中断)
- 系统调用提供编号
要点:编写系统调用程序,设计入口地址表,陷入时保护现场
6、系统结构的视角
OS是第一个大规模软件系统,
OS构建:内核(最复杂)、进程、线程、管程等
设计概念:模块化/层次化/虚拟化
操作系统内核
- 单内核:各部件杂然混居(Uinx/Linux/Windows)
- 微内核:结构性部件与功能性部件的分离
- 混合内核:微内核与单内核折中
- 外内核:减少内核软件抽象化,专注于硬件的抽象化
操作系统实现的一种层次式结构:
另一种:
单内核与微内核