为什么CPU可以跑操作系统,单片机却不行

这是老师留的一个简答题,给的提示大概是主频、字节。单片机内部没有管理单元。
有没有比较完整书面的解释啊?

如果低端单片机可以跑操作系统那就逆天了,最多只能执行多任务,首先你要明白,操作系统的概念不仅仅是只支持多任务而已,它还包括内存管理,文件系统,外设管理等等是一个集成环境。所以它需要很多的硬件资源支持,低端单片机资源少的可怜,就说主频吧,低端单片机跑24MHz已经算高了,先不说x86处理器可以跑上GHz,普通的高端单片机都可以上百兆了,你说这么低的主频能跑操作系统么,而且低端单片机都是8位或16位,处理数据相当的慢。再说ram也很小,基本支持不了文件系统,跑多任务都要精打细算才行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-31
单片机当然可以跑操作系统。单片机也是小型的cpu。
这个题要么是你们老师不懂;要么是他指的cpu是像arm9这样稍微高级的处理器,单片机就像51这样的芯片,而所谓的操作系统就是windows、linux之类的。
操作系统部仅是linux、windows,还有很多小型或大型的,像vxworks、ucos、ecos等等,有些限于处理器,有些不特别限制,只是低端的芯片跑起来很慢而已。
至于管理单元我想你们老师说的是MMU吧,关于MMU,lz可以百度百科一下,就不在这里粘贴了。本回答被提问者和网友采纳
第2个回答  2015-07-24

    可以安装操作系统,单片机本身就是一个一个小而完善的微型计算机系统,可以安装支持特定指令集的操作系统!

    单片机知识点延伸,了解单片机及其原理

    单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

    基本结构:

    运算器

    运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。例如,两个数6和7相加,在相加之前,操作数6放在累加器中,7放在数据寄存器中,当执行加法指令时,ALU即把两个数相加并把结果13存入累加器,取代累加器原来的内容。

    运算器有两个功能:

    (1) 执行各种算术运算。

    (2) 执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。

    运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。

    控制器

    控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。其主要功能有:

    (1) 从内存中取出一条指令,并指出下一条指令在内存中的位置。

    (2) 对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。

    (3) 指挥并控制CPU、内存和输入输出设备之间数据流动的方向。

    微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。外部总线又称为系统总线,分为数据总线DB、地址总线AB和控制总线CB。通过输入输出接口电路,实现与各种外围设备连接。

    主要寄存器

    (1)累加器A

    图1-2 单片机组成框图

    累加器A是微处理器中使用最频繁的寄存器。在算术和逻辑运算时它有双功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。

    (2)数据寄存器DR

    数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。

    (3)指令寄存器IR和指令译码器ID

    指令包括操作码和操作数。

    指令寄存器是用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存中取到数据寄存器中,然后再传送到指令寄存器。当系统执行给定的指令时,必须对操作码进行译码,以确定所要求的操作,指令译码器就是负责这项工作的。其中,指令寄存器中操作码字段的输出就是指令译码器的输入。

    (4)程序计数器PC

    PC用于确定下一条指令的地址,以保证程序能够连续地执行下去,因此通常又被称为指令地址计数器。在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首地址)送入PC,使它总是指向下一条要执行指令的地址。

    (5)地址寄存器AR

    地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。由于内存与CPU之间存在着速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为止。

    显然,当CPU向存储器存数据、CPU从内存取数据和CPU从内存读出指令时,都要用到地址寄存器和数据寄存器。同样,如果把外围设备的地址作为内存地址单元来看的话,那么当CPU和外围设备交换信息时,也需要用到地址寄存器和数据寄存器。

第3个回答  2018-02-05
单片机是可以跑系统的,,只是不能跑太大的,,只要你的单片机的RAM足够大,,比如stm32单片机是可以跑freertos系统或者ucos系统,,但是linux就不能跑了,,(要cotex-a9以上的开发板才行)
第4个回答  2014-01-01
我确定你老师是半桶水。。。