US/OS2之任务同步与通信

简介:   嵌入式系统中的各个任务都是以并发的方式来运行的,并为同一个大的任务服务,它们不可避免地要共同使用一些共享资源,并且在处理一些需要多个任务共同协作来完成的工作时,还需要相互的支持和限制。因此,对于一个完善的多任务操作系统来说,系统必须具备完备的同步和通信机制; 在多任务合作工作中,os应该解决两...

  嵌入式系统中的各个任务都是以并发的方式来运行的,并为同一个大的任务服务,它们不可避免地要共同使用一些共享资源,并且在处理一些需要多个任务共同协作来完成的工作时,还需要相互的支持和限制。因此,对于一个完善的多任务操作系统来说,系统必须具备完备的同步和通信机制;

在多任务合作工作中,os应该解决两个问题:

    1、各任务间应该具有一种互斥关系,即对于某个共享资源,如果一个任务正在使用,则其他任务只能等待,等到该任务释放该资源后,等待的任务之一才能使用它;(例:共享打印机)

    2、相关的任务在执行上要有先后次序、一个任务要等其伙伴发来通知,或建立了某个条件后才能继续执行,否则只能等待;(例如:A向buff中读数据,B向buff中写数据,只有在B写数据才能让A读数据)

  任务之间这种制约性的合作运行机制叫做任务间的同步。系统中任务的同步是依靠任务与任务之间互相发送消息来保证同步的;

任务间的同步依赖任务间的通信,在UC/OS2中,使用信号量、邮箱(消息邮箱)和消息队列这些被作时间的中间环节来实现任务之间的通信;

  1、信号量

  信号量是一类事件,使用信号量的最初目的,是为了共享资源设立一个表示该共享资源被占用情况的标志。这样,就可使任务在访问共享资源之前,先对这个标志进行查询,在了解资源被占用的情况之后,再决定自己的行为;

  二元信号量(互斥型信号量);计数型信号量;

  2、消息邮箱

   在多任务操作系统中,常常需要在任务与任务之间通过传递一个数据(这种数据叫做“消息”)的方式来进行通信,为了达到这个目地,可以在内存中创建一个存储空间作为该数据的缓冲区。如果把这个缓冲区叫做消息缓存区,那么在任务间传递数据(消息)的一个最简单的方法就是传递消息缓冲区指针。 因此,用来传递消息缓冲区指针的数据结构就叫做消息邮箱;

  3、消息队列

  上面说到的消息邮箱不仅可用来传递一个消息,而且也可定义一个指针数组。让数组的每个元素都存放一个消息缓冲区指针,那么任务就可以通过传递这个指针数组指针的方法传递多个消息了,这样可以传递多个消息的数据结构就叫做消息队列;

UC/OS2中把信号量、消息邮箱和消息队列这类用于任务同步和通信的数据结构叫做事件;

    

 

 

  

  

相关文章
|
存储 人工智能 算法
操作系统的演化之路:从单一任务到多任务处理
【8月更文挑战第12天】 在计算机科学的历史长河中,操作系统作为硬件与软件之间的桥梁,其发展经历了由简单到复杂、由单一到多元的转变。本文旨在探究操作系统如何实现从执行单个任务到同时管理多个任务的飞跃,并分析这一变革对现代计算技术的影响。通过回顾操作系统的关键发展阶段,我们将理解多任务处理机制的起源和优化过程,以及它如何塑造了今天的数字世界。
|
物联网 Unix Linux
操作系统的演变:从单任务到多任务再到现代并发
操作系统作为计算机的核心软件,其设计和架构的演变反映了计算需求和技术的进步。本文将带领读者穿越时间线,探索操作系统从最初的单任务处理,发展到多任务处理,直至当代复杂的并发和分布式处理系统的历程。我们将一窥各个时代下操作系统的设计哲学、关键技术以及它们如何塑造了今日的数字世界。
482 27
|
安全 Unix Linux
Unix是一个多用户、多任务的操作系统
Unix是一个多用户、多任务的操作系统
889 3
|
人工智能 算法 数据挖掘
操作系统的演变:从单任务到多任务的旅程
操作系统(OS)是计算机系统的核心,它管理硬件资源、提供用户界面并运行应用程序。本文将探讨操作系统如何从单任务环境演变为支持多任务的环境,包括这一过程中的技术挑战和解决方案。我们将看到,随着计算需求的增长,操作系统必须适应更复杂的任务管理和资源分配策略,以提高效率和用户体验。通过这个旅程,我们不仅能够理解操作系统的发展,还能洞察未来可能的趋势。
220 6
|
机器学习/深度学习 人工智能 算法
操作系统的未来:从多任务到深度学习的演变之路
本文将探讨操作系统如何从处理简单多任务发展到支持复杂的深度学习任务。我们将分析现代操作系统面临的新挑战,以及它们如何适应人工智能和大数据时代的要求。文章不仅回顾过去,也展望未来,思考操作系统在技术演进中的角色和方向。
292 3
|
机器学习/深度学习 人工智能 安全
操作系统的未来:从多任务处理到人工智能
【8月更文挑战第23天】本文将探讨操作系统的发展历程及其未来趋势,特别是人工智能在操作系统中的应用。我们将看到如何通过引入人工智能技术,操作系统能够更加智能化地管理资源,提高系统性能和用户体验。
|
安全 物联网 调度
操作系统的演变:从单一任务到多任务处理
【8月更文挑战第9天】在数字时代的浪潮中,操作系统的发展经历了从单任务到多任务处理的转变。本文将探讨这一转变背后的原因、影响及其对未来技术趋势的启示。我们将通过分析操作系统的架构变化,揭示其如何适应日益增长的计算需求和用户期望。文章还将讨论多任务处理对软件开发、用户体验和系统性能的影响,以及这些变化如何塑造了我们今天所使用的技术。
|
安全 Unix 物联网
操作系统的演进:从单任务到现代多任务环境
在数字时代的心脏跳动着的是操作系统,它是计算机硬件与软件之间的桥梁。本文将探讨操作系统如何从简单的单任务处理发展至复杂的多任务和多用户环境。我们将穿越时空,回顾那些定义了现代计算的关键时刻,见证技术创新如何塑造我们的数字生活。
|
Web App开发 机器学习/深度学习 物联网
操作系统的演变:从单任务到现代多任务系统
【8月更文挑战第15天】操作系统作为计算机硬件与软件之间的桥梁,其设计和发展反映了计算技术的进步。本文将探讨操作系统的演变过程,从早期的单一任务处理到现代复杂的多任务和多用户环境。我们将分析这一转变如何影响用户体验、资源管理和系统安全性,并展望操作系统未来的可能发展方向。
257 2

推荐镜像

更多