uc/os-ii操作系统笔记_μc/os-ⅱ系统中,每个任务被赋予不同的优先级等级,从0级到最低优先级os_l-程序员宅基地

技术标签: us/os-ii  操作系统  usos-ii  计算机  

操作系统是应用程序与硬件的之间的接口,只有硬件构成的电脑成为裸机,操作系统的功能主要是对计算机的资源进行管理。

主要的功能:

  1.处理器的管理,主要两项工作:一是对中断的管理,二是对处理器的工作的进行调度。因为处理器的硬件只能发现外部时间的中断的请求,不能对中断进行管理和处理。

  2.存储的管理;

  3.设备的管理,以便完成用户提出的I/O的请求,加快输入/输出的速度,提高I/O外部设备的管理的功能,以便完成用户的I/O的请求。

  4.文件管理,

  5.网络额通信的管理;

  6.提供用户的接口;

  嵌入式系统的特点:微型化,可裁剪性,实时性,高可靠性,易移植性;

  按外部事件响应的能力来分类:嵌入式系统主要分为:实时操作系统和分时操作系统

  实时操作系统:操作系统能说是计算机系统及时的响应的外部的请求,并能及时控制所有的实时的设备与实时任务协调的运行,且在规定的室内完成事件的处理。

  实时操作的系统的两个基本的要求:

1.实时操作系统必须正确的结果,成为逻辑或功能成功;

2.实时操作系统必须要在预定的时间里面内完成,成为事件的正确;

注:实时操作系统,就是面对一个突发的事件以后,必须在有限的时间里面做出正确的计算,以及处理;

实时操作系统又分为:硬实时操作系统和软实时操作系统;

硬实时:就是在及严格的时间里面完成任务;

软实时:对于计算的超时有一定的容忍;

  实时的操作系统应该要满足的条件:

1.实时操作系统必须是hi多任务的系统。

2.任务的切换时间应与系统中的任务书没有关系。

3.中断的延迟的时间尽可能的短并可以预知;

中断的延迟:

  外部的事件发生常常以一个中断的请求的信号形式来通知CPU,然后才运行中断的服务的程序来处理该事件。自CPU响应中断到CPU转向中断服务程序之间所用的时间叫做中断时间叫做中断延时。显然,中断延时要影响系统的实时性。

  嵌入式的实时操作系统:

大多数的操作系统主要提供三项服务来辅助应用程序设计人员,它们分别是:

1.内存的管理,主要管理的是动态的内存,当应用程序的某一部分需要使用内存时,可利用操作系统所提供的内存管理分配的函数来获得足够的内存空间,一旦使用完毕以后,可以调用系统提供的释放内存的函数,把曾经使用的内存空间还给系统,这样内存的空间就可以重复利用。

2.多任务管理。嵌入式实时操作系统应该提供肺腑的多任务管理的函数,通常,嵌入式实时操作系统都会提供良好的任务的任务条度及时,控制任务的启动运行,暂停结束等状态。

3.外围资源管理;     

    任务:

任务也可以称作为进程,是一个简单的程序,该程序认为CPU完全属于自己,实时的应用的程序的设计的时候分割成了许多的任务,每一个任务都对应应用的某一部分。每一个任务都被赋予一定的优先级,有自己的寄存器个栈空间。每一个任务都是一个无限的循环,每一个任务都处在5中状态下,这五种状态下是休眠,就绪的运行,挂起的状态和中断的状态。休眠的状态就是相当于任务在内存中,但是没有被调用,就绪的状态意味着该任务已经准备好了,可以进行运行,该优先级比正在运行的优先级低,相当于还在排队。,挂起的状态,是等待的事件,这个任务一直在等待一个东西,能让它运行起来的东西

中断状态就是被一个中程序中断了呗。

 

  任务的切换:

就是寄存器里面的内容的切换,当多任务内核决定运行另外的任务时,它要保存当前的任务的运行的状态等一切的数据内容,就是将数据从寄存器里面搬到自己的栈空间里,然后由下一一个任务来使用这些寄存器。做任务切换的时候所需要的时间取决于CPU有多少的寄存器需要进行入栈的操作。  实时内核的性能不应该以每秒钟能做多少次任务的切换来评价。

  其实切换的过程就像一个屋子换个人住,先要将原来住主将里面的东西点搬到自己的地方,把地方给腾空出来,给下一位住主提供空间。

  内核:

多任务系统中,内核的作用就是负责管理各个任务,或者说每个任务分配CPU的时间,并且负责任务之间的通讯。主要提供服务是任务的切换,内核将会消耗一定的硬件的资源

单片机一般是不能运行实时的内核,因为单片机的RAM很有限。所以只能一共必不可少的系统的服务,诸如信号管理,邮箱信息队列,延时等,实时的内核使得CPU的利用更加的有效。

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hello_world6/article/details/52490653

智能推荐

CrossOver软件2022可以使苹果MAC电脑运行Windows软件应用_crossover mac-程序员宅基地

文章浏览阅读952次。CrossOver软件2022可以使苹果MAC电脑运行Windows软件应用_crossover mac

【论文翻译】VGG网络论文中英对照翻译--(very deep convolutional networks for large-scale image  recognition)_vgg论文翻译-程序员宅基地

文章浏览阅读4.8k次,点赞6次,收藏39次。【开始时间】2018.09.23【完成时间】2018.09.24【论文翻译】VGG网络论文中英对照翻译--(very deep convolutional networks for large-scale image recognition)【中文译名】 用于大规模图像识别的甚深卷积网络【论文链接】https://arxiv.org/abs/1409.1556目录 本文概..._vgg论文翻译

PythonStock(14):使用pandas 批量处理股票数据,批量计算股票指标_pandas_ta dmi-程序员宅基地

