⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 [推荐]vxworks内核分析[v创论坛].htm

📁 VxWorks操作系统讲义。讲解最全面和最细致的PPT,值得收藏
💻 HTM
📖 第 1 页 / 共 5 页
字号:
}

function DispMagicEmot(MagicID,H,W){
	MagicFaceUrl = "Dv_plus/tools/magicface/swf/" + MagicID + ".swf";
	document.getElementById("MagicFace").innerHTML = '<OBJECT codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + W + '" height="' + H + '"><PARAM NAME=movie VALUE="'+ MagicFaceUrl +'"><param name=menu value=false><PARAM NAME=quality VALUE=high><PARAM NAME=play VALUE=false><param name="wmode" value="transparent"><embed src="' + MagicFaceUrl +'" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="' + W + '" height="' + H + '"></embed>';
	document.getElementById("MagicFace").style.top = '250px';
	document.getElementById("MagicFace").style.left = '250px';
	document.getElementById("MagicFace").style.visibility = 'visible';
	MagicID += Math.random();
	setTimeout("MM_showHideLayers('MagicFace','','hidden')",5000);
	NowMeID = MagicID;
}
function LoadMagicEmot(MagicID,topicid){
var cookiesstr=readCookie('mofaface_'+ topicid);
if (cookiesstr ==null){
createCookie('mofaface_'+ topicid,MagicID,365)
DispMagicEmot(MagicID,350,500)
}
}
</script>
	<div class="main" style="margin-top:4px;height:28px;line-height:28px;margin-bottom:4px;"><div id="posttopic" title="发表一个新帖子" onclick="location.href='post.asp?action=new&amp;boardid=6'"></div>
<div id="postalipay" title="发起一个用支付宝交易的交易贴,支付宝交易买卖都有保障,免手续费、安全、快捷!" onclick="location.href='post.asp?action=new&amp;boardid=6&amp;stype=1'"></div>
<div id="postvote" title="发起一个新投票" onclick="location.href='post.asp?action=vote&amp;boardid=6'"></div>
<div id="repost" title="回复贴子" onclick="location.href='post.asp?action=re&amp;boardid=6&amp;id=262&amp;star=1&amp;page=2'"></div>
<div style="float:right;">您是本帖的第 <b>168</b> 个阅读者 </div>
</div>
<div class="th">
<div style="text-align : right;float:right;">
<a href="?BoardID=6&amp;replyID=560&amp;id=262&amp;skin=1" title="树形显示贴子" style="margin-right: 10px;font-weight : normal ; ">树形</a>
<a href="TopicOther.asp?t=5&amp;BoardID=6&amp;id=262" target="_blank" title="打印本贴内容" style="margin-right: 10px;font-weight : normal ;  ">打印</a>
<a href="favlist.asp?action=add&amp;BoardID=6&amp;id=262" title="将本贴加入论坛收藏夹" style="margin-right: 10px;font-weight : normal ; ">收藏</a>
<a href="TopicOther.asp?t=7&amp;BoardID=6&amp;id=262" title="推荐本贴给好友" style="margin-right: 10px;font-weight : normal; ">推荐</a>
<a href="admin_postings.asp?action=修复&amp;BoardID=6&amp;ID=262" title="修复贴子的回复数、更新时间。" style="margin-right: 10px;font-weight : normal; ">修复</a>
</div>
<div style="height:24px;float:left;text-indent:10px;"><div style="float:left;">标题:</div>[推荐]VXWORKS内核分析</div>
</div>
<a name="560">
</a>
<div class="postlary1">
<div class="postuserinfo">
<div style="padding: 10px 0px 0px 5px;line-height:30px;height:30px;">
<div style="float:left;width :120px;filter:glow(color='#9898BA',strength='2');"><b><font color="#FF0000">jdvxworks</font></b></div>
<div style="float:left;width :23px;text-indent:0px;margin:3px;"><img src="skins/Default/ofMale.gif" alt="帅哥哟,离线,有人找我吗?" />
</div>
<div style="float:left;width :15px;text-indent:0px;margin:5px;"><script type="text/javascript" language="javascript">document.write (astro(''));</script></div>
</div>
<div><img src="images/userface/image1.gif" alt="" width="32" height="32" /></div>
<div><img style="margin:5px 0px 5px 0px;" src="skins/Default/star/level20.gif" /></div>
<div>等级:管理员</div>
<div>文章:416</div>
<div>积分:4494</div>
<div>门派:无门无派</div>
<div>注册:2006年9月23日</div>
</div>
<div class="postie">
<div>
<div style="float:right;">
<a href="favlist.asp?action=boke&amp;BoardID=6&amp;replyID=560&amp;ID=262" title="收录该贴到我的博客" target="_blank"><img src="skins/Default/bokefav.gif" border="0" align="middle" /></a>楼主</div>&nbsp;<a href="https://www.alipay.com/payto:foxqs@126.com&amp;partner=2088002048522272" target="_blank"><img alt="用支付宝给jdvxworks付款或购买其商品,支付宝交易免手续费、安全、快捷!" border="0" src="skins/Default/alipay_s.gif" align="middle" /></a>
<a href="boke.asp?UserID=2" title="访问jdvxworks的个人博客" target="_blank"><img src="skins/Default/boke.gif" border="0" align="middle" /></a>
<a href="http://wpa.qq.com/msgrd?V=1&amp;Uin=20056700&amp;Site=By Dvbbs&amp;Menu=yes" title="点击发送QQ消息给jdvxworks" target="_blank"><img src="http://wpa.qq.com/pa?p=1:20056700:4" border="0" width="16" height="16" align="middle" /></a> QQ 
<a href="messanger.asp?action=new&amp;touser=jdvxworks" target="_blank"><img src="skins/Default/message.gif" border="0" alt="给jdvxworks发送一个短消息" align="middle" /></a>
<a href="friendlist.asp?action=addF&amp;myFriend=jdvxworks" target="_blank"><img src="skins/Default/friend.gif" border="0" alt="把jdvxworks加入好友" align="middle" /></a>
<a href="dispuser.asp?id=2" target="_blank"><img src="skins/Default/profile.gif" border="0" alt="查看jdvxworks的个人资料" align="middle" /></a>
<a href="query.asp?stype=1&amp;nSearch=3&amp;keyword=jdvxworks&amp;BoardID=6&amp;SearchDate=ALL" target="_blank"><img src="skins/Default/find.gif" border="0" alt="搜索jdvxworks在≡VxWorks系统原理研究≡的所有贴子" align="middle" /></a>
<a href="mailto:foxqs@126.com"><img alt="点击这里发送电子邮件给jdvxworks" border="0" src="skins/Default/email.gif" align="middle" /></a>
<a href="http://www.jdvxworks.com" target="_blank"><img alt="访问jdvxworks的主页" border="0" src="skins/Default/homepage.gif" align="middle" /></a>
</div>
<hr />
<div style="height:22px;line-height:22px;"><div style="float:left;"><img src="skins/Default/topicface/face1.gif" alt="发贴心情" /></div><b>[推荐]VXWORKS内核分析</b></div>
<div style="height:200px;width:97%;padding-right:0px; overflow-x: hidden;font-size:9pt;line-height:normal;text-indent:24px;margin-top:10px;word-wrap : break-word ;word-break : break-all ;" onload="this.style.overflowX='auto';"><p>VXWORKS内核分析 <br/>&nbsp; <br/>作者:佚名&nbsp;&nbsp; 来源:本站原创&nbsp;&nbsp;&nbsp; 点击数:122&nbsp;&nbsp; 更新时间:2006-2-20 <br/>&nbsp;</p><p><br/>1. 实时操作系统的结构<br/>&nbsp;&nbsp;&nbsp; 在计算的早期开发的操作系统的最原始的结构形式是一个统一的实体(monolithic)。在这样的系统中,提供的不同功能的模块,如处理器管理、内存管理、输入输出等,通常是独立的。然而他们在执行过程中并不考虑其他正在使用中的模块,各个模块都以相同的时间粒度运行。<br/>&nbsp;&nbsp;&nbsp; 由于现代实时环境需要许多不同的功能,以及在这样的环境中存在的并发活动所引起的异步性和非确定性,操作系统变得更加复杂。所以早期操作系统的统一结构的组织已经被更加精确的内部结构所淘汰。层次结构的起点----内核<br/>&nbsp;&nbsp;&nbsp; 操作系统的最好的内部结构模型是一个层次性的结构,最低层是内核。这些层次可以看成为一个倒置的金字塔,每一层都建立在较低层的功能之上。 内核仅包含一个操作系统执行的最重要的低层功能。正象一个统一结构的操作系统,内核提供了在高层软件与下层硬件之间的抽象层。然而,内核仅提供了构造操作系统其他部分所需的最小操作集。<br/>对一个实时内核的要求<br/>&nbsp;&nbsp;&nbsp; 一个实时操作系统内核需满足许多特定的实时环境所提出的基本要求,这些包括: 多任务:由于真实世界的事件的异步性,能够运行许多并发进程或任务是很重要的。多任务提供了一个较好的对真实世界的匹配,因为它允许对应于许多外部事件的多线程执行。系统内核分配CPU给这些任务来获得并发性。<br/>&nbsp;&nbsp;&nbsp; 抢占调度:真实世界的事件具有继承的优先级,在分配CPU的时候要注意到这些优先级。基于优先级的抢占调度,任务都被指定了优先级, 在能够执行的任务(没有被挂起或正在等待资源)中,优先级最高的任务被分配CPU资源。换句话说,当一个高优先级的任务变为可执行态,它会立即抢占当前正在运行的较低优先级的任务。<br/>&nbsp;&nbsp;&nbsp; 快速灵活的任务间的通信与同步:在一个实时系统中,可能有许多任务作为一个应用的一部分执行。系统必须提供这些任务间的快速且功能强大的通信机制。内核也要提供为了有效地共享不可抢占的资源或临界区所需的同步机制。<br/>&nbsp;&nbsp;&nbsp; 方便的任务与中断之间的通信:尽管真实世界的事件通常作为中断方式到来,但为了提供有效的排队、优先化和减少中断延时,我们通常希望在任务级处理相应的工作。所以需要杂任务级和中断级之间存在通信。<br/>&nbsp;&nbsp;&nbsp; 性能边界:一个实时内核必须提供最坏情况的性能优化,而非针对吞吐量的性能优化。我们更期望一个系统能够始终以50微妙执行一个函数,而不期望系统平均以10微妙执行该函数,但偶尔会以75微妙执行它。<br/>&nbsp;&nbsp;&nbsp; 特殊考虑:由于对实时内核的要求的增加,必须考虑对内核支持不断增加的复杂功能的要求。这包括多进程处理,Ada和对更新的、功能更强的处理器结构如RISC的支持。</p><p>拥有其它名字的内核<br/>&nbsp;&nbsp;&nbsp; 许多商用化的内核支持的功能远强于上面所列的要求。在这方面,他们不是真正的内核,而更象一个小的统一结构的操作系统。因为他们包含简单的内存分配、时钟管理、甚至一些输入输出系统调用的功能。<br/>&nbsp;&nbsp;&nbsp; 这种分类不仅仅是在语义上的争论,在这篇文章的后面章节将说明限制内核功能和油画这些功能的重要性。<br/>2. VxWorks内核:Wind<br/>&nbsp;&nbsp;&nbsp; VxWorks操作系统是一种功能最全的现在可以获得的独立于处理器的实时系统。然而,VxWorks是带有一个相当小的真正微内核的层次结构。内核仅提供多任务环境、进程间通信和同步功能。这些功能模块足够支持VxWorks在较高层次所提供的丰富的性能的要求。 通常内核操作对于用户是不可见的。应用程序为了实现需要内核参与的任务管理和同步使用一些系统调用,但这些调用的处理对于调用任务是不可见的。应用程序仅链接恰当的VxWorks例程(通常使用VxWorks的动态链接功能),就象调用子程序一样发出系统调用。这种接口不象有些系统需要一个笨拙的跳转表接口,用户需要通过一个整数来指定一个内核功能调用。<br/>多任务<br/>&nbsp;&nbsp;&nbsp; 内核的基本功能是提供一个多任务环境。多任务使得许多程序在表面上表现为并发执行,而事实上内核是根据基本的调度算法使他们分段执行。每个明显独立的程序被成为一个任务。每个任务拥有自己的上下文,其中包含在内核调度使该任务执行的时候它所看到的CPU环境和系统资源。<br/>任务状态<br/>&nbsp;&nbsp;&nbsp; 内核维护系统中的每个任务的当前状态。状态迁移发生在应用程序调用内核功能服务的时候。下面定义了wind内核状态:<br/>&nbsp;&nbsp;&nbsp; 就绪态----一个任务当前除了CPU不等待任何资源<br/>&nbsp;&nbsp;&nbsp; 阻塞态----一个任务由于某些资源不可获得而被阻塞<br/>&nbsp;&nbsp;&nbsp; 延迟态----一个任务睡眠一段时间<br/>&nbsp;&nbsp;&nbsp; 挂起态----主要用于调试的一个辅助状态,挂起禁止任务的执行<br/>&nbsp;&nbsp;&nbsp; 任务被创建以后进入挂起态,需要通过特定的操作使被创建的任务进入就绪态,这一操作执行速度很快,使应用程序能够提前创建任务,并以一种快捷的方式激活该任务。<br/>调度控制<br/>&nbsp;&nbsp;&nbsp; 多任务需要一个调度算法分配CPU给就绪的任务。在VxWorks中默认的调度算法是基于优先级的抢占调度,但应用程序也可以选择使用时间片轮转调度。<br/>&nbsp;&nbsp;&nbsp; 基于优先级抢占调度:基于优先级的抢占调度,每个任务被指定一个优先级,内核分配CPU给处于就绪态的优先级最高的任务。调度采用抢占的方式,是因为当一个优先级高于当前任务的任务变为就绪态时,内核将立即保存当前任务的上文,并切换到高优先级任务的上文。VxWorks有从0到255共256个优先级。在创建的时候任务被指定一个优先级,在任务运行的过程中可以动态地修改优先级以便跟踪真实世界的事件优先级。外部<br/>中断被指定优先于任何任务的优先级,这样能够在任何时候抢占一个任务。<br/>&nbsp;&nbsp;&nbsp; 时间片轮转:基于优先级抢占调度可以扩充时间片轮转调度。时间片轮转调度允许在相同优先级的处于就绪态的任务公平地共享CPU。没有时间片轮转调度,当有多个任务在同一优先级共享处理器时,一个任务可能独占CPU,不会被阻塞直到被一个更高优先级的任务抢占,而不给同一优先级的其他任务运行的机会。如果时间片轮转被使能,执行任务的时间计数器在每个时钟滴答递增。当指定的时间片耗尽,计数器会被清零,该任<br/>务被放在同一优先级任务队列的队尾。加入特定优先级组的新任务被放在该组任务的队尾,并将运行计数器初始化为零。<br/>基本的任务函数<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用于状态控制的基本任务函数包括一个任务的创建、删除、挂起和唤醒。一个任务也可以使自己睡眠一个特定的时间间隔不去运行。许多其他任务例程提供由任务上下文获得的状态信息。这些例程包括访问一个任务当前处理器寄存器控制。<br/>任务删除问题<br/>&nbsp;&nbsp;&nbsp; wind内核提供防止任务被意外删除的机制。通常,一个执行在临界区或访问临界资源的任务要被特别保护。我们设想下面的情况:一个任务获得一些数据结构的互斥访问权,当它正在临界区内执行时被另一个任务删除。由于任务无法完成对临界区的操作,该数据结构可能还处于被破坏或不一致的状态。而且,假想任务没有机会释放该资源,那麽现在其他任何任务现在就不能获得该资源,资源被冻结了。<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;<br/></p></div>
<div>
<hr />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="8" background="images/Ctrl_left.gif" height="79"></td>
<td background="images/Ctrl_bg.gif">
<font color="#EC5C2D"><li>本文由 [jdvxworks] 发表,[jdvxworks] 与〖V创论坛〗依《论坛守则》享有相关权利;</li><br /><li>其他单位或个人使用、转载或引用本文时必须征得 [jdvxworks] 与〖V创论坛〗的同意;</li><br /><li>发贴者承担一切因本文发表而直接或间接导致的民事或刑事法律责任;</li><br /><li>本论坛的管理员和版主有权不事先通知发贴者而删除本文;</li><br /><li>如果本论坛的某些帖子侵犯了你的权利,请联系本论坛(foxqs@126.coom),本站会做最快处理!!</li>
</font>
</td><td width="8" height="79" background="images/Ctrl_right.gif" border="0"></td>
</tr>
</table><hr />
</div><div style="width:85%;overflow-x: hidden;">
<img src="skins/Default/sigline.gif" /><br />为你提供真诚的服务,让我们互助学习!!<br/>三线接入空间,让你畅通无阻!!请大家选择线路访问!!<br/>Vxworks QQ群交流:6846882<br/>本站声明:本站所有资源均来源于互联网,本站不提供任何下载。如有侵犯您的权力请通知本站,确认属实后本站将作出修改。本站原创保留权利!!</div>
</div>
</div>
<div class="postbottom1">
<div class="postuserinfo" style="height:28px;"><div style="float:left;">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -