计算机的磁盘与中断介绍

news2024/11/15 7:18:06

磁盘

        大多数计算机都有磁盘。这只是连接到I/O总线的另一个外围设备。磁盘的任务非常简单;它可以做两件事:存储你发给它的字节,它发送给你之前存储的字节。

        大多数计算机都有磁盘有两个原因。首先,它们能够存储大量字节,比计算机的RAM大很多倍。CPU只能执行RAM中的程序,只能操作RAM中的字节。但永远没有足够的RAM来存储您可能想用计算机做的所有事情。

        计算机有磁盘的第二个原因是,当您关闭电源时,磁盘上存储的字节不会消失。当您关闭计算机时,RAM会丢失其设置,当您重新打开计算机时,所有字节都是0000 0000,但磁盘会保留已写入的所有字节。

        磁盘,顾名思义,是一个圆的东西,旋转很快。它涂有一种容易磁化的材料。磁盘,手臂可以前后摆动,这样磁头可以到达磁盘表面的任何点。如果你通过磁头通电,它可以磁化磁盘表面。此外,它的工作方式与此相反;当磁头经过磁化区域时,磁头周围的导线会产生电流。因此,磁头既可以在磁盘上写入,也可以读取先前写入磁盘的内容。字节的位一个接一个地写入磁盘表面。磁盘的表面被分成一系列环,称为磁道,彼此非常接近。头部可以在表面上移动,并在任何一个轨迹上停止。每个圆形轨道通常被分为短段,称为扇区。由于磁盘有两面,通常两面都涂有磁性材料,每一面都有一个磁头。

        在RAM中,每个字节都有自己的地址。在磁盘上,也有一种定位字节的方法,但它非常不同。您必须指定字节块所在的磁头、磁道和扇区。这就是磁盘上数据的“地址”类型,比如“磁头0,磁道57,扇区15”。在这个地址上,不仅有一个字节,还有一个字节块,通常有几千个。对于本书中的示例,由于我们的RAM太小,我们将讨论存储100字节块的磁盘。

        当读取或写入磁盘时,无法访问字节块中的单个字节。整个块必须转移到RAM,在RAM中工作,然后整个块必须写回磁盘。磁盘旋转得很快,比你桌子上的风扇还快;许多流行的磁盘每分钟旋转7200次,即每秒120次。这相当快,但与CPU相比,它仍然相当慢。在磁盘旋转一次的时间内,时钟将滴答超过800万次,我们的CPU将执行超过100万条指令。

        磁盘和每个外围设备一样,都连接到自己的适配器,而适配器又连接到I/O总线。磁盘适配器可以做一些事情。它接受选择磁头、选择磁道和选择扇区的命令。它接受读取或写入当前选定磁头、磁道和扇区的字节块的命令。也可能会有一个命令,CPU可以在其中检查臂和磁盘的当前位置。

        选择磁头的命令可以立即完成,但当它收到选择磁道的命令时,必须将磁头移动到该磁道,这就指令周期而言需要很长时间。当它收到选择扇区的命令时,它必须等待扇区旋转到磁头所在的位置,这在指令周期方面也需要很长时间。当CPU确定磁头已到达所需的磁道和扇区时,可以执行读或写的I/O命令,每次一个字节将通过I/O总线传输。读取或写入字节块的程序必须继续该过程,直到整个字节块完成。使用我们的简单I/O系统,单个字节在磁盘和CPU寄存器之间移动。正在运行的程序必须将这些字节移入或移出RAM,通常在连续的位置。

        这就是磁盘的全部功能。说到计算机磁盘,在磁盘上写东西叫做写。从磁盘上取出东西叫做读取。将某些东西放入RAM称为写入或存储。从RAM中取出一些东西称为读取或检索。将某些东西放入CPU寄存器通常称为加载。将音乐放在磁盘上有时称为录制,有时称为刻录。听磁盘通常仍被称为播放,但如果您正在将其复制到计算机上,则称为翻录。写入、记录、存储、加载和刻录都意味着几乎相同的事情。阅读、检索、播放和翻录也非常相似。他们的意思相同,只是用词不同而已。

