学习资源: https://www.bilibili.com/video/av46264774/
一、操作系统概述
1.1 操作系统初步认识
- 操作系统与普通软件有什么区别? 功能上的区别(见1.2 功能)
- 没有安装操作系统,计算机能运行程序吗? 能(bios)。
- 没有安装操作系统,普通用户能正常使用吗? 不能
基本功能:
- 提供操作界面
- 控制程序运行
- 管理系统系统资源
- 配置系统参数
- 监控系统状态
- 工具软件集合
思考:
- hello.exe 文件如何存放? (硬盘)
- hello.exe 如何启动?
- 如何为hello.exe分配内存? (内存)
- printf如何输出字符串? (设备)
- while 死循环会不会独占CPU?
- 程序结束如何退出系统? (释放内存等)
1.2 操作系统功能和定义
功能:
-
进程管理(CPU管理), 多个进行并发运行
- 进程控制: 创建、暂停、唤醒、撤销
- 进程调度: 调度策略,优先级
- 进程通信: 进程间通信
-
内存管理
- 内存分配
- 内存共享
- 内存保护
- 虚拟内存
思考
-
有没有遇到因为内存小导致运行失败的情况?
可能运行速度慢,但一定可以运行
-
一个循环程序,不断的申请(malloc) 100M内存,在内存1G的机器上,一共可以申请多少次?
答: 实测可以19次, 1.85G内存,大于实际内存 1G。而且应用程序、操作系统没有崩溃。
-
假如5个相同的上述程序同时运行呢?
操作系统仍然不会崩溃。每个程序的申请内存依然是1.85G。
-
设备管理
- 设备的分配和调度
- 设备的无关性
- 设备传输控制(设备和CPU,设备和内存)
- 设备驱动
-
文件管理
- 存储空间管理(硬盘)
- 文件的操作
- 目录的操作
- 文件和目录的存取权限管理
-
网络管理
定义: 操作系统是一个大型系统程序
- 提供用户接口(图形界面、命令),方便用户控制计算机
- 负责为应用程序分配和调度软硬件资源,并控制与协调应用程序并发活动,帮助用户存取和包含信息。
操作系统的地位:
1.3 操作系统发展历史
用户需求提升和硬件技术进步是操作系统发展的两大动力。
计算机硬件发展的四个典型阶段
- 电子管时代 1946-1955
- 晶体管时代 1955-1965
- 集成电路时代 1965-1980
- 大规模集成电路时代 1980-
速度、容量、稳定性、可靠性都得到逐步提高。
操作系统发展的四个典型阶段
-
手工操作(无操作系统) 50年代早期
结构特点:
- 硬件: 电子管、接线面板
- 程序: 二进制程序,打孔: 纸袋和卡片
使用特点:
- 程序准备、启动、结束: 手工处理,繁琐耗时
缺点:
- 效率低: CPU有效运行时间极低
- 用户独占
- 缺少交互
-
单道批处理系统 50年代
- 管理员事先将多个作业输入到磁盘形成作业队列
- 操作系统依次自动处理队列中的每个作业(装入-运行-撤出…)
- 程序的装入和撤出: 自动完成,效率高
- 运行完毕,通知用户取结果
特点:
- 批量: 作业队列
- 自动: 识别作业,装入和撤出
- 单道: 依次、串行
外设与CPU交替空闲和忙碌,CPU和外设利用率低。
-
多道批处理系统 60年代初
在内存中存放多道程序,当某道程序因为某种原因(例如执行I/O操作时)不能继续运行而放弃CPU时,操作系统便调度另一程序投入运行。这样可以使CPU尽量忙碌提高系统效率。
- 提高系统CPU利用率
- 提高系统吞吐量
A,B两道程序相互穿插运行,使CPU和外设都尽量忙碌。
特点:
- 多道: 内存同时存放多道程序
- 并行: 宏观上
- 串行: 微观上
缺点:
-
作业处理时间长
-
交互能力差
-
运行过程不确定
-
分时系统 60年代中
1.4 分时技术与分时操作系统
60年代硬件的两个重大进展:
- 中断技术 CPU收到外部信号(中断信号)后, 停止当前工作,转去处理该外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作。
- 通道技术 专门处理外设与内存之间的数据传输的处理机
分时操作系统的背景
- 事务性任务的涌现
- 交互性高
- 响应快速
- 要求支持多任务、多用户
- 多终端计算机
- 高性能计算机(运算, CPU和内存) + 多个终端(输入和显示)
- 主机采用分时技术轮流为每个终端服务,每个终端都感觉到是“独占”主机。
概念
- 主机以很短的"时间片"为单位,把CPU轮流分配给每个终端使用,直到全部作业被运行完。
- 由于时间片很短,在终端数量不多的情况下,每个终端都能重新获得CPU,使得每个终端都能得到及时响应。
- 等待周期 = 时间片 x 终端数量
分时系统的特点
- 多路调制性,多用户联机使用同一台计算机
- 独占性, 用户感觉独占计算机
- 交互性,及时响应用户的请求
UNIX第一个实用化的分时系统操作
- 实现操作系统的可移植性
- 实现了硬件无关性
- 引进了"特殊文件"的概念: 把外设看作文件,实现对外设统一管理
1.5 典型操作系统类型
操作系统的进一步发展(分时系统的衍化)
- 微机操作系统 (windows, macos, linux)
- 多处理机操作系统
- 网络操作系统 (普通操作系统 + 网络通信 + 网络服务)
- 实时操作系统 (某些任务要优先紧急处理, 强调作业完成的时限)
- 嵌入式操作系统 (andriod, linux)