前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么要分用户态和内核态_会导致用户进程用户态到内核态

为什么要分用户态和内核态_会导致用户进程用户态到内核态

作者头像
全栈程序员站长
发布2022-11-04 15:50:06
8390
发布2022-11-04 15:50:06
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

在计算机系统中,通常运行着两类程序:系统程序和应用程序,为了保证系统程序不被应用程序有意或无意地破坏,为计算机设置了两种状态:

  • 系统态(也称为管态或核心态),操作系统在系统态运行——运行操作系统程序
  • 用户态(也称为目态),应用程序只能在用户态运行——运行用户程序

在实际运行过程中,处理机会在系统态和用户态间切换。相应地,现代多数操作系统将 CPU 的指令集分为特权指令和非特权指令两类。

1) 特权指令——在系统态时运行的指令

  • 对内存空间的访问范围基本不受限制,不仅能访问用户存储空间,也能访问系统存储空间,
  • 特权指令只允许操作系统使用,不允许应用程序使用,否则会引起系统混乱。

2) 非特权指令——在用户态时运行的指令

一般应用程序所使用的都是非特权指令,它只能完成一般性的操作和任务,不能对系统中的硬件和软件直接进行访问,其对内存的访问范围也局限于用户空间。

为什么要分用户态和内核态_会导致用户进程用户态到内核态
为什么要分用户态和内核态_会导致用户进程用户态到内核态

3.5补充

UNIX 系统把进程的执行状态分为两种:

  • 一种是用户态执行,表示进程正处于用户状态中执行;
  • 另一种是核心态执行,表示一个应用进程执行系统调用后,或 I/O 中断、时钟中断后,进程便处于核心态执行。

这两种状态的主要差别在于:

  • 处于用户态执行时,进程所能访问的内存空间和对象受到限制,其所占有的处理机是可被抢占的;
  • 而处于核心态执行中的进程,则能访问所有的内存空间和对象,且所占用的处理机是不允许被抢占的。

3.28再补充

  • 用户态切换到内核态唯一途径——>中断/异常/陷入
  • 内核态切换到用户态的途径——>设置程序状态字

注意一条特殊的指令——陷入指令(又称为访管指令,因为内核态也被称为管理态,访管就是访问管理态)

该指令给用户提供接口,用于调用操作系统的服务。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月15日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档