含义:
当程序运行在内核空间时为内核态,当程序运行在用户空间时为用户态。用户态只能访问用户空间下的地址,而内核态可以访问所有地址。
产生原因:
为防止用户程序对系统造成破坏,所以限制用户态程序访问其他内存。
用户态至内核态:
- 系统调用:内核提供一系列通用的访问接口,这些接口就叫系统调用。例如:文件读写、分配内存。
- 异常:如果当前进程运行在用户态,如果这个时候发生了异常事件,就会触发切换。例如:缺页异常。
- 中断:当外设完成用户的请求时,或调用中断时。例如:读写完成、时钟周期。
内核态至用户态:
内核态程序执行完成后返回发起调用的用户空间。
其他用途:
所有程序的用户空间是独立的,内核空间确是共享的,通过共享的内核空间实现程序间的数据交互。例如:MMAP。
状态切换需要上下文切换(切换进程),消耗较大。
2022-03-27
网友评论