当前位置: 首页 > 专利查询>浙江大学专利>正文

嵌入式SRAM操作系统线程实现和线程状态转换的方法技术方案

技术编号:2850347 阅读:232 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种嵌入式SRAM操作系统线程实现和线程状态转换的方法。在嵌入式SRAM操作系统,鉴于操作系统位于SRAM中,资源有限,使用线程作为操作系统调度的基础,进程由线程构成,是进程中的一条执行路径,每个进程内允许包含多个并行执行的路径,这就是多线程。线程是系统进行处理器调度的基本单位,同一个进程中的所有线程共享进程获得的主存空间和资源,线程具有7个不同的状态并且可以在状态间进行高效切换,可以充分利用SRAM的特点,对于利用嵌入式SRAM操作系统进行系统资源处理具有特殊意义。

【技术实现步骤摘要】

本专利技术涉及嵌入式操作系统中线程的实现和线程状态切换的
,尤其是涉及到一种嵌入式SRAM操作系统线程实现和线程状态转换的方法
技术介绍
在传统的操作系统中,进程是系统进行资源分配的单位,诸如按进程分给存放其映象的虚地址空间、执行需要的主存空间、完成任务需要的其他各类资源,I/O CH、I/O DV和文件。同时,进程也是处理器调度的独立单位,进程在任一时刻只有一个执行控制流,我们将这种结构的进程称单线程进程(SingleThreaded Process)。这种单线程结构的进程已不能适应当今计算机技术的迅猛发展。早期的计算机系统是基于单个处理器(CPU)的顺序处理的机器,程序员编写串行执行的代码,让其在CPU上串行执行,甚至每一条指令的执行也是串行的(取指令、取操作数、执行操作、存储结果)。为提高计算机处理的速度,首先发展起来的是联想存储器系统和流水线系统,前者提出了数据驱动的思想,后者解决了指令串行执行的问题,这两者都是最初计算机并行化发展的例子。随着硬件技术的进步,并行处理技术得到了迅猛的发展,计算机系统不再局限于单处理器和单数据流,各种各样的并行结构得到了应用。目前计算机系统可以分作以下四类·单指令流单数据流(SISD)一个处理器在一个存储器中的数据上执行单条指令流。·单指令流多数据流(SIMD)单条指令流控制多个处理单元同时执行,每个处理单元包括处理器和相关的数据存储,一条指令事实上控制了不同的处理器对不同的数据进行了操作。向量机和阵列机是这类计算机系统的代表。·多指令流单数据流(MISD)一个数据流被传送给一组处理器,通过这一组处理器上的不同指令操作最终得到处理结果。该类计算机系统的研究尚在实验室阶段。·多指令流多数据流(MIMD)多个处理器对各自不同的数据集同时执行不同的指令流。可以把MIMD系统划分为共享内存的紧密耦合MIMD系统和内存分布的松散耦合MIMD系统两大类。在松散耦合MIMD系统中,每个处理单元都有一个独立的内存储器,各个处理单元之间通过设定的线路或网络通信,多计算机系统或cluster系统都是松散耦合MIMD系统的例子。根据处理器分配策略,紧密耦合MIMD系统可以分为主从式系统(main/slavemultiprocessor)和对称式系统(symmetric multiprocessor,简称SMP)两类。主从式系统的基本思想是在一个特别的处理器上运行操作系统内核,其他处理器上则运行用户程序和操作系统例行程序,内核负责分配和调度各个处理器,并向其它程序提供各种服务(如输入输出)。这种方式实现简单,但是主处理器的崩溃会导致整个系统的崩溃,并且极可能在主处理器形成性能瓶颈。在对称式多处理器系统(SMP)中,操作系统内核可以运行在任意一个处理器上,每个处理器都可以自我调度运行的进程和线程,并且操作系统内核也被设计成多进程或多线程,内核的各个部分可以并行执行。目前cluster和SMP得到了广泛的应用,成为并行处理技术的热点。值得注意的是,单线程结构进程从管理、通信和并发粒度多个方面都很难满足并行处理的要求。近二十年以来,计算机网络技术得到了迅猛的发展,这里不考虑网络基础通信设施的进展,单从网络操作系统和分布式操作系统的角度来考虑,单线程结构进程就难以满足要求。分布式操作系统是一个无主从的、透明的资源管理系统,也是一个松散耦合的MIMD系统。从资源管理看,每一类资源的管理都有可能分布在各个独立的节点上,需要广泛的协同和频繁的通信,从分布并行看,要求操作系统合理使用网络上的可计算资源,更好地发挥多处理器的能力,把许多任务或同一任务的不同子任务分配到网络不同结点的处理器上去同时运行,所有这一些都需要改良单线程结构进程,提高各个协作子任务之间的协作、切换和通信效率。客户/服务器计算是九十年代网络计算的最大热点,对于基于服务器的客户/服务器计算(如SQL服务器),要求采用更加高效的并行或并发解决方案来提高服务器处理效率;对于基于客户的客户/服务器计算(如页服务器),虽然服务器的瓶颈效应大大改善,但服务器一方除了页面读写外还需要进行锁管理和锁协商,客户一方则面临着如何快速解决计算逻辑问题,另外还要考虑锁协商和页回调,这些也要求一种更加实用和有效的并行或并发解决方案;类似的问题同样存在与协作式的客户/服务器计算和基于中间件的客户/服务器计算中。从软件技术的发展来看,系统软件和应用软件均有了很大的进展,要求人们设计出多事件并行处理的软件系统,如操作系统中的并行文件操作,数据库中的多用户事务处理,窗口子系统中的多个相关子窗口操作,实时系统中多个外部事件的同时响应,网络中多个客户共享网络服务器任务等等。这些多事件并行处理的软件系统当然要求提高并行或并发处理的效率,而单线程结构进程对此是无能为力的。在传统的操作系统中,往往采用多进程并发程序设计来解决并行技术、网络技术和软件技术发展带来的要求,即创建并执行多个进程,按一定策略来调度和执行各个进程,以最大限度地利用计算机系统中的各种各样的资源。这一方式当然是可行的,但关键在于并行和并发的效率问题,采用这一方式来实现复杂的并发系统时,会出现以下的缺点·进程切换的开销大,频繁的进程调度将耗费大量时间。·进程之间通信的代价大,每次通信均要涉及通信进程之间以及通信进程与操作系统之间的切换。·进程之间的并发性粒度较粗,并发度不高,过多的进程切换和通信使得细粒度的并发得不偿失。·不适合并行计算和分布并行计算的要求。对于多处理器和分布式的计算环境来说,进程之间大量频繁的通信和切换过程,会大大降低并行度。·不适合客户/服务器计算的要求。对于C/S结构来说,那些需要频繁输入输出并同时大量计算的服务器进程很难体现效率。尤其是在嵌入式SRAM操作系统中,相对于SDRAM,SRAM空间有限,需要操作系统改进进程结构,提供新的机制,使得很多应用能够按照需求,在同一进程中设计出多条的控制流,多控制流之间可以并行执行,切换不需通过进程调度;多控制流之间还可以通过内存区直接通信,降低通信开销。
技术实现思路
本专利技术的目的在于提供一种嵌入式SRAM操作系统线程实现和线程状态转换的方法。本专利技术解决其技术问题采用的技术方案如下1)线程状态定义进程由线程构成,是进程中的一条执行路径,每个进程内允许包含多个并行执行的路径,这就是多线程。线程是系统进行处理器调度的基本单位,同一个进程中的所有线程共享进程获得的主存空间和资源,一个线程具有 ●创建态对应于线程刚刚被创建和进入到SRAM中的状态;●运行态线程占有处理器正在运行;●就绪态线程位于SRAM中,具备运行条件,等待系统分配处理器以便运行;●阻塞态线程位于SRAM中,不具备运行条件,正在等待某个事件的完成;●就绪换出态和阻塞换出态由于SRAM空间不足,线程将被交换出SRAM,进入到SDRAM中去,暂时不参与线程调度;●退出态线程结束,退出SRAM,以后不再执行。在多线程环境中,仍然有与进程相关的是进程控制块PCB,Process ControlBlock和用户地址空间,而每个线程则存在独立堆栈,以及包含寄存器信息、优先级、其它有关状态信息的线程控制块。线程之间的关系较为密切,一个进程中的所有线程共享其拥有的状态和资源,它们驻留本文档来自技高网
...

