请求分页管理方式(中断 && 缺页中断)

目录

关于中断(不管是内中断还是外中断)(先补充)

页表机制

缺页中断机构(缺页中断)

关于内中断外中断

​编辑

地址变换机构

关于中断(不管是内中断还是外中断)(先补充)

请求分页管理方式(中断 && 缺页中断)_第1张图片

我们把(9步)中断分成三部分。产生中断是一部分,执行中断处理程序是一部分,执行完返回继续运行程序是第三部分。

关于上图:

保存断点:就是为了中断后能返回继续运行(就是程序计数器(pc))。

引出中断处理程序:就是每个中断要执行的程序。(是读取,并不是执行,待会去执行)

保存现场和屏蔽字:保存中断前程序的上下文数据(寄存器里面的数据)

对于关中断和开中断:就是cpu在运行的时候,可能并不止目前这一个中断,并且中断的级别可能不一样,这里的关中断就是指 当前cpu不响应更高级别的中断请求。(硬件实现的,中断引指令 -- 了解)

执行中断服务程序:之前是读取,在这里就是执行。而且目前是开中断,也就是说cpu在执行中断服务程序是可以并发去响应其他的中断的。

页表机制

请求分页管理方式(中断 && 缺页中断)_第2张图片

状态位:表示当前页是否已经调入内存。
访问字段:用于记录一段时间内这个页被访问的次数。(后面页面置换算法,需要换入据时,可以参考访问字段决定换出页)
修改位:此页调入内存是否修改。

缺页中断机构(缺页中断

请求分页管理方式(中断 && 缺页中断)_第3张图片

缺页中断机构:由于程序执行的时候,要访问的page,在内存中不存在,就要从外存中调入,此时会产生一个中断,这个中断是由缺页导致的,所以叫做缺页中断。(产生中断后,cpu先去响应中断,保存当前进程的上下文数据,然后转入到缺页中断处理程序,最后恢复cpu环境)(中断操作9个步骤) 

缺页中断处理程序:

请求分页管理方式(中断 && 缺页中断)_第4张图片

请求分页管理方式(中断 && 缺页中断)_第5张图片 把外存的数据加载进内存(同时填充页表)(状态位置为1)
当然缺页中断不止可以把却的数据调入进内存,也可以把不要的数据调出内存,比如:

请求分页管理方式(中断 && 缺页中断)_第6张图片根据页面置换算法选择丢弃2号页,发生缺页中断 

请求分页管理方式(中断 && 缺页中断)_第7张图片此时把C号块的数据放到Z号块,C号块制空。
修改位:一般情况,页面调入内存中,很快就会被修改(这里不用管)。 

PS:缺页中断属于内中断(程序运行中发生的中断都是内中断)(缺页中断由硬件提供支持)


关于内中断外中断

请求分页管理方式(中断 && 缺页中断)_第8张图片

地址变换机构

请求分页管理方式(中断 && 缺页中断)_第9张图片

你可能感兴趣的:(操作系统,嵌入式硬件,单片机,中断,缺页中断,内存管理)