You are on page 1of 44

!"#$%&'()*$+"$,"-$,.

/'(0"
'+1"2'(1/'(0"3045+)670*"
,$("89:";)(.7'<)='.)$+"
>?'&0(@"!-?AB-"CDD:E"

>3&)(*9=2?;
@:3*9'3;36

!"#$%&'()*+*,--.*/012%34*5678*9::*%&'();*%3;3%<3=8
AB662)C%2:*97);D*EF&6GH!*,--IJ

! !
!:2;;&72:*<&%)C2:&K2)&"6*E5L0*M.-J
! N%2#O26=O3?C:2)3
" PC6*'C3;)*"#3%2)&6'*;$;)3?*!"#$%&%'"("!
" 9::*#%&<&:3'3=*&6;)%C7)&"6;*)$*#+%,)-+.//
" /00*3?C:2)3;*&6;)%C7)&"6*2'2&6;)*<&%)C2:*;)2)3
! H8'8Q*=&;2R:3*<&%)C2:*&6)3%%C#);4*6")*#($;&72:*&6)3%%C#);
" P3;C?3*!%$"0)+"1"02)%-,*S%"?*63T)*/0*&6;)%C7)&"6
! N(&;*&;*UC;)*"63*)%&<0%0+.'.)$+*.045+)670
! V"#3W*26=*X":=R3%'*#3%?&)*")(3%;

! !
!:2;;&72:*/0*#3%S"%?2673
! Y2)&<3*;#33=*3T73#)*S"%*)%2#;
" @<3%(32=*Z*)%2#*S%3[C367$*\*2<'*)%2#*7";)
! N%2#*;"C%73;
" V%&<&:3'3=*&6;)%C7)&"6;
" N%273;*E#2'3*)2R:3;JQ*3-4)+5$"62",)+)$*#+0*24"
" 03?"%$*?2##3=*=3<&73;*E2*S"%?*"S*)%273J

! !
!"?R&6&6'*LN*26=*=&%37)*3T37C)&"6

]&%37)*HT37
EC;3%J
^2C:);4*;$;72::;4*&6)3%%C#); 5PHN4*;$;%3)

/00

!V_-*HT37C)&"6 N%273;4*S2C:);4*&6)3%%C#);4*5`@

LN
EW3%63:J

! !
LN*?37(26&7;

56#C)Q*LL @C)#C)Q*!!^
55 ff 33 c7 03 ... )%26;:2)"% 55 ff 33 c7 03 ...

! H27(*)%26;:2)"%*&6<"72)&"6
" !"6;C?3*"63*R2;&7*R:"7W
" V%"=C73*"63*7"?#&:3=*7"=3*S%2'?36)
! a)"%3*!!^*&6*)%26;:2)&"6*727(3
" ^C)C%3*%3C;3
" 9?"%)&K3*)%26;:2)&"6*7";);
" Y")*A#2)7(&6'*&6*#:273D
! !
5]HYN*26=*")(3%*)%26;:2)&"6;
!*0";)*7"=3*)%26;:2)3=*5]HYN
!*PC6;*2)*;#33=*EV"#3W4*X":=R3%'J

