第6章 信号量,中断和时间

Similar documents
ebook15-10

1 CPU interrupt INT trap CPU exception

CC213

IntelBook_cn.doc

新版 明解C++入門編

Kernel Kernel Kernel Kernel load estimator runqueue kernel/sched.

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

linux进程间通信

新・明解C言語入門編『索引』

46 * the current mask in old_mask and block until a signal comes in. 47 */ /* 自动地更换成新的信号屏蔽码, 并等待信号的到来 * * 我们需要对系统调用 (syscall) 做一些处理 我们会从系统调用库接口取得某些信息

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

FY.DOC

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

上 述 的 描 述 是 在 一 台 计 算 机 上 只 有 一 颗 CPU, 并 且 该 CPU 只 有 一 个 核 心 的 情 形, 在 这 种 环 境 下, 虽 然 系 统 可 以 运 行 多 个 任 务, 但 是 在 某 一 个 时 间 点,CPU 只 能 执 行 一 个 进 程 但 是 如

Microsoft PowerPoint - os_4.ppt

06721 main() lock pick proc() restart() [2][4] MINIX minix2.0 GDT, IDT irq table[] CPU CPU CPU CPU (IDTR) idt[] CPU _hwint00:! Interrupt

第11章 可调内核参数

_汪_文前新ok[3.1].doc

untitled

华恒家庭网关方案

C/C++ - 文件IO

ch08.PDF

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>


,,.,. :, :,1999. Barry Wilkinson and Michael Allen. Parallel Programming(Techniques and Applications using Networked Workstations and Parallel

表3:

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

<4D F736F F D204C696E7578CFB5CDB3B5F7D3C3C1D0B1ED>

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

ebook

学习MSP430单片机推荐参考书

378高雄市都市計畫說明書

untitled

Microsoft Word - PHP7Ch01.docx

概述

本文由筱驀釹贡献

static struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def

海 南 冯 琳 峰 海 南 省 锅 炉 压 力 容 器 与 特 种 设 备 检 验 所 海 南 省 定 安 县 白 蒙 路 47 号 信 XC 内 蒙 古 冯 磊 赤 峰 市 特 种 设 备 检 验 所 内 蒙 古 赤 峰 市 红 山 区 八 里 铺 油 库 路

一 人 力 资 源 管 理 准 则 二 员 工 的 义 务 和 权 利 三 考 核 与 评 价 四 人 力 资 源 管 理 的 主 要 规 范 第 五 章 基 本 控 制 政 策 一 管 理 控 制 方 针 二 质 量 管 理 和 质 量 保 证 体 系 三 全 面 预 算 控 制 四 成 本 控

IP505SM_manual_cn.doc

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09: 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

Microsoft Word - 11.doc

bingdian001.com

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

(Guangzhou) AIT Co, Ltd V 110V [ ]! 2

<4D F736F F D DD7A1B7BFB9ABBBFDBDF0D0C5CFA2BBAFBDA8C9E8B5BCD4F25FB1A8C5FAB8E55F2E646F6378>

ebook20-7

目 錄 壹 青 輔 會 結 案 附 件 貳 活 動 計 劃 書 參 執 行 內 容 一 教 學 內 容 二 與 當 地 教 師 教 學 交 流 三 服 務 執 行 進 度 肆 執 行 成 效 一 教 學 課 程 二 與 當 地 教 師 教 學 交 流 三 服 務 滿 意 度 調 查 伍 服 務 檢

Microsoft Word - ARM Linux中断机制分析.doc

PowerPoint Presentation

概述

W. Richard Stevens UNIX Sockets API echo Sockets TCP OOB IO C struct C/C++ UNIX fork() select(2)/poll(2)/epoll(4) IO IO CPU 100% libevent UNIX CPU IO

<4D F736F F D20B2D9CDB3BFCEB3CCB4FAC2EBD4C4B6C1CABEC0FD2E646F63>

36 p->p_osptr->p_ysptr = p->p_ysptr; 37 if (p->p_ysptr) 38 p->p_ysptr->p_osptr = p->p_osptr; 39 else 40 p->p_pptr->p_cptr = p->p_osptr; 41 free_page((

2005.book

外 语 学 德 语 语 言 文 学 河 南 省 商 丘 市 柘 城 县 张 桥 乡 小 岗 村 村 民 组 一 组 外 语 学 英 语 笔 译 河 南 省 信 阳

untitled

untitled

多进程管理副本.key

Microsoft Word - linux命令及建议.doc

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

mvc

目录

2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%

untitled

Microsoft PowerPoint - lect01.ppt

1








untitled

Microsoft Word - PS2_linux_guide_cn.doc

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

Untitiled

中艺华海修改1.7.indd

北 京 蓝 皮 书 公 共 服 务 相 比 而 言, 养 老 医 疗 失 业 等 保 险 都 早 已 经 由 国 务 院 颁 布 了 相 应 的 立 法 条 例, 在 全 国 范 围 内 形 成 了 统 一 的 制 度 党 的 十 八 届 四 中 全 会, 首 次 以 依 法 治 国 为 主 题,

2006年中央、国家机关公务员录用考试


公 司 年 度 大 事 记 2015 年 10 月 -11 月, 公 司 完 成 股 份 制 改 造 10 月 13 日, 百 灵 有 限 临 时 股 东 会 作 出 决 议, 同 意 各 发 起 人 将 其 在 百 灵 有 限 拥 有 的 截 至 2015 年 8 月 31 日 经 审 计 的 原

行业

穨UPSentry_SC_.PDF

<55342D323637CBB5C3F7CAE92E786C73>

untitled

甄選入學howhow作印刷校過版

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

Microsoft Word - 01.DOC

<4D F736F F D20D1A7C9FACAD6B2E1B8C4D7EED6D5A3A8B4F8B1EDB8F1BCD3D2B3C2EBB0E6A3A9372E3239>

桂林市劳动和社会保障局关于

第三章 維修及管理

Microsoft Word 年度选拔硕博连读研究生的通知.doc

Microsoft Word 箕æ−¥ï¼‹å®ı稿;

98年度即測即評學科測試與即測即評即發證技術士技能檢定簡章

行业

PowerPoint 演示文稿


Transcription:

6 6 Signal IPC POSIX Unix IPC Ctrl+C 9 IPC Linux Interrupt 5 Linux Linux CPU Linux Linux include/asm-i386/spinlock.h 12582 #ifdef UP SMP UP SMP 10 SMP Linux Nonrealtime SIGSEGVSIGHUP - - 52

6 SIGKILL realtime POSIX 1003.1b SIGUSR1 SIGUSR2 7 Linux 12048 SIGRTMIN SIGRTMAX 12087 12088 sigset_t 12035sigset_t 16425 struct task_struct signal blocked 12036sigset_t unsigned long x86 CPU 16 Linux 32 32 Linux 32 64 CPU 64 _NSIG_WORDS 12031 _NSIG_BPW BPW bits per word _NSIG_WORDS 1Alpha 4MIPS x86 2 x86 2 Linux struct sigaction 12165struct sigaction struct k_sigaction12172 struct signal_struct struct task_struct sig 16424 _NSIG struct sigaction struct sigaction 12166sa_handler sighandler_t 12148 SIG_DFL12151 NULL SIG_IGN12153-53 -

6 12167sa_flags 12108 12168sa_restorer 12169sa_mask siginfo_t SIGCHLD SIGHUP SIGINTSIGCHLD sa_mask SIGHUP SIGINT 11851struct siginfo siginfo_t 11852 si_signo 11853si_errno errno 0 si_error 11854si_code ID PID 11915 11856union union si_code 11857union _pad siginfo_t 128*sizeofint x86 512 SI_PAD_SIZE11849 SI_PAD_SIZE struct signal_queue 17132struct signal_queue siginfo_t siginfo_t sigset_t include/linux/signal.h 17123 x86 12204 m68k x86 sigset_t sigset_t include/linux/sigal.h 17123 bitops - 54 -

6 sigaddset 17145sigaddset 17147 0 1 17149 17151 sigaddset 17148 if (_NSIG_WORDS == 1) else set->sig[0] =1UL << sig; set->sig[sig / NSIGBPW] = 1UL << (sig % NSIGBPW); #if (_NSIG_WORDS == 1) #else #endif set->sig[0] =1UL << sig; set->sig[sig / NSIGBPW] = 1UL << (sig % NSIGBPW); if gcc if sigemptyset 17264 switch swithc (_NSIG_WORDS) { default: memset(set, 0, sizeof(sigset_t)); break; case 2: set->sig[1] = 0; case 1: set->sig[0] = 0; } break; case 2 case 1 #if ((_NSIG_WORDS!= 2)) && \ (_NSIG_WORDS!= 1) memset(set, 0, sizeof(sigset_t)); #else /* (_NSIG_WORDS is 2 or 1). */ #if (_NSIG_WORDS == 2) set->sig[1] = 0; #endif - 55 -

