资源预览内容
第1页 / 共62页
第2页 / 共62页
第3页 / 共62页
第4页 / 共62页
第5页 / 共62页
第6页 / 共62页
第7页 / 共62页
第8页 / 共62页
第9页 / 共62页
第10页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
操作系统与系统编程,谌 卫 军,清华大学软件学院,Operating Systems and System Programming,2004年春季,为何要学操作系统?,BOOL g_bEndFlag = TRUE; /* 优先级低,70 */ void testTaskA( ) while(g_bEndFlag) 等待信号量; g_bEndFlag = FALSE; return; ,/*优先级高,50*/ void testTaskB( ) int nRecvLen; while(g_bEndFlag) nRecvLen = recv(sockId.); if(nRecvLen = 0) 打印出错信息; 释放信号量; return; ,教学安排, 教学目标,熟悉操作系统的基本原理和主要构件; 通过编程练习来加深对操作系统基本 概念的理解; 了解一些典型的操作系统实例。,教学安排, 教材,Andrew S. Tanenbaum, Modern Operating System(英文版,第2版,机械工业出版社), 参考书,Abrahan Silberschatz, etc,Operating System Concept (6th edition) William Stallings, Operating Systems,教学安排, 参考书(续),Daniel P. Bovet, Marco Cesati, Understanding the Linux Kernel (2nd Edition) 毛得操、胡希明,Linux内核源代码情景分析, 浙江大学出版社 David A.Solomon, Mark E.Russinovich, Inside Microsoft Windows 2000 (3rd Edition),教学安排, 联系方式,办公室:软件学院教学楼211房间 电话:62795435 手机:13661094628 Email:或 Ftp:166.111.102.2,os/student,教学安排, 助教的联系方式,姓名:吴邦欲(软件理论与系统研究所) 办公室:软件学院教学楼117房间 电话:62795400124 Email: 上机辅导:每周五下午1:304:30,第一章 概述,操作系统的概念 操作系统的发展历史 操作系统的类型 操作系统的硬件环境 操作系统的功能,1.1 操作系统的概念,小例子:如何在计算机上看影碟?,买一台计算机! 安装操作系统 (Windows XP) 安装影碟播放软件 (超级解霸); 把影碟装入光驱; 运行影碟播放软件; 播放影碟。,$,联想,$,微软,$,豪杰,硬件,操作系统,联想,IBM,DELL,惠普,微软,编译器,超级解霸,豪杰,微软,操作系统的地位:紧贴计算机硬件之上,所有其他软件之下(是其他软件的共同环境),各种应用程序,操作系统是计算机系统中的一个系统软件, 是一些程序模块的集合,它们能以尽量有效、合理的方式管理和分配计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效地运行。,操作系统的定义,有效:系统效率,资源利用率 (如:CPU利用的充足与否,内存、硬盘的访问效能、浪费的空间),合理:公平与否,如果不公平则会产生“死 锁”或“饥饿”。,方便:两层含义 友好的用户界面:DOS - Windows; 方便的编程接口, 中断调用 - API - MFC。,1.2 操作系统的发展历史,硬件非常昂贵,没有操作系统,编程语言:机器语言; 输入输出:纸带或卡片; 用户在控制台前调试程序,独占全机。用户既是程序员,又是操作员,手工操作; 一次完成一个功能(计算,I/O,用户思考/反应),之间没有重叠。,问题:手工操作的低效率造成CPU资源的浪费。,程序员把作业(卡片或磁带)提交给负责调度的操作员(系统管理员); 操作员把作业“成批”地输入到计算机; 常驻内存的批处理管理程序自动地识别、装入一个作业,并运行之,然后再取下一个作业。,串行地执行作业,因而称为是“单道批处理”。,硬件昂贵,人力便宜,50年代末60年代中:批处理管理程序,为了提高计算机的使用效率,减少手工操作!,程序的调试比较困难; 由于慢速的输入输出处理仍然直接由主机来完成,使得CPU和I/O设备使用忙闲不均:对计算为主的作业,外设空闲;对I/O为主的作业,CPU空闲。,单道批处理的问题:,通道和中断技术,通道:用于控制I/O设备与内存间的数据传输,有专用的I/O处理器,启动后可独立于CPU运行,实现CPU与I/O的并行工作。 中断是指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,在完成后回到原来断点继续工作。,60年代初,发展了通道技术和中断技术,这些技术的出现使得I/O访问与CPU计算可以重叠进行。,60年代中70年代中:多道批处理系统,(现代意义上的操作系统的出现),特征: 多道:内存中同时存放多个作业,由CPU以切换方式为之服务。在当前运行的作业需作I/O处理时,CPU转而执行另一个作业; 宏观上并行运行:都处于运行状态,但都未运行完; 微观上串行运行:各作业交替使用CPU和I/O设备,CPU,I/O,单道批处理:,多道批处理:,CPU,I/O,作业甲(红黄),作业乙(白绿),需要解决的问题: 内存管理,系统必须给多个作业分配内存; 内存保护,避免一个程序中的bug造成整个系统崩溃,或者是破坏了其他程序的执行; CPU调度,系统必须在多个作业中不断地进行切换,选择其中的一个去使用CPU; 系统必须去管理各个并行运行的作业之间的交互关系;,如何构造一个多道批处理系统?,系统非常复杂; 完全用汇编语言编写; IBM的OS/360,第一个为一系列计算机设计的操作系统,从最小的机器到最大的机器。1963年提出,1968年开始工作。发布时,带着已知的 1000 个bugs; 引发了研究兴趣,OS最终成为一门重要的学科,难不难? 难!,缺点:只是解决了CPU与I/O设备之间的并行运行 问题,没有解决用户的响应时间要求。,计算机比较贵,只有一台; 终端比较便宜,人手一台; 所有用户可与系统立即交互,调试比较方便;,硬件较以前便宜,人力昂贵,70年代中至今:分时系统,多个用户通过各自的终端分享地使用同一台计算机。,交互式分时:,一些分时操作系统,CTSS:,由MIT开发; 最早的分时系统之一; 在调度方面进行了一些开拓性的工作;,MULTICS:,1963年,由MIT、贝尔实验室和GE联合开发; 设计目标是“公用计算服务系统”,大量用户 终端通过电话线接入计算机主机; 系统庞大而复杂,研制难度超出了所有人预料, 贝尔实验室和GE先后退出。于1969投入使用; 引入了许多现代操作系统领域概念雏形,对 随后操作系统的发展有着巨大的影响。,MULTiplexed Information and Computing Service,一些分时操作系统(续),UNIX:,1969年,贝尔实验室的Ken Thompson在MULTICS上编写了一个叫“太空旅行”(Space Travel)的游戏,模拟一个飞行员驾驶一艘宇宙飞船在太阳系当中遨游,并且可以在各种星体上着陆。后来他们对MULTICS的访问被关闭了,因此Thompson在贝尔实验室找了一台无人使用的PDP-7计算机,然后和Dennis Ritchie在一台GE-635计算机上,利用其GECOS所提供的一个交叉汇编器,把空间旅行游戏用PDP-7汇编语言重新编写,然后用穿孔纸带把它转移到PDP-7上;,后来,Thompson和Ritchie等人开始为PDP-7编写一个新的操作系统。在写好了文件系统和一组基本的软件工具以后,他们编写了一个PDP-7的汇编器,这样他们就能够直接在PDP-7上编程了。到了1970年,操作系统的基本元素都已经完成了,他们给系统起了一个名字UNIX (UNICS:UNiplexed Information and Computing Service); 1970年夏,研究小组得到了一台新机器PDP-11,因此把Unix系统从PDP-7移植到PDP-11,这项工作非常繁琐,因为整个系统都是用汇编语言来编写的。研究小组开始考虑用高级语言来重写整个系统,以提高系统的可移植性和可懂性; 于是Thompson发明了B语言,但这种语言过于简单,数据无类型。1972年,Ritchie发明了著名的C语言,因此两人把整个系统用C语言重写了。 由于两人的杰出工作,1984年他们获得了ACM图灵奖。,Unix是用高级语言编写的,能够在不同的硬件 平台之间移植,是一种能够在笔记本电脑、PC 机、工作站甚至是巨型机上运行的操作系统; Unix是现代操作系统的代表,Unix运行时的安全 性、可靠性以及强大的计算能力赢得了广大用户 的信赖,已经成为一种不断发展的、商业化的操 作系统; Unix获得了广泛的发展:Berkeley大学的BSD系 统(Berkeley Software Distribution)、Tanenbaum 的MINIX系统、Linus Torvalds的Linux系统、 IBM的AIX系统、Sun的Solaris系统等等。,计算机非常便宜,可以人手一台,Apple II、IBM PC等; 1974年Intel 推出8080芯片,请Gary Kildall设计了CP/M操作系统第一个个人计算机操作系统。Gary由此成立Digital Research公司; 1980年,IBM需要为他们的PC机安装操作系统,但Gary居然未予重视,机遇落在了微软身上,微软收购了西雅图计算机产品公司 DOS操作系统,创建了MS-DOS; 商业应用推动了软件工业:字处理器、制表软件、数据库。市场划分为三层:硬件、操作系统和应用软件。,硬件很便宜,人力依然昂贵,规模庞大:数以千万行的代码,Windows NT是2千万行,Windows 2000约4千万行; 极为复杂:功能繁杂、相互关联;用户行为难以预测;性能非常重要;必须运行在各种硬件平台上,必须兼容以前的软件; 互联时代:网络连接你我他,信息共享,基于网络的应用(WWW、Email、新闻组)。,今天的操作系统,1.3 操作系统的类型,批处理操作系统(多道批处理),分时操作系统,实时操作系统 嵌入式操作系统,个人计算机操作系统,网络操作系统,分布式操作系统,实时操作系统,实时操作系统是指使计算机能及时响应外部事件的 请求,在规定的严格时间内完成对该事件的处理, 并控制所有实时设备和实时任务协调一致地工作的 操作系统。,主要特征: 实时性:对外部请求在严格时间范围内作出反应; 可靠性:要求高度可靠。,分两类:实时过程控制,用于工业控制、军事控制;实时通信处理,用于电信、银行、飞机定票等领域。,嵌入式操作系统,嵌入式操作系统就是运行在嵌入式智能芯片环境中, 对整个智能芯片以及它所操作、控制的各种部件装 置等资源进行统一协调、调度、指挥和控制的系统 软件。 它们是一个设备、装置或系统(即嵌入式系统)中的一部分,嵌入式系统可以不是“计算机”。小到手机的通信控制,大到国家范围内的电力监控网。 典型例子: Wind River(风河)的VxWorksMicrosoft的Windows CE,个人计算机操作系统,针对单用户使用的个人计算机进行优化的操作系统,是一种单用户多任务的操作系统。,主要特征: 供个人使用,功能强; 用户界面友好,使用方便; 有丰富的应用软件:事务处理、学习、娱乐等; 要求支持多种硬件和外部设备(多媒体设备、网 络、远程通信)。,DOS系列,Windows系列,Linux系列等等,网络操作系统,网络操作系统是基于计算机网络的、在通常
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号