1. 概念
内核态:是一种特殊的软件,控制计算机硬件资源,包括CPU、内存、网络接口等。
用户态:提供应用程序运行的空间。为了使应用程序访问到内核管理的资源,操作系统提供了一组访问接口:系统调用。
系统调用:操作系统的最小功能单位。
2. 关系
用户态与内核态是操作系统定义的两种运行级别,应用程序(进程)即可运行在用户态也可以运行在内核态。进程的用户态和内核态,本质上来说是操作系统赋予进程的不同操作权限,处于用户态的进程访问的资源受到极大控制,而运行的内核态的进程则可以为所欲为。
当进程执行用户代码时,称其处于用户态,此时CPU在特权级最低的(3级)用户代码中运行,当进程执行内核代码时,称其处于内核态,CPU处于特权级最高的(0级)内核代码中运行。
3. 切换
以下内容转自:https://www.cnblogs.com/sixloop/p/8099613.html
3.1. 进程的堆栈
内核在创建进程的时候,在创建task_struct的同时,会为进程创建相应的堆栈。每个进程会有两个

本文介绍了Linux系统中用户态和内核态的概念,两者之间的关系,以及进程在用户态与内核态之间切换的过程。用户态是应用程序运行的环境,而内核态则拥有更高的权限,控制所有硬件资源。进程通过系统调用进入内核态,切换时会保存用户栈信息到内核栈,并在返回用户态时恢复。
最低0.47元/天 解锁文章
2117

被折叠的 条评论
为什么被折叠?



