热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

计算机系统概论之计算机的工作过程

用计算机解决一个问题,通常包含两个过程,一个是上机前的各种准备,再一个是上机运行。 1.上机前的准备 在许多科学技术的实际问题中,往往会遇到许多复杂的数学方程组,而数字计算机通常只

用计算机解决一个问题,通常包含两个过程,一个是上机前的各种准备,再一个是上机运行。

 1.上机前的准备

 在许多科学技术的实际问题中,往往会遇到许多复杂的数学方程组,而数字计算机通常只能做加、减、乘、除四则运算,这就要求,

在上机前,先由人工完成一些必要的准备工作,这些工作,大致可分为三类:建立数学模型,确定计算方法,编制解题程序。

 (1)建立数学模型

 有许多科技问题很难直接用物理模型来模拟研究对象的变化规律,如地球大气环流、原子反应堆的核裂变过程、航天飞行速度对

飞行器的影响等等,不过,通过大量分析和实验,总能找到一系列反映研究对象变化规律的数学方程组,通常,把这类方程组,叫做被

研究对象变化规律的数学模型。一旦建立了数学模型,研究对象的变化规律就变成了解一系列方程组的数学问题,这便可通过计算机来

求解,因此,建立数学模型是计算机解题的第一步骤。

( 2 )确定计算方法

由于数学模型中的数学方程式往往是很复杂的,如果需要将它变成适合计算机运算的加、减、乘、除四则运算,还必须确定对应的计算

方法

(3)编制解题程序

程序是适合于机器运算的全部步骤,编制解题程序就是将运算步骤用一一对应的机器指令描述。

例如:计算ax²+bx+c,在计算器中可分解为以下几个步骤:

  • 将x取至运算器中
  • 乘以x,得x²,存于运算器中
  • 再乘以a,得ax²,存于运算器中,
  • 将ax²送至存储器中,
  • 将b至运算器中
  • 乘以x得到bx存储在运算器中
  • 再将ax²从存储器中取出来与bx相加,得到ax²+bx,存于运算器中
  • 再取c与ax²+bx相加,得到ax²+bx+c,存于运算器中

可见,不包括停机、输出打印共需八步。若将上式改写为:(ax+b)x+c,则可简化为五步:

  • 取x至运算器中
  • 乘以a,得到ax,存于运算器中
  • 加b,得到ax+b,存于运算器中
  • 乘以x,得到(ax+b)x,存于运算器中
  • 加c,得到(ax+b)x+c,存于运算器中

将上述运算步骤写成某计算机的一一对应的机器指令,就完成了运算程序的编写。

 2.计算机的解题过程

为了比较形象地了解计算机的解题过程,首先分析一个比图1.9更细化的计算机组成框图,如图1.11所示。

《计算机系统概论之计算机的工作过程》

(1)运算器

运算器包括三个寄存器(现代计算机中往往设有寄存器组)和一个算逻电路ALU。其中ACC为累加器,MQ为乘商寄存器,X为操作数寄存器,

这三个寄存器在完成不同运算时,所存放的操作数类别也各不一样。表1.3列出了寄存器存放不同类别操作数的情况。

《计算机系统概论之计算机的工作过程》

(2)主存储器

主存储器(简称主存或内存)包括存储体、各种逻辑部件及控制电路等。存储体由许多存储单元组成,每个存储单元又包含若干个存储元件

(或称存储基元、存储元),每个存储元件能寄存一个二进制代码“0”或“1”。也就是说,一个存储单元可以存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的个数,叫作存储字长。

 如果我们把一个存储体比作一幢大楼,那么每个存储单元可看作大楼中的每个房间,每个存储元可看作每个床位中的一张床位,显然,每个房间

都需要一个房间编号,因此,我们赋予每个存储单元一个编号,叫做存储单元的地址号。主存的工作方式就是按存储单元的地址号来实现存和写

 (3)控制器

控制器是计算机中组成的神经中枢,由它指挥全机各部件自动、协调的工作。

(4)I/O设备

I/O子系统包括各种外部设备及相应的借口。



推荐阅读
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • 前言:由于Android系统本身决定了其自身的单线程模型结构。在日常的开发过程中,我们又不能把所有的工作都交给主线程去处理(会造成UI卡顿现象)。因此,适当的创建子线程去处理一些耗 ... [详细]
  • PHP函数的工作原理与性能分析
    在编程语言中,函数是最基本的组成单元。本文将探讨PHP函数的特点、调用机制以及性能表现,并通过实际测试给出优化建议。 ... [详细]
  • 本文汇集了作者在准备研究生入学考试过程中的心得体会,包括备考策略、复习重点及应对考试的心理调适技巧,旨在为即将参加考研的学生提供实用建议。 ... [详细]
  • 本文提供了一个使用 while 循环在 Linux Shell 脚本中处理文件列表的具体示例。通过这个例子,读者可以了解如何利用 shell 脚本来批量处理文件,包括文件名的匹配和处理。 ... [详细]
  • RTThread线程间通信
    线程中通信在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取& ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • Spring Boot + RabbitMQ 消息确认机制详解
    本文详细介绍如何在 Spring Boot 项目中使用 RabbitMQ 的消息确认机制,包括消息发送确认和消息接收确认,帮助开发者解决在实际操作中可能遇到的问题。 ... [详细]
  • 8个IDC大数据基础定义解析丨IDC
    本文针对IDC数据行业相关名词术语进行解析,分为4组相关概念,希望大家读完 ... [详细]
  • RocketMQ 运维监控实践指南
    本文详细介绍了如何实现 RocketMQ 的运维监控,包括监控平台的搭建、常用运维命令及其具体用法。适合对 RocketMQ 监控感兴趣的读者参考。 ... [详细]
  • Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ... [详细]
  • 可参照github代码:https:github.comrabbitmqrabbitmq-tutorialsblobmasterjavaEmitLogTopic.ja ... [详细]
  • Ashley Wood限量版画国内首发,双十一不如来笔投资?
    Ashley Wood限量版画国内首发,双十一不如来笔投资? ... [详细]
  • 分享两个GitHub链接,今天看到的,超赞超赞不能更赞了,答应我一定要去看好吗~~~~不论是笔记还是github中分享的其它资源ÿ ... [详细]
  • 【线段树】  本质是二叉树,每个节点表示一个区间[L,R],设m(R-L+1)2(该处结果向下取整)左孩子区间为[L,m],右孩子区间为[m ... [详细]
author-avatar
时尚淘宝交__流站
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有