当前位置: 首页 > news >正文

1.2.3计算机软件

一个完整的计算机系统由硬件和软件组成,用户使用软件,而软件运行在硬件之上,软件进一步的划分为两类:应用软件和系统软件。普通用户通常只会跟应用软件打交道。应用软件是为了解决用户的某种特定的需求而研发出来的。除了每个人都在用的这些软件之外,也有一些专业人士使用的软件,比如说设计人员使用 Photoshop,以及CAD这类的工程制图软件,这些都是我们熟悉的应用软件。应用软件直接为用户提供服务,系统软件负责管理底层的硬件资源并且向上层的这些应用软件提供服务,比如操作系统是一种最典型的系统软件,无论是抖音、qq 还是美图,在手机上运行的时候都需要得到安卓操作系统或者 ios 操作系统的支持,所以操作系统作为一种系统软件为上层的应用软件提供了服务,大多数的应用软件在开发的时候都会需要使用到数据库的功能,数据库管理系统给上层的应用软件提供了数据库相关的一些服务,因此数据库管理系统它也属于系统软件。我们身处于一个网络时代,几乎所有的应用软件都会使用到网络软件提供的一些功能,才可以通过网络来传递信息,像网卡驱动器这一类的网络软件也属于系统软件为上层的应用软件提供了服务与支持,所有的软件在开发的时候都是使用高级语言来编写的,而高级语言翻译成更低级的机器可以识别的语言,就需要语言处理程序的服务,同时当我们在制作这些软件的时候也需要调试软件的功能,调试程序属于服务程序的一种,它也是为上层的应用软件提供服务的,在编写这些软件的时候我们也会使用到一些标准的程序库,比如我们熟悉的 printf,这些标准程序库也为上层的应用软件开发提供了支持。刚才列举的这些例子都属于系统软件,不难感受到系统软件类似于软件世界里边的基建,为上层的应用软件提供了最基础的一些功能和服务。这些软件运行在计算机硬件之上,而计算机的硬件它只能识别二进制的机器语言,显然现在编写程序不可能用0101这种二进制的机器语言去直接的编写。

通常是用一些高级语言编写程序,然后再把编写的源程序去翻译成低级的机器语言,比如我们编写了一个 c 语言的程序之后通常需要经过编译和汇编这样的两步把它翻译成等价的机器语言程序,编译器或者叫编译程序完成了编译的这一步,把高级的 c 语言翻译成了与之等价的汇编语言,第二步在经过汇编器或者叫汇编程序的翻译之后,就可以把汇编语言翻译成与之等价的机器语言,汇编语言采用助记符的方式更方便于人类理解,相比之下让人类直接去阅读这种0101的二进制机器语言是很困难的,这就是三种级别的语言。我们现在编程使用的C、C++、Java、Python这些都属于高级语言,而汇编语言和机器语言都属于低级的语言。刚才我们举了C语言程序的例子经过编译和汇编这样的两步,翻译为了与之等价的机器语言程序。还有一些编程语言可以通过编译器的翻译直接把源程序翻译成机器语言程序,也就是说有的编程语言会跳过汇编语言的这个中间阶段。

还有一些解释型的语言,比如说JavaScript或者shell脚本,这类的语言在程序执行的时候通过解释程序,把这种高级语言写的代码翻译成等价的机器语言指令。解释程序和编译程序都是把高级语言直接翻译成机器语言那二者的区别是什么呢?首先编译程序是把高级语言编写的原程序全部一次性翻译成机器语言程序,然后再来执行这个机器语言程序。举一个典型的例子在 windows 电脑当中用 c语言编写的程序最终会被我们生成一个.exe 文件,那这个.exe 文件就是机器语言程序,可以直接被 cpu 识别和运行,相比之下这种解释型的语言是在程序执行的时候每执行一句程序代码,就把这一句代码,翻译成与之等价的机器语言指令,也就是说每执行一句就翻译一句。那这就意味着如果一个程序语句被多次执行那么我是不是也得多次翻译,这就会导致效率的降低。