文章浏览阅读1w次,点赞5次,收藏49次。前言使用Python开发一个股票项目。 项目地址: https://github.com/pythonstock/stock 相关资料: http://blog.csdn.net/freewebsys/article/details/78294566 主要使用开发语言是python。 使用的lib库是pandas,tushare,TensorFlow,tornado等。本文的_pandas_ta dmi

如何给Jupyter添加python库路径_jupyter 增加库路径-程序员宅基地

文章浏览阅读9.4k次,点赞6次,收藏18次。【时间】2018.12.13【题目】如何给Jupyter添加python库路径转载链接:http://www.cnblogs.com/jisongxie/p/9892660.html概述python 在cmd中import模块成功,但是在jupyter notebook中出现No module xxx found的问题,这是没有将python库路径添加到环境变量中造成的,解决方法是..._jupyter 增加库路径

FatFs 文件系统使用_fatfs下载-程序员宅基地

文章浏览阅读4.7k次,点赞3次,收藏37次。FatFs 文件系统使用1.简介FatFs是面向小型嵌入式系统的一种通用的 FAT 文件系统。它完全是由 ANSIC 语言编写并且完全独立于底层的 I/O 介质。因此它可以很容易地不加修改地移植到其他的处理器当中,如 8051、PIC、 AVR、 SH、 Z80、 H8、 ARM 等。 FatFs 支持 FAT12、 FAT16、 FAT32 等格式,所以我们利用写好的 SPI Flash 芯片驱动或者SD驱动,把 FatFs 文件系统代码移植到工程之中,就可以利用文件系统的各种函数,对 SPI Fla_fatfs下载

Delphi常用代码汇总_delphi软件头部代码-程序员宅基地

文章浏览阅读2k次。◇[DELPHI]网络邻居复制文件uses shellapi;copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false);◇[DELPHI]产生鼠标拖动效果通过MouseMove事件、DragOver事件、EndDrag事件实现,例如在PANEL上的LABEL:var x_delphi软件头部代码

随便推点

前端用CryptoJS类库的AES加密,后端解密不出来_前端aes加密后端解密报错-程序员宅基地

文章浏览阅读9.2k次。前端使用CryptoJS类库,进行AES加密提交到后台之后,后台解密失败,报错Given final block not properly padded经过一番搜索,终于有了解决方案!由于后台java使用AES加密使用的是AES/EBC/PKCS5Padding进行初始化的,1、首先var key = CryptoJS.enc.Utf8.parse(key); 2、由于后端用的P_前端aes加密后端解密报错

Git Hooks 使用说明_run git hooks-程序员宅基地

文章浏览阅读3.8k次,点赞2次,收藏12次。官方文档 Git - githooks DocumentationLearn how to improve your Git skillsGit 除了版本控制,还有一些其他的高级功能,其中之一就是Git Hooks,明面意思就是钩子,可以类比于钩子函数。简单说就是Hook会在做某些事情的前后被钩子钩走去一些额外事情,那么这些额外事情我们可以用作于检查、测试和部署等操作。在 Git 中有许多的事件(commit、push 等等),每个事件也是对应了有不同的钩子的(如 commit 前,commit ._run git hooks

当老师计算机要学哪些科目,如果可以当老师,哪门科目的老师最没有压力,工作很轻松?...-程序员宅基地

文章浏览阅读1.2k次。今年高考结束,不少市重点高中也送走了一批学校的尖子生。有很多老教师,已经从教十几年了。甚至有的教师教了几十年的书,直到近几年才因为年龄的原因不得不退休。记得我当年高中的时候,化学老师就因为得了膀胱癌而提前退休,当时我们还是高二,结果我们高二的教学担子就全部落在了一位正在教高三的化学老师身上。高中老师所需要担负的责任也非常多,尤其是高中的班主任,更要管理到几乎每一个学生。不仅高中如此,现在的初中生也..._计算机专业当老师可以教哪些科目

问题解决之-Spring Data开发手册|Java持久化API(JPA)需要了解到什么程度呢?_api问题怎么解决-程序员宅基地

文章浏览阅读115次。JPA,Java Persistence API是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术ORM:通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质就是将数据从一种形式转换到另外一种形式。同时也结束了Hibernate、TopLink等ORM框架各自为营的局面。JPA充分吸收了Hibernate、TopLink等ORM框架的基础上发展起_api问题怎么解决

yuv420数据快速裁剪_yuv422 横向裁剪 cpu占用率-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏2次。yuv420数据快速裁剪 最近碰到一个项目需求,这个项目是两年多年已经量产的项目,这是一个车载后视镜项目,当时配置的后视摄像头是确定的,也就是说这个后视摄像头是厂家定制出去的,当时研发在做倒车显示的时候,显示的画面是完整的裸数据,没有裁剪过,也就是后视摄像头出来的CVBS数据是N制式的时候就是720X480的原始数据来显示的。 但是最近又接到一个需求,就是这个_yuv422 横向裁剪 cpu占用率

874复习第四天-习题7编程题_.#include<stdio.h>#definen6voidmain(){inti,a[n]={2-程序员宅基地

文章浏览阅读832次,点赞2次,收藏9次。编程实现从键盘任意输入20个整数,计算其中所有非负数之和//计算20个非负整数之和#include<stdio.h>#include<string.h>int main(){ int i,sum=0; int a[20]; for(i=0;i<20;i++) { scanf("%d",&a[i]); } for(i=0;i<20;i++) { if(a[i]>=0) { sum=sum+a[i]; } } p_.#include#definen6voidmain(){inti,a[n]={2,5,8,10,15,21};for(i=0

推荐文章

热门文章

相关标签