我记得凡是内核操作,因为用户模式和内核模式的切换都会影响效率
但是只有操作系统才能直接控制硬件,那么普通的内存读写也属于操作硬件,是否属于内核操作?应该不属于吧,可是为什么呢比如int main()
{
int a;
a = 0;//写内存
return 0;
}
写内存了,是操作硬件,为什么不会切换到内核进行系统操作
但是只有操作系统才能直接控制硬件,那么普通的内存读写也属于操作硬件,是否属于内核操作?应该不属于吧,可是为什么呢比如int main()
{
int a;
a = 0;//写内存
return 0;
}
写内存了,是操作硬件,为什么不会切换到内核进行系统操作
这句话编译后 对应的汇编指令是
mov [esp-2], 0不涉及到内核切换
访问内存需要查找页目录PDE 之后查找页表PTD 然后定位到物理页帧编号PFN,然后根据偏移得到物理内存地址,访问实际的内存条地址得到数据或写入数据
我只是突然想起用户模式的程序好像不能直接访问硬件,于是有了疑惑
那些不用你操心,是由CPU硬件自动完成的,你只需要给出地址就行了。
你说的是内存管理单元MMU吧 ,这个对地址的操作代码是CPU自带的还是操作系统指定的?