软件是怎样控制硬件的?

★当你往计算机设备里看时,能看到一大推电路、芯片、电线,扬声器、接口和其他东西,这些都是硬件,你看不见摸不着的就是软件。

软件是计算机上所有的程序,或运行在机器上的代码。软件可以是任何形式,从应用程序和游戏到网页,以及在网站上给客户行为的数据科学软件。

但是软件和硬件是如何结合起来起作用的呢?让我们从计算机的中央处理器,即CPU开始说起。CPU是控制计算机其他部分的主芯片,CPU需要做不同的事情,因此它内部有很多小的电路来处理特定的任务,它有电路来做简单的数学和逻辑计算。其他电路用来从计算机的不同部分发送和接收信息。CPU最神奇之处在于它知道使用哪个电路,什么时候用。

CPU会接收简单的命令来告诉它用哪个电路来执行特定的任务。例如,一个“加”的命令告诉CPU用外部电路来计算新数字,然后用“存储”命令告诉计算机用不同的电路来将结果存到存储器中。和数字一样,所有的这些简单的命令都用二进制的1和0表示,或者ON/OFF的电路信号。

二进制命令存在存储器中,CPU将它一条条的取出来执行。实际上,这一系列的命令就是一个非常简单的计算机程序。

二进制代码是软件的基本形式,它控制了计算机上的所有硬件。现在没有人用二进制写程序了,因为这样太慢了。现在程序员写的软件更像是PYTHON或这样RUBY,甚至是这样BLOCKLY。像这样的编程语言,用非常像英语的方法来输入命令。只需要一条命令就能在屏幕上画一个正方形。这条高级命令会被转换为成百上千CPU能理解的简单二进制命令。

软件告诉硬件CPU做什么,当你听音乐时,又浏览网页,并和朋友聊天,你的计算机会同时运行多个软件。那么这些程序是如何到计算机上,CPU又如何一起运行它们的呢?为了寻找答案,我们要看一看操作系统。

操作系统是计算机的主程序,它负责管理软件如何使用硬件、管理软件资源使计算机有效地利用这些资源的程序集合。操作系统的任务是:管理处理器、管理存储器、管理设备、管理文件和管理最终输出作业。例如大多数人个人计算机的Windows操作系统。

操作系统是一种能控制计算机上其他软件的特殊应用程序。它让你能通过将程序读取到内存中来安装新程序。它决定了什么时候程序运行在CPU上,程序是否能操作输入和输出设备。你可能认为计算机在同时运行多个程序,实际上并非如此,操作系统能在一秒钟内非常快速的切换程序好多次,从而共享CPU。