6 set->sog[0] = 0; #endif /* _NSIG_WORDS test. */ gcc gcc gcc sigdelset 17154 sigaddset sigismember 17163 sigaddset 17167 return set->sig[0] & (1UL << sig); 17169 0 1 0 0 1 sigfindinword 17172word ffz sigmask 0 0 1 0 17177sigmask sigset_t C x86 CPU x86 x86 m68k 17126 asm/signal.h x86 include/asm-i386/signal.h 12202 HAVE_ARCH_SIG_BITOPS 17140 sigaddset 12204x86 btsl sigaddset - 56 -

6 sigdelset 12210 x86 btrl sigdelset sigismember 12233sigismember sig sigmask gcc builtin_constant_p sizeof sigismember const_sigismember 12216 gen_sigismember 12224 x86 btl sigismember const_sigismember gen_sigismember 12238x86 sigmask sigfindinword 12240 x86 sigfindinword x86 bsfl sigset_t HAVE_ARCH_SIG_SETOPS _SIG_SET_BINOP 17184 sigorsetssigandsets signandsets C++ C 17191 sigset_t x86 _NSIG_WORDS/4 0 _NSIG_WORDS x86 2 17201switch _NSIG_WORDS 6 switch 2 x86-57 -

6 switch 2 switch _SOG_SET_OP _SIG_SET_OP _SIG_SET_OP 17238_SIG_SET_OP _SIG_SET_BINOP 17257 signotset _SIG_SET_BINOP signotset _SIG_SET_OP sigemptyset 17262sigemptyset sigfillset 17265 memset 0 17268_NSIG_WORDS sigset_t sigaddsetmask 17292 32 siginitset sigaddsetmask mask 1731032 0 siginitsetinv17323 32 kill ID sys_kill 28768sys_kill kill kill_somethig-info sys_kill sig pid pid ID PID 7 28770 sys_kill struct siginfo si_code SI_USER - 58 -

