Atomic原理

本文介绍了操作系统中的特级权、用户态与内核态的概念,阐述了用户态到内核态的切换,包括系统调用、异常和外围设备中断。同时,详细讨论了AtomicInteger的非阻塞并发控制机制,利用Unsafe的CAS操作确保原子性,并分析了CAS的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 术语补充

1.1 特级权

对于一个操作系统来说,创建一个进程是核心功能。创建进程有很多的工作,会消耗很多的物理资源。比如分配物理内存,父子信息拷贝等,这些都需要特定的进程去做,这样就有了特级权的概念。最关键的工作需要交到特级权最大的进程进行集中管理,减少有限资源的访问和冲突。inter x86架构的cpu一共有四个级别,0-3级,0级特权级最高,3级特权级最低。

1.2 用户态和内核态

当一个进程再执行用户自己的代码时候处于用户运行态(用户态),此时特权最低,为3级。是普通的用户进程运行的特权级,大部分用户直接面对的程序是运行再用户态。Ring3状态不能访问Ring0的地址空间,包括代码和数据;当一个进程因为系统调用陷入内代码中执行处于内核运行态(内核态),此时特权级最高为0级。执行的内核代码会使用当前进程的内核栈,每个进程都有自己的内核栈。

用户调用一个程序,该程序创建的进程开始时候会运行自己的代码,处于用户态。如果要执行文件操作、网络数据发送操作必须通过write\send等系统的调用,这些系统调用会调用内核的代码。进程会切换到Ring0,然后进入3G-4G的内核地址空间去执行内核代码来完成相应的操作。内核态的进程执行完后又切换到Ring3,回到用户态。这样,用户态的进程就不能随意操作内核地址空间,具有一定的安全保护作用。这说的保护

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值