假如现在需要把 a 这个人说的一段中文,翻译成英文给 b 听,编译程序的这种方式就有点类似于你直接把 a 说的中文用纸质的方式把它一次性全部翻译,然后交给 b ,而解释程序的这种方式有点类似于在做同声传译, a 说一句翻译一句。想象一下如果 a 在不断重复的说同一段中文那用上面这种方式你是不是只需要进行一次翻译,而如果采用同声传译的方式那无论 a 重复了多少遍这一段中文那只要他说一次你是不是还得再翻译一次,所以通常来说这种解释型的语言要比这种编译型的语言效率要更低,最后还需要补充一个概念,无论是编译器会编器还是解释器他们都是把高级语言翻译成更低级的语言,所以这三者都可以统称为翻译程序
一个程序或者说一个软件它就是由若干的指令序列来组成的,CPU会负责执行这些指令,由CPU 这种硬件去完成每一条指令所要求的功能,最终来实现这个软件所要求的功能目标。事实上软件和硬件在逻辑功能上是等价的,同一个逻辑功能我们既可以用硬件来实现,也可以用软件的方式来实现。

举个例子,假设用户需要计算九八五乘以六这个乘法运算,如果这个硬件它本身就设计了一些电路可以直接支持乘法运算,相应的我们就可以直接使用一条乘法指令来完成九八五乘以六这个乘法运算,这就是用纯硬件的方式,用乘法电路实现了这个功能需求。假设这个CPU没有乘法电路,同时
也不支持乘法指令,可以采取另一种软件的思路去实现九八五乘以六。比如这个硬件它只要支持加法那么我们就可以编写六条加法指令,来完成六个九八五相加的操作。六个九八五相加逻辑上功能效果也是相当于九八五乘以六,通过这个例子大家应该能够感受到什么叫软件和硬件的逻辑功能等价性。同一个功能它可以用硬件实现也可以用软件实现。用硬件实现就需要设计复杂的电路,同时这个电路的制造成本也会更高,好处也很明显,会让运算的速度提升也就是让性能变强。如果用软件实现同样的逻辑功能,可以让电路的制造成本变低但同时运算的性能肯定也会下降。

既然软件和硬件在逻辑功能上是等价的,那在设计一个计算机系统的时候,这个计算机系统它到底需要有多少种电路需要支持多少种指令呢,这个就是我们在设计计算机系统的时候需要考虑的一个问题。需要引入一个概念叫做指令集体系结构,英文缩写叫ISA,指令集体系结构规定了软件和硬件之间的界面,当我们在设计一个计算机系统的这个指令集体系结构的时候,要定义这台计算机可以支持哪些指令以及每条指令的作用是什么,每条指令的用法是什么,也就是要清晰的定义软件和硬件之间的界限,既然软件和硬件在逻辑功能上都是等价的,我们可以用两种方式来实现同样的逻辑功能,并且采用软和硬两种方式实现所带来的性能以及成本的高低都各有利弊,所以在设计计算机系统的时候二者之间的界限需要被清晰的划分和定义,既要考虑性能问题也要考虑成本问题。

这个小节当中我们认识了计算机软件,计算机软件可以分为系统软件和应用软件两类,并且介绍了三个级别的语言,分别是高级语言、汇编语言和机器语言,为了把更高级的语言翻译成更低级的机器可以识别的语言,我们通常需要编译器、汇编器或者解释器的帮助,这三者都可以统称为翻译程序,都是把更高级的语言翻译成更低级的语言。这些概念可能在选择题当中进行考察,这个小节的最后也介绍了软件和硬件在逻辑功能上是具有等价性的,同一个功能我们既可以用硬件实现,也可以用软件实现,用硬件的方式实现性能高成本也更高,用软件的方式去实现性能更差成本也会更低。为了综合的考虑到性能和成本的平衡,在设计一个计算机系统的时候需要考虑到这个计算机系统的指令集体系结构,也就是要清晰的界定,这台计算机的硬件和软件之间的界限。需要设计出这台计算机可以支持哪些指令,每条指令的作用是什么,以及每条指令的用法是什么。