中断

        中断是大多数计算机作为输入/输出系统的一部分。你知道,如果妈妈在厨房里搅拌一壶汤,小乔伊跑进来说“我想要一杯牛奶”,妈妈会放下勺子,走到橱柜,拿一杯,走到冰箱,倒牛奶,递给乔伊,然后她会回到炉子,拿起勺子,继续搅拌汤。汤的搅拌被一杯牛奶打断了,然后汤的搅拌又开始了。

        大多数电脑都有这种东西,它被称为“中断”,它的工作原理与妈妈和乔伊发生的事情非常相似。中断从I/O总线上增加一条导线开始。某些设备适配器使用这条线,让CPU知道现在是CPU执行I/O操作的好时机,就像有人按下键盘上的键之后。当设备适配器打开中断位时,下次步进器返回步骤1时,下一个指令周期不会执行通常的获取和执行,而是执行以下操作:

        该序列的结果是,当前的IAR和标志被保存到RAM地址0和1,并且它们被替换为RAM字节地址2和3的内容。然后CPU返回到其正常的提取和执行操作。但IAR已被替换!因此,下一条指令将从RAM字节2中的任何地址获取。

        换句话说,CPU一直在做的事情被保存下来,CPU被派去做其他事情。如果在这个新活动结束时,程序将RAM字节0和1放回IAR和Flags,那么CPU将在中断之前从它停止的位置恢复。

        这个系统对于处理I/O操作非常有用。如果没有中断,CPU中运行的程序必须确保定期检查I/O总线上的所有设备。有了中断,程序就可以做它设计做的任何事情,处理键盘输入之类的事情的程序将根据中断系统的需要自动调用。

        我们没有把它包括在我们的CPU中,因为它只会使我们的控制部分接线图太大。它需要添加以下内容:步进器再增加两个步骤,布线以代替正常的指令周期,标志寄存器进出总线的路径,将二进制0、1、2或3发送到MAR的方法,以及将RAM字节0和1恢复到IAR和标志寄存器的指令。

        这是一个中断系统。计算机设计者采用了一个现有的动词“中断”,并用了三种方式:它是“键盘中断程序”中的动词,是“这是中断系统”中的形容词,是“CPU执行中断”中的名词。

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

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

相关文章

微信小程序实现一些优惠券/卡券

背景 👏 前几周有小伙伴问我如何用css实现一些优惠券/卡券,今天就来分享一波吧!速速来Get吧~ 🥇文末分享源代码。记得点赞关注收藏! 1.实现效果 2.实现原理 2.1 实现内凹圆角 假设我们要实现这样的一个效果&#xf…

Java八股文

2022年接近年底了,想必绝大多数的小伙伴跳槽的心已经蠢蠢欲动。但一边又是互联网寒冬、大厂裁员,导致人心惶惶,想跳又不敢跳。但现在罡哥,给大家整理了八股文大厂面试真题和面试技巧。这里免费分享给大家。 资料包括:…

算法day29|491,46,47

