精华内容
下载资源
问答
  • controllers)一种集成电路芯片,把中央处理器CPU、存储器、多种I/O口和中断系统、定时器/计数器等功能(可能还包括模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成一个小而完善微型计算机系统。...

    首先讨论各种单片机与操作系统的关系

    芯片,是指内含集成电路的硅片。

    单片机Micro-controllers)是一种集成电路芯片,是把中央处理器CPU、存储器、多种I/O口和中断系统、定时器/计数器等功能(可能还包括模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统

    说到单片机,大家第一时间想到的应该是51单片机,对吧。不错,我们把功能不是很强大的单片机就叫单片机。那么更高级一点的芯片如ARM7,intel8086,80386,Core i3、i5、i7 等等,为突出其超强中央处理器CPU的性能,我们更习惯称他们为CPU(中文:处理器),因为学习计算机原理的时候都是这么叫的,但按照单片机的定义,他们也是归属于单片机,当然也都属于芯片。这也不怪大家,中国的教育都是这样,只注重告诉你是什么,而不告诉你他们之间的联系。

    上述几种单片机在原理上都是一样,即都是有运算器 控制器 寄存器构成的,不同之处在于它们的硬件电路实现不同,个数不同,功耗不同,计算能力不同,但都提供相同的基本功。

    总结:

    1、单片机与处理器的区别:功能一般的单片机,我们把它们称为单片机,如51单片机;功能强大一点的单片机,比如强大到可以搭载操作系统,我们习惯把它们称为CPU(处理器),如我们常说的英特尔处理器。其实这是都是单片机。

    OK,终于让cpu找到了单片机的组织,那么就介绍为什么有的单片机要操作系统,有的在我们学习的过程中压根就跟操作系统不挨边。

    对于功能一般的单片机,如51/AVR单片机,在学习他们的时候,都是先介绍它们有哪些资源——有几个寄存器,有几个时钟等,然后就是怎么用汇编,用C或者是C与汇编混合编程。这里我们用的语言都是可以直接操作硬件资源的,比如直接控制io口输出高低电平,往哪个寄存器上存什么数据等。因此我们可以自己决定什么时候使用哪个寄存器,什么时候将寄存器内容写到辅存储器中。

    对于功能再强大一点的,如ARM单片机,在学习它的时候,我们可以给他搭载操作系统,如MicroC/OS,iOS X, Android或者其他定制的linux操作系统,但有时我们也经常不让它搭载操作系统,而是直接像使用51单片机那样来操作它。

    对于功能更强大一点的,如Core i3、i5、i7单片机(或者CPU,如果你还是不喜欢用单片机来形容这么牛逼的硬件) 你几乎没有听说过身边谁会在这种单片机上直接开发应用。因为在这种单片机上开发的应用有一个很牛逼的名字——操作系统! 由于这种单片机提供的资源太多,能干的活太多,我们需要有一个专门的程序来负责管理它,从而避免对相同的功能重复开发。这样我们就可以从对硬件编程中解放出来,更专注于应用层面的开发。从某种意义上来说,操作系统也就是一个应用程序而已,只不过他有点特别。

    一般这种情况下,打个比方会比较好——单车和汽车。单车很简单,我们对它的构成及零部件也很熟悉,链条掉了,我们也完全能够应付。这就好比51单片机,资源不多,我们完全能够hold住。相较而言,汽车则复杂很多,有减速系统,刹车系统,电子系统,空调系统等等,但是我们并不需要清楚他们的硬件工作原理,我们之需要知道按那个开关,踩那个踏板就好了。这就好比单片机上的操作系统,它不需要我们清楚硬件的构造,想要实现功能,直接调用系统提供的API就可以了。(比如控制数码管,普通单片机上需要根据硬件电路确定控制数码管的段选、位选等的IO引脚,然后给这些引脚0或者1,数码管才会显示一些数字;如果有操作系统,我们可以直接调用操作系统提供给我们的接口,我们往接口里写我们想显示的数字就可以了,剩下的交给操作系统去完成。也就是说,我们不需要关心数码管硬件上怎么与单片机引脚相连接,只需要调用操作系统提供给我们的这些api接口就可以,于是开发由单片机的硬件层转移到操作系统的应用层上了)。在我们双脚不停的蹬着踏板,自行车就前进这个动作中,我们是清楚的知道这其中各个部件的运行原理过程的;但如果你是踏着油门,汽车就跑起来,我觉得大部分人都不了解其中涉及到了哪些部件,以及各个部件的原理的。但这并不妨碍我们使用,不是吗。

    总结:

    2、功能一般的单片机,我们开发一个小功能需要直接与硬件电路打交道,也就是基于硬件层面进行开发的,所以学习的时候需要知道这个单片机有哪些硬件资源,外围电路怎么样等,然后用汇编或者c去实现;

    功能强大的单片机,它所能提供的资源太多了,于是需要一个牛逼的应用程序来管理--操作系统;于是我们在这类的单片机上开发应用转移到了基于操作系统的开发了。一般这个时候就有一些专门的开发工具,比如visual studio,来开发windows系统的应用。再比如我们现在智能手机的cpu,功能强大吧,也是需要一个操作系统--Android系统来管理的,开发使用Android studio作为开发工具来开发应用程序。

    2> cpu的架构与指令集的关系

    单片机依靠指令来计算和控制系统,每款cpu在设计时就规定了一系列与其硬件电路相配合的指令系统,或者说某款cpu的硬件设计其实就是针对某个指令集的一种硬件实现。指令集也就是所谓的一些特殊含义的目标代码(或称为机器代码,是可以直接在CPU上运行的代码),可以看作是要求cpu对外提供的功能,某款CPU的设计肯定是朝着某个指令集来的。所以,不同的cpu架构,也表示这他的指令集要么较之前的指令集有所拓展或者就是实现了一种全新的指令集。指令集中的一条指令,就是让cpu完成一系列的动作,而该动作的完成则表明了某种运算的完成。一个功能可能需要一条或几条指令来实现。比如汇编的MOV或者LD语句就可能对应着几条cpu指令。就是说某某CPU构架。

    下面介绍几种常见的CPU架构与指令集的对应关系(所谓架构是指硬件电路的实现):

    intel X86架构CPU可能实现了多个指令集x86,x86-64,MMX,SSE,SSE2,SSE3,SSSE3 ,而这些指令集中的指令让cpu完成的动作都比较复杂,所以也称为CISC(复杂指令集)

    AMD amd64架构的cpu 兼容了x86指令集还拓增了3D-Now!指令集,用于加强对3D显示的支持。

    ARM ARMv1~ARMv7架构的cpu实现了Thumb指令集和ARM指令集。这些指令集中的一条指令让cpu完成的动作都比较简单,所以也称为RISC指令集(精简指令集)。

    总结:

    3、指令集是一套特殊功能的机器代码,如mov功能,翻译成机器代码类似这样的01010100,LD功能,00010010;

    4、cpu架构是指对该cpu的指令集的硬件电路的实现;如arm架构,其实就是对RISC指令集的硬件电路实现。

    3> 指令集与操作系统的关系

    这里要重新提及一下之前讲到的两个概念:指令集——就是机器代码;操作系统——就是应用程序

    首先我们要知道计算机只能运行二进制。所以不论是操作系统还是普通的应用程序最终都得转化到二进制代码才能够被cpu所处理。而用高级语言编写的普通应用程序都必须经过编译器编译后成为二进制代码(指令)才能运行。

    不同的cpu所实现的指令集不同,(如同样是mov指令,在intel上机器代码可能是00110011,在arm上可能是1100...1100的32位),所以不同的指令集对应的编译器也不尽相同,编译器不同,相同的高级语言程序经过编译后所得到的二进制代码也不同。这就引出了“移植”和“跨平台”两个概念。OK,重新捋一下:cpu架构-指令集-编译器-程序 环环相扣,紧密联系。所以你就会听到说Windows操作系统只能够运行在X86架构的CPU上,不能运行在Power 或 ARM 上。所以你也可以看到有的编译器是有硬件厂家提供的,比如Intel就提供C和C++的编译器,这样编译出来的程序就能更好的利用硬件的性能。那为什么又会听到linux可以运行在不同架构的CPU上呢?比如linux可以安装到电脑上,也可以安装到嵌入式系统上;那是因为linux是开源的,它的源码(高级语言代码)是可以下载获取的,然后在用相应的编译器编译,就得到了可以在该CPU上运行的二进制代码了,因此就可以将它移植到不同的CPU平台上。而Windows是封闭的,得不到源代码,而微软自己又没有移植到别的CPU平台上的打算,所以当然就只能在X86上运行了。(BTW,X86也是性能最好的CPU之一,而Windows对性能要求较高,所以微软当然也就不愿意移植了)。

    总结:

    5、操作系统能不能移植到其他cpu上,看是否能获取到系统的源代码及该cpu的编译器,有了这两个就可以将源代码编译成该cpu能执行的机器代码;linux源代码开源,谁都可以下载它的源码,所以它可以移植到很多的cpu上运行。

    4>ARM和ARM架构

    ARM(Advanced RISC Machine)是英国的一家公司;该公司能提供arm架构的设计方案给硬件厂商,这样硬件厂商就能根据arm公司提供的设计方案制作出cpu芯片,如苹果、高通和联发科的智能手机芯片,我们实验室中采用的dsp28335芯片作为逆变器控制器的主控芯片,均是采用arm公司提供的arm架构的设计方案制作出各种cpu芯片。而arm公司通过授权这些arm架构设计的方案给硬件厂商并给厂商提供技术支持来盈利。

    展开全文
  • 我最近又开始想着鼓捣游戏开发了。大家知道在游戏开发中经常要处理“碰撞检测”,这一个非常吃性能的计算过程,我就一直在想有什么办法能够优化“碰撞检测”执行效率。...在冯诺依曼的计算机模型中,我们常说的屏.

    我最近又开始想着鼓捣游戏开发了。大家知道在游戏开发中经常要处理“碰撞检测”,这是一个非常吃性能的计算过程,我就一直在想有什么办法能够优化“碰撞检测”执行效率。

     

    然后我突然想到在操作手机时,我的手指相对于Android系统不就是一个经典的“碰撞检测”吗?

    首先我们来看这样一个场景:屏幕上有N个按钮,我们随意点击其中一个,手机怎么知道我点的是哪一个?

    可能有小伙伴会问:这不是很简单吗?因为你点了屏幕啊,屏幕知道你点的是哪个按钮就行了啊。

    但是事情不是这样。在冯诺依曼的计算机模型中,我们常说的屏幕被分为显示屏和触摸屏,分别表示输出设备、输入设备。

    与一般的输入设备键盘不同,触摸屏只能接收到手指在屏幕上的坐标。在收到坐标信息之后,它将物理信号转化为二进制的数据,并交给操作系统去处理。

    具体到Android系统中,它的整个单击事件处理流程是这样的:

    1、触摸屏收到坐标

    2、将坐标信息转为二进制信息交给Android

    3、Android系统将触摸事件再进行一次封装,并交给当前页的Activity

    4、activity把触摸事件再传递给PhoneWindow,PhoneWindow再传递给DecorView

    5、DecorView继承自FrameLayout,FrameLayout继承自ViewGroup

    6、最后知道手指点了哪个按钮的就是ViewGroup,使用的方式是最简单粗暴的遍历

    说来惭愧啊,本来我是想通过Android源码来找找灵感。看看能不能找到更简单、高效的方法解决“碰撞检测”问题,结果找了半天发现原来小丑竟在我身边。。。

    不过这波源码查找也不是完全没有收获的,至少我现在知道

    1、Window这个抽象类的唯一子类就是PhoneWindow

    2、Dialog、Activity它们的setContentView方法实际上就是在往DecorView中添加View

     

     

     

     

     

     

     

     

     

    展开全文
  • 计算机网络所讨论透明传输,是指比特流看不见电路存在。这样看来,两种“透明”意思很不一样。应当怎样理解? 问题1-25:怎样才能知道哪些RFC文档已经成为因特网正式标准(草案或建议标准)? 问题1-26:...
  • 前言:  我们都知道32位的操作系统可以寻找4g的内存空间。因此我们安装一个32位系统再配置4g的内存条,看起来应该一个完美的方案。...大家常说的物理内存就是安装在主板上的内存条,其实不然,在计算机系统

    前言:

        我们都知道32位的操作系统可以寻找4g的内存空间。因此我们安装一个32位系统再配置4g的内存条,看起来应该是一个完美的方案。可是,当我们装好系统配好内存,打开任务管理器后,确发现我们的物理内存只有3g左右,这是怎么一回事呢?

    预备知识:

        要回答这个问题,我们首先要搞清楚什么是物理内存?大家常说的物理内存就是指安装在主板上的内存条,其实不然,在计算机的系统中,物理内存不仅包括装在主板上的内存条(RAM),还应该包括主板BIOS芯片的ROM,显卡上的显存(RAM)和BIOS(ROM),以及各种PCI、PCI-E设备上的RAM和ROM。

    解释:

        所以答案就显而易见了。其实32位系统寻址的4g物理内存,这里的物理内存就是上面提到的物理内存的概念。即,寻址的这4g内存空间,一部分来自于我们安装的物理内存条,剩下的部分来自BIOS(ROM),显存等等。所以我们装的4g内存条只用到了其中的一部分。
        详细点来说,虽然可以安装4GB内存条,但这4GB的内存空间不能全部纷配给内存,因为从4GB空间的顶端地址(FFFF_FFFFh)开始向下要有400MB-1GB的地址空间要分配给主板上的其他物理内存。我们可以看到4GB的地址空间可以分为两大部分,0MB~物理内存顶端的地址分配给主板上安装的物理内存,4GB到物理内存顶端的地址分配给BIOS(ROM)和PCI/PCI-E设备的存储器。由于这些存储器基本上是用于系统的输入和输出,所以Intel又把这段地址空间称之为“MMIO”(Memory-Mapped I/O—I/O存储器映射)。当系统安装3GB以下的内存时,MMIO区域不会与物理内存条的地址空间相重叠,操作系统可以访问几乎全部的物理内存,而操作系统属性里显示的物理内存基本接近实际内存的容量。而当系统安装上4GB内存时,问题出现了。由于位于4GB下面的部分地址空间要优先分配给MMIO,内存条上对应的这段区间就得不到编址,所以操作系统就不能使用。

    参考:http://blog.csdn.net/jxhui23/article/details/8374017

        
    展开全文
  • 展开全部开发时软硬件环境是产品开发时所涉及到编程语言e69da5e887aa62616964757a686964616f31333431373235以及用到...然而软件环境是指开发时编译环境及相关驱动程序,包括操作系统计算机版本号等。如...

    展开全部

    开发时的软硬件环境是产品开发时所涉及到的编程语言e69da5e887aa62616964757a686964616f31333431373235以及用到的硬件设备。

    运行过程中的软硬件环境指涉及到的编程语言支持的编译环境及软件运行时所应该具有的设备和相关硬件设施。

    对于开发来说,所有电脑的硬件代表整个硬件环境。然而软件环境是指开发时的编译环境及相关的驱动程序,常包括操作系统、计算机版本号等。如果要求特定的功能方面,则还需在系统中装入特定序号的软件或者驱动程序,例如WORD和其他相关事项,以及如果是软件开发,则必须指定使用的计算机语言和版本号。

    扩展资料:

    软件工具是软件开发的核心,其中交互式对话系统常常采用人机交互界面进行完成,人机交互界面是衡量机器开发环境质量的重要标志,而软件开发环境的核心是存储各种软件工具处理产生的软件产品或半成品的软件环境数据库,所有工具之间的联系和相互理解是通过存储在信息库中的共享数据来实现的。

    软件开发常用到的几种语言如下:JAVA,C / C ++ / php / JSP / ASP / POWERBUILDER / DELPHI / .NET / C#/ vb /等。

    随着应用程序最关键的需要使用数据库,常见的数据库有:MySQL / SQLSERVER / ORACLE等。

    展开全文
  • 网上浏览视频,听歌,聊天,计算机是怎么在“你”、“我”之间传送...  在互联网通信中,最重要和著名的就是TCP、IP两个协议,但是我们现在常说的TCP/IP协议并不是单着两种协议,而是整个TCP/IP协议族。 二、计.
  • 问题3-6:为什么计算机进行通信时发送缓存和接收缓存总是需要? 问题3-7:以太网使用载波监听多点接入碰撞检测协议CSMA/CD。频分复用FDM才使用载波。以太网有没有使用频分复用? 问题3-8:在以太网中,不同传输...
  • 这里IDE设备包括了IDE硬盘和IDE光驱,第一、第二组设备是指主板上第一、第二根IDE数据线,一般来说靠近芯片是第一组IDE设备,而主设备、从设备是指在一条IDE数据线上接两个设备,大家知道每根数据线上可以接...
  • 管理信息系统

    2017-09-05 11:42:00
    1.信息与数据区别是什么? 信息含有一定含义数据,或者我们人类可以直接理解内容。比如一条短信就是信息。一封信也信息 数据则常指信息载体,把信息进行转化以便于保存和处理。比如很多信息在...
  • 理解管理信息系统

    2017-09-05 20:16:00
    信息含有一定含义数据,或者我们人类可以直接理解内容。比如一条短信就是信息。一封信也信息。数据则常指信息载体,把信息进行转化以便于保存和处理。比如很多信息在计算机以2进制数据方式保存。 ...
  • Linux 在 1991 年发展起来与 UNIX兼容操作系统,可以免费使用,它源代码 可以自由传播且可任人修改、充实、发展,开发者初衷要共同创造一个完美、理想并 可以免费使用操作系统。 我们并不能使同学...
  • 19. 员工离开自己的计算机时要立即设置【锁屏】。 20. "在模 p=7 的剩余{0,1,2,3,4,5,6}可以定义为有限域,其中加法为+p,加法幺元为 0, 21. 乘法为×p,乘法幺元为 1,对于乘法,除元素【0】以外的元素都有逆元。" ...
  • Eureka与Zookper区别

    2019-06-04 16:41:22
    CAP 定理,1998年,加州大学的计算机科学家 Eric Brewer 提出的,在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得(我们常说的鱼和...
  • 网络安全

    2021-02-27 17:51:03
    网络安全 前言 人们常说21世纪是网络极其发达时代,网络应用已经渗透...网络攻击(Cyber Attacks,也称赛博攻击)是指针对计算机信息系统、基础设施、计算机网络或个人计算机设备,任何类型进攻动作。对于计算机
  • 软件架构评估指导书

    2011-11-20 00:40:59
    SEI认为一个程序或计算机系统的软件架构是指此系统一个或多个结构,一个系统包含多个组件以及这些组件外部可见属性和各组件之间关系。“外部可见”属性是指其他组件使用该组件时假设,如它提供服务、性能...
  • OSI七层模型结构

    2011-01-08 08:22:03
    互联网的各项应用,其实都是分层的,也就是各位网络达人常说的OSI七层模型,下面我们就来具体看看互联网的OSI七层模型。  一、什么是互联网OSI模型?  OSI(Open System Interconnection)是指开放式系统...
  • OSI七层模型

    2009-12-28 13:52:00
    互联网的各项应用,其实都是分层的,也就是各位网络达人常说的OSI七层模型,下面我们就来具体看看互联网的OSI七层模型。 一、什么是互联网OSI模型? OSI(Open SystemInterconnection)是指开放式系统互联参考模型...
  • 互联网的各项应用,其实都是分层的,也就是各位网络达人常说的OSI七层模型,下面我们就来具体看看互联网的OSI七层模型。一、什么是互联网OSI模型?OSI(OpenSystemInterconnection)是指开放式系统互联参考模型。在...
  • <br>正如前面说的,包的状态依据IP所包含的协议不同而不同,但在内核外部,也就是用户空间里,只有4种状态:NEW、ESTABLISHED、RELATED和INVALID。它们主要和状态匹配一起使用。 <br>NEW <br>NEW说明这...
  • 下面以iptable_filter.o 模块工作流程为例简单介绍一下Netfilter/Iptables 系统是如何工作。 当数据包进入系统时,系统首先根据路由表决定数据包流向(即将数据包发往那个关键点),则可能 有三种情况: 图1 分组...
  • windows实用dos命令大全

    2010-12-10 21:27:35
    (1)子目录在删除前必须,也就是需要先进入该子目录,使用DEL(删除文件命令)将其子目录下文件删空,然后再退回到上一级目录,用RD命令删除该了目录本身;  (2)不能删除根目录和当前目录。  例:...

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

常说的计算机系统是指什么