目录
第一章 操作系统概述
1.1 操作系统概述
为什么要有操作系统
- 计算机硬件(裸机)难于使用
- 用户几乎不可能使用裸机——计算机硬件只能识别0,1 二进制机器码
- 机器码直观性差,容易出错,难于交流——因此,通常在计算机硬件之上覆盖一层软件,方便用户使用计算机硬件
什么是操作系统
- 操作系统是管理计算机硬件的程序,是整个计算机系统中首要的,最重要的最复杂的系统软件
- 是计算机软件的核心,是计算机系统的大脑
- 在计算机用户和计算机硬件之间起媒介作用的一种程序
- 操作系统在整个计算机系统的位置:
由此图可以看出:操作系统是硬件之上的第一层软件,是硬件的首次扩充,有事其他软件运行的基础
计算机系统部件
- 硬件(Hardware):cpu,memory,I/Odevices 提供基本的运算资源
- 操作系统(Operating system):在各种应用程序和用户之间控制与协调对硬件的使用
- 应用程序(Application programs):定义解决用户问题的资源使用方式(编译,数据库,等)
- 用户(User):人 机器 其他计算机
操作系统的目标
- 执行用户程序并使用户问题更易解决
- 使计算机系统更容易使用
- 以一种高效的方式使用硬件
操作系统的其他定义
- 资源分配者——管理和分配资源
- 控制程序——控制用户程序的运行和I/O设备的操作
- Kernel内核——在全时运行的一个程序
小结
计算机系统的作用:(对用户——接待员 对系统——管家)
- 计算机硬件,软件资源的管理者
- 用户使用计算机硬件,软件的接口
1.2 操作系统发展
发展动力(需求推动发展)
- 资源利用角度:为了提高计算机资源利用率和系统性能,从单道到多道、集中到分布、专用到广泛
- 用户角度:方便用户,人机交互
- 技术角度:物理器件的发展,计算机体系结构的不断发展:单处理机,多处理机,多核,计算机网络。
OS的发展和计算机硬件计数、体系结构的发展相关
发展过程
一、手工操作
- 工作方式:人工操作 用户是计算机专业人员
- 编程语言:机器语言 I/O:纸袋或者卡片
- 缺点:
1. 用户独占全机,独占系统的全部硬件资源,设备利用率低
2. CPU等待用户:手工装卸卡片 - 主要矛盾——人机矛盾:人工操作方式与机器利用率的矛盾,CPU与I/O速度不匹配的矛盾
- 提高效率的途径:批处理、脱机处理
脱机I/O方式
二、单道批处理系统
- 时间:50年代末~60年代中(晶体管)
- 方式:把一批作业以脱机输入方式输送到磁带/磁鼓,利用磁带或磁盘把任务分类编成作业顺序执行,每批作业由专门监督程序(monitor)自动依次处理
- 意义:解决了高速计算机的运算,处理能力与人工干预之间的速度矛盾,实现了作业自动过渡
- 原理图:
- 运行特征:
- 顺序性:磁带上的各道作业是顺序进入内存,各作业的完成顺序与他们进入内存的顺序相同
- 单道性:内存中仅有一道程序运行
- 自动性
- 优点:减少了CPU的空闲时间,提高了主机CPU和I/O设备的使用效率,提高了吞吐量
- 缺点:cup和i/o闲忙不均匀
1.3 多道批处理系统
-
时间:60年代中~70年代中(集成电路)
-
多道:内存中同时存放几个作业,使之都处于执行的开始点和结束点之间多个作业共享CPU、内存、外设等资源
-
目的:利用多道处理提高资源利用效率
-
多道批处理和单道批处理对比
-
过程
- 在内存中同时存有多个作业,CPU在其中切换
- 只要系统中总是存在可执行的作业,CPU就永远不会闲着
- 通过组织作业使得CPU总在执行其中一个作业,从而提高CPU利用率
-
运行特征
- 多道性:内存中同时驻留多道程序并发执行,从而有效的提高了资源利用率和系统吞吐量
- 无序性:作业完成顺序与他进入顺序之间没有严格对应关系
- 调度性:作业调度,进程调度
-
优点
- 资源利用率高:CPU、内存、i/o
- 系统吞吐量大
-
缺点
- 无交互能力,用户响应时间长
- 作业平均周转时间长
多道批程序对OS特点的要求
60年代通道和中断技术的出现
- 通道:是一种专用部件,负责外部设备与内存之间信息的传输
- 中断:主机接到外界信号(来自CPU外部或者内部)时,立即终止原来的工作,转去处理这一外来事件,处理完成后,主机又回到原来工作点继续工作。
1.4 分时系统
一、概念
- 指多个用户分享使用同一台计算机,分时共享硬件和软件资源
- 70年代中期至今
二、实现方式
二、过程
- 作业直接进入内存
- 每个作业一次只运行很短的时间
- 分时计数: 把CPU的响应时间分成若干个大小相等或者不等的时间单位,成为时间片,每个终端用户获得CPU(一个时间片)后开始运行,当时间片到,该程序暂停运行,等待下一次运行
三、特点
- 人机交互性好
- 共享主机:多个用户同时使用
特点总结:- 多路性:众多联机用户可以同时使用同一台计算机
- 独占性:多终端用户感觉自己独占了计算机
- 交互性:用户与计算机之间可以进行会话
- 及时性:用户请求能够在很短时间获得响应
四、发展
第一次作业
一. OS的作用可表现在哪几个方面?
- 执行用户程序并使用户问题更易解决
- 是计算机系统更容易使用
- 以一种高效的方式使用硬件
二. 试说明推动多道批处理系统形成和发展的主要动力是什么?、
动力:为了提高CPU、内存、I/O等资源利用率
三. 实现分时系统的关键问题是什么?应如何解决?
- 关键问题是:及时接收,及时处理
- 解决:
- 及时接收:设置多路的输入和缓冲。多路输入放入缓冲中,主机轮流处理缓冲中的信息
- 及时处理:作业直接进入内存,每个作业一次只运行很短的时间;通过分时技术,把CPU分成若干时间片,每个终端用户获得CPU(一个时间片)后开始运行,当时间片到,该程序暂停运行,等待下一次运行
四. 什么是硬实时任务和软实时任务?试举例说明。
- 硬实时任务:指系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。
例如:火车时间,导弹火箭发射,核电站,飞机降落 - 软实时任务:软实时任务是指它的截止时间并不严格,偶尔错过了任务的截止时间,对系统产生的影响不大。
例如:娱乐视频播放
第二章 操作系统结构
2.1 计算机硬件
计算机体系结构图:
- 计结构图说明
- I/O 设备与CPU可并行运行
- 每一设备控制器负责一个设备类型
- 每一设备控制器有一局部缓存
- CPU 通过局部缓存与主存交换数据
- I/O从设备到设备控制器的局部缓存
- 设备控制器通过引起中断通知CPU操作已完成
- 中断机制
- 硬件中断:硬件设备控制器触发的中断
- 软件中断(陷阱):
- a trap (or an exception异常:比如除零错误,非法内存访问
- a system call 系统调用
- 为什么需要中断(为什么有了中断就可以多道)?
使系统效率更高,响应性更好 - 现代操作系统是中断驱动的
- cpu收到中断后就会将控制权转移到中断服务程序
- 什么是中断服务程序?(就是当前需要处理的代码(当事件出现后要怎么处理这个代码))
- 怎么转移:
- separate segments of code determine what action should be taken for each type ofinterrupt(有不同的代码段决定对每种类型的中断应该采取什么行动)
- a generic routine to examine the interrupt information, and in turn call the specific handler(有一个通用例程,检查中断信息,当有中断出现时,调用一个特殊的句柄,这个句柄就是中断服务程序)
- through the interrupt vector, which contains the addresses of all the service routines(通过中断向量,快速找到中断服务程序,他存储了这个例程的地址)
- cpu收到中断后就会将控制权转移到中断服务程序
- 输入输出结构(I/O Structure)
- 两种I/O操作:
- 同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。
- 例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事
- 异步: 异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。(通过中断程序告知)
- 例如 ajax请求(异步): 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕
- 同步和异步图示
- 同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。
2.2 硬件保护
- 为什么要保护
- 早期:单用户系统,程序员可完全控制系统
- 单道批处理:monitor有一些控制权,可能会出问题,读卡出错,此时需要保护
- 多道批处理:系统开始更复杂。多个进程竞争资源,一个程序执行出现问题的时候可能会修改其他程序或者操作系统
- 把硬件陷入OS的作用
- 发现程序执行非法指令,或访问不属于自己的地址空间的内存 或者其他问题
- 可以让操作系统终止进程
- 如何实现保护
- 共享系统资源要求操作系统确保有误程序不会引起其他程序的运行错误
- 至少在两个运行状态之间提供硬件支持
- 怎么实现——两状态操作
1. 用户态:代表用户执行
2. 管态(特权模式或系统模式)-代表操作系统执行 - 如何区分两态:在硬件中添加一个模式位,表示当前模式,可以放入psw(程序寄存器)
状态转换过程:
- 怎么实现——两状态操作
- 如何识别用户的操作可能错误或者带来后果——采用特权指令的方式:就是只能在管态运行的指令(Privileged instructions can be issued only in monitor mode)
- 特权指令(把有可能会引发错错误的指令定义成特权指令):
- 在用户态的时候:会把模式切换到管态,通过系统调用来使用这些指令
- 在管态或者系统中:可以直接使用
- 对于I/O的保护:
- 所有的I/O指令都是特权指令(用户不能直接用i/o指令,必须通过系统调用)
- 通过这些方法确保用户程序不能再管态下控制计算机
- 内存保护——必须保护中断向量和中断服务程序
- 原因:因为如果可以修改中断向量或者中断服务程序,就会可能让用户程序拥有管态的权利,这两者存在于内存中,所有需要保护内存
- 如何保护——确保进程能访问合法空间
- 基址寄存器:指向起始地址
- 界限寄存器:指向长度
- 如何实现内存保护:
*用户态下所生成的每个地址都要经过硬件检查(用户态下所生成的每个地址都要经过硬件检查)
- 内存的保护确保了以下操作只能在管态下运行
- 内存的保护确保了以下操作只能在管态下运行
- CPU保护
- 为什么:需防止用户程序陷入死循环或者不调用系统服务且不将控制权返回到OS
- 方法:定时器(这是一个特权指令,当定时器到的时候,触发中断,陷入系统)
- 设定计时器以便产生中断
- 定时器中断,控制权会返回给OS
2.3 操作系统服务
- 操作系统的目标:
- 提供的服务
- 为用户和程序提供接口
- 各组成部分及其相互连接
- 操作系统提供的服务(for users)
- User interface (用户接口):
- Varies between Command-Line (CLI)就是命令行
- Graphics User Interface (GUI), Batch图形界面
- Program execution(程序执行):- 调入一个程序进内存并运行之的系统能力
- I/O operations(I/O操作):- 由于用户程序不能直接执行I/O操作,操作系统必须提供手段完成I/O操作
- File-systemmanipulation (文件系统操作):-读、写、创建和删除文件的能力
- Communications(通信):运行的进程在同一计算机或由网络连接的不同系统中交换信息。通过共享存储器或消息传递实现
- Error detection(出错检测):探测在CPU与内存硬件中,在I/O设备中,或在用户程序中的错误,确保正确运算
- User interface (用户接口):
- 其他操作系统服务
- Resou