文章目录
导论
什么是操作系统
内容
- 操作系统的目的
- 操作系统的定义
- 计算机硬件结构
- 操作系统启动
计算机系统的4个部分
用户,系统和应用程序,操作系统,硬件
操作系统的目标
- 管理计算机硬件的程序
- 在用户和计算机硬件间的中介
- 操作系统的目标:
~运行用户程序(核心目标)
~更方便使用计算机(面向用户)
~更高效使用计算机(面向系统) - 不同用户/系统/阶段有不同侧重点
~早期:高效
~目前:方便
用户视角
- 不同用户,不同视角
~PC用户:方便、易用、高性能、不关心资源利用率
~主机用户:满足所有用户-资源利用率
~工作站用户:性能和资源利用率折中
~手持设备用户:方便、电池续航时间
~有些计算机无用户界面-家电的电脑控制器
系统视角
- OS是资源分配器
~管理所有资源
~面对冲突的资源请求,决定如何分配资源,以便系统能有效公平运行 - OS是控制程序
~管理用户程序运行,以防止计算机资源的错误使用或使用不当
操作系统定义
- 没有一个可广泛接受的定义
- “当你预定一个操作系统时零售商所装的所有东西”(极大化)
~随系统不同而变化很大 - 内核 才是操作系统(极小化)
~“一直运行在计算机上的程序”
~其他程序为系统程序和应用程序
~内核不运行则计算机无法运行
现代计算机系统
- 一个或多个CPU和内存
- 若干通过总线相连的设备控制器及其设备
- 总线
- CPU和设备控制器可 并行 工作,并竞争内存
计算机系统操作
- 每个设备控制器有一个本地缓冲
- CPU在 内存和本地缓冲 之间传输数据
- I/O控制器从 设备到本地缓冲 之间传输数据
- 协作:控制器通过调用中断通知CPU完成操作
中断
- 中断: 指当出现需要时,CPU暂时停止当前程序的执行,转而执行处理新情况的程序和执行过程
- 中断号: 外部设备进行I/O操作时产生的中断信号,发送给CPU
- 中断服务程序: 中断服务程序的入口地址
- 操作系统是 中断驱动
系统启动
- 引导程序
- 在打开电源或重启时被装载
- 通常位于ROM或EPROM中,称为Firware(固件)
- 初始化所有硬件
- 负责装入操作系统内核并开始运行
多道程序设计和分时
内容
- 简单批处理
- 多道程序设计
- 分时
简单批处理系统
- 最早的操作系统?
- 自动作业调度
— 自动从一个运行完的作业转换到下一个作业 - 常驻监控程序
— 控制作业运输
— 调度作业运行 - 单道程序设计
批处理系统
- 批处理
— 用户将一批作业提交操作系统后就不再干预,由操作系统控制它们自动运行 - 批处理操作系统
— 采用批量处理作业技术的操作系统
— 单道批处理系统
— 多道批处理系统 - 批处理操作系统
— 不具有交互性
— 提高CPU的利用率
多道程序系统
- 单用户通常不能总使得CPU和设备在所有时间内都忙碌
- 多道程序设计: 在内存中同时存在多道作业,在管理程序控制下 相互穿插运行
— 通过作业调度选中一个作业并运行
— 当该作业必须等待时(如等待I/O),切换到另一个作业 - 目的
— 提高CPU的利用率,充分发挥计算机系统部件的并行性 - 现代操作系统广泛采用多道程序设计技术
并行和并发区别
- 并行: 两个或多个作业在同一时刻运行
- 并发: 两个或多个作业在同一时间间隔内依次运行
— 一个时间段中,有几个作业在同一个处理机上运行,但任一时刻点上只有一个作业在处理机上运行 - 随着多核处理器的出现,这两个概念并不严格区分
分时系统
- 分时系统 (或多任务) 是多道程序设计的延伸
- 作业分类
—批处理作业
— 交互作业
~ 响应时间短<1S
~多道程序设计技术 - 时间片
— 把一段CPU时间按照固定单位进行分割,每个分隔得到的时间段称为一个时间片
— 每个任务依次轮流使用时间片 - 分时系统
—一种联机的多用户交互式的操作系统
—一般采用时间片轮转方式使一台计算机为多个用户服务
—在单位时间内,每个用户获得一个时间片并运行
—保证用户获得足够小的响应时间,并提供交互能力 - 原理
—若某个作业在分配的时间片用完之前计算还未完成,该作业就暂时中断,等待下一轮;此时,处理机让给另一个作业使用
—每个用户好象独占一台计算机(时间片小的原因)
第一个分时系统
- CSS(Compatible Time-Sharing System)
—1962年
—第一个分时系统
—MIT开发
—运行在IBM 7094机
—支持32个交互式用户
操作系统类型
大型机系统
- 简单批处理系统
- 多道程序系统
- 分时系统
- 目标:系统效率
- 例子:
- IBM AIX
- IBM z/OS
- HP-Unix
桌面系统
- 个人计算机
1.20世纪70年代
2.每个人拥有一台计算机
3.设计目标:用户方便性,响应速度
4.图形化界面(GUI)
5.多数技术沿用大型机 - 例子
1.Windows
2.Linux
3.Mac OS
手持(移动)系统
- 手持设备,如手机、平板
- 资源有限
- 扩展功能
(1)GPS导航
(2)移动支付
(3)位置服务 - 例子
(1)Apple iOS
(2)Google Android
嵌入系统
- 嵌入式系统(Embedded system):完全嵌入受控器件内部,为特定应用而设计的专用计算机系统
- 随着单片机的出现而出现
- 特点:
(1)内核较小、专用性强、系统精简、高实时性 - 应用场合
(1)工业控制、交通管理、信息家电、家庭智能管理、POS网络、环境工程
分布式系统
- 支持分布式处理的软件系统,又称松耦合系统
- 通过网络通信:TCP/IP
- 网络操作系统
- 没有真正意义上的分布式操作系统
- 例子:
(1)客户机-服务器系统
(2)P2P系统
多处理器系统
- 多处理器系统:有多个紧密通信的处理器的系统
(1)并行系统
(2)紧耦合系统 - 多个处理器共享计算机总线、时间、内存和外设等
- 多处理器系统的优点:
(1)增加吞吐量
(2)节省资金
(3)增加可靠性
多核处理器系统
- 多核处理器系统
(1)一个芯片多个核,一个核即一个处理器
Intel Xeon E7
- E7 8890 V4
- 24内核
- 最高频率3.34GHZ
- 60MB Cache
多核/多处理器系统分类
- 对称多处理
(1)每个处理器运行操作系统的相同副本
(2)许多进程可以立即运行不会降低性能
(3)多数现代操作系统支持SMP - 非对称多处理
(1)各个处理器不对等
(2)一个主处理器,若干从处理器
(3)主处理器为从处理器安排任务
(4)一般用于特定的场景,如游戏、通信等
(5)不适合PC,但适合手机等要求功耗的设备
集群系统
- 通过专用网络连接一群计算机,把这些计算机虚拟化为一台超强计算能力的计算机给用户使用
- 优点:
(1)高性能
(2)低成本
(3)高可扩展性
(4)高可靠性
神威 太湖之光
- 2016年6月,计算能力世界第一
- 世界上首台运算速度超过十亿亿次的超级计算机
- 40个运算机柜和8个网络机柜
- 40960块处理器
- 4核申威26010处理器
IBM SUMMIT
- 2018年运算最快计算机
- 美国橡树岭国家实验室
- 浮点运算速度峰值达到每秒20亿亿次
- 4608台计算机服务器
操作系统操作和功能
操作系统操作
双重模式操作
- 程序运行中的问题
(1)软件错误或特定请求产生异常或陷阱
—除数为零,完成操作系统服务等
(2)其他进程问题:如死循环等 - 解决问题:双重模式
(1)允许OS保护自身和其他系统部件
(2)用户模式和内核模式
(3)由硬件提供 模式位
(4) 特权指令: 可能引起系统崩溃的指令,只能运行在内核模式
系统调用:模式转换
- 用户程序需要用特权指令怎么办?
- 解决办法:系统调用(System Call)
- 软件中断
I/O和内存保护
-I/O保护
(1)防止用户程序执行非法I/O
(2)解决办法: 所有I/O指令都是特权指令
(3)用户程序通过系统调用进行I/O操作
- 内存操作
(1)防止内存非法访问
(2)解决办法: 存储保护机制
(3)硬件支持
内存保护例子
- 基址寄存器
- 限长寄存器
定时器
- 如操作系统不能获得CPU控制权,就无法管理系统
(1)用户程序死循环
(2)用户程序不调用系统调用 - 解决办法:定时器
(1)在一段时间后发生中断,CPU控制权返回操作系统
(2)固定时间和可变时间定时器
(3)利用时钟和计数器实现
操作系统功能
进程管理
- 操作系统的核心目标:运行程序
- 进程:运行中的程序
- CPU/进程管理:对CPU进行管理
- 具体内容:
(1)创建和删除用户和系统进程
(2)暂停和恢复进程
(3)提供进程同步机制
(4)提供进程通信机制
(5)提供死锁处理机制
内存管理
- 程序运行必须的存储设备:
(1)CPU只能直接访问寄存器、高速缓存和内存
(2)处理前和处理后的所有数据都在内存
(3)执行的指令都在内存 - 内存管理:提供内存的分配、回收、地址转换、共享和保护等功能:
(1)提高内存利用率
(2)提高内存访问速度,从而提高计算机运行效率
文件功能
- 解决信息在计算机中存储问题
- 以文件为单位,以目录为组织方式构建文件系统
- 内容:
(1)文件逻辑结构
(2)文件物理结构
(3)目录
(4)文件检索方法
(5)文件操作
(6)空闲空间管理
(7)存储设备管理
I/O系统管理
- 管理种类繁多的各种I/O设备,解决计算机中信息的输入和输出问题
- 关键:设备无关性(独立性):
(1)所有物理设备按照物理特性抽象为逻辑设备
(2)应用程序针对逻辑设备编程
(3)应用程序和物理设备无关 - 内容:
(1)设备管理
(2)设备驱动