相关文章:

1.2.3计算机软件

一个完整的计算机系统由硬件和软件组成,用户使用软件,而软件运行在硬件之上,软件进一步的划分为两类:应用软件和系统软件。普通用户通常只会跟应用软件打交道。应用软件是为了解决用户的某种特定的需求而研发出来的。除了每个人都…...

二、uni-forms

避坑指南:uni-forms表单在uni-app中的实践经验-CSDN博客...

Android13开机向导

文章目录 前言需求-场景第三方资料说明需求思路按照平台 思路 从配置上去 feature换个思路,去feature。SimMissingActivity 判断跳过逻辑SetupWizardUtils 判断SIM 、 hasSystemFeature FEATURE_TELEPHONYPackageManager.FEATURE_TELEPHONYApplicationPackageManage…...

软件测试丨Appium 源码分析与定制

在本文中,我们将深入Appium的源码,探索它的底层架构、定制化使用方法和给软件测试带来的优势。我们将详细介绍这些技术如何解决实际问题,并与大家分享一些实用的案例,以帮助读者更好地理解和应用这一技术。 Appium简介 什么是App…...

1.网络知识-IP与子网掩码的关系及计算实例

IP与子网掩码 说实话,之前没有注意过,今天我打开自己的办公地电脑,看到我的网络配置如下: 我看到我的子网掩码是255.255.254.0,我就奇怪了,我经常见到的子网掩码都是255.255.255.0啊?难道公司配…...

Android中Gradle常用配置

