北京大学计算机科学技术系 peking university

27
北北北北北北北北北北北北 Peking University Department of Computer Science & Technology Autumn 2004 北北北 北北 Principles of Operating System

Upload: stacey-stuart

Post on 14-Mar-2016

335 views

Category:

Documents


4 download

DESCRIPTION

北京大学计算机科学技术系 Peking University. 操作系统原理 Principles of Operating System. Department of Computer Science & Technology Autumn 2004. 授课教师. 主讲教师:陈向群 [email protected] 辅导教师:欧阳图 [email protected] 徐冬 [email protected] 陶立波 [email protected] 地点:理科 1 号楼 1435 网址: os.pku.edu.cn. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 北京大学计算机科学技术系 Peking University

北京大学计算机科学技术系Peking UniversityDepartment of Computer Science & Technology

Autumn 2004

操作系统原理Principles of Operating System

Page 3: 北京大学计算机科学技术系 Peking University

教材操作系统教程 陈向群 杨芙清 北京大学出版社Windows 内核实验教程 陈向群等 机械工业出版社

参考教材现代操作系统 陈向群等译 机械工业出版社Windows 操作系统原理 机械工业出版社操作系统教程 王素华 人民邮电出版社计算机操作系统教程 张尧学 史美林 清华大学出版社计算机操作系统教程 周长林 左万历 高等教育出版社操作系统基础 屠立德 屠祁 清华大学出版社操作系统教程 孟庆昌 西安电子科技大学出版社

Page 4: 北京大学计算机科学技术系 Peking University

参考教材计算机操作系统 汤子瀛等 西安电子科技大学出版社操作系统原理 DOS 篇 张昆苍 清华大学出版社操作系统教程 孙钟秀主编 高等教育出版社操作系统原理技术与编程 蒋静 徐志伟 机械工业出版社

Modern Operating System Andrew S.TanenbaumOperating Systems William StallingsOperating System Concept Abrahan Silberschatz,etcApplied Operating System Concept Abrahan Silberschatz,etc

Page 5: 北京大学计算机科学技术系 Peking University

课程形式主课、习题课、专题课、课堂讨论作业、小论文、源代码分析、上机实习

学习要求:按时上课,认真听讲阅读参考书整理笔记思考,讨论,提问

考试:笔试小考试( 3 次, 10 月 8 日、 11 月 5 日、 12 月 3日)期末考试

Page 6: 北京大学计算机科学技术系 Peking University

成绩评定小考试,作业,上机实习,期末考试

比例:小考试 24% 作业和小论文 16%期末考试 60% (含上机实习、 Linux 源代码分析 10% )课堂讨论 5% (加分)

Page 7: 北京大学计算机科学技术系 Peking University

组织结构 4 人一大组

每一章作业 Linux 源代码分析 课堂讨论

2 人一小组 上机实习

1 人 小论文

上机实习 Windows 内核实习 7 个小实习, 1个大实习

Page 8: 北京大学计算机科学技术系 Peking University

课程目的不是 如何使用操作系统 而是 理解操作系统如何工作 OS 工作方式 OS 内部算法和数据结构 设计 OS 过程中的问题、解决方案和折中权衡

Page 9: 北京大学计算机科学技术系 Peking University

操作系统课程的特点

涉及面广(并行程序,性能问题,结构问题,程序方法论,软件工程,等等)实践性强(从实践总结出原理)

错综复杂:纵横交叉 如何学好操作系统? Learn OS concepts by coding them!

Page 10: 北京大学计算机科学技术系 Peking University

注意学习方式的变化教师只指出要点 要通过自学、研读参考书掌握内容整理笔记相当重要 不能只通过 PowerPoint 来复习课程善于发现问题、提出问题 要努力寻求问题的答案

Page 11: 北京大学计算机科学技术系 Peking University

绪论

监控(督)程序(系统)( Monitor)执行系统(程序) (Executive System(program))控制系统(程序) (Control System program))管理程序 (Supervisor, Supervisory System)核心程序 (Kernel)操作系统 (Operating System)

1. 操作系统的名称

Page 12: 北京大学计算机科学技术系 Peking University

2. 操作系统做什么? #include <stdio.h> int main(int argc, char *argv[]) { puts("hello world"); return 0; }

Page 13: 北京大学计算机科学技术系 Peking University

用户告诉操作系统执行 hello 程序 操作系统找到该程序,检查其类型 检查程序首部,找出正文和数据的地址 文件系统找到第一个磁盘块 父进程需要创建一个新的子进程,执行 hello 程序 操作系统需要将执行文件映射到进程结构 操作系统设置 CPU 上下文环境,并跳到程序开始处 程序的第一条指令执行,失败,缺页中断发生 操作系统分配一页内存,并将代码从磁盘读入,继续执行 更多的缺页中断,读入更多的页面

Page 14: 北京大学计算机科学技术系 Peking University

操作系统检查字符串的位置是否正确 操作系统找到字符串被送往的设备 设备是一个伪终端,由一个进程控制 操作系统将字符串送给该进程 该进程告诉窗口系统它要显示字符串 窗口系统确定这是一个合法的操作,然后将字符串转换成像素 窗口系统将像素写入存储映像区 视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕) 显示器发射电子束 你在屏幕上看到 hello world

