联想一面挂,很想去啊!

内存管理,介绍一下从虚拟地址到物理地址的转化过程

32位的一个CPU,第一页为基础页的话,那么他是怎么把这个32位的虚拟地址找到对应的物理地址呢?

那么两级页表第一级页表怎么找到第二级页表的地址

4K空间其实可以存放很多int类型的数据的,第一个页表项占了一个int类型的一个空间,他怎么找到第二级页表的首地址?4K中存放了1024个地址,怎么找到某一个就是我想要找的那个二级页?

内核中有哪些清洗内存的接口?

基于内核栈的进程切换要做那些事情?

怎么进行栈的切换?

全局指针current指向当前进程的PCB,怎么获取你要切换的下一个进程的PCB的current?

内核栈是放在哪里的?PCB里的吗?内核栈的栈顶指针存放在哪?

PCB切换时的的汇编,切栈之前需要做哪些动作?

保存现场的时候都保存了哪些寄存器?是全部寄存器吗?什么叫关键的寄存器?

系统调用实现这个,你实现了什么系统调用?

系统调用的话,他是怎么找到内核的那个对应的实现的?

比如执行int 0x80这个系统调用,这个异常指令的时候,CPU是怎么保存现场?,int 0x80异常入口这个地方又是怎么保存现场的?

它和进程切换还不一样,这里面涉及到了一个状态的改变,从用户态到内核态,它就需要把所有寄存器的现场都需要保存,那么CPU在执行这条指令做了什么操作?然后内核又做了什么操作?
全部评论
我去这么细
点赞 回复 分享
发布于 10-29 12:00 湖北
我还等着面试官问我这些题目(我正好是模拟了这些过程,有一些文档),结果一面二面都没考
点赞 回复 分享
发布于 11-04 09:57 北京

相关推荐

点赞 评论 收藏
分享
1 13 评论
分享
牛客网
牛客企业服务