408 考研《操作系统》第一章第三节:中断和异常、系统调用
创始人
2024-03-15 11:00:27
0

文章目录

  • 教程
  • 1.中断和异常
    • 1.1 中断的作用
    • 1.2 中断的类型
      • 1.2.1 外中断的处理过程
      • 1.2.1 内中断的处理过程
    • 1.3 中断机制的基本原理
    • 1.4 总结
  • 2. 系统调用
    • 2.1 什么是系统调用?
    • 2.2 小例子:为什么系统调用是必须的?
    • 2.3 什么功能要用系统调用实现?
    • 2.4 系统调用与库函数的区别
    • 2.5 系统调用的过程
    • 2.6 总结

教程

1.中断和异常 https://www.bilibili.com/video/BV1YE411D7nH/?p=6&share_source=copy_web&vd_source=d228985826b563972268952905224139
2. 系统调用 https://www.bilibili.com/video/BV1YE411D7nH/?p=7&share_source=copy_web&vd_source=d228985826b563972268952905224139

1.中断和异常

在这里插入图片描述
在操作系统中引入核心态和用户态这两种工作状态后,就需要考虑这两种状态之间如何切换。操作系统内核工作在核心态,而用户程序工作在用户态。系统不允许用户程序实现核心态的功能,而它们又必须使用这些功能。因此,需要在核心态建立一些“门”,以便实现从用户态进入核心态。

在实际操作系统中,CPU运行上层程序时唯一能进入这些“门”的途径就是通过中断或异常
发生中断或异常时,运行用户态的CPU 会立即进入核心态,这是通过硬件实现的(例如,用一个特殊寄存器的一位来表示CPU所处的工作状态,0表示核心态,1表示用户态。若要进入核心态,则只需将该位置О即可)。
中断是操作系统中非常重要的一个概念,对一个运行在计算机上的使用操作系统而言,缺少了中断机制,将是不可想象的。原因是,操作系统的发展过程大体上就是一个想方设法不断提高资源利用率的过程,而提高资源利用率就需要在程序并未使用某种资源时,把它对那种资源的占有权释放,而这一行为就需要通过中断实现

1.1 中断的作用

  1. 当中断发生时,CPU立即进入核心态
  2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
  3. 对于不同的中断信号,会进行不同的处理

发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行

在这里插入图片描述
在这里插入图片描述

1.2 中断的类型

在这里插入图片描述
在这里插入图片描述
另一种分类方式:
在这里插入图片描述

1.2.1 外中断的处理过程

在这里插入图片描述

在这里插入图片描述

1.2.1 内中断的处理过程

在这里插入图片描述
在这里插入图片描述

1.3 中断机制的基本原理

在这里插入图片描述

1.4 总结

在这里插入图片描述

2. 系统调用

在这里插入图片描述

2.1 什么是系统调用?

知识点回顾:

操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。

在这里插入图片描述

“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务

2.2 小例子:为什么系统调用是必须的?

问题:操作系统为什么要提供“系统调用”功能?

生活场景:你去学校打印店打印论文,当你按下“打印”之后,打印机开始工作。你的论文打印到一半时,另一位同学按下了“打印”按钮开始打印他自己的论文。最终,你的论文和该同学的论文页面并没有混杂在一起,都是按顺序依次打印的。

思考:如果各个进程可以随意地使用打印机,会发生什么情况?

你的论文打印到一半时,另一位同学按下了“打印”按钮开始打印他自己的论文。结果,你的后半部分论文与该同学的页面混杂在一起了。。。

解决方法:操作系统提供“系统调用”功能,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统发出请求。操作系统会对各个请求进行协调管理。

在这里插入图片描述

2.3 什么功能要用系统调用实现?

应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

在这里插入图片描述
系统调用相关处理涉及到对系统资源的管理、对进程的控制,这些功能需要执行一些特权指令才能完成,因此系统调用的相关处理需要在核心态下进行。

2.4 系统调用与库函数的区别

在这里插入图片描述

2.5 系统调用的过程

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

2.6 总结

在这里插入图片描述

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...