联想一面挂,很想去啊!
内存管理,介绍一下从虚拟地址到物理地址的转化过程
32位的一个CPU,第一页为基础页的话,那么他是怎么把这个32位的虚拟地址找到对应的物理地址呢?
那么两级页表第一级页表怎么找到第二级页表的地址
4K空间其实可以存放很多int类型的数据的,第一个页表项占了一个int类型的一个空间,他怎么找到第二级页表的首地址?4K中存放了1024个地址,怎么找到某一个就是我想要找的那个二级页?
内核中有哪些清洗内存的接口?
基于内核栈的进程切换要做那些事情?
怎么进行栈的切换?
全局指针current指向当前进程的PCB,怎么获取你要切换的下一个进程的PCB的current?
内核栈是放在哪里的?PCB里的吗?内核栈的栈顶指针存放在哪?
PCB切换时的的汇编,切栈之前需要做哪些动作?
保存现场的时候都保存了哪些寄存器?是全部寄存器吗?什么叫关键的寄存器?
系统调用实现这个,你实现了什么系统调用?
系统调用的话,他是怎么找到内核的那个对应的实现的?
比如执行int 0x80这个系统调用,这个异常指令的时候,CPU是怎么保存现场?,int 0x80异常入口这个地方又是怎么保存现场的?
它和进程切换还不一样,这里面涉及到了一个状态的改变,从用户态到内核态,它就需要把所有寄存器的现场都需要保存,那么CPU在执行这条指令做了什么操作?然后内核又做了什么操作?
32位的一个CPU,第一页为基础页的话,那么他是怎么把这个32位的虚拟地址找到对应的物理地址呢?
那么两级页表第一级页表怎么找到第二级页表的地址
4K空间其实可以存放很多int类型的数据的,第一个页表项占了一个int类型的一个空间,他怎么找到第二级页表的首地址?4K中存放了1024个地址,怎么找到某一个就是我想要找的那个二级页?
内核中有哪些清洗内存的接口?
基于内核栈的进程切换要做那些事情?
怎么进行栈的切换?
全局指针current指向当前进程的PCB,怎么获取你要切换的下一个进程的PCB的current?
内核栈是放在哪里的?PCB里的吗?内核栈的栈顶指针存放在哪?
PCB切换时的的汇编,切栈之前需要做哪些动作?
保存现场的时候都保存了哪些寄存器?是全部寄存器吗?什么叫关键的寄存器?
系统调用实现这个,你实现了什么系统调用?
系统调用的话,他是怎么找到内核的那个对应的实现的?
比如执行int 0x80这个系统调用,这个异常指令的时候,CPU是怎么保存现场?,int 0x80异常入口这个地方又是怎么保存现场的?
它和进程切换还不一样,这里面涉及到了一个状态的改变,从用户态到内核态,它就需要把所有寄存器的现场都需要保存,那么CPU在执行这条指令做了什么操作?然后内核又做了什么操作?
全部评论
我去这么细
我还等着面试官问我这些题目(我正好是模拟了这些过程,有一些文档),结果一面二面都没考
佬面的什么岗呀
相关推荐