前言 本文记录了一些常用的gradle配置,基本上都是平时开发中可能会使用到的,如果有新内容会不定时更新,附官网 1.依赖库版本写法 不推荐写法: dependencies {compile com.example.code.abc:def:2. // 不推荐的写法 }这样写虽然可…...

Linux操作系统3-文件与IO操作2(文件描述符fd与文件重定向)

上篇文章:Linux操作系统3-文件与IO操作1(从C语言IO操作到系统调用)-CSDN博客 本篇代码Gitee仓库:myLerningCode 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 本篇重点:文件描述符fd与文件重定向 目录 一. 文件描述…...

k8s调度策略

调度策略 binpack(装箱策略) Binpacking策略(又称装箱问题)是一种优化算法,用于将物品有效地放入容器(或“箱子”)中,使得所使用的容器数量最少,Kubernetes等集群管理系…...

uniapp中父组件传参到子组件页面渲染不生效问题处理实战记录

上篇文件介绍了,父组件数据更新正常但是页面渲染不生效的问题,详情可以看下:uniapp中父组件数组更新后与页面渲染数组不一致实战记录 本文在此基础上由于新增需求衍生出新的问题.本文只记录一下解决思路. 下面说下新增需求方便理解场景: 商品信息设置中添加抽奖概率设置…...

螺丝螺帽缺陷检测识别数据集,支持yolo,coco,voc三种格式的标记,一共3081张图片

螺丝螺帽缺陷检测识别数据集,支持yolo,coco,voc三种格式的标记,一共3081张图片 3081总图像数 数据集分割 训练组90% 2781图片 有效集7% 220图片 测试集3% 80图片 预处理…...

一个简单带颜色的Map

越简单 越实用。越少设计,越易懂。 需求背景: 创建方法,声明一个hashset, 元素为 {“#DE3200”, “#FA8C00”, “#027B00”, “#27B600”, “#5EB600”} 。 对应的key为 key1 、key2、key3、key4、key5。 封装该方法&#xff0c…...

kubeadm安装K8s集群之基础环境配置

系列文章目录 1.kubeadm安装K8s集群之基础环境配置 2.kubeadm安装K8s集群之高可用组件keepalivednginx 3.kubeadm安装K8s集群之master节点加入 4.kubeadm安装K8s集群之worker1节点加入 kubeadm安装K8s集群基础环境配置 1.首先确保所有机器可以通信,然后配置主机host…...

前端实现在线预览excel文件

在前端开发中,经常会遇到需要在线预览各种文件的需求。本文将介绍如何使用前端技术实现在线预览 Excel 文件的功能。 一、基于微软office服务的excel预览 获取要预览的 Excel 文件的 URL(例如存储在 OneDrive 或 SharePoint 上的文件)。 使…...

关于idea-Java-servlet-Tomcat-Web开发中出现404NOT FOUND问题的解决

在做web项目时,第一次使用servlet开发链接前端和后端的操作,果不其然,遇到了诸多问题,而遇到最多的就是运行项目打开页面时出现404NOT FOUND的情况。因为这个问题我也是鼓捣了好久,上网查了许多资料才最终解决&#xf…...

SCRM私域流量管理工具助力企业微信电商转型升级

内容概要 在当今数字化时代,SCRM(社交客户关系管理)私域流量管理工具正逐渐成为企业转型的重要助力。尤其是在电商领域,企业微信的兴起为许多公司打开了新的销售渠道,通过SCRM系统的高效整合,企业能够更加…...

三相异步电动机为什么能够旋转?

三相异步电动机,作为一种广泛应用于工业、农业及其他领域的电动机,其工作原理的理解对于工程技术人员以及相关从业者来说至关重要。 一、三相异步电动机的基本结构 三相异步电动机主要由定子、转子和机壳组成。定子是电动机的静止部分,包含…...

优化移动端H5:常见问题与解决方案

移动端H5开发中的“坑”与解决方案 本文介绍了开发中遇到的几个关于移动端H5开发中的小问题,以及解决的方法。 一、iOS滑动不流畅问题 在iOS设备上,H5页面的滑动效果有时会出现不流畅的情况,特别是在页面高度超过一屏时。这通常是由于iOS的…...

TM1不藏私系列——#10. TM1快速运算的秘密武器-Feeder

与其他BI产品对比,TM1的快速运算能力一骑绝尘。 但是在多维度的数据组合下,TM1是依据什么进行运算的呢? 今天将和大家一同了解TM1快速运算的秘密武器-Feeder。 上期我们提到通过配置维度中的元素权重,可以在合并层级加总计算。除…...

【Python】【Conda 】Conda vs venv:Python开发者的虚拟环境选择指南

目录 引言一、概述1.1 Conda 虚拟环境1.2 Python venv 虚拟环境 二、安装与设置2.1 安装 Conda 虚拟环境2.2 安装 Python venv 虚拟环境 三、依赖管理3.1 Conda 依赖管理3.2 Python venv 依赖管理 四、适用场景五、性能与资源占用5.1 Conda 性能与资源占用5.2 Python venv 性能…...

【从0学英语】06.时态 - 一般过去时

一般过去时(Past Simple Tense)是表达过去发生的动作、状态或事实的核心时态。这一时态都扮演着不可或缺的角色,本篇文章将全面讲解一般过去时的定义、结构、用法以及常见的动词变化,通过例句和详细的解释帮你理解这一时态。 文章…...

获取cpu序列号-python实现

DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” -------------------------------------------------------------…...

文献分享: PLAID——为ColBERT架构设计的后期交互驱动器

👉前情提要: 神经网络自然语言模型概述 Transformer \text{Transformer} Transformer与注意力机制概述 📚相关论文: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding \text{BERT: Pre-train…...

IMX6ULL开发板、PC机上的USB网卡、VMware中的Ubuntu的桥接网卡三者互Ping设置及设置

连上PC机上的USB网卡配置 首先打开Windows设备管理器,截图记录下当前的网络适配器,作为插上USB网卡后的对比: 然后打开“更改适配器选项”,也截张图,作为插上USB网卡后的对比: 插上USB网口&#xff0…...

孚盟云 MailAjax.ashx SQL漏洞复现

0x01 产品描述: ‌孚盟云‌是由...

前端 mp4 视频改成 m3u8 流模式

前端 mp4 视频改成 m3u8 流模式 mp4 视频的问题 1、mp4 视频通常对应一个文件,播放时需要加载全部文件,消耗网络资源。如果用户从中间某个时间访问,也会从头开始下载,浪费服务器性能。 2、mp4 视频文件容易被用户下载到本地。有…...

聚焦港口智能接处警,开启平安海运之门

一、概述 港口作为海运的关键枢纽,安全保障至关重要。港口智能接处警系统凭借智能化、数字化、信息化手段,融合 AI 与大数据等前沿技术,旨在实现对港口各类警情的快速、精准处理,有效提升港口应急响应能力,开启平安海…...

`yarn list --pattern element-ui` 是一个 Yarn 命令,用于列出项目中符合指定模式(`element-ui`)的依赖包信息

文章目录 命令解析:功能说明:示例输出:使用场景: yarn list --pattern element-ui 是一个 Yarn 命令,用于列出项目中符合指定模式( element-ui)的依赖包信息。 命令解析: yarn list…...

ElementEye,网页分析器

介绍 我们经常使用Python写爬虫,爬到网页数据之后,就需要用beautifulSoup进行解析。因为写爬虫并不是我的主营工作,大多数只是用来分析一下想要的数据而已,所以经常会忘记beautifulSoup的用法。 同时,我们总是分析页面…...

健康管理系统(Koa+Vue3)

系统界面(源码末尾获取) 系统技术 Vue3 Koa Nodejs Html Css Js ....... 系统介绍 系统比较简单,轻轻松松面对结业课堂作业.采用的是基于nodejs开发的Koa框架作为后端,采用Vue框架作为前端,完成快速开发和界面展示. 系统获取 啊啊啊宝/KoaVue3https://gitee.com/ah-ah-b…...

智创 AI 新视界 -- AI 助力金融风险管理的新策略(16 - 10)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

网站建设企业蛋糕/软文推广经典案例

git add -A和 git add . git add -ugit add . :监控工作区的状态树,运行会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。git add -u :仅监控已经被add的文件&…...

勉费申请做网站/关键词搜索神器

关于Spring中基于xml文件配置bean的详细总结(spring 4.1.0) 一、Spring中的依赖注入方式介绍 依赖注入有三种方式 属性注入构造方法注入工厂方法注入(很少使用,不推荐,本文不再介绍)属性注入 通过 setter…...

哪些网站做推广性价比高/核心关键词

注释:锚的这两种类型都使用同样的标签;也许这就是它们拥有同样的名称的原因。但是我们发现,如果将它们区分开,把提供热点和超链接地址的锚看作“链接”,而用于标记文档的目标部分的锚称为“锚”,那么您将更…...

网站开发文档管理工具/网站排名优化方案

第一步:先安装pydevpyDev:http://www.pydev.org/updates 第二步:配置python解释器路径安装好pydev后, 需要配置Python解释器。在Eclipse菜单栏中,点击Windows ->Preferences. 在对话框中,点击pyDev-&…...

wordpress 图标不显示/市场营销方案

1.控制台:执行过 Hibernate: select count(*) as y0_ from V_TRANSDETAIL_INFO this_ 后报错:Caused by: java.sql.SQLSyntaxErrorException: ORA-01031: 权限不足分析:debug,跟进去确实是因为查询存储过程V_TRANSDETAIL_INFO…...

快速搭建网站 优帮云/谷歌独立站seo

在我们生活中,对于账户的自动登录已经很常见了,所以利用过滤器实现这个功能。主要介绍用户的自动登录和取消自动登录,以及实现一天自动登录或者n天实现自动登录,当用户ip被加入到黑名单之后,直接利用过滤器返回一个警告…...