版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统设计与实现主讲教师:徐战亚Email:zhanyaxu@163.com指定教材TheMINIXBook:“OperatingSystems:设计与实现”byAndrewTanenbaumandAlbertWoodhull,第二版.中文版:操作系统设计与实现(第二版) (电子工业出版社)嵌入式实时操作系统uCOS-II[邵贝贝]需要具备的一些技能编程语言: --C(C++)and汇编 --数据结构&计算机组成原理操作系统组成基础概念进程:核心输出&输出:对外内存管理:衔接体文件系统:持久化操作系统的功能:
管理系统软硬件资源扩展计算机的功能向用户提供服务基础概念1.1什么是操作系统?1.2基本发展史1.3核心概念s…..1.4系统调用是什么?1.5操作系统的组成Applications……..Hardware:CPU/Memory/HD/DVD/Wireless…OS….硬件如何与软件相衔接?KernelofSVR2ofAT&TUnixhardwareSystemCallInterfaceLibrariesUserprogramstrapuserFilesubsysBuffercacheHardwareControlCharacterblockdevicedriversProcessControlSubsys.Inter-ProcessCommunicationSchedulerMemoryManagementkernelMinixOSStructureProcessManagementInitUserProcessUserProcessUserProcess……..MemoryManagerFileSystemNetworkserverdiskttyclocksystemEthernetKernelUserServerI/O操作系统在计算机系统中的地位操作系统的地位:紧贴系统硬件之上,所有其他软件之下(是其他软件的共同环境)引入操作系统的目标有效性(系统管理人员的观点):管理和分配硬件、软件资源,合理地组织计算机的工作流程方便性(用户的观点):提供良好的、一致的用户接口,弥补硬件系统的类型和数量差别可扩充性(开放的观点):硬件的类型和规模、操作系统本身的功能和管理策略、多个系统之间的资源共享和互操作1.1.2操作系统的作用操作系统的作用(1)
OS是计算机硬件、软件资源的管理者。管理对象包括:CPU、存储器、外部设备、信息(数据和软件);管理的内容:资源的当前状态(数量和使用情况)、资源的分配、回收和访问操作,相应管理策略(包括用户权限)。操作系统的作用(2)
OS是用户使用系统硬件、软件的接口。系统命令(命令行、菜单式、命令脚本式、图形用户接口GUI);系统调用(形式上类似于过程调用,在应用编程中使用)。操作系统的作用(3)
OS是扩展机(extendedmachine)/虚拟机(virtualmachine)。在裸机上添加:设备管理、文件管理、存储管理(针对内存和外存)、处理机管理(针对CPU);另外,为合理组织工作流程:作业管理、进程管理。OS的定位计算机系统(层次结构)软件硬件及固件(裸机)应用软件系统软件编辑软件编译软件操作系统操作系统的非形式化定义(关键点):系统软件,程序模块的集合,资源管理和用户接口功能1.1.3操作系统举例MSOS:MSDOS,Windows98,WindowsXP,Windows2000,Windows2003,Vista…..UNIX:BSD,SRV4,OSF1,SCOUNIX,AIX,Solaris,Minix,Linux,RedHat,NOS:NovellNetwareRTOS:VxWorks,pSoS,Nucleus,RTOS1.2操作系统的发展历史1.2.1推动操作系统发展的主要动力1.2.2手工操作1.2.3单道批处理系统(simplebatchprocessing)1.2.4多道批处理系统(multiprogrammingsystem)1.2.5分时系统(time-sharingsystem)1.2.6个人计算机1.2.7MINIX的历史1.2.1推动操作系统发展的主要动力资源利用率需要提高:CPU的占用率,外设繁忙程度…更多外设需要支持:指令位,8位、16位、32位、64位…更多用户需求要满足:商务、办公、家庭、开发…更多新领域要支持:设计、科学计算、数据管理、娱乐…更多应用形态要满足:集中式、共享式、个人式…1.2.2手工操作1946~50年代(电子管vacuumtubes),集中计算(计算中心),计算机资源昂贵;工作方式用户:用户既是程序员,又是操作员;用户是计算机专业人员;编程语言:为机器语言;输入输出:纸带或卡片;计算机的工作特点用户独占全机:不出现资源被其他用户占用,资源利用率低;CPU等待用户:计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;CPU利用率低;主要矛盾计算机处理能力的提高,手工操作的低效率(造成浪费);用户独占全机的所有资源;提高效率的途径专门的操作员,批处理1.2.3单道批处理系统(simplebatchprocessing,uniprogramming)50年代末~60年代中(晶体管):利用磁带把若干个作业分类编成作业执行序列,每个批作业由一个专门的监督程序(Monitor)自动依次处理。可使用汇编语言开发。批处理中的作业的组成:用户程序数据作业说明书(作业控制语言)批:供一次加载的磁带或磁盘,通常由若干个作业组装成,在处理中使用一组相同的系统软件(系统带)两种批处理方式(1)--联机批处理用户提交作业:以纸带或卡片为介质;操作员合成批作业:结果为磁带介质;批作业处理:对批作业中的每个作业进行相同的处理:从磁带读入用户作业和编译链接程序,编译链接用户作业,生成可执行程序;启动执行;执行结果输出。这时的问题:慢速的输入输出处理仍直接由主机来完成。输入输出时,CPU处于等待状态。两种批处理方式(2)--脱机批处理利用卫星机完成输入输出功能。主机与卫星机可并行工作。卫星机:完成面向用户的输入输出(纸带或卡片),中间结果暂存在磁带或磁盘上。作业控制命令由监督程序(monitor)来执行,完成如装入程序、编译、运行等操作。优点:同一批内各作业的自动依次更替,改善了主机CPU和I/O设备的使用效率,提高了吞吐量。缺点:磁带或磁盘需要人工装卸,作业需要人工分类,监督程序易遭到用户程序的破坏(由人工干预才可恢复)。通道和中断技术60年代初,发展了通道技术和中断技术,这些技术的出现使监督程序在负责作业运行的同时提供I/O控制功能。通道:用于控制I/O设备与内存间的数据传输。启动后可独立于CPU运行,实现CPU与I/O的并行。通道有专用的I/O处理器,可与CPU并行工作可实现I/O联机处理中断是指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。中断处理过程:中断请求,中断响应,中断点(暂停当前任务并保存现场),中断处理例程,中断返回(恢复中断点的现场并继续原有任务可处理算术溢出和非法操作码,死循环(利用时钟中断进行超时限定)监督程序发展为执行系统(executivesystem),常驻内存单道批处理的主要问题CPU和I/O设备使用忙闲不均(取决于当前作业的特性)。对计算为主的作业,外设空闲;对I/O为主的作业,CPU空闲;1.2.4多道批处理系统(multiprogrammingsystem)60年代中~70年代中(集成电路),利用多道批处理提高资源的利用率。多道批处理的运行特征多道:内存中同时存放几个作业;宏观上并行运行:都处于运行状态,但都未运行完;微观上串行运行:各作业交替使用CPU;在当前运行的作业需作I/O处理时,CPU转而执行另一个作业。(I/O完成后是否立刻恢复执行?要等到其他程序再次I/O时)Job3Job2Job1OperatingsystemMemorypartitionsFigure1-4.Amultiprogrammingsystemwiththreejobsinmemory多道批处理系统的特点优点:资源利用率高:CPU和内存利用率较高;作业吞吐量大:单位时间内完成的工作总量大;缺点:用户交互性差:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;作业平均周转时间长:短作业的周转时间显著增长;批处理:交互性差--提高对CPU利用率;分时处理:用户与应用程序随时交互,控制程序运行,适于商业和办公事务处理--缩短响应时间1.2.5分时系统(time-sharingsystem)--70年代中期至今“分时”的含义分时是指多个用户分享使用同一台计算机。多个程序分时共享硬件和软件资源。多个用户分时:单个用户使用计算机的效率低,因而允许多个应用程序同时在内存中,分别服务于不同的用户。有用户输入时由CPU执行,处理完一次用户输入后程序暂停,等待下一次用户输入--时走时停前台和后台程序(foreground&background)分时:后台程序不占用终端输入输出,不与用户交互--现在的图形用户界面(GUI),除当前交互的程序(输入焦点)之外,其他程序均作为后台通常按时间片(timeslice)分配:各个程序在CPU上执行的轮换时间。分时系统的特点人机交互性好:在调试和运行程序时由用户自己操作。共享主机:多个用户同时使用。用户独立性:对每个用户而言好象独占主机。现在的许多操作系统都具有分时处理的功能,在分时系统的基础上,操作系统的发展开始分化,如实时系统、通用系统、个人系统等。AnApplicationMULTICS MULTiplexedInformationandComputingService1.2.6个人计算机PersonalComputerOperatingSystem
针对单用户使用的个人计算机进行优化的操作系统。个人计算机操作系统的特征应用领域:事务处理、个人娱乐,系统要求:使用方便、支持多种硬件和外部设备(多媒体设备、网络、远程通信)、效率不必很高。常用的个人计算机操作系统单用户单任务:MSDOS单用户多任务:OS/2,MSWindows3.x,Windows95,WindowsNT,Windows2000Professional多用户多任务:UNIX(SCOUNIX,Solarisx86,Linux,FreeBSD)1.2.7MINIX的历史多用户多任务,16/32/64位BSD,SVR4(模块式结构),OSF/1(微内核结构)
1965年:MIT的Multics,由于规模和进展而没有达到目标;1969年:AT&T,PDP-11上的16位操作系统;1974年:UNIX系统正式发表(第五版),在大学得到使用和好评;1980年:UniversityofCaliforniaatBerkeley为VAX11发表BSD4.0;以后,UNIX就以AT&T和Berkeley为主分别开发,有多种变种;1989年:UI(UNIXInternational)发表UNIXsystemVRes4.0;使BSD和SystemV在用户界面上统一;1991年芬兰大学生LinusBenedictTorralds开发了第一个Linux版本。1994年:Linux1.0Bell实验室早期UNIX和C加州大学伯克利分校BSD4At&T的系统VHP-UXAIXSolarisSCOUNIXLinuxMINIXMULTICS-UNIXUNIX(6)free莱昂氏源代码分析UNIX(7)notfree—toUniv,justmentionedthetheoryMINIXallthecodesaredifferentForthelimitationofMINIX(justforteaching)LinuxappearedRedhatUNIX系统的特点字符用户界面和图形用户界面GUI(XWindow)。抢先式多任务,多线程。支持动态链接。支持对称式多处理。虚拟存储:段页式,有存储保护。文件系统:多级目录,文件卷可以在子目录下动态装卸。无文件属性,可有别名。采用设备文件的形式(读写,参数控制)。设备驱动程序修改后需要重新编译连接生成内核。支持多种硬件平台。易移植:主要代码用C语言写成;变种很多,很难标准化。概念一:进程进程的创建和销毁过程示意图:
ABCDEFChild-processProcessInterprocesscommunicationRequestmorememoryReleasemorememoryWaitchildprocessterOverlayanotherprog……eg:Vector<int>m_VecProcessesandTasks>psPIDTTYTIMECMD2910pts/40:00tcsh>ps-efUIDPIDPPIDCSTIMETTYTIMECMDroot000Sep25?0:01schedroot100Sep25?0:00/etc/init-root200Sep25?0:00pageoutroot300Sep25?0:01fsflushroot22310Sep25?0:00/usr/lib/utmpdroot17910Sep25?0:00/usr/sbin/cronroot27310Sep25?0:00/usr/lib/saf/sac-t300root5610Sep25?0:00/usr/lib/devfsadm/devfseventdroot5810Sep25?0:00/usr/lib/devfsadm/devfsadmdroot10610Sep25?0:00/usr/sbin/rpcbindroot19710Sep25?0:01/usr/sbin/nscdroot10810Sep25?0:00/usr/sbin/keyservroot16810Sep25?0:00/usr/sbin/syslogdroot11810Sep25?0:00/usr/lib/netsvc/yp/ypbindroot15910Sep25?0:00/usr/lib/autofs/automountdTheInternalStructureofMinixMinixisstructuredinfourlayers.Userprocesses(Init)ServerprocessesI/Otasksandsystemtask(Disktask)ProcessmanagementProcessManagementinMinixBottomlayerofthestructure.Catcheshardwareinterruptsandsoftwaretraps.Performsscheduling.Handlesmessagesbetweenprocesses(checksforprotection,locatessendandreceivebuffers,copiesmessagesbetweensendersandreceiver’sbuffers.)概念二:文件文件的存在隐藏了OS与外设的交互细节,方便用户管理:如:读写我们的磁盘驱动器,我们只需要使用read(),write()这些函数,实际的交互,都是由OS的驱动来具体完成,程序员不用关心。当磁盘出错,相应的错误信息会通过OS里的系列错误返回代码返回,用户可以获得具体信息。早期的Linux在访问磁盘和光驱时,需要使用“mount”命令来挂装磁盘,访问的位置也是固定的:/mnt/floppy。Filesystem文件保护机制—Linux必会技能rwxr--r--=rwxr--r--r:readw:writex:execute(file)search(folder,directory)Owner(whocreatethedirectoryorfile)ThesamegroupusersTheusersofothergroups一个文件有的权限部有三组rwxrwxrwx
每一位只有两种可能:一种是这个位的权限如r另一种是-表是无此权限,所以可以用二制表示有和没有,但为简化所以chmod后而跟是8进制数,每个数代表属主属组和其它,r为4,w为2,x为1-为0,将每组中的三个要素的数字加到一起就是这个组的权限代数,每个权限与进制数的关系如下rwxrwxrwx
421421421也就是4+2+1=74+2+1=74+2+1=7所以最大权限是777
又如下面的权限就是660
rw-rw-
420420000
4+2=6,4+2=6,0
再如下面的权限是526
r-x-w-rw-
401020420也就是说想把一个文件的权限变成以上情况则输入chmod526filename;0751呢
但在此要说明一下,只是运行chmod的用户对此文件有w的权限才能重新设置文件权限。
root可设置任何文件的权限.Howtousemount/mnt/floppy/mnt/cdromitisthedefaultdirectoryformountfloppyandcd-rom,it’sfolder,andinsomelinuxsystems,thedefaultisempty,wecanaddfilesthere,butoncetherealdriverismounted,theoriginalfileswon’tbevisit,whenwechangeourfloppy,wehavetounmountthedisk,andremountthenewone.文件的另类存在设备文件Inlinux,inordertomaketheI/Odeviceslooksmorelikefile,thespecialappeared. blockspecialfiledisk characterspecialfileprinter,modem
由于设备文件就代表了整个设备,就可以使用标准命令直接操作设备文件,从而直接访问硬件设备。利用这种方式,能完成很多有用的工作,但是这种方式也非常危险,例如对硬盘设备文件的操作失误会破坏整个硬盘的数据。幸好大部分直接访问设备的操作都为读取相应数据的操作,而不需要写入磁盘设备。当某个设备不可使用,则其对应的设备文件也不能正常访问,因此直接访问设备文件可以判断对应的设备是否真正正常。例如,判断连接到第一个串口,ttyd0上的鼠标是否正常工作,使用命令“cat</dev/ttyd0”来查看ttyd0上的输入数据,如果连接的有鼠标且工作正常,那么在移动鼠标的同时屏幕上就会显示出接收到的杂乱数据。如果没有反应,说明鼠标工作不正确。但这也可能是其他程序接管了这个设备.文件的另类存在
管道文件Pipe连接两个进程的虚拟文件ABPipefileMore:sometimes,theoutputofaprocess
isacommonfile,sometimestheoutputisapipefile,wehavetousespecialsystemcalltodistinguishthem.概念三:ShellEditors、compilersassemblerslinkersinterpretersnotbelongtoOS,butfromthem,wecouldfamiliarwiththeOS.#/bin/shShellacommandinterpreter manycommandthere,wewillfamiliarwiththemlater.Eg:ShXXX.shchangeit’sproperty,andrunit概念四:系统调用SystemCall系统调用是操作系统提供给软件开发人员的唯一接口,开发人员可利用它使用系统功能。OS核心中都有一组实现系统功能的过程(子程序),系统调用就是对上述过程的调用。Forcomputer’sdifferenttype,thesystemcallaredifferent,andalmostallthebasicfunctionsareprogrammedbyassemblerlanguage.Eg:CallreadfunctioninClanguage. count=read(file,buffer,nbytes); file:thefileweareoperateon; buffer:thebufferareaweareusing; nbytes:thebyteswewillread. (sometimes,thecountmaylessthennbytes)SystemCallofMinixSixParts.Processmanagement .Signals.Filemanagement .Directory&FilesSystemManagement.Protection .TimeManagementInMinx:Anyfilehasanonlyidtoidentifyit,andanyfilehasani-node,ittelluswhoownsthefile,andwherethediskblocksare.Thedirectoryisafile,itstoredthei-nodeandfilename,nowbacktoourlink:16814030705938Mailgamestestbinmemof.cprog1Beforeweuselink/usr/ast/usr/jim1681407030705938Mailgamestestnodebinmemof.cprog1Afterweuselink/usr/ast/usr/jimMount:mount(“/dev/fd0”,“/mnt/”,0)bindevmntlibbindevmntlibCacheTomakethefilecouldbevisitedmorequickly,almostalltheOSdesignacache,similarwiththecacheofourCPU.Advantage: improveit’sspeed.Disadvantage: mayleadtocrash. resaon: howtoavoidtheprob:CacheCPUDirTable1.5操作系统的架构通过分析操作系统的系统调用来分析操作系统的大概架构发展过程:这里将介绍四种架构:**Monolithicsystems—整体式**Layeredsystems分层式**Virtualmachines虚拟机**Client-servermodel客户-服务机模型1.51MonolithicSystemsInthistechnique:eachprocedureinthissystemhasawell-definedinterfaceintermsofparametersandresults.eachoneisfreetocallanyotherone.Howtorealizethis:compilesalltheindividualprocedures,andthenbindsthemtogethertoasingleobject.Eachprocedureisvisibletoallothers.Userprogram2Userprogram1Kernelcall3421ServiceProcedureDispatchtableUserprogramruninusermodeOperatingsystemruninkernelmodeHowitworks1.Userprogramtrapstothekernel
useankernelcallorsupervisorcall2.Operatingsystemdeterminesservicenumberrequired
fromtheparameterstochecktheservicenumber3.Operatingsystemcallsserviceprocedure
checkdispatchtable,ensuredthesyscall4.Controlisreturnedtouserprogrambacktousermode,returnthevaluesSimplify-WhatweneedwhendesignanOS?
**Amainprograminvokestherequestedserviceprocedure;(3)**Asetofserviceprocedurescarryoutthesystemcalls;(2)**Asetofutilityprocedureshelptheserviceprocedures.MainProcedureServiceProcedureUtilityProcedure1.52LayeredSystemsComparewiththeprepic,itlookslikeasimplifiedlayeredsystem,eachlayerservesforit’supperlevel,andifweaddmoredetailsthere,wewillgottheTHE.DijkstraandhisstudentsdesignedthesystemforElectrologicaX8--1968TheTHEisofsixlayers,eachlayerchargeofit’swork,andserveforupperlayers.Wheninthislayer,weneedn’tcaremoredetailofotherlayers.LayerFunction543210TheoperatorUserprogramsInput/outputmanagementOperator-processcommunicationMemoryanddrummanagementProcessorallocationandmultiprogrammingLayersofTHELayer0:providedthebasicmultiprogrammingoftheCPU;Layer1:didthememorymanagement;Layer2:handledcommunicationbetweeneachprocessandoperationconsole;Layer3:Input/OutputmanagementLayer4:UserprogramsLayer5:TheoperatorBut!!!Alltheselayersjustthedesignaid,infact,allthepartsareultimatelylinkedtogetherintoasingleobjectprogram.InMULTICSLayersisreplacedbyconcentricrings,andeachringdiddifferenttotheothers,soitismorepopular,andsystemcallhasmorestrictcheckontheirparameters.InnerringhashigherprivilegethethebiggeronekernelOperatorProgr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论