程序执行系统调用,在文件描述符中写一字符串

Page 15: 北京大学计算机科学技术系 Peking University

3.为什么学习操作系统 ? 设计操作系统 或者 修改现有的系统 存在人们意识不到的大量“操作系统” 嵌入式系统 (Embedded OS ) 加深对使用的 OS 的理解,有利于深入编程 用户为了开发应用程序必须与操作系统打交道 编程时借鉴操作系统的设计思想和算法 操作系统中所用的许多概念和技巧可以推广应用到其他领域 选择购买操作系统 我们并不总使用 Win95/NT/2000/XP

Page 16: 北京大学计算机科学技术系 Peking University

涉及到计算机科学的很多领域计算机体系结构 /硬件软件设计程序设计语言数据结构算法网络学习核心技术并能在其他地方应用之

为什么学习操作系统 ?

Page 17: 北京大学计算机科学技术系 Peking University

思维方式的学习 抽象 操作系统具有一种魔力( magic ) 提供了无限的 CPUs 无限的内存 单一全球计算能力 等等

为什么学习操作系统 ?

Page 18: 北京大学计算机科学技术系 Peking University

大型、复杂系统的系统设计① 性能 与 方便使用② 性能 与 简单性③ 硬件 与 软件

折衷权衡Trade Off

操作系统是目前最复杂的软件成分 应聘工作

为什么学习操作系统 ?

Page 19: 北京大学计算机科学技术系 Peking University

( 1 )程序的执行负责启动每个程序,以及结束程序的工作

( 2 )完成与硬件有关的工作( 3 )完成与应用无关的工作

易于使用,基本服务,统一性( 4 )计算机系统的效率与安全问题

4. 操作系统的工作

Page 20: 北京大学计算机科学技术系 Peking University

硬件相关 应用程序

----------------------- 虚机器界面 操作系统----------------------- 物理机器界面 硬件假如没有操作系统?怎样将目标代码送给硬件?怎样输出打印结果? →人们将对二进制程序操作 从二极发光管读答案

Page 21: 北京大学计算机科学技术系 Peking University

硬件相关(续 1 )指实现代码中包含存储器的物理地址,包含对设备接口寄存器和设备接口缓冲区的读写等等

实现该工作的过程代码和硬件因素密切相关,即需要设置与测试、使用物理地址、设备接口寄存器等等 硬件相关必然复杂繁琐、代码量大 硬件相关的工作,其实现代码不通用

Page 22: 北京大学计算机科学技术系 Peking University

硬件相关(续 2 ) 问题:哪一个简单、方便? 从文件读数据块 和 移动磁头、等待放置下 例子:软盘 I/O 操作

控制芯片NEC PD765有 16条命令 每一条命令向一个设备寄存器装入长度从 1 到9 字节的特定数据(读写数据、移动磁头臂、格式化磁道,及初始化、检测状态、复位、校准控制器及设备等) 以READ为例: 13 个参数 要读取的磁盘块地址、磁道的扇区数、物理介质的记录格式、扇区间隙、对已删除数据地址标识的处理方法 操作结束时,控制器芯片在 7 个字节中返回 23 个状态及出错字段 软盘程序员还要保持注意步进电机的开关状态

Page 23: 北京大学计算机科学技术系 Peking University

硬件相关(续 3 )由于操作系统承担了上述工作,在其之上的各类程序就没有必要直接同硬件打交道了。硬件改变时,操作系统相应变化即可,其他的程序不用作出改变

硬件相关还表现在有关硬件的状态必定带来对应代码的变化

Page 24: 北京大学计算机科学技术系 Peking University

应用软件与现实硬件之间的软件 硬件抽象,可移植性 有限变为无限(接近) 提供保护 一台等价的扩展机器(虚拟机),比底层硬件更容易编程

OS

硬件

Page 25: 北京大学计算机科学技术系 Peking University

与应用无关任何一个程序都需要的、最基本的工作它们 具有共性、工作过程相同、与具体应用无直接关系(即与用户所关心的应用目标无直接关系)

Page 26: 北京大学计算机科学技术系 Peking University

课程基本目的1.介绍操作系统的基本概念、基本结构及运行环境2.介绍操作系统原理、设计方法和实现技术3.介绍操作系统的演化过程、发展研究动向、新技术以及新思想4.介绍各种有代表性的、典型的操作系统实例5.培养学生分析问题、解决问题的基本能力,培养创造型人才

Page 27: 北京大学计算机科学技术系 Peking University

预期学习收获1.使学生对操作系统的基本概念、基本结构及运行环境有深入的认识,对操作系统这一课程有比较全面的把握2.使学生深入到操作系统内部,理解并掌握操作系统的基本原理、设计方法和实现技术3.使学生了解操作系统的演化过程、发展研究动向、新技术以及新思想,使学生具有透过变化看趋势、透过技术抓原理、把握学科发展脉搏的基本素质,为其今后在相关领域开展工作打下坚实的基础