!"#"$%&'()*+,(-./) :>>>>/"()*+,(-./)
!"$"#%&%()*+,(0-./12 :>>>>/<()*+,(0-./12
!"$"#%&3(456((0-./127(88888888 :>>>>/#(456((0-./127(88888888
!"$"#%9:(456((-.;17(-.+) :>>>>/'(456((-.;17(-.+)
!"$"#%9$(456((-.+)7(!<30-./12 :>>>>//(456((-.+)7(!<30-./12
!"$"#%9%()*+,(-.;1 :>>>>3<()*+,(-.;1
!"$"#%9/(456((-./)7(-.%1 :>>>>3:(456((-./)7(-.%1
!"$"#%9;(3%==(!"$&"/%$ :>>>>3$()*+,(!"$"#%!:
LL :>>>>3'(?@A((#%
:>>>>3/(;%A%B(!"$&"/%$

!!^
,IIII7bQ*#C;(*%3)C%6*2==%3;;
,IIII7cQ*&6<"W3*)%26;:2)"%*"6*72::33

! !
V%&?2%$*26=*;(2="1*;)%C7)C%3;
! -5'1$/*#2'3*)2R:3;*27)&<3*"6*#($;&72:*!VB
! !"6)2&6*7"?#";&)3*"S*)1"*?2##&6';Q
" XC3;)*A<&%)C2:D*)"*A#($;&72:D*?2##&6'*S%"?*&()%'(F*
#2'3*)2R:3;
" XC3;)*#($;&72:*)"*?27(&63*?3?"%$*?2##&6'*S%"?*
/00*#?2#
! P3;C:)Q*#($;&72:*N_L*;C##"%);*'C3;)*?3?"%$*
2773;;

! !
N%273;
! a(2="1*#2'3*)2R:3;*2%3*=3%&<3=*S%"?*#%&?2%&3;
" 0C;)*W33#*&6*;$67
! !"(3%367$*#%")"7":
" N%2#*'C3;)*1%&)3;*R$*1%&)3O#%")37)&6'*#%&?2%$Q*.('40
" V%"#2'2)3*7(26'3*S%"?*#%&?2%$*)"*;(2="1
! !"?#C)3*631*;(2="1*#2'3*)2R:3*36)%$
! @%*UC;)*&6<2:&=2)3
" Td.*#3%?&);*=3S3%%3=*7"(3%367$
! _&W3*(2%=12%3*N_L
! 5Y/_VXQ*;$67(%"6&K3*"63*#2'3e;*?2##&6'
! !PMQ*;$67(%"6&K3*36)&%3*2==%3;;*;#273
! !
9=2#)&<3*LN
GHG ! 0";)*)%26;:2)&"6*%C6*A2)*;#33=D
IJKL3
44,M 44,C ! HT73#)&"6Q*1%&)&6'*)%273=*?3?"%$
" fV^*E)%273*S2C:)*g\gJ
" ]37"=3*&6;)%C7)&"6

44,O
" 56)3%#%3)
" ^&%3*)%273*72::R27W;
44,N
" P3;C?3*3T37C)&"6
! !26*)2W3*h---;*"S*7$7:3;

72::"C)

! !
9=2#)&<3*LNQ*S2;)*)%273*(26=:&6'
PQ? ! ]3)37)*26=*)%27W*)%273*S2C:);
IJKL3
44,M 44,C ! a#:&73*&6*NP9!H*)%26;:2)&"6
" 9<"&=*fV^
" Y"*%3O=37"=&6'
NP9!H
44,O
" ^2;)3%*%3;C?#)&"6*

44,N
! @%=3%*"S*?2'6&)C=3*S2;)3%*)%273;

72::"C)

! !
9=2#)2)&"6*&6*'363%2:
PQ?

IJKL3
PQ? PQ?
44,M 44,C

!?I#

!?I#
3R!#K 3?R
44,O

44,N 9=2#)*)"*'C3;)
R3(2<&"%*R$*
?"<&6'*i0V;
2%"C6=*)"*;3:37)
27)&<3*)%26;:2)&"6

72::"C)

! !
a"S)12%3*/00*3<2:C2)&"6
! L363S&); ! !";);
" 9=2#)2)&"6 " PC66&6'*)%26;:2)"%
" ^2;)*)%273; " V2)(*:36')(36&6'
" ^2;)*5`@*3?C:2)&"6 " a$;)3?*72::*
;:"1="16
" ^:3T&R&:&)$
" !"?#:3T&)$

! !
90]3:4*5678
! aC??3%*,--h*2)*90]3:4*5678
! 9%7(&)37)&6'*)(3*?0+.0($+"NSS4*=C3*&6*,--I
! /&%)C2:&K2)&"6*&;*(")4*7-)8+!"#
! G"1*726*)(3*63T)O'363%2)&"6*V36)3%"6*;C##"%)*
<&%)C2:&K2)&"6j

! !
h--k*=&%37)*3T37C)&"6
! /00;*6"12=2$;*2%3*;:"1
! /00;*&6*)(3*?2&6S%2?3*3%2*13%36e)*;"*;:"1
! /00;*6"12=2$;*C;3*R&62%$*)%26;:2)&"6
! LN*?C;)*R3*;:"1&6'*)(&6';*="168*TKJ

