460 likes | 656 Views
æ“作系统. 第一部分 原ç†ç¯‡. 陆æ¾å¹´ snlu@sjtu.edu.cn. 课件 ftp 地å€ï¼š public.sjtu.edu.cn 用户å: snlu å£ä»¤ï¼š public æ“作系统网站: http://ee.sjtu.edu.cn:8080/os/. CPU 是计算机系统的心è„,æ“作系统是计算机系统的大脑。 è¿‘åŠä¸ªä¸–çºªæ¥æ“作系统这门软件科å¦å¸å¼•äº†ä¸–ç•Œä¸Šä¸€å¤§ç¾¤æœ€çƒæƒ…ã€æœ€æœ‰æ™ºæ…§çš„æ°å‡ºäººæï¼Œé›†ä¸äº†äººç±»çŽ°ä»£åˆ›é€ æ€§æ€ç»´æ´»åŠ¨çš„ç²¾é«“ã€‚ æ“作系统是软件世界的万花ç’ã€åšè§ˆä¼šï¼Œæ˜¯è½¯ä»¶çދ国ä¸çš„ä¸€é¡¶ç’€ç’¨çš„çš‡å† ã€‚
E N D
操作系统 第一部分 原理篇 陆松年 snlu@sjtu.edu.cn 课件ftp地址:public.sjtu.edu.cn 用户名:snlu 口令:public 操作系统网站:http://ee.sjtu.edu.cn:8080/os/
CPU是计算机系统的心脏,操作系统是计算机系统的大脑。CPU是计算机系统的心脏,操作系统是计算机系统的大脑。 近半个世纪来操作系统这门软件科学吸引了世界上一大群最热情、最有智慧的杰出人材,集中了人类现代创造性思维活动的精髓。 操作系统是软件世界的万花筒、博览会,是软件王国中的一顶璀璨的皇冠。 能够有机会走进操作系统这个神奇、复杂而又充满诱惑的大千世界,理解其中的基本概念、结构和奥妙的管理机制是一件十分幸运的事。
1.1 什么是操作系统 • 商人眼光中的操作系统 • 一般学生误解的操作系统 • 计算机科学界定义的操作系统
通常把操作系统定义为用以控制和管理计算机系统资源,方便用户使用的程序和数据结构的集合。通常把操作系统定义为用以控制和管理计算机系统资源,方便用户使用的程序和数据结构的集合。 • 在所有的系统软件中,操作系统是一种首要的、最基本、最重要的系统程序,也是最庞大、最复杂的系统软件。
1.系统观点——计算机资源管理 • 计算机是系统的控制中心,是系统的大脑。CPU是计算机硬件的核心,是计算机系统的心脏;操作系统则是计算机软件的核心,是计算机系统的大脑,从而操作系统是整个系统的控制中心,是计算机或智能控制管理系统中首要的、最重要的、最复杂的系统软件。 • 操作系统的作用类似于城市交通的决策、指挥、控制和调度中心,它组织和管理整个计算机系统的硬件和软件资源,在用户和程序之间分配系统资源,使之协调一致地、高效地完成各种复杂的任务。
2. 用户观点—用户使用计算机的界面 • 用户几乎不可能使用裸机。如果在裸机之上覆盖一层I/O设备管理软件,就能使用户较方便地使用外部设备;如果在其上再覆盖一层文件管理软件,用户就很容易存取系统文件和用户文件;每覆盖一层新的软件,就构造了一台功能更强的虚拟机器。通过OS,计算机能提供种类更多,质量更高的服务。 • (1)命令方式 :通过键盘输入有关命令。以批处理的方式连续运行命令 。 • (2)系统调用 :调用操作系统向用户提供的服务程序。 • (3)图形界面: 用户可以在窗口环境中通过鼠标、按键、菜单和对话框等方式操纵计算机,这是现代操作系统向多媒体转化的标志之一。
3.软件观点——程序和数据结构的集合 • 操作系统是直接与硬件相邻的第一层软件,它是由大量极其复杂的系统程序和众多的数据结构集成的。在计算机中的所有软件中,它起到了核心和控制的作用,其他软件的运行都要依赖它的支持。操作系统是在系统中永久运行的超级程序。 对用户——接待员,对系统——管家婆
学习操作系统的目的--需要是人类一切活动的动力的源泉学习操作系统的目的--需要是人类一切活动的动力的源泉 • 为了专门的用途,科研人员不得不设计自己的操作系统,如特定的监视控制系统。 • 需要对现有的系统进行改造,如嵌入式Linux系统。 • 用户为了完成特殊的软件设计任务,必须与操作系统内核作深层次的交互。是学习和提高编制大型系统控制、处理程序能力的必经之路。 • 操作系统中的很多概念、管理思想和技巧可以用到各行各业中。 • 做好工作、找好工作的需要。 • 操作系统不仅是一门科学,还充满了艺术的魅力。
1.2 操作系统的发展历史 • 1.2.1早期的计算机和人工操作方式 在早期的计算机系统中,每一次独立的运行都需要很多的人工干预,操作过程繁琐,占用机时多,也很容易产生错误。在一个程序的运行过程中,要独占系统的全部硬件资源,设备利用率很低。
纸带机 输入 带 输入 带 读卡机 主机 卫星机 输出 带 输出 带 打印机 1.2.2 脱机输入/输出和批处理系统 1. 脱机输入输出 • 需要人工干预的由慢速设备读入程序和数据及由慢速输出设备打印结果的过程往往占用了用户使用计算机的大部分时间。 • 使用磁带作为输入/输出的中介,这种具体的输入/输出不需要在主计算机上进行的方式称“脱机输入/输出”
2.批处理系统 • 基本思想是操作员取来一批作业,将它们输入到磁带中,操作系统先从磁带上将第一个作业读进内存,启动它运行,并将运行结果输出到另一条磁带上;当第一个程序运行完毕,操作系统能自动地从输入磁带上读进下一个作业,并予以运行和输出,如此直到整批作业全部处理完毕。 • 批处理系统解决了高速计算机的运算、处理能力与人工干预之间的速度矛盾,实现了作业自动过渡。
1.2.3 缓冲、中断和DMA技术 • 1.缓冲技术 • 2.中断技术 • 3. DMA技术 ——一旦收到了DMA发来的中断请求后,处理机在设置了缓冲区、指针和计数器后,DMA就可以不需要CPU干预,在内存和设备之间传送整块数据。这样,通过DMA每传送一个数据块仅需要一次中断处理,而不是像低速设备那样每传送一个数据都需要一次中断处理。
1.2.4 SPOOLING • 当作业要将输出送至打印机时,该输出实际上是通过系统缓冲区写到磁盘中,在该作业运行结束后,才由操作系统自动打印存储在磁盘中的输出结果。 • 这种由操作系统将磁盘模拟为输入/输出设备的处理方式称为SPOOLING • 以磁盘为几乎无限巨大的缓冲区来解决低速的I/O设备与高速的CPU之间的速度匹配问题。
1.2.5 多道程序设计 • 操作系统可将多个作业存放在作业缓冲池中。在某一时刻,操作系统从缓冲池中挑选一个作业,并开始执行该作业。 • 当执行中的作业因要等待用户键盘输入或等待其他设备I/O操作时,操作系统就可在缓冲池中挑选另一个作业,使其运行。只要系统中总是存在可执行的作业,CPU就永远不会因无事可干而闲着。
1.3 现代操作系统类型 为了降低交互式系统的等待时间和运行时间的比率,系统通过多台终端同时向很多用户提供运行环境,这种分时系统就能以合理的成本向用户提供交互式地使用计算机的方便。 操作系统使用多道程序设计技术来支持在一个计算机系统内运行多个用户的程序。每一个用户的程序都驻在内存中,并按某一策略轮流运行。 • 1.3.1分时系统 分时系统具有以下几个基本特征: 1. 多路性 2. 独立性 3 . 交互性 4. 及时性
1.3.2 实时操作系统 • 能在限定的时间内对输入进行快速处理并作出响应的计算机处理系统。 • 硬实时系统 主要用于工业生产的过程控制,航天系统的跟踪和控制,武器的制导等。这类操作系统要求响应速度十分快,工作极其安全可靠, • 还需要有一套后备系统。后备系统又可分为热备份和冷备份两种。
对响应的速度要求不像硬实时系统那么高,且时限要求也不那么严密的信息查询、事务处理领域,如情报资料检索、订票系统、银行财务管理系统、信用卡记账取款系统、仓库管理系统等。对响应的速度要求不像硬实时系统那么高,且时限要求也不那么严密的信息查询、事务处理领域,如情报资料检索、订票系统、银行财务管理系统、信用卡记账取款系统、仓库管理系统等。 • 这类系统一般配有大型文件系统或数据库,涉及金融业的管理系统对系统的安全、可靠和保密等也提出了极高的要求。 软实时系统
1.3.3 微机操作系统 • 早期的微机 ——设备驱动程序 • CP/M (Control Program Monitor) • MS—DOS • 工作站 ——支持多道程序设计,故其功能强得多。使用速度更快的RISC(Reduced Instruction Set Computer)芯片,较大的屏幕及高分辨率的显示器,以支持复杂的图像处理工作。采用了分时操作系统UNIX。 • windows 3.x windows 95/ 98/2000 XP/2003 • Win 2003是堪称最具工作效率的基础架构平台,Win 2003沿用了Windws 2000 Server的先进技术并使之更易于部署、管理和应用,可用于构建从工作组到数据中心级别的IT基础架构,并可提供一个结构高效、安全且强有力的应用平台。
1.3.4 多处理机、分布式和网络操作系统 1. 多处理机系统——分为主从式和对称式。 • 主从式操作系统主要驻留并运行在一台称为主处理机上,它控制所有系统资源,将整个任务分解成多个子任务并将子任务分配给其他的从处理机执行,还要协调这些从处理机的运行过程。 • 对称式系统在每个处理机中都配有操作系统,它管理和控制本地资源和过程的运行。该类系统在一段时间内可以指定一台或几台处理机来执行管理程序,协调所有处理机的运行。 • 很高的运算速度,用微处理器构成的阵列系统,运算速度可以达到几十万亿次。
2. 分布式操作系统 • 多计算机系统,这些计算机可以处于不同的地理位置和拥有不同的硬软件资源,并用通信线路连接起来,具有独立执行任务的能力,但通常不驻有完全独立的操作系统。 • 分布式系统具有一个统一的操作系统,它可以把一个大任务划分成很多可以并行执行的子任务,并按一定的策略将它们动态地分配给各个计算机执行,并控制管理各个计算机的资源分配、运行及计算机之间的通信,以协调任务的并行执行。 • 以上所有的管理工作对用户都是透明的。
3. 网络操作系统 • 计算机网络是指用数据通信系统把分散在不同地方的计算机群和各种计算机设备连接起来的集合,它主要用于数据通信和资源共享,特别是软件和信息共享。 • 网络操作系统与分布操作系统不同,不是一个集中、统一的操作系统,它基本上是在各种各样自治的计算机原有操作系统基础上加上具有各种网络访问功能的模块,这些模块使网络上的计算机能方便、有效地共享网络资源,实现各种通信服务的有关协议。
分布式操作系统与网络操作系统的区别 1. 资源管理 • 网络操作系统各个主机独立管理自己的资源 • 分布式则由一台主机统一管理系统中的资源 2. 用户感觉 • 网络操作系统用户面对多台主机 • 分布式用户好像在使用同一台主机 3. 操作方式 • 网络操作系统是多用户操作 • 分布式是单用户操作
1.3.5嵌入式操作系统和智能卡操作系统 1.嵌入式操作系统 • 嵌入式操作系统(Embedded Operating System)就是运行在嵌入式芯片环境中,对整个芯片以及它所操作和控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。嵌入式操作系统具有高可靠性、实时性、占有资源少和低成本等优点。 • 嵌入式操作系统通常配有对应的开发环境,用户可以利用嵌入式操作系统开发环境,设计符合各种应用要求的定制嵌入式操作系统。 • 嵌入式操作系统在工业监控、智能化家电、电子设备、智能仪器、现代化的轿车、通信系统和导航系统等领域中的应用非常广泛,嵌入式系统之间并还彼此通信,组成一个嵌入式系统网络。
2.智能卡操作系统 • 智能卡实际上是一个单片微机系统,包括中央处理机、存储部件以及对外联络的通信接口。各类智能卡中都驻留了一个微型的操作系统,又称片内操作系统(Chip Operating System,COS)。 • 智能卡操作系统具有四个基本功能:资源管理、通信管理、安全管理和应用管理。 • 智能卡进行具体处理时,读写器与智能卡之间通过“命令——响应对”方式进行通信和控制,即读写器发出操作命令,智能卡接收命令; • 操作系统对命令加以解释,完成命令的解密与校验,然后操作系统调用相应程序来进行数据处理,产生应答信息,加密后送给读写器。
1.4 操作系统的概念、 特征和功能 • 1.作业(job) • 请求计算机完成的一个完整的处理任务称为作业,它可以包括几个程序的相继执行。 • 用户在键盘上输入的一条完整的命令就是一个作业。 • 复杂的作业也可由作业说明书(如Shell命令程序)来描述。一个复杂的作业可由多个作业步组成,如编译、运行、打印一个程序的全部工作是一个作业,其中相对独立的每一部分称为作业步。 1.4.1作业和进程
2.进程 在多道程序环境下一个程序的活动具有并发、动态的特征,一个程序活动与其他程序活动之间存在相互依赖和相互制约的关系。因此,程序这个静态概念已经不能确切地反映程序活动这种动态的特征。 • 进程(process)是操作系统中最重要的概念之一,本书 目前对UNIX系统上的进程定义为程序在一个数据集合上的运行活动,它是系统进行资源分配和调度的一个可并发执行的独立单位。任务(task) • 进程和程序之间既有区别又有联系。 • 进程是程序执行的动态活动,它是暂时地动态地产生和终止的, • 程序是进程运行的静态文本,它可以长期保存。 • 一个进程可以执行一个或多个程序,反之,同一个程序也可被多个进程同时执行。
1.4.2 操作系统的特征 • 1.并发(Concurrence) 在某一时间间隔内计算机系统内存在着多个程序活动(与并行的区别)。 • 2.共享(Sharing) 多个用户或程序共享系统的硬、软件资源。 互斥共享和同时共享 • 3. 虚拟 在原先的物理机器上覆盖了一至多层系统软件,将其改造成一台功能更强大而且易于使用的扩展机或虚拟机。提供了高级的抽象服务。
4. 不确定性 • 现象:使用同样一个数据集的同一个程序在同样的计算机环境下运行,每次执行的顺序和所需的时间都不相同。 • 原因:由于多道程序环境下的操作系统系统内活跃作业数量的变化及它们之间复杂的联系、程序的输入/输出请求、从外部设备发出的中断等大量事件发生的时间都是不可预测的,外部设备的速度也存在细微的不确定的变化,因此,作业就在不可预测的次序中前进,即程序的执行过程是不可预测的。
不确定性不是指程序执行结果的不确定。程序执行结果不确定性的原因往往是由于程序设计本身的错误或由于用户各程序之间的配合(同步、互斥)不当而引起的。由于这种结果的不确定又是在操作系统复杂的不确定性的环境下发生的,使得程序每次执行的情况不易复现,更增加了程序调试排错的困难。不确定性不是指程序执行结果的不确定。程序执行结果不确定性的原因往往是由于程序设计本身的错误或由于用户各程序之间的配合(同步、互斥)不当而引起的。由于这种结果的不确定又是在操作系统复杂的不确定性的环境下发生的,使得程序每次执行的情况不易复现,更增加了程序调试排错的困难。 • 操作系统是极其庞大、复杂的软件系统,它也不会是十全十美的。在某些特殊情况下,一些较为隐蔽的问题可能暴露出来,这种错误同样也不易复现和难以测试。
1.4.3 操作系统的功能 • 1.处理机管理 • 处理机分配的主要对象是进程,操作系统通过选择一个合适的进程占有处理机来实现对处理机的管理。 • 操作系统有关进程方面的管理任务很多,主要有进程调度、进程控制、进程同步与互斥、进程通信、死锁的检测与处理等。 • 2. 存储管理 • 存储管理的任务是对要运行的作业分配内存空间,作业运行结束时要收回其所占用的内存空间。操作系统要对每一个作业的内存空间和系统内存空间实施保护。 • 运行作业在内存部分和在外存部分的交换。
3.设备管理 外围设备种类繁多,控制复杂,价格昂贵,相对CPU来说,运转速度又比较慢,要提高CPU和设备的并行性,充分利用各种设备资源,便于用户和程序对设备的操作和控制。 • 字符块设备和字符设备 主机与字符块设备之间每次传输一个“块”大小的数据。主要的块设备有硬盘、软盘、磁带、光盘等。 主机与字符设备之间每次传输一个字节,常见的字符设备是终端、屏幕、打印机、绘图仪、串、并行口、通信口等。 • 设备管理的主要任务 设备的分配和回收、设备的控制和信息传输即 设备驱动。 • 缓冲管理 管理设备与处理机交换信息时所用到的缓冲,以解决CPU与I/O设备速度不匹配问题。 • 虚设备管理 将一些独占的物理设备改造成共享的逻辑设备。
文件是用户存放在计算机中最重要的资源或财富。文件是用户存放在计算机中最重要的资源或财富。 • 主要目的 将文件长期地、有组织、有条理地存放在系统之中,并向用户和程序提供方便的建立、打开、关闭、撤消等存取接口,便于用户共享文件。 • 主要功能 文件存储空间的分配和回收,目录管理,文件的存取操作与控制,文件的安全与维护,文件逻辑地址与物理地址的映像,文件系统的安装、拆除和检查等 。 4. 文件管理
5. 用户接口 • 通过系统调用向应用程序提供了对文件和目录的操作,申请和释放内存,对各类设备进行I/O操作,及对进程进行控制。 • 提供了命令一级的接口,向用户提供了几百条程序命令,使用户方便地与系统交互,操作文件和设备,控制作业运行。 • 提供作业运行控制或命令程序接口,典型的是UNIX的Shell程序。 • 以图形和菜单作为主要的显示界面和及鼠标作为主要的输入方式受到了广大计算机用户的欢迎,并对计算机的普及起到了关键性的作用。
UNIX诞生于—贝尔电话实验室。 • 前身:Multics ——多用户、多任务、交互式分时系统 • 1969年Thompson在PDP—7上着手设计了自己的系统。 1970年实现了包括进程子系统、文件系统的早期版本。这个系统被命名为“UNIX”, • Ritchie开发了编译的C语言,并在1973年将UNIX系统大部分内核代码用C语言重新编写(V5版), • 1975年发表的UNIX V6版是比较成熟的版本,贝尔实验室免费向美国各大学提供该版本。 • 1978年,V7发表 。 • 1981年发表了S3(System III)。 • 1983年发表了S5。 1.5 UNIX操作系统概述 1.5.1 UNIX系统历史
90年代以后发表了系统V版本3,缩写为SVR3。不久又发表了SVR4。90年代以后发表了系统V版本3,缩写为SVR3。不久又发表了SVR4。 • 另一个使用的比较广泛的UNIX版本是美国加州大学贝克利分校开发的BSD UNIX。 • 1983年Sun OS 和1992年 Solaris 基于 SVR4,与AT&T合作。
MINIX是一个小巧玲珑又五脏俱全的UNIX型操作系统,作者煞费苦心把主体部分割裂成分立的模块,程序编制得使用户易于理解,学生易于修改,过程短小精悍,强调训练学生的操作、调试、修改方面的动手能力。MINIX是一个小巧玲珑又五脏俱全的UNIX型操作系统,作者煞费苦心把主体部分割裂成分立的模块,程序编制得使用户易于理解,学生易于修改,过程短小精悍,强调训练学生的操作、调试、修改方面的动手能力。 • 1991年芬兰赫尔辛基大学的学生Linus Torvalds开发的Linux操作系统内核的源代码,开创了Linux操作系统的历史。此后,GNU项目的C库、gcc、emacs、bash等软件相继移植到Linux上,增强了Linux的性能。 • 目前核心代码已发布到2.6.1x,对商业版的Unix系统构成了很大的威胁。 • UNIX系统的某些特征也移植到很多的微机操作系统中,如MS—DOS,OS/2,Windows,Windows NT,Macintosh(安装在Apple机上)等。
1.5.2 Solaris操作系统 • SUN公司:1992年2.0版,版本8~10,支持64位的UltraSPARC,兼容32位SPARC程序和应用 • Solaris10:处于业界用于生产环境的操作系统的前沿-最突出特点:可靠性 • Solaris zones:可以在一个单独的Solaris内核实例中运行创建并管理多个虚拟化的操作系统 • 支持网际协议版本6(IPv6) • 基于角色的访问控制(RBAC) • 支持32位的Intel x86 • Solaris在不同的处理机架构上的源代码兼容,即SPARC、x86和x64平台都使用同一套源代码库,绝大部分源代码是与平台无关的。源代码级兼容提供了很好的可移植性。
Solaris容器技术 • Solaris容器技术允许在一个Solaris系统内划分多个Zone。 • Solaris Zones是一种软件实现的分隔技术,可以在一个单独的Solaris内核实例中创建并管理多个虚拟化的操作系统环境。 • 每个Zone对于其中的进程、用户和管理员而言是一个完整的系统,并独立于运行在同一内核实例上的其他Zone。Zone的数目可多达8192个。
开放源代码的OpenSolaris项目 • 自2005年6月14日Sun公司正式推出其开源项目OpenSolaris以来,到目前为止已经完全开放了Solaris最新的内核源代码,而且还开放了Solaris的库、包管理、安装程序等。 • Solaris 10的正式版是免费下载使用的,为开源组织贡献了1000多万行源代码,成为源代码贡献量最大的机构。
CDDL协议 Sun公司宣布,OpenSolaris的开放源代码在由开放源代码促进会(Open Source Initiative,OSI)批准的“通用开发和发布许可协议”(Common Development and Distribution License,CDDL)下提供。 CDDL协议具有以下的重要特点。 1.将与OpenSolaris相关的专利免费提供给用户 • Sun公司宣布允许用户使用与OpenSolaris源代码相关的所有专利特许,包括Sun已经申请和正在申请的专利。Sun公司把这些专利免费提供给广大用户、是其他类型的开放协议所没有的。 • 目前 OpenSolaris开放的源代码总数在1000万行左右。实际上,与OpenSolaris核心功能相关的所有程序源代码都已经全部开放。
2.用户有权保护在OpenSolaris源代码基础上开发的自有技术2.用户有权保护在OpenSolaris源代码基础上开发的自有技术 • GPL协议要求,如果要将遵守GPL协议的代码与其他代码相结合,必须首先把这些代码变成遵守GPL的软件。 • 而CDDL协议的要求不同于GPL协议。开发者在OpenSolaris代码的基础上、可以添加自己的代码形成新的软件。 • 开发者有权对形成的新产品自由进行市场销售,而且不需要向Sun公司支付任何费用。 • 至于新开发的代码是否成为开源软件,决定权完全在于开发者。
1.5.3 UNIX系统特点 • 核心代码95%是用C语言编写的,故容易编写和修改,可移植性好。其外围系统支持程序也几乎全部用C语言编写,容易开发。 • 以源代码形式发布,且系统短小精悍,便于理解和学习,这使得操作系统内核的大门不仅向计算机专业的学生开放,也向熟悉C语言的非计算机专业,特别是向电子与通信工程学生开放,因此UNIX首先在高校开始流行,从而进一步促进了UNIX的流行。 • 外围系统实用程序丰富。向用户提供了完备的程序设计环境。 • 逻辑上无限层次的树状分级文件系统。提供了文件和设备的统一处理方法便于用户使用。提供了远程文件共享RFS和网络文件系统NFS,方便用户共享网络上的软件和信息。 • 提供了众多的本地进程和远程主机间进程通信手段。
用户 用户 Shell 解释程序 用户程序 各种应用程序包 系统命令 窗口软件 库函数 系统调用 核心层: 存储管理 进程管理 设备管理 文件管理 硬件层 1.5.4 UNIX系统基本结构
复习题 P17 (2), (3), (4), (7)