计算机原理简略总结(二)++中断

在说虚拟地址物理地址之前我们先说下中断

上一章我们说了硬件可以通过控制总线给cpu传送一个中断信号,这个有非凡的意义。我们知道cpu的读写速度与硬件的读写速度不是一个数量级别的,比如我们让硬盘去读个文件,cpu怎么知道硬盘读完了呢?一种方式是不断的去查询硬件的状态寄存器,看看是否读完了,这种方式就是轮询唠,cpu傻傻得不断做重复的事情,这样cpu被毫无意义的占用了,其实想想解决方法非常简单,就是cpu先去做别的事情,硬件读完了,自己主动通知cpu一下,告诉他自己处理完毕了,这时候cpu可能在做别的事情,一旦接收到了硬件类似的消息,cpu会停止手头的工作去为硬件的请求作出响应。

这里需要考虑一下问题,一个是手头的工作现在停止了,待会怎么再继续做啊?很简答,我们只需要保存当前cpu的执行环境,说得很装逼,直白的说,就是只要保存当前cpu各个寄存器的值,等下再重新赋值回来就行了,执行环境基本就是寄存器的值。

另一个是既然中断信息来了,我们要为中断作出响应了,怎么响应?去哪里找这个中断程序呢?很简单,我们只要为每一种中断标号,成为中断号,再把中断号和程序对应,但还是去哪里找这个程序?这里就要规定一个地方了,开始人们把00000H到003FFH作为中断矢量表,中断矢量可以理解为一个程序的入口地址,索引当然就是中断号唠,其实到了后来人们不再硬性规定中断矢量表的位置了,而是把他的起始位置放在了一个寄存器(IDTR)命名为中断描述符表。

其实中断处理程序就是驱动程序的一种,我们称为中断处理驱动程序,之后我们会说到驱动。

时间: 2024-08-07 17:02:14

计算机原理简略总结(二)++中断的相关文章

计算机原理学习(7)-- x86-32 CPU和内存管理之分段管理

前言 前一篇我们介绍了内存管理中的分页试内存管理,分页的主要作用就是使得每个进程有一个独立的,完整的内存空间,通过虚拟内存技术,使得程序可以在较小的内存上运行,而进程之间内存空间相互独立,提高了安全性.这一篇将主要介绍内存管理中分段管理,以及两种的结合,也是目前计算机普遍采用的段页式内存管理.这也直接决定了的后面程序的编译,加载以及允许时的内存布局. 1. 内存分段 1.1 为什么分段? 在x86-16体系中,为了解决16位寄存器对20位地址线的寻址问题,引入了分段式内存管理.而CPU则使用CS

python全栈 day02 计算机原理 -- 硬件

day02 计算机原理 学习总结! 一.编程语言: 计算机编程语言,也就是所谓的机械码(二进制0101),是由早期的八卦阵图演变而来,再后来的继电器(强电接触通1,不接触解除0),根据这种情况演变而来的机械码计算,及二进制. 任何一种编程语言要想实现其功能,不管怎么转变,都必须转换成计算机可以识别的机械码,及二进制码,计算机才能识别. 二.计算机构成: 计算机是可以进行数值运算和逻辑运算,按照程序顺序来执行,并具备存储分析能力的电子设备,它由硬件和软件两部分构成. 硬件主要五大部分是:运算器(C

一、计算机原理前世今生

计算机,言外之意,最初人民设计出来它的时候就是为了解决“计算calculation”的事情,而除了最早期的的算盘以外,最早的是在美国的一次人口普查用的,公元1880年,美国举行了一次全国性人口普查,为当时5000余万的美国人口登记造册.当时美国经济正处于迅速发展的阶段,人口流动十分频繁:再加上普查的项目繁多,统计手段落后,从当年1月开始的这次普查,花了7年半的时间才把数据处理完毕.也就是说,直到快进行第二次人口普查时,美国政府才能得知第一次人口普查期间全国人口的状况. 直到有一位叫“霍列瑞斯”的

CGI原理解析之二------WEB服务和CGI交互数据

#include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/wait.h> #include <stdlib.h> #define    CGI_NAME "get_post.ums" #define    REQUEST_METHOD "REQUEST_METHOD=POST" #define REQUEST_PARAM

计算机原理 发展简史

1发展简史编辑 1943——1946年美国宾夕法尼亚大学研制的电子数字积分器和计算机ENIAC(Electronic Numerical And Computer)是世界上第一台电子计算机.一般认为它是现代计算机的始祖. 早期计算机 与ENIAC计算机研制的同时,冯·诺依曼(Von Neumann)与莫尔小组合作研制EDVAC计算机,采用了存储程序方案,其后开发的计算机都采用这种方式,称为冯·诺依曼计算机. 2诺依曼机编辑 冯·诺依曼机具有以下特点: (1)计算机由运算器.控制器.存储器.输入设

深入计算机原理——第三章机器级的表示(二)

栈有两个常用指令: push:把数据压入栈中 pop:删除数据 这两个指令都只有一个操作数 条件码 除了整数寄存器,CPU还维护着一组单个位的条件码寄存器,它们描述了最近的算术或逻辑操作的属性.可以检测这些寄存器来执行条件分支指令: 常用条件码有以下几种: CF:进位标志.最近的操作使最高位产生了进位.可用来检查无符号操作的溢出. ZF:零标志.最近的操作得到的结果为0. SF:符号标志.最近的操作得到的结果为负数. OF:溢出标志.最近的操作导致一个补码溢出--正溢出或负溢出. 原文地址:ht

计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理

前言 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体. 依旧记得当时在同学家看同学输入几个DOS命令就成功的打开了一个游戏,当时实在是佩服的五体投地.因为对我来说,屏幕上的东西简直就是天书.有了计算机我们生活发生了巨大的变化,打游戏,上网,聊天,甚至到现在以此为业.有时无不感叹计算机的强大. 人类总是聪明的而又懒惰的.即便是1+1这种简单的计算都不想自己做,1623年Wilhelm Schickard 制作了一个能进行六位以内数加减法,并能通过铃声输出答案

计算机原理学习(2)-- 存储器和I/O设备和总线

前言 前一篇文章介绍了冯诺依曼体系结构的计算机的基本工作原理,其中主要介绍了CPU的结构和工作原理.这一篇主要来介绍存储区,总线,以及IO设备等其他几大组件,来了解整个计算机是如何工作的. 这些东西都是看得见摸得着的硬件,平时我们买电脑时最关注的就是CPU的速度,内存的大小,主板芯片等等的参数. 1. 存储器 前面我们以一个简单通用的计算机模型来介绍了CPU的工作方式,CPU执行指令,而存储器为CPU提供指令和数据. 在这个简单的模型中,存储器是一个线性的字节数组.CPU可以在一个常数的时间内访

【计算机图形学课程】二.MFC鼠标响应函数模拟画图软件

上一篇文章我们讲述MFC绘制图形的基本函数,包括绘制直线.绘制矩形.绘制椭圆及绘制文字,同时通过绕圆旋转和矩形平移简单的理解了图形学知识.这篇文章我将介绍鼠标响应和键盘响应,通过这些事件让学生实现一个类似画图的简单软件,同时充分发挥学生想象,自己创作东西.        前文:       [计算机图形学课程]一.MFC基本绘图函数使用方法 一. MFC工程创建及鼠标响应 新建一个MFC 单文档的应用程序"MousePic". 然后,选择"View(视图)"->