6 28778 kill_something_info kill_something_info 28484 sys_kill siginfo 28487pid 0 kill_pg_info28408 28489 pid -1 28494 for_ech_task 16898 7 28496 idle init send_sig_info28218 count kill_something_info count kill_something_info 28503 28503 kill_something_info 0 ESRCH 28504 pid -1 pid kill_pg_info 28506 pid kill_pg_info PIDkill_proc_info 28463 28408 struct siginfo kill_something_info 28417 28418 28427 retval 0 28430 reval 28415 -ESRCHkill_pg_info retval send_sig_info kill_something_info kill_pg_info 28430 28410 retval -EINVAL kill_proc_info 28463kill_proc_info struct siginfo PID 28469PID find_task_by_pid16570 NULL 28472 send_sig_info 28474 28470 -ESRCH send_sig_info - 59 -

6 send_sig_info 28218 send_sig_info send_sig_info info NULLsig t t NULL 28229sig sig > _NSIG sig >= _NSIG 1 0 _NSIG 28233 SIGCONT root if 28233 28235 SIGCONT SIGCONT 28237 28238 ID ID ID 28239 28240 ID ID ID 28241 root if info 1 struct siginfo 8 4,096 0NULL XOR ^!= XOR cc ^!= 28248 0 7 exit 28252 switch 28253SIGKLL SIGCONTsend_sig_info 282570 SIGSTOP 28258 SIGSTOP SIGSTPCtrl+Z - 60 -

6 SIGTTIN TTY SIGTTOU TTY SIGCONT SIGKILL 28263 recalc_sigpending16654 28266 SIGCONT SIGKILL SIGCONT SIGKILL SIGKILL 28281 28284 struct task_struct singnal 28304 max_queued_signal 28007 Linux struct signal_queue 28310 send_sig_info 28311 send_sig_info 1 28315 send_sig_info info info 283160NULL 28513 28544 siginfo_t 28323 1 siginfo_t 28331 send_sig_info siginfo_t 28334 kmem_cache_alloc 28306 NULL send_sig_info send_sig_info kill send_sig_info EAGAIN send_sig_info 28345 send_sig_info sys_sigpending28981 - - 61

