首页 > 试题广场 >

若用户进程访问内存时产生缺页,则下列选项中,操作系统可能执行

[单选题]

若用户进程访问内存时产生缺页,则下列选项中,操作系统可能执行的操作是()。
I.处理越界错 II.置换页 III.分配内存

  • 仅 I、 II
  • 仅 II、 III
  • 仅 I、 III
  • I、 II 和 III
当CPU发现所请求的内存地址中没有指令,就会发出缺页中断。
答案1:处理越界,很显然只有已经加载到内存的数组或其他单元才可能出现访问越界的情况,而发生缺页中断,说明还没有把数据装载到内存
答案2:发生缺页后,首先检查内存单元是否有空闲页,如果没有,操作系统会根据页面置换算法将一部分页面置换出去,然后将缺页数据置换进来。如果有,就会发生答案3的情况,直接将数据置换到内存

编辑于 2016-11-23 20:06:27 回复(1)
在处理逻辑地址,先对逻辑地址求页号,若页号大于用户空间的最大页号,则发生越界中断,就此结束不会判断是否缺页。若页号合理,则会进行对是否缺页按照相应的调度算法,置换页面或者分配内存。综上,发生缺页时,说明地址合法,不存在越界,当然就不会了去越界处理了
发表于 2018-03-05 20:10:02 回复(1)
只有已经加载到内存的数据或单元才可能越界现象,而缺页中断时还没有加载到内存
发表于 2016-12-10 18:32:07 回复(0)
如果调页时逻辑地址中的页号超过页表的范围会产生越界中断,改过程由硬件完成。并不是操作系统的任务。所以I错
发表于 2020-06-08 00:09:45 回复(0)
在判断缺页前首先就会判断是否越界
发表于 2018-09-05 10:01:28 回复(0)
原因很简单,就是上面老哥说的越界中断的处理是硬件完成的,不是OS。
至于地址转换发生的时机,应该是发生在缺页处理的过程中。
分析过程:
缺页,说明系统采用的是请求分页式管理,属于非连续分配管理,那么它肯定使用的是动态重定位的方式进行地址转换。而动态重定位是在程序运行时才进行地址转换,现在缺页,说明程序急需要运行该部分,所以装入时需要立即进行地址转换。而进行地址转换,就一定需要检查是否会越界。
发表于 2020-09-16 20:49:55 回复(0)
越界处理是在缺页中断之前完成的
发表于 2024-12-08 20:26:35 回复(0)
个人理解,这里的越界中断指的是硬件层面产生的越界中断,就是其他老哥说的地址转换发现页号超出范围。但是linux中的进程空间分成了代码段数据段堆栈等等,每个段是有上限的,如果访问的页号是合理的,并且假设这时触发缺页中断,中断处理函数会检查触发中断的地址是否合法,这里如果不合***抛出一个segment fault,但这个可以理解为操作系统层面的一个友好性的检查,防止我们访问不该访问的空间,并不是硬件的中断。
发表于 2023-04-06 21:43:47 回复(0)
当CPU发现所请求的内存地址中没有指令,就会发出缺页中断。
答案1:处理越界,很显然只有已经加载到内存的数组或其他单元才可能出现访问越界的情况,而发生缺页中断,说明还没有把数据装载到内存
答案2:发生缺页后,首先检查内存单元是否有空闲页,如果没有,操作系统会根据页面置换算法将一部分页面置换出去,然后将缺页数据置换进来。如果有,就会发生答案3的情况,直接将数据置换到内存
发表于 2022-07-22 09:56:10 回复(0)
缺页,不是越界。
发表于 2021-12-24 15:48:40 回复(0)
13年考研408原题选择题第20题,解析是系统内没有越界的错误,不会进行越界处理
发表于 2021-01-18 11:32:44 回复(2)
越界中断不是发生在缺页中断之前嘛,求解

发表于 2020-07-13 18:18:36 回复(0)
越界访问的时候不也会产生缺页中断的吗?所以才会提示 segment fault. 还没看明白第一个
发表于 2017-08-09 20:57:55 回复(0)
当CPU发现所请求的内存地址中没有指令,就会发出缺页中断。
答案1:处理越界,很显然只有已经加载到内存的数组或其他单元才可能出现访问越界的情况,而发生缺页中断,说明还没有把数据装载到内存
答案2:发生缺页后,首先检查内存单元是否有空闲页,如果没有,操作系统会根据页面置换算法将一部分页面置换出去,然后将缺页数据置换进来。如果有,就会发生答案3的情况,直接将数据置换到内存
发表于 2017-04-18 16:09:01 回复(0)