linux用户模式和内核模式,linux内核面试题[2]-Linux用户模式和内核模式

linux内核面试题[2]-Linux用户模式和内核模式

Kernel mode下运行的程序能够访问所有的memory,能够处理interrupt;

user mode的程序只能访问有限的memory,不能直接处理中断.

<1>ARM体系下的7种工作模式

当前程序状态寄存器Current Program Status Register (CPSR)的bit4:0决定的:

CPSR[4:0

处理器模式

可访问的寄存器

0b10000

User

R0~R14;PC;CPSR

0b11111

System

R0~R14;PC;CPSR

0b10001

FIQ

R0~R7;R8_FIQ-R14_fiq;PC;CPSR;SPSR_fiq

0b10010

IRQ

R0~R12;R13_irq-R14_irq;PC;CPSR;SPSR_irq

0b10011

Supervisor

R0~R12;R13_svc-R14_svc;PC;CPSR;SPSR_svc

0b10111

Abort

R0~R12;R13_abt-R14_abt;PC;CPSR;SPSR_abt

0b11011

Undifined

R0~R12;R13_und-R14_und;PC;CPSR;SPSR_und

用户(User)模式:ARM处理器正常的程序执行状态

系统(System)模式:运行具有特权的操作系统任务

快速中断(FIQ)模式:用于处理紧急的中断,如高速数据传输或通道处理

普通中断(IRQ)模式:用于处理通用的中断,通常在硬件中断信号后进入该模式

管理(Supervisor)模式:操作系统使用的保护模式,是CPU上电后的默认模式,主要用于系统的初始化

数据访问终止(Abort)模式:用于虚拟存储及存储保护,当访问非法地址或读取无权限内存地址时进入该模式

未定义指令中止(Undifined)模式:当执行未定义的指令时进入该模式,用于支持硬件协处理器的软件仿真

<2>ARM体系下的2种工作状态

1> ARM state :此时处理器执行 32 位的字对齐的ARM指令。

2> Thumb state :此时处理器执行的 16 位的半字对齐的Thumb指令。

注:使用Thumb指令集,就是为了减小程序使用的空间

31

30

29

28

27

.

.

.

8

7

6

5

4

3

2

1

0

N

Z

C

V

I

F

T

M4

M3

M2

M1

M0

M0-M4: ARM的7种工作模式

T: ARM CPU的2种工作状态,1:CPU处于Thumb状态;0表示处于ARM状态

F: FIQ快中断禁止位,1表示被禁止

I: IRQ中断禁止位,1表示被禁止

V: 溢出标志位(overflow)

C: 进位/借位/移位溢出标志位

Z: 运算结果是否为0

N: 运算结果是否为负数

bit 8-17:保留位

参考资料:

https://www..com/JmZd/p/8809997.html

https://blog..net/cosmoslhf/article/details/17282777

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值