计算机概观--硬件组成

我们首先将计算机抽象为一个Computer类,将计算机的硬件组成抽象为Computer类的内部成员,此刻我们还不关心软件(因为软件最终是对硬件的一系列操作,谈软件你就要谈到内存这样的硬件,而且概观上我们首先讲能看得到的硬件),而计算机的硬件组成都有哪些,首先从能看得到的。就拿我眼前这台。

显示屏,键盘,鼠标,电源。

然后是内部,南北桥(I/O总线),cpu(处理器),内存,硬盘

大概现讲这么多。然后我们将我们能够直接控制的硬件声明为public,而其他的声明为private

那么我们得到的伪代码为以下:

class Computer
{
public:
	Mouse mouse;
	KeyBoard keyboard;
	Screen Screen;
	Power power;

private:
	CPU cpu;
	Memory memory;
	IObus iobus;
	Disk disk;

public:
	Computer();
	~Computer();
};


然后关注一下public的几个组件为我们提供了怎样的方法。

我们能敲键盘,从而进行输入功能,鼠标与此相同,只是输入的变量不同,并且用处不同。

而操控使用这些输入达到控制目的的是运行在内存中的程序,这些程序被解释成为一些列汇编指令被cpu执行,cpu通过汇编指令能够进行计算和对各个组件的读写操作。

以上说法太过混乱,如果看不明白也不必介怀,我们还会详细的讨论关于cpu,程序,系统等内容在之后的章节。这里我们只需要了解mouse和keyboard为我们提供了input()方法就好或许我们应该为这个方法添加一个参数变量,这是我们能够手动控制的,我们按的每个键,鼠标移动的方向距离最终被解释为一串01通过io总线传递给硬件,递交给程序处理。

这里我们提出一个理解分级的概念,对于一个概念的理解应划分成不同的级别。(我的自创术语)这里我们写一下对于当前已有组件记录下一级的理解

一级理解:

cpu:中央处理器,计算机的直接控制者,相当于计算机的大脑。

内存:存储设备,能够记录一些信息,但一断电内存中的数据就会消失(这里消失说的不好,但我一时没找到合适的词汇)。

硬盘:存储设备,容量大,但读写速度较内存慢。

IO总线(又叫南北桥):所有的设备都连接在io总线上,如果把发送的数据比作快递包裹,那么io总线就相当于快递员。

显示屏:我们能从屏幕中阅读程序的输出结果。

键盘:我们能通过按键盘上的按钮向系统发送数据(我觉得这东西不用讲,倒是可以做关于中断的例子)

鼠标:和键盘一样类似,(啊救命,我也概念模糊了,鼠标是什么啊!?)


然后我们这里直接写下两个我不太想讨论的组件的代码

class Mouse
{
private:
	IOSubBus iosubbus;
public:
	void input(int i);
};

class KeyBoard
{
private:
	IOSubBus iosubbus;
public:
	void input(int i);
};

这里我们这两个类都有iossubbus(这个名字是我瞎起的),其实这应该算是io总线的子成员,我将io总线看做是许多线的集合,具体到连接到各个设备的线(这里不讨论无线鼠标之类的设备),就像是鼠标连接usb接口的那长长的一条线(我觉得这个例子举得不好,应该不算io总线吧),组件的一些列输入和输出都通过这根线传输给其他指定的硬件设备。

也就是说这里mouse的成员方法input,使用了IOSubBus的public成员方法,行IO总线发送数据。IO根据配置派送给指定的硬件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值