美文网首页数据结构和算法分析
操作系统 | 中断 & 系统调用浅析

操作系统 | 中断 & 系统调用浅析

作者: 彭旭锐 | 来源:发表于2020-11-12 21:13 被阅读0次

前言

  • 在分析 Android 源码的过程中,往往会经历 app -> framework -> native -> kernel 的过程,最终就来到了用户程序与内核层序的边界,即:系统调用(System Call)
  • 清晰地理解系统调用的相关概念,对于后续深刻理解其他重点知识大有裨益。在这篇文章里,我将简单分析 中断 &系统调用 的相关概念,如果能帮上忙,请务必点赞加关注,这真的对我非常重要。

1. 中断机制

1.1 什么是中断?

  • 定义

中断(interrupt)是计算机系统中的基本机制之一。即:在计算机运行过程中,当发生某个事件后,CPU 会停止当前程序流,转而去处理该事件,并在处理完毕后继续执行原程序流。

相关概念 描述
中断分类 硬中断(Hardware Interrupt)& 软中断(Software Interrupt)
中断向量表(Interrupt Vector Table) 记录了中断号与中断服务程序内存地址的映射关系
中断服务程序 / 中断处理程序(Interrupt Service) 通过中断向量表定位到的特定处理程序

1.2 为什么引入中断?

中断机制的好处是 化主动为被动,避免 CPU 轮询等待某条件成立。如果没有中断机制,那么“某个条件成立”就需要 CPU 轮询判断,这样就会增加系统的开销。而使用中断机制,就可以在条件成立之后,向 CPU 发送中断事件,强制中断 CPU 执行程序,转而去执行中断处理程序。

1.3 硬中断

硬中断由外部设备(例如:磁盘,网卡,键盘,时钟)产生,用来通知操作系统外设状态变化。

时钟中断: 一种硬中断,用于定期打断 CPU 执行的线程,以便切换给其他线程以得到执行机会。

硬中断的处理流程如下:

  • 1、外设 将中断请求发送给中断控制器;
  • 2、中断控制器 根据中断优先级,有序地将中断传递给 CPU;
  • 3、CPU 终止执行当前程序流,将 CPU 所有寄存器的数值保存到栈中;
  • 4、CPU 根据中断向量,从中断向量表中查找中断处理程序的入口地址,执行中断处理程序;
  • 5、CPU 恢复寄存器中的数值,返回原程序流停止位置继续执行。

1.4 软中断

软中断是一条 CPU 指令,由当前正在运行的进程产生。

软中断模拟了硬中断的处理过程:

  • 1、无
  • 2、无
  • 3、CPU 终止执行当前程序流,将 CPU 所有寄存器的数值保存到栈中;
  • 4、CPU 根据中断向量,从中断向量表中查找中断处理程序的入口地址,执行中断处理程序;
  • 5、CPU 恢复寄存器中的数值,返回原程序流停止位置继续执行。

系统调用: 是一种软中断处理程序,用于让程序从用户态陷入内核态,以执行相应的操作。


2. 系统调用

2.1 操作系统与应用的边界

  • 内核空间

操作系统(Operating System)是管理计算机硬件与软件资源的程序,操作系统内核驻留在受保护的内核空间。

  • 用户空间

应用是运行在操作系统上运行的程序,工作在用户空间。

  • 隔离

处于安全性和稳定性考虑,用户空间程序无法直接执行内核代码(例如:I/O 读写、创建新进程/线程),也无法访问内核数据,必须通过系统调用。

2.2 系统调用的定义

系统调用(Syscall) 是一种软中断处理程序,用于让程序从用户态陷入内核态,以执行相应的操作。

2.3 系统调用的作用

当发生系统调用时,会让程序从用户态陷入内核态,以执行相应的操作。

2.4 系统调用中断处理程序的流程

  • 1、程序从用户态陷入内核态
  • 2、根据系统调用号,在系统调用表中查找对应的系统调用函数的内存地址,执行系统调用函数。
  • 3、程序从内核态返回用户态

参考资料

推荐阅读

感谢喜欢!你的点赞是对我最大的鼓励!欢迎关注彭旭锐的GitHub!

相关文章

  • 操作系统 | 中断 & 系统调用浅析

    前言 在分析 Android 源码的过程中,往往会经历 app -> framework -> native ->...

  • 王道操作系统—中断,系统调用

    中断 中断是操作系统内核获取CPU的唯一方法,正常情况下,CPU会执行用户程序,当内核需要执行行,可以通过中断让内...

  • 操作系统 中断和系统调用

    系统调用相关功能涉及系统资源管理、进程管理之类的操作,运行在核心态。所以应用程序要通过系统调用请求操作系统的服务。...

  • (三)操作系统运行环境

    操作系统运行环境 CPU状态 中断/异常机制 操作系统运行机制 系统调用 处理器状态(模式) 中央处理器(CPU)...

  • 冷月手撕408之操作系统(4)-操作系统的运行环境

    操作系统的运行环境主要是介绍了操作系统中处理机的运行状态以及OS的内核组成、中断和异常、系统调用。 主要的重点冷月...

  • 处理器调度

    想要资源吗?求我啊~ 调用处理器调度程序的前提是进入操作系统,处于系统态。而之前在中断中提到,中断是进程切换的前提...

  • 【MOOC:操作系统】第一讲 操作系统概述

    教学内容 操作系统结构​ 中断及系统调用 内存管理 进程及线程 处理机调度 同步互斥 文件系统 I/O子系统 操作...

  • 操作系统简介

    1.1 课程概述 基本概念及原理 操作系统介绍 中断及系统调用 内存管理 进程及线程 调度 同步 文件系统 I/O...

  • 操作系统拾遗-中断与系统调用

    中断 概念 操作系统是中断驱动的,整个操作系统离不开中断机制,所谓的中断机制,宏观上讲就是cpu在执行某件事情时可...

  • 操作系统笔记之系统调用机制

    系统调用是什么 系统调用:用户在编程是可以调用的操作系统功能 系统调用做什么 系统调用是操作系统提供给编程人员的唯...

网友评论

    本文标题:操作系统 | 中断 & 系统调用浅析

    本文链接:https://www.haomeiwen.com/subject/urqybktx.html