前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机组成体系

计算机组成体系

作者头像
用户11173787
发布2024-06-24 11:21:25
900
发布2024-06-24 11:21:25
举报
文章被收录于专栏:破晓破晓

冯诺依曼体系结构

冯诺依曼体系结构一共分为五个部分:运算器,控制器,存储器,输入设备和输出设备

运算器

运算器负责运算从内存读取到寄存器中的数据,可将其看做一个数据加工场,即对寄存器中的数据做运算,这些运算分为算数运算和逻辑运算

存储器

这里的存储器指的是内存,内存具有掉电易失的特点。与内存相对应的是外存,具体就是指磁盘,磁盘具有永久的存储能力,一般我们创建的文件都是在磁盘中,常见有C盘和D盘。磁盘又属于外设,外设分为输入设备和输出设备,常见的外设包括磁盘和网卡。

控制器

产生指令所需要的控制信号,控制相关功能部件执行相应操作。

控制器和运算器再加上其他一些部件共同组成CPU。

输入设备

用来将人们熟悉的信息形式转化为机器能够识别的信息格式,常见的有磁盘和鼠标

输出设备

可以将机器结果转化为人们熟悉的信息形式,如打印机输出,显示屏输出

CPU

一般我们认为CPU是就相当于人的大脑,进行着精确的计算和分析,其实这种观点是不对的,真实的cpu是一个很傻的设备,它只能被动的接受传来的指令,然后进行运算,达到计算别人数据的目的。

所以cpu需要认识其他设备传来的指令,所以,cpu中有自己的指令集。所以代码编译的本质是什么?代码编译的本质就是将代码编程计算机能看懂并可以执行的指令。

体系特点

一般认为CPU的运算速率非常快,一秒钟可以计算上万次。然后内存的速度比较快,一秒钟可以达到上百次。然而,外设却非常慢,一秒钟仅可以运行十余次。

如果cpu直接从磁盘中获取数据的话,可想而知,计算机运行效率一定会失配。就像木桶原理所说的一样:决定CPU运效率的是读取数据的效率。

所以为了提高整机运行的效率,CPU仅从内存中读取数据,然后内存从外设中读取数据,这样既可以很好的解决CPU和外设速度不匹配的问题。

关系图如下:

其中:内存和磁盘之间数据的传输的过程,我们称之为IO的过程。

实例分析

假如我在山东,用QQ给远在北京的同学发信息,数据是怎样传输的(忽略网络)?

如图所是:

数据从键盘(输入设备)中写入,被写进内存,与此同时QQ程序被加载到内存中,CPU通过QQ将消息进行处理(加密等等),加密后的消息经过内存到达网卡(外设),然后进过网卡传输到网络中。消息被网络传输到同学的电脑的网卡(外设)上,然后数据来到对端电脑的内存中,对端电脑的QQ程序同时被加载到内存中,CPU通过QQ程序对接收到的消息进行处理(解密等等),经过解密后的消息经过内存显示在显示器(输出设备)上。

总结

1.CPU不和外设直接打交道,只和内存打交道。 2.在外设中,有数据需要载入,只能载入到内存中。

操作系统

什么是操作系统

操作系统是一个管理软件和硬件的软件。

理解操作系统的管理特性

什么是管理

在学校里,我们是被管理者,校长是管理者,但是我们见过校长吗?

相信很多人都谁说:no!那么,校长是如何对学生进行管理的呢?答案应该是通过数据对学生进行管理的吧!!!

但是,有同学会问:在家,我妈也管理我,但是她没有通过数据的方式来管理我。这里,我想说:那是父母在监管我们,而不是管理我们,管理的本质是对重大的事务具有决定权。

因而,我们得出结论:管理的本质是对数据进行管理。

而且,我们知道:真正的管理者是不需要和被管理者直接交互的。但是,管理者如何拿到做管理所需的数据的呢?

驱动层

在学校中,校长是管理者,我们是被管理者,校长和我们学生之间还有辅导员,辅导员负责获取学生的数据,然后传递给校长,校长通过辅导员传递过来的数据指示管理工作,然后辅导员落实校长的指示。

同样,类比计算机系统。我们知道:计算机底层是由一些硬件根据冯诺依曼体系结构组成的。操作系统就是用来管理这些软件和硬件的,但是,操作系统(管理者)并不和底层硬件(被管理者)直接交互的,所以在底层和操作系统之间,还存在着驱动层。驱动层的作用就类似于学校中的辅导员,负责将硬件所产生的数据传输给操作系统,然后根据操作系统的指令进行工作。

