计算机的工作流程

  1. 电脑刚开机的时候,是怎么运行的?

    1. Post(加电自检),因为硬件不是智能的,所以必须要通过某种东西来完成;
    2. 这种东西就是程序,程序=指令+数据;
    3. 加载了程序,放在内存之后才可以执行;
  2. 程序又在哪里呢?

    1. 开机时,程序是放在外存的,例如:U盘,硬盘,软盘等…
  3. 那这么多盘,到底在哪里找呢?

    1. 通过ctrl + Alt + INS 查看boot,里面有N个启动选项,就是按照里面的顺序依次选择执行的,如果第一个有就选择第一个,否则下一个,只要找到一个即可。
    2. 比如:重装系统的时候,我们会把U盘放在第一位,然后电脑就会根据该选项从U盘里面找到相应的程序,接着就开始执行了。
  4. 但是刚开机时,电脑还不知道自己有哪些盘,而且排序本来就是程序执行的,那么什么来发挥这个过程呢?

    1. 为了解决这个问题,对电脑来说,它必须有一种能力自举,借助额外设备(BIOS)
  5. 要了解BIOS,必须了解计算机体系结构

    1. 计算机由五大部件

      1. 运算器:负责逻辑和加减运算;
      2. 控制器:通知运算器在哪里存取数据;
      3. 存储器:指的是内存,编址存储设备,8位(1字节),以平面编址方法。
      4. 输入设备
      5. 输出设备
  6. 为什么可以运算?

    1. 主要是解决两个问题

      1. 从哪里读
      2. 读完之后结果又放到哪里去
    2. 以一个加法器来做例子

      1. 从哪里找加数?被加数?
      2. 为什么只可以识别二进制,不能识别十进制呢?

        1. 因为计算机是用电压表示信息的,很难确定1,2,3,4….等的N伏(无论是整数还是小数)
        2. 二进制的好处是在于,只要表示0:无电,1:有电(简单,降低设置的复杂度)
        3. 电路与逻辑性联系,即所谓的电路闭合开关完成计算机逻辑运算而后把逻辑运算转为算数运算(电路闭合逻辑运算算数运算)
      3. 电是如何运动的?加法器怎么知道线路上是否有电呢?从而理解0、1

        1. 电是如何传输的?

          1. 物质是由原子,原子由电子和原子核构成,稳定状态下是无电的,拿走电子后就会呈现正电;
          2. 产生电的过程:将电子强行拿走,拿到另外一边回成负电,电流从负极到正极
          3. 电子在介质中是有一定的传输速度的,为什么日常生活中是立即有电呢?

            1. 因为原子电子是同步运动的,整个物质都由原子组成,所以我们感觉就是瞬间
            2. 所以要想加法器得知就必须有持续电压,从而实现运算,输出也是。
      4. 对于图上,如果是N位数相加,那就需要N条线,会很麻烦,而且因为硬件问题,有可能容不了那么多条线,所以就出现了线路复用,但是一条线该怎么知道哪种呢?所以就出现了控制位(控制线),但是如果只用一组,也就是说加数和被加数都是同一条线的话,那么加数进来的时候,被加数再进来就会覆盖掉加数了,所以就出现了寄存器,把加数暂存起来。
      5. 对于控制器而言,通过控制总线(指令总线)获取控制指令,控制器必须告诉运算器在哪个存储单元取数据(数据线),结果放在哪里也是由控制器指示,控制器要知道哪里是空的,把空闲空间放进去。
  7. 怎么告诉计算机是从哪个设备读取?核心是怎么跟外围打交道的?

    1. 为了得知我们是否有操作,计算机要不断监听(轮询),但是轮询会浪费很多资源(比如说,如果我们一天都不动,但是它还是一天都在查啊查的),为了节省资源,就不监听了,就有了其他机制,也就是说我们有操作的时候,告诉CPU就可以啦,敲时产生电信号,通知它,赶紧来查看,CPU就会产生中断,通过可编程中断控制器就可以知道是哪个设备,一开始设备跟可编程中断控制器是分别通过不同的线相连的,但是也会出现刚刚说的问题,所以就使用了线路复用,为了标出是哪个设备就出现了中断线量。
    2. 中断越少越好 。
时间: 2024-08-05 23:18:26

计算机的工作流程的相关文章

