[BACK]Return to xfs_lab_03_allocators.doc CVS log [TXT][DIR] Up to [Development] / xfs-website / training / docs

File: [Development] / xfs-website / training / docs / xfs_lab_03_allocators.doc (download)

Revision 1.2, Wed Jan 17 07:01:30 2007 UTC (10 years, 9 months ago) by chatz
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +27 -25 lines

Initial XFS training course that was presented in Nov 06.

ࡱ>	`	"bjbjss	EPettttL:L:L:`:|||8H|$l|`:	}}}}}T*~$
hN
L:	^		tt}}sss	$t*}9R}s	ssb$.:*:"}|ŗ|-V0	

"t
L:oZ@s,4`d					`:$:$:$6pD`:::p`:`:`:tttttt
XFS
Practical Exercises


03 - Allocators




Overview
Goals
This lab demonstrates how inode numbers are sized, and how inodes and extents are allocated based on different constraints and mount options.
Prerequisites


Setup
Define what software (and versions) are required and how it needs to be configured.



Exercises
Exercise 1
This exercise demonstrates how many bits an inode requires to be located anywhere in a filesystem.
Setup
Use dd(1) to write a single (count=1) 4kB block of data (bs=4K) to an offset that's 256 * 1024 blocks (seek=256K) from the start of the file named loop. An offset of 256 * 1024 * 4kB = 1GB, so the resulting file is 1GB plus 4kB in length.
# dd if=/dev/zero of=loop bs=4K seek=256K count=1 > /dev/null 2>&1

The ls command confirms this, rounded up to the nearest 0.1 of a GB.
# ls -lh loop

Exercise
mkfs.xfs is used to write a file system to the loop file and shows that the geometry is using
inodes that are 256 bytes in size
there are 8 allocation groups
block size is 4kB
# mkfs.xfs -d file=loop loop

Running xfs_db(8) to examine the superblock gives three relevant values for the formatting of inode numbers on this file system.
'agcount' value of 8 or 23 means that three bits will be needed to specify the AG number.
'inopblog' value of 4 means that there are 24 or 16 inodes per filesystem block.  This makes sense since 16 256 byte inodes can fit in a 4kB filesystem block. 
'agblklog' value of 15 indicates that each AG has 215 filesystem blocks in it.  This is expected since the mkfs.xfs output reported an agsize value of 32768 blocks.
# xfs_db -f -c "sb 0" -c "p" ./loop | egrep 'agcount|inopblog|agblklog'

3 + 4 + 15 = 22 bits of data are required to address an inode placed anywhere in this filesystem
Exercise 2
This exercise demonstrates the point at which 32 bits is no longer enough to locate an inode anywhere in the filesystem.
Show that 32 bits are required for a 1kB inode located in a 4TB filesystem.
Slightly increase the size of the file to increase the AG size by seeking to 31 blocks beyond 4TB. The increased AG size has increased the inode size to 33 bits, it is no longer possible to place a 32 bit inode anywhere in the filesystem.
Exercise 3
This lab demonstrates the inode rotor in action.
Setup
Firstly, a filesystem large enough to trigger inode32 rotor behavior is needed.  This can be achieved on a small local disk by creating a large sparse file, writing a new filesystem onto it and mounting it in loopback mode.
> dd if=/dev/zero of=loop bs=4K seek=1G count=1 > /dev/null 2>&1
> ls -sh loop
4.1T loop
> mkfs.xfs -d file=loop loop
meta-data=loop                   isize=256    agcount=32, agsize=33554432 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=1073741824, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096  
log      =internal log           bsize=4096   blocks=32768, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=4096   blocks=0, rtextents=0
> xfs_db -f -c "sb 0" -c "p" ./loop | egrep 'agcount|inopblog|agblklog'
agcount = 32
inopblog = 4
agblklog = 25
> sudo mkdir /mnt/loop
> sudo mount -o loop loop /mnt/loop
> df -h /mnt/loop
Filesystem            Size  Used Avail Use% Mounted on
/home/sjv/loop        4.0T  528K  4.0T   1% /mnt/loop
> sudo chmod 777 /mnt/loop
> cd /mnt/loop
Exercise
Next, ten files are created in a directory on the new filesystem and their inode numbers and data extent allocations are examined:
> dir=a
> mkdir $dir
> for file in `seq 0 9`; do xfs_mkfile 10m $dir/$file; done
> ls -is $dir/*
> for file in `seq 0 9`; do
> ag=`xfs_bmap -v $dir/$file | tail -1 | awk '{print $4}'`
> echo $dir/$file is in AG $ag
> done
Repeat step 2 with a different rotorstep value:
> sudo sysctl -w fs.xfs.rotorstep=3
> dir=b
Exercise 4
This exercise demonstrates the need for the filestreams allocator for a particular workload.
Setup
Create a file system with a small AG size:
# mkfs.xfs -d agsize=64m /dev/sdb7 > /dev/null
# mount /dev/sdb7 /test
# chmod 777 /test

Create ten 10MB files concurrently in two directories:
# cd /test
# mkdir a b
# for dir in a b; do
> for file in `seq 0 9`; do
> xfs_mkfile 10m $dir/$file
> done &
> done; wait 2>/dev/null

Exercise
Note that the all the inodes in the same directory are in the same AG:
# ls -sid * */*

What about the file data?  Use xfs_bmap -v to examine the extents of each of the files:
# xfs_bmap v a/*
# xfs_bmap v b/*

Note that once the original AG was used, the files from both directories are interleaved in the next allocation group. Any read-ahead for files in directory a that assumes the files are contiguous on disk will start reading files from directory b instead.
Questions
In exercise 3, why do the new files start in allocation group 8?
In exercise 3, what can be observed regarding the inode numbers of the files in the two directories?
In exercise 4, the file inodes are created in the same allocation group as the parent directory, but the file extents are not. Why is this?
Answers
The first 8 allocation groups make up the first TB and are reserved for inodes.
The inodes for the second directory are put into a different allocation group than the first directory, still within the first TB.
It's important to consider the order in which events are occurring. The two bash processes writing files are calling xfs_mkfile, which starts by opening a file with the O_CREAT flag. At this point, XFS has no idea how large the file's data is going to be, so it dutifully creates a new inode for the file in the same AG as the parent directory. The call returns successfully and the system continues with its tasks. When XFS is asked write the file data a short time later, a new AG must be found for it because the inodes AG is full. The result is a violation of the original goal to keep file data close to its inode on disk. In practice, because inodes are allocated in clusters on disk, a process that's reading back a stream is likely to cache all the inodes it needs with just one or two reads, so the disk seeking involved won't be as bad as it first seems.









XFS Lab 03 - Allocators		sgi

	 PAGE 7	

Copyright  2006, Silicon Graphics, Inc.
1200 Crittenden Lane
Mountain View, CA 94043







































































































































































































































































































 *,/8=>5	6	7	9	B	C	N				O
P




/0<=>Gû˯zpzpzlzdzlzzhyV,5\]hyV,hyV,hyV,\]hyV,hyV,hhhhoh
hOhOhGh`hhhohOhhQ9hyV,OJQJhI~OJQJh+OJQJh]hhQ9OJQJh]hCJOJQJaJhOCJOJQJaJh]hHCJOJQJaJ'+,-./8>6	7	8	9	C	N	gd#GgdOgdGgdOgdO$^a$gdhQ9,gdO,gd$-gd$e  ""N			


