计算机系统的内核态和用户态

目录

是什么

为什么

怎么做

用户态 =》 内核态

学习目的


是什么

用户态内核态 是操作系统的两种运行级别,两者最大的区别就是特权级不同。用户态拥有最低的特权级,内核态拥有较高的特权级。运行在用户态的程序不能直接访问操作系统内核数据结构和程序。内核态和用户态之间的转换方式主要包括:系统调用,异常和中断

为什么

如此设计的本质意义是进行权限保护。限定用户的程序不能乱搞操作系统,如果人人都可以任意读写任意地址空间软件管理便会乱套

怎么做

1.调用CPU进行程序代码操作,而不需要进行磁盘操作、网络传输等程序本身程序无法实现的功能,这个时候就是处于用户态,因为仅用到CPU的逻辑运算功能。
2.当程序需要进行磁盘操作或网络传输等行为的时候,程序代码本身通过CPU是无法实现的,这个时候就要转换到内核态进行相应的操作。

用户态 =》 内核态

系统调用:如进行磁盘读写

异常:如页表缺失(虚拟页表在内存中,此时还是用户态,不会直接操作磁盘转为内核态)
中断:如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后边的操作等

内核态操作执行结束后,转换为用户态继续下一条操作指令的执行。

学习目的

cpu采用时间轮片机制给每个线程分发执行时间片来让线程执行,如果线程在进行上下文切换、堵塞、时间片用完、睡眠等情况,就会发生用户态和内核态的切换。

那么我们在使用这些相关功能的设计(例如java的线程sleep、synchronize加锁等操作)就要谨慎,避免滥用,影响系统性能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值