6 28346 sigpendig 28370 wake_up_process26356 force_sig_info 28386 SIGSEGV 7070 force_sig force_sig force_sig_info force_sig_info send_sig_info 28392 28397 force_sig_info 28399 t 28402force_sig_info t send_sig_info send_sig_info recalc_sigpending 16654 sigpending signal blocked 16676 recalc_sigpending AND 16679 ready recalc_sigpending sigpending recalc_sigpending ready 0 16662 _NSIG_WORDS ignored_signal 28183ignored_signal send_sig_info 28189 send_sig_info ignored_signal signal sigpending - - 62

6 28194 28248 ignored_signal 28199SIG_DFL SIGCONTSIGWINCHSIGCHLD SIGURG 28207 SIGCHLDSIGCHLDPOSIX SIG_IGN 28831 automatic child reaping 3426 28211 ignored_signal SIG_DFL do_signal SIG_IGN 0 3364do_signal 5 203 211 2797 2827 3375oldset do_signal 33783478 3382 dequeue_signal 28060 dequeue_signal 0 info 3385 3388 SIGKILL 3391 exit_code sys_wait4 23327 7 do_signal notify_parent3393 SIGCHLD schedule26686 7 schedule CPU 3397 do_signal 3402SIGSTOP 3406 do_signal do_signal info 3415 3421 SIGKILL do_signal struct k_sigaction 3423 SIGCHLDdo_signal SIGKILL SIGKILL - 63 -

6 SIG_IGN SIG_DFL 28807 do_sigaction SIG_IGN SIGKILL 3426 28820 POSIX SIGCHLD sys_wait4 23327 7 3435 3439 SIGCONTSIGCHLD SIGWINCH 3442SIGSTPSIGTTIN SIGTTOU TTY POSIX SIGSTOP 3447 SIGSTOP do_signal 3394 schedule CPU CPU schedule SIGCONT 3456 8 SIGQUITSIGILLSIGTRRAP SIGABRTSIGFPE SIGSEGV7 default do_exit23267 7 3471 NOTREACHED 3476 do_signal SIG_IGN SIG_DFL do_signal handle_signal3314 1 3481 do_signal 3386 break do_signal 3490 0 do_signal dequeue_signal 28060dequeue_signal info siginfo_t 28071 s m *s current->signal.sig[0] - 64 -

6 28073 switch sig 28091 AND x x x 0 x dequeue_signal ffz 1 sig sig ism x switch sig 0 28097 dequeue_signal reset dequeue_signal reset 1 28107 siginfo_t dequeue_signal info 0 28118 siginfo_t dequeue_signal sigqueue 28122 siginfo_tdequeue_signal siginfo_t info 28129 dequeue_signal dequeue_signal reset 28142 dequeue_signal info 28150 reset 28152 dequeue_signal sigpending reset dequeue_signal recalc_sigpending dequeue_signal recalc_sigpending reset recalc_sigpending 28163switch dequeue_signal 28174 0 - - 65

6 notify_parent 28548notify_parent 28553 info 28564 why 28572 why 28578 28562 why SI_KERNEL 28586 CPU handle_signal 3314handle_signal do_signal 3338 setup_rt_frame 3231 setup_frame3161 3343 SA_ONESHOT sys_signal signal SA_ONESHOT 29063 3346SA_NODEFER sys_sigpending 28981 28987 blocked signal AND 32 28992 -EFAULT 0 do_sigaction 28801do_sigaction sigaction 2833 sys_sigaction sigaction POSIX ISO C signal 28806 sig SIGKILL SIGCONT - - 66

6 signal sigaction SA_ONESHOT 28811 k_sigaction 28813sigaction oact 28815 do_sigaction SIGKILL SIGSTOP 28836 28820 POSIX sys_rt_sigtimedwait 28694sys_rt_sigtimedwait uthese sigset_t 28714uthese these 28717 28726 28731 these 28737 MAX_SCHEDULE_TIMEOUT LONG_MAX 2 31-116228 jiffy 100 248 64 28739 + timespec_to_jiffies timespec_to_jiffies18357 0 Linux Linux 28742 TASK_INTERRUPTIBLE 7 schedule_timeout 26577 CPU 28746 sys_rt_sigtimedwait 28752 - - 67

