用户态与内核态

在研究Synchronized的锁升级机制时,有一句话说:

.....所以从上面描述可以得出,监视器锁就是monitor它是互斥的(mutex)。由于它是互斥的,那么它的操作成本就非常的高,包括系统调用引起的内核态与用户态切换、线程阻塞造成的线程切换等。因此,后来称这种锁为“重量级锁”。

这里提到了依据用户态与内核态的切换,我就了解一下:
有的说这是两种CPU的状态,也有人说是操作系统的运行状态,有点不大清楚

1、两者区别以及划分的原因:
用户态:运行用户自己编写的程序,用户可使用的资源受到极大的限制
核心态:运行操作系统的程序,可以调用一切资源为该服务运行

现在操作系统的运行级别一般可分为R0-R3四种级别,其中CPU级别在R0表示核心态,R3表示用户态。Linux中一般只使用R0和R3级别。

特权指令:只能由操作系统使用的指令,如中断、清理内存、设置时钟。
非特权指令:可以被用户使用的指令。
划分特权和非特权的原因:操作系统中发一些指令属于极其危险的级别,如清理内存、设置时钟等。如果允许用户随意调用,将发生无法预估的灾难,导致系统奔溃。

2、何时进行两者的切换:

  • 系统调用:当处于用户态的进程出于某种需求,需要操作系统提供一些服务时,申请进行系统调用,如父进程fork一个子进程。系统调用的内置机制是一种软中断。
  • 异常:在执行用户程序时 发生无法控制的错误时,系统会自动切换成核心态,如除零异常。
  • 外设中断:当外设发送请求时,如果cpu处于用户态,则会暂停执行下一条指令,转而去执行中断服务程序。此时发生的就是用户态到核心态的切换。

以上三种触发方式,本质上的切换操作是一致的,没有任何区别,都是相当于执行了一个中断相应的过程!!因为系统调用实际上最终也是“中断机制”实现的,而异常和中断的处理机制基本上也是一致的!!

3、判断操作系统处于何种特权级别:
CS寄存器中最低两位保存当前代码的执行级别。

涉及到“用户态切换到内核态”的步骤主要包括:
1. 从当前进程的描述符中提取内核栈的ss0及esp0信息。
2. 使用ss0和esp0指向的内核栈将当前进程的cs、eip、eflags、ss、esp信息保存起来,这个过程也完成了有用户态到内存栈的切换过程,同时保存了被暂停执行的程序的下一条指令。
3. 将先前有中断向量检索得到的中断程序的cs、eip信息装入相应的寄存器,开始执行中断处理程序,这是就转到了内核态的程序执行了。

总结:
1. 计算机系统中有“操作系统程序”和“普通用户程序”。
2. 操作系统程序执行就是在“内核态”下执行的。
3. 普通用户程序就是在“用户态”下执行的。
4. 内核态可以使用所有的硬件资源,用户态不能直接使用系统资源,也不能改变CPU的工作状态,只能访问用户程序自己的存储空间!
5. 为了安全和稳定性,操作系统程序是不能随便访问的!
6. 引起“用户态切换到内核态”的本质就是“CPU实行了一次中断相应”!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容