关于内核态、用户态、中断、系统调用

内核态

内核态是指操作系统程序运行时的状态,在该状态下可以执行系统的所有指令,并且能够使用系统的全部资源。那问什么要引入这种状态呢?原因是为了保护操作系统程序。

用户态

用户态是指用户程序运行时的状态

这两种状态之间如何进行切换?

用户态到内核态发生在中断产生时,内核态到用户态的转化发生在中断返回到用户程序的时候

关于中断

中断是指程序在执行过程中CPU对系统发生的某个事件做出的一种响应。有以下特点:
1.中断时随机的
2.中断时可以恢复的
3.中断时自动处理的
中断处理过程:
1.保护被中断进程的现场信息,为了在中断处理结束以后能够正确地返回到中断点,系统必须保存当前CPU的程序状态字PSW和程序计数器PC等内容。
2.分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断,且优先级高的中断可以打断优先级低的中断
3.恢复被中断进程的现场信息,CPU继续执行原来被中断的进程。

系统调用

系统调用的目的和内核态用户态的划分相似,都是为了保护操作系统。系统调用可以看成是操作系统内核与用户程序之间进行交互的接口,用户不能直接返回内核程序,因此系统调用就像一种“中介”。
系统调用过程如下:
1.系统产生软中断,由硬件完成现场保护,并通过中断向量转向系统调用总控程序,同时CPU由用户态切换为核心态
2.系统调用总控程序根据系统调用功能号在地址入口表查找对应的系统调用子程序,有时还需要进行安全控制检查。
3.执行系统调用子程序并得到结果
4.系统调用处理过程执行完毕后,返回成功时的执行结果或者不成功的信息给调用者,恢复中断进程或新调度进程的CPU现场信息,返回到被中断进程或新调度进程运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CodePanda@GPF

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

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

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

打赏作者

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

抵扣说明:

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

余额充值