! !
/N`a/0*9%7(&)37)C%3
lmO2T&;Q*":=*;7("":*Td.*
!#:*M !#:*M #%&<&:3'3*E!V_J
lnO2T&;Q*<&%)C2:&K2)&"6*
!#:*, !#:*,
#%&<&:3'3
!#:*h !#:*h
lB6?"=&S&3=*@ae3;*%C6*
&6*(";)*?"=34*'C3;)*
!#:*- !#:*-
?"=3
G";) XC3;) l56*'C3;)*?"=34*
;36;&)&<3*"#3%2)&"6;*
A)%2#*"C)D*)"*(";)*?"=3
! !
/0!L
l.%$)2*'+/*07%,"+9-,)$-'+:'-0;
l/00*7"6)%"::3=4*(2%=12%3O12:W3=
lLCSS3%;*;&?#:3*3T&);
l!"??C6&72)3;*'C3;)*;)2)3*)"*GF4*/00
l56*/N4*%32=`1%&))36*<&2*;#37&2:*&6;)%C7)&"6;

/00 XC3;)
/0!L

G2%=12%3

! !
XC3;)*26=*(";)*?"=3*3T37C)&"6

>3%63: B;3%
/N*]&%37)*HT37

V2'3*S2C:);4*&6)3%%C#);4 P32=$*)"*%C6*'C3;)
5`@4*)%273;4*3)78

/00

! !
F(2)*a/0`/N*2%3*6")
! A!V_*OhD
" Y"*;#37&2:*?"=3*S"%*/00
" /00*6"*?"%3*#%&<&:3'3=*)(26*2*%3'C:2%*@a
! VC%3*)%2#O26=O3?C:2)3
" 026$*#%&<&:3'3=*"#;*RCSS3%3=*R$*/0!L
" a#37&2:*277"??"=2)&"6;*S"%*;"?3*"#;
! H8'84*P]Na!*E7$7:3*7"C6)3%J*726*(2<3*"SS;3)*2##:&3=

! !
G2%=12%3*/00*3<2:C2)&"6
! L363S&); ! !";);
" a&?#:&7&)$*E6"*LNJ " HT&);Q*h---o*7$7:3;
" ^2;)*;$;)3?*72::; ! N%273;
" Y"*)%26;:2)"%*
! 5`@
"<3%(32=; " a)2)3:3;;*?"=3:
" Y"*2=2#)2)&"6
" Y"*aF*S:3T&R&:&)$

! !
02)7(*:&63C#
! a$;)3?Q*56)3:*V36)&C?*b*.p,4*M8d*XGK4*/N
! a"S)12%3*/00Q*/012%3*V:2$3%*h8-8h
! G2%=12%3*/00Q*/012%3*V:2$3%*h8-8h*E;2?3gJ

! !
VC%3*7"?#C)2)&"6*EaVH!J

! !
9*)"C'(3%*;3)*"S*R367(?2%W;

! !
0&7%"R367(?2%WQ*S"%W12&)
int main(int argc, char *argv[]) {
for (int i = 0; i < 40000; i++) {
int pid = fork();
if (pid < 0) return -1;
if (pid == 0) return 0;
waitpid(pid);
}
return 0;
}

Y2)&<3Q ******.8-*;37"6=;
a"S)12%3*/00Q* ****M.8c*;37"6=;
G2%=12%3*/00Q**h-.8b*;37"6=;
! !
Y26"*<;8*?&7%"*R367(?2%W;
! ^"%W12&)Q*#2)(":"'&72::$*%&7(*?&T*"S
" !"6)3T)*;1&)7(3;
" V2'3*)2R:3*C#=2)3;
" V2'3*S2C:);
! LC)*;)&::*2*?&T)C%3*"S*"#3%2)&"6;
! Y26"OR367(?2%W*&=32
" ?32;C%3*327(*3<36)*&6*&;":2)&"6
" "S)36*A;&6':3O&6;)%C7)&"6D*3<36);

! !
Y26"R367(?2%W;

! !
]37"?#";&6'*2*?27%"OR367(?2%W
nV.b*R"")`(2:)

! !
@C):&63
! /&%)C2:&K2)&"6*#%&?3%
! a"S)12%3*/00
! G2%=12%3*/00
! V3%S"%?2673*7"?#2%&;"6
! A0**$+*"<0'(+01
! !"67:C;&"6;

