610 likes | 855 Views
清华大学电子工程系 马洪兵 62773434 hbma@tsinghua.edu.cn. Windows 操作系统原理与应用. 教学目标. 操作系统课程的定位 操作系统是一门涉及较多硬件知识的计算机系统软件课程,在计算机软、硬件课程的设置上,起着承上启下的作用。 本课程的目的与任务是使学生通过本课程的学习,理解操作系统的基本原理、组成、基本概念和主要功能。. 教学目标. 教学模式 目前国内外操作系统课程的教学主要有两种模式: 1. 侧重理论与原理的讲述,不局限于具体具体实例 2. 结合具体实例,讲述操作系统的实现技术. 教学目标.
E N D
清华大学电子工程系马洪兵62773434hbma@tsinghua.edu.cn清华大学电子工程系马洪兵62773434hbma@tsinghua.edu.cn Windows操作系统原理与应用
教学目标 操作系统课程的定位 操作系统是一门涉及较多硬件知识的计算机系统软件课程,在计算机软、硬件课程的设置上,起着承上启下的作用。 本课程的目的与任务是使学生通过本课程的学习,理解操作系统的基本原理、组成、基本概念和主要功能。
教学目标 • 教学模式 • 目前国内外操作系统课程的教学主要有两种模式: • 1. 侧重理论与原理的讲述,不局限于具体具体实例 • 2. 结合具体实例,讲述操作系统的实现技术
教学目标 《Windows操作系统原理与应用》课的教学任务 对电子信息类专业,操作系统教学要兼顾原理和应用,一方面要让学生掌握操作系统的基本功能和一般性原理,另一方面要了解一般性原理在具体操作系统中实现方法,但不必深入到源代码的层次。 考虑到Windows是当今微型计算机的主流操作系统,使学生了解Windows的组织和运行的基本原理是十分必要的。 因而,本课程的教学任务是在讲述操作系统基本原理的基础上,重点介绍Windows的运行机制和内核技术,为学生今后开发应用系统打下基础。
教材与参考书 • 《Windows操作系统原理》尤晋元等 机械工业出版社 • 《Windows内核实验教程》陈向群等 机械工业出版社 • 操作系统——内核与设计原理 William Stallings, • (Operating System:Internals and Design Principles) • 中文版:电子工业出版社 英文版:清华大学出版社 • 现代操作系统 Andrew S. Tanenbaum, • (Modern Operating System) • 中文版: 机械工业出版社 • 操作系统:设计与实现 Andrew S. Tanenbaum • (Operating System: Design and Implementation) • 中文版:电子工业出版社 英文版:清华大学出版社
课程主要内容介绍 • 第一章 操作系统概述 • 第二章 Windows操作系统的体系结构 • 第三章 处理机管理 • 第四章 存储管理 • 第五章 文件管理 • 第六章 设备管理 • 第七章 计算机网络管理
实验安排 1. 线程同步 2. 磁盘I/O 3. 网络通信 4. 设备驱动程序设计 考核方式 实验(60%)+ 学期论文/大作业(40%)
第一章 操作系统概述 一、计算机系统概述 二、操作系统的基本概念 三、操作系统的主要功能 四、操作系统的发展历史 五、Windows操作系统的发展历程
一、计算机系统概述 计算机硬件是根据电、磁、光、机械等原理构成的各种物理设备的有机组合,是系统赖以工作的实体。 软件是计算机系统中程序和有关文件的集合。程序是计算任务的处理对象和处理规则的描述;文件是开发、使用和维护程序所需的资料数据。 计算机系统的层次结构
计算机软件 系统软件:居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用,与具体的应用领域无关。 操作系统是最重要的系统软件。 支撑软件:支援其他软件的编制和维护的软件,主要包括环境数据库、各种接口软件和工具软件。 应用软件:特定应用领域专用的软件。
二、操作系统的基本概念 1. 操作系统的定义 操作系统是计算机系统中的一个系统软件,它是这 样一些程序模块的集合: 它们能有效地组织和管理计算机的软硬件资源,合理地组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效地使用计算机,使整个计算机系统能高效的运行。
有效:系统效率 (如CPU用的充足与否) 资源利用率 (如内存,外部设备是否忙碌) 合理: 公平与否,如果不公平则会产生“死锁”或“饥饿” 方便: 针对应用程序程序员和用户 1. 操作系统的定义
2. 操作系统的地位 操作系统在硬件基础上的第一层软件, 是其它软件和硬件的接口
①并发性: 在计算机系统中同时存在多个程序,从宏观上看这些程序是同时在执行的。 从微观上讲,在单CPU环境下,任何时刻只有一个程序在执行,这些并行执行的程序在CPU上轮流执行。 3. 操作系统的特征
②共享性 操作系统与多个用户的程序共同使用计算机上的资源 3. 操作系统的特征 ③随机性 操作系统必须随时对以不可预测的次序发生的事件进行响应 考虑周密、设计适当
系统命令(命令行、菜单式、命令脚本式、图形用户接口GUI);系统命令(命令行、菜单式、命令脚本式、图形用户接口GUI); 系统调用(形式上类似于过程调用,在应用编程中使用)。 4. 操作系统的作用 ①OS是用户使用系统硬件、软件的接口 • 在裸机上添加:设备管理、文件管理、存储管理(针对内存和外存)、处理机管理(针对CPU); • 另外,为合理组织工作流程:作业管理、进程管理。
管理对象包括:CPU、存储器、外部设备、信息(数据和软件);管理对象包括:CPU、存储器、外部设备、信息(数据和软件); 管理的内容:资源的当前状态(数量和使用情况)、资源的分配、回收和访问操作,相应管理策略(包括用户权限)。 ②OS是计算机硬件、软件资源的管理者 4. 操作系统的作用
三、操作系统的主要功能 • 处理机管理 • 存储管理 • 文件管理 • 设备管理 • 作业管理 —— 传统的操作系统教科书对操作系统功能的描述
处理机管理 此处的处理机就是通常所说的处理器或CPU。 CPU是计算机系统中最宝贵的硬件资源,操作系统最重要的服务就是提高CPU的利用率。 为了提高CPU的利用率,现代操作系统大都采用多道程序技术。如果一个程序因等待某一条件而不能运行下去时,就把处理器占用权转交给另一个可运行程序。或者,当出现了一个比当前运行的程序更重要的可运行的程序时,后者应能抢占CPU。为了描述多道程序的并发执行,引入了进程的概念。所以处理机管理通常也称为进程管理。 通过进程管理协调多道程序之间的关系,解决对处理器分配调度策略、分配实施和回收等问题,以使CPU资源得到最充分的利用。
存储管理 存储管理主要管理内存资源。 当多个程序共享有限的内存资源时,会有一些问题需要解决,例如,如何为它们分配内存空间,同时,使用户存放在内存中的程序和数据彼此隔离、互不侵扰,又能保证在一定条件下共享等等问题,都是存储管理的范围。 当内存不够用时,存储管理必须解决内存的扩充问题,即将内存和外存结合起来管理,为用户提供一个容量比实际内存大得多的虚拟存储器。 存储功能与硬件存储器的组织结构密切相关。
文件管理 系统中的信息资源(如程序和数据)是以文件的形式存放在外存储器(如磁盘、光盘和磁带)上的,需要时再把它们装入内存。 文件管理的任务是有效地支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题,以使用户方便、安全地访问文件。操作系统一般都提供很强的文件系统。
设备管理 设备管理是指对计算机系统中的所有输入、输出设备(外部设备)的管理。 设备管理的主要任务是根据一定的分配策略,把输入输出设备分配给请求输入输出操作的进程,并负责启动设备完成实际的输入输出操作。 为了发挥设备和处理器的并行工作能力,设备管理广泛采用虚拟技术和缓冲技术。
作业管理 即用户接口。 作业管理的任务是为用户提供一个使用系统的良好环境,使用户能有效地组织自己的工作流程,并使整个系统能高效地运行。
操作系统发展是随着计算机硬件技术的发展而发展的操作系统发展是随着计算机硬件技术的发展而发展的 目标:充分利用硬件 四、操作系统的发展历史 操作系统历史划分为4个阶段
第1阶段:电子管时代(1946年-1955年) ENIAC计算机 运算速度:1000次/每秒, 数万个真空管, 占地100平方米 没有程序设计语言(甚至没有汇编),更谈不上操作系统 程序员提前预约一段时间,然后到机房将他的插件板插到计算机里 期盼着在接下来的时间中 几万个真空管不会烧断 从而可以计算自己的题目
第1阶段:电子管时代(1946年-1955年) 50年代早期 出现了穿孔卡片 程序写在卡片上然后读入计算机 但计算过程则依然如旧
工作效率非常低 • 每一用户都要自行编写涉及到硬件的源代码 • 工作量大,难度高,易出错,需要大量人力和物力 第1阶段:电子管时代(1946年-1955年)
50年代晶体管发明 计算机比较可靠,可成批地生产,用户可指望计算机长时间运行,完成一些工作 程序设计语言诞生: FORTRAN 1954年提出,1956年设计完成 ALGOL 1958年引入 COBOL 1959年引入 设计人员、生产人员、操作人员、程序人员和维护人员之间 第一次有了明确的分工 第2阶段 晶体管时代(1955年-1965年)
要运行一个作业,先将程序写在纸上(用高级语言或汇编语言)要运行一个作业,先将程序写在纸上(用高级语言或汇编语言) 然后穿孔成卡片,再将卡片盒交给操作员 计算结果从打印机上输出 操作员到打印机上撕下运算结果送到输出室 程序员稍后可从取到结果 然后,操作员从输入室的卡片盒中读入另一个任务 如果需要FORTRAN编译器,还要把它取来读入计算机 机时在走来走去时被浪费 第2阶段 晶体管时代(1955年-1965年)
作业卡片是现代作业控制语言和命令解释器的先驱作业卡片是现代作业控制语言和命令解释器的先驱 第2阶段 晶体管时代(1955年-1965年)
批处理操作系统- 现代操作系统雏型 为了改进主存和I/O设备之间的吞吐量,IBM 7094机引入了I/O 处理机概念 其思想是:在输入室收集全部的作业,用一台相对便宜的计算机如IBM 1401计算机,将它们读到磁带上,另外用较昂贵的计算机,如IBM7094来完成真正的计算 第2阶段 晶体管时代(1955年-1965年)
第二代计算机典型的操作系统 FMS(FORTRAN Monitor System,FORTRAN监控系统) IBMSYS(IBM为7094机配备的操作系统) 这些操作系统由监控程序,特权指令,存储保护和简单的批处理构成 第2阶段 晶体管时代(1955年-1965年)
多道程序设计技术(multiprogramming) 在IBM 7094机上,若当前作业因等待I/O而暂停, CUP只能踏步直至该I/O完成 对于CPU操作密集科学计算问题,浪费时间少 对于商业数据处理,I/O等待时间常占80%-90% 解决办法 将内存分几个部分,每部分放不同的作业 当一个作业等待I/O时,另一个作业可以使用CPU 在主存中同时驻留多个作业需要硬件进行保护 以避免信息被窃取或攻击 第3阶段:集成电路时代(1965年-1980年)
第3阶段:集成电路时代(1965年-1980年) 多道程序设计技术(multiprogramming) 单处理机上多道程序运行的特点: 1、多道:内存中同时存放多道相互独立的程序 2、宏观上并行:宏观上,系统中的多道程序都在运行,在一定的时间间隔内都取得进展 3、微观上串行:在任意时刻,只有一道程序占有CPU
第3阶段:集成电路时代(1965年-1980年) 多道程序设计技术(multiprogramming) CPU A B C A B C I/O 设备 时间
分时系统 批处理系统从一作业提交到结果取回, 往往长达数小时 一个逗号的误用会导致编译失败,而可能浪费程序员半天时间 问题的解决导致分时系统的出现 分时系统实际上是多道程序的一个变种 在分时系统中,每个用户有一个联机终端。假设20个用户登录,其中17个在思考或谈论或喝咖啡,则CPU可给那三个需要的作业轮流分配服务 调试程序的用户常常只发出简短的命令,而很少有长的费时命令,所以计算机能够为许多用户提供交互式快速服务,同时在CPU空闲时还能在后台运行大作业 第3阶段:集成电路时代(1965年-1980年)
第3阶段:集成电路时代(1965年-1980年) 多数厂商有几条完全不同的生产线,生产不同的计算机,开发和维护完全不同的产品,对厂商来说是昂贵的 另外,新用户,在开始时只需要一台小计算机,后来可能需要一台大的计算机,而且希望能在新计算机上执行原有的程序 这样,厂家和用户需要软件在不同型号的计算机之间兼容 系列机思想与IBM System/360系统
1964 年IBM 宣布推出System/360计算机系统 第一个采用小规模集成电路的主流机型 试图一次性地解决上述两个问题 由于所有的计算机 都有相同的体系结 构和指令集 在理论上,为一型 号编写的程序可以 在其他型号机器上 运行 第3阶段:集成电路时代(1965年-1980年)
IBM System/360的若干问题 IBM无法写出同时满足互冲突需要的操作系统 其实别人也一样不能完成这项工作任务 数千名程序员写的数百万行汇编语言代码 系统自身占据了大量存储空间和一半的CPU时间 数百万行汇编代码中有成千上万处错误 IBM不断发行新的版本试图更正这些错误 每个新版本在更正老错误的同时又引入新错误 所以随着时间的流逝,错误的数量大致保持不变 第3阶段:集成电路时代(1965年-1980年) 这便是软件危机, 软件工程应运而生
MULTICS的灾难 1965年MIT、贝尔实验室和通用电气公司决定开发一种“公用计算服务系统”, 希望能够同时支持整个波士顿所有的分时用户。该系统称作MULTICS MULTICS设计目标是:便利的远程终端使用,大量终端通过电话线接入计算机主机 MULTICS研制难度超出了所有人预料 长期研制工作达不到预期目标,1969年4月贝尔实验室退出,不久通用电气公司也退出了 MULTICS引入了许多现代操作系统领域概念雏形,对随后操作系统特别是UNIX的成功有着巨大的影响 第3阶段:集成电路时代(1965年-1980年)
UNIX的崛起 1969年,在贝尔退出MULTICS研制项目后,Ken Thompson和Dennis M. Ritchie 想申请经费买计算机从事操作系统研究,但多次申请得不到批准 项目无着落,他们在一台无人用的PDP-7上,重新摆弄原先在MULTICS项目上设计的“空间旅行”游戏 为了使游戏能够在PDP-7上顺利运行,他们陆续开发了浮点运算软件包、显示驱动软件,设计了文件系统、实用程序、shell 和汇编程序 到了1970年,在一切完成后,给新系统起了个同MULTICS发音相近的名字UNIX 随后,UNIX用C语言全部重写,自此,UNIX诞生了 第3阶段:集成电路时代(1965年-1980年)
UNIX是现代操作系统的代表。Unix运行时的安全性、可靠性以及强大的计算能力赢得广大用户的信赖UNIX是现代操作系统的代表。Unix运行时的安全性、可靠性以及强大的计算能力赢得广大用户的信赖 促使UNIX系统成功的因素: 首先,由于UNIX是用C语言编写,因此它是可移植的,UNIX 是世界上唯一能在笔记本计算机、PC机、工作站直至巨型机上运行的操作系统 第二,系统源代码非常有效,系统容易适应特殊的需求 最后,也是最重要的一点,它是一个良好的、通用的、多用户、多任务、分时操作系统 第3阶段:集成电路时代(1965年-1980年) UNIX的崛起
第4代阶段:大规模集成电路时代(1980年-) 个人计算机操作系统 随着大规模集成电路发展,个人计算机时代到来了,各种类型的个人计算机和操作系统层出不穷。 针对单用户使用的个人计算机进行优化的操作系统。 • 个人计算机操作系统的特征 • 应用领域:事务处理、个人娱乐, • 系统要求:使用方便、支持多种硬件和外部设备(多媒体设备、网络、远程通信)、效率不必很高。 • 常用的个人计算机操作系统 • 单用户单任务:MS DOS • 单用户多任务:Windows • 多用户多任务:UNIX, Linux, FreeBSD)
第4代阶段:大规模集成电路时代(1980年-) 当代操作系统的两大发展方向 在当代,操作系统的发展正在呈现更加迅猛的发展态势。 从规模上看,操作系统向着大型和微型的两个不同的方向发展着。大型系统的典型是分布式操作系统和机群操作系统。而微型系统的典型则是嵌入式操作系统。
第4代阶段:大规模集成电路时代(1980年-) 分布式操作系统 分布式系统:处理和控制的分散(相对于集中式系统) 分布式系统是以计算机网络为基础的,它的基本特征是处理上的分布,即功能和任务的分布。 分布式操作系统的所有系统任务可在系统中任何处理机上运行,自动实现全系统范围内的任务分配并自动调度各处理机的工作负载。
第4代阶段:大规模集成电路时代(1980年-) 分布式操作系统与网络操作系统的比较 • 耦合程度: • 分布式系统是紧密耦合系统:分布式OS是在各机上统一建立的(OS同质),直接管理CPU、存储器和外设;统一进行全系统的管理; • 网络通常容许异种OS互连,各机上各种服务程序遵从统一的网络协议(协议同质)。 • 并行性: • 分布式OS可以将一个进程分散在各机上并行执行(进程迁移); • 网络则各机上的进程独立。 • 透明性:用户是否知道或指定资源在哪个机器上(如CPU、内存或外设)。 • 分布式系统的网络资源调度对用户透明,用户不了解所占有资源的位置; • 网络操作系统中对网络资源的使用要由用户明确指定; • 健壮性:分布式系统要求更强的容错能力(工作时系统重构)
嵌入式系统: 在各种设备、装置或系统中,完成特定功能的软硬件系统,它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机”。该系统通常工作在反应式或对处理时间有较严格要求环境中。由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统。 第4代阶段:大规模集成电路时代(1980年-) 嵌入式操作系统
第4代阶段:大规模集成电路时代(1980年-) 第4代阶段:大规模集成电路时代(1980年-)
第4代阶段:大规模集成电路时代(1980年-) 嵌入式操作系统 在嵌入式系统中的OS,称为嵌入式操作系统 嵌入式操作系统,是运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等等资源进行统一协调、调度、指挥和控制的系统软件。
第4代阶段:大规模集成电路时代(1980年-) 典型嵌入式操作系统的特性 • 完成某一项或有限项功能;不是通用型的 • 在性能和实时性方面有严格的限制 • 能源、成本和可靠性通常是影响设计的重要因素 • 占有资源少、易于连接 • 系统功能可针对需求进行裁剪、调整和生成 • 以便满足最终产品的设计要求