UCOSii和Linux的区别和联系
UCOSii和Linux的区别和联系
想通过UCOSii来理解Linux的系统架构,故参考一些资料,简单整理了一下UCOSii和Linux的区别和联系,以此来更好的学习Linux。
其具体对比如下:
OS | 释义 | UCOSii | Linux |
OS 定义 |
1.用户和计算机的接口; 2.也是计算机硬件和其他软件的接口。 |
1.免费,源代码公开的分时多任务多用户操作系统 | 1.免费,源代码公开的实时多任务操作系统 |
内核 | 1.是一个操作系统的核心; 2.是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、内核体系结构、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 |
1.内核包括系统初始化、任务调度、内存管理、中断进出的前导、时钟节拍、事件处理等多部分,但其没有提供输入输出管理,文件系统,网络等服务; 2.其为抢占式内核,允许中断服务程序中断,中断结束后重新进行任务调度,即重新调用最高优先级任务。 |
1.内核包括进程管理,内存管理,设备管理,网络管理四部分; 2.其为非抢占式内核,实时性差。当进程运行在用户态时,可以被优先级更高的进程抢占,但当他进入核心态时,优先级再高也不能抢占它; 3.区分用户态和核心态。 |
实时性 | 1.实时任务分为软实时和硬实时; 2.硬实时对响应时间要求较高,且时间不被满足时会导致致命的错误,软实时随对响应时间有要求,但不是强制,不会给系统造成致命错误。 |
1.是一个基于优先级调度的抢占式的实时内核,不仅内核支持抢占,同时支持任务的抢占式调度,优先级低的任务可以被高优先级任务抢占,也可被中断服务抢占。这就保证了系统可以尽可能快的对外部事件做出响应 2.UCOSii实时性较好。 |
1.主要考虑调度的公平性和吞吐量等指标,尽管系统可以通过把实时事件赋予高优先级的方法来实时响应实时事件,但效果有限,对于响应时间要求比较高的硬实时任务,无法满足要求; 2.通过一些改进的措施,linux的实时性可以弥补,例如:增加内核可抢占性,细化系统时钟粒度,改善屏蔽中断处理,改善调度算法等。 3.其为不可抢占式调度,实时性较差 |
任务调度 | 1.协调任务对计算机系统内资源(如内存、I/O设备、CPU)的争夺使用 | 1.完全基于任务优先级的抢占式调度。当出现具有更高优先级的任务处于就绪态时,进行任务的上下文切换,当前任务将停止运行,把cpu的控制权交给具有更高优先级的任务; 2.最多可调度64个任务,每个任务具有不同的优先级,当前运行的总是优先级最高的任务; 3.无法进行同等优先级的任务调度。最高优先级任务的确定是通过建立就绪任务表来实现的; 4.每一个任务都有独立的堆栈空间,并有一个任务控制块TCB,任务控制块中包含了任务执行中的所有信息。 |
1.其调度策略为优先级调度和时间片轮转调度; 2.区别于UCOSii的,时间片轮转调度可进行同等优先级任务的调度,让这些任务依次运行一段时间,从而保证系统中同等优先级任务具有平等的运行权利; 3.调度算法实现时根据每个任务的与调度相关的4个参数来进行,分别是实时进程的静态优先级,进程调度策略,用户设定的优先级和进程本轮调度剩余时间片; 4.任务调度的机制决定了其实时性的障碍 |
内存管理 | 1.软件运行时对计算机内存资源的分配和使用的技术 | 1.其采用的是连续存储空间管理方式中的固定分区方式; 2.每个内存分区都有一个内存分区控制块。 |
1.其采用的是连续存储空间管理方式中的页式管理机制; 2.其使用了虚拟存储技术,每个任务从内存中获得一定数量的页面,把当前不访问的页面置换出去,为需要页面任务腾出空间,其存在不确定性,实时性较高的系统不会使用。 |
时间管理 | 1.为操作系统提供时钟及定时中断 | 1.其使用硬件定时器产生一个周期为毫秒级的周期性中断来实现系统时钟; 2.任务是一个无限循环,并且该系统为一个抢占式内核,为了避免高优先级的任务独占内核,在低优先级任务的合适位置都必须添加延时函数,来暂停当前任务。 3.同时还可以利用定时来实现周期性中断回调函数。 |
1.Linux的时钟也是通过定时中断来实现的; 2.Linux系统有两个时钟,一个是实时时钟,仅在操作系统关机时,在电池供电情况下计时。另一个是系统时钟,开机时系统时钟根据实时时钟进行初始化,然后系统根据频率节拍进行周期性中断计时,系统时钟在关机下是不存在的。在关机时和实时时钟进行同步。 |
文件系统 | 1.是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统 | 1.无文件管理系统 | 1.Linux文件系统继承了unix系统的文件系统功能特性,还采用了EXT2文件系统,EXT2功能强大,易扩充,性能上全面优化; 2.还有虚拟文件系统,使得linux可以支持多个不同的文件系统。/proc文件系统是一个伪文件系统,用户和应用程序可以通过它得到系统信息,改变内核的某些参数。 |
可移植性 | 1.将操作系统移植到不同的处理器上; 2.两种系统都可以运行在多种平台上,一致性好。 |
1.UCOSii移植比较简单; 2.只需要几K字节的RAM即可。 |
1.Linux移植比较复杂; 2.需要几百k字节RAM以上。 |
用户界面 | 无 | 1.ucos则不具备,需要通过第三方图形界面系统来弥补,如:uc/gui,emWin. | 1.Linux具有良好的用户界面,包括用户界面shell,和系统调用界面。 |
应用领域 | 无 | 1.UCOSii广泛应用与工业控制中,单片机领域中,有线数字电视领域机顶盒设计中,移动通信终端领域等。 | 1.linux广泛应用在服务器领域,在桌面应用方面也达到了一定水平。 |
其他 | 无 | 1.ucos还支持一些比较好的机制,如信号量,用以实现任务与任务之间,任务与中断服务程序之间的同步和互斥问题;消息队列,用以实现任务间的缓冲通信;邮箱,一种低开销的传送信息机制; 2.优先级继承协议和天花板协议,用以解决任务调度是阻塞的问题。 3.标准的ucos无输入输出管理,没有网络服务 |
1.linux还具有设备的独立性,将所有外部设备统一当做文件来管理。新增设备只需在内核中增加必要的设备驱动程序。这也使得linux具有较好的适应能力 |
以上只是做了较为简单的共性对比,没有具体说明Linux的优势及其复杂性。望大家指正交流。
UCOSii和Linux的区别和联系的更多相关文章
- golang子进程的启动和停止,mac与linux的区别
今天接到一个任务是将原来运行在mac的应用移植到linux,原因当然是因为客户那边当前是linux环境,也不想再采购mac电脑. 通常来说,这个工作并不难,因为我选用的服务器端技术是c或者golang ...
- 浅析CentOS和RedHat Linux的区别
CentOS的简介 CentOS是Community ENTerprise Operating System的简称,我们有很多人叫它社区企业操作系统,不管你怎么叫它,它都是Linux操作系统的一个发行 ...
- 浅析CentOS和RedHat Linux的区别(转)
CentOS的简介 CentOS是Community ENTerprise Operating System的简称,我们有很多人叫它社区企业操作系统,不管你怎么叫它,它都是Linux操作系统的一个发行 ...
- windows C 与 linux C区别?
windows C库格式为 .dll( 动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件). ...
- Ubuntu和Linux的区别
大家听别人介绍自己的Ubuntu时,会听到“我的操作系统是Linux的”.其实,这样介绍是缺乏严谨性滴.我们只要知道两点,基本上就搞清楚Linux和Ubuntu的关系: 1. 严格来说,Linu ...
- CentOS和RedHat Linux的区别
RHEL 在发行的时候,有两种方式.一种是二进制的发行方式,另外一种是源代码的发行方式. 无论是哪一种发行方式,你都可以免费获得(例如从网上下载),并再次发布.但如果你使用了他们的在线升级(包括补丁) ...
- linux怎么区别文本文件和二进制文件
linux的文本文件与二进制文件的区分与windows的区分是相同的!说到底计算机存储的文件都是以二进制形式存储的,但是区别是,习惯上认为: (1).文本文件 文本文件是包含用户可读信息的文件.这些文 ...
- 浅析VxWorks与Linux操作系统的区别
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/flaoter/article/details/76861710 转载请标明出处floater ...
- 浅谈 unix, linux, ios, android 区别和联系
浅谈 unix, linux, ios, android 区别和联系 网上的答案并不是很好,便从网上整理的相对专业的问答,本人很菜,大佬勿喷 UNIX 和 Linux UNIX 操作系统(尤尼斯) ...
随机推荐
- 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案
1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...
- css的元素表现
块级元素和行内元素的表现: 块级元素:块级元素和父元素的宽度一致,默认情况下就是和body的宽度一样,也可以说和浏览器窗口的宽度一致,致使同一行不能再放下另外的元素,所以块级元素表现为独占一行. 块级 ...
- CSS属性之border
css的border属性相信大家都不陌生了,就是给元素加个边框嘛,在不同的盒模型下,会给元素的宽高带来怎样的影响,相信大家也都很熟悉了,这里就不再赘述,只说说大家平时没有怎么留意的东西. 0.bord ...
- C#基础 继承和实例化
有代码如下,问输出的是多少: class Program { static void Main(string[] args) { B b = new B(); Console.ReadKey(); } ...
- Android解析WindowManager(三)Window的添加过程
前言 在此前的系列文章中我们学习了WindowManager体系和Window的属性,这一篇我们接着来讲Window的添加过程.建议阅读此篇文章前先阅读本系列的前两篇文章. 1.概述 WindowMa ...
- with admin option /with grant option
1. with admin option是用在系统权限上的,with grant option是用在对象权限上的. SQL> grant create synonym to scott with ...
- mysql使用笔记(网易Mysql实用手册)---1
1帮助使用 1.1按层次查看帮助 1 当不知道帮助可提供什么时,可通过MySQL内置帮助文档,一层层往下看. 命令: mysql> ? contents ? 等效help,该文档涵盖了数据库操作 ...
- Linux的Transparent Hugepage与关闭方法
Transparent HugePages是在运行时动态分配内存的,而标准的HugePages是在系统启动时预先分配内存,并在系统运行时不再改变. 因为Transparent HugePages是在运 ...
- 常用CSS技术收藏
常用CSS技术收藏 必须要掌握的技术 盒子模型 定位模型 定位模型 css sprite(雪碧/css精灵)相关 css sprite 坐标定位为何为负以及定位方法 布局 圣杯布局小结 规范 BEM ...
- 理解http请求
HTTP请求的GET方法可以用来抓取网页. HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则,计算机专家设计出HTTP,使HTTP客户(如Web浏览 ...