CPU ????? ? ???? ????? ? ???? - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

CPU ????? ? ???? ????? ? ????

Description:

Title: Author: ccckmit Last modified by: ccckmit Created Date: 8/21/2006 2:26:58 AM Document presentation format: – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 37
Provided by: ccck150
Category:
Tags: cpu

less

Transcript and Presenter's Notes

Title: CPU ????? ? ???? ????? ? ????


1
?????
2
??
  • ????
  • ??????
  • ????
  • ?????
  • CPU????? ? ???? ????? ? ????
  • ?????? (Process Control Block)
  • ????
  • ?????
  • ?????
  • ??

3
?????
  • ?????
  • ??????
  • ?? Multi-Tasking
  • ?????????
  • ????
  • ?????????????? CPU ???
  • ??????,????? Task-Switching ??
  • ??????????
  • ??? ? (I/O, ??)

????
????
?? 1
?? 2
?? 3
4
?????
  • CPU?????
  • ????
  • ????
  • ????

5
?? ????
int sum 0 for (int i0 ilt10 i) sum
sum i
6
?? ????
int sum 0 for (int i0 ilt10 i) sum
sum i
WORD sum 0 WORD i 0 LOAD R1, sum LOAD
R2, i LOOP COMP R2, 10 JGT EXIT INC R2 ADD R1,
R2, R1 JMP LOOP EXIT STORE sum, R1 STORE i, R2
7
?? ????
??
????
????
LOAD R1, sum LOAD R2, i LOOP COMP R2,
TEN JGT EXIT INC R2 ADD R1, R2,
R1 JMP LOOP EXIT STORE R1, sum STORE R2,
i RETURN WORD sum 0 WORD i 0 WORD TEN 10
01 01 00 28 01 02 00 2C 04 02 00 30 0A 00 00
1C 1C 02 00 00 03 01 02 01 09 00 00 08 02 01 00
28 02 02 00 2C 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 0A
00 00 00 04 00 08 00 0C 00 10 00 14 00 18 00
1C 00 20 00 24 00 28 00 2C 00 30
8
?? ????
???

LOAD R1, sum
01 01 00 28
ALU (???)
???
R1
0028
00 00 00 00
R2
Control Unit (????)
IR01 01 00 28
PC00000000
9
???????
  • ???????
  • ???? ????
  • CPU ???????

??
???
??
??
10
??????? ??
??
????
????
LOAD R1, sum LOAD R2, i LOOP COMP R2,
TEN JGT EXIT INC R2 ADD R1, R2,
R1 JMP LOOP EXIT STORE R1, sum STORE R2,
i RETURN WORD sum 0 WORD i 0 WORD TEN 10
01 01 00 28 01 02 00 2C 04 02 00 30 0A 00 00
1C 1C 02 00 00 03 01 02 01 09 00 00 08 02 01 00
28 02 02 00 2C 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 0A
00 00 00 04 00 08 00 0C 00 10 00 14 00 18 00
1C 00 20 00 24 00 28 00 2C 00 30
11
??????? ??
??
????
????
LOAD R1, sum LOAD R2, i LOOP COMP R2,
TEN JGT EXIT INC R2 ADD R1, R2,
R1 JMP LOOP EXIT STORE R1, sum STORE R2,
i RETURN WORD sum 0 WORD i 0 WORD TEN 10
01 01 00 28 01 02 00 2C 04 02 00 30 0A 00 00
1C 1C 02 00 00 03 01 02 01 09 00 00 08 02 01 00
28 02 02 00 2C 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 0A
00 00 00 04 00 08 00 0C 00 10 00 14 00 18 00
1C 00 20 00 24 00 28 00 2C 00 30
12
??????? ??
  • main()
  • f1(p1)
  • f2(p2)
  • sum(ary, size)

??
0000 main ??????? 0004 f1 ??????? 0008 ??
p1?? 000C f2 ??????? 0010 ?? p2?? 0014 sum
??????? 0018 ?? ary ???? 001C ?? size ??
13
?????
int main() int a, b a 16 b32
swap(a, b) return a-b void swap(int a,
int b) int c c a a b bc
?? swap ?
?? swap ?
??? ebp
??? ebp
0
24
a
a
-4
20
b
b
-8
16
??
b
a
-12
12
a
b
-16
8
????
4
??? ebp
0
c
-4
?ebp ????????
??? esp ???
14
??????? ???
  • CPU ??????? (??????? PC)

???

LOAD R1, sum
01 01 00 28
ALU (???)
???
R1
0028
00 00 00 00
R2
Control Unit (????)
IR01 01 00 28
PC00000000
15
?????
  • ???????????????
  • ?????? PCB
  • ??????(PCB)
  • ??????????????
  • PCB ??????
  • ????
  • CPU ???
  • ????
  • I/O ??

