软件是怎样控制硬件的?
软件是怎样控制硬件的?
★当你往计算机设备里看时,能看到一大推电路、芯片、电线,扬声器、接口和其他东西,这些都是硬件,你看不见摸不着的就是软件。
软件是计算机上所有的程序,或运行在机器上的代码。软件可以是任何形式,从应用程序和游戏到网页,以及在网站上给客户行为的数据科学软件。
但是软件和硬件是如何结合起来起作用的呢?让我们从计算机的中央处理器,即CPU开始说起。CPU是控制计算机其他部分的主芯片,CPU需要做不同的事情,因此它内部有很多小的电路来处理特定的任务,它有电路来做简单的数学和逻辑计算。其他电路用来从计算机的不同部分发送和接收信息。CPU最神奇之处在于它知道使用哪个电路,什么时候用。
CPU会接收简单的命令来告诉它用哪个电路来执行特定的任务。例如,一个“加”的命令告诉CPU用外部电路来计算新数字,然后用“存储”命令告诉计算机用不同的电路来将结果存到存储器中。和数字一样,所有的这些简单的命令都用二进制的1和0表示,或者ON/OFF的电路信号。
二进制命令存在存储器中,CPU将它一条条的取出来执行。实际上,这一系列的命令就是一个非常简单的计算机程序。
二进制代码是软件的基本形式,它控制了计算机上的所有硬件。现在没有人用二进制写程序了,因为这样太慢了。现在程序员写的软件更像是PYTHON或这样RUBY,甚至是这样BLOCKLY。像这样的编程语言,用非常像英语的方法来输入命令。只需要一条命令就能在屏幕上画一个正方形。这条高级命令会被转换为成百上千CPU能理解的简单二进制命令。
软件告诉硬件CPU做什么,当你听音乐时,又浏览网页,并和朋友聊天,你的计算机会同时运行多个软件。那么这些程序是如何到计算机上,CPU又如何一起运行它们的呢?为了寻找答案,我们要看一看操作系统。
操作系统是计算机的主程序,它负责管理软件如何使用硬件、管理软件资源使计算机有效地利用这些资源的程序集合。操作系统的任务是:管理处理器、管理存储器、管理设备、管理文件和管理最终输出作业。例如大多数人个人计算机的Windows操作系统。
操作系统是一种能控制计算机上其他软件的特殊应用程序。它让你能通过将程序读取到内存中来安装新程序。它决定了什么时候程序运行在CPU上,程序是否能操作输入和输出设备。你可能认为计算机在同时运行多个程序,实际上并非如此,操作系统能在一秒钟内非常快速的切换程序好多次,从而共享CPU。
软件是怎样控制硬件的?相关推荐
- 计算机软件如何控制硬件工作,介绍软件是怎样控制硬件的
今天小编和大家分享软件是如何控制硬件.下面是小编为大家精心整理的关于介绍软件是怎样控制硬件的,希望能够帮助到你们. 方法/步骤 1硬件就是电路,软件和硬件所存储的信息的本质其实就是电路上一些开关的状态 ...
- 软件是如何控制硬件的?
文章目录 通过操作系统控制硬件 中断机制 文字及图片的显示机制 通过操作系统控制硬件 现象: 在用 C 语言等高级编程语言开发的 Windows 应用中,大家很少能接触到直接控制硬件的指令. 结论: ...
- 5.计算机发展个人理解-电路终究是电路 软件如何控制硬件 代码如何操作硬件 硬件是怎么执行代码 代码如何执行 软件与硬件如何交互 计算机思维 抽象 封装 规范 屏蔽 协议分层...
计算机只是逻辑电路 除了电路还是电路 计算机就是一堆逻辑电路 他并不知道你到底想要干什么,他也不会理解什么是文件,什么是进程 通电的瞬间,就好像你打开开关,灯泡发光一样 所有的一切都是通过通电来启动的 ...
- 软件如何控制硬件、编译器和操作系统是否需要编译
软件如何控制硬件.编译器和操作系统是否需要编译 ----作者:山野子 QQ:814577355 注:相信很多人都会有跟我一样的疑问,那就是软件如何控制硬件.编译器和操作系统是 否需要编译?为了解决这个 ...
- 多余的读写端口什么时候会对程序造成影响_程序员需要了解的硬核知识之控制硬件...
应用和硬件的关系 我们作为程序员一般很少直接操控硬件,我们一般通过 C.Java 等高级语言编写的程序起到间接控制硬件的作用.所以大家很少直接接触到硬件的指令,硬件的控制是由 Windows 操作系统 ...
- python画锯齿波_用Python控制硬件35-自制二三十元成本的信号测量采集控制系统
如前篇所介绍,用Shell Lab测试台软件配合之前介绍的任意款实验板,都能方便地实现ADC电压测量,但遇到两个问题: 示例代码虽然众多,但大都默认ShellLab类型的控制器,需要手动改为Mcush ...
- 控制只读_用Python控制硬件44-四位半万用表UT61E
UT61E是优利德公司手持式万用表中精度较高的一款(四位半精度),同时也是少有的支持PC通讯的手持表,这两个特点使得这款表特别适合用于实验测试自动化,且具有很高的性价比. 仪表顶部的光电通讯口只有一路 ...
- IC验证培训——AI时代:软件已经起飞,硬件还在路上?
为响应全国各地心心念路科验证培训的路粉们,路科将在9月1日进行线上培训,线上报名方式如下: 手机安卓端(暂不支持iOS)可在[腾讯课堂]APP搜索"路科验证",即能够找到报名入口, ...
- 程序员需要了解的硬核知识之控制硬件
应用和硬件的关系 我们作为程序员一般很少直接操控硬件,我们一般通过 C.Java 等高级语言编写的程序起到间接控制硬件的作用.所以大家很少直接接触到硬件的指令,硬件的控制是由 Windows 操作系统 ...
最新文章
- 使用hello word写小说
- 十大python开发软件-7款公认比较出色的Python IDE,你值得拥有!
- mysqlsla的使用
- 面向领域驱动的应用开发框架Apworks 2.5发布
- 布隆过滤器Bloom Filter简介
- Python 进阶:enum 模块源码分析
- PollardRho大整数分解
- 人工机器:人工智能中的机器学习方法
- MYSQL性能调优及架构设计学习笔记-影响MYSQL性能的相关因素之实例分析
- Python 使用 Scrapy 发送 post 请求的坑
- html中实现类似于弹幕的效果代码,javascript实现弹幕效果
- phpmyadmin安全预防
- linux mint自动登录,Linux Mint 19.2新功能/新特性介绍,包含Cinnamon、MATE、Xfce版本
- C语言 —— 符号(C语言的基本符号)
- AIR小应用--北京机动车限行提示
- 抖音上热门规则 视频md5码查看器
- 【国外网站软件下载慢解决】
- 对赌协议里,隐藏了多少致命陷阱
- 【mud】call_out()函数
- 【J2EE】模仿天猫商城(后台篇)
热门文章
- Linux下Django环境安装
- Android开发学习笔记:浅谈ToggleButton
- android 音乐游戏,手速党的胜利 -- 音乐游戏专题 #iOS #Android
- 安卓开发大作业_罗湖小程序开发制作价格低
- __attribute__((visibility(default)))
- redis 槽点重新分配 集群_Redis群集部署详解
- c++根据二叉树的层次遍历建立二叉树_二叉树-层次遍历(C++)
- confluence统计用户文章_首次,Flink公众号公开一些后台统计数据
- Spring-aop-AnnotationAwareAspectJAutoProxyCreator类
- linux下mongodb 安装,linux下mongodb安装