面试题(57)|操作系统(5):用户态和内核态的区别

用户态和内核态区别
    1.操作系统的两种CUP状态
        内核态:运行操作系统程序,操作硬件
        用户态:运行用户程序
    2.指令划分
        特权指令
            只能是操作系统使用,而用户程序不能使用的指令
            启动I/O,内存清零,修改程序状态字,设置时钟,允许/禁止终端,停机
        非特权指令
            用户可以使用的指令
            控制转移,算数运算,取数指令,访管指令(使用户程序从用户态陷入内核态)
    3.特权级别
        特权环:R0,R1,R2,R3;R0相当于内核态;R3相当于用户态
        不同级别的特权运行不同的指令集
    4.CPU状态之间的转换
        用户态--》内核态
            通过中断,异常,陷入机制(访管指令)
        内核态--》用户态
            设置程序状态字PSW
    6.用户态到内核态的切换
        系统调用
            切换方式:主动切换;用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作
            核心:使用操作系统为用户特别开放的一个中断来实现;例如linux的 int 8oh中断
            用户调用库函数,库函数在调用系统调用;
        异常
            当CPU执行运行在用户态下的程序时,发生了某些事先不可知的异常,如缺页异常
            这是会触发由当前运行程序切换到处理此异常的内核程序中,也就转到了内核态
        外围设备的中断
    5.用户态与内核态的区别
        用户态和内核态都是操作系统的两种运行级别
            当程序运行在R3级特权级别时,称它运行在用户态
            大部分用户直接运行的程序都是运行在用户态
            当程序运行在0级特权级别时,称之为运行在内核态
        访问内核资源
            运行在用户态的程序不能直接访问操作系统内核数据结构和程序
            系统中执行的程序,大部分时间运行在用户态下
            当用户态程序想要访问内核对象时,需要切换到内核态
        执行时状态
            用户态执行程序时
                进程所能访问的内存空间和对象受到限制
                进程所占有的处理器是可以被抢占的
            内核态执行程序时
                能访问所有的内存空间和对象
                进程占用的处理器是不允许被抢占的

参考文献:

用户态和内核态的区别 - Gizing - 博客园 (cnblogs.com) 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haimianjie2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值