




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十三章UNIX操作系统,历史回顾(HistoricalPerspective)系统结构(SystemStructure)进程管理(ProcessManagement)存储管理(MemoryManagement)文件系统(FileSystem)设备管理(DeviceManagement)系统调用(SystemCalls)外壳语言(Shell),13.1历史回顾,1969年由美国Bell实验室的两名程序员K.Thompson和D.M.Ritchie设计;最初该系统是采用汇编语言编写的.incorporatedfeaturesofotheroperatingsystems,especiallyMULTICS.后来二人专门为UNIX设计了C语言,并用它重新改写了UNIX中的大部分源代码,形成第三版.,13.1历史回顾,在70年代初期,UNIX在Bell实验室及许多大学中获得了广泛的应用,这也促进了UNIX系统的进一步发展.1973年推出第五版1976年推出第六版1978年第七版正式发行.由于UNIX结构良好,并被迅速地移植到Interdata8/32及VAX等机器上,第1版(1971),第3版(1973),第6版(1975),第7版,第8版,第9版,SVR4(1989),IBMAIX,SystemIII(1982),SystemV(1983),SVR2(1984),SVR3(1987),1BSD(1978),2BSD(1978),3BSD(1979),4.0BSD(1980),4.4BSD(1993),SunSolaris,第10版,发展与版本:,BellLab:,USG:,Berkeley:,13.2系统结构,路由选择,终端,终端,UNIX系统组成,系统进程(#0,#2),系统调用(中断,trap),内核部分,内核由两类模块构成被动的,即普通模块主动的,即进程模块普通模块进程控制文件管理存储管理设备管理原语管理中断处理处理机管理系统初启,内核部分,进程模块process#0交换进程(sched)process#1初始进程(init)Process#2虚拟页面调度进程系统进程,运行操作系统核心程序,完成操作系统的某些功能.哪些模块作为系统进程?无限循环程序,没有调用也要执行,外壳部分,外壳部分运行命令解释程序,读入、解释并处理终端用户键入的命令.将命令解释程序由操作系统核心中分离出来的好处在于:缩减操作系统内核的规模不同用户可以使用不同的外壳Shell可以编程,13.3进程管理,进程组成进程控制块进程状态与状态转换进程调度进程互斥进程同步进程通讯,13.3.1进程组成(映像),Proc结构,Text结构,系统空间,用户空间,User结构,系统栈,进程堆栈,进程数据,进程代码,常驻内存部分,内外存交换部分,系统空间,13.3.2进程控制块,Proc结构所保存的信息无论当进程在内存时还是在外存时都是需要的.User结构所保存的信息仅当进程在内存时才是需要的,因而可以与进程的程序一起被移到外存.,structproccharp_stat;charp_flag;charp_pri;charp_sig;/signalreceivedcharp_uid;/useridcharp_time;/residenttimeforschedulingcharp_cpu;/cpuusagecharp_nice;/niceforschedulingcharp_ttyp;/controllingttyintp_pid;/uniqueprocessidintp_ppid;/parentprocessidintp_addr;/addressofswappableimageintp_size;/sizeofswappableimage(*64bytes)intp_wchan/eventprocessiswaitingint*p_textp;/pointertotextstructureprocNPROC;,structuserintu_rsav2intu_fsav25charu_uid;/effectiveuseridcharu_gid;/effectivegroupidcharu_ruid;/realuseridcharu_rgid;/realgroupidintu_procp;/pointertoprocstructureint*u_base;/baseaddressforIOint*u_count;/bytesremainingforIOint*u_offset2;/offsetinfileforIOint*u_cdir;/pointertoinodeofcurrentdirint*u_pdir;/inodeofparentdirectoryintu_uisa16;/prototypesegmentationaddress,intu_uisd16;/prototypesegmentationdescriptintu_ofileNOFILE;/pointerstofilestructintu_arg5;/argumentstosystemcallintu_tsize;/textsize(*64)intu_dsize;/datasize(*64)intu_sszie;/stacksize(*64)intu_utime;/thisprocessusertimeintu_stime;/thisprocesssystemtimeintu_cutime2;/childprocessusertimeintu_cstime2;/childprocesssystemtime,structtextintx_daddr;/diskaddressofsegmentintx_caddr;/coreaddressifloadedintx_size;/*64int*x_iptr;/inodeofprototypecharx_count;/referencecountcharx_ccount;/numberofloadedreferencestextNTEXT,相关函数:fork()execl()exit()swapinswapout,13.3.3进程状态及其转换,p_statedefinenull0defineSSLEEP1defineSWAIT2defineSRUN3defineSIDL4defineSZOMB5defineSSTOP6,p_flagdefineSLOAD01defineSSYS02defineSLOCK04defineSSWAP010defineSTRC020defineSWTED040,Subsetof:p_statep_flagsystemmode,中断,返回,进程状态及其转换,换出,结束跟踪,结束跟踪,换入/出,换出,唤醒,fork,处理机分派,跟踪,等待,终止,置PSW,SRUNLOADuser,SRUNLOADkernel,SIDL,中断,睡眠,换出,唤醒,内存够,内存不够,SZOMB,SSLEEPLOAD,SWAITLOAD,SRUNLOAD,SSTOPLOAD,SSLEEPSWAP,SWAITSWAP,SRUNSWAP,SSTOPSWAP,唤醒,结束跟踪,唤醒,结束跟踪,13.3.4进程调度,调度策略DynamicPrioritybased(Lownumberhighpriority)PreemptiveAging(nostarvation)调度算法USER:100p_cpu:运行进程,每20ms加1;其它进程,每1200ms减10p_nice:系统调用nice(n).用户进程:020,系统进程:-2020;,进程调度实现,进程P(用户态),进程P(核心态),进程(核心态),进程(用户态),中断,中断处理调度(P下降,Q上升)上下文切换(PCB),返回,(psw,pc)系统栈,系统栈psw,pc寄存器,13.3.5进程互斥,经典UNIX系统机制关中断互斥(提高处理机优先级)特点简单没有忙等,开销小只在单CPU环境中有效影响并发性关中断后代码很短,13.3.6进程同步,事件同步:当一个进程因某种原因不能继续运行时,它便等待在某一个事件上,即将等待事件记在p_wchan变量上,进入SWAIT或SSLEEP状态当对应事件发生时,系统唤醒等待于该事件上的所有进程竞争条件:事件发生可能先于等待,错过等待条件.事件将被丢失.忙式等待被唤醒进程可能再次等待,13.3.7进程通讯,信号(signal)FromprocesstoprocessFromeventtoprocess管道(pipe)UnnamedfileNamedpipesocket通讯EndpointcommunicationSuitablefornetwork,FewUNIXsystemspermittedsharedmemorybecausethePDP-11hardwaredidnotencourageit,信号(signal),特点简单信号(类似软中断,共20个)异步通讯信号来源异步事件keyboardinterrupt,error,timer,etc.进程,系统调用(如kill)fromprocesstoprocess,orfromterminaltoprocess使用信号处理程序的定义信号的发送与接收信号的处理,信号(signal),信号处理程序的定义系统调用signal(sig,func)预置,其中sig为019的信号值,func为处理程序的地址该系统调用的作用是u_signalsig=func.当func为0时接收信号进程终止自己;当func为奇数时忽略信号;func为偶数时为处理程序入口进程初创时自动继承其父进程的信号处理程序,信号(signal),信号的发送与接收进程实际接收到的信号被记载在p_sig中由于p_sig常驻内存,因而在任何时刻均可接受到信号.信号可能来自进程,也可能是事件,如键盘中断信号、错误、定时器处于等待状态的进程在接收到信号后一般将被唤醒,信号(signal),信号的处理接收到信号的进程在适当时刻(被调度选中由核态转到目态),发现p_sig中记录有接收到的信号,根据u_signalp_sig的值确定对信号的处理.核心栈PC目态栈核心栈PSW,u_signalp_sig寄存器接收信号的进程也可以忽略信号(u_signalp_sig=奇数).对多数信号的缺省处理动作是终止收到信号的进程.信号很象允许用户程序在目态处理的中断.,管道(Pipe),特点经典UNIX最有特色的通讯机制;单方向,流式通讯;建立在文件基础上,与文件界面统一;实现极为简练;速度问题:为防止两次I/O传输限制pipe文件大小(4块)缓冲技术延迟写,管道(Pipes),使用方法:先创建管道,再创建进程继承intfd2;pipe(fd)p1=fork();p2=fork();p1:write(fd1,);p2:read(fd0,),套接字(socket),端-端通讯机制(endpointendpoint)类型StreamsocketsSequencedpacketsocketsDatagramsocketsReliablydeliveredmessagesocketsRawsockets,套接字(socket),地址域使用中的socket与一地址相联系地址的形式由通讯域(communicationdomain)确定.同一域中的进程使用相同地址格式addressformat4.3BSD域UNIXdomain(AF_UNIX)theInternetdomain(AF_INET)theXEROXNetworkService(NS)domain(AF_NS),13.4存储管理,经典UNIX存储管理一个进程两个对界Text(共享)Data(私用)内外存不同尺寸,同一管理程序(FF算法)Core:64bytesswap:512bytes交换技术swapping,13.4.1存储管理方式,采用界地址存储管理方式一个进程由两个对界组成,即占有两个连续的内存区域一个区域用于保存共享代码另个区域用于保存私用数据及用户堆栈存储分配的基本单位是64个字节,而不是单个字节,13.4.2存储分配算法,内存空间及外存交换区的分配均是动态的,分配算法为最先适应(FF).描述内存空间及外存空间分配状况各需有一个数据结构.内存的分配与外存的分配共用同一个程序.,13.4.3进程空间扩充,堆栈分配基本长度,避免浪费堆栈溢出动态扩展申请一个新的数据区(原区域大小增加大小)复制释放原有区域内存不够交换到外存(同时扩展空间)释放所占内存再次由sched调入内存时,按新长度,13.4.4交换技术(swapping),交换目标:缓解内存紧张矛盾交换进程:sched(#0)交换算法移入外存中SRUN状态进程如内存不够,选择移出内存中处于SWAIT或SSTOP状态进程如还不够,选择移出内存中处于SSLEEP或SRUN状态进程,条件待移入进程在外时间=3秒待移出进程在内时间=2秒,13.4.5虚拟页式(Paging),4.3BSDUNIX:demand-paging+swapping主要依赖(firstpaging)其次是交换(secondaryswapping).偷页进程(Pagestealerprocess)动态跟踪并调整进程页架数基于工作集模型(workingsetmodel).Iftheschedulerdecidesthatthepagingsystemisoverloaded,processeswillbeswappedoutwholeuntiltheoverloadisrelieved.,页面置换,pagedaemonprocessUsesamodifiedsecond-chancepage-replacementalgorithm.Secondchance:avariantofNUR.,8/1,1/0,2/0,6/1,4/1,5/0,7/0,3/1,Setpage3,4referencebitto0,replacepage5,0,页面置换,pagedaemonprocessUsesamodifiedsecond-chancepage-replacementalgorithm.Secondchance:avariantofNUR.,8/1,1/0,2/0,6/1,4/1,5/0,7/0,3/1,Setpage3,4referencebitto0,replacepage5,0,0,页面置换,pagedaemonprocessUsesamodifiedsecond-chancepage-replacementalgorithm.Secondchance:avariantofNUR.,8/1,1/0,2/0,6/1,4/1,5/0,7/0,3/1,Setpage3,4referencebitto0,replacepage5,1,0,0,13.5UNIX文件系统,文件类型文件体系文件结构文件目录文件系统映射文件卷安装磁盘空间管理Inode区管理快速文件系统NFS文件系统,13.5.1文件类型,普通文件内容可以是程序、数据、图象等,保存在磁盘块中目录文件(文件名,文件号)序列,保存在磁盘块中特殊文件设备设备作为文件管理的好处界面统一,使用文件与使用设备命令相同,申请设备open,释放close,读read,写write利用文件保护功能可以保护设备,13.5.2文件体系,基本结构:树型系统目录,系统文件用户目录,用户文件连接(link)不是真正的树,而呈格结构连接方便文件共享,13.5.3文件结构,逻辑结构流式文件,字节序列读写命令中包含字节数read(fd,buf,count)其中count为传输字节数模拟记录式文件物理结构直接与间接0级,1级,2级,3级间接寻块,13.5.4文件目录与连接,目录项相当FCB次部形式为(文件名,文件号)Inode相当于FCB主部每个inode有一个i_number多个文件名对应同一个i_number(连接共享),连接实现,link(“/users/wang/d1/f1”,“/users/li/f2”),d1,read(4,),read(4,)write(2,),用户空间,u_ofile,u_ofile,file,i_node,磁盘空间,系统空间,.,数据块,.,i_list,13.5.5文件系统映射,相关表目,1.u_ofile(每进程一个)structuserintu_ofileNOFILE;#defineNOFILE15,2.file(系统一个)structfilecharf_flag;/R,W,PIPEcharf_count;intf_inode;char*f_offset2;fileNFILE#defineNFILE100,3.Inode表(系统一个)structinodeinti_flag;chari_count;chari_dev;chari_number;chari_mode;chari_nlink;chari_uid;chari_gid;chari_size0;char*i_size1;inti_addr8;inti_lastr;inodeNINODE;,表间联系:u_ofilefile(n)(1)fileinode(n)(1),相关表目,13.5.6文件卷的安装,mount:用一个文件卷的根目录取代一个已经存在的空目录节点,UNIX文件卷,超级块,块1#(superblock):(1)记载文件卷上k+1块到n-1块中所有空闲块,(2)inode区中100个空闲inode.(缓冲)文件安装(mount)后超级块读入内存。注:占用区域已经记载在各个文件的inode中。,Structfilesysints_isize;/sizeinblocksofilistints_fsize;/sizeinblocksofentirevolumeints_nfree;/numberofincorefreeblocksints_free100;/incorefreeblocksints_ninode;/numberofincoreIlistints_inode100;/incorefreeInodeschars_flock;/freelistlockingchars_ilock;/ilistlockingchars_fmod;/superblockmodifiedflagchars_ronly;/mountedreadonlyflagchars_time2;/currentdateoflastupdateintpad50;,超级块结构(安装后读入内存,卸下时回写磁盘),13.5.7磁盘空间管理:100个空闲块为一组,组之间相互链接。,.,.,.,.,特点:速度快,空间省。,13.5.8空闲inode管理:s_inode最多可以记载100个空闲inode(编号)申请时:(1)s_ninode0,取s_inode-s_ninode;(2)s_ninode=0,由磁盘inode区顺取100个空闲I节点(i_nlink=0)将其编号填入s_inode表中,修改s_ninode,然后分配。释放时:(1)s_ninode100,s_inodes_ninode+=i_number(释放的);(2)s_ninode=100,丢弃。,13.5.9快速文件系统,经典UNIX文件系统Inode区与内容存储区相分离查找速度慢(引臂在inode区与块存储区之间往复移动,尤其长路径名)文件长度大于5120字节:间接寻块文件名长度14字节以内FastFileSystem(FFS)1984UCBerkeley被许多现代UNIX采用,包括4.3BSD效率提高一个数量级,13.5.9快速文件系统,快速文件系统FFS将磁盘卷划分为若干个柱面组(cylindergroup),每个柱面组占若干连续的柱面,作为相对独立的文件卷管理FFS采用较大的磁盘块以减少I/O间址并提高I/O效率(达8KB)FFS打破了文件名长度最多为14字节的限制,文件名长度可达255字节FFS支持符号连接(symboliclink),这种连接可以跨文件卷或主机,符号连接(symboliclink),硬连接(hardlink)局限性:只能连接普通文件不能跨文件卷软连接(softlink)可以连接目录文件可以跨文件卷,或主机,符号连接,Li(cd,当前目录),d5,d3,d2,d1,d4,f1,f2,s,i_number=15,d1/d2/d4/f1是一已存在文件link(“d1/d2/d4/f1”,”d1/d2/d3/f2”)建立一个硬连接lnsd1/d2/d4d5/s建立一个软连接,s的内容为d1/d2/d4d5/s/f1为i_number=15的文件以后执行unlink(“d1/d2”)s自动失效,13.5.9快速文件系统,UNIX4.3BSD柱面组,数据块,数据块,Superblock,Cylinderblock,Inode,13.5.10NFS网络文件系统,NFS体系结构每个站点相对独立文件目录树不同站点目录树之间可以安装协议远程安装协议(不透明)远程存取协议(透明)NFS实现UNIX界面VFS层,远程安装
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山西同文职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年山东力明科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年宝鸡职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 剖宫产主要治疗及护理措施
- 老年延续护理服务
- 2016交通安全课件
- 单肺通气的麻醉管理
- 记24小时出入量
- 剖腹产产后护理
- AFP知识培训课件
- 宪法与银行业务
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 换热器设计说明书
- 医院科研课题申报伦理审查申请及审批表
- 解读财务报表-三张主表课件
- 工程管理工程项目管理模式和发展趋势课件
- 启备变教学讲解课件
- 一般检查头颈部课件
- 质保体系复习题 2
- DB11-T 3032-2022水利工程建设质量检测管理规范
- 道路标线标识检验批质量验收记录
评论
0/150
提交评论