课程操作系统部分--主要内容安排•1操作系统引论•2进程描述与控制•3存储管理•4进程同步与通信•5进程调度与死锁•6设备管理•7文件管理第1章操作系统引论1.1计算机系统概观–计算机系统组成–计算机的工作原理–OS的地位、目标和作用1.2OS的发展简史与趋势1.3OS的主要功能、特征与分类1.4研究OS的主要观点和方法补充部分必要的微机原理知识计算机系统组成计算机系统组成一种简明计算机组成模型(示意图)8259A引脚8086CPU引脚Intel8086:16位CPU,16位寄存器,16位数据总线,20位地址总线,具有1MB的寻址能力。8086内部结构计算机系统组成8086的存储器组织模型(1)FFFFFh00000h8086的存储器组织模型(2)8086的存储器组织模型(3)堆栈段(stacksegment)的组织模型•堆栈是在存储器中开辟的、用来暂时保存数据的一个区域(段)。–堆栈段的基址SS指示,段中当前单元位置(栈顶)由SP指示,栈底地址值通常用BP保存。–栈底设在内存高地址,每压栈1次(存入一个字),SP=SP-2,即虽压栈的进行,堆栈地址由高向低增长。–空栈时,SP恰好在栈底,即栈顶与栈底重合。–压栈指令:pushreg|内存单元地址|立即数–出栈是压栈的反操作,指令为:popxxx–压栈与出栈指令要匹配对应,且总是后进先出。81000H高地址ßSS80000H低地址准备执行pushax之前(假设ax的值为35)栈底00ßSP栈顶栈增长方向2012ßSS准备执行pushax之后(假设ax的值为35)栈底00ßSP栈顶201235冯诺依曼计算机工作模型•诺依曼计算机工作模型或存储程序工作模型–存储器用来容纳程序和数据;–程序由指令组成,并和数据一起存储在计算机内存中。•指令按顺序、转跳和循环三种基本方式组织。–机器一起动,就能按照程序指定的逻辑顺序把指令从存储器中读出来逐条解释执行,自动完成程序所描述的处理工作。–指令指针(CS:IP)指示当前执行指令,执行完成指针会自动调整到下一条指令。•当前指令指针指向的内存中程序,被认为拥有机器控制权。–任何计算机都拥有自己的一套基本指令系统,高级语言程序最终需经专门的编译程序,翻译为基本机器指令。8086指令系统•数据传送指令–MOV,PUSH/POP,IN/OUT,STOSB…•算术运算指令–ADD,SUB,INC,DEC,MUL,DIV,….•逻辑和移位运算指令–AND,OR,XOR,NOT,TEST,SAL,SHL,…•字符串运算指令–Movs,cmps,lods/lodsb/lodsw,stosb,….•控制转移指令–jmp,call/ret/retf,loop,int/iret/iretd,jc/jnc,jz/jnz,jae/jnae,…•处理器控制指令–sti/cli,std/cld,hlt,clc/cmc/stc,…100010DWMODREGR/M操作码方向位字节/字该指令有两个操作数,其中至少1个是REG,另一个可以是REG或MEM(R/M)R/M(3位)+REG(2位)+MOD(3位寻址模式编码)共同确定指令第二字节内存寻址模式:立即寻址MOVAL,88H直接寻址MOVAX,ES:[500H]间接寻址MOVBX,mvar[SI][DI]MOVBX,DS:[SI]指令编码示例中断与异常机制•程序执行过程中的强制转移,转到相应的处理程序–中断:硬中断(8259A)和软中断(执行指令:intn)–异常:执行某条指令出现了异常,如被0除、NMI、溢出…–硬中断是异步、随机事件;而软中断与异常是同步事件;•实现中断机制的要素–中断源;中断向量表–特殊指令:INTxx;IRET/IRETD;–控制8259A专用指令STI/CLI•中断处理过程或步骤–保护现场(标志寄存器,CS,IP压栈;特定寄存器压栈);–根据中断源类型,查中断向量表,获取中断处理程序开始地址;–长跳转移到中断处理程序;–执行IRET,恢复原被中断现场。用汇编语言实现中断•;中断处理子程序•SERVICEPROCFAR•PUSHAD;保护现场•PUSHDS•STI;打开中断•……•;中断处理程序主体•……•CLI;关闭中断•MOVAL,20H•OUT20H,AL;发中断结束命令•POPDS;恢复现场•POPA•IRET•SERVICEENDP32位微处理机器•Intel8086–16位CPU,16位寄存器,16位数据总线;–20位地址总线,具有1MB的寻址能力。•Intel80386–从80386开始,Intel家族的CPU进入32位时代,具有32位地址总线,寻址能力可达4GB。–有实模式、保护模式和虚拟8086(V86)三种工作模式。保护模式的特点•采用了全新的、基于分段和分页内存管理技术;–可寻址4G的内存空间;–允许使用虚拟存储。•支持并发执行多任务;•引入特权级(privilegelevel/ring)的概念–共分四个特权级,即0级、1级、2级和3级;–第0级权限最大,常被作为系统内核代码段的权级,具有实模式下代码的同等权限;–3级权限最小,常被作为用户级代码段的权级。80386的寄存器体系加载专用指令LGDTmem48LIDTmem48LLDTreg16/mem16LTRreg16/mem16请求特权级=0描述符在GDT中=1描述符在LDT中保护模式下的段描述符保护模式下的段式寻址过程保护模式下中断处理程序的定位过程操作系统的定义•是计算机系统的一个系统软件;•是一些具有如下功能的程序模块的集合:–能有效地组织和管理计算机硬件和软件资源–能合理组织计算机的工作流程,控制程序的执行;–能透明地向用户提供各种服务功能,使用户能够灵活、方便地使用计算机,使整个计算机系统能高效地运行。操作系统的目标与作用•操作系统的目标(质量模型)–方便性(方便,易学、易用)–有效性(有效利用和管理各类系统核心资源,提高系统的利用率和吞吐率)–可扩充性(可修改性,可扩展性好)–开放性(移植性,互操作性好)•操作系统的作用–作为计算机系统资源的管理者;–作为用户与计算机硬件系统之间的接口;–用作扩充计算机硬件系统(应如何理解或说明?)•操作系统结构模型–一般采用基于特权级保护的层次化结构模型1.2操作系统的发展过程(1)•人工操作方式–对应第一代计算机,无OS;–用纸带机加载程序信息到主存;–特点:用户独占计算机资源,资源利用率低(CPU要等待人工操作,经常空闲)•脱机输入输出技术–引入目的:解决人机矛盾,以及CPU与低速I/O设备间速度不匹配;减少CPU的空闲等待时间。1.2操作系统的发展过程(2)•人工操作方式•脱机输入输出技术•单道批处理系统–监督程序•驻留内存;•自动加载外部作业,实现系统的自动、不间断连续运行•但当当前执行程序有I/O服务请求时,CPU仍要空闲–特征:自动性、顺序性和单道性•多道批处理系统1.2操作系统的发展过程(3)•多道批处理系统–多道程序设计技术–用户提交作业先在外存排队,然后由作业调度程序按一定的算法从队列中选择若干作业载入内存,并允许它们并发(交替)执行。–引入多道程序设计技术后,可带来如下的好处•提高系统(CPU、内存和I/O设备)的利用率;•充分发挥CPU与外设并行工作的能力;•提高系统的吞吐率–特征:多道性、无序性和调度性–优缺点及需要解决的问题分时操作系统•分时操作系统形成和发展的动力–实现人机交互;共享或充分利用主机;便于用户上机•分时OS实现要解决的关键问题–及时接受•多路卡;每个终端配备可暂存用户命令的缓冲区–及时处理•所有用户作业要直接进入内存;•每个用户(作业)应在较短的时间内得到响应处理的“时间片”;•分时系统的实现方法–单道分时处理系统–具有“前台”和“后台”的分时系统–支持多道程序设计的分时系统•特征:多路性、独立性和交互性;实时操作系统•实时OS的引入目的(主要应用领域)–实时控制–实时信息处理――要求对信息进行及时处理•实时任务的类型–按是否有周期性划分;–按截止时间要求严格与否划分(硬、软任务);•实时系统的基本特征–具有多路性、独立性、交互性、及时性和可靠性等特征.•分时操作系统和实时操作系统的出现,使得OS步入实用化可移植操作系统――UNIX革命•UNIX是现代OS的代表,20世纪60年代末,由贝尔实验室首先设计完成;随后整个UNIX用C语言重写。•其源代码开放。•运行时具有安全性、可靠性以及强大的计算能力。•UNIX出色的设计思想和实现技术,对后来OS发展有着广泛而深入的影响,至今它仍然是OS课程学习的重要内容。•UNIX新家族系列–目前较流行的LINUX、XINUX……–Ubuntu:官方网站–Cygwin:官方网站系统的特点•内核和外层有机结合。内核小、简洁,常驻内存,保证系统高效运行;外层包含非常的实用程序和丰富的支持软件--各种工具容易串接组合。•可移植性、可扩展性好和安全性好;•是一个支持多任务多用户系统•开放源代码•----------------------•WINDOWS–多任务操作环境–图形化工作环境和用户界面,界面友好(傻瓜机)–属于准微内核体系,兼顾性能和效率网络操作系统•计算机网络中,各台计算机配置各自的OS,而网络OS把它们有机联系起来,用统一的方法管理整个网络中的共享资源。•网络OS除了具备单机OS功能外,还应具备网络通信能力和网络服务能力。•网络用户只有通过网络OS才能享受网络所提供的各项服务。分布式操作系统•分布式操作系统是为分布计算机系统配置的OS。按分布方式,分布式计算机系统常可分为两类:–建立在多处理机上的紧密耦合分布式系统;–建立在计算机网络基础上,松散耦合的操作系统。•与网络OS相比,更重于任务的分布性,即把一个大的任务分为若干个子任务,分派到不同的处理站点上去执行。•有强壮的分布式算法和动态平衡各站点负载的能力•它是网络OS的更高形式,具有强大的生命力。当代OS的两大发展方向•微型化方向–典型代表:嵌入式的OS,运行在嵌入式环境中。•大型化方向–典型代表:分布式OS和机群OS–分布式并行机,由多个连接的CPU组成,在整个系统的控制下可合作执行一个共同任务;–机群OS则用于由多台计算机松散组成的机群;•最新发展:云计算技术!–一种超大规模、高度虚拟化计算模型1.3操作系统的主要功能概述一、处理机管理(进程与线程管理)–主要任务是对CPU的分配和运行实施有效管理–具体功能包括•进程控制:负责进行的创建、撤销和状态转换•进程同步:对并发执行的多进程进行协调•进程通信:负责完成进程间的信息交换•进程调度:按一定的算法进行CPU分配1.3操作系统的主要功能概述二、存储管理–主要任务是对内存进行分配、保护和扩充–具体功能•内存分配:按一定的策略为每道程序分配内存•内存保护:保证各程序在自己的内存区域内运行不受其它并发执行程序影响。•内存扩充:为允许大型作业或多作业并发运行,必须借助虚拟存储技术来获得更大“虚拟”内存1.3操作系统的主要功能概述三、设备管理–是OS中最庞杂、最琐碎部分–应具有的基本功能包括•设备分配:按一定原则对设备进行分配。为使设备能与主机并行工作,需大量采用缓冲技术和虚拟技术•设备传输控制:实现物理设备的I/O操作,包括启动、中断处理和结束处理等操作。1.3操作系统的主要功能概述四、文件管理–OS中负责信息管理部分称为文件系统–主要功能包括:•文件的存储空间管理(分配、回收)•目录管理:目录是为方便文件管理而采用的基本数据结构,它能提供“按名存取”功能。•文件操作管理:实现文件的基本操作,包括打开、关闭、读、写等。•文件保护:提供文件安全保护的有关功能和设施。1.4研究操作系统的主要观点与方法•虚拟机的观点•资源管理的观点•软件的观点•进程的观点虚拟机(扩展机)观点•是对OS一种由顶向下的俯视。•装有OS的计算机极大地扩展了原有计算机的功能。把包含由各种硬件、复杂底层操作细节隐藏起来,使得