任务

  • 概述
  • 程序的运行有点像工人在工作
  • 不配备实时操作系统的程序的挑战
    • LED闪烁的任务
      • 每秒钟闪烁LED的任务
    • 发出声音的任务
      • 蜂鸣声输出的任务
  • 任务、线程和进程的关系
    • 任务
    • 线程
    • 进程
    • 进程和线程之间的区别

概述

在具有实时操作系统的系统中,程序以任务的概念运行。
了解实时操作系统和ITRON规格时,了解“任务”是一切的开始。
ITRON以此任务为中心运行系统。

程序的运行有点像工人在工作

#include <stdio.h>int main(void)
{long calc = 0;calc = 100 + 200;printf("结果:%d", calc);return 0;
}

在执行这样的程序的步骤执行的同时,你可能已经运行了一行一行的程序。这个程序一行一行地移动,这就是工人正在实施程序的处理内容。

在C语言中,程序从main函数开始运行。也就是说,程序启动的时候准备了一个工人,对那个工人说:“你来实施main函数这个工作吧!“这意味着程序正在动作。

不配备实时操作系统的程序的挑战

在不配备实时操作系统的系统中,根本就没有任务的概念。尽管如此,实施main函数的劳动力也准备好了,所以硬要说的话也可以说是一个人的任务(单一任务)工作。让我们考虑一下单任务系统中的问题是在什么情况下发生的。软件系统以程序的形式创建和运行各种任务。从现在开始,在制作2个任务的基础上,我们将明确单一任务的难度。

LED闪烁的任务

程序是以顺序处理为基础的,并按照描述的顺序从上到下执行。
例如,让我们看看当前的下一个程序。LED闪烁是因为任务正在执行此任务。

每秒钟闪烁LED的任务

  • 点亮LED橙色。
  • 关闭LED的绿色。
  • 等待1秒钟(1000毫秒)。
  • 关闭LED的橙色。
  • 点亮LED绿色。
  • 等待1秒钟(1000毫秒)
void MAIN(VP_INT exinf)
{while(1){Led_setLight(D_LED_KIND_ORANGE, D_LED_LIGHT_ON);Led_setLight(D_LED_KIND_GREEN, D_LED_LIGHT_OFF);dly_tsk(1000);Led_setLight(D_LED_KIND_ORANGE, D_LED_LIGHT_OFF);Led_setLight(D_LED_KIND_GREEN, D_LED_LIGHT_ON);dly_tsk(1000);}return;
}

dly_tsk函数是ITRON规格的函数,是仅在指定时间(毫秒)内停止任务动作的函数。像这样忠实地进行按顺序决定的工作的程序很容易写。

发出声音的任务

那么,接下来让我们做另一个任务。假设每2秒就需要输出两次“啪啪”的嗡嗡声的任务。

蜂鸣声输出的任务

  • 输出“抖”的声音。
  • 等待100毫秒。
  • 停止声音的输出。
  • 等待100毫秒。
    ※输出嘟嘟声是指重复2次这个程序。
