第1页:操作系统
操作系统
第2页:前言先修课程
前言先修课程:计算机组成原理;计算机系统结构;高级语言程序设计;数据结构课程性质:必修的专业基础课程。课程内容:操作系统与硬件和其它软件的关系;操作系统对计算机系统中的硬、软件资源进行管理;操作系统的基本结构、工作原理及实现方法。开课目的:掌握课程本身的知识;为分析和设计一个操作系统打下理论基础;为开发其它软件系统打下理论基础。教材:《计算机操作系统教程》(第3版)左万历、周长林、彭涛国家级教学成果二等奖;国家教委第三届优秀教材一等奖;国家教委科技进步三等奖;吉林省普通高校优秀教材一等奖;吉林大学优秀教材一等奖。十一五国家级规划教材
第3页:前言先修课程(续)
- A. Silberschatz, P. Galvin.Operating SystemConcepts.5th edition, Wiley, 1997.
- 系统,完善,国外大学多选用
- 没有影印版
- A. Silberschatz, P. Galvin, Greg Gagne.Applied Operating System Concept.JohnWiley&Sons Inc.高等教育出版社,2001.
- 面向应用,比较浅显,算法不够完整
- 算法用Java语言描述参考文献
第4页:前言先修课程(续3)
- A. S. Tanenbaum.Modern OperatingSystems.Prentice Hall .机械工业出版社,2002.
- 国内用的比较多
- William Stalling.Operating Systems,Internals and Design Principles.3rdEdition, Prentice Hall,清华大学出版社,1998.
- 另一本比较权威的教材参考文献
第5页:前言先修课程(续4)
- 莱昂氏.UNIX源代码分析.6thedition,机械工业出版社,2001.
- UNIX源代码10000行
- C语言9000行,汇编语言1000行, PDP11-45
- 注释
- 尤晋元,史美林,陈向群等.Windows操作系统原理.机械工业出版社,2001.参考文献
第6页:第一章操作系统概述
1.1操作系统的概念1.2操作系统的历史1.3操作系统的特性1.4操作系统的类型1.5操作系统的硬件环境1.6操作系统的界面形式1.7操作系统的运行机理1.8研究操作系统的几种观点1.9系统举例
第7页:1.1 操作系统概念
- 操作系统地位
- 操作系统作用
- 操作系统定义本课程从OS的地位和作用角度给出OS的描述。
第8页:1.1.1 操作系统地位
- 硬件抽象层(HAL)之上
- 所有其它软件层之下硬件(HAL)O S其它系统软件层应用软件层
第9页:1.1.1 操作系统地位硬件
- 运行视图
- 系统库(lib)可调用操作系统,执行硬件指令
- 应用程序可以调用lib和操作系统,执行硬件指令
第10页:1.1.2 操作系统的作用
- 1.管理系统中软件、硬件资源
- CPU
- 内存
- 设备
- 文件
- 软件资源:作业、进程调度;状态管理
- 2.为用户(应用程序)提供良好的服务(界面)
- API( Aplication Program Interface )
- GUI( Graphic User Interface )
- JCL( Job Control Language )
第11页:1.1.3 操作系统定义
- 操作系统:是位于硬件层(HAL)之上,所有其它软件层之下的一个系统软件,是管理系统中各种软/硬件资源,方便用户使用计算机系统的程序集合。OperatingSystemSupervisorMonitoringProgram
第12页:1.2 操作系统的历史
- 1.2 操作系统的历史
- 1.2.1 操作系统的产生
- 1.2.2 操作系统的完善
- 1.2.3 操作系统的发展
第13页:1.2.1 操作系统的产生
1、手工操作阶段(20世纪40年代,无操作系统)作业处理步骤:⑴程序、数据手工记录到纸带穿孔机;⑵控制台开关启动光电机纸带输入到机器内存;⑶控制台开关启动第一条指令(调试程序需修改纸带);⑷运行结果在电传打字机上输出。特点:资源独占;手工费时。汇编语言及汇编系统出现
第14页:1.2.1 操作系统的产生(续)
2、批处理阶段(20世纪50年代,操作系统雏形)⑴联机批处理:Job1job2Jobn读卡机磁带机计算机编译程序连接程序监督程序汇编程序监督程序占用主机时间
第15页:1.2.1 操作系统的产生(续3)
⑵脱机批处理:批处理阶段:标准I/O程序、编译程序、连接装配程序出现读卡机打印机计算机编译程序连接程序汇编程序卫星机输入磁带输出磁带
第16页:3 执行系统阶段
- (20世纪60年代初期)通道:专门用于控制I/O设备的处理机,即I/O处理机。
- 有自己的指令系统和运控部件;
- 与主机共享内存;
- 接受主CPU委托执行通道程序,完成I/O;
- 通道I/O操作与主CPU并行;
- 通道完成I/O时,向主机发中断请求。操作系统的初级阶段,通道和中断技术的出现。1.2.1操作系统的产生
第17页:1.2.2 操作系统的完善
- 1.多道批处理系统(60年代初期)
- 执行系统:单道作业,通道完成I/O处理;
- 等待I/O时,主机空闲,可运行其它作业。2.分时系统(60年代初、中期)
- 执行系统和批处理系统都是单用户系统;
- 分时系统是多用户(多终端)系统,适合交互式。3.实时处理系统(60年代中期)
- 应用于工业自动控制、医疗诊断、航班等。4.通用操作系统(60年代后期)
- 上述三类系统的结合。多道批处理和分时系统标志OS进入完善阶段。
第18页:1.2.3 操作系统的发展
- 1.计算机体系结构由集中向分散的发展,出现了计算机网络,由此产生网络操作系统和分布式操作系统;
- 2.随着家用和商用微型计算机的普及,出现了单用户多任务的操作系统;
- 3.大型计算任务要求计算机系统具有极强的计算和处理能力,产生了支持多处理器的并行操作系统;
- 4.随着各种处理器芯片和存储介质在控制领域的广泛应用,要求操作系统具有专用的特性,出现了微内核操作系统体系结构,如嵌入式和智能卡系统;
- 5.随着芯片集成度的提高,提高单处理器速度已近极限,多核技术应运而生。新一代操作系统遇到的问题:多核的并发控制;多核下的进程调度。
第19页:1.3 操作系统特性
- 1.3.1程序并发性
- 多个程序在宏观上同时向前推进;
- 并发(concurrent)vs.并行(parallel);
- 用户程序之间的并发;
- 用户程序与系统程序之间的并发。1.3.2资源共享性
- 多个程序共用系统中的各种软/硬件资源;
- 在操作系统的协调和控制下。
第20页:1.3 操作系统特性(续)
- 1.3.3程序异步性
- 宏观上同时运行多个程序(包括用户和操作系统程序);
- 微观上多个程序(连同操作系统程序)交替运行;
- 交替的切换点是中断:用户程序向操作系统切换;操作系统程序向操作系统程序切换(中断嵌套)。
- 中断随机发生,致使程序切换不确定、不可预知。1.3.4虚拟性
- 利用虚拟技术把一个物理实体变为若干个逻辑实体;如:多道程序系统把单CPU系统中一个CPU改造成多个虚CPU;虚拟存储管理技术扩充内存空间;虚拟设备管理把独占型设备改造成共享的设备。
第21页:1.4 操作系统的分类
- 多道批处理操作系统(batch processing system)
- 分时操作系统(time-sharing system)
- 实时操作系统(real time system)
- 通用操作系统(multi-purpose system)
- 单用户操作系统(single user system)
- 网络操作系统(network operating system)
- 分布式操作系统(distributed operating system)
- 多处理机操作系统(multi-processor system)
- 嵌入式操作系统(embedded operating system)
- 多媒体操作系统(multi-media operating system)
- 智能卡操作系统(smart-card operating system)按功能分类
第22页:作业(Job)
作业(Job):程序+数据+作业说明书(JCL编写)结果:程序运行结果+记帐信息1.4.1多道批处理系统作业1作业2……作业m输出机输入机作业作业调度(2)SPOOLing输出多道批处理系统工作原理输入井结果1结果2……结果n输出井作业调度(1)SPOOLing输入输入机输出机作业结果结果…………进程1进程2……进程k主机
第23页:1.4.1 多道批处理系统
- SPOOLing(Simultaneous Peripheral Operation On-Line)
- 称为假脱机工作方式或排队转储技术;
- 通过通道,把I/O工作脱机处理,但是在主机控制下运行,故称为假脱机技术;
- 由专门负责I/O的常驻内存进程以及输入井、输出井组成;
- 将独占设备改为共享设备,实现了虚拟设备功能。
第24页:1.4.1 多道批处理系统(续)
- (cont.)
- 输入井作用
- 缓冲(速度匹配作用);
- 实现作业调度(jobscheduling)
- 输出井作用
- 缓冲(速度匹配作用)Buffering:处理数据到达与离开速度不一致
第25页:1.4.1 多道批处理系统(续3)
- 主机中作业合理搭配
- 目标1:提高资源利用率(eg.计算型+I/O型)
- 目标2:提高吞吐量(throughput)
- 特点
- 多道:系统中同时容纳多个作业
- 成批:作业分批进入系统、分批处理、分批离开。
第26页:1.4.1 多道批处理系统(续4)
界面1:交互式命令语言(e g. shell, command)界面2:图形用户界面(G U I)1.4.2分时操作系统(On-line)分时处理终端请求Time Sharing OSH A L终端……终端终端
第27页:1.4.2 分时操作系统
- 特点:以联机操作为标志
- 多路性:一个主机与多个终端相连;
- 交互性:以对话的方式为用户服务;
- 独占性:每个终端用户仿佛拥有一台虚拟机。
- 典型系统:
第28页:1.4.3 实时操作系统
- 实时控制
- 实时信息处理
- 航班定票、联机情报检索、图书管理等。实时:系统对外部请求及时做出响应。
第29页:1.4.3 实时操作系统(续)
- 实时控制response time: t2-t1HALReal TimeO S被控对象A/DD/At1t2ADAD
第30页:@B1@实时信息处理特点
- 实时信息处理特点:(1)响应及时(prompt response)(2)可靠性高(high reliability)通常为远程终端1.4.3实时操作系统终端终端终端HALReal TimeO S
第31页:1.4.4 通用操作系统
- (multi-purpose OS)
- 同时具有:批处理、分时、实时功能。
- 目标:
- 常见模式:
- 分时(前台) +批处理(后台)
- 实时(前台) +批处理(后台)Foreground/BackgroundSystem
第32页:1.4.5 单用户操作系统
- 同一时刻仅有一个用户使用的系统
- 应用领域:
- 特点:
- 单用户,多进程,多线程不同的程序,不同的进程;相同的程序,不同的线程。
第33页:1.4.5 单用户操作系统(续)
1.4.6网络操作系统用于实现网络通信和网络资源管理的操作系统称为网络操作系统。网络操作系统PrinterNOS1host1NOS2host2NOS3host3
第34页:1.4.6 网络操作系统
- 网络操作系统的目标
- 相互通信
- 资源共享(信息,设备)
- 提供网络服务
- database server
- ftp server
- e-mail server
- telnet server
- etc.
第35页:1.4.7 分布式操作系统
- 紧耦合(tightly coupled )
- 由多机系统发展而来(多CPU );
- 有公共内存;
- 多处理机操作系统。多处理机操作系统内存CPU……CPUCPU多处理机系统
第36页:1.4.7 分布式操作系统(续)
- 松散耦合(loosely coupled)
- 由计算机网络发展而来(多Host)
- 无公共内存,无公共时钟分布式操作系统DOShost1DOShost2DOShost3Printer
第37页:1.4.7 分布式操作系统(续3)
- 分布式操作系统特征:
- 统一的操作系统;
- 资源的进一步共享一台HOST任务可移至其它HOST上完成,实现系统资源共享,有利于系统负载平衡。
- 可靠性多HOST系统相同,无主从关系,某台HOST失效,不会影响整个系统;
- 透明性:多HOST无地理位置差异。
第38页:1.4.7 分布式操作系统(续4)
- 目标
- 进一步共享资源,使负载均衡,计算加速。
- C P U
- 内存
- 途径
- 迁移(migration)
- 作业迁移
- 进程迁移(线程一般随同进程迁移)
- 例子:
- Solaris MC
第39页:1.4.8 多处理机操作系统
- 多处理机系统
- Multi-Proceesor OS
- 具有公共内存的多CPU系统
- 对称多处理机系统(SMP)
- Symmetric Multi-Processing
- 各CPU没有主从关系的多处理机系统
- 多处理机操作系统
- 有效管理和使用多个CPU的操作系统
- 复杂性:多个主动体(CPUs)
- 例子:
第40页:1.4.8 多处理机操作系统(续)
- 1.4.9嵌入式操作系统Embeded OS
- 应用:嵌入在掌上电脑、计算机外围设备、通信设备、车载系统、信息家电、医疗监控仪器、工业设备、ATM机、POS机、机顶盒等非计算机类设施上的操作系统。
- 具有可裁减性、可移植性和可扩展性。
- 特点:微内核结构(Micro-kernel),许多操作系统功能(文件系统,设备驱动)以应用程序模式运行。
- 核心小,适应范围广,可靠性高,效率低;
- 完成某一项或有限项功能;非通用型;
- 例子:
- Win CE .NET(维纳斯)
- PalmOS:最流行的掌上电脑操作系统
- HOPEN (女娲)
第41页:1.4.9 嵌入式操作系统
- 微内核结构(Micro-kernel)具有处理机调度、基本内存管理、文件系统、设备驱动、通讯机制、电源管理等功能。
- 开发系统:用于完成嵌入式系统的开发
- 支持汇编语言、高级语言的开发环境;
- 模拟运行环境:定时器与计数器、多方式中断处理、多种异常处理、支持多种通信方式、I/O接口、芯片接口。
第42页:1.4.10 多媒体操作系统
- 定义
- 具有一般操作系统功能;
- 还具有多媒体底层扩充模块,支持多媒体信息的采集、编辑、播放和传输。
- 分类
- 具有编辑、播放双重功能的开发系统;
- 具备交互播放功能的教育/培训系统;
- 用于家庭娱乐学习的家用多媒体系统。
第43页:1.4.11 智能卡操作系统
- COS一般都只能应用于特定的某种(或某些)智能卡的专用系统,不是通用系统;
- COS的四个功能模块:传送管理、安全管理、应用管理、文件管理;
- COS主要用于接受和处理外界(如手机或者读卡器)发给SIM卡的各种信息,执行外界发送的各种指令,管理卡内空间,向外界回送应答信息等。
第44页:1.4.10 智能卡操作系统
- 智能卡(Smart Card)
- 面向Java的智能卡
- SC-OS
第45页:1.5 操作系统的硬件环境
- 定时装置
- 系统栈
- 特权指令与非特权指令
- 处理器状态及状态转换
- 地址映射机构
- 存储保护设施
- 中断装置
- 通道与DMA控制器
- I / O保护
第46页:1.5.1 定时装置
- 定时装置
- 实时时钟,有绝对时钟和相对时钟。
- 绝对时钟
- 记载实际时间,不发中断
- 时间形式:年、月、日、时、分、秒;
- 供电方式:外部电源和机内电池;
- 设定方式:程序设定和修改(通过特权指令);
- 作用:提供系统时间,记录作业时间,资源占用时间、文件修改、存/取时间,日志等。
- 间隔时钟
- 定时发生中断,单位为“毫秒”级
- 设定方式:硬件时钟发生器,或程序设定逻辑时钟;
- 作用:并发程序运行控制,实现多道程序;定时扫描事件;周期性处理事件。
第47页:1.5.2 系统栈
- (system stack)
- 作用
- 保存中断现场
- 保存操作系统子程序转移返回点、参数、局部变量、返回值
- 栈的位置
- 操作系统区域;
- 每个运行程序对应一个栈:系统程序对应的栈叫系统栈,用户程序对应的栈叫用户栈;进程切换的同时伴随着栈的切换;
- 硬件只有一个栈指针。
第48页:1.5.3 特权指令与非特权指令
- 特权指令( privileged instruction )只有在管态才能执行的指令(影响系统状态)
- 开/关中断、修改地址映射寄存器、置程序状态字、停机等指令。
- 非特权指令(non-privileged instruction )所有程序可用(不影响系统状态)
第49页:1.5.4 处理器状态及状态转换
- 处理机状态
- 系统态( Systemmode)系统程序运行时CPU所处的状态叫系统态,也叫管态(Supervisor Mode),或核态(Kernal mode).
- 用户态(User mode)用户程序运行时CPU所处的状态叫用户态,也叫目态(Object mode),或常态(Normal mode).
- 状态转换
- 管态→目态(置程序状态字)
- 目态→管态(中断,trap)Dual modeoperation
第50页:1.5.4 处理机状态及状态转换
- 例子:
- IBM 360/370PSW状态位(0,1)
- Modern PC now support 4 modes:
- R0(权限最强)
- R1
- R2
- R3(权限最弱)Only R0, R3 are used, now
第51页:1.5.5 地址映射机构
- 作用:完成程序的重定位由硬件地址映射机构完成的程序重定位叫动态重定位。
- 逻辑地址→物理地址
- 逻辑地址(虚地址):程序中产生的地址
- 物理地址(实地址):存储器地址Address mapping by softwareis possible, but very inefficient.
第52页:1.5.6 存储保护设施
- 作用
- 防止应用程序侵犯操作系统空间或其它用戶空间。
- 措施
- 地址检查
- 越界检查:界地址寄存器(首地址,内存长度);产生越界中断。
- 越权检查:存储保护键;针对共享区域。
第53页:1.5.7 中断装置
- 中断
- CPU对随机发生事件的响应。
- 中段装置
- 发现并响应中断的硬件机构。
- 发现中断
- 处理机控制部件的“中断扫描机构”扫描“中断寄存器”发现中断信号。
- 响应中断:
- 当前( PSW,PC )→系统栈
- 中断向量( PSW,PC )→寄存器
第54页:1.5.7 中断装置中断类型
- :
- 机器故障中断;
- I/O中断:完成或出错;
- 外部中断:时钟、控制台、多机系统通信;
- 程序中断:错误使用命令、数据溢出、存储保护、缺页/段中断;
- 访管中断:如内存分配、建立进程。
第55页:1.5.8通道与DMA控制器
- 1.5.8通道与DMA控制器
- 通道:负责I/O操作的处理机
- 读写操作
- 控制操作
- 转移操作
- 通道地址字CAW
- 通道命令字CCW
- 通道状态字CSW
- 通道数据字CDW
- DMA控制器完成内存与块设备之间的I /O .
第56页:1.5.9I / O保护
- 1.5.9I / O保护
- 定义所有I / O指令为特权指令
第57页:1.6 操作系统的界面形式
- 交互终端命令(Command Line)
- 分时系统的界面形式;
- 由内核的命令解释程序处理终端命令;
- 但UNIX的shell属于应用程序。$命令名-选项参数
- 图形界面( GUI—Graphic User Interface )
第58页:1.6 操作系统的界面形式(续)
- UNIX shell interface
- 优点:
- 缩小核心
- 不同用户可以选择不同界面1.6操作系统界面形式UNIX硬件shellshellshell……终端终端终端
第59页:1.6 操作系统界面形式
- 作业控制语言( Job Control Language )
- 作业标识语句
- 用户标识,作业标识,帐号
- 作业步语句(编译、连接装配、执行)
- 一般对应子进程
- 资源描述语句
- 内存需求,计算时间,其它资源
- Goto语句(正向转移)
- 作业控制无循环
第60页:1.6 操作系统界面形式(续)
- 系统调用命令( OS API )
- 系统调用种类
- 文件调用命令(建立、撤销、打开、关闭、读/写);
- 进程命令(创建子进程、撤销子进程、跟踪子进程);
- 通信系统调用命令(收/发消息、收/发信件);
- 资源系统调用命令(申请、释放资源)。
- 高级语言形式
- fd = open (file_name, mode)
- 准备参数
- trapn
- 取返回值
第61页:1.7 操作系统的运行机理
- 操作系统运行机理硬件程序1程序2中断处理…程序切换保存程序1现场…选择P2…恢复程序2现场O S中断置PSWt1t2
第62页:1.8 研究操作系统的几种观点操作系统概
- :
- 进程观点(运行角度)程序在系统中的运行活动及其相互作用;
- 资源管理观点(使用角度)用于控制和管理系统资源、方便用户使用计算机的程序的集合;
- 分层虚拟机的观点(用户角度)操作系统是机器功能的扩充与完善。本课程从OS的地位和作用角度给出OS的描述。
第63页:1.9 系统举例
- 1.9.1 Linux系统
- 历史
- 1991, 0.01版运行于intel 80386,仅支持Minix文件系统,支持有限的设备驱动程序,无网络支持.
- 1994 , 1.0版支持UNIX标准TCP/IP协议,BSD兼容的socket网络通讯协议,增强的文件系统,SCSI控制器对文件的高效访问,以及其它设备驱动程序。
- 1995 , 1.2版最后一个仅在PC平台上运行的Linux.
- 1996 , 2.0版运行于多种平台,支持对称多处理,同时增强了存储管理功能,支持核心级线程,模块动态连接等.可运行于Sun Sparc, PowerMac等硬件平台.
第64页:@B1@Linux特点
- Linux特点:
- 源代码开放,免费;
- 系统稳定可靠;
- 速度快,效率高;
- 内核模块化好,允许第三方配置文件系统及设备管理程序;
- 功能完善;
- 具有网络支持优势;
- 标准化好.1.9.1 Linux系统
第65页:@B1@Linux特点(续)
- 1.9.2 Windows2000/XP系统
- 基于NT技术构建的面向个人计算机平台的操作系统,本质上属于单用户系统,但可以组网并提供网络服务。
- 特点
- 具有多任务(包括多进程、多线程)管理功能,支持对称多处理;
- 支持客户/服务器计算模式;
- 在设计上大量采用了面向对象思想,提供友好的图形操作界面;
- 不是“纯”的微内核结构,许多系统服务功能已被放入核心。