【技术保护点】
一种嵌入式SRAM操作系统线程实现和线程状态转换的方法,其特征在于:1)线程状态定义进程由线程构成,是进程中的一条执行路径,每个进程内允许包含多个并行执行的路径,这就是多线程。线程是系统进行处理器调度的基本单位,同一个进程中 的所有线程共享进程获得的主存空间和资源,一个线程具有:●创建态:对应于线程刚刚被创建和进入到SRAM中的状态;●运行态:线程占有处理器正在运行;●就绪态:线程位于SRAM中,具备运行条件,等待系统分配处理器以便运行; ●阻塞态:线程位于SRAM中,不具备运行条件,正在等待某个事件的完成;●就绪换出态和阻塞换出态:由于SRAM空间不足,线程将被交换出SRAM,进入到SDRAM中去,暂时不参与线程调度;●退出态:线程结束,退出SRAM ,以后不再执行。在多线程环境中,仍然有与进程相关的是进程控制块PCB,ProcessControlBlock和用户地址空间,而每个线程则存在独立堆栈,以及包含寄存器信息、优先级、其它有关状态信息的线程控制块。线程之间的关系较 为密切,一个进程中的所有线程共享其拥有的状态和资源,它们驻留在相同的地址空间,可以存取相同的数据;2)创建态当一个新进程被生成后,该进程的一个线程也就被创建。此后,该进程中的一个线程可以创建同一进程中的其它线程,并为新线程提 供指令计数器和变量,一个新线程还将被分配寄存器上下文和堆栈空间,并将其加入就绪队列;3)就绪态线程位于SRAM中,具备运行条件,等待系统分配处理器以便运行,处于就绪状态的线程事实上已被调度,已经被放到某一队列等待执行,处于就 绪状态的线程何时可真正执行,取决于线程优先级以及队列的当前状况,线程的优先级如果相同,将遵循“先来先服务”的调度原则;线程依据自身优先级进入等待对列的相应位置,某些系统线程具有最高优先级、这些最高优先级线程一旦进入就绪状态,将抢占当 前正在执行的线程的处理器资源,当前线程只能重新在等待队列寻找自己的位置。某些具有最高优先级的线程执行完自己的任务之后,将调用sleep()、wait()、suspend()方法,睡眠一段时间,等待被某一事件唤醒。一旦被唤醒,这些线程就又开始抢占处理器资源。这些最高优先级线程通常被用来执行一些关键性任务,如屏幕显示;低优先级线程需等待更长的时间才能有机会运行,由于系...

【技术特征摘要】
1.一种嵌入式SRAM操作系统线程实现和线程状态转换的方法,其特征在于1)线程状态定义进程由线程构成,是进程中的一条执行路径,每个进程内允许包含多个并行执行的路径,这就是多线程。线程是系统进行处理器调度的基本单位,同一个进程中的所有线程共享进程获得的主存空间和资源,一个线程具有●创建态对应于线程刚刚被创建和进入到SRAM中的状态;●运行态线程占有处理器正在运行;●就绪态线程位于SRAM中,具备运行条件,等待系统分配处理器以便运行;●阻塞态线程位于SRAM中,不具备运行条件,正在等待某个事件的完成;●就绪换出态和阻塞换出态由于SRAM空间不足,线程将被交换出SRAM,进入到SDRAM中去,暂时不参与线程调度;●退出态线程结束,退出SRAM,以后不再执行。在多线程环境中,仍然有与进程相关的是进程控制块PCB,Process ControlBlock和用户地址空间,而每个线程则存在独立堆栈,以及包含寄存器信息、优先级、其它有关状态信息的线程控制块。线程之间的关系较为密切,一个进程中的所有线程共享其拥有的状态和资源,它们驻留在相同的地址空间,可以存取相同的数据;2)创建态当一个新进程被生成后,该进程的一个线程也就被创建。此后,该进程中的一个线程可以创建同一进程中的其它线程,并为新线程提供指令计数器和变量,一个新线程还将被分配寄存器上下文和堆栈空间,并将其加入就绪队列;3)就绪态线程位于SRAM中,具备运行条件,等待系统分配处理器以便运行,处于就绪状态的线程事实上已被调度,已经被放到某一队列等待执行,处于就绪状态的线程何时可真正执行,取决于线程优先级以及队列的当前状况,线程的优先级如果相同,将遵循“先来先服务”的调度原则;线程依据自身优先级进入等待对列的相应位置,某些系统线程具有最高优先级、这些最高优先级线程一旦进入就绪状态,将抢占当前正在...

【专利技术属性】
技术研发人员:陈天洲胡威沙峰连毅
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1