Linux进程的虚拟内存
首先Linux有虚拟内存机制,每一个进程都有4GB的虚拟内存。
如图示
高1G内存,也就是3~4G内存是内核空间,放置内核代码和其他维护的数据。
低3G,也就是0~3G内存是用户空间
内核态和用户态
用户态:当一个进程在执行自己的用户空间代码块时,处于用户态
内核态:当一个进程因为某些原因陷入内核空间,执行内核代码块时,处于内核态.
用户态->内核态
1)系统调用
如:fork
2)异常
如:
3)外部设备中断
如:如鼠标点击,点击完成后会向CPU发出中断信号,假设进程在用户态,cpu会暂停处理下一条指令,而去内核空间对应的中断处理程序执行后续的操作.
这样就是一次用户态到内核态的转变。
权限
inter x86 cpu架构有四种特权级 0-3
0级最高对应内核态
3级最低对应用户态