操作系统第01讲:操作系统的基本概念.ppt

上传人:tian****1990 文档编号:12865954 上传时间:2020-06-01 格式:PPT 页数:35 大小:1.34MB
返回 下载 相关 举报
操作系统第01讲:操作系统的基本概念.ppt_第1页
第1页 / 共35页
操作系统第01讲:操作系统的基本概念.ppt_第2页
第2页 / 共35页
操作系统第01讲:操作系统的基本概念.ppt_第3页
第3页 / 共35页
点击查看更多>>
资源描述
第1讲操作系统的基本概念,1,计算机专业核心课程,操作系统OperatingSystems,第1讲操作系统的基本概念,第1讲操作系统的基本概念,2,自我介绍,计算机系“xxx”办公室:联系电话:电子邮箱:我对学生要求很高期望每个学生都能学有所长每次考试都有10%以上的同学不及格课后作业很多,实验工作量很大,且对抄袭行为实行“零容忍”政策,第1讲操作系统的基本概念,3,有哪些操作系统?,手机操作系统:Google的Android、苹果IPhone、IPad的IOS操作系统;微软的WinowsPhone;Nokia的Symbian;PC操作系统:微软的Dos、WinXP、Win7;苹果的MacOS;服务器操作系统:IBMAIX、HP-UX、Solaris等UNIX系统;开源的Linux系统;微软的windows2003;主机操作系统:IBM的OS390等嵌入式操作系统:运行在各种设备里,IC卡、汽车、家电、飞机等;网络操作系统:运行在各种联网设备上,思科(CISCO)公司的路由器操作系统IOS分布式操作系统:将联网的计算机组织成一个虚拟的计算机,提供极大的计算、存储能力,Google的云存储系统;实时操作系统:有实时性要求的环境中,例如导弹、卫星、宇宙飞船、核电站等;,操作系统在信息社会中无处不在,第1讲操作系统的基本概念,4,操作系统有什么作用?,计算机的物理组成计算机系统的层次结构物理设备:物质基础,主板、内存等芯片和电源、风扇等部件;微体系结构:CPU内部的体系结构,完成各种基础的操作,可由硬件直接实现,也可用微程序的方式由软件来实现;机器语言:指令集体系结构,能被汇编语言直接来调用;操作系统其他系统软件和应用程序,第1讲操作系统的基本概念,5,操作系统作用1:自顶向下的观点,机器语言:提供最原始的操作指令内存和CPU寄存器之间的数据拷贝指令;算术运算指令;根据比较结果执行指定地址的跳转指令硬件操作方式差异很大,直接用机器语言操作硬件非常繁琐。解决方法:对底层硬件能进行抽象和封装,屏蔽硬件的复杂性,提供使用方便、结构良好的操作接口虚拟机(VirtualMachine):向上层软件提供虚拟的运行环境,公共函数库,第1讲操作系统的基本概念,6,操作系统作用2:自底向上的观点,多道程序(MultiProgramming):多个程序同时驻留在内存中并发的执行程序执行需要占用硬件资源:CPU、内存、外设、文件等资源管理:如何给多个并发执行的程序合理分配资源资源复用:CPU的时分复用、内存的空分复用资源虚拟:一个物理资源虚拟成多个逻辑资源,打印机的Spolling技术,第1讲操作系统的基本概念,7,操作系统的作用,自顶向下的观点:虚拟机自底向上的观点:资源管理者通俗的说:操作系统是计算机系统的管家:对外向用户提供良好的服务;对内安排、调度各种资源的工作;OperatingSystem的含义:掌控计算机运行的系统软件,第1讲操作系统的基本概念,8,操作系统课程特点,操作系统作为最重要的系统软件,具有复杂程度高、生命周期长、正确性难以保证等特点;Linux:200万行C语言源程序;Windows2000:2500程序员,3200万行代码;FregBrooks:IBMOS/360操作系统设计者,图灵奖获得者,人月神话作者,“一个泥潭,一群史前动物陷入其中而不能自拔”。无数个软件错误,每个错误修改带来新的错误操作系统课程系统讲授操作系统50年开发历史中积累、提炼、抽象出的最重要的概念和方法从计算机系统整体角度来考虑问题来源于实践、应用于实践,第1讲操作系统的基本概念,9,操作系统学习目标,理解操作系统的基本概念和基本原理通过实践,掌握操作系统的结构、主要功能和实现思想了解当前流行的操作系统(Unix,Linux,Windows)为进一步使用操作系统服务,第1讲操作系统的基本概念,10,ModernOperatingSystems(英文第三版)AndrewS.TanenbaumLinux内核的设计与开发(中文第二版)RobertLover,参考书:OperatingSystemConcepts,6thEditionAbrahamSilberschatz深入理解Linux内核(中文第三版)DanielP.Bovet,教材,第1讲操作系统的基本概念,11,本课程的要求和考核,原则:突出实践,强调过程平时表现10课堂、作业、讲座实验成绩40%包括多个实验课题每个课题逐个验收和打分期末闭卷考试50,第1讲操作系统的基本概念,12,本讲内容:操作系统的基本概念,系统调用:SystemCall进程:Process,第1讲操作系统的基本概念,13,系统调用(SystemCall),自顶向下的虚拟机观点:操作系统屏蔽底层操作细节,向所有上层应用提供一组系统调用。,应用程序:my.ccount=read(file,buffer,nbytes)file:文件标识符,指向要读取的文件;buffer:内存地址,指向数据缓冲区;nbytes:要读取的字节数count:返回读取到的字节数,库文件:stdlib.ossize_tread(file,buffer,nbytes)/传递系统调用的编号INT/中断指令,OS:Dispatch/系统调用的编号到实现代码地址的映射read/读文件系统调用的实现write/写文件系统调用的实现,第1讲操作系统的基本概念,14,系统调用的执行过程,13:read过程调用的参数传递4:调用read库函数5:存储系统调用的编号到寄存器中6:中断指令,请求执行操作系统代码7:根据编号获得系统调用实现代码地址8:执行系统调用9:系统调用结束,返回到库函数10:返回到用户程序11:过程返回的处理,第1讲操作系统的基本概念,15,为什么系统调用不做成库函数形式?,某些原始操作系统就是一个函数库,供应用程序直接调用IC卡操作系统问题:绕过操作系统,自己编写代码直接对硬件操作严重的安全隐患:一个应用程序出现错误,可能导致整个计算机系统崩溃只能由OS系统对硬件操作,不允许应用程序直接操作硬件对硬件操作的指令称为特权指令,其它指令成为非特权指令CPU分核心态和用户态两种状态:处于核心态CPU能执行所有指令;处于用户态的CPU只能执行非特权指令;CPU有PSW(程序状态字)寄存器,记录当前CPU模式CPU模式转换核心态到用户态:特权指令CPU模式指令,设置PSW寄存器用户态到核心态:非特权指令INT中断指令,第1讲操作系统的基本概念,16,INT指令和CPU模式转换,计算机启动后CPU处于核心态,执行OS系统的代码;OS设置CPU模式为用户态,执行应用程序应用程序执行INT中断指令,请求执行OS的系统调用CPU执行INT指令OS进行安全性检查,判断是否执行系统调用OS根据编号和系统调用向量表,得到系统调用实现代码的地址OS执行系统调用代码OS恢复应用程序的运行状态,并转到2;,将CPU模式切换为核心态保存当前的运行状态执行OS入口代码,第1讲操作系统的基本概念,17,为什么传递系统调用的编号,安全原因:由应用程序指定要执行OS代码的地址,可能带来安全隐患执行OS第1000行代码、执行OS第2000行代码;兼容性:操作系统不断发展,实现代码会改变;通过向量表将应用程序和OS实现代码进行解耦合,实现操作系统的向下兼容,第1讲操作系统的基本概念,18,单个程序执行的CPU利用率,早期计算机系统中,内存中仅有一个程序在运行,CPU和其它硬件设备串行工作。,从磁盘读输入数据:78ms;CPU计算:52ms;打印机输出结果:20ms,时间,磁盘,CPU,打印机,78,130,150,CPU利用率52/(78+52+20)=35%,第1讲操作系统的基本概念,19,中断:CPU和外设并行工作,1、CPU写控制器的控制寄存器,发布操作命令,然后CPU继续执行后续指令2:控制器完成操作后通知中断控制器3:中断控制器设置CPU中断引腿的信号4:中断控制器在总线上写中断号,CPU可获得中断号从而知道哪个设备完成操作,1、CPU执行完当前指令后,检查中断引腿的信号;如果有硬件中断发生,CPU模式切换到核心态,保存当前运行状态,执行OS的入口代码(与INT指令完全相同,INT指令称为软中断);2、OS入口代码根据总线上的中断号,查询中断向量表,执行对应的中断处理程序;3、恢复原运行状态,将CPU模式切换到用户态,执行下一条指令,第1讲操作系统的基本概念,20,多道程序(MultiProgramming),多个程序同时驻留在主存中,当一个程序执行I/O操作时,CPU可以执行另一个程序的代码,提高CPU利用率,从磁盘1读输入数据:78ms;CPU计算:52ms;打印机1输出结果:20ms,78,130,150,CPU利用率(52+42)/150=63%,从磁盘2读输入数据:20ms;CPU计算:42ms;打印机2输出结果:108ms,20,62,第1讲操作系统的基本概念,21,进程(Process),自底向上的资源管理者观点:进程是程序的一次运行过程,是资源管理的基本单位;CPU并发执行多个进程的代码;进程切换:保存原进程的运行状态,加载新进程的运行状态进程控制块PCB(ProcessControlBlock):记录进程的运行状态进程表:存储所有进程的PCB;进程标识符PID:PCB在进程表中的序号,是进程的唯一标识,第1讲操作系统的基本概念,22,CPU管理:在进程之间分配CPU,进程的状态和状态变迁运行态:CPU正在执行进程的代码;阻塞态:进程不能运行,等待外部中断事件的发生;就绪态:可运行,等待CPU;分时(timesharing):就绪进程轮流占用CPU一个时间片,CPU资源时分复用,逻辑上每个进程独占一个虚拟CPU,第1讲操作系统的基本概念,23,内存管理:管理进程对内存的操作,逻辑地址空间(虚拟内存):进程运行在独占的逻辑地址空间中内存分配:给进程分配物理地址空间,实现内存的空分复用保护:进程只能访问分配给自己的物理内存;重定位:逻辑地址(虚拟地址)和物理地址的转换,堆栈区,数据区100:x,代码区10:mov100,0,1000,1FFF,进程1,堆栈区,数据区100:y,代码区10:mov100,1,2000,2FFF,进程2,逻辑地址空间,物理地址空间,0000,第1讲操作系统的基本概念,24,MMU:内存管理单元,CPU读取指令,获得要读写内存的逻辑地址MMU将逻辑地址转换成物理地址,发送到总线上,堆栈区,数据区100:x,代码区10:mov100,0,1000,1FFF,进程1,堆栈区,数据区100:y,代码区10:mov100,1,2000,2FFF,进程2,物理地址空间,0000,第1讲操作系统的基本概念,25,MMU:一种基于界限和基址的实现方式,进程的基址和界限长度值保存在PCB中进程切换时根据PCB设置MMU寄存器的值,堆栈区,数据区100:x,代码区10:mov100,0,1000,1FFF,进程1,堆栈区,数据区100:y,代码区10:mov100,1,2000,2FFF,进程2,物理地址空间,0000,CPU,1000,+,界限寄存器,2000,基址寄存器,100,2100,MMU,Y,第1讲操作系统的基本概念,26,Linux:进程管理有关的系统调用,第1讲操作系统的基本概念,27,子进程的创建:fork系统调用,复制父进程父进程fork的返回值是子进程的PID;子进程fork的返回值是0能否父进程返回0,子进程返回父进程的PID?,=0,=101,第1讲操作系统的基本概念,28,实验:fork系统调用,intmain()intself_pid,pid,status;pid=fork();/创建一个与自己完全相同的子进程if(pid!=0)/此处是父进程执行的代码waitpid(-1,第1讲操作系统的基本概念,29,实验:命令行参数的传递,/myecho.c/argc:参数个数;/argv:指针数组,指向命令行的每一个字符串intmain(intargc,char*argv)inti;for(i=0;iargc;i+)printf(argv%d:%sn,i,argvi);exit(EXIT_SUCCESS);,#./myechoabcargv0:./myechoargv1:aargv2:bargv3:c,第1讲操作系统的基本概念,30,执行指定的程序:execve系统调用,释放进程占用的物理内存为指定程序的运行分配新的物理内存,并进行初始化PID不变,PCB重新填充新的值;,操作系统,0000,0FFF,execve代码,第1讲操作系统的基本概念,31,实验:execve系统调用,execve(char*filename,char*argv,char*envp);filename:要执行的文件名;argv:指针数组,指向程序执行的参数;以空指针NULL标记指针数组结束;argv0的值同filename;envp:指针数组,指向环境字符串;环境字符串是“key=value”形式,intmain(intargc,char*argv)char*newargv16;char*newenviron=NULL;inti;for(i=1;iargc;i+)newargvi-1=argvi;newargvargc-1=NULL;execve(newargv0,newargv,newenviron);printf(execvefailedn);exit(EXIT_FAILURE);,#./2./myechoabcargv0:./myechoargv1:aargv2:bargv3:c,第1讲操作系统的基本概念,32,实验:综合使用fork和execve系统调用,父进程fork系统调用创建子进程,等待子进程执行结束子进程执行execve系统调用,执行指定的程序,intmain()intself_pid,pid,status;pid=fork();/创建一个与自己完全相同的子进程if(pid!=0)/此处是父进程执行的代码waitpid(-1,第1讲操作系统的基本概念,33,Linux的命令行操作界面:Shell,Shell是Linux提供的命令解释器,不是操作系统的一部分用户登录后,OS启动一个shell进程显示提示符:$,提示用户输入命令接收用户输入的命令,回车表示输入结束;Shell进程调用fork,创建一个子进程;子进程调用execve,执行输入的命令;父进程等待子进程结束,然后转到步骤1;,第1讲操作系统的基本概念,34,实验:Shell的实现,第1讲操作系统的基本概念,35,Linux系统的启动,1:引导区程序执行,加载OS到内存;2:执行OS启动代码,对硬件进行初始化设置3:构造idle进程,PID为0,所有进程的祖先,CPU空闲时运行此进程4:进程0调用fork,创建Init进程和内存管理进程,5:Init进程根据终端配置文件/etc/ttys,对每个终端fork创建终端进程getty6:终端进程getty设置终端参数,显示提示输入用户名的信息7:终端进程getty接收到用户名,调用execve执行登录程序login8:login进程接收用户输入的密码;如果登录成功,调用execve执行shell程序,提供命令行操作接口9:shell进程接收用户输入的命令,调用fork创建子进程执行指定的程序;,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!