操作系统(OperatingSystem)主讲:梁琛E-mail:mumulc@xupt.edu.cn1.2教材操作系统吴小平机械工业出版社参考教材计算机操作系统教程徐甲同西安电子科技大学出版社计算机操作系统汤子瀛西安电子科技大学出版社操作系统设计与实现王鹏等译电子工业出版社现代操作系统陈向群等译机械工业出版社计算机操作系统教程张尧学,史美林清华大学出版社操作系统教程孟庆昌西安电子科技大学出版社网站西邮OS课程网站:学习要求:按时上课,认真听讲阅读参考书思考,讨论,提问成绩评定:作业15%上机及到课率15%期末考试70%课程形式:共计32学时,讲课,实验(8学时)实验时间:第8、11周周一7、8节第13、14周周五3~4节实验地点:东区教学楼网络实验室FF1091.42.使学生深入到操作系统内部,理解并掌握操作系统的基本原理、设计方法和实现技术。3.使学生了解操作系统的演化过程、发展研究动向、新技术以及新思想。1.使学生对操作系统的基本概念、基本结构及运行环境有一定的认识。课程基本目的1.5WhatWhyHow?OS是什么?做什么?为什么需要OS?OS如何工作?如何使用?本课程学习什么?为什么要学OS?如何学?引言1.6WindowsTCWordVisualFoxProUNIXLinux植物大战僵尸1.7一、学习什么?操作系统如何有效的管理计算机系统,为用户提供服务。•用户与操作系统的接口•进程管理•存储管理•文件系统•输入/输出系统1.8•加深对使用的OS的理解,有利于深入编程用户为了开发应用程序必须与操作系统打交道•编程时借鉴操作系统的设计思想和算法操作系统中的许多概念和技巧可推广到其他领域•选择购买操作系统•我们并不总使用微软Windows二.为什么学习操作系统?1.9涉及面广(并行程序,性能问题,结构问题,程序方法论,软件工程,等等)实践性强(从实践总结出原理)错综复杂:纵横交叉三、如何学习操作系统操作系统课程的特点:1.10#includestdio.hintmain(intargc,char*argv[]){puts(helloworld);return0;}一.操作系统做什么?1.11程序执行系统调用,在文件描述符中写一字符串用户告诉操作系统执行hello程序操作系统找到该程序,检查其类型检查程序首部,找出正文和数据的地址父进程需要创建一个新的子进程,执行hello程序操作系统设置CPU上下文环境,并跳到程序开始处程序的第一条指令执行,失败,缺页中断发生系统分配一页内存,并将代码从磁盘读入,继续执行更多的缺页中断,读入更多的页面编译程序对hello.c源程序进行编译,形成目标代码,连接程序对目标代码进行连接形成可执行文件1.12操作系统检查字符串的位置是否正确操作系统找到字符串被送往的设备,该设备是一个伪终端,由一个进程控制操作系统将字符串送给该进程该进程告诉窗口系统它要显示字符串窗口系统确定这是一个合法的操作,然后将字符串转换成像素窗口系统将像素写入存储映像区视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕),显示器发射电子束用户在屏幕上看到helloworld1.13操作系统做什么?(1)程序的执行负责启动每个程序,以及结束程序的工作(2)完成与硬件有关的工作实现对存储器物理地址的访问,对设备接口寄存器和设备接口缓冲区的读写等,实现该工作的过程代码和硬件因素密切相关。(3)完成与应用无关(不随具体应用变)的工作易于使用,统一的基本服务是指这些工作是任何一个程序都需要的、最基本的工作。它们具有共性,工作过程相同。(4)计算机系统的效率与安全问题1.14与硬件相关:实现对存储器物理地址的访问,对设备接口寄存器和设备接口缓冲区的读写等•实现该工作的过程代码和硬件因素密切相关,即需要设置与测试、使用物理地址、设备接口寄存器等等•硬件相关必然复杂繁琐、代码量大•硬件相关的工作,其实现代码不通用1.15由于操作系统承担了上述工作,在其之上的各类程序就没有必要直接同硬件打交道了。硬件改变时,操作系统相应变化即可,其他的程序不用作出改变。硬件相关还表现在有关硬件状态的变化必定带来对应代码的变化。1.16与应用无关:是指这些工作是任何一个程序都需要的、最基本的工作。它们具有共性,工作过程相同。与具体应用无直接关系,即与用户所关心的应用目标无直接关系。1.17操作系统提供一系列服务:进程管理:程序执行,多任务。内存管理:内存分配,内存保护。文件服务:文件存取,文件维护,文件保护。设备管理:设备控制,I/O操作。友好的用户界面。通信服务,网络服务。错误检测及恢复系统,安全。1.18二、为什么需要操作系统?三、操作系统如何工作?如何使用?1.19什么是操作系统多道程序设计的概念操作系统的功能和主要特征操作系统的结构操作系统的发展操作系统的分类第一章操作系统概述1.20操作系统作为最基本的系统软件一个计算机系统由两部分组成:系统硬件和系统软件。系统硬件:指构成计算机系统所必须配置的全部设备。系统软件:是一个计算机系统必须配置的程序和数据的集合。1.1什么是操作系统?1.21计算机硬件操作系统编译程序汇编程序数据库系统...(其他系统软件)文字处理科学计算财务管理系统电子商务...(应用软件)用户用户用户用户用户...图1-1操作系统在计算机系统中的地位1.22计算机系统的资源分为硬件资源和软件资源,操作系统的任务就是如何管理这些资源,使系统资源得到充分有效的利用,并且在相互竞争的作业或程序之间有序地控制系统资源的分配,从而实现对计算机系统工作流程的控制。资源管理器的作用是:1.跟踪资源状态。2.分配资源。3.回收资源。4.保护资源。操作系统作为资源管理器1.23为了让用户和程序员在使用计算机时不涉及硬件细节,使硬件细节和程序员隔离开来,需要建立一个简单的高度抽象,简称虚拟机。用户通过操作系统来使用计算机,操作系统就构成了用户和计算机之间的接口。操作系统为用户提供了两级接口:1.命令接口。2.编程接口。操作系统作为虚拟机1.24•是程序和数据的集合,是一种软件(系统软件)•是控制、管理计算机系统中所有软硬件资源的资源管理器•是为用户使用计算机提供方便的虚拟机操作系统:控制和管理计算机系统的软件和硬件资源,合理地组织计算机工作流程及方便用户使用的程序和数据集合。1.25操作系统的目标是提高资源利用率、方便用户。它应能够高效地控制和管理计算机硬件和软件资源、公平合理地对各类作业进行调度、使各用户能够灵活方便有效地使用计算机。必须有良好的开放性和可扩充性。高效:CPU,内存,I/O设备,文件(程序和数据)利用率提高公平:应公平合理,否则会产生“死锁”或“饥饿”方便:用户界面友好,使用灵活方便。充分地利用资源更好的提供服务1.26操作系统的性能指标1.系统的RSA可靠性(Reliability):用平均无故障时间(MTBF)度量可维修性(Serviceability):用平均故障修复时间度量可用性(Availability):正常工作的概率2.系统吞吐量:单位时间完成的作业数3.系统响应时间:从输入到回应所需时间4.资源利用率:资源(CPU,内存,I/O设备)实际使用比例5.可维护性:改错、改变功能、扩充功能6.可移植性:将OS移植到另一机型所需工作量7.方便用户:用户界面友好,使用灵活方便1.271.2多道程序设计的概念现代计算机系统一般都采用基于多道程序设计的技术。多道程序设计是指在主存中同时存放多道用户作业,使它们都处于执行的开始点和结束点之间。1.28多道程序设计的硬件支持引入中断的目的解决主机与外设的并行工作问题中断系统定义对异步或例外事件的一种响应这一响应自动地保存CPU状态以便将来重新启动自动转入中断处理程序多道程序设计技术得到了计算机硬件的两方面支持:中断系统和通道技术。中断类型•I/O中断•程序中断•硬件故障中断•外中断•访管中断1.29多道程序设计的硬件支持(Cont.)引入通道的目的为了使CPU从I/O事务中解脱出来,同时为了提高CPU与设备、设备与设备之间的并行度,提高计算机系统效率通道技术(I/O处理机)定义:独立于CPU的专门负责数据输入/输出传输工作的处理机,对外部设备实现统一管理,代替CPU对输入/输出操作进行控制,从而使输入/输出操作可和CPU并行操作结构:主存、通道、控制器和设备之间采用四级连接,实现三级控制1.30多道程序设计的硬件支持(Cont.)CPU和通道的通信CPU与通道之间的关系是主从关系。CPU是主设备,通道是从设备。采用通道方式实现数据传输的过程如下:当运行的程序要求数据传输时,CPU向通道发I/O指令,命令通道工作;通道接收到CPU的I/O指令后,从内存中取出相应的通道程序,通过执行通道程序完成I/O操作;当I/O操作完成(或出错)时,通道以中断方式中断CPU正在执行的程序,请求CPU的处理。1.31多道程序设计原理t1t2t3t4t5t6t7t8结束中断I/O完成启动I/OI/O中断请求I/O完成启动I/OI/O中断请求用户程序监督程序I/O操作(a)单道程序运行情况程序A程序AI/O请求程序AI/O完成程序B程序BI/O请求程序C程序CI/O请求程序D程序DI/O请求CI/O完成C再被调度程序BI/O完成程序A再被调度程序A程序B程序C程序D调度程序(b)四道程序运行情况A完成结束中断1.32多道程序设计原理多道程序设计的主要目的是充分利用系统的所有资源且尽可能地让他们并行操作。这种技术可把硬件的代价交叉地分布在大量并行用户之间而使计算机系统的代价极小化。优点:多道程序共享资源,资源利用率高。系统吞吐量大,资源保持忙,系统开销小。缺点:作业平均周转时间长,无交互能力。1.33多道程序设计的实现为了实现多道程序设计,必须妥善解决以下三个问题:1、存储保护和地址重定位2、处理机管理和调度3、资源的管理和分配多道程序设计的特点如下:1、多道2、宏观上并行3、微观上串行1.341.3操作系统的功能和主要特征功能:处理机管理存储管理设备管理文件管理用户接口1.351.3操作系统的功能和主要特征功能:处理机管理多道程序环境下,处理机管理以进程为基本单位。1.进程控制2.进程调度3.进程同步4.进程通信1.36存储管理为方便用户使用存储器,提高主存的利用率。1.地址重定位2.存储分配3.存储保护4.存储扩充1.3操作系统的功能和主要特征(Cont.)1.371.3操作系统的功能和主要特征(Cont.)设备管理1.缓冲管理2.设备分配3.设备处理4.设备独立性和虚拟设备1.381.3操作系统的功能和主要特征(Cont.)文件管理1.目录管理2.文件读、写管理3.文件存取控制4.文件存储空间的管理1.391.3操作系统的功能和主要特征(Cont.)用户接口1.命令接口2.程序接口3.图形接口1.401.3操作系统的功能和主要特征(Cont.)主要特征1.并发性:两个或多个事件在同一时间间隔内发生2.共享性:系统中多个资源可供内存中多个并发执行的进程共同使用,有互斥和同步两种共享方式3.虚拟性:将一个物体影射为若干个逻辑实体4.不确定性程序执行结果不确定,程序执行结果不能再现。多道程序设计环境下,程序按异步方式运行。1.411.4操作系统的结构一、操作系统的内核现代操作系统从内部结构来分析,通常包括两部分:1.内核:运行在核心态下的那部分程序,为系统的基本工作单位(如进程)提供良好的运行环境,常驻内存。包括进程、线程及其管理;存储器管理;I/O管理;文件系统。2.核外部分,它通常是一些实用程序。强内核——全部系统功能都包括在内核中,系统调用是通过陷入内核来实现的。微内核——最基本的系统功能在内核,其余部分在核外,系统调用通过向远程服务器发送消息来请求服务。1.