/=>G
5}~cgdyV,
&F!gdyV,gdyV,
&F!gdyV,gdgdo5|}~bcBClm!"#*+78˸hhhhmHnHsH	hhmHnHsH	hhhhmH	sH	hmH	sH	hhmH	sH	h:TmH	sH	h:Th:TmH	sH	h:ThohohohOhyV,mHnHsH	hyV,hyV,mHnHsH	hyV,hyV,hyV,3c6O}Bgdh
&F&gd:Tgdgdhgd:T
&F%gd:T6l"*7s0T\g$<gd	
&F(gd	gdgdogd	
&F&gdh
&F&gd:Tgdgdh/02S[\gMNO
]_lmna6&/'F<[·}}y}}u}yqyqu}u}u}uho\%h:xhOhhhh	hmHnHsH	h	mHnHsH	h	h	mHnHsH	h	h	mH	sH	hhmH	sH	hmH	sH	homH	sH	h	mH	sH	hhhhmHnHsH	hhmHnHsH	hhhhmH	sH	hh,<NO
]mn6'/
&FgdogdOgdgd
&F(gdgd	/d e g h j k m n p q           %$^a$gdO%
9r 'gd	@
$
*Q'V^Vgdgd>3RgdO
&Fgd:x[Xwc d e f h i k l n o q r y z                  """""""~zh<hU?hPh2Dhh{Yh?0J'mHnHu
hP0J'jhP0J'UhhPCJEHaJhhPCJ0aJ0hPhhh~-h`jhPUmHnHuh]jh]UhOhOhOh:xhh.      !!!!!!!!!	!
!!!
!!!!!!!!!gd`77]7^7gdrX!!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+!,!-!.!/!0!1!$
Ba$gd>m1!2!3!4!5!6!7!8!9!:!;!<!=!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!	
BgdCNM!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c!d!e!f!g!h!i!j!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~!!!!!!!$a$gd"hTgd"hT	
Bgd"hT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!gdF!!!!!!!!!!!!!!!!!!!!!!!!!!!!!gd7F!!!!!!!!!!!!!!!!!!!!!!!!!!!!!gdsr!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""""	"
"""
"""""""""""""""""""gdO$gdHpC	0
00&P	P/R :p. A!n"n#$%74L@LdFNormal7x^7OJQJ_HmH	sH	tH	@`	Heading 1,$$&d@&P`&^'5B*	CJ(KH OJQJ\^JaJ phDj@jO	Heading 2$@&^&5B*	CJ OJQJ\]^JaJphDh@hlF	Heading 3$x@&^#5B*	CJOJQJ\^JaJphDPP$	Heading 4$@&B*	CJ\aJphDDA@DDefault Paragraph FontViVTable Normal :V44
la(k(No List6U6+	Hyperlink>*B*phbOb"p6Code 
@@xx^m$ B*	CJOJQJmHnHph=lufOfng	Structure
B^#CJOJQJ^JaJmHnHsHur#rrX
Table Grid7:V0
7^7T2Ti7^Array contents$
B&<<a$sH	@C@i7^Array TableCJOJQJ2OR2#p6Example
n^nTT
ETOC 1$
%5CJOJQJ\^JaJDD
q_TOC 2
%S(^S5\::
ukgTOC 3
%^22
sTOC 4^22
sTOC 5X^X22
sTOC 6 ^ 22
sTOC 7^22
sTOC 8^22
sTOC 9x^xHH<[
Parameters$xm$5mHnHu::+YCDescription
 n^n>>YC
Normal Indent
!^V!Vp6	Code Char,B*	CJOJQJ_HmHnHph=lsH	tH	u0"10p6Example CharT@BTTHHeader$
B*^5B*CJ OJQJph< @R<78Footer
%
9r OJQJFVaF78FollowedHyperlink>*B*ph.)@q.78Page NumberRRnY
Table Heading(<^5OJQJ^JJJnYTable Description)<^HHnYTable Values*<^OJQJHH Description Char_HmH	sH	tH	O$@Style 24 pt Bold Custom Color(RGB(9638168)) Centered Left:  0...,$^a$5B*	CJ0\phDO3$@Style 60 pt Bold Custom Color(RGB(9638168)) Centered Left:  0...-$^a$5B*	CJx\phDRYR$Document Map.-D M
OJQJ^JBBp6Style Courier NewOJQJnn1p6Style Description + Courier New0OJQJmHnHutt0p6$Style Description + Courier New CharOJQJmHnHujjXTOC Heading"2$&d	PD^5B*	CJ(OJQJphD1-9qEStyle 60 pt Bold Custom Color(RGB(9638168)) Centered Left:  0... Char+5B*	CJxOJQJ\_HmH	phDsH	tH		

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	

		



  !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~		



	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	

!	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	

P@0@0+,-./8>6789CN/=>G5}~c	


6


O}B6
l



"*7s0T\g$<NO
]mn6'/deghjkmnpq	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	

-0-0-0,0,0,0,000000/080/000/00000090C(0C! 000! 000(0C! 0>! 0G>! 0G>! 0G>0>0>! 0>(! 0>! 0>! 0>0>0>! 0>090% 0% 0090(0& 00 0000000000000000000000(0& 0
0
0
0
0
0
0
0
0
& 0
0
0
090\(0\( 00000( 000000000(0\( 0
0
0
( 0
(0
0
0
( 0
0 0 0 00 0' 0' 0'0@0h00@0h00@0h00@0h00@$0@0@%0@0@0@0@0@%0@0h00P
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000$00h0+,-./8>6789CN/=>G5}~c	


6


O}B6
l


"*7s\e-0-0-0,0,0,0,0000
00/080/000/0000
00900C0*0C0! 000000! 000000*0C0! 0>0! 0G>0! 0G>0! 0G>00>00>0! 0>0! 0>0! 0>0! 0>00>00>0! 0>009000% 00% 0090& 000000000000000000000000& 000000000& 0
00@0@0@0
00	,,<<["N	c</ !1!M!j!!!!!!"" !"#$%&'"/68! ,b$.^%rBɮc$0e0e
   A@ AԔ 8c8c	

?1 d0u0@Ty2 NP'p<'pA)BCD|E||s
"
0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F	
5%
   !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab `&@ 0(	
B
S	?J2(	
z	.&/
C  3"t

s*X99?  "`.&/ZB
	
s*DDp  	.

C  S"t

s*X99?  "`.

s*@~D  "`.<
,-
.k@	/wH*xu/\K*u@_Common_XFS_Types99j#
|%j#!j#Kj#$j#,$j#;*urn:schemas-microsoft-com:office:smarttagsaddress:*urn:schemas-microsoft-com:office:smarttagsStreet9*urn:schemas-microsoft-com:office:smarttagsplace8*urn:schemas-microsoft-com:office:smarttagsCity9*urn:schemas-microsoft-com:office:smarttagsState>*urn:schemas-microsoft-com:office:smarttags
PostalCode< *#6@(w
eegghhjkmnpq	!$KPeegghhjkmnpq33333333>GTg
]l'/eegghhjkmnpqeegghhjkmnpq(|}1 ~Jdv(gH[^N<[1=2N89DD>BaL*V!J3VN8b9{J	:H:A=mo=P6>>n(3n>vs8HEDHGa^FjE6zZSFz>Gĝ*1Yĝb8N4ewibgqL0!jبln^E@lNP\rhX<5=ftEcxv
]zz_{x^`.^`.^`.^`.^`OJQJo(^`OJQJo(^`OJQJo(^`OJQJo(hh^h`.hh^h`OJQJo(h^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJhHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@@^@`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@@^@`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh
^`hH.h
^`hH.h
pLp^p`LhH.h
@@^@`hH.h
^`hH.h
L^`LhH.h
^`hH.h
^`hH.h
PLP^P`LhH.h
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh>>^>`OJQJo(hHh

^
`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh~~^~`OJQJ^Jo(hHohNN^N`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h
^`hH.h
^`hH.h

L
^
`LhH.h
w
w
^w
`hH.h
GG^G`hH.h
L^`LhH.h
^`hH.h
^`hH.h
L^`LhH.h^`OJQJo(hHh^`OJQJ^Jo(hHoh

^
`OJQJo(hHhw
w
^w
`OJQJo(hHhGG^G`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hH(bN8HED^FjE=\r_{N4eibg[~}|	:*V!A=b9@l3n>:>Bao=5=ft0!j*1Y]z>GSFVN86>>lcxv((																																																																																																																																																																																																																																		@	@@Xi\R'xi\Rl
*
i\RYi\RNi\Rf3i\R>(KW|Bi\RL.D-[Fi\R
O(KWi\Rl
8S*Mk(KW?iW[[Gb[[~hi\R?i?ji\R*MkWf3l(KWhm(KW#H|i\R0Jd8'%AFyYzZ&''_,00KzcH:*C15?4WW^{$1)x2;"|6:&DG"i~5
DqOU]Ncnu{<$cTa(}i(/4F#^Gnt	="	I-	P	]	e	h	
)	
Q
Q 
3
5
G
b
;p
w
KGFNiuz`
DZBh-
'
(
:0
A
c
u
9I:<qr.Y>lIU>dhwk&*:ipIS E7>Zghr6{D
\">&}==ZYs
S/0Q^oZsWxI.L84"$/3ODJjL6&t#[ns.eDHya?lId37AQ|}d~y+(,s-86;`>].DuoU_#v=> 	 0 E5 )9 = S e i du w "!8!}K!$]!~!"""Z'"O""X"s"y"z" #0#B#c#th#zx#	$%$X$Fj$% %'%(%)%4%J%P%o\%]%a%r%T&'&;&n&co&jy&'_G'M'^'(=(FA(F(u^(B|(~()")8)B)&m)Yu)z)
*!*&*eC*d*f*-i*'x*Z{*+ +0+;+D+H+K+(|+,1,yV,b,4h,j,s,w,"-3;-W-_-|-~-k-1.A.d./H.\].$_.7c.m./&/y;/D/L/R/Qf/h/w/:0O@0
I0Tb01:1Y1f1mp1p1262k263)3^3\c3M94RV4'p4|4J?5N5PS50Y5Y5g51l5
y5.(6163:6l;6=6?=6B6E6X6]`6Xb6p6p6z67z7"7
8187898a89c9#929hQ9b9t9t9:':.:31:G:w:~: ;6$;{O;[;a;e;l; <!<yb<==k=;*=5=p=={>>>>:>=>[>d>j>#k>`v>ez>
A?A?.B?7i?	@x5@I@[@b@`m@w@ZAAAFAoAtA0B9B`(B8B?BAB]eBTiB2zBBC2CUCYCdZClC"D2D*DC+D8/DAaDDaDdDeD|D((E}SEwrE
F@FFF"F7F?FdFlF#Go$G*GBmGFmG H#H'H0HYH~fHE|H8,I
9I?ILIrIY{I"JJ`2J<JzSJwJK
KK6K8K*KK/LKgKmK3LXLhL1nL|LN(M8MtHMLMcMiMkMe>NO&Oa8O:^OFrOXPPPP_1P6PCPXP/`Pq`P0Q6QQHQyOQ`Q]xQ}R(RG0R>3RZ>Rr@R6MRmRS+S1SLSRST	TJT**T1T7T;T>T"hTnTUzUUkU}!U"(U@)U=UDUEUJUNU<RUfUVx!V9VAVGVMV-]VcVW1W|AWMWOWxWX0X%5X>XQX^`XqYYNY!YT'Yn)YkVYYYfYjoYh{YGZZB%Zq8Z=ZTlZ	[[5[\V\l\Q\_\O]
]#]3]B]^i7^/:^1Z^;[^d^~i^__q_?_X_
```=`jq`
aT-a>Eacaeb=wb{b;cdd.dEdJtdKedEefhffg!g72g3gDgEgsNg]hgukgng@zghhhd#hR8h=h?hChDhxPhiiMiViwioj.&j=.j(1jKj,k~.k9kMkVk]k%eksk%l{9l
5mPfmnG)nfooooCoRop]o`oHpk2p@pOp7ipvpq
qxqq6q9qFDq?nqrr4r(;r{r`szss'st0t|t;uj1u.@uhuJyuvvrv>vcvWdvPvvIw.wWMwJZw9hw#nwvwNyw
xMx?x5IxJxUx\xAzx%y(y(9y?yTy\ywyz9)z$fzjzzz{{:{R{T{n{=s{s{|.|9|N|q|O}:}?}(?}KM}Op}w~}~_E~NF~M~;T~q~?x~x~	?D)EEHjx<9'5*@@dBwI~1
:Q^#G>U=Srx$<6DDXXI~#w:aU]u[A/
kq39MNOPP'dk+uz&mHs!Dnsr,@5@tEOCu;~
2RWYYcM$M%W%-3FM&Vtkz&bC|`$'EGT\hnynn(IX_"+13A4T[sM$) 8iA%(&"+c1A0)"#_4'Wf{{U~
& j'CCPPJRXRo=%J<~J3SS`l}!_ X(UVBh3$5O$~9 PqShkp-s*^n95DCHUW?Zg9z"2V:LW+p	QY)
9>L,kl}tuz=}m7DSnX
L
.IKTe
T
|P P":d[[v
$'&F=Fma|u	`i#*.:AF<LcLo1?58:-Ti!4Sp#Tkpw>9VX\_fh)1E\O1KSt{kvu#),,"B R5AVwWly:2JxT]iy}'|GM2u}GaB
"W6I`r7yUX#%U6:?_H'bb7$ &)+AOrvk$CNoZ\`v}/<X[U#5HIU]bw>!0S)sL0n3:R=t
FlHx/<#AkEn	EnYuY\or"A[jyl>m=uKxy>&78@sFP` s+0@3Fit/jd xxE&5HKLt'_r}
zJ3D6CRXe{{@38<>I3js\"Irs-;+Des~1oy@nx",.8Ol4"16td2?#0E;U?PrXau)
&$%J>THHcI2Y:Zze*^
zG!2)/I^e`t5
3/:<`CLKT]x
.
.?
O6WOX:\'r_,fsmut&17<SXDd)#J7>BQZC[`O9g-Mp&5G nu.u5$D:T_~bhitw!'Sip3w;|.%uKj^;DTJq|
F%)2*VJOZa9?	Ky
&*dFqT`lzlq37o9JN*%s;+?iy/Uk8?$AaC4Z44}pp}3
\-<DLP<[7gl=0&28Q:keo`P
Dc/Y25Fp$55cVv;B]d=\]7 ?u^Hcv]#bm'tr
#8=wz
(;>\]`ab/f],
2>lBEU:l+%3$?$CNU_wr*sL	h$=Dwz'Ka>p:xA!QUzS+'RySX>K`Czh
>NQZ``:fpIt&* BU]Z`x&g-wy|	!abqwg#AG<9MfzBUI+sD^mm+@L@@UnknownG: Times New Roman5Symbol3&: Arial/&SGIA&Arial Narrow?5	: Courier New5&zaTahoma;Wingdings"1hYze,,!4dYY2QXR
0>2XFS Practical Exercises03 - Allocatorschatzchatz(	

 !"#$%&'Oh+'0	$0
P\h
tXFS Practical Exercises03 - AllocatorschatzNormal.dotchatz14Microsoft Office Word@
@@@՜.+,0hp|
SGI,YXFS Practical ExercisesTitle	

 !"#$%&'(*+,-./023456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry	FŗData
)1Table1WordDocumentEPSummaryInformation(DocumentSummaryInformation8CompObjq
	FMicrosoft Office Word Document
MSWordDocWord.Document.89q