《操作系统第1章-第4章(华中科技大学版)》由会员分享,可在线阅读,更多相关《操作系统第1章-第4章(华中科技大学版)(227页珍藏版)》请在金锄头文库上搜索。
1、操作系统原理操作系统是如何工作的?为什么要学习操作系统? 操作系统裸机应用软件用户程序操作系统的重要性地位:操作系统是现代计算机、软件的基础 收获:通过学习操作系统的,我们可以: 掌握底层、大型软件的构造,及实现方法 2 掌握并行处理的思想只有一个CPU在工作如何使计算机同时完成多项任务呢? 程序间合作的方法如:多个独立的程序,合作完成一项复杂任务如何正确地保证它们有序地执行呢? 死锁的处理一些复杂的系统常常会死机。死机的原因有那些,和程序间的合作有关吗? 为以后进行软件系统的开发,打好基础 3 了解操作系统的基本原理、概念 掌握操作系统的实现技术 通过实例的分析,培养解决问题的能力如何学习操
2、作系统提问: 没有操作系统,计算机能否运行?计算机中为什么要配备操作系统? 4配备操作系统的目的管理各种软、硬件资源,提高资源的利用率方便用户使用计算机 (2)原理并发处理:让一个CPU与所有的设备同时工作二、操作系统1.早期的操作系统(1) 目标提高CPU的利用率,将一个物理上的单处理机改造成逻辑上的多处理机。为多个用户服务(3)采用的软件技术多道程序设计技术:多个程序在内存执行2. 当今的操作系统及发展(1)多样化(2)注重用户操作界面的友好(3)多处理机的并行处理(4)嵌入式操作系统(5)微软的观点 制定资源的分配策略及实施技术 解决程序之间的相互制约、及合作引入虚拟机的概念1.2 1.
3、2 操作系统的形成和发展操作系统的形成和发展(1)受应用 需求 的推动 (2)受硬件结构、软件技术的制约和推动从时间上,可分为三个阶段:形成、完善、发展 从硬件载体上,可分为三个主要的分支:多用户操作系统(大、中、小型计算机、服务器,研究的主体)单用户操作系统(个人计算机)嵌入式操作系统(无完整的计算机) 批处理(出现管理软件)联机批处理脱机批处理执行系统操作系统形成实时系统多道程序系统多道批 分时处理系统 系统手工操作阶段 (无管理软件)多处理机、多核系统单用户操作系统 网络操作系统 分布式操作系统嵌入式操作系统操作系统形成和发展的各个阶段三. 多道程序设计技术 91、一个程序在内存的运行(
4、单道程序设计)用户程序监督程序IO操作计算请求输入启动IOIO完成继续计算结束中断中央处理机外部设备原因? 空闲 解决方法:在内存中,存放多个可运行的用户程序 102、 多个程序在内存的运行(多道程序设计)CPU打印机输出 结束程序B打印 输出绘图 输出绘图 输出输出结束输出结束程序A输出 结束程序A程序B打印 输出绘图仪空闲? 11(1) 什么是多道程序设计技术在主存中同时存放几道相互独立的程序;在管理程序控制之下,相互穿插地运行;当某道程序不能继续运行时(如等待外部设备传输数据):便将另一道程序投入运行。 12(2) 多道运行的特征 多道 宏观上并行 微观上串行执行系统采用多道程序设计技术
5、后,就形成了操作系统。13操作系统形成批处理手工操作阶段联机批处理脱机批处理执行系统实时系统多道程序系统多道批 分时处理系统 系统问题:只有一个CPU,在内存中运行的每一个程序如何才能得到CPU 、并保持对其的占有的呢? 141.什么是多道成批处理 所有的作业输入外存; 根据资源条件、及调度原则选择一批作业进入内存 进入内存的作业按某种次序交替运行 当前运行的程序,只要不自动放弃CPU就一直运行下去。 即:CPU不能被强行剥夺 第一种:系统不干涉程序的执行 四. 多道成批处理、及批量操作系统152. 批量操作系统采用多道、成批处理的操作系统,称为批量操作系统。也称为批处理系统。它是操作系统的一
6、种基本类型。 作业运行的方式 系统把用户提交的作业送入计算机外存;在适当的时机,由系统的作业调度程序在外存选择一批作业,装入内存进行多道运行。 特点:脱机操作(即:用户只需将程序提交给系统)合理搭配作业多道运行 16优点:资源利用率高、系统吞吐量大缺点:(1)用户作业的周转时间长,或对用户的响应时间慢;(2) 用户无法与程序交互,使用不方便 解决? 第二种:由系统控制内存中各个程序的执行17五. 分时技术与分时操作系统1. 分时技术 产生的原因:用户希望 能与程序交互、有较快的响应时间快、甚至独占计算机 分时技术:把处理机的时间划分成很短的时间片(如几百毫秒),轮流分配给各个联机的作业使用如果
7、某个作业在分配的时间片用完后,计算仍未完成,就暂时中断执行,等待下一轮 18作业i 作业i+1 作业n 作业i 提问:与批处理相比,CPU的效率有没有降低? 即:CPU的占用是可剥夺的。193. 分时操作系统的特点 多路调制性(一台主机与多个用户终端设备相连接) 独占性 交互性 作业运行的方式一台计算机与多个终端设备连接用户以联机的方式使用计算机因此,也称为交互式系统。 20六实时操作系统什么是实时?说明:实时处理,也可由分时操作系统提供的实时处理功能来实现。(实时用户优先使用CPU) 1. 实时操作系统的定义对外部输入的信息能够在很短的、规定时间内处理完毕并作出反应的一种专用操作系统212.
8、 实时处理的类型(1) 实时控制(必须物理实时) 如生产过程控制、作战指挥等。(2) 实时信息处理(可以逻辑实时) 如订票系统、情报检索等。3. 实时操作系统的特点 及时响应 高可靠性和安全性 系统的整体性强 22批处理手工操作阶段联机批处理脱机批处理执行系统操作系统形成实时系统多处理机、多核系统单用户操作系统 网络操作系统 分布式操作系统嵌入式操作系统多道程序系统多道批 分时处理系统 系统操作系统的进一步发展操作系统的进一步发展23并行的方式:流水线(一条指令分解为多个步骤)向量机(一条指令同时在多个运算器上执行)七 多运算器的单处理机系统CPU特点:一条指令在多个运算器上执行目的:提高计算
9、速度适用性:适应面较窄,主要为专用 24特点:CPU可分可合分开:相当于多台主机合作:提高计算速度(执行并行程序)多核? 八多处理机系统cpucpucpucpu25网络操作系统除具备一般操作系统的功能外,还要增加一个网络通信模块。该模块由以下内容组成:通信接口中断处理程序;通信控制程序;各级网络协议软件 十网络操作系统265. 网络OS扩充的功能(1) 节点间文件的复制、远程打印、电子邮件(2) 联合文件系统(3) 程序的远程执行(如通过Telnet进行远程登)6. 不足之处(1) 节点间相互独立(2) 节点对用户不透明(CORBA有改进)(3) 要有一个集中管理的控制节点操作系统是一个大型的
10、程序系统负责计算机的全部软、硬件资源的管理即:资源的调度和分配控制和协调并发的活动实现信息的存取和保护问题:操作系统是如何对资源进行管理的呢? 为用户使用计算机提供接口使用户获得一个良好的工作环境1.3 1.3 操作系统的概念操作系统的概念28三、操作系统的资源管理功能 系统资 源分类处理机主 存I/O设备软件 资源操作系统 功能模块处理机管 理存储管 理设备管 理文件系 统291.4 OS的特性及应解决的问题 一、特性并发共享不确定性二、应解决的基本问题、提出资源分配的策略要考虑:利用率、公平、资源的特性、协调并发活动的关系原因:并发活动也存在直接、间接的制约多个独立的程序,进行合作的要求、
11、保证数据的一致性保证系统及用户的程序、数据不被破坏避免与时间有关的错误、实现数据的存取控制 操作系统的组织结构可从三个方面来描述 (1)系统的结构:系统功能的分组、及如何交互(2) 接口:是用户、及用户程序使用系统的手段(3) 运行时的结构:定义了系统运行过程中存在的实体类型、及调用方式2.2 2.2 操作系统的组织结构操作系统的组织结构一、系统的结构化组织操作系统是一组软件模块的集合。为了满足系统的正确性、可维护性和性能的要求其功能模块,通常可采用多种方法来进行组织 缺点: 结构不清晰,难于理解难以维护、及验证正确性(因数据的交叉引用) 1. 一体化结构操作系统的所有功能模块和数据结构,放在
12、一个逻辑模块中,任何子模块都不提供外部接口应应用软软件其他系统软统软 件操作系统统功能模块块内核功能优点:通信开销小,系统效率高;安全性好应用:OS问世后被许多系统采用典型的代表是 UNIX系统,如: AT /* 参数的个数 */int (*call)( ); /* 执行程序人口地址 */ sysent ;系统初始化后,系统调用表如下: int sysent 0, nosys() u.u_error = 100; 是一个非法的系统调用(没有用到)该系统调用,将返回一个系统调用失败的错误码。 更详细的细节见:P59:图3.5 4、系统调用的实现过程6、系统调用执行的实例 (read)(1)C语言
13、形式char bufferint nbytesfiles=open(.)read( files, buffer, nbytes)(2)生成的部分汇编代码(id=3) /*设置命令的操作数,为reab的功能号3(files=r0) /*寄存器r0,专用于程序间传递第0个参数sys id /*目标代码为:104403(即104400+3 ,见P58)buffer /*系统调用的第1个参数nbytes /*系统调用的第2个参数(a) 中断响应:将当前进程的PC、PS的压入核心栈 中断向量:(034) = PC、 (036) = 340+6 =PS 转入俘获总控程序(入口地址为trap)(b) 俘获总
14、控程序执行:保护现场(包括:寄存器r0 = u.u_aror0 )由俘获类型: dev=6,转入系统调用分支程序(3) sys 指令的执行过程 (c) 系统调用分支程序执行:取系统调用功能号(即:sys 指令的操作数 3 )从system3,得到read的入口地址、参数个数 根据read的参数个数 2:将断点后2个参数复制到当前进程的user区保存单元u.u_arg0 、 u.u_arg1将PC的值加4,使断点后移4个字节(2个指令字)(d) read子例程执行:完成读操作后,实际传输数=u.u_aror0 作为返回值(f) 俘获总控程序执行:恢复现场,返回新断点自继续执行(或调度其他进程)
15、(e) 系统调用分支程序 俘获总控程序将user区中,u.u_aro0的值,复制到 r0 寄存器(作为传递给子程序参数),然后转read子例程3.5 UNIX的命令程序设计语言shell特点:可将程序设计元素、与多个独立的UNIX执行程序(或命令)组成一个shell过程,存放在一个文件中(通常称为命令处理文件) 。通过该文件,集成为一个逻辑整体(应用系统)shell过程中,可包括的程序设计元素主要有: 1081. 变量包括: 字符串变量 输入变量:用read从键盘读入其内容 shell过程的位置参数: $0,$1,$9 环境变量(用于获得环境信息),包括:用户注册名及主目录(用户的根目录)名、检索存放信件的文件路径、检查信件的时间间隔、 等等 1092. 特殊符号 通配符:、? 符号列表 、 起始符 - 终止符!. 输入输出重定向符: 、 管道: 后台命令符:(2) 若首元素的等待时间为0,则:从首节点开始将等待时间为0的所有节点