title: “操作系统-课程概述与发展” original_path: “/田浩然上传的资料/0A005_操作系统部分/计算机科学技术基础-操作系统1.pdf” author: “陈向群” source: “北京大学软件与微电子学院” date: “2008-2009第一学期” size: “1.33 MB” pages: 115 processed_date: “2026-08-31” method: “markitdown PDF文本提取” status: “done” tags:
- 操作系统
- 计算机科学基础
- 课程讲义
操作系统课程概述
课程基本信息
- 授课教师:陈向群(cherry@ss.pku.edu.cn)
- 所属院系:北京大学软件与微电子学院
- 课程性质:计算机科学技术基础(操作系统部分)
- 成绩评定:作业25% + 课堂测验5% + 期末考试20%
参考教材
主教材
- 《操作系统教程》- 陈向群、杨芙清 - 北京大学出版社
- 《现代操作系统》- 陈向群等译 - 机械工业出版社
其他参考书
- 《计算机操作系统教程》- 张尧学、史美林 - 清华大学出版社
- 《计算机操作系统教程》- 周长林、左万历 - 高等教育出版社
- 《操作系统教程》- 孙钟秀主编 - 高等教育出版社
- 《计算机操作系统》- 汤子瀛等 - 西安电子科技大学出版社
- 《Modern Operating System》- Andrew S.Tanenbaum
- 《Operating Systems》- William Stallings
- 《Operating System Concept》- Abraham Silberschatz
- 《Applied Operating System Concept》- Abraham Silberschatz
核心观点
课程目的
不是”如何使用操作系统”,而是理解操作系统如何工作:
- 操作系统的内部工作方式
- 操作系统实现涉及的数据结构和算法
- 设计、开发操作系统过程中的问题、解决方案和折中权衡
- 操作系统中的典型技术及应用
教学思路(三个层面)
- 操作系统使用 → 概念、技术
- 操作系统工作原理 → 实例(Windows、Linux、Solaris、μC/OS-Ⅱ)
- 设计一个操作系统
操作系统的地位
“Operating Systems are to Computer Science what mathematics is to engineering” — Dave Probert, Windows Kernel Group Architect, Microsoft
操作系统的定义
操作系统是计算机系统中的一个系统软件,是一些程序模块的集合——它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效地运行。
关键词解读
- 有效:系统效率,资源利用率
- 合理:公平与否(避免”饥饿”),合理分配(避免”死锁”)
- 方便:用户界面 + 编程接口
操作系统的四大特征
| 特征 | 说明 |
|---|---|
| 并发(Concurrency) | 处理多个同时性活动的能力。宏观上同时执行,微观上轮流执行 |
| 共享(Sharing) | 操作系统与多个用户程序共同使用系统资源 |
| 虚拟(Virtual) | 一个物理实体映射为若干个逻辑实体 |
| 随机性/不确定性 | 系统随时响应不可预测事件;由共享和并发引起 |
虚拟化示例
- CPU → 每个用户的”虚处理机”
- 存储器 → 每个进程的地址空间(指令+数据+堆栈)
- 显示设备 → 多窗口或虚拟终端
操作系统的五大功能
1. 处理机管理(CPU管理)
- 进程控制:创建、撤销、挂起、改变优先级
- 进程同步:协调并发进程之间的推进步骤
- 进程通信:进程间传送数据
- 进程调度:充分利用处理机资源,提高系统性能
2. 存储管理
- 存储分配与回收
- 存储保护(访问合法性检查)
- 地址映射(逻辑地址→物理地址)
- 内存扩充(覆盖、交换、虚拟存储)
3. 设备管理
- 设备驱动程序(内核中)
- 设备独立性(统一I/O接口)
- 设备分配与回收
- 虚拟设备(SPOOLing)
- 缓冲区管理(单缓冲、双缓冲、公用缓冲)
4. 文件管理(文件系统)
- 文件存储空间管理
- 目录管理
- 文件的读写管理和存取控制
5. 用户接口与作业管理
- 系统命令(命令行、菜单、GUI、脚本)
- 编程接口(系统调用、库函数)
研究操作系统的几种观点
| 观点 | 核心思想 |
|---|---|
| 作为软件 | 软件特性:界面(命令、系统调用)+ 结构(组成、功能、关系) |
| 资源管理 | 管理硬件资源(CPU、内存、设备)和软件资源(文件、信息) |
| 进程视角 | 操作系统由可同时独立运行的进程 + 协调核心组成 |
| 虚机器 | 分成若干层,每层构成虚机器,支持上一层 |
| 服务提供者 | 提供标准工具(库、窗口系统)、错误检测、统计 |
其他观点
- 幻觉制造者:提供硬件高层界面,取消硬件限制(无限内存、无限CPU)
- 历史教员:学习过去,预测未来
- 政府/仲裁者:协调竞争者,保护用户互不干扰
操作系统的发展(五个阶段)
第一阶段(1948-1970):硬件昂贵,人工便宜
- 目标:充分利用硬件资源
- 特点:
- 控制台:一次一个用户(独占资源)
- 批处理:装入→运行→打印输出
- 多道程序设计:多个程序同时运行
- SPOOLing技术
- 数据通道、中断:I/O和计算重叠
第二阶段(1970-1985):硬件便宜,人工昂贵
- 目标:更好的服务
- 特点:
- 交互分时:多个用户同时与系统交互
- 用户可以在线工作:开发、调试、编辑
- 重大失败案例:
- IBM OS/360:发布时带着已知1000个错误
- MULTICS:1963年开始,1969年才发布
- 成功案例:UNIX诞生于贝尔实验室
第三阶段(1981-):硬件非常便宜,人工非常昂贵
- 个人计算时代:
- 开始:PC硬件资源有限,OS是一个例程库
- 逐渐:PC资源丰富,OS又成为庞然大物
- 回归:存储保护、多道程序设计又出现
第四阶段(1981-):分布式系统
- 网络:允许不同机器很容易共享资源
- 客户/服务器模型
- 解决问题:共享、安全
第五阶段(1995-):移动计算时代
- 各种移动设备出现(笔记本、PDA、手机)
- 特点:小型、移动、便宜,但能力有限
历史上的重要操作系统
| 系统 | 说明 |
|---|---|
| FMS/IBSYS | IBM为7094配备的操作系统 |
| OS/360 | IBM为系列机360配备,首个采用小规模集成电路的主流机型 |
| CTSS | Compatible Time Sharing System,MIT 1961年开发,第一个分时操作系统 |
| MULTICS | MULTiplexed Information and Computer Service,1965年ARPA支持开发 |
| UNIX | 1969年Ken Thompson和Dennis Ritchie在PDP-7上开发,1973年用C重写 |
| Linux | 1990年Linus在赫尔辛基大学学习时开发 |
UNIX的成功因素
- 用C语言编写,可移植性强
- 源代码有效,容易适应特殊需求
- 良好的通用多用户、多任务、分时操作系统
Linux的诞生
- Linus买PC机因为上机需要排队等待
- 开发第一个程序:两个进程向屏幕写字母,定时器切换
- 需要终端仿真程序存取Usenet → 编写调制解调器驱动
- 陆续开发:显示器、键盘驱动 → 磁盘驱动 → 文件系统 → 进程切换
- 操作系统原型就这样诞生
操作系统的分类
1. 批处理操作系统
- 工作方式:用户交作业→操作员组成批次→系统自动依次执行
- 特点:
- 多道:内存同时存放几个作业
- 成批处理:用户不能干预运行
- 优点:资源利用率高,吞吐量大
- 缺点:交互性差,调试困难,周转时间长
2. 分时操作系统
- 时间片:CPU时间划分为片段,轮流服务每个用户
- 特点:
- 多路性:多个用户同时使用
- 交互性:及时响应请求
- “独占”性:用户感觉不到为他人服务
- 及时性:追求响应时间
- 通用操作系统:分时优先,批处理在后(前台/后台)
3. 实时操作系统
- 定义:在规定时间内完成处理,控制设备协调工作
- 分类:
- 硬实时:动作必须在规定时刻完成
- 软实时:可接受偶尔违反时限
- 主要功能:
- 实时时钟管理(定时、延时)
- 过载保护(缓冲区排队、丢弃任务)
- 高度可靠性和安全性(容错、冗余备份)
4. 个人计算机操作系统
- 单用户多任务
- 追求:界面友好、使用方便、丰富应用软件
5. 网络操作系统
- 基于计算机网络
- 包括:网络管理、通信、安全、资源共享、网络应用
- 目标:相互通信、资源共享
6. 分布式操作系统
- 特征:
- 统一的操作系统
- 资源进一步共享
- 透明性(分布对用户不可见)
- 自治性(主机平等,无主从)
- 处理能力增强、速度更快、可靠性增强
7. 嵌入式操作系统
- 运行在嵌入式系统中
- 对资源有严格限制(大小、内存、能源)
- 具有某些实时系统特征
多处理机操作系统
为什么需要多处理机?
- 获得大量联合计算能力的方式是将多个CPU连接成单一系统
- 提高性能和可靠性
类型
- 紧密耦合:通过快速总线或开关阵列相连,共享内存
- 松散耦合:各自存储器、I/O设备,通过通道或通信线路相连
调度方式
- 非对称式(主从模式):主处理器运行OS管理资源
- 对称式:OS交替在各个处理器上执行,负载平均
智能卡操作系统
- 包含CPU芯片的信用卡
- 特点:严格能耗和存储空间限制
- 有些面向Java(ROM中有JVM解释器)
- 通过”命令-响应对”方式通信
重点小结
- 典型的、历史上有重要意义的操作系统:FMS、OS/360、CTSS、MULTICS、UNIX、Linux
- 重要的操作系统技术:多道程序设计、SPOOLing、分时、虚拟存储
- 操作系统分类:批处理、分时、实时、个人计算机、网络、分布式、嵌入式
- 理解操作系统的不同角度:软件、资源管理、进程、虚机器、服务提供者
- 操作系统的主要特征:并发、共享、虚拟、随机性/不确定性
课程作业示例
第一次作业:
- 浏览UNIX类操作系统家族的演化历史,选择一个分支做简单总结
- 针对每一类操作系统,总结其工作方式、特征、设计目标
- 名词解释:单道批处理与多道批处理、SPOOLing技术
笔记整理自北京大学软件与微电子学院陈向群教授2008-2009第一学期操作系统课程讲义