491.递增子序列 class Solution:def findSubsequences(self, nums: List[int]) -> List[List[int]]:used [False]*len(nums)result []nums.sort()def backtracking(nums,path,startindex,used):nonlocal resultif len(path)>1:result.append(path[:])for i in range(s…

云原生系列 五【轻松入门容器基础操作】

✅作者简介: CSDN内容合伙人,全栈领域新星创作者,阿里云专家博主,华为云云享专家博主,掘金后端评审团成员 💕前言: 最近云原生领域热火朝天,那么云原生是什么?何为云原生…

C<6.1>函数习题(函数内测整形数组大小,递归

目录 1,数组比较 2,勒让德多项式 3,查询数组(sizeof问题 1,数组比较 1. 编写函数实现比较两个长度为 n(n 可变)的数组大小。比较逻 辑如下: 假设 a 和 b 为 n 个元素的整型数组&am…

Web(一)Web前端开发概述

第1关_Web前端开发相关的概念 相关知识 为了完成本关任务,你需要掌握:1.Web系统的组成;2.浏览器的概念;3.URL的概念;4.Web标准。 Web系统的组成:Web是Internet上最受欢迎的一种多媒体信息服务系统。 整个…

【LeetCode】string 类的几道简单题

​🌠 作者:阿亮joy. 🎆专栏:《阿亮爱刷题》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 👉仅反转字母&a…

Java源代码到用户使用都经历了哪些阶段

1、测试好的代码是如何部署给用户的。 首先:写好的代码通过打包生成jar包放到一个服务器上运行,服务器上需要有Java虚拟机,当然可以在存放jar包的服务器上安装数据库,或者把服务器放到另外一台服务器上也可以,但是在代…

SpringCloud-04-Feign

一、Feign介绍 Feign是一个声明式web服务客户机。它使编写web服务客户机更容易。要使用Feign创建一个接口并对其进行注释。它具有可插入注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插式编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持&#xff…

10个全球最佳免费土地覆被/土地利用数据资源

不知道大家有没有想过,在我们来到地球的一生时间中,地球会有多大的变化呢? 是在空旷的草地新建了公园,还是低矮的平房变成了一座座大厦? 这些林林总总的变化,总是令人应接不暇。然而,在漫长的人类历史历程中&#xf…

2022亚太数学杯数学建模竞赛A题(思路分析......)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

Java数据类型:基本数据类型和引用数据类型

Java 语言是强类型语言,编译器存储在变量中的数值具有适当的数据类型。学习任何一种编程语言都要了解其数据类型,下面将详细介绍 Java 中的数据类型。 Java 语言支持的数据类型分为两种:基本数据类型(Primitive Type)…

NET CORE Configuraion 使用详解

相关配置 <Project Sdk"Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>netcoreapp3.1</TargetFramework></PropertyGroup><ItemGroup><!--读取配置的核心包--><Packa…

谷歌浏览器自定义标签页 newtab

创建一个文件夹, 里面放置信息: 其中&#xff0c; manifest.json 不能变&#xff0c; home.html 是新的标签页信息 manifest.json 内容: {"chrome_url_overrides": {"newtab": "home.html"},"manifest_version": 2,"name"…

新知实验室TRTC 初体验

引言 随着短视频行业的不断发展&#xff0c;人们对实时音视频的需求越来越多。在线直播&#xff08;秀场直播、电商直播、赛事直播、新品发布会、路演、在线拍卖&#xff09;的相关产品不断涌现&#xff0c;百花齐放。对于业务来说&#xff0c;自研开发一个实时音视频服务&…

spring boot 过滤器拦截器与aop

目录 一、过滤器 (Filter) 1.1 什么是过滤器 1.2 springboot配置过滤器 方式一&#xff1a;使用WebFilter 二、拦截器(Interceptor) 2.1 什么是拦截器 2.2 使用拦截器方法 三、拦截器&过滤器与spring aop的区别 3.1 区别 3.2添加aop 适用场景&#xff1a; 拦截…

Vue3中jsx父子传值、provide和inject、v-memo指令、Teleport内置组件、KeepAlive缓存组件、transition过渡组件

文章目录1. jsx父子传值2. provide和inject3. v-memo指令4. Teleport内置组件5. KeepAlive缓存组件6. transition过渡组件1. jsx父子传值 父组件&#xff1a; <template><div><child :title"title" :setTitle"setTitle" /></div>…

GitHub下载量过百万,阿里P8秘密分享的「亿级并发系统设计」真香

随着互联网的不断发展&#xff0c;CPU硬件的核心数也在不断进步&#xff0c;并发编程越来越普及&#xff0c;但是并发编程并不像其他业务那样直接了当。在编写并发程序时&#xff0c;我们常常都会出现各种漏洞&#xff0c;这些问题往往都突然出现&#xff0c;然后又迅速消失&am…

Java编码与解码

首先区分加密与编码并不是一回事&#xff0c; 本节主要讲述常见的三种编解码方式&#xff0c;分别为&#xff1a;Unicode、URL、Base64。 常见编码算法&#xff1a; Unicode编码&#xff1a;每一字符都可变成以 \u 开头&#xff0c;长度为6的字符串。URL编码&#xff1a;以百分…