【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boot 源码 : http://download.csdn.net/detail/han1202012/8342761 -- S3C2440 文档 : http://download.csdn.net/detail/han1202012/8342701 -- S5PV210_iROM_Applicati

DNS工作流程及原理 域名、IP与DNS的关系

转自:http://blog.csdn.net/maminyao/article/details/7390208 一.DNS服务概述 DNS是Domain Name System的缩写,即域名系统.其实,DNS是internet的一项服务,一般叫域名服务或者域名解析服务,主要提供网站域名与IP地址的相互转换的服务.域名解析分文争相解析与反向解析,正向解析是将主机名转换成IP地址的过程,域名的反向解析是将IP地址转换成主机名的过程.通常我们很少需要将IP地址转换成主机名.其中,反向解析经常被一些后

从一段代码的汇编看计算机的工作原理

朱宇轲 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 大家都知道,现在的计算机主要遵循的是所谓的“冯诺依曼框架”.那什么是冯诺依曼框架呢,其实就是计算机通过总线从内存中读取一条条的程序和数据,将它们存储在自己的寄存器中一条条地执行,如下图所示. 而今天,我们将通过汇编一个具体的C程序来探讨计算机工作的流程. 首先写下这么一段C程序: 1 //linux.c 2 int g(x)

计算机开机启动流程详解

一.BIOS 1.BIOS是什么 BIOS:基本输入输出系统(Basic Input Output System),它是一组固化到计算机内主板上一个ROM(Read-Only Memory)只读存储器,不需要供电就可保持数据不丢失芯片上的程序,BIOS保存着计算机最重要的基本输入输出的程序.系统设置信息.开机上电自检程序和系统启动自检程序. 2.BIOS的功能及作用 a.POST上电自检及初始化:执行不同初始化和计算机硬件检测的函数或例程,开机后BIOS最先被启动,然后它会对电脑的硬件设备(CP

GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流(转载)

最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮助. GitHub操作总结 : 总结看不明白就看下面的详细讲解. GitHub操作流程 : 第一次提交 : 方案一 : 本地创建项目根目录, 然后与远程GitHub关联, 之后的操作一样; -- 初始化Git仓库 :git init ; -- 提交改变到缓存 :git commit -m 'desc

Struts2工作流程

Struts2是一个非常优秀的MVC框架,它主要通过StrutsPrepareAndExecuteFilter过滤器将Struts2集成到Web应用中的. 基本工作流程: 1.客户端提交一个HttpServletRequest请求(action或JSP页面): 2.请求经过一系列的过滤器(如ActionContextCleanUp,SiteMesh等): 3.Struts2的核心过滤器StrutsPrepareAndExecuteFilter被调用,并询问ActionMapper来决定这个请求是

Laravel 5系列教程二:路由,视图,控制器工作流程

免费视频教程地址https://laravist.com/series/laravel-5-basic 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就要进入Laravel的神奇世界了,主要是讲解Laravel的Router,Views,Controllers的工作流程,目的也就是让大家明白Laravel在处理一个get请求的时候是如何工作的. 在开始之前,我们首先得将我们的服务器启动起来,如果你使用Laravel的artisan,你可以直接: php artisan

RT-thread finsh工作流程

finsh是RT-Thread的命令行外壳(shell),提供一套供用户在命令行的操作接口,主要用于调试.查看系统信息.在大部分嵌入式系统中,一般开发调试都使用硬件调试器和printf日志打印,在有些情况下,这两种方式并不是那么好用.比如对于RT-Thread这个多线程系统,我们想知道某个时刻系统中的线程运行状态.手动控制系统状态.如果有一个shell,就可以输入命令,直接相应的函数执行获得需要的信息,或者控制程序的行为.这无疑会十分方便. finsh支持两种模式: 1. C语言解释器模式, 为

[Servlet]Servlet的工作流程及注意事项

Servlet工作流程 利用Servlet完成的Web应用的实际工作流程是通过Tomcat服务器发布服务,客户端与服务器端之间的交互遵循Http协议完成的.具体工作流程如下: 客户端浏览器向服务器端发送请求. 服务器端由Tomcat服务器提供的Servlet容器解析接收到的请求. 通过Web应用程序的配置文件web.xml,解析到对应执行的Servlet. Servlet完成客户端发送的请求逻辑,并完成向客户端发送的响应内容. 由Tomcat服务器提供的Servlet容器向客户端浏览器进行响应.