6 28753 28759 -EAGAIN -EINTR sigprocmask sys_sigprocmask 28931sys_sigprocmask how set NULL oset oset 28937 set how 28939 SIGKILL SIGSTOP 28944 old_set 28948 28951SIG_BLOCK new_set 28954 SIG_UNBLOCK new_set 28957SIG_SETMASK new_set sys_sigprocmask bloched.set 32 28966 set_old 28970 28968set 28972oset set old_set sys_sigprocmask sys_rt_sigprocmask 28612sys_rt_sigprocmask sys_sigprocmask 28638 /* how sys_sigprocmask does SIG_BLOCK.*/ new_set = *set ; /* line 28938 */ - 68 -

6 blocked = new_set ; /* line 28952 */ SIG_BLOCK /* how sys_rt_sigprocmask does SIG_BLOCK.*/ new_set = *set; /* line 28625 */ new_set = old_set ; /* line 28639 */ blocked = new_set ; /* line 28648 */ sys_rt_sigprocmask sys_sigprocmask 5 cli sti 13105 13104 UP 1216 1229 SMP x86 cli sti CPU cli sti UP cli sti13105 13104 x86 cli sti IRQs IRQ CPU IRQ CPU ISR IRQ IRQ IBM PC IRQ 0 100 IRQ CPU IRQ - 69 -

6 Bottom Halves bottom half top half bottom half Linux Linux IRQ CPU 100 100 1 IRQ 6.1 - - 70

6 irc_desc_tire_desc[] struct hw_interrupt_type... struct inqaction hangdle action... next next next. 6.1 linux/interrupt.h struct irqaction 14844 IRQ struct irqaction IRQ handler flags sa_flags 12108 SA_INTERRUPT SA_SAMPLE_RANDOM SA_SHIRQIRQ struct irqaction mask x86 0 SPARC64 name IRQ dev_id ID Linux ID - 71 -

6 #define PCI_DEVICE_ID_S3_868 0x8880 #define PCI_DEVICE_ID_S3_928 0x88b0 #define PCI_DEVICE_ID_S3_864_1 0x88c0 #define PCI_DEVICE_ID_S3_864_2 0x88c2 S3 PCI ID dev_id next IRQ struct irqaction IRQ arch/i386/kernel/irq.h struct hw_interrupt_type 1673 typename startup IRQ shutdown IRQ handleirq enable disable startup shutdown enable/disable startup/shutdown irq_desc_t1698 status 0 1685 1689 IRQ IRQ IRQ handler hw_interrupt_type action irqaction IRQ 10 IRQ depth irq_desc_t IRQ irq_desc_t irq_desc 733 IRQ IRQ irq_desc_t 29094 bh_mask_count29094 enable/disable enable_bh12575 disable_bh12568 0 bh_mask bh_active14856 14857 32 bh_active12498 mark_bh - 72 -

6 bh_mask bh_mask_count enable_bh disable_bh bh_mask bh_active AND 0 get_active_bhs12480 bh_base14858 enum14866 enum mark_bhtime_bh; 27450 IRQ IRQ IRQ init_ IRQ 1597init_ IRQ IRQ 1601 CONFIG_X86_ISWS_APIC SGI SGI x86 x86 CPU IBM PC 1609 32 95 set_nitr_gate6647 1651 IRQ 2 IRQ13 FPU 955 IRQ irqaction irq2979 irq13974 init_isa_irqs 1578irq_desc ISA PC IRQ static initfunc init_ IRQ 1583irq_desc statusaction depth 1589PCI IRQ i8259a_irq_type723 1592 IRQ no_irq_type701 PCI PC set_intr_gate 6647set_intr_gate x86cpu IDTx86 CPU 0x80 5-73 -

6 setup_x86_irq 1388setup_x86_irq IRQ struct irqaction 6088 request_irq1439 1398Linux /dev/random /dev/urandom /dev/random 1412 setup_x86_irq IRQ 1414 IRQ struct irqaction IRQ IRQ IRQ 1420IRQ setup_x86_irq p p next shared 1429 1427p next IRQp irq_desc[irq].action 1429 IRQ irq_desc[irq] request_irq 1433 IRQ startup 1439request_irq struct irqaction IRQ struct irqaction C++Java 1448 irq 0 1453 struct irqaction kmalloc 8 1458 setup_x86_irq free_irq 1472free_irq request_irq inverse request_irq 1481irq free_irq irq_desc 1483 ID 1487 1489 1495 free_irq - 74 -

