408 考研《操作系统》第一章第三节:中断和异常、系统调用

news2024/9/21 14:26:55

文章目录

  • 教程
  • 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 总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/58131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

m基于随机接入代价的异构网络速率分配算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 无线接入技术发展迅速,异构网络并存的现象普遍存在;同时,随着终端用户数量的剧增、业务类型的多样化和高服务质量多媒体数据业务需求的增加,通过异…

磨金石教育插画技能干货分享|插画怎么配色才好看?

在绘画界,配色是非常重要的步骤,一幅作品能够展现出什么样的品质,配色起着举足轻重的作用。颜色配的好会给作品晋商添花,配的不好,就会让作品失去水准,缺少神韵。 所以想学好插画,就要在在配色上…

python离线环境下安装第三方模块的方法

一.背景 1.背景: 在实际开发中,我们自己电脑上方便上网可以随时安装自己需要的包文件,但是有的项目现场不能联网或者现场是“内网”不具备联网条件,所以必须解决在“离线电脑上”安装需要的软件包的问题。 2.环境说明以及实现步…

SpringCloud微服务项目实战 - 项目搭建

面对大河我无限惭愧 我年华虚度空有一身疲倦 系列文章目录 项目搭建app登录 一、项目介绍 1. 项目背景 项目概述: 类似于新闻头条,是一个新闻资讯类项目 (这里之后放项目APP端的截图) 技术架构: 项目术语&…

Ubuntu18.04安装ROS、Gazebo、Mavros、PX4、QGC教程

修改国内源 修改apt sudo cp /etc/apt/source.list /etc/apt/source.list.old sudo gedit /etc/apt/source.list输入如下进行保存 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic m…

转行|什么是游戏建模??小本本记下来

今天来说一下游戏建模…小本本记下来 👀3D手绘建模 3D美术设计师根据原画设计师的构思,将二维的东西在3D软件里面制作出来,最终得到的东西是模型( 3Dmax )和贴图(软件PS、Bodypaint ) ,模型是物体的主要构架&#xff…

Kaggle Feedback Prize 3比赛总结:两种模型设计思路

比赛的目标:本次竞赛的目标是评估8-12年级英语学习者(ELLs)的语言能力。利用英语学习者所写的论文数据集开发出能更好地支持所有学生的能力模型,帮助ELL学生在语言发展方面得到更准确的反馈,并加快教师的评分周期。 方…

RestTemplate使用InputStreamResource上传文件

背景 1. 我们应用服务是Spring boot项目,预览服务是我们另一个团队提供的用.net写的,最终使用的是office online来实现文件预览的功能。 2. 我们文件在阿里云OSS存储,我们需要预览文件需要将文件上传至预览服务器。 3. 计划使用RestTemplate…

线程池自查注意点

文章目录线程池自查注意点1、线程池的标准创建方式2、线程池的任务调度流程3、避免使用Executors快捷创建线程池3.1、newSingleThreadExecutor()3.2、newCachedThreadPool()3.3、ScheduledThreadPool()4、避免在方法中创建线程池5、不要盲目使用同步队列6、使用线程池&#xff…

MySQL库的操作

文章目录MySQL库的操作创建数据库创建数据库案例字符集和校验规则查看系统默认字符集以及校验规则查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响操纵数据库查看数据库显示创建语句修改数据库删除数据库备份和恢复数据库的备份和恢复表的备份和恢…

Cracking the Safes之Linux系统下gdb调试

Cracking Safe是什么 挑战是找出四个保险箱中每个保险箱预期的正确的5个输入集。在运行二进制安全程序时,您需要一次输入一个猜测,如下所示: 其实,就是输入5次,程序会对输入内容进行判断,只有符合程序要求才能成功,任务就是逆向找到正确的字符串!!! 解题思路 反汇…

mac pro M1(ARM)安装:centos8.0虚拟机

0.引言 mac发布了m1芯片,其强悍的性能收到很多开发者的追捧,但是也因为其架构的更换,导致很多软件或环境的安装成了问题,之前我们讲解了如何安装centos7。这次我们接着来看如何在mac m1环境下安装centos8 1.下载 1.1 安装VMwar…

Java基于springboot+vue的五金用品销售购物商城系统 前后端分离

五金用品是当前很多家庭和维修人员必备的工具,他们可以让维修变的更加简单,甚至有很多维修必须有配套的专业工具才能够完成,但是很多时候人们在五金店购买这些五金用品的时候不是价格昂贵就是缺少一些想要的工具,这个是通过开发一…

Guava 对 Map的操作

Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合、缓存、并发、I/O等多个方面。使用这些API一方面可以简化我们代码,使代码更为优雅,另一方面它补充了很多jdk中没有的功能,能让我们开发中更…

C语言刷题(2)

🐒博客名:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 文件拷贝 问题描述: 小蓝正在拷贝一份文件,他现在已经拷贝了 t 秒时间,已经拷贝了 c 字节&#…

解决eclipse导入svn项目报 403Forbidden

解决eclipse导入svn项目报 403Forbidden问题; 首先,产生这个问题的原因:①导入的svn项目没有权限;②上次导入的svn项目在身份验证的时候保存了用户名以及密码;(我遇到这个情况的原因是因为②) …

个人网页制作 个人网页设计作业 HTML CSS个人网页模板 大学生个人介绍网站毕业设计 DW个人主题网页模板下载 个人网页成品代码 个人网页作品下载

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

编码器的电路介绍

编码器的结构特点以及以及使用 对于8线到三线的编码器,一定是八线输入,三线输出,有十一条线 但是74HC148是一个16引脚的芯片 有十一线上述的信号,还有电源线以及地线,此时我们就有了13条线 另外的线则是归于控制信…

kubernetes深入理解之Service

版权声明:本文为CSDN博主「开着拖拉机回家」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 主页地址:开着拖拉机回家的博客_CSDN博客-Linux,Java基础学习,MySql数据库领域博主 目录 一、概述 1.1 Serv…

【salesforce平台基础】-想到啥写点啥

【salesforce基础】-想到啥写点啥1.salesforce架构2.学习过程中常见的几个“公司”🤭3.术语4.平台的用途(举例说明)5.AppExchange(软件应用商店)6.sandbox7.平台入门1.salesforce架构 salesforce是一家云公司&#xf…