16
???????
  • ????? (Process State)
  • ???????????
  • ??? (Registers)
  • ????? Program Counter
  • ????? Status Register
  • ??? (Memory)
  • ???
  • ???
  • ???
  • ?? (Resource)
  • ?????
  • ?????

17
??????
  • ?????? - PCB (Process Control Block)
  • ??????????????

18
?????
??
????
??
??
??
??
??
?????
I/O?????
I/O?????
??
19
Linux ???????
  • ? Linux ?,??????????????? state ??

volatile long state / -1 ????,0 ???,gt0 ??? /
define TASK_RUNNING 0 define
TASK_INTERRUPTIBLE 1 define TASK_UNINTERRUPTIBLE
2 define TASK_ZOMBIE 4 define
TASK_STOPPED 8
20
Linux ?????
  • ????? TASK_RUNNING
  • ???????????????
  • ????? TASK_INTERRUPTIBLE
  • ?????????,?????????
  • ?????? TASK_UNINTERRUPTIBLE
  • ?TASK_INTERRUPTIBLE ??,????????????????????
  • ???? TASK_STOPPED
  • ?? SIGSTOP?SIGTSTP?SIGTTIN ?SIGTTOU ????
  • ???? TASK_ZOMBIE
  • ???????,????????? wait() ????????????????????,????
    ??????????

21
????
  • ???? - ?????????????
  • ? CPU ?????????????????????????
  • ????????? Context Switch.
  • Context-Switch ????????????????
  • ??????????????????????,?? CPU ????????
  • ????????????????????????

22
???????
23
Linux ?????(1)
??prev??????
ESP
0x1d001d00
stack
esp0x1f002100
ESI
0x1c100100
data
eip0x1b01c000
text
??prev
EDI
0x1c001100
??next??????
stack
EIP
0x1b00a100
data
esp0x1a00c100
CPU???
text
??next
eip0x1a00a000
????
???
???
24
Linux ?????(2)
??prev??????
ESP
0x1d001d00
stack
esp0x1d001d00
data
ESI
0x1c100100
eip0x1b01c000
text
??prev
EDI
0x1c001100
??next??????
stack
EIP
0x1b00a104
data
esp0x1a00c100
CPU???
text
??next
eip0x1a00a000
???
???
????
25
Linux ?????(3)
??prev??????
ESP
0x1a00c100
stack
esp0x1d001d00
data
ESI
0x1c100100
eip0x1b01c000
text
??next??????
??prev
EDI
0x1c001100
stack
EIP
0x1b00a108
esp0x1a00c100
data
CPU???
eip0x1a00a000
text
??next
???
???
????
26
Linux ?????(4)
??prev??????
ESP
0x1a00c100
stack
esp0x1d001d00
data
ESI
0x1c100100
eip0x1d001d18
text
??prev
EDI
0x1c001100
??next??????
stack
EIP
0x1b00a10c
data
esp0x1a00c100
CPU???
text
??next
eip0x1a00a000
???
???
????
27
Linux ?????(5)
??prev??????
ESP
0x1a00c100
stack
esp0x1d001d00
data
ESI
0x1c100100
eip0x1d001d18
text
??prev
EDI
0x1c001100
??next??????
stack
EIP
0x1a00a000
data
esp0x1a00c100
CPU???
text
??next
eip0x1a00a000
????
???
???
28
Linux ?????(6)
??prev??????
ESP
0x1a00c100
stack
esp0x1d001d00
data
ESI
0x1c100100
eip0x1d001d18
text
??prev
EDI
0x1c001100
??next??????
stack
EIP
0x1a00a00c
data
esp0x1a00c100
CPU???
text
??next
eip0x1a00a000
???
???
????
29
????
  • ?? Multi-Tasking
  • ?????????
  • ????
  • ?????????????? CPU ???
  • ??????,????? Task-Switching ??
  • ??????????
  • ??? ? (I/O, ??)

????
????
?? 1
?? 2
?? 3
30
?????
  • ?????????????????
  • CPU ??
  • I/O ??
  • ??????? CPU ??,??? I/O ??,????? CPU ??? I/O ???
  • ???????,??????????????,??? CPU ???????

31
CPU ??? I/O ??
load store add store read from file
CPU??
?? I/O
I/O??
store increment index write to file
CPU??
?? I/O
I/O??
load store add store read from file
CPU??

32
CPU ?????????
160
140
120
??
100
80
60
40
20
0
8
16
24
32
40
????(??)
33
????
  • ???? CPU ????????????????
  • ??? CPU ?????,?????????????
  • ????????? CPU ????,??????????,???? CPU ?????
  • ????????????????????

34
????
  • ??????????????????????
  • ????????
  • ????
  • ????
  • ????
  • ????

35
?????????
36
??
  • ??????????
  • ????????????????
  • ?????? PCB
  • ????????????????
  • ??????????????????
  • ??????? CPU ??? IO ?? ??
  • ????? 1. ??? 2.????? 3.????
  • ???,??????????????,?????
Write a Comment
User Comments (0)
About PowerShow.com