美文网首页
用户态和内核态

用户态和内核态

作者: Fighting_Sir | 来源:发表于2018-11-14 15:13 被阅读0次

操作系统会将内存分配为内核空间和用户空间

内核空间是由所有进程共享,每个进程通过系统调用进入内核
用户空间中各个进程相互独立,无法实现共享

当一个进程工作在内核空间的代码中,就成为内核态
工作在用户空间的代码中,就成为用户态


工作在内核态中的进程具有最高的级别Ring0
工作在用户态的进程具有最低的级别Ring3
Ring3不能访问Ring0中的数据,也就是说,进程在用户态下是没法访问到内核空间中的数据的

为了让用户安全的访问内核空间,操作系统提供了以下几种方式:

1.系统调用进入内核态:如调用write(),read(),send()等IO函数等操作,进程就会进入内核态使用内核代码去完成操作。

2.异常:当CPU在执行运行在用户态的程序时,发现了某些事件不可知的异常,这是会触发由当前运行进程切换到处理此异常的内核相关程序中,也就到了内核态,比如缺页异常。

3.外围设备的中断:当外围设备完成用户请求的操作之后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条将要执行的指令转而去执行中断信号的处理程序,如果先执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了有用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。

参考文章

相关文章

  • 内核态和用户态、

    内核态和用户态的区别 内核态切换用户态耗时的原因

  • 内核态和用户态

    内核态和用户态是操作系统的两种运行级别,内核态权限高,用户态权限低。 用户程序从用户态切换到内核态:系统调用(软中...

  • 【笔记】Linux内核简介

    用户态与内核态 用户态下,程序不能访问内核地址空间(数据和代码),内核态下则没有此限制。 激活内核例程的方法: 系...

  • 进程内存布局

    ARM64内核的内存布局 进程有用户态和内核态,同样进程的地址空间包括用户地址空间和内核地址空间,用户态访问用户地...

  • 用户态与内核态

    什么是用户态、内核态一般的操作系统对执行权限进行分级,分别为用保护态和内核态。用户态相较于内核态有较低的执行权限,...

  • 用户态与内核态

    内核态与用户态 正如标题,本文主要讨论用户态与内核态。文章主要从什么是用户态与内核态,这两个名词是对谁而言的;并且...

  • 用户态和内核态

    操作系统会将内存分配为内核空间和用户空间 内核空间是由所有进程共享,每个进程通过系统调用进入内核用户空间中各个进程...

  • 内核态和用户态

    linux用户态和内核态的转换 当一个进程执行系统调用而执行内核代码时,称进程处于内核 内核态,此时处理器处于特权...

  • 用户态和内核态

    linux系统里的资源都是按照权限来分配的。比如一个文件,如果你没有 w 权限,你就没法写入。充满了世态炎凉,人情...

  • 【转】怎样去理解Linux用户态和内核态?

    原文链接 在Linux技术讨论中经常会用户态和内核态术语脱口而出,可你们想过吗?用户态和内核态代表是什么?本片文章...

网友评论

      本文标题:用户态和内核态

      本文链接:https://www.haomeiwen.com/subject/ysljfqtx.html