Operating
System
北京大学计算机系
Peking University
Department of Computer Science &
Technology
Fall 1999
操作系统原理
Principles of Operating System
Operating
System
授课教师主讲教师:陈向群
cherry@cs.pku.edu.cn
辅导教师:刘永峰曹云波
Operating
System
课程形式主课,习题课,专题课,作业考试:笔试期中考试,期末考试学习要求:
按时上课,认真听讲阅读参考书认真记笔记,整理笔记思考,讨论,提问
Operating
System
成绩评定作业,期中考试,小论文,期末考试比例:
作业 20%
期中考试 20%
小论文 10%
期末考试 50%
Operating
System
参考教材
,现代操作系统,陈向群等译机械工业出版社
Operating
System
参考教材操作系统教程 王素华 人民邮电出版社计算机操作系统教程 张尧学 史美林 清华大学出版社计算机操作系统教程 周长林 左万历 高等教育出版社操作系统基础 屠立德 屠祁 清华大学出版社
Operating
System
参考教材计算机操作系统 汤子瀛等 西安电子科技大学出版社操作系统原理 DOS篇 张昆苍 清华大学出版社
Operating Systems William Stallings
Modern Operating System Andrew S.Tanenbaum
Operating System Concept Abrahan Silberschatz,
Peter B.Galvin
Operating
System
操作系统课程的特点:
实践性强(从实践总结出原理)
涉及面广(并行程序,性能问题,结构问题,程序方法论,软件工程,等等)
错综复杂:纵横交叉
Operating
System
学习方式的改变
Operating
System
绪论
1,操作系统的名称监控(督)程序(系统)( Monitor)
执行系统(程序) (Executive System (program))
控制系统(程序) (Control System program))
管理程序 (Supervisor,Supervisory System)
核心程序 (Kernel)
操作系统 (Operating System)
Operating
System
管理程序扩展 为运行平台平台是负载其他应用程序的载体平台之争:企业竞争的范围已经超出了市场、资本和技术竞争的焦点:平台(标准)
Operating
System
#include <stdio.h>
int main(int argc,char *argv[])
{
puts("hello world");
return 0;
}
2,操作系统做什么?
Operating
System
用户告诉操作系统执行 hello程序操作系统找到该程序,检查其类型检查程序首部,找出正文和数据的地址文件系统找到第一个磁盘块父进程需要创建一个新的子进程,执行
hello程序操作系统需要将执行文件映射到进程结构
Operating
System
操作系统设置 CPU上下文环境,并跳到程序开始处程序的第一条指令执行,失败,缺页中断发生操作系统分配一页内存,并将代码从磁盘读入,继续执行更多的缺页中断,读入更多的页面程序执行系统调用,在文件描述符中写一字符串
Operating
System
操作系统检查字符串的位置是否正确操作系统找到字符串被送往的设备设备是一个伪终端,由一个进程控制操作系统将字符串送给该进程该进程告诉窗口系统它要显示字符串窗口系统确定这是一个合法的操作,然后将字符串转换成像素
Operating
System
窗口系统将像素写入存储映像区视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)
显示器发射电子素你在屏幕上看到 hello world
Operating
System
操作系统提供一系列服务:
多任务,内存保护,内存管理,
网络,文件存取,设备控制,用户界面错误检测及恢复系统,硬件控制,安全
Operating
System
2.1.程序的执行负责启动每个程序,以及结束程序的工作
2.2.完成与硬件有关的工作
2.3.完成与应用无关的工作易于使用,基本服务,统一性
2.4.计算机系统的效率与安全问题
Operating
System
2.2 硬件相关指实现代码中包含存储器的物理地址,
包含对设备接口寄存器和设备接口缓冲区的读写等等。
包括:内外存物理存储空间大小的变化程序和数据在存储空间中物理位置的变化设备硬件数量的变化等等但不包括指令集的变化
Operating
System
实现该工作的过程代码和硬件因素密切相关,即需要设置与测试、使用物理地址、设备接口寄存器等等硬件相关必然复杂繁琐、代码量大硬件相关的工作,其实现代码不通用硬件相关
Operating
System
由于操作系统承担了上述工作,在其之上的各类程序就没有必要直接同硬件打交道了 。 硬件改变时,操作系统相应变化即可,其他的程序不 用 作 出 改 变硬件相关还表现在有关硬件的状态必定带来对应代码的变化硬件相关
Operating
System
2.3 与应用无关是指这些工作是任何一个程序都需要的、最基本的工作它们具有共性,工作过程相同与具体应用无直接关系,即与用户所关心的应用目标无直接关系
Operating
System
3,为什么学习操作系统?
关于学习操作系统的争议,
世界上只需要很少的操作系统设计 /实现者
我们都将使用 Win95/NT
Operating
System
赞成学习操作系统的理由,
需要总体上掌握系统设计
操作系统包括了所有软件设计 /实现问题资源共享 /管理安全和身份验证灵活性,健壮性友好界面设计
Operating
System
性能,性能,性能!
存在人们意识不到的大量“操作系统”
嵌入式系统应用系统中的小操作系统( MINI-OS)
我们并不总使用 Win95/NT
Operating
System
现状(形势):
科索沃问题
Intel,微软的“后门”问题安全,安全,安全!
操作系统的安全是一切应用安全的基础
Operating
System
现状(形势):
均码问题
one-size-fits-all
(硬件制造商、软件生产商、流通领域经销商、用户)
主流运算条件 不能一概而论例如:图形功能
OS也不是铁板一块
Operating
System
WINDOWS系列
UNIX系列其他产品计算机世界必然是一个多元化、多层次、
多品种的世界,均码不能满足社会对计算机的需要单一平台正在衍化为各种不同的新平台和子平台,例如,XC
Operating
System
例如,XC
价格低廉、用途专一的个人计算机游戏机,英特网机,家庭财务机、
电视机顶盒,个人数字助理等
“嵌入式系统”
Operating
System
国内操作系统的研制状况中软总公司,COSIX操作系统
COSIXV1,X和 COSIXV2,X两个系列
1999年 3月 10日中软总公司与康柏公司签署联合开发 64位中文 UNIX操作系统 —
COSIX的合作协议
Operating
System
中国科学院软件工程研制中心 (凯思集团 )与摩托罗拉半导体战略联盟:
嵌入式操作系统 Hopen(女娲计划)
中科院软件所、北大方正、康柏公司共同发布国产中文操作系统,红旗
Liunx”
Operating
System
4,为什么学习操作系统很有意义?
Operating
System
4.1 涉及到计算机科学的很多领域,
–计算机体系结构 /硬件
–软件设计
–程序设计语言
–数据结构
–算法
Operating
System
4.2 抽象操作系统具有一种魔力(巫术)
提供了无限的 CPUs
无限的内存单一全球计算能力等等,
Operating
System
4.3 大型、复杂系统系统设计
性能 与 方便使用
性能 与 简单性
硬件 与 软件折衷权衡
Operating
System
操作系统是目前最复杂的软件成分
William Stallings
Operating
System
5,操作系统的规模简单的操作系统:
一次一个应用程序在运行
Operating
System
例子:
较早期的计算机早期的 PC
嵌入式控制器
(电梯,汽车,…… )
标准设备驱动程序中断控制数学库,等等
Operating
System
复杂的操作系统:
多个应用程序共享计算机操作系统必须管理多个应用程序和多个用户之间的交互
Operating
System
例子:
CPU,内存,
I/O 设备,硬盘,打印机,…
操作系统管理所有这些资源,提供标准服务库
Operating
System
更复杂的操作系统:
多个 CPU,多个计算机
Operating
System
6.操作系统的功能应用程序
----------------------- <> 虚机器界面操作系统
----------------------- <> 物理机器界面硬件
Operating
System
两个角度:
什么是物理界面
(物理实现)
什么是应用界面
(更完美的抽象)
Operating
System
什么是操作系统?
操作系统作为 仲裁者(协调者)
使多个应用程序 /用户高效,公平地一起工作保护用户不互相干扰例子:并发,存储保护,文件系统,网络
Operating
System
操作系统作为 幻觉制造者提供硬件的高层界面,取消硬件限制,操作系统提供无限的内存、无限的 CPU
操作系统作为 管理者有效合理地分配资源,保护用户不受侵犯,提供安全、保密措施
Operating
System
操作系统作为 历史教员学习过去,预测未来操作系统作为 标准服务提供者提供每个用户需要的标准工具,
如标准库、窗口系统
Operating
System
操作系统提供的服务:
程序创建和执行存取 I/O设备控制对文件的存取系统存取错误检测和回应统计操作系统作为 A PARENT
Operating
System
7,假如没有操作系统?
源代码编译器目标代码硬件
Operating
System
怎样将 目标代码 送给硬件?
怎样输出打印结果?
人们将对二进制程序操作从二极发光管读答案
Operating
System
8,什么对操作系统产生影响?
硬件(成本)
新技术(支持)
使用户 /程序员开心(使用方式)
Operating
System
9.当前操作系统的特征,
大型与小型,
100k至数百万行源码
100-1000人 -年的工作量 /,
Operating
System
复杂,
异步性体现硬件特征不同用户的相互冲突的需求性能很重要
Operating
System
难于理解,
系统较构建者命短太复杂,无法整体调试行为难以预测,通过猜测进行微调经常是不可靠的
Operating
System
个人计算:
计算机很便宜,将来它会更便宜故人人都会拥有一台计算机,甚至多台注重分布式,机群系统:
通信网络和 Internet 允许不同的机器,方便地共享资源
Operating
System
注重不同领域版本,
Base,Client,Server
注重高可靠,高安全:
Operating
System
课程总目标,
– 学习通用技术并能在其他地方应用之
– 问题,
您会有被委派设计新型操作系统的机会吗?
System
北京大学计算机系
Peking University
Department of Computer Science &
Technology
Fall 1999
操作系统原理
Principles of Operating System
Operating
System
授课教师主讲教师:陈向群
cherry@cs.pku.edu.cn
辅导教师:刘永峰曹云波
Operating
System
课程形式主课,习题课,专题课,作业考试:笔试期中考试,期末考试学习要求:
按时上课,认真听讲阅读参考书认真记笔记,整理笔记思考,讨论,提问
Operating
System
成绩评定作业,期中考试,小论文,期末考试比例:
作业 20%
期中考试 20%
小论文 10%
期末考试 50%
Operating
System
参考教材
,现代操作系统,陈向群等译机械工业出版社
Operating
System
参考教材操作系统教程 王素华 人民邮电出版社计算机操作系统教程 张尧学 史美林 清华大学出版社计算机操作系统教程 周长林 左万历 高等教育出版社操作系统基础 屠立德 屠祁 清华大学出版社
Operating
System
参考教材计算机操作系统 汤子瀛等 西安电子科技大学出版社操作系统原理 DOS篇 张昆苍 清华大学出版社
Operating Systems William Stallings
Modern Operating System Andrew S.Tanenbaum
Operating System Concept Abrahan Silberschatz,
Peter B.Galvin
Operating
System
操作系统课程的特点:
实践性强(从实践总结出原理)
涉及面广(并行程序,性能问题,结构问题,程序方法论,软件工程,等等)
错综复杂:纵横交叉
Operating
System
学习方式的改变
Operating
System
绪论
1,操作系统的名称监控(督)程序(系统)( Monitor)
执行系统(程序) (Executive System (program))
控制系统(程序) (Control System program))
管理程序 (Supervisor,Supervisory System)
核心程序 (Kernel)
操作系统 (Operating System)
Operating
System
管理程序扩展 为运行平台平台是负载其他应用程序的载体平台之争:企业竞争的范围已经超出了市场、资本和技术竞争的焦点:平台(标准)
Operating
System
#include <stdio.h>
int main(int argc,char *argv[])
{
puts("hello world");
return 0;
}
2,操作系统做什么?
Operating
System
用户告诉操作系统执行 hello程序操作系统找到该程序,检查其类型检查程序首部,找出正文和数据的地址文件系统找到第一个磁盘块父进程需要创建一个新的子进程,执行
hello程序操作系统需要将执行文件映射到进程结构
Operating
System
操作系统设置 CPU上下文环境,并跳到程序开始处程序的第一条指令执行,失败,缺页中断发生操作系统分配一页内存,并将代码从磁盘读入,继续执行更多的缺页中断,读入更多的页面程序执行系统调用,在文件描述符中写一字符串
Operating
System
操作系统检查字符串的位置是否正确操作系统找到字符串被送往的设备设备是一个伪终端,由一个进程控制操作系统将字符串送给该进程该进程告诉窗口系统它要显示字符串窗口系统确定这是一个合法的操作,然后将字符串转换成像素
Operating
System
窗口系统将像素写入存储映像区视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)
显示器发射电子素你在屏幕上看到 hello world
Operating
System
操作系统提供一系列服务:
多任务,内存保护,内存管理,
网络,文件存取,设备控制,用户界面错误检测及恢复系统,硬件控制,安全
Operating
System
2.1.程序的执行负责启动每个程序,以及结束程序的工作
2.2.完成与硬件有关的工作
2.3.完成与应用无关的工作易于使用,基本服务,统一性
2.4.计算机系统的效率与安全问题
Operating
System
2.2 硬件相关指实现代码中包含存储器的物理地址,
包含对设备接口寄存器和设备接口缓冲区的读写等等。
包括:内外存物理存储空间大小的变化程序和数据在存储空间中物理位置的变化设备硬件数量的变化等等但不包括指令集的变化
Operating
System
实现该工作的过程代码和硬件因素密切相关,即需要设置与测试、使用物理地址、设备接口寄存器等等硬件相关必然复杂繁琐、代码量大硬件相关的工作,其实现代码不通用硬件相关
Operating
System
由于操作系统承担了上述工作,在其之上的各类程序就没有必要直接同硬件打交道了 。 硬件改变时,操作系统相应变化即可,其他的程序不 用 作 出 改 变硬件相关还表现在有关硬件的状态必定带来对应代码的变化硬件相关
Operating
System
2.3 与应用无关是指这些工作是任何一个程序都需要的、最基本的工作它们具有共性,工作过程相同与具体应用无直接关系,即与用户所关心的应用目标无直接关系
Operating
System
3,为什么学习操作系统?
关于学习操作系统的争议,
世界上只需要很少的操作系统设计 /实现者
我们都将使用 Win95/NT
Operating
System
赞成学习操作系统的理由,
需要总体上掌握系统设计
操作系统包括了所有软件设计 /实现问题资源共享 /管理安全和身份验证灵活性,健壮性友好界面设计
Operating
System
性能,性能,性能!
存在人们意识不到的大量“操作系统”
嵌入式系统应用系统中的小操作系统( MINI-OS)
我们并不总使用 Win95/NT
Operating
System
现状(形势):
科索沃问题
Intel,微软的“后门”问题安全,安全,安全!
操作系统的安全是一切应用安全的基础
Operating
System
现状(形势):
均码问题
one-size-fits-all
(硬件制造商、软件生产商、流通领域经销商、用户)
主流运算条件 不能一概而论例如:图形功能
OS也不是铁板一块
Operating
System
WINDOWS系列
UNIX系列其他产品计算机世界必然是一个多元化、多层次、
多品种的世界,均码不能满足社会对计算机的需要单一平台正在衍化为各种不同的新平台和子平台,例如,XC
Operating
System
例如,XC
价格低廉、用途专一的个人计算机游戏机,英特网机,家庭财务机、
电视机顶盒,个人数字助理等
“嵌入式系统”
Operating
System
国内操作系统的研制状况中软总公司,COSIX操作系统
COSIXV1,X和 COSIXV2,X两个系列
1999年 3月 10日中软总公司与康柏公司签署联合开发 64位中文 UNIX操作系统 —
COSIX的合作协议
Operating
System
中国科学院软件工程研制中心 (凯思集团 )与摩托罗拉半导体战略联盟:
嵌入式操作系统 Hopen(女娲计划)
中科院软件所、北大方正、康柏公司共同发布国产中文操作系统,红旗
Liunx”
Operating
System
4,为什么学习操作系统很有意义?
Operating
System
4.1 涉及到计算机科学的很多领域,
–计算机体系结构 /硬件
–软件设计
–程序设计语言
–数据结构
–算法
Operating
System
4.2 抽象操作系统具有一种魔力(巫术)
提供了无限的 CPUs
无限的内存单一全球计算能力等等,
Operating
System
4.3 大型、复杂系统系统设计
性能 与 方便使用
性能 与 简单性
硬件 与 软件折衷权衡
Operating
System
操作系统是目前最复杂的软件成分
William Stallings
Operating
System
5,操作系统的规模简单的操作系统:
一次一个应用程序在运行
Operating
System
例子:
较早期的计算机早期的 PC
嵌入式控制器
(电梯,汽车,…… )
标准设备驱动程序中断控制数学库,等等
Operating
System
复杂的操作系统:
多个应用程序共享计算机操作系统必须管理多个应用程序和多个用户之间的交互
Operating
System
例子:
CPU,内存,
I/O 设备,硬盘,打印机,…
操作系统管理所有这些资源,提供标准服务库
Operating
System
更复杂的操作系统:
多个 CPU,多个计算机
Operating
System
6.操作系统的功能应用程序
----------------------- <> 虚机器界面操作系统
----------------------- <> 物理机器界面硬件
Operating
System
两个角度:
什么是物理界面
(物理实现)
什么是应用界面
(更完美的抽象)
Operating
System
什么是操作系统?
操作系统作为 仲裁者(协调者)
使多个应用程序 /用户高效,公平地一起工作保护用户不互相干扰例子:并发,存储保护,文件系统,网络
Operating
System
操作系统作为 幻觉制造者提供硬件的高层界面,取消硬件限制,操作系统提供无限的内存、无限的 CPU
操作系统作为 管理者有效合理地分配资源,保护用户不受侵犯,提供安全、保密措施
Operating
System
操作系统作为 历史教员学习过去,预测未来操作系统作为 标准服务提供者提供每个用户需要的标准工具,
如标准库、窗口系统
Operating
System
操作系统提供的服务:
程序创建和执行存取 I/O设备控制对文件的存取系统存取错误检测和回应统计操作系统作为 A PARENT
Operating
System
7,假如没有操作系统?
源代码编译器目标代码硬件
Operating
System
怎样将 目标代码 送给硬件?
怎样输出打印结果?
人们将对二进制程序操作从二极发光管读答案
Operating
System
8,什么对操作系统产生影响?
硬件(成本)
新技术(支持)
使用户 /程序员开心(使用方式)
Operating
System
9.当前操作系统的特征,
大型与小型,
100k至数百万行源码
100-1000人 -年的工作量 /,
Operating
System
复杂,
异步性体现硬件特征不同用户的相互冲突的需求性能很重要
Operating
System
难于理解,
系统较构建者命短太复杂,无法整体调试行为难以预测,通过猜测进行微调经常是不可靠的
Operating
System
个人计算:
计算机很便宜,将来它会更便宜故人人都会拥有一台计算机,甚至多台注重分布式,机群系统:
通信网络和 Internet 允许不同的机器,方便地共享资源
Operating
System
注重不同领域版本,
Base,Client,Server
注重高可靠,高安全:
Operating
System
课程总目标,
– 学习通用技术并能在其他地方应用之
– 问题,
您会有被委派设计新型操作系统的机会吗?