首页 > 其他分享 >内核态和用户态

内核态和用户态

时间:2022-08-20 20:13:13浏览次数:49  
标签:中断 用户 切换 用户程序 CPU 内核

内核态

也叫内核空间,是内核进程/线程所在的区域。主要负责运行系统、硬件交互

内核态运行的代码不受任何限制,CPU可以执行任何指令。

 

用户态

也叫用户空间,是用户进程/线程所在的区域。主要用于执行用户程序。

运行的代码需要收到CPU的很多检查,不能直接访问内核数据和程序,也就是说不可以像内核态线程一样访问任何有效地址。

操作系统在执行用户程序时,主要工作在用户态,只有执行没有权限的完成的任务时才会切换到内核态。

 

用户态切换到内核态的方法

1、系统调用(主动)

由于用户态无法完成某些任务,用户态会请求切换到内核态,内核态通过为用户专门开放的中断完成切换。

2、异常(被动)

在执行用户程序时出现某些不可知的异常,会从用户程序切换到内核中处理该异常的程序,也就是切换到了内核态。

3、外围设备中断(被动)

外围设备发出中断信号,当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进程处理,如果中断之前CPU执行的是用户态程序,就相当于从用户态向内核态的切换。

 

标签:中断,用户,切换,用户程序,CPU,内核
From: https://www.cnblogs.com/EeiKo/p/16608497.html

相关文章

  • [记录]修改Windows系统的本地用户名(包括C:\Users\***)
    目录前言我的笔记本电脑配置修改步骤前言一开始买了笔记本电脑后,不懂事,随手就把电脑用户名设置成了中文。作为一名程序猿,实在是觉得别扭,故在网络上寻找修改用户名的方......
  • Linux驱动开发十四.使用内核自带的LED驱动
    回顾一下我们现在先后都做了几种LED的点亮试验:裸机点亮LED使用汇编语言读写寄存器点亮LED使用C语言读写寄存器点亮LED在系统下直接操作寄存器映射点亮LED在设备树下......
  • 用户态读取内核中断的方式
    1.内核态中实现poll接口使用poll_wait添加到队列中,用户态使用poll获取状态2.fasync异步信号,在内核中中断回调函数中实现fasync接口,fasync中fasync_helper和kill_fa......
  • 使用docker简单编译k20pro内核
    简介本文将介绍一下如何使用docker编译红米k20pro的内核。作者当时尝试构建内核的原因是为了将3年前(好像是吧)购买的k20pro至尊版(已退役,12GB内存,512GB硬盘)制作成一个小的服......
  • postgresql用户与权限管理
    pg使用角色的概念管理数据库访问权限,角色是一系列相关权限的集合。为了管理方便,通常把一系列先关的权限赋予给一个角色,如果哪个用户需要这些权限,就把这些角色赋予给响应的......
  • python操作mysql的应用(重复运行注册用户的接口)
    1.comm里放置数据操作代码2.conftest.py里放置删除用户代码3.test_register.py里放置测试注册用户的代码(运行注册接口之前先从数据库删除注册的账号)  ----------......
  • 用户管理知识
    用户管理useradd创建用户usermod修改用户信息(只能修改已存在的用户信息并且未使用的用户)userdel删除用户及配置文件passwd更改用户密码chpasswd批量更新用户......
  • 运维脚本----批量创建用户名及密码学习
    #批量创建大量用户#!/bin/bash#思路#useraddzhangsan#echo1234|passwd--stdinzhangsan#截取随机数的8个字符作为密码#echo$RANDOM|md5sum|cut-c1-8#echo{1..10......
  • 真正的HTAP对用户和开发者意味着什么?
    简介: Gartner2016年首次提出HTAP(HybridTransaction/AnalyticalProcessing,混合事务分析处理)并给出明确的定义:即同时支持OLTP和OLAP场景,需要创新的计算存储框架,......
  • rancher添加用户报错x509: certificate has expired Internal error occurred: failed
    错误信息:Internalerroroccurred:failedcallingwebhook"rancherauth.cattle.io":Posthttps://rancher-webhook.cattle-system.svc:443/v1/webhook/validation?tim......