WORD sum WORD i int sum 0 for

  • Slides: 36
Download presentation

行程 – 組合語言 WORD sum WORD i int sum = 0; for (int i=0;

行程 – 組合語言 WORD sum WORD i int sum = 0; for (int i=0; i<10; i++) sum = sum + i; 0 0 LOAD R 1, sum LOAD R 2, i LOOP COMP R 2, 10 JGT EXIT INC R 2 ADD R 1, R 2, R 1 JMP LOOP EXIT STORE sum, R 1 STORE i, R 2 6 陳鍾誠 -

行程 – 機器語言 位址 00 00 00 04 00 08 00 0 C 00

行程 – 機器語言 位址 00 00 00 04 00 08 00 0 C 00 10 00 14 00 18 00 1 C 00 20 00 24 00 28 00 2 C 00 30 組合語言 機器語言 LOAD R 1, sum LOAD R 2, i LOOP COMP R 2, TEN JGT EXIT INC R 2 ADD R 1, R 2, R 1 JMP LOOP EXIT STORE R 1, sum STORE R 2, i RETURN WORD sum 0 WORD i 0 WORD TEN 10 7 01 01 00 28 01 02 00 2 C 04 02 00 30 0 A 00 00 1 C 1 C 02 00 00 03 01 02 01 09 00 00 08 02 01 00 28 02 02 00 2 C 00 00 00 00 0 A 陳鍾誠 -

行程 – 硬體狀態 記憶體 ALU (加法器…) Control Unit (控製單元) 暫存器 LOAD R 1, sum

行程 – 硬體狀態 記憶體 ALU (加法器…) Control Unit (控製單元) 暫存器 LOAD R 1, sum R 1 R 2 01 01 00 28 00 00 IR=01 01 00 28 PC=0000 8 陳鍾誠 -

行程的基本元素 – 程式 位址 00 00 00 04 00 08 00 0 C 00

行程的基本元素 – 程式 位址 00 00 00 04 00 08 00 0 C 00 10 00 14 00 18 00 1 C 00 20 00 24 00 28 00 2 C 00 30 組合語言 LOAD R 1, sum LOAD R 2, i LOOP COMP R 2, TEN JGT EXIT INC R 2 ADD R 1, R 2, R 1 JMP LOOP EXIT STORE R 1, sum STORE R 2, i RETURN WORD sum 0 WORD i 0 WORD TEN 10 10 機器語言 01 01 00 28 01 02 00 2 C 04 02 00 30 0 A 00 00 1 C 1 C 02 00 00 03 01 02 01 09 00 00 08 02 01 00 28 02 02 00 2 C 00 00 00 00 0 A 陳鍾誠 -

行程的基本元素 – 資料 位址 00 00 00 04 00 08 00 0 C 00

行程的基本元素 – 資料 位址 00 00 00 04 00 08 00 0 C 00 10 00 14 00 18 00 1 C 00 20 00 24 00 28 00 2 C 00 30 組合語言 LOAD R 1, sum LOAD R 2, i LOOP COMP R 2, TEN JGT EXIT INC R 2 ADD R 1, R 2, R 1 JMP LOOP EXIT STORE R 1, sum STORE R 2, i RETURN WORD sum 0 WORD i 0 WORD TEN 10 11 機器語言 01 01 00 28 01 02 00 2 C 04 02 00 30 0 A 00 00 1 C 1 C 02 00 00 03 01 02 01 09 00 00 08 02 01 00 28 02 02 00 2 C 00 00 00 00 0 A 陳鍾誠 -

Linux 的行程狀態欄位 l 在 Linux 中,行程的狀態記錄在行程描述 器中的 state 欄位: volatile long state; /* -1

Linux 的行程狀態欄位 l 在 Linux 中,行程的狀態記錄在行程描述 器中的 state 欄位: volatile long state; /* -1 不可執行,0 可執行,>0 被停止 */ #define TASK_RUNNING #define TASK_INTERRUPTIBLE #define TASK_UNINTERRUPTIBLE #define TASK_ZOMBIE #define TASK_STOPPED 0 1 2 4 8 19 陳鍾誠 -

Linux 的內文切換(1) 行程prev的行程描述器 esp: 0 x 1 f 002100 eip: 0 x 1 b

Linux 的內文切換(1) 行程prev的行程描述器 esp: 0 x 1 f 002100 eip: 0 x 1 b 01 c 000 行程next的行程描述器 esp: 0 x 1 a 00 c 100 0 x 1 d 00 ESP 0 x 1 c 100100 ESI data text 0 x 1 c 001100 EDI 0 x 1 b 00 a 100 EIP CPU暫存器 eip: 0 x 1 a 000 記憶體 stack 行程prev stack data text 行程next 主記憶體 暫存器 23 陳鍾誠 -

Linux 的內文切換(2) 行程prev的行程描述器 0 x 1 d 00 ESP 0 x 1 c 100100

Linux 的內文切換(2) 行程prev的行程描述器 0 x 1 d 00 ESP 0 x 1 c 100100 ESI esp: 0 x 1 d 00 eip: 0 x 1 b 01 c 000 stack data text 行程next的行程描述器 esp: 0 x 1 a 00 c 100 0 x 1 c 001100 EDI 0 x 1 b 00 a 104 EIP CPU暫存器 eip: 0 x 1 a 000 記憶體 暫存器 行程prev stack data text 行程next 主記憶體 24 陳鍾誠 -

Linux 的內文切換(3) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1

Linux 的內文切換(3) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1 c 100100 ESI esp: 0 x 1 d 00 eip: 0 x 1 b 01 c 000 stack data text 行程next的行程描述器 0 x 1 c 001100 0 x 1 b 00 a 108 esp: 0 x 1 a 00 c 100 eip: 0 x 1 a 000 記憶體 行程prev EDI EIP CPU暫存器 stack data text 行程next 主記憶體 25 陳鍾誠 -

Linux 的內文切換(4) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1

Linux 的內文切換(4) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1 c 100100 ESI esp: 0 x 1 d 00 eip: 0 x 1 d 001 d 18 stack data text 行程next的行程描述器 esp: 0 x 1 a 00 c 100 eip: 0 x 1 a 000 記憶體 0 x 1 c 001100 EDI 0 x 1 b 00 a 10 c EIP CPU暫存器 行程prev stack data text 行程next 主記憶體 26 陳鍾誠 -

Linux 的內文切換(5) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1

Linux 的內文切換(5) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1 c 100100 ESI esp: 0 x 1 d 00 eip: 0 x 1 d 001 d 18 stack data text 行程next的行程描述器 esp: 0 x 1 a 00 c 100 0 x 1 c 001100 EDI 0 x 1 a 000 EIP CPU暫存器 stack data text eip: 0 x 1 a 000 記憶體 行程prev 行程next 主記憶體 暫存器 27 陳鍾誠 -

Linux 的內文切換(6) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1

Linux 的內文切換(6) 行程prev的行程描述器 0 x 1 a 00 c 100 ESP 0 x 1 c 100100 ESI esp: 0 x 1 d 00 eip: 0 x 1 d 001 d 18 stack data text 行程next的行程描述器 0 x 1 c 001100 0 x 1 a 00 c esp: 0 x 1 a 00 c 100 行程prev EDI EIP CPU暫存器 stack data text eip: 0 x 1 a 000 記憶體 行程next 主記憶體 暫存器 28 陳鍾誠 -

CPU 暴衝與 I/O 暴衝 load store add store read from file CPU暴衝 等待 I/O暴衝

CPU 暴衝與 I/O 暴衝 load store add store read from file CPU暴衝 等待 I/O暴衝 store increment index write to file CPU暴衝 等待 I/O暴衝 load store add store read from file CPU暴衝 … 31 陳鍾誠 -