! !
_3;;"6;*:32%63=
! !C%%36)*GF*;C##"%)*6")*2*C6&S"%?*1&6
" a"?3)&?3;*2*R&)*R3))3%*E38'84*;$;)3?*72::;J
" a"?3)&?3;*[C&)3*2*R&)*1"%;3*E00B*<&%)C2:&K2)&"6J
! 5=32:Q*7"?R&63*;)%36')(;*"S*aF`GF
" B6S"%)C62)3:$Q*GF*;C##"%)*&;*2::*"%*6")(&6'
" ]"3;*6")*7"?#:3?36)*3T&;)&6'*aF*)37(6&[C3;

! !
/&%)C2:&K2)&"6*&;*3<3%$1(3%3
! a3%<3%*7"6;":&=2)&"6
! ]&;2;)3%*%37"<3%$
! a37C%&)$
! P3;"C%73*?262'3?36)
! V"13%*3SS&7&367$
! 9<2&:2R&:&)$*ES2&:O"<3%*)"*")(3%*/0J
! a"S)12%3*=3:&<3%$*EA<&%)C2:*2##:&2673;DJ
! N3;)*26=*=3<3:"#?36)
! 0"R&:&)$*8*8*8
! !
N(3*3;;3673*"S*)(3*00B*#%"R:3?
! N(%33*7";)*7"?#"636);
" N%273*7";);
" !"6)3T)*;1&)7(*7";);
" G&==36*#2'3*S2C:);*E=3?26=O<2:&=2)&"6*"S*;(2="1;J
! N(3;3*)%2=3*2'2&6;)*327(*")(3%Q
" ^313%*)%273;*&?#:&3;*?"%3*(&==36*fV^;*E:2K$J*"%*
?"%3*3T#36;&<3*7"6)3T)*;1&)7(3;*E32'3%J
! G2%=12%3*/00*&67%32;3;*7";);*"S*2::*)(%33*
7"?#"636);g
! !
5?#%"<&6'*<&%)C2:*00B*#3%S"%?2673
! G2%=12%3*/00*;)&::*C;3;*;"S)12%3*00B
" ]%&<3;*00B*;)2)3*?27(&63*1&)(*/N*3T&);
" @C%*;"S)12%3*00B*12;*=3;&'63=*S"%*LN*7";);
! a"S)12%3*"#)&"6Q
" 00B*%3=3;&'6*)"*(&)*=&SS3%36)*#"&6)*&6*MO12$*)%2=3"SS*
" _3;;*C;3*"S*)%273;
! G2%=12%3*"#)&"6Q
" aC##"%)*00B*<&%)C2:&K2)&"6
" Y3;)3=*#2'3*)2R:3;
! !
!"67:C;&"6;
! ]3;7%&R3=*;"S)12%3*/00*26=*(2%=12%3*/00
! V3%S"%?2673*7"?#2%&;"6
" ^%"?*?27%"*)"*?&7%"*)"*626"
! !C%%36)*(2%=12%3*/00*6")*2*1&6*"<3%*;"S)12%3
! >3$*#%"R:3?*)"*;":<3Q
" Y")Q*("1*)"*3T37C)3*<&%)C2:*&6;)%C7)&"6*;)%32?
" LC)Q*("1*)"*<&%)C2:&K3*00B*3SS&7&36):$
" !"?R&6&6'*GF*;C##"%)*1&)(*aF*S:3T&R&:&)$j

! !
F&6,---*R"")`(2:)*)%26;:2)&"6*;)2);
-------input------- output
# units size instr cycles size cyc/ins ins/unit
-------------------------------------------------------------
0 38690 336k 120k 252M 924k 2097 3.11
1 48839 500k 169k 318M 1164k 1871 3.48
2 108k 1187k 392k 754M 2589k 1920 3.61
3 29362 264k 89749 287M 951k 3197 3.06
4 96876 1000k 337k 708M 2418k 2100 3.48
5 58553 577k 193k 403M 1572k 2078 3.31
6 19430 148k 50951 148M 633k 2904 2.62
7 13081 87811 30455 124M 494k 4071 2.33
-------------------------------------------------------------
Total 413k 4101k 1384k 2994M 10748k 2161 3.35
-------------------------------------------------------------

! !
N%26;:2)"%*RCKK1"%=;
! L&62%$Q*&6#C)*&;*Td.*A(3TD*6")*;"C%73
! ]$62?&7Q*&6)3%:32<3*)%26;:2)&"6*26=*3T37C)&"6
! @6*=3?26=Q*)%26;:2)3*"6:$*1(2)*13*2%3*2R"C)*)"*3T37C)3*E:2K$J
! a$;)3?*:3<3:Q*?2W3*6"*2;;C?#)&"6;*2R"C)*'C3;)*7"=3
! aCR;3))&6'Q*SC::*Td.*)"*;2S3*;CR;3)
! 9=2#)&<3Q*2=UC;)*)%26;:2)&"6;*&6*%3;#"6;3*)"*'C3;)*%C6)&?3*R3(2<&"%