我们都知道:在学校中,每个学校都由不同的学院组成,每个学院都有辅导员。同样,我们的计算机也是由不同的硬件组成的,所以,不同的硬件就会存在不同的驱动程序,常见的有:磁盘驱动,鼠标驱动等等。

其中,如果你使用的是那种老式的鼠标,当刚插入到电脑时,电脑的右下角就会弹出一个窗口,这个窗口就是告诉我们用户:正在安装驱动程序。

接下来,我们用一张图来总结驱动层,底层,操作系统之间的关系:

管理方式

我们还是用校长的这个例子来说明问题:假如学校的学生很少,只有10多个人,那么,校长管理起来就很方便。但是,如果学校学生很多,有数千人,校长每天要做的就是学生各种各样的数据,长此下去,非常辛苦。但是,校长在当校长之前,是一个优秀的程序员!!校长通过分析数据发现:几乎每个学生的信息都是一样的,包括:姓名,性别,籍贯,学号,高考成绩,期末成绩等等!!于是,校长就发挥他程序员的优势:将这些数据组织起来。

校长先是把这些属性封装成一个类,如下所示:

代码语言:javascript
复制
struct student_ag
{
	char name[64];
	int age;
	char address[64];
	int telephone[13];
	int score;
}stu_eg;

然后,校长想:我可不可以把这个弄成一个链表

所以,校长就加了下一个节点的指针

代码语言:javascript
复制
struct student_ag
{
	char name[64];
	int age;
	char address[64];
	int telephone[13];
	int score;
	struct student_ag* _nect;
}stu_eg;

就这样,一个链表出现了,校长的管理成本也随之降低,只需要在链表中进行增删查改查改即可!!

这种管理数据的方式叫做:先描述,再组织;即先把对象用语言描述出来,然后再用数据结构将这些对象进行有效的组织。在我们学习Linux的过程中,先描述,再组织这六个字以后会经常出现

操作系统管理硬件的方式也是一样的。操作系统先把要原理的硬件属性描述起来,然后进组织。达到安全,高效的管理的目的。

操作系统对硬件的管理方式采取先描述,再组织的方式。对硬件的管理方式如此,对软件的管理方式亦是如此。

操作系统接口即系统调用接口

不知道大家有没有取银行办理业务的经历

我们来到银行,先去拿号,然后排队。排到我们时,我们做到窗口前,递过去我们的资料,然后开始办理业务。如果资料没问题,工作人员就为我们办理;如果资料存在问题,工作人员就认为不能为我们提供办理业务,就驳回我们的办理请求。

其实,银行是一个非常私密的机构,它本质上不相信任何人(因为它分不清谁是好人和坏人,所以它不相信任何人)但是,它也要对人民提供服务。这本是矛盾的两面,但是,我们可以通过窗口来实现银行对外的工作。

操作系统和银行是非常相似的。操作系统本质上是不相信任何用户的,不允许任何用户进入操作系统,但是操作系统并不能完全封闭自己而不对外提供服务。所以,操作系统设立了专门的接口用来和用户进行交流。用户通过接口来向操作系统发送请求,如果这个请求是合法的,那么操作系统就执行这个请求;但是如果是违法的,就把这个请求拦截在操作系统之外!!

一句话:操作系统仅暴露固定的接口来对外提供服务,这些接口就是操作系统给我们提供函数调用,任何服务都不能越过这些接口直接和操作系统交互。Linux操作系统是由C语言写的,所以这些接口本质上是C式接口

用户操作接口

我们接着用银行的例子来说明:

有一天,不识字的王大妈来银行存钱。存钱就要填表,还要签字,非常麻烦。但是在银行大厅里有这样的人,类似与大厅经理,她们帮助王大妈填好了表,然后大厅经理就到窗口前把钱帮王大妈存了起来!!

操作系统的系统调用接口使用起来同样也是非常难搞懂的。所以在操作系统接口之上,存在一些类似银行大厅经理角色的东西,叫做用户操作接口,其目的就是为了降低与操作系统交互的成本

这部分包括:用于满足用户指令需求的shell;用于满足编程需求的各种库,比如C/C++的lib;和图形化界面等等

总结

这些东西就组成了我们庞大的计算机组成体系。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 冯诺依曼体系结构
    • 运算器
      • 存储器
        • 控制器
          • 输入设备
            • 输出设备
              • CPU
                • 体系特点
                  • 实例分析
                    • 总结
                    • 操作系统
                      • 什么是操作系统
                        • 理解操作系统的管理特性
                          • 什么是管理
                          • 驱动层
                          • 管理方式
                          • 操作系统接口即系统调用接口
                          • 用户操作接口
                      • 总结
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档