欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载
     

    《UNIX内核分析》PPT课件.ppt

    • 资源ID:5454201       资源大小:215.99KB        全文页数:22页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《UNIX内核分析》PPT课件.ppt

    UNIX 内核分析(2),参考教材:UNIX操作系统教程 尤晋元西安电子科技大学出版社,软中断(1),软中断是Unix系统提供的进程间通讯的一个机构,进程间可以利用其发送少量信息,并作适当处理;同组之间可以通过37#系统调用kill相互发送软中断信号S5提供了19种软中断信号,13个具有标准名字的约定,终端类型号0解释为“没有中断”相关结构:p-sig:进程接收的信号类型数u-signalNSIG:软中断处理程序入口表,20个元素,软中断(2),发送软中断信号,按信号类型设置p-sig的某一位;如果接受进程睡眠在可被中断的优先级上,则唤醒当一个进程从核心态返回用户态,或者进入/离开低优先级睡眠时,核心态检查其是否收到软中断信号;而仅当进程从核心态返回用户态时,核心才处理软中断进程在核心态运行时,软中断不会立即起作用,psignal(p,sig),将信号sig发给指定进程;PZEROparam.h,为25Register sig;register struct proc*p;sig-if(sig=NSIG)return;pp-sig|1LPZERO)/*p在可被中断优先级睡眠 setrun(p);/*运行指定进程,或调入/必要时Issig();测试软中断信号,若收到不可忽略信号,返回真;否则,返回假。,软中断处理入口表u-signalNSIG,根据表项中元素不同值,有三种信号处理方式值为0:处理方式为终止本进程;值为奇数:对该信号不作处理;值为非零偶数:表示信号处理程序入口地址。u-signalNSIG表中各元素的值可通过48#系统调用signal(sig,func)预制,其处理程序是ssig()NSIG=20:0-19 sig:信号类型号,保存在u-arg0 func:对该信号的处理方式,保存在u-arg1 对于信号SIGKIL/终止进程,func不能设置,信号处理方式预制程序,ssig()register a;a=u.u-arg0;/*取参数sig if(a=NISG|a=SIGKIL)u.u-error=EINVAL;/*非法参数 return u.u-ar0R0=u.u-signala/*保存原先处理方式 u.u-signala=u.u-arg1;if(u.u-procpp-sig=a)/*如果以前已经收到该信号 u.u-procpp-sig=0;/*处理方式已改变,清除原收到信号,signal(sig,func),用户通过该系统调用实现预制例如:signal(2,1);将u-signal2设置为1/奇数实现不理会2号类型软中断的设置,信号产生的5种情况,陷入处理子程序trap中,用户态下产生各种故障,除电源失败等外,按照类型转换成信号进程间通过37#系统调用kill(pid,sig)进行信号传送用户在终端输入“DELETE”等,终端中断处理程序将信号SIGINT/2等发送到与终端有关的所有进程进程使用管道pipe通信,发现读通道已经关闭,则向本进程发送SIGPIPE/13信号父进程对接收到一个信号的子进程跟踪处理时,可用跟踪命令箱子进程发送一个信号,PDP-11内存管理机构,Unix S5思想:分页,支持内存、外存之间的进程对换支持请求调页的存储管理,PDP-11虚地址字,字长16位,每个进程的最大程序地址空间216=64KBCPU总线寻址能力18位/256KB。其中:最高8KB固定为I/O页,所以内存最大容量为248KB程序16位地址称为虚地址,64KB分成8页,8KB/页每页划分为128个字符块,64B/块由于程序可以小于64KB,有些页可能局部/完全空白空白部分留作扩展使用系统按照实际使用页长分配内存,虚地址字划分结构,内存管理寄存器(1),PDP-11设置了2组32位活动页寄存器APR,8个/组,分别保存进程核心态/用户态下内存使用情况32位APR可分为2个16位的寄存器,分别为页地址寄存器PAR(page address register)页说明寄存器PDR(page description register)页地址寄存器PARPAF:表示虚地址空间中相应页在内存地址,单位是内存字符块寻址范围:0-(212-1)*64,即0-(256K-64)字节,0,11,15,12,内存管理寄存器(2),页说明寄存器PDR/上图 存取控制字段ACF(access control field):说明对该页的存取控制权限 00:不驻在内存 01:read only 10:未用 11:R/W 扩展方向位:ED(extend)如果某页实际使用小于128块(8KB),则ED说明空白部分在高/低地址一侧,即扩展时的扩展方向。ED=0:高地址一侧;ED=1:低地址一侧 例如:Unix系统中,共享代码段/数据段:ED=0;栈段:ED=1,0,1,2,3,6,8,14,15,内存管理寄存器(3),存取信息位W-修改位W=1,表示修改过页长字段PLF:说明虚页的实际使用长度,1128块如果ED=0/向高地址方向扩展:则PLF=实际使用长度-1;例如:实际使用长度为128,则PLF=127如果ED=1:则PLF=128-实际使用长度;例如:实际使用长度为128,则PLF=0用补码表示实际使用长度PLF值表示在相应扩展方向上该虚页实际使用的最末块块号,便于越界检查,虚地址到物理地址转换,总线寻址能力为18位,形成256KB的物理地址,0,5,6,17,0,11,+,找对应页的PAR,Unix存储管理,PDP-11进程可访问的地址空间为64KB进程在核心态下的虚拟地址空间(图1左)Unix核心代码长度不超过48KB/6页,占0-5页进程在用户态下的虚拟地址空间(图2右/举例),0-5页,6页,7页,共享正文段2.5页,数据段2.25页,栈段0.5页,虚/实地址映照,Unix分别用KISA(0-7)和KISD(0-7)存放核心态下进程内存使用情况KISA类似PAR/页地址寄存器KISD类似PDR/页说明寄存器用户态下现行进程内存使用情况分别用UISA/UISD存放KISA/KISD(0-5)和KISA/KISD(7)在系统初启后就固定,不再变化;KISA/KISD(6)总是指向当前运行进程的ppda区从KISA6指向的ppda区user结构中可以得到u-procp,它指向当前运行进程的proc,用户态虚/实地址映照,以前面幻灯片图2数字为例,UISA,UISD,ta 是进程共享正文段在内存的起始地址da 是进程数据段在内存的起始地址:da=p-addr+16,内存空间,ta,da+352,虚/实地址映照,UISA/UISD只有一组,保存当前运行进程页表表目;其他进程页表表目保存在user(u-uisa/u-uisd16)u-uisd内容与UISD完全相同;而u-uisa内容则略有区别,它是假设ta、p-addr皆为0而构造的。见右u-uisa/u-uisd由estabur()创建u-uisa/u-uisd-UISA/UISD由sureg()完成,u-uisa,存储资源管理表,可用存储区表Unix对内存、盘交换区存储资源分配和释放使用同一算法设置2个数组表示内存/盘交换区可用存储区情况 int coremapCMAPSIZ int swapmapSWAPSIZ2个数组一般皆为100个元素,每2个元素构成一个表目项,共各有50个表目项,每个表目项描述:Struct map char*m-size;/*空闲区长度 char*m-addr;/*空闲区起址;各空闲区按起始地址从高到低顺序登记在可用存储区表中,m-size为0的表项为空白表目,集中在表的后部,存储资源管理,存储分配:first fit/malloc(mp,size)mp:coremap/swapmap存储释放:mfree(mp,size,释放区起址),存储保护,虚/实映射机构基本上使各进程相互隔离,达到保护各进程占用独立的存储区,且不会重叠进程在核心态、用户态下运行使用不同的管理寄存器,且用户进程无权修改寄存器值,不可能破坏操作系统核心态进程可使用系统提供的特权指令mtpi、mfpi(向当前运行状态存储空间存、取指令信息)对现行运行进程的用户态空间进行操作通过KISD/UISD中页长字段PLF,以及存取控制权限ACF,可以限定进程的访问长度和访问方式,

    注意事项

    本文(《UNIX内核分析》PPT课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开