void MAIN(VP_INT exinf)
{while(1){int i;// 发出400ms的时间蜂鸣声for (i=0 ; i < 2 ; i++){Spk_start(E_SPK_SCALE_DO);dly_tsk(100);Spk_stop();dly_tsk(100);}// 等待2000ms - 400msdly_tsk(1600);}return;
}

任务、线程和进程的关系

任务

表示实时操作系统中并行处理执行单位的术语。在系统中存在多个任务称为多任务。

线程

表示Windows或Linux中并行处理执行单位的术语。这与ITRON中的任务相同。在系统中存在多个线程称为多线程。

进程

在Windows或Linux中表示应用程序执行单位的术语。例如,当您启动Excel或Word等应用程序时,每个应用程序都将作为不同的进程启动。可以同时启动多个应用程序的机制称为多进程。您可以在进程中属于多个线程。ITRON不存在这个概念。因为它在系统中只能有一个应用程序,所以不需要有一个叫做进程的单位。

进程和线程之间的区别

进程和线程之间的巨大区别是共享或不共享内存空间。由于Windows和Linux以进程为单位独立管理内存,如果进程不同,则无法访问其他进程的内存。

例如,您不能从Excel中运行的程序调用Word中定义的函数。如果有这样的事情,恶意程序可能会破坏各种应用程序的操作。

这是Windows和Linux利用虚拟内存的机制,以进程为单位进行内存保护。另一方面,同一进程中存在的多个线程共享内存。因此,每个进程中的线程都可以自由访问进程中定义的函数和全局变量。

ITRON入门之任务(TASK)的理解相关推荐

  1. 深入了解计算机的知识,电脑入门基础知识之深入理解计算机系统

    电脑入门基础知识之深入理解计算机系统 导语:计算机系统由计算机硬件和软件两部分组成.硬件包括中央处理机.存储器和外部设备等.下面就来看看小编为大家整理的资料,希望对您有所帮助! 简介 按人的要求接收和 ...

  2. 零基础数据挖掘入门系列(一) - 赛题理解

    思维导图:零基础入门数据挖掘的学习路径 1. 写在前面 零基础入门数据挖掘系列是记录自己在Datawhale举办的数据挖掘专题学习中的所学和所想, 该系列笔记使用理论结合实践的方式,整理数据挖掘相关知 ...

  3. MDT 2013 从入门到精通之Task部署任务创建

    上文我们讲到MDT 2013 从入门到精通之软件.系统补丁导入,捎带着我们提到了有关Office 2013自应答文件的生成及常规使用方式方法,今天临睡前为大家带来Task任务创建这一章的内容,方便大家 ...

  4. 神经网络入门(最通俗的理解神经网络)

    先从回归(Regression)问题说起.我在本吧已经看到不少人提到如果想实现强AI,就必须让机器学会观察并总结规律的言论.具体地说,要让机器观察什么是圆的,什么是方的,区分各种颜色和形状,然后根据这 ...

  5. docker desktop ubuntu镜像_原创 | Docker入门,看了不理解,假一赔命

    写在前面 这篇博客适合谁? 对于Docker并不了解,只是有一点模糊的感觉,觉得Docker可以当成虚拟机用之类的 只是下载了Docker软件,对于怎么配置,怎么玩,第一步干什么,完全一无所知 其二, ...

  6. Docker入门,看了不理解,假一赔命

    写在前面 这篇博客适合谁? 对于Docker并不了解,只是有一点模糊的感觉,觉得Docker可以当成虚拟机用之类的 只是下载了Docker软件,对于怎么配置,怎么玩,第一步干什么,完全一无所知 其二, ...

  7. ITRON入门学习之实时操作系统的意义与价值

    实时操作系统 什么是实时操作系统? 通用操作系统的类型 实时操作系统是什么? TRON项目与ITRON的关系 ITRON规格是什么? 什么人应该学习实时操作系统 比起Windows和Linux这样的操 ...

  8. ITRON入门之实时操作系统的特点

    实时操作系统 概述 实时操作系统的系统定位 安装实时操作系统的优点 可以扩大开发规模 操作系统为我们提供各种功能 可以同时完成很多任务 安装实时操作系统的缺点 使用CPU/内存资源 需要处理实时操作系 ...

  9. 【深度学习】神经网络入门(最通俗的理解神经网络)

    form:http://tieba.baidu.com/p/3013551686?pid=49703036815&see_lz=1# 先从回归(Regression)问题说起.我在本吧已经看到 ...

最新文章

  1. 每日一皮:周末了,要多运动运动,你看跳绳这个运动就挺好的...
  2. mysql中判断字段为空
  3. 【DEMO 0074】进程创建与消亡
  4. 在WPF的TreeView中实现右键选定
  5. HttpContext.Current.Cache在控制台下不工作
  6. 从二进制数据流中构造GDAL可以读取的图像数据(C#)
  7. 视频编解码学习(六):YUV格式学习
  8. Windows代替touch命令
  9. 让Windows 2003 Server支持ASP程序
  10. Yolo-FastestV2: 更快,更轻,移动端可达300FPS,参数量仅250k
  11. CF1047E Region Separation
  12. 雨木林风linux系统,雨林木风开源系统下载-ylmf.os(雨林木风开源系统)v4.0 正式版 - 极光下载站...
  13. 虚拟机网络连接失败解决方案
  14. 啥也不会还做出了机器学习——测试心得
  15. 魅族16th完美开启Usb调试模式的经验
  16. HTML中常用标签的英文全称
  17. element el-checkbox已绑定值却无法勾选的问题
  18. Laravel 的生命周期
  19. Java判断用户是通过pc,还是安卓还是ios,还是微信客户端访问
  20. el-table动态添加行,列。自定义输入表头,input hover 显示文字

热门文章

  1. 基于单片机的超市储物柜设计_基于单片机的自动存储柜的设计
  2. java内嵌_Java内嵌类
  3. [NOIP模拟赛]棋子游戏
  4. SSRS 2008 冻结首行
  5. 学习jQuery这一篇就够了
  6. 读取文件并输出,输出时将小写字母转为大写
  7. 网络安全2020.6.15作业
  8. JavaScript原生自动触发事件
  9. 【c++篇】STL常见容器Stackqueue
  10. 苹果笔记本开机问号白色问号?