!#$%下互斥机制及其分析.PDFVIP

  • 1
  • 0
  • 约1.71万字
  • 约 5页
  • 2018-12-13 发布于天津
  • 举报
!#$%下互斥机制及其分析.PDF

·5! · 计算机应用研究) !4 年 !#$% 下互斥机制及其分析 李) 晋,葛敬国 (中国科学院计算机网络信息中心,北京 ’* ) 摘) 要:详细介绍了在+,-./ 环境下,特别是内核态下可能遇到的各种互斥场景,依据代码执行路径对其进行 了分类。在此基础上,比较了各种互斥问题的解决方案的使用环境、优缺点以及使用时要注意的问题。 关键词:中断屏蔽;原子操作;互斥;自旋锁;信号量 中图法分类号:01(’%2 *) ) ) 文献标识码:3) ) ) 文章编号:’’$ (%4(!4 )*$ 5!$ ( 3-6789:9 ; =..67 ?/@7.9,;- =:@A6-,9B ,- +,-./ +C D,- ,E? D,-F$F.; (!#$ %’( )’*(+ ,-. (#/0- !’-’( ,!10-’2’ 34/5’#6 . 740’-4’2 ,8’09 0-: ’* ,!10-/ ) !#$%’$ :0A,9 6G,@7: H:9@G,I:9 A: B.:/ 9,.6,;- .-H:G A: +,-./ :-J,G;-B:- ,:9K:@,6778 ,- L:G-:7 9K6@: ,6-H @7699,,:9 A:B I8 @;H:$:/:@.,-F K6AM C 679; 9A;N9 A: .96F: ,N:6L-:99 6-H 9G:-FA ; :6@A 9;7.,;-M ()* +,%-# :=69L C-:GG.K ;3;B,@ OK:G6,;- ;=.:/ ;PK,-7;@L ;P:B6KA;G: ) ) 从出现操作系统以来,互斥就是一个重要且必须解决的问 的互斥机制,在 P=1 (P8BB:G,@67 =.7,$1G;@:99,-F ,对称多处 题。硬件、操作系统和高级语言为解决这个问题提供了一系列 理)系统同样起作用,所以用户空间的互斥问题是很简单的 的支持,高级语言通常只提供进程级的互斥机制,但是要对硬 (关于信号量将在第! 章介绍)。本文重点说明内核态下的互 件进行编程或做操作系统级别的底层工作时,单一的互斥机制 斥,下文出现的互斥如果不特别说明均指内核互斥。 是不够的。因为程序中存在大量非进程级的互斥场景,加大了 如图’ 所示,代码执行路径分为: 问题的复杂度。操作系统提供很多互斥机制,然而对不同的互 (’)进程通过系统调用进入内核的代码路径,我们称它为 斥场景选择合适的互斥机制是至关重要的。互斥方法的作用 进程代码路径。本文所说的进程代码路径指的仅仅是在内核 范围太小,达不到上锁目标,太大会影响系统效率。本文的目 中执行的代码路径。每一个尚未完成系统调用的进程都对应 的就是分析互斥场景、互斥机制的功能与效果及其对系统性能 着一条内核代码路径;每一个内核线程也相当于一条进程代码 的影响,并介绍如何选择最佳的互斥机制。 路径。这种路径中有进程上下文。 (! )异常处理代码,它是由于当前进程的执行而引起的。 !) 互斥场景 对于正在内核中运行的进程来说,它们唯一会引起的异常是 “缺页”处理程序。它没有进程上下文。 2 ) 代码执行路径和临界区 ! ! (( )中断处理程序(包括各种软中断)。中断是一个完全 对某一代码段3 来说,在程序中可能得到多次的执行,

文档评论(0)

1亿VIP精品文档

相关文档