当前位置: 技术问答>linux和unix
linux 用户态和内核态
来源: 互联网 发布时间:2016-10-12
本文导语: 哪位高手能讲讲内核态和用户态之间的差别吗? 每个进程都有一个内核态,他们具体是怎么处理的? | 一般进程有用户堆栈和核心堆栈 内核线程只有核心堆栈 进程在用户态使用用户堆栈,内...
哪位高手能讲讲内核态和用户态之间的差别吗?
每个进程都有一个内核态,他们具体是怎么处理的?
每个进程都有一个内核态,他们具体是怎么处理的?
|
一般进程有用户堆栈和核心堆栈
内核线程只有核心堆栈
进程在用户态使用用户堆栈,内核态使用内核堆栈,内核堆栈只有8k
由task_struct 中的thread_info 指向核心堆栈的顶部(堆栈是向低地址增长的,所以核心堆栈的顶部是其最低地址)
内核堆栈可怜的8k空间,最低的部分还要给thread_info 用
内核线程只有核心堆栈
进程在用户态使用用户堆栈,内核态使用内核堆栈,内核堆栈只有8k
由task_struct 中的thread_info 指向核心堆栈的顶部(堆栈是向低地址增长的,所以核心堆栈的顶部是其最低地址)
内核堆栈可怜的8k空间,最低的部分还要给thread_info 用
|
当一个程序调用执行了系统调用或者触发了某个异常,陷入内核空间,内核代表进程执行并处于进程上下文中