! !
@C):&63
! /&%)C2:&K2)&"6*#%&?3%
! a"S)12%3*/00
! G2%=12%3*/00
! ?0(,$(%'+40"4$%&'()*$+
! _3;;"6;*:32%63=
! !"67:C;&"6;

! !
]32:&6'*1&)(*Td.
! Y")*7:2;;&72::$*<&%)C2:&K2R:3*E#"#SJ
! F26)*&6;)%C7)&"6O:3<3:*7"6)%":*"<3%*'C3;)
! Y"6O;":C)&"6;Q
" !"=3*#2)7(&6'
! V%"R:3?Q*'C3;)*726*&6;#37)*&);*"16*7"=3
" V%3;7266&6'*#2'3;*S"%*6"6<&%)C2:&K2R:3*&6;)%;
! V%"R:3?Q*'C3;)*726*UC?#*&6)"*?&==:3*"S*&6;)%
! V%"R:3?Q*1(2)*&S*13*S&6=*R2=63;;j
" 56)3%#%3)2)&"6
!
! V%"R:3?Q*&63SS&7&36)*q*Td.*=37"=&6'*;:"1
!
L&62%$*)%26;:2)&"6*"S*'C3;)*7"=3
! Y"*633=*S"%*)%2#;
! a2)&;S&3;*V"#3W*26=*X":=R3%'
" ^&=3:&)$Q*&6;)%C7)&"6O:3<3:*;3?26)&7*#%37&;&"6
" 5;":2)&"6Q*)%26;:2)3*S%"?*SC::*Td.*)"*;2S3*;CR;3)
" V3%S"%?2673Q*?";)*&6;)%C7)&"6;*633=*6"*7(26'3
! 5)*%4*2*/00
! 02)C%3*)37(6":"'$
" a?2::)2:W4*i/0;4*a(2=34*V&64*H?R%24*]$62?"4*3)78

! !
@C):&63
! /&%)C2:&K2)&"6*#%&?3%
! -$,./'(0";QQ
! G2%=12%3*/00
! V3%S"%?2673*7"?#2%&;"6
! _3;;"6;*:32%63=
! !"67:C;&"6;

! !
02%W3)*;&K3*Zr*(2%=12%3*;C##"%)
! ^&%;)*%"C6=*;(&##&6'*6"1Q
" 56)3:Q*/NOT*E/26=3%#"":J
" 90]Q*a/0*EV27&S&72J
! N%26;&)&"6*S%"?*;1*)"*(1*/00*726*;)2%)

! LC)*47-2'!*&)j
" F3*7"?#2%3*26=*7"6)%2;)*;1`(1*)37(6&[C3;
!
" 03)%&7;Q*&0(,$(%'+404*S:3T&R&:&)$4*7"?#:3T&)$
!
V"#3W*26=*X":=R3%'*EhcpbJ
! 9*/&%)C2:*027(&63*0"6&)"%*E/00J*
#%"<&=3;Q
" ^&=3:&)$
" V3%S"%?2673
" a2S3)$*E&;":2)&"6J

! !
Td.*<&%)C2:&K2)&"6*(2;*'%"16*C#
! ^%"?*)(3*=3;W)"#*EhcccJ
" APC6*1&6="1;*"6*$"C%*:&6CT*7"?#C)3%D
! N"*36)3%#%&;3*=2)2*736)3%;*E,--.J
" L2%3O?3)2:*($#3%<&;"%
" /&%)C2:*a0V*;C##"%)
" _2%'3*?3?"%&3;
" .b*R&)*;C##"%)

! 9::*&6*;"S)12%34*"6*;)26=2%=*Td.*(2%=12%3g
! !
@C):&63
! ;)(.7'<)='.)$+"&()%0(
! a"S)12%3*/00
! G2%=12%3*/00
! V3%S"%?2673*7"?#2%&;"6
! _3;;"6;*:32%63=
! !"67:C;&"6;

! !
@C):&63
! /&%)C2:&K2)&"6*#%&?3%
! a"S)12%3*/00
! 2'(1/'(0";QQ
! V3%S"%?2673*7"?#2%&;"6
! _3;;"6;*:32%63=
! !"67:C;&"6;

! !

You might also like