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

核心观点

课程目的

不是”如何使用操作系统”,而是理解操作系统如何工作:

  • 操作系统的内部工作方式
  • 操作系统实现涉及的数据结构和算法
  • 设计、开发操作系统过程中的问题、解决方案和折中权衡
  • 操作系统中的典型技术及应用

教学思路(三个层面)

  1. 操作系统使用 → 概念、技术
  2. 操作系统工作原理 → 实例(Windows、Linux、Solaris、μC/OS-Ⅱ)
  3. 设计一个操作系统

操作系统的地位

“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/IBSYSIBM为7094配备的操作系统
OS/360IBM为系列机360配备,首个采用小规模集成电路的主流机型
CTSSCompatible Time Sharing System,MIT 1961年开发,第一个分时操作系统
MULTICSMULTiplexed Information and Computer Service,1965年ARPA支持开发
UNIX1969年Ken Thompson和Dennis Ritchie在PDP-7上开发,1973年用C重写
Linux1990年Linus在赫尔辛基大学学习时开发

UNIX的成功因素

  1. 用C语言编写,可移植性强
  2. 源代码有效,容易适应特殊需求
  3. 良好的通用多用户、多任务、分时操作系统

Linux的诞生

  • Linus买PC机因为上机需要排队等待
  • 开发第一个程序:两个进程向屏幕写字母,定时器切换
  • 需要终端仿真程序存取Usenet → 编写调制解调器驱动
  • 陆续开发:显示器、键盘驱动 → 磁盘驱动 → 文件系统 → 进程切换
  • 操作系统原型就这样诞生

操作系统的分类

1. 批处理操作系统

  • 工作方式:用户交作业→操作员组成批次→系统自动依次执行
  • 特点:
    • 多道:内存同时存放几个作业
    • 成批处理:用户不能干预运行
  • 优点:资源利用率高,吞吐量大
  • 缺点:交互性差,调试困难,周转时间长

2. 分时操作系统

  • 时间片:CPU时间划分为片段,轮流服务每个用户
  • 特点:
    • 多路性:多个用户同时使用
    • 交互性:及时响应请求
    • “独占”性:用户感觉不到为他人服务
    • 及时性:追求响应时间
  • 通用操作系统:分时优先,批处理在后(前台/后台)

3. 实时操作系统

  • 定义:在规定时间内完成处理,控制设备协调工作
  • 分类:
    • 硬实时:动作必须在规定时刻完成
    • 软实时:可接受偶尔违反时限
  • 主要功能:
    • 实时时钟管理(定时、延时)
    • 过载保护(缓冲区排队、丢弃任务)
    • 高度可靠性和安全性(容错、冗余备份)

4. 个人计算机操作系统

  • 单用户多任务
  • 追求:界面友好、使用方便、丰富应用软件

5. 网络操作系统

  • 基于计算机网络
  • 包括:网络管理、通信、安全、资源共享、网络应用
  • 目标:相互通信、资源共享

6. 分布式操作系统

  • 特征:
    1. 统一的操作系统
    2. 资源进一步共享
    3. 透明性(分布对用户不可见)
    4. 自治性(主机平等,无主从)
    5. 处理能力增强、速度更快、可靠性增强

7. 嵌入式操作系统

  • 运行在嵌入式系统中
  • 对资源有严格限制(大小、内存、能源)
  • 具有某些实时系统特征

多处理机操作系统

为什么需要多处理机?

  • 获得大量联合计算能力的方式是将多个CPU连接成单一系统
  • 提高性能和可靠性

类型

  • 紧密耦合:通过快速总线或开关阵列相连,共享内存
  • 松散耦合:各自存储器、I/O设备,通过通道或通信线路相连

调度方式

  • 非对称式(主从模式):主处理器运行OS管理资源
  • 对称式:OS交替在各个处理器上执行,负载平均

智能卡操作系统

  • 包含CPU芯片的信用卡
  • 特点:严格能耗和存储空间限制
  • 有些面向Java(ROM中有JVM解释器)
  • 通过”命令-响应对”方式通信

重点小结

  1. 典型的、历史上有重要意义的操作系统:FMS、OS/360、CTSS、MULTICS、UNIX、Linux
  2. 重要的操作系统技术:多道程序设计、SPOOLing、分时、虚拟存储
  3. 操作系统分类:批处理、分时、实时、个人计算机、网络、分布式、嵌入式
  4. 理解操作系统的不同角度:软件、资源管理、进程、虚机器、服务提供者
  5. 操作系统的主要特征:并发、共享、虚拟、随机性/不确定性

课程作业示例

第一次作业:

  1. 浏览UNIX类操作系统家族的演化历史,选择一个分支做简单总结
  2. 针对每一类操作系统,总结其工作方式、特征、设计目标
  3. 名词解释:单道批处理与多道批处理、SPOOLing技术

笔记整理自北京大学软件与微电子学院陈向群教授2008-2009第一学期操作系统课程讲义