软件是怎样控制硬件的?相关推荐

  1. 计算机软件如何控制硬件工作,介绍软件是怎样控制硬件的

    今天小编和大家分享软件是如何控制硬件.下面是小编为大家精心整理的关于介绍软件是怎样控制硬件的,希望能够帮助到你们. 方法/步骤 1硬件就是电路,软件和硬件所存储的信息的本质其实就是电路上一些开关的状态 ...

  2. 软件是如何控制硬件的?

    文章目录 通过操作系统控制硬件 中断机制 文字及图片的显示机制 通过操作系统控制硬件 现象: 在用 C 语言等高级编程语言开发的 Windows 应用中,大家很少能接触到直接控制硬件的指令. 结论: ...

  3. 5.计算机发展个人理解-电路终究是电路 软件如何控制硬件 代码如何操作硬件 硬件是怎么执行代码 代码如何执行 软件与硬件如何交互 计算机思维 抽象 封装 规范 屏蔽 协议分层...

    计算机只是逻辑电路 除了电路还是电路 计算机就是一堆逻辑电路 他并不知道你到底想要干什么,他也不会理解什么是文件,什么是进程 通电的瞬间,就好像你打开开关,灯泡发光一样 所有的一切都是通过通电来启动的 ...

  4. 软件如何控制硬件、编译器和操作系统是否需要编译

    软件如何控制硬件.编译器和操作系统是否需要编译 ----作者:山野子 QQ:814577355 注:相信很多人都会有跟我一样的疑问,那就是软件如何控制硬件.编译器和操作系统是 否需要编译?为了解决这个 ...

  5. 多余的读写端口什么时候会对程序造成影响_程序员需要了解的硬核知识之控制硬件...

    应用和硬件的关系 我们作为程序员一般很少直接操控硬件,我们一般通过 C.Java 等高级语言编写的程序起到间接控制硬件的作用.所以大家很少直接接触到硬件的指令,硬件的控制是由 Windows 操作系统 ...

  6. python画锯齿波_用Python控制硬件35-自制二三十元成本的信号测量采集控制系统

    如前篇所介绍,用Shell Lab测试台软件配合之前介绍的任意款实验板,都能方便地实现ADC电压测量,但遇到两个问题: 示例代码虽然众多,但大都默认ShellLab类型的控制器,需要手动改为Mcush ...

  7. 控制只读_用Python控制硬件44-四位半万用表UT61E

    UT61E是优利德公司手持式万用表中精度较高的一款(四位半精度),同时也是少有的支持PC通讯的手持表,这两个特点使得这款表特别适合用于实验测试自动化,且具有很高的性价比. 仪表顶部的光电通讯口只有一路 ...

  8. IC验证培训——AI时代:软件已经起飞,硬件还在路上?

    为响应全国各地心心念路科验证培训的路粉们,路科将在9月1日进行线上培训,线上报名方式如下: 手机安卓端(暂不支持iOS)可在[腾讯课堂]APP搜索"路科验证",即能够找到报名入口, ...

  9. 程序员需要了解的硬核知识之控制硬件

    应用和硬件的关系 我们作为程序员一般很少直接操控硬件,我们一般通过 C.Java 等高级语言编写的程序起到间接控制硬件的作用.所以大家很少直接接触到硬件的指令,硬件的控制是由 Windows 操作系统 ...

最新文章

  1. 使用hello word写小说
  2. 十大python开发软件-7款公认比较出色的Python IDE,你值得拥有!
  3. mysqlsla的使用
  4. 面向领域驱动的应用开发框架Apworks 2.5发布
  5. 布隆过滤器Bloom Filter简介
  6. Python 进阶:enum 模块源码分析
  7. PollardRho大整数分解
  8. 人工机器:人工智能中的机器学习方法
  9. MYSQL性能调优及架构设计学习笔记-影响MYSQL性能的相关因素之实例分析
  10. Python 使用 Scrapy 发送 post 请求的坑
  11. html中实现类似于弹幕的效果代码,javascript实现弹幕效果
  12. phpmyadmin安全预防
  13. linux mint自动登录,Linux Mint 19.2新功能/新特性介绍,包含Cinnamon、MATE、Xfce版本
  14. C语言 —— 符号(C语言的基本符号)
  15. AIR小应用--北京机动车限行提示
  16. 抖音上热门规则 视频md5码查看器
  17. 【国外网站软件下载慢解决】
  18. 对赌协议里,隐藏了多少致命陷阱
  19. 【mud】call_out()函数
  20. 【J2EE】模仿天猫商城(后台篇)

热门文章

  1. Linux下Django环境安装
  2. Android开发学习笔记:浅谈ToggleButton
  3. android 音乐游戏,手速党的胜利 -- 音乐游戏专题 #iOS #Android
  4. 安卓开发大作业_罗湖小程序开发制作价格低
  5. __attribute__((visibility(default)))
  6. redis 槽点重新分配 集群_Redis群集部署详解
  7. c++根据二叉树的层次遍历建立二叉树_二叉树-层次遍历(C++)
  8. confluence统计用户文章_首次,Flink公众号公开一些后台统计数据
  9. Spring-aop-AnnotationAwareAspectJAutoProxyCreator类
  10. linux下mongodb 安装,linux下mongodb安装