操作系统课件范文.doc
14页操作系统课件范文 哈工大计算机科学与技术学院软件基础教研室操作系统Operating Systemlizhijun_os@hit.新技术楼911室第2章并发、进程、线程Concurrency,Processes,Threads授课教师李治军Harbin Institute of Technology2Operating System哈工大计算机科学与技术学院内容纲要?并发(Concurrency)?地址空间(Address space)?进程(Processes)?线程(Threads)?派遣(Dispatching)Harbin Institute of Technology3Operating System哈工大计算机科学与技术学院CPU的工作过程?取指?解码?执行(Fetch/Decode/Execute)取下一条指令执行指令停止开始执行周期取指周期从存储器(地址在程序计数器PC中)中读取一条指令放入指令寄存器(IR)中,然后执行这条指令一个单条指令处理过程称为一个指令周期程序执行由不断取指和执行的指令周期组成仅当关机、出错时,程序才停止Harbin Institute of Technology4Operating System哈工大计算机科学与技术学院以前的顺序环境?顺序环境:只运行一个程序(Uniprogramming)以前的MS-DOS就这样工作程序独占所有资源、不受外界影响满足顺序性、封闭性、执行结果的确定性、可再现性结果与执行速度无关,只与初始状态有关想一想这样的环境适合PC机吗?Harbin Institute of Technology5Operating System哈工大计算机科学与技术学院并发概念的引出?一段时间同时运行多个程序(Multiprogramming)Multics,UNIX/Linux,Windows XP,Mac OSX程序不再独占所有资源、会互相影响不再满足封闭性、执行结果没有确定性、可再现性结果与执行速度有关并发是现代操作系统的关键概念!Harbin Institute of Technology6Operating System哈工大计算机科学与技术学院并发vs.顺序顺序执行ABCPU DEV1DEV2CPU CPU101520304025DEV1CPU3545DEV2CPU DEV2并发执行顺序程序并发程序CPU利用率40/80=50%40/45=89%DEV1利用率15/80=18.75%15/45=33%DEV2利用率25/80=31.25%25/45=56%BDEV2CPU DEV1DEV2CPU1020304025CPU DEV1DEV2CPU CPUA1015203040Harbin Institute of Technology7Operating System哈工大计算机科学与技术学院并发的优点?充分利用系统资源?用户应答时间短?系统吞吐量大CPU和外设可以并行起来CPU利用率和外设利用率都增加并发(二者<=45秒)vs.顺序(其中之一=80秒)并发(两任务/45秒)vs.顺序(两任务/80秒)Harbin Instituteof Technology8Operating System哈工大计算机科学与技术学院并发引出的问题?多个用户对资源的共享?操作系统需要协调所有的活动单一的CPU,单一的DRAM,单一的I/O设如何分配如何让用户(程序员)感觉到是独占机器如何使多用户、中断、异常等对象按部就班如何使多程序相互作用、协调工作一定需要用某种手段简化问题!Harbin Instituteof Technology9Operating System哈工大计算机科学与技术学院制造多个CPU的假象(illusion)?如何提供多CPU的假象?z将时间分割(Multiplex intime)!?每个虚“CPU”需保存一个结构:z ProgramCounter(PC)z StackPointer(SP),Registers?在时间轴上切换(switch)z SavePC,SP,and registerszLoad PC,SP,and registersCPU1CPU2CPU3CPU1CPU2时间CPU3CPU2CPU1内存物理CPUCPUHarbin Instituteof Technology10Operating System哈工大计算机科学与技术学院其它硬件资源咋么办??重要的硬件资源被所有的virtual CPUs共享?这些资源可完全共享内存被共享I/O设备被共享每个“CPU”可访问其它任何“CPU”的数据每个“CPU”可执行其它任何“CPU”的指令显然这样的方法共享性好、保护性差嵌入式应用这样处理,其它场合呢?Harbin Instituteof Technology11Operating System哈工大计算机科学与技术学院常用的保护机制1.内存保护(Protection ofmemory)2.I/O保护(Protection of I/O devices)3.强制切换(Preemptive switchingfrom taskto task)每个任务(虚CPU上执行的程序)有限制的访问内存每个任务有限制的访问I/O设备应用计时器不允许在用户代码中修改、停止时钟Harbin Instituteof Technology12Operating System哈工大计算机科学与技术学院内容纲要?并发(Concurrency)?地址空间(Address space)?进程(Processes)?线程(Threads)?派遣(Dispatching)Harbin Instituteof Technology13Operating System哈工大计算机科学与技术学院地址空间?一个地址空间+与之相联系的状态程序地址空间32-位处理器:232=4G地址空间访问这些地址是会出现如下状态:读写内存、写忽略、引起I/O、引起异常等Harbin Instituteof Technology14Operating System哈工大计算机科学与技术学院造成“分离地址空间”的假象?应用地址转化映射,在切换时载入新的映射Prog1VirtualAddressSpace1Prog2VirtualAddressSpace2CodeDataHeapStackData2Stack1Heap1OSCode1Stack2Data1Heap2Code2Translation Map1Translation Map2物理地址空间CodeDataHeapStackHarbin Instituteof Technology15Operating System哈工大计算机科学与技术学院内容纲要?并发(Concurrency)?地址空间(Address space)?进程(Processes)?线程(Threads)?派遣(Dispatching)Harbin Instituteof Technology16Operating System哈工大计算机科学与技术学院进程概念?在自己地址空间中执行的一个指令序列(程序)进程包含指令序列和资源两个部分:Sequential ProgramExecution Stream:顺序执行着的代码CPU寄存器状态Protected Resources:内存(contents ofAddress Space)I/O状态(如file descriptors)Harbin Instituteof Technology17Operating System哈工大计算机科学与技术学院进程vs.程序?程序:代码+数据z是静态的?进程是程序关于某数据集上的一次运行活动z是动态的z是资源分配和调度的单位stackdatacodeint c;printf()int c;int main(){printf(“hello”);}Harbin Instituteof Technology18Operating System哈工大计算机科学与技术学院如何用进程来实现并发??将CPU时间分割后给不同的进程?将其它资源加以限制后分配给不同的进程任何时刻只有一个进程是运行的(和物理联系)不同的进程可分配不同的CPU时间(有重要进程)如内存映射:Give eachprocess theirown addressspace内核/用户模式:Arbitrary multiplexingofI/O throughsystem callsHarbin Instituteof Technology19Operating System哈工大计算机科学与技术学院进程复用CPU?上下文切换(Context Switch)Harbin Instituteof Technology20Operating System哈工大计算机科学与技术学院进程调度(Scheduling)while (1){interrupt当前进程;保存state toPCB;获得next进程;装载state fromPCB;jmp新进程;}CPU…P1P2P3P nHarbin Instituteof Technology21Operating System哈工大计算机科学与技术学院上下文切换时的状态保存?哪些状态需要保存?z寄存器值?通用寄存器?程序计数器PC?状态PSW?栈指针等z赋予该进程的地址映射z…CPU现场状态保存在哪里?(一个数据结构)Harbin Instituteof Technology22Operating System哈工大计算机科学与技术学院进程控制块(PCB)?OS为管理进程设置的一个数据结构进程描述信息:标识符;进程名…CPU现场信息:寄存器值…进程控制信息:入口地址;当前状态…拥有的资源情况:打开文件列表…可用来描述进程的执行、变化过程是系统感知进程存在的唯一标志,与进程一一对应Harbin Instituteof Technology23Operating System哈工大计算机科学与技术学院进程状态转换?在进程执行过程中,其状态会不断变化运行就绪一个CPU上正在执行的进程准备运行的进程Harbin Instituteof Technology24Operating System哈工大计算机科学与技术学院进程状态转换运行就绪? (1)就绪?运行:该进程被配遣(Dispatch)? (2)运行?就绪:运行并中断,如时间片用完 (2) (1)Harbin Instituteof Technology25Operating System哈工大计算机科学与技术学院进程状态转换?引入阻塞态:由于某种原因(等待设备)不能运行运行就绪阻塞一个CPU上正在执行的进程准备运行的进程等待某些事件的进程Harbin Instituteof Technology26Operating System哈工大计算机科学与技术学院进程状态转换运行就绪阻塞? (1)运行?阻塞:当进程等待某事件? (2)阻塞?就绪:等待的事件发生基本的三状态模型 (1) (2)Harbin Instituteof Technology27Operating System哈工大计算机科学与技术学院进程状态转换运行就绪阻塞?引入新建态和退出态:初始化和信息收集? (1)新建?就绪:允许进入? (2)运行?退出:执行完新建退出五状态模型 (1) (2)Harbin Instituteof Technology28Operating System哈工大计算机科学与技术学院进程状态转换运行就绪阻塞?引入挂起态:内存不足时可将进程换出外存?就绪(阻塞)?就绪(阻塞)挂起:内存不足?就绪(阻塞)挂起?就绪(阻塞):分配内存并调入新建退出就绪挂起阻塞挂起 (1) (1) (2) (2)Harbi。





