电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

UNIX内核分析PPT课件

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

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

UNIX内核分析PPT课件

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

注意事项

本文(UNIX内核分析PPT课件)为本站会员(石磨)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

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




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.