操作系统课程的特点: 实践性强(从实践总结出原理) 涉及面广:涉及到计算机科学的很多领域(计算机体系结构/硬件 软件设计 程序设计语言 数据结构 算法 网络)
为什么学习操作系统? 设计操作系统或者修改现有的系统 加深对使用的OS的理解,有利于深入编程 用户为了开发应用程序必须与操作系统打交道 编程时借鉴操作系统的设计思想和算法 操作系统中所用的许多概念和技巧可以推广应用到其他领域 选择购买操作系统
1: Introduction 引论 What is an operating system? Simple Batch Systems 简单批处理系统 Multiprogramming Batched Systems 多道程序批处理系统 Time-Sharing Systems分时系统 Personal-Computer Systems 个人计算机系统 Parallel Systems并行系统 Real -Time Systems实时系统 Distributed Systems分布式系统
What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. 在计算机用户和计算机硬件之间起媒介作用的一种程序。 Operating system goals: 操作系统目标 Make the computer system convenient to use. 使计算机系统更易使用。 Use the computer hardware in an efficient manner. 以一种效率的方式使用硬件。
操作系统举例 MS OS: MS DOS, MS Windows 3.x, Windows 95, Windows NT, Windows 2000,Windows XP UNIX: BSD, SRV4, OSF1, SCO UNIX, AIX, Solaris, Linux
Computer System Components Hardware 硬件 – provides basic computing resources (CPU, memory, I/O devices). 提供基本的运算资源 Operating system 操作系统 – controls and coordinates the use of the hardware among the various application programs for the various users. 在各种应用程序和用户之间控制与协调对硬件的使用 Applications programs 应用程序– define the ways in which the system resources are used to solve the computing problems of the users (compilers, database systems, video games, business programs).定义解决用户问题的资源使用方式(编译器、数据库、视频游戏、事务程序等) Users (people, machines, other computers) 用户(人、机、其他计算机).
Abstract View of System Components 系统部件的抽象视图
Operating System Definitions 操作系统定义 Resource allocator 资源分配者 – manages and allocates resources.管理和分配资源 Control program 控制程序– controls the execution of user programs and operations of I/O devices .控制用户程序的运行和I/O设备的操作 Kernel 内核– the one program running at all times (all else being application programs). 常驻内存运行的一个程序(所有其它的是应用程序) 定义:操作系统是一种管理计算机系统资源、控制系统工作流程,方便用户使用计算机的系统软件
A short historical review of operating system Operating systems have developed over the past 40 years. Operating systems and computer architecture have had a great deal of influence on each other.
操作系统的史前文明--手工操作 工作方式 计算机的工作特点 1946 ~ 50年代(电子管),集中计算(计算中心),计算机资源昂贵; 用户:用户既是程序员,又是操作员;用户是计算机专业人员; 编程语言:为机器语言; 输入输出:穿孔纸带或卡片; 计算机的工作特点 用户独占全机:不出现资源被其他用户占用,资源利用率低; CPU等待用户:计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;CPU利用率低;
运算速度:5000次/每秒, 18000个真空管, 占地182平方米,重量130吨,功耗140kW 程序员提前预约一段时间,然后到机房运行程序,期盼着在接下来的时间中几万个真空管不会烧断从而可以计算完自己的题目
50年代早期出现了穿孔卡片 程序写在卡片上然后读入计算机
主要矛盾 计算机处理能力的提高,手工操作的低效率(造成浪费); 用户独占全机的所有资源; 提高效率的途径 专门的操作员,批处理
Simple Batch Systems 简单批处理系统 50年代末 ~ 60年代中(晶体管) Hire an operator雇一个操作员(来操纵计算机),User 操作员 Input device: card reader卡片阅读机、tape drivers Output device: line printer、card punches卡片打孔机、tape drivers Reduce setup time by batching similar jobs批量处理同类作业减少了设置时间 Simple Batch operating Systems-- First rudimentary operating system.第一个原始的操作系统。 Automatic job sequencing 自动作业调度– automatically transfers control from one job to another. 自动把(计算机的)控制从一个作业转到另一个作业。 A Resident monitor常驻内存管理程序 initial control in monitor 管理程序进行初始化 control transfers to job 转换控制到作业 when job completes control transfers back to monitor作业完成后转换控制回管理程序
脱机批处理系统 磁带机 卡片 打印机 卡片阅读机 IBM1401 IBM7094 IBM1401 输入磁带 输出磁带
Memory Layout for a Simple Batch System 简单批处理系统的内存布局
Multiprogramming Batch Systems 多道程序批处理系统 60年代中 ~ 70年代中(集成电路)--现代意义上的操作系统出现 磁盘技术的引进,系统可以在磁盘上直接存取多个作业,进行作业调度。 而在主存中可同时有若干个作业, CPU在其中进行切换。 优点: 资源利用率高:CPU和内存利用率较高; 作业吞吐量大:单位时间内完成的工作数量多;
OS Features Needed for multiprogramming 多道程序对OS特点的要求 Memory management(存储管理)– the system must allocate the memory to several jobs.系统必须为若干作业分派空间 CPU scheduling (CPU调度) – the system must choose among several jobs ready to run. 系统必须在就绪作业中挑选 Allocation of devices (设备分配)
Time-Sharing Systems 分时系统 70年代中期至今--操作系统进入实用化阶段,Unix是其中的代表 Provide for user interaction(提供用户交互性:一问一答) Allow many users to share the computer simultaneously,each user is given the impression than the entire computer system is dedicated to her use. 允许多个用户同时使用,(但由于计算机速度快,)每个用户感觉独享整个计算机系统。 Use CPU scheduling and multiprogramming 采用CPU调度和多道程序技术 Use time slice 采用时间片(将cpu时间分成时间片,多个程序轮流使用) More complex : memory management and protection;CPU-scheduling.
终端 主机
Personal-Computer Systems 个人计算机系统 Personal Computers – computer system dedicated to a single user. 个人计算机 - 供个人使用的计算机系统 I/O devices – keyboards, mice, display screens, small printers. 使用的 I/O设备 - 键盘、鼠标、显示、小型打印机 Designed for maximizing User convenience and responsiveness. 尽可能提高用户使用方便和响应及时 Can adopt technology developed for larger operating system. Often individuals have sole use of computer and do not need advanced CPU utilization or protection features. 可采用大型操作系统研发的技术,通常个人独占计算机,不需要很高的CPU利用率和保护技术
常用的个人计算机操作系统 单用户单任务:MS DOS 单用户多任务:OS/2, MS Windows 3.x, Windows 95, Windows NT, Windows 2000 Professional 多用户多任务:UNIX(SCO UNIX, Solaris x86, Linux, FreeBSD)
Migration of Operating-System Concepts and Features 操作系统概念和特性的变迁
Parallel Systems 并行系统 Multiprocessor systems with more than one CPU in close communication.有紧密通信的、多于一个CPU的多处理器系统 Tightly coupled system – processors share memory and a clock; communication usually takes place through the shared memory. 紧耦合系统 - 处理器共享内存和时钟;一般通过共享内存进行通信 Advantages of parallel system: 并行系统的优点 Increased throughput 增大吞吐量 Economical 经济 Increased reliability提高可靠性 graceful degradation(有故障时)适度的降低性能 Fault tolerant systems 容错系统
Parallel Systems 并行系统(Cont.) Symmetric multiprocessing (SMP)对称多处理 器 Each processor runs an identical copy of the operating system ; they are peers. 每个处理器运行操作系统的相同副本;彼此地位平等。 Many processes can run simultaneously without a significant performance deterioration. 许多进程可以并行运行,不会有性能的明显降低。 Most modern operating systems support SMP 大多数现代操作系统支持SMP Asymmetric multiprocessing 非对称多处理器 Each processor is assigned a specific task; master processor schedules and allocates work to slave processors. 每个处理器赋予一个特定任务;主处理器为从处理器调度和分配作业
Symmetric Multiprocessing Architecture 对称多处理器体系结构
Real-Time Systems 实时系统 Often used as a control device in a dedicated application such as controlling scientific experiments, medical imaging systems, industrial control systems, and some display systems.通常作为控制设备在诸如控制科学实验、医学影象系统、工业控制系统以及一些显示系统中应用 Well-defined fixed-time constraints.严格确定的时间限制 Hard real-time system 硬实时系统 Secondary storage limited or absent, data stored in short-term memory, or read-only memory (ROM)有限的或没有二级存储器(辅存),数据存在短期存储器或只读存储器中 Conflicts with time-sharing systems, not supported by general-purpose operating systems.同分时系统冲突,不被通用操作系统不支持. Soft real-time system 软实时系统 Limited utility in industrial control or robotics在工业控制或机器人领域中有一定的应用 Useful in applications (multimedia, virtual reality) requiring advanced operating-system features.在需要高级操作系统功能的应用(多媒体、虚拟现实)中有用.
Distributed Systems 分布式系统 Distribute the computation among several physical processors.计算分布在若干物理处理器上(与集中式系统相对应) Loosely coupled system – each processor has its own local memory; processors communicate with one another through various communications lines, such as high-speed buses or telephone lines. 松散偶合系统 - 每个处理器有自身的本地存储器;通过各种通信设施,如高速总线、电话线等进行处理器之间的通信 Advantages of distributed systems.分布式系统的优点??? Resources Sharing 资源共享 Computation speed up – load sharing 加快计算 – 分担负荷 Reliability可靠 Communications 方便通信
Distributed Systems 分布式系统(Cont.) Network Operating System 网络操作系统 provides file sharing 提供文件共享 provides communication scheme 提供通信机制 runs independently from other computers on the network 运行独立于网络上的其他计算机 Distributed Operating System分布式操作系统 less autonomy between computers计算机间较少自治性 gives the impression there is a single operating system controlling the network.让人感觉只有一个操作系统控制网络
分布式操作系统与网络操作系统的比较 耦合程度: 并行性: 透明性:用户是否知道或指定资源在哪个机器上(如CPU、内存或外设)。 分布式系统是紧密耦合系统:分布式OS是在各机上统一建立的"OS同质",直接管理CPU、存储器和外设;统一进行全系统的管理; 网络通常容许异种OS互连,各机上各种服务程序需按不同网络协议"协议同质"。 并行性: 分布式OS可以将一个进程分散在各机上并行执行"进程迁移"; 网络则各机上的进程独立。 透明性:用户是否知道或指定资源在哪个机器上(如CPU、内存或外设)。 分布式系统的网络资源调度对用户透明,用户不了解所占有资源的位置; 网络操作系统中对网络资源的使用要由用户明确指定;
当代操作系统的特征 并发:指两个或两个以上事件在同一时间间隔内发生。(与“并行”的区别) 共享:指系统中硬件和软件资源可为多 个用户同时使用(互斥共享、同时访问)。 虚拟:指物理上的一个实体变成逻辑上的多个对应物。 异步性:指内存中的多个进程均按照各自独立的、不可预知的速度向前推进。
研究操作系统的几种观点 计算机资源管理者的观点 可以从资源情况记录、资源分配策略、资源分配和回收讨论操作系统。 用户界面的观点 对于用户来说,并不关心操作系统的内部结构,而关心操作系统提供了哪些用户界面。 进程管理的观点 围绕进程运行过程讨论操作系统。
操作系统发展方向 大型系统:分布式操作系统和集群操作系统 微型系统:嵌入式操作系统 什么是嵌入式系统? 在各种设备、装置或系统中,完成特定功能的软硬件系统。它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机”。通常工作在对处理时间有较严格要求环境中。 由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统 在嵌入式系统中的OS,称为嵌入式操作系统,是运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等等资源进行统一协调、调度、指挥和控制的系统软件。
嵌入式操作系统的应用 智能卡 移动通信 计算机外设 机顶盒 零售设备 印刷机 复印机 互联网服务器 电话交换设备
嵌入式操作系统的应用 美国加州伯克利大学研制:微型智能传感器,安装TinyOS
常用的操作系统 MS DOS MS Windows 3.x, Windows 95, Windows NT, Windows 2000 UNIX 返回
MS DOS MS DOS的历史 IBM PC, CPU 8088/8086 单用户单任务,简单分层结构 1981年:PC-DOS 1.1:IBM PC,只支持软盘的个人操作系统; 1983年:DOS 2.0:PC XT,支持硬盘和目录的层次结构,并提供丰富的系统命令; 1984年:DOS 3.0:PC AT (Intel 80286 CPU),它把286作为一个快速的8086使用; 1987年:DOS 3.3:提供对IBM PS/2的支持(如3.5"软驱),提供了更多的应用; 1988年:DOS 4.0:支持大于32M的硬盘; 1991年:DOS 5.0:改进对扩展内存的支持;
MS Windows 3.x, Windows 95, Windows NT, Windows 2000 CPU 80386 单用户多任务 Windows的历史 1990年:Windows 3.0(成功版本),16位OS,借鉴Apple Macintosh给出友好的用户界面; 1993年:Windows NT 3.1, 32位OS,支持DOS和Windows应用程序; 1999年12月:Windows 2000(Professional, Server, Advanced Server),32位OS;
Windows在当时微软历史上创了几个记录: 投入开发人员最多 开发时间最长 更换主管人员最多 延迟交货次数最多 不过几年之后,Windows终于创造了销售成绩最佳的历史记录 个人计算机采用Windows占90%以上,微软公司成了垄断PC行业的同义词
UNIX 一群计算机迷 在贝尔实验室开发出UNIX 初衷:可以在一台无人使用的DEC PDP-7 小型计算机上玩星际探险游戏 Ken Thompson,Dennis Ritchie 1983年图灵奖获得者 1999年4月 美国国家技术金奖
UNIX的历史 多用户多任务分时操作系统 1965年:MIT的Multics,由于规模和进展而没有达到目标; 1969年:AT&T,PDP-11上的16位操作系统; 1974年:UNIX系统正式发表(第五版),在大学得到使用和好评; 1980年:University of California at Berkeley为VAX11发表BSD4.0;以后,UNIX就以AT&T和Berkeley为主分别开发,有多种变种; 1989年:UI (UNIX International)发表UNIX system V Res4.0;使BSD和System V在用户界面上统一; 1991年芬兰大学生Linus Benedict Torralds开发了第一个Linux版本
UNIX革命 UNIX是现代操作系统的代表。Unix运行时的安全性、可 靠性以及强大的计算能力赢得广大用户的信赖 首先,由于UNIX是用C语言编写,因此它是可移植的, UNIX 是世界上唯一能在笔记本计算机、PC机、工作站直 至巨型机上运行的操作系统 第二,系统源代码非常有效,系统容易适应特殊的需求 最后,也是最重要的一点,它是一个良好的、通用的、 多用户、多任务、分时操作系统
Linux 什么是Linux? Linux是运行于多种平台(PC、工作站等)之上、源代码公开、免费、遵循 GPL精神、遵守POSIX标准的、与UNIX兼容的操作系统。Linux是微机版的UNIX。 具有现代操作系统的所有特征: l 真正的抢先式多任务处理,支持多用户 l 虚拟内存 l 支持对称多处理机 l 网络功能 l 图形用户界面和桌面环境 l 速度和稳定性
GPL(General public License)软件--公共许可软件。此类软件的开发不是为了经济目的,而是不断开发并传播新的软件,并让每个人都能获得、拥有。该类软件遵循一定的规则: 3. 传播者必须免费提供软件的完整源代码。这样为用户提供了修改的条件 。 允许个人或组织为盈利而传播,获得利润。但不允许剥夺购买者的传播能力。
POSIX标准 UNIX发展过程中,出现了许多变种(BSD,System V 等)。为统一标准,出现了POSIX系列标准,它定义了一套标准的操作系统接口和工具。 从理论上说,POSIX标准代码很容易移植到任何遵守POSIX的操作系统中。 今天,几乎所有的正式操作系统都以支持POSIX标准为目标。
Linux内核发展史 1991年9月,芬兰赫尔辛基大学的大学生Linus Benedict Torvalds为改进MINIX操作系统开发了Linux 0.01版(内核)。该版本不能运行,只是一些源程序。 1991年底, Linus Torvalds 首次在internet上发布基于Intel 386体系结构的Linux 源代码,这时越来越多的人开始在这个系统上工作。 Linux逐渐成为一个基本稳定可靠,功能比较完善的操作系统。 一些软件公司,如Red Hat,InfoMagic也不失时机的推出自己的以Linux为核心的操作系统版本,从而大大推动了Linux 的商品化。 Linux还被移植到Alpha APX,PowerPC,Mips以及Sparc等微处理机的系统。 Linux的商品应用逐渐增多,代替商品化UNIX和Windows NT作为Internet服务器使用是Linux的一项重要应用:以Linux和Apache为基础的Internet和Intranet服务器价格低廉,性能卓越,易于维护。
大量的系统软件专家共同对Linux进行改进和提高。到现在为止,Linux已成为具有全部UNIX特征的POSIX兼容的操作系统。 1998年7月是Linux的重大转折点,Linux赢得了包括许多大型数据库公司包括:Oracle、Informix、Ingres的支持。从而促进Linux进入大、中型企业的信息系统。 Linux 2.4 支持用户数为2的32次方,文件长度可大于2G, 并支持32个CPU, 64G内存,16块网卡。
Linux成为一个十分优秀的操作系统的原因 它基于一组优秀的概念:Unix是一个简单却非常优秀的模型。Linux从Unix的各个流派中不断吸取成功经验。这样做的结果是Linux成为了Unix系列中的佼佼者:高速、健壮、完整,而且抛弃了历史包袱。 Linux最强大的生命力还在于其公开的开发过程:每个人都可以自由获得内核源程序,每个人都可以对源程序加以修改,而后其他人也可以自由获取你修改后的源程序。
常见Linux的版本 RedHat Linux Slackware Linux Debian Linux Turbo Linux等。 它们分别由一些团体或企业开发,主要进行集成工作:将Linux内核与一些支持Linux的工具和应用程序集成,制成安装光盘发布。
操作系统领域中新的操作系统 有线电视机顶盒领域 PowerTV 掌上计算机领域 Palm OS 数字影像领域 Digita 手机 Symbian,SmartPhone,Palm OS 其他 Nucleus,VxWorks 嵌入式Linux:uClinux,Monta Vista Linux,LynxOS
研究中的新的操作系统 犹他州大学的OSKit,提供构造操作系统所需的基础构件,也提供高层次构件,可用来构造新的OS MIT Exokernel,该系统只有一个极小的内核。系统抽象通过Library Operating System完成 加州大学伯克利分校NOW集群操作系统,100台Ultra SPARC-I处理机集群,排名于世界最快的200台超级计算机之内 NASA空间飞行中心(GSFC)研制Beowulf项目开始于1994年,用商业化的微型计算机、Linux和以太网等构造集群。已有世界各地的约六十个大学和研究机构在使用