6 dev_id1493 goto IRQ free_irq prove_irq_on 1506probe_irq_on IRQ 14889 IRQ probe_irq_on 1514 IRQ 0 IRQ probe_irq_on IRQ 1524 1530 IRQ 1 0 IRQ IRQ0 CPU 1537 1524 1544 0x12345678 prove_irq_off 1547prove_irq_off IRQ IRQ IRQ 1551 unused probe_irq_on magic = prove_irq_on /* */ probe_irq_offmagic; probe_irq_off probe_irq_on 1557IRQ 1 probe_irq_on 1560 IRQ IRQ 1563IRQ_INPROGRESS IRQ probe_irq_on IRQ - 75 -

6 1568 IRQ 1573 IRQ irq_found 1575 irq_found 0 IRQ 0IRQ 0 IRQ probe_irq_off 0 x86 BUILD_IRQ 1886 BUILD_ IRQ BI 866 BUILD_16_IRQS 869 878 895 256 BUILD_IRQ 16 BUILD_16_IRQS IRQ0x00_interrupt: push1 0x00-256 jmp common_interrupt IRQ 256 1897 common_interrupt BUILD_COMMON_IRQ 1871 do_irq do_irq from_intr233 5 do_ IRQ1362 1. CPU IRQ0xNN_interrupt NN common_interrupt 2. common_interrupt do_irq do_irq ret_from_intr 3. do_irq PC 8259A do_8259a_irq 4. do_8259a_irq IRQhandle_IRQ_event IRQ 5. handle_irq_event IRQ IRQ IRQ IRQ IRQ handle_irq_event do_irq 6. do_irq ret_from_intr 5-76 -

6 do_irq 1375 IRQ PC IRQ handle_irq_event 1383 do_bottom_half29126 do_irq_event 1292do_IRQ_event do_8259a_irq821 1302 12094 SA_INTERRUPT no_op 1305 IRQ 1310/dev/random /dev/urandom 1312 do_bottom_half 29126Linux do_bottom_half26707 243 1384 x86 CPU do_irq 29130 locking UP soft_trylockup 12559 10 SMP local_bh_count[cpu]0 local_bh_count [cpu]1 17479 UP cpu 0 softirq_trylock softirq_trylock softirq_endlock12561 29131 10736 hardirq_trylock hardirq_enter/hardirq_exit 10739 10740 UPirq_enter irq_exit1810 1811 handle_irq_event cli sti CPU sti cli - 77 -

6 29132 do_bottom_half 29135 run_bottom_halves 29110 29115 active clear_active_bh 12481 bh_active bh_active run_bottom_halves bh_active active 29115 29116 bh_active run_bottom_halves run_bottom_halves run_bottom_halves active bh_active clear_active_bhs active 29116 bh_active clear_active_bhs atomic_clear_mask10262 active AND run_bottom_halves bh_active run_bottom_halves 29118 bh_base active active bh_base active do/while do_bottom_half do_bottom_half - - 78

6 29123 active active timer_interrupt 6086 IRQ 0 irq0 5937 27972 init_bh12484 timer_bh IRQ 0 timer_interrupt CPU CPU do_timer_interrupt5758 do_timer do_timer 27446 27448 jiffies 27449 27450 27451 lost_ticks_system 27453 timer_bh 27439 update_times 27412 CPU 27422 27427 update_times 27429 calc_load27135 27430 calc_wall_time27311 xtime wall_clock - - 79

6 27433update_process_times27382 update_one_process 27371 timetop ps CPU CPU CPU CPU update_wall_time 27313 update_wall_time_one_tick27271 xtime Network Time Protocol 27318 xtime 0 999,999 calc_load xtime tv_usec 2 xtime xtime 27135calc_load 27138count LOAD_FREQ 16164 5 27142 0 0 0 27143 5 count count_active_tasks 27119 count_active_tasks 7 27144 16169 CALC_LOAD avenrun 27116 5 10 15 run_old_timers 27077 timer_table 27109-80 -

6 100 100 10 9 calc_load main 32 bh_mask bh_active TQUEUE_BH TIMER_BH include/linux/tqueue.h 18527 - - 81