Kernel 计算机体系结构与设计

Kernel 计算机体系结构与设计,kernel,Kernel,如果从键盘输入ax+b*c/g;利用您在计算机体系结构设计方面的知识,在使用双向I/O接口的打印机上跟踪从键盘到最终输出的执行路径 有人能帮我解决这个问题吗?所以我基本上理解的是,大多数计算机有三种主要的计算方式 1.前缀,例如+ab 2.中缀,例如a+b 3.后缀,例如ab+ 首先,来自键盘(ax+b*c/g)的输入被发送到RAM。它从RAM经过高速缓存到达CPU CPU包含控制单元(CU)、算术逻辑单元(ALU)、内部存储器和寄存器。ALU基本上在CPU中处理计算。因此,计算被发送到ALU

如果从键盘输入ax+b*c/g;利用您在计算机体系结构设计方面的知识,在使用双向I/O接口的打印机上跟踪从键盘到最终输出的执行路径


有人能帮我解决这个问题吗?

所以我基本上理解的是,大多数计算机有三种主要的计算方式

1.前缀,例如+ab

2.中缀,例如a+b

3.后缀,例如ab+

首先,来自键盘(ax+b*c/g)的输入被发送到RAM。它从RAM经过高速缓存到达CPU

CPU包含控制单元(CU)、算术逻辑单元(ALU)、内部存储器和寄存器。ALU基本上在CPU中处理计算。因此,计算被发送到ALU

因此,假设计算机使用后缀符号来计算:

使用内存寄存器,它开始计算,如下所示:

a) ax+b的计算公式为axb+=X1。先前的操作数被清除并替换为答案(X1)。计算如下:

b) X1*C将计算为X1C*=X2

c) X2/g将计算为X2g/=X3

X3将是最终答案,并发送到打印机进行打印

  • 第一步是系统从字符设备(键盘)请求数据并接收数据,直到您获得终止字符,即。\n 0x0a。重复此操作,直到获得必要的操作数。字符设备输出将保存到进程的内存空间中(如果系统使用DMA,此时不太可能在缓存中)
  • 操作数使用ALU计算并保存到内存中。结果将在缓存中,因为CPU直接访问内存
  • 这个问题的一个非常关键的部分是打印机的双向I/O。结果将发送给打印机读取。然后,打印机可以报告打印操作的状态,通过从打印机到系统的接口告知系统操作是否已完成
    虽然允许出现堆栈溢出的“家庭作业”问题,但我们不会为您做家庭作业。我们希望你对这个主题进行一些研究,并在问题帖中说明作业的哪一部分对你来说是困难的。问题是我甚至不知道从哪里开始。我一直在搜索,一直在搜索,但我一直得到的只是计算机I/O上的信息。如果我能得到一个指针,指示要查找的位置和内容,我会很高兴