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

上传人:za****8 文档编号:15805347 上传时间:2020-09-07 格式:PPT 页数:22 大小:104.52KB
收藏 版权申诉 举报 下载
《UNIX内核分析》PPT课件.ppt_第1页
第1页 / 共22页
《UNIX内核分析》PPT课件.ppt_第2页
第2页 / 共22页
《UNIX内核分析》PPT课件.ppt_第3页
第3页 / 共22页
资源描述:

《《UNIX内核分析》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《UNIX内核分析》PPT课件.ppt(22页珍藏版)》请在装配图网上搜索。

1、UNIX 内核分析(2),参考教材: UNIX操作系统教程 尤晋元 西安电子科技大学出版社,软中断(1),软中断是Unix系统提供的进程间通讯的一个机构,进程间可以利用其发送少量信息,并作适当处理; 同组之间可以通过37#系统调用kill相互发送软中断信号 S5提供了19种软中断信号,13个具有标准名字的约定,终端类型号0解释为“没有中断” 相关结构: p-sig:进程接收的信号类型数 u-signalNSIG:软中断处理程序入口表,20个元素,软中断(2),发送软中断信号,按信号类型设置p-sig的某一位;如果接受进程睡眠在可被中断的优先级上,则唤醒 当一个进程从核心态返回用户态,或者进入/

2、离开低优先级睡眠时,核心态检查其是否收到软中断信号;而仅当进程从核心态返回用户态时,核心才处理软中断 进程在核心态运行时,软中断不会立即起作用,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();测试软中断信号,若收到不可忽略信号,返回真; 否则,返回假。,软中断处理入口表u-signalNSI

3、G,根据表项中元素不同值,有三种信号处理方式 值为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-err

4、or=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#系统调用ki

5、ll(pid,sig)进行信号传送 用户在终端输入“DELETE”等,终端中断处理程序将信号SIGINT/2等发送到与终端有关的所有进程 进程使用管道pipe通信,发现读通道已经关闭,则向本进程发送SIGPIPE/13信号 父进程对接收到一个信号的子进程跟踪处理时,可用跟踪命令箱子进程发送一个信号,PDP-11内存管理机构,Unix S5思想: 分页, 支持内存、外存之间的进程对换 支持请求调页的存储管理,PDP-11虚地址字,字长16位,每个进程的最大程序地址空间216=64KB CPU总线寻址能力18位/256KB。其中:最高8KB固定为I/O页,所以内存最大容量为248KB 程序16位地

6、址称为虚地址, 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) 页地址寄存器PAR PAF:表示虚地址空间中相应页在内存地址,单位是内存字符块 寻址范

7、围: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),

8、存取信息位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左

9、) 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-

10、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由su

11、reg()完成,u-uisa,存储资源管理表,可用存储区表 Unix对内存、盘交换区存储资源分配和释放使用同一算法 设置2个数组表示内存/盘交换区可用存储区情况 int coremapCMAPSIZ int swapmapSWAPSIZ 2个数组一般皆为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,可以限定进程的访问长度和访问方式,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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