嵌入式操作系统的多线程机制研究与实现 |
|
|
ations. And the stack overflow action is taken as an example, to show design security factor while implement multi-threads. Key words: embedded; operating system; multi-threads; process; Cortes-M3 随着嵌入式技术的发展,基于对整个系统(产品)软件的安全性,可靠性,开发周期等多方面因素的考虑,嵌入式操作系统正成为嵌入式系统不可缺少的重要组成部分。目前广泛使用在嵌入式系统中的操作系统各有优劣势,比如开源linux操作系统需要较多的硬件资源支持,在小型和有着特殊要求的嵌入式系统中,设计自己的嵌入式操作系统是一种比较有价值方案。 多线程机制是操作系统的重要组成部分,线程是在操作系统的进程设计过程当中演化出来的。线程可以与进程(任务)进行优劣势互补,以满足系统要求,比如线程之间可以很方便的共享进程里的所有资源,甚至包括了进程的全局变量;而且,线程的切换(调度)开销比进程更少,比如在一个嵌入式终端的网络通信程序当中,需要同时处理接收与发送,而且接收和发送的信息有较大的相关性,这种情况下采用多线程方式是最优选择。 本文通过研究多线程的实现原理,给出了一种基于嵌入式操作系统的多线程机制实现模型,并以此为基础深入研究了其调度,创建,切换和延时的实现。 1 多线程机制模型 传统上线程可以分为用户级与内核级两种[1],用户级线程完全通过在用户级提供的一个程序调用库来实现多线程,比如MACH操作系统的C-threads库和POSIX标准定义实现的pthreads库,这些库提供了线程的所有操作,比如创建,同步,调度等。用户级线程最大的好处是无需操作系统内核的支持,因而调度开销较少,内核级线程则是使用内核来维护线程的调度,管理,这时,操作系统提供一系列的系统调用接口让用户程序来管理线程。采用内核级线程设计方式更有利于并发使用多处理器的资源。在现代的操作系统设计当中,往往合并使用这两种线程机制,在操作系统的设计过程当中,可以根据不同的需要,把线程的管理部分放在不同的级别。 在嵌入式系统的设计过程中,较少的硬上一页 [1] [2] [3] [4] [5] [6] [7] 下一页 |
|
|
|
上一个论文: 谈操作系统中的死锁问题 下一个论文: 操作系统教学方法研究 |
|