新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 操作系统研究。UEFI
    [返回] 计算机科学论坛计算机理论与工程『 操作系统原理 』 → 嵌入式操作系统基本模块 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 5901 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 嵌入式操作系统基本模块 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     happem 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:20
      积分:108
      门派:XML.ORG.CN
      注册:2012/8/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给happem发送一个短消息 把happem加入好友 查看happem的个人资料 搜索happem在『 操作系统原理 』的所有贴子 引用回复这个贴子 回复这个贴子 查看happem的博客楼主
    发贴心情 嵌入式操作系统基本模块


    由于嵌入式操作系统是为某一特殊目的而设计的,因此它历来具有简单,实时性强,在有限的存储空间中运行等特点。随着嵌入式硬件的不断成熟,这些特点也不断发展、变化、传统上只有在桌面机os上找到的一些特征,例如虚拟存储器,现在也已经移植进嵌入式系统。

    一个操作系统由一些常见的底层模块组成,每个模块实现一个预定的功能。这些模块的相互作用和功能决定了这个特定操作系统的特征。

    初始化代码是操作系统执行的第一段代码,包括建立内部数据结构、全局变量和硬件环境。在固件把控制权交给操作系统时,初始化代码开始执行。操作系统的硬件初始化包括设置各种控制寄存器,初始化设备驱动程序。若操作系统为抢占式的,还须建立一个周期性的定时器中断。

    存储器处理包括建立系统堆栈和任务堆栈。这些堆栈的位置决定了任务或系统可用的存储空间大小。系统堆栈的位置通常在操作系统初始化时设置,任务堆栈在何时建立,取决于该任务是静态的还是动态的。

       静态任务在编译时被定义,并包含于操作系统映像中,这些任务的堆栈可在操作系统初始化时建立,作为例子,后面的SLOS就是一个基于静态任务的操作系统。

    动态任务在装载并运行操作系统以后被装载和执行,它不是操作系统映像的一部分。这种任务的堆栈在创建任务时建立。不同操作系统的存储器处理,其复杂程度也不同,取决于很多因素,比如所选择的ARM处理器核、微控制器的性能及最终目标硬件的物理存储器布局等。

      调度程序是决定下一个该执行哪个任务的算法。有很多可选的调度算法,最简单的一个称为循环算法,它以固定的次序循环激活任务,调度算法的选择必须在效率、代码大小与复杂性之间折衷。

      最后一个模块是驱动程序框架——操作系统用于在不同硬件外设之间提供统一接口的机制,这个框架提供一种标准且简单的方法,把对特定外设的新支持集成到操作系统中,应用程序要访问特定外设时,必须有对应的可用驱动程序。框架必须为访问外设提供安全的方法。
    操作系统的设计问题:
    完全开发集群配置需要增强单机操作系统的某些功能。

    故障管理:

    集群怎样管理故障取决于所使用的集群方式,一般而言,有两种方法可以用于处理故障:高度可用集群和容错集群。高度可用集群能以较高的概率使所有资源用于服务。如果真正发生故障,例如某一系统停机或丢失了一个磁盘卷,则正在进行的询问将丢失。如果执行重试操作,任何丢失的询问将由集群中的另一个台计算机来服务,然而,集群操作系统并不保证事务的部分执行状态。这需要在应用级进行处理。

    容错集群保证所有资源总是可用的,这可以通过使用冗余共享磁盘和取消未完成事物及接受已完成事物的机制来完成。

    将应用程序和数据资源从发生故障的系统交换到集群中另一个系统上的功能称为故障补救。相关的一个功能是,一旦原系统已被修复,则将应用程序和数据资源恢复到原来的系统,这称为故障复原,故障复原可以自动进行,但这只有当问题真被修复并不会再发生时才是真正的故障复原。否则,自动故障复原可能导致后续发生故障的资源在计算机之间来回反弹,从而导致性能和恢复问题。

    负载平衡:

    集群需要有在可用的计算机之间平衡负载的有效能力,当集群规模扩大时也要求执行负载平衡,当一台新的计算机加入到集群中时,负载平衡机制应能够自动地在应用调度包括这台计算机。中间件机制需要识别出可以出现在集群中的不同成员上的服务。并且可以将服务从集群中一个成员转移到另一个成员上。

    并行计算

    在某种情况下,对集群的有效使用要求并行地执行一个单一应用的软件。[KAPPOO]列出了三种解决该问题的常用方法:

    1        并行编译器:并行编译器在编译时决定了应用程序的哪一部分可以并行地执行。这些部分然后被分开,分派到集群中的不同计算机上,性能取决于问题本身以及编译器设计的好坏。

    2        并行应用程序:在这种方法中,程序员在编写应用程序时,从开始到运行的过程中都要考虑在需要的时候,使用消息传递机制,将数据在集群的不同节点上移动。这将给程序员带来很重的负担,但这也许是针对某些应用程序开发集群的最好方法。

    3        参数化计算:这种方法使用的背景,应用程序基本上是一个必须执行很多次的算法或程序,而每次都具有不同的开始条件和参数,仿真模型是一个很好的列子,它将运行大量不同的场景以及开发结果的统计摘要。为了使这种方法更加有效,需要参数处理工具来按照顺序组织、运行和管理作业。
    文章来自:嵌入式培训 http://www.lirenedu.org/index.php?ack=xinwen&id=1091


       收藏   分享  
    顶(1)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2012/8/18 14:59:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 操作系统原理 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/30 17:28:14

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    46.875ms