操作系统原理
Principles of Operating System
授课教师
主讲教师,肖竟华课程形式主课,习题课,专题课,作业,小论文及上机考试:笔试期中考试,期末考试学习要求:
按时上课,认真听讲阅读参考书认真记笔记,整理笔记思考,讨论,提问成绩评定作业,期中考试,小论文及上机,期末考试比例:
作业 16%
期中考试 20%
小论文及上机 24%
期末考试 40%
参考教材
,现代操作系统,陈向群等译 机械工业出版社操作系统教程 王素华 人民邮电出版社计算机操作系统教程 张尧学 史美林 清华大学出版社计算机操作系统教程 周长林 左万历 高等教育出版社操作系统基础 屠立德 屠祁 清华大学出版社操作系统教程 孟庆昌 西安电子科技大学出版社参考教材计算机操作系统 汤子瀛等 西安电子科技大学出版社操作系统原理 DOS篇 张昆苍 清华大学出版社
Operating Systems William Stallings
Modern Operating System Andrew S.Tanenbaum
Operating System Concept Abrahan Silberschatz,etc
操作系统课程的特点:
实践性强(从实践总结出原理)
涉及面广(并行程序,性能问题,结构问题,
程序方法论,软件工程,等等)
错综复杂:纵横交叉注意学习方式的变化
教师只指出要点要通过自学、研读参考书掌握内容
记笔记相当重要不能只通过 Powerpoint来复习课程
善于发现问题、提出问题要努力寻求问题的答案绪论
1,操作系统的名称监控(督)程序(系统)( Monitor)
执行系统(程序) (Executive System (program))
控制系统(程序) (Control System program))
管理程序 (Supervisor,Supervisory System)
核心程序 (Kernel)
操作系统 (Operating System)
#include <stdio.h>
int main(int argc,char *argv[])
{
puts("hello world");
return 0;
}
2,操作系统做什么?
用户告诉操作系统执行 hello程序操作系统找到该程序,检查其类型检查程序首部,找出正文和数据的地址文件系统找到第一个磁盘块父进程需要创建一个新的子进程,执行 hello程序操作系统需要将执行文件映射到进程结构操作系统设置 CPU上下文环境,并跳到程序开始处程序的第一条指令执行,失败,缺页中断发生操作系统分配一页内存,并将代码从磁盘读入,继续执行更多的缺页中断,读入更多的页面程序执行系统调用,在文件描述符中写一字符串操作系统检查字符串的位置是否正确操作系统找到字符串被送往的设备设备是一个伪终端,由一个进程控制操作系统将字符串送给该进程该进程告诉窗口系统它要显示字符串窗口系统确定这是一个合法的操作,然后将字符串转换成像素窗口系统将像素写入存储映像区视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)
显示器发射电子束你在屏幕上看到 hello world
操作系统提供一系列服务:
多任务,内存保护,内存管理,
网络,文件存取,设备控制,用户界面错误检测及恢复系统,硬件控制,安全
3,为什么学习操作系统?
3.1 综合 — 宏观层面技术、经济、政治,…
3.2 专业 — 微观层面计算机领域
3.1 综合 — 宏观层面
(技术、经济、政治,… )
关于学习操作系统的争议,
世界上只需要很少的操作系统设计 /实现者
Windows 9x,NT,CE,2000的天下垄断不易改变赞成学习操作系统的理由,
需要总体上掌握系统设计
操作系统包括了所有软件设计 /实现问题资源共享 /管理安全和身份验证灵活性,健壮性友好界面设计
性能,性能,性能!
加深对使用的 OS的理解,有利于深入编程
编程时借鉴操作系统的设计思想和算法
存在人们意识不到的大量“操作系统”
嵌入式系统 (Embedded OS)
我们并不总使用 Win95/NT
现状:
Intel-CPU,微软 -Windows的安全问题,后门”
信息安全问题国家信息体系的安全政治、经济与国防的信息安全高新技术武器的基础核心
没有自主版权的操作系统,将受制于人安全,安全,安全!
操作系统的安全是一切信息安全的基础现状:
均码问题 one-size-fits-all
(硬件制造商、软件生产商、
流通领域经销商、用户)
主流运算条件 不能一概而论例如:图形功能
OS也不是铁板一块
WINDOWS系列,UNIX系列,其他产品
计算机世界必然是一个多元化、多层次、多品种的世界均码不能满足社会对计算机的需要
单一平台正在衍化为各种不同的新平台和子平台
后 PC时代
PC机无处不在 计算机与其它设备的结合
PC机无形化
信息家电对嵌入式系统的需要
Embedded OS
对 Mobile Computing的需要无线手机,机顶盒,个人数字助理等对高性能计算系统的需要机群操作系统,全球操作系统国内操作系统的研制状况
COSIX操作系统
1999年中软总公司与康柏公司签署联合开发 64位 UNIX— COSIX协议
嵌入式操作系统 Hopen( 女娲计划 )
自由版权 Linux
汉化:红旗,Turbo,BluePoint.etc
嵌入式自主版权 OS研制
国家十五规划重点
北大计算机系正在做什么
中国需要操作系统研制人员
招聘广告的变化
(电信、移动计算、信息家电 … )
涉及到计算机科学的很多领域
– 计算机体系结构 /硬件
– 软件设计
– 程序设计语言
– 数据结构
– 算法
3.2 专业 — 微观层面(计算机领域)
抽象操作系统具有一种魔力(巫术)
提供了无限的 CPUs
无限的内存单一全球计算能力等等
大型、复杂系统的系统设计
① 性能 与 方便使用
② 性能 与 简单性
③ 硬件 与 软件折衷权衡
Trade Off
操作系统是目前最复杂的软件成分
4,操作系统的规模简单的操作系统:
一次一个应用程序在运行例子:
较早期的计算机
早期的 PC
嵌入式控制器
(电梯,汽车,…… )
标准设备驱动程序
中断控制
数学库,等等复杂的操作系统:
多个应用程序共享计算机
操作系统必须管理多个应用程序和多个用户 之间的交互例子,
CPU,内存,
I/O 设备,硬盘,打印机,…
操作系统管理所有这些资源,提供标准服务库更复杂的操作系统:
多个 CPU,多个计算机
5.操作系统的作用应用程序
----------------------- <> 虚机器界面操作系统
----------------------- <> 物理机器界面硬件假如没有操作系统?
源代码编译器目标代码硬件怎样将目标代码送给硬件?怎样输出打印结果?
人们将对二进制程序操作 从二极发光管读答案两个角度:
什么是物理界面
(物理实现)
什么是应用界面
(更完美的抽象)
( 1) 程序的执行负责启动每个程序,以及结束程序的工作
( 2) 完成与硬件有关的工作
( 3) 完成与应用无关的工作易于使用,基本服务,统一性
( 4) 计算机系统的效率与安全问题硬件相关:
指实现代码中包含存储器的物理地址,
包含对设备接口寄存器和设备接口缓冲区的读写等等
实现该工作的过程代码和硬件因素密切相关,即需要设置与测试,使用物理地址,设备接口寄存器等等
硬件相关必然复杂繁琐,代码量大
硬件相关的工作,其实现代码不通用硬件相关:
由于操作系统承担了上述工作,在其之上的各类程序就没有必要直接同硬件打交道了 。 硬件改变时,操作系统相应变化即可,其他的程序不用作出改变硬件相关还表现在有关硬件的状态必定带来对应代码的变化与应用无关:
是指这些工作是任何一个程序都需要的,
最基本的工作它们具有共性,工 作 过 程 相 同与具体应用无直接关系,即与用户所关心的应用目标无直接关系
6,操作系统做什么?
操作系统作为 仲裁者(协调者)
使多个应用程序 /用户高效,公平地一起工作保护用户不互相干扰例子:并发,存储保护,文件系统,网络操作系统 作为 管理程序
硬件平台扩展为运行平台运行平台是承载应用程序的载体平台之争企业竞争的范围已经超出了市场、资本和技术竞争的焦点:
表面上:平台(标准)
实质上:争夺产业的制高点操作系统作为 幻觉制造者 (illusionist)
提供硬件的高层界面,取消硬件限制
操作系统提供无限的内存、无限的 CPU
操作系统作为 管理者 (government)
有效合理地分配资源,保护用户不受侵犯
提供安全、保密措施操作系统作为 历史教员
学习过去,预测未来操作系统作为 标准服务提供者
提供每个用户需要的标准工具
如标准库、窗口系统操作系统提供的服务:
程序创建和执行存取 I/O设备控制对文件的存取系统存取错误检测和回应统计操作系统作为 A PARENT
7,什么对操作系统产生影响?
硬件(成本)
新技术(支持)
使用户 /程序员开心(使用方式)
8.当前操作系统的特征大型与小型 OS:
100k至数百万行源码
100-1000人 -年的工作量嵌入式 OS:
内核小到几十 k至几百 k
研制开发工作量,几个到几十个人年复杂,
→ 异步性
→ 体现硬件特征
→ 不同用户的相互冲突的需求
→ 性能很重要难于理解,
→ 系统较构建者命短
→ 太复杂,无法整体调试
→ 行为难以预测,通过猜测进行微调
→ 经常是不可靠的个人计算:
计算机很便宜,将来它会更便宜人人都会拥有一台计算机,甚至多台分布式,机群系统:
通信网络和 Internet
允许不同的机器,方便地共享资源注重高可靠,高安全注重 移动计算,注重 嵌入式计算
Any where
Any time
Any person
课程总目标:
学习核心技术并能在其他地方应用之问题:
您会有机会去设计新型操作系统的吗?
基本目的
1,介绍操作系统的基本概念,基本结构及运行环境
2,介绍操作系统原理,设计方法和实现技术
3,介绍操作系统的演化过程,发展研究动向,
新技术以及新思想
4,介绍各种有代表性的,典型的操作系统实例
5,培养学生分析问题,解决问题的基本能力,
培养创造型人才学习收获
1,使学生对操作系统的基本概念,基本结构及运行环境有深入的认识,对操作系统这一课程有比较全面的把握
2,使学生深入到操作系统内部,理解并掌握操作系统的基本原理,设计方法和实现技术
3,使学生了解操作系统的演化过程,发展研究动向,新技术以及新思想,使学生具有透过变化看趋势,透过技术抓原理,把握学科发展脉搏的基本素质,为其今后在相关领域开展工作打下坚实的基础