原创 优先级反转+解决方案收藏

1. 优先级反转(Priority Inversion)
    由于多进程共享资源,具有最高优先权的进程被低优先级进程阻塞,反而使具有中优先级的进程先于高优先级的进程执行,导致系统的崩溃。这就是所谓的优先级反转(Priority Inversion)。

2. 产生原因
      其实,优先级反转是在高优级(假设为A)的任务要访问一个被低优先级任务(假设为C)占有的资源时,被阻塞.而此时又有优先级高于占有资源的任务(C)而低于被阻塞的任务(A)的优先级的任务(假设为B)时,于是,占有资源的任务就被挂起(占有的资源仍为它占有),因为占有资源的任务优先级很低,所以,它可能一直被另外的任务挂起.而它占有的资源也就一直不能释放,这样,引起任务A一直没办法执行.而比它优先低的任务却可以执行.  

      所以,一个解决办法就是提高占有资源任务的优先级,让它正常执行,然后释放资源,以让任务A能正常获取资源而得以执行.

3. 解决方案 ( 优先级继承 / 优先级天花板 )

   目前解决优先级反转有许多种方法。其中普遍使用的有2种方法:一种被称作优先级继承(priority inheritance);另一种被称作优先级极限(priority ceilings)。

  A. 优先级继承(priority inheritance)
      优先级继承是指将低优先级任务的优先级提升到等待它所占有的资源的最高优先级任务的优先级.当高优先级任务由于等待资源而被阻塞时,此时资源的拥有者的优先级将会自动被提升.  
   
  B. 优先级天花板(priority ceilings)
      优先级天花板是指将申请某资源的任务的优先级提升到可能访问该资源的所有任务中最高优先级任务的优先级.(这个优先级称为该资源的优先级天花板)  
   
  A 和B的区别:
   
  优先级继承,只有当占有资源的低优先级的任务被阻塞时,才会提高占有资源任务的优先级,而优先级天花板,不论是否发生阻塞,都提升.  

发表于 @ 2007年09月18日 01:33:00|评论(loading...)

新一篇: 使用truss、strace或ltrace诊断软件的"疑难杂症" | 旧一篇: how to write a module dumper & disassembler

用户操作
[即时聊天] [发私信] [加为好友]
Kendiv
订阅我的博客
XML聚合  FeedSky
Kendiv的公告
我们家最坏的就是他~~ 我的mimi,可爱吧~~
2008.10.28
Coding Life
English version
/*---------------------
Personal Info:
Name: Kendiv
----------------------*/
文章分类
收藏
AI
智能中国
AntiVirus
Malware-Research‏
AV Engine
a tool to collect malware
ClamAV for Windows
ClamAV Virus Database
ClamAV-Home
Disassembly Challenges
Filetype Detection - wiki
IceSword - Home
OpenAnti-Virus
BBS、论坛
Juniper Networks
Visual Studio Team System - 微软中文技术社区
ChinaUnix Blog
飞翔,嵌入式linux
Data Loss Prevention (DLP) Security
Hacker
Collection.Sites
Z0MBiE's HomePage
ICAP
ICAP-Forum
POSIX Threads(PThreads)
Open Source POSIX Threads for Win32
Squid
squid-home
Virtualization
虚拟机之家
Web Tech.
Https - wiki
ICP - Home
技术网站
absurd,大牛
ChinaUnix
Cisco Systems
CSDN
DDK MVP Expert Zone
Dr. Dobb's Journal
Ethereal
Kernel Mustard的专栏
Linux Journal
LinuxAid 技术支持中心
Microsoft Systems Journal
Microsoft TechNet
MSDN 技术资源库
MSDN中文WebCast
SysInternals(FreeWare)
The Code Project
VCHelp
VC在线
VC知识库
Windows Driver Programming(WD-3)
ZDNet China
中国协议分析网
哈工大·纯C论坛
安全焦点
微软中国社区
绿盟技术版
罗云彬的编程乐园
驱动开发网
其他
前程无忧
数字北京
清韵书院
铁血军事网
铁血读书
网上书店
China-Pub
第二书店
友情链接
JoyCode博客堂
Rong
嵌入式软件开发网(UCSDN)
狗狗
邹欣的Blog
存档
Csdn Blog version 3.1a
Copyright © Kendiv