您现在的位置是:首页 > Linux OSLinux OS
X86和ARM中断时硬件处理器的动作
比目鱼2022-08-26【Linux OS】人已围观
简介X86处理器:不涉及权限级别切换(cpu运行在内核态产生中断),不涉及stack切换,只需要把CS、EIP、EFLAG及某些异常会有错误码压入当前栈;涉及低极别向高级别切换(cpu运行在用户态产生
X86处理器:
a.不涉及权限级别切换(cpu运行在内核态产生中断),不涉及stack切换,只需要把CS、EIP、EFLAG及某些异常会有错误码压入当前栈;
b.涉及低极别向高级别切换(cpu运行在用户态产生中断),涉及stack切换,需要把CS、EIP、EFLAG、SS、SP及某些异常会有错误码压入新栈(linux使用TSS中的ts_esp0、ts_ss0,新栈地址怎么取到的)存起来,剩下其它寄存器由软件(中断处理程序)按需压入新栈
ARM64:
PC写入ELR
PSTATE写入SPSR
Tags:
很赞哦! ()
随机图文
-
Linux 中断的底裤之 workqueue
workqueue 是除了 softirq 和 tasklet 以外最常用的下半部机制之一。workqueue 的本质是把 work 交给一个内核线程,在进程上下文调度的时候执行。因为这个特点,所以 workqueue 允许重新调度和睡眠,这种异步执行的进程上下文,能解决因为 softirq 和 tasklet 执行时间长而导致的系统实时性下降等问题。 -
Linux 中断所有知识点
GIC,Generic Interrupt Controller。是ARM公司提供的一个通用的中断控制器。主要作用为:接受硬件中断信号,并经过一定处理后,分发给对应的CPU进行处理。 当前GIC 有四个版本,GIC v1~v4, 本文主要介绍GIC v3控制器。 -
Linux 内核的网络协议栈
本文主要记录 Linux 内核网络协议栈的运行原理 -
一文搞定 | Linux共享内存原理
在Linux系统中,每个进程都有独立的虚拟内存空间,也就是说不同的进程访问同一段虚拟内存地址所得到的数据是不一样的,这是因为不同进程相同的虚拟内存地址会映射到不同的物理内存地址上。 但有时候为了让不同进程之间进行通信,需要让不同进程共享相同的物理内存,Linux通过 共享内存 来实现这个功能。下面先来介绍一下Linux系统的共享内存的使用。