OS21操作系统——概述

1.OS21概述
   OS21是一个免费、轻量级的多任务实时操作系统,基于OS20 API设计,使用GNU工具进行
编译,gdb进行调试。目前OS21主要用于ST公司的机顶盒主芯片(ST40/ST200)中,与应用程序一道生成单一映象文件,具有相同的地址空间与名字空间,以及相同的特权模式。

   OS21采用了多优先级、占先式的任务调度算法,任务之间使用信号量、互斥锁、事件标签进行同步;使用消息队列进行通信。实时事件由中断处理,并使用信号量与任务通信。任务所需的内存分配方案由用户选择,任务优先级可指定。提供的主要功能有:

(1)基于256级的多优先级、可占先式调度;

(2)信号量(semaphores);

(3)互斥锁(mutexes);

(4)消息队列(message queues);

(5)高精度定时器;

(6)存储管理;

(7)中断处理;

(8)节省存储空间。

 

从性能上讲,OS21提供的任务间切换时间小于2.6us,中断响应时间最小为1.5us,整个代码小于30KB,数据小于5KB。

OS21提供给应用程序的API可分为核心API与CPU相关的API,在不同CPU间移植时需要修改后者。代码目录结构如下:

图(略)

可以看出,OS21提供的每一项系统服务基本上分为单独的目录,甚至有单独的.h文件来定义变量、宏和函数。

OS21使用面向对象编程风格,每个主要的OS21系统服务由一个类来表示,例如:存储分区、任务、信号量、互斥量等。类的实例被分配在系统分区或用户自定义分区中,不使用时需要回收其占用空间。

 

2.OS21与OS20的异同点

    OS21与OS20提供的系统服务比较相似,调用的API函数名称也很相似,具体来说包含下列API

    (1) Kernel API

    (2) Memory and partitions

    (3) Tasks and scheduler APIs

    (4) Semaphore API

    (5) Memory API

    (6) Time API

    但OS20针对ST20 CPU进行开发,OS21则针对ST40 CPU进行开发,二者在BSP部分存在较大不同。

    头文件:与OS20相比,OS21采用了意义更明确的头文件。如下:

OS21操作系统——概述 
    内核启动:OS20提供了两种方式来启动内核:手动和自动方式(在编译时通过添加 -runtime os20实现),OS21通常只使用手动方式来启动内核。尽管也可实现自动启动。

   int main(void)

  {

    

     kernel_initialize(NULL);

     kernel_start();

     kernel_timeslice(OS21_TRUE);

     ...

   }

    OS21的时间片功能缺省为关闭,要使用时需要手动打开。

    任务方面:与OS20相比,当改变任务的优先级时,该任务在队列中的位置也发生了变化。

    OS20使用了两个预定义的内存空间——system_partion与internal_partion,用户也可访问,在OS21中则没有这两个空间,而需要自行分配。在OS21中的堆内存既可由C运行库函数(malloc和free)管理,也可由OS21自身管理。

    通常情况下OS20中所有的_init()函数均被_create()所代替,尽管_init()函数的优点在于内存分配的灵活性,OS21采取了一个不同的解决办法来增加灵活性:除了_create()函数外,还增加了_create_p()函数来定义partition指针。这在存储空间紧张的系统中,可由应用程序自己选择从哪块空间中分配。如图:下列_init()函数都将由_create()或_create_p()函数代替。

    message_init_queue()

    message_init_queue_timeout()

    partition_init_fixed()

    partition_init_heap()

    partition_init_simple()

    semaphore_init_fifo()

    semaphore_init_fifo_timeout()

    semaphore_init_priority()

    semaphore_init_priority_timeout()

    task_init()

    中断和缓存:OS20的中断和缓存API与ST20的中断缓存体系结构紧密相关,其目的是为了完全使用上硬件的特性。在缓存的设计上,OS21遵循了与OS20一样的设计思想,即根据具体芯片设计,每款芯片都有不同的API,当然也不同于OS20。而OS21提供的中断则具有通用性,可在不同芯片间移植,这一点不同于OS20。二维块数据移动:由于二维块数据移动严格与ST20芯片结构相关,OS21已去掉了这方面内容。

    时间管理:在OS21中,时钟由64位的整型osclock_t表示,而在OS20中则为32位的整型类型clock_t。

    此外,OS21还提供了一些OS20所不具备的功能:例如task event flag等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作系统(OS)是一种管理计算机硬件和软件资源的系统软件。它是计算机系统中的核心组成部分,它负责控制和协调硬件设备、应用程序和用户之间的交互。 操作系统的主要功能包括进程管理、内存管理、文件系统、设备管理和用户界面。通过进程管理,操作系统可以同时运行多个程序,并为它们分配资源。内存管理负责将程序和数据加载到内存中,并管理内存的分配和回收。文件系统提供了对存储设备上数据的访问和管理。设备管理负责控制和协调计算机系统中的所有外部设备。用户界面则是用户与计算机系统进行交互的接口。 数据结构(DS)是计算机科学中一个重要的概念,它是指组织和存储数据的方式。常见的数据结构包括数组、链表、栈、队列、树和图。 数据结构对于高效地存储和操作数据至关重要。不同的数据结构适用于不同的场景。例如,数组适用于需要快速访问元素的场景,而链表适用于需要频繁插入和删除元素的场景。 操作系统和数据结构之间存在紧密的关联。操作系统需要使用数据结构来组织和管理内存、文件系统和进程。例如,操作系统可以使用链表来管理空闲内存块,以便在进程需要内存时分配合适的空间。操作系统还可以使用树的数据结构来管理文件系统中的目录和文件。 总之,操作系统是一种管理计算机资源的系统软件,而数据结构是组织和存储数据的方式。操作系统和数据结构之间存在紧密的关系,操作系统使用数据结构来实现其功能,而数据结构能够帮助操作系统高效地管理资源和数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值