%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: dipl.dvi %%Pages: 89 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: Times-Roman %%DocumentPaperSizes: a4 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -t a4 -o /home/philipp/diplomarbeit/dipl.ps %+ dipl.dvi %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2000.05.18:1154 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: 8r.enc % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", % version = "0.6", % date = "1 July 1998", % filename = "8r.enc", % email = "tex-fonts@@tug.org", % docstring = "Encoding for TrueType or Type 1 fonts % to be used with TeX." % @} % % Idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard Encoding + ISO Latin 1 + extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % % (4) Remaining positions left undefined are for use in (hopefully) % upward-compatible revisions, if someday more characters are generally % available. % % (5) hyphen appears twice for compatibility with both % ASCII and Windows. % /TeXBase1Encoding [ % 0x00 (encoded characters from Adobe Standard not in Windows 3.1) /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef % These are the only two remaining unencoded characters, so may as % well include them. /Zcaron /zcaron % 0x10 /caron /dotlessi % (unusual TeX characters available in, e.g., Lucida Bright) /dotlessj /ff /ffi /ffl /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % very contentious; it's so painful not having quoteleft and quoteright % at 96 and 145 that we move the things normally found there to here. /grave /quotesingle % 0x20 (ASCII begins) /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % rubout; ASCII ends % 0x80 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis % 0xA0 /.notdef % nobreakspace /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen % Y&Y (also at 45); Windows' softhyphen /registered /macron % 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndProcSet %%BeginProcSet: special.pro %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N /@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X /yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet TeXDict begin 39158280 55380996 1000 600 600 (dipl.dvi) @start %DVIPSBitmapFont: Fa ecti1095 10.95 54 /Fa 54 253 df<933807FF80043F13F09338FE00FCDB01F0131EDB07E0130F4B48131F4C 133F031F147F4BC7FCA2187E037E14381800A215FE5DA414015DA414030103B712F0A218 E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214 3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101 13F018E0933800F1C0EF7F800103ED1F004A91C7FCA35C1307A25C121CEA7E0F00FE5BA2 49CAFC12FCEAF81E485AEA7878EA3FF0EA07C0385383BF33>28 D44 D<387FFFFCA3B5FCA21605799520>I<120EEA3F80127F12 FFA31300127E123C090976881C>I<15FE913807FF8091381F07C091387C01F0ECF00049 4813F8494813780107147C495A49C7FC167E133E137EA25BA2485AA2000315FEA25B0007 15FCA2491301120FA34848EB03F8A44848EB07F0A448C7EA0FE0A316C0007E141F12FE16 80153FA2481500A2157EA25DA25D4813015D6C495A127C4A5A4A5A6C49C7FC143E6C5B38 0FC1F03803FFC0C648C8FC273F76BC2E>48 D<15FE913803FFC091380F01F091383C00F8 4A137C4A7F4948133F49487F4A148049C7FC5BEB0E0C011E15C0EB1C0EEB3C0613381378 1370020E133FD9F00C148013E0141C0218137F00011600EBC0384A13FEEC600102E05B3A 00E3C003F89039FF0007F0013C495A90C7485A5E037FC7FC15FC4A5A4A5AEC0FC04AC8FC 147E14F8EB03E0495A011FC9FC133E49141801F0143C48481438485A1678485A48C85A12 0E001E4A5AD83FE0130301FF495A397C3FF01FD8780FB55AD8700391C7FCD8F0015B486C 6C5A6E5AEC07C02A3F79BC2E>50 D<1638167E16FE16FCA3150116F8A3150316F0A21507 16E0A2ED0FC0A3ED1F80A216005DA2157EA2157C15FC5D14015D14035D4A5AA24A5AA24A C7FC143EED038091387C0FC014F8ECF01F01011480EB03E014C0903807803F010F1400EB 1F00133E495B49137E485A485A484813FE48B46C5A4813F04813FE267C00FF130800F090 380FFFFC00601301C714E0913803F8005DA314075DA3140F5DA3141F5DA3020EC7FC274F 7DBC2E>52 D 54 D<131E137FEBFF80A31400A25B133890C7FCB3A3120EEA3F80127F12FFA390C7FC12 7E123C112776A61C>58 D<17381778A217FCA21601A216031607A2160FA2161DA2163916 79167116E1A2923801C1FEA2ED0380A2ED07005D150E5DA25DA25D15F05D14015D4A487F A24AC77EA2140E141E021FB6FC5CA20270C77EA25CA2495A13035C49C8FC1880010E153F A25B133C1338137813F80001167FD807FCEDFFC0B500C0013F13FFA25C38417BC043>65 D<9339FF8001C0030F13E0033F9038F803809239FF807C07913A03FC001E0FDA0FF0EB0F 1FDA3FC09038079F004AC76CB4FC02FE80495A49486E5A495A495A4948157E4948157C13 7F49C9FC5B00011778485A5B12071870485AA2485A95C7FC123F5BA2127F5BA312FF90CC FCA55A170FA2170EA2171E171C173C17381778007F167017F04C5A6C5E6D1403001F4B5A 6D4AC8FC6C6C141E00075D6D14F8D803FCEB01E0C66CEB07C090267FC03FC9FC90381FFF FE010713F0010013803A4272BF41>67 D<49B77E18F018FC903B0003FC0003FE9438007F 804B143FF00FC019E00207ED07F04B140319F81801140F4B15FC1800A2141F4B15FEA314 3F5DA21801147F92C8FCA219FC5C4A1503A3010117F84A1507A219F00103160F5C19E018 1F010717C05CF03F80A2010FEE7F004A157E18FE4D5A011F5E4A4A5A17074D5A013F4B5A 4A4A5A4DC7FC017FEC01FC4C5A91C7EA0FE049EC7FC0007F90B6C8FCB712FC16C03F3E7B BD44>I<49B812F8A390260003FCC7123F18074B14031801F000F014075DA3140F5D19E0 A2141F4B1338A2EF7801023F027013C04B91C7FCA217F0027F5CED00011603160F91B65A A39138FE001F0101EC07805CA3010392C8FC5C18074C5B0107020E130E5C93C7121E181C 010F163C4A15381878A2011F5E5C4D5AA2013F15034A4A5A170F017F151F4D5A91C812FF 49020F90C7FC007F90B7FCB9FC5F3D3E7BBD3D>I<49B812F0A390260003FCC7123F180F 4B14071803F001E014075DA3140F5D19C0A2141F5D1770EFF003023F02E013804B91C7FC A21601027F5CED0003A216074AEB1F8092B5FCA3902701FE003FC8FC4A7F82A20103140E 5CA2161E0107141C5CA293C9FC130F5CA3131F5CA3133F5CA2137FA291CBFC497E007FEB FF80B6FCA23C3E7BBD3B>I<49B5D8FC01B512FCA390260003FEC73803FE004B5D4B5DA2 180714074B5DA2180F140F4B5DA2181F141F4B5DA2183F143F4B5DA2187F147F92C890C7 FCA26091B8FC60A24AC7120113014A5DA2170313034A5DA2170713074A5DA2170F130F4A 5DA2171F131F4A5DA2173F133F4A5DA2017F157FA291C890C8FC496C4A7EB690B6FCA24A 5D463E7BBD43>72 D<49B512FEA216FC90390003FE005D5DA314075DA3140F5DA3141F5D A3143F5DA3147F92C7FCA35C5CA313015CA313035CA313075CA3130F5CA3131F5CA3133F 5CA2137FA291C8FC497EB6FCA3273E7BBD23>I<4AB512FCA391C71300A25EA215015EA3 15035EA315075EA3150F5EA3151F5EA3153F5EA3157F93C7FCA35DA25DA21401A25DA214 03A25DA21407121FD87F805BA2140FD8FF005B141F485C00F8495A12E0007049C8FC14FE 387801FC383C03F06C485A3807FF80D801FCC9FC2E4078BD2F>I<49B500FC903807FFFE A390260003FEC813C04B16004B15FC4E5A19E002074B5A4BEC0F80061EC7FC60020F5D4B 5CEF03E0EF0780021F4AC8FC4B131E5F17F8023F495A92388003C04C5A4CC9FC027F131E ED007F5E5D4A487F4A5AED1F3F033C7F010113789138FCF01FDAFDE07F9138FFC00F4901 807FECFE004A13074A8013074A130383A2010F6E7E5C160083131F4A8084A2013F153F4A 81A2017F6F7EA291C87F496C4A7E007F01FE0107B57EB5FCA2473E7BBD45>I<49B6FCA3 90260003FEC8FC5D5DA314075DA3140F5DA3141F5DA3143F5DA3147F92C9FCA35C5CA313 015CA313035C18C0EF01E0010716C05C17031880130F4A140718005F131F4A141EA2173E 013F5D4A14FC1601017F4A5A160791C7121F49ECFFF0B8FCA25F333E7BBD39>I<902601 FFFE93381FFFC062A2D9000394387FE000505A6303BFED01DF1AFF0207EE03BF033FDB07 3FC7FCA2F10E7F140F020EEE1C7E19381AFE021E167091261C1F805D19E019E1023CED01 C1023892380381F8A2F0070314780270030E5B181C19079126F00FC0133802E05F1870F0 E00F130102C0DA01C05BA2943803801F13030280DA07005B170EDB07E0143F01075D0200 94C8FC5F4D5B5B010E4B137EA2DCE1C013FE011EECE380011C5F04E7C7FCDB03F7130101 3C14FE01385F5E01784A130313F8486C4A5CD807FE4C7EB500F0D9E007B512F016C0DAE0 015E523E7ABD51>I79 D<49B77E18F018FC903B0003FC0003 FEEF00FF4BEC3F80F01FC01407F00FE05DA2020F16F0A25DA2141FF01FE05DA2023F16C0 183F4B1580187F027F160018FE92C7485A604AEC07F04D5A4AEC3F804CB4C7FC49B612F8 17E002FCCAFCA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA25CA2137FA291 CBFC497E007F13FEB5FCA23C3E7BBD3D>I<49B612FCEFFF8018F0903B0003FC000FF8EF 01FE4B6D7E84F03F800207ED1FC05DA219E0140F5DA3021FED3FC05DA2F07F80143F4B15 0018FE4D5A027F5D92C7485AEF0FE0EF1F804A027EC7FC4AEB07F891B612E01780903A01 FE000FE04AEB03F0707E707E0103814A147E177FA213075CA25F130F5C5F1601131F5CA3 013F020314404A16E05F017F160119C091C700011303496C1680B61507933900FE0F004A EC7E1ECAEA1FFCEF07F03B407BBD42>82 D<92390FF001C0ED7FFE4AB5EA0380913907F0 0FC791390FC003EF91381F0001023E903800FF004A805C495A4948143EA2495AA2010F15 3C5CA3011F1538A46E91C7FCA2806D7E14FCECFFC06D13F86D13FF16E0010014F86E7F02 1F7F02037FEC003F03077F1500167F707E161FA2160FA212075A5F120EA2001E151F94C7 FCA25E003E153E5E123F5E486C495A4B5A6D1307D87DE0EB0F80D8F8F849C8FCD8F07F13 FE90383FFFF8D8E00F13E048C690C9FC32427ABF33>I<48B9FCA3489039001FE00101F8 ED007FD807E04A133F49161F49161E000F143F90C75BA2121E157F001C92C7FC003C171C 12385D00785C1270183C00F001011538C7491400A314035DA314075DA3140F5DA3141F5D A3143F5DA3147F92C9FCA35C5CA313015CA21303A25CEB0FFC003FB6FCA3383E71BD41> I86 D<267FFFF890B500F890B512C0B5FC60000390C7D807FEC7380FF80001FCDA03F86E5A74 5A6300014F5A98C7FC16071A0E040F151E1A1C041F153C1A38043B5DA204735D16F304E3 4A5A150104C34A5AED03834FC8FCED0703190E150E715B031C153C040114380338157819 7003705D15F003E04A5A140103C04A5AEC038001FE4CC9FC0000EB0700180E140E604A15 3C18384A157818704A5DA24AECFDC013FF4AECFF80A24A92CAFC91C7FC5F5B5F5B5F5B70 5A5B5F52406EBD5A>I<91B500FC90383FFFF8A25E020301C0010713006E90C713F86EED 03E04E5A616F6C49C7FC181E033F5C70133860031F5CEEE0014D5A030F495A7048C8FC17 0E03075B705A03031378705AEEFDE06FB45A5F94C9FC6F5A82A2824C7E5D83ED03BFED07 1F030F7F151EED3C0F03787F1570EDE007DA01C07F02031303DA07807FEC0F00021E1301 021C805C4A13004A80130149488049488149C8FC496F7E5B01FF157F00076D4A7EB500E0 010FEBFFC0A261453E7CBD43>II<147E49B47E903907C1C38090391F80EFC090383F00FF017E137F 4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90C7FCA21401 485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13E0003E137F ECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E>97 D III<143F903801FFE09038 07C0F090381F0078137E49133C485A485A12074848137C491378121F484813F8EC01F000 7FEB07E09038001FC0903801FF00EBFFF8B5128048C8FCA45AA6150C151C153C007C1478 15F0007EEB01E0003EEB03C06CEB0F806CEB1E00380780FC3803FFE0C690C7FC1E2976A7 29>I<167C4BB4FC923807C78092380F83C0151F160FED3F1FA2157E1780EE0F0093C7FC 5DA414015DA414035DA30103B512F8A390260007E0C7FCA3140F5DA5141F5DA4143F92C8 FCA45C147EA414FE5CA413015CA4495AA4495AA4495AA2121C007E5B12FE49C9FCA2EAFC 1E485A12F0EA7878EA3FE0EA0F802A5383BF1C>III<1470EB01FCA314F8A2EB00E01400AD137C48B4FC38038F80EA 0707000E13C0121E121CEA3C0F1238A2EA781F00701380A2EAF03F140012005B137E13FE 5BA212015BA212035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81C013831480 38078700EA03FEEA00F8163D79BB1C>IIIIIII<903903E001F890390FF807FE903A1E7C1E0F80903A1C3E3C07C0013C13 7801389038E003E0EB783F017001C013F0ED80019038F07F0001E015F8147E1603000113 FEA2C75AA20101140717F05CA20103140F17E05CA20107EC1FC0A24A1480163F010F1500 5E167E5E131F4B5A6E485A4B5A90393FB80F80DA9C1FC7FCEC0FFCEC03E049C9FCA2137E A213FEA25BA21201A25BA21203A2387FFFE0B5FCA22D3A80A72E>I114 DII<137C48B4143826038F8013FCEA0707000E7F001E1401121CD8 3C0F5C12381503EA781F007001805BA2D8F03F1307140000005D5B017E130FA201FE5C5B 151F1201495CA2153F0003ED8380491403A2157F1607037E1300A2EDFE0F160E00011301 9039F803BE1C0000EB073E90397C1E1E3890393FF80FF0903907E003E0292979A730>I< 017CEB038048B4EB07E039038F800FEA0707000E01C013F0121E001C1407EA3C0F003814 0316E0D8781F130100701380A2EAF03F020013C012005B017E1303168013FE5B15070001 15005BA2150E12035B5DA25DA25DA200015C4A5AEBF8030000495AD97E0FC7FCEB1FFCEB 07F0242979A729>I<017C167048B491387001FC3A038F8001F8EA0707000E01C015FE00 1E1403001CEDF000EA3C0F0038177C1507D8781F4A133C00701380A2D8F03F130F020049 133812005B017E011F14784C137013FE5B033F14F0000192C712E05BA2170100034A14C0 49137E17031880A2EF070015FE170E00010101141E01F86D131C0000D9039F5BD9FC076D 5A903A3E0F07C1E0903A1FFC03FFC0902703F0007FC7FC372979A73C>I<903903E003F0 90390FF80FFC90393C3C1C1F9039701E380F9039E01F703F000102F013803B03C00FE07F 001380000714C0D9001F131C4892C7FC000E5CA2001E133FA2C790C8FCA25C147EA314FE 5CA313014A1338A3010314781670001C4913F0007E5D0107130100FE5D010F495A90380E F80727781C780FC7FC9038383C3C393FF01FF83907C007E029297CA729>I<137C48B414 3826038F8013FCEA0707000E7F001E1401001C15F8EA3C0F12381503D8781F14F0007013 80A2D8F03F1307020013E012005B017E130F16C013FE5B151F1201491480A2153F000315 005BA25D157EA315FE5D00011301EBF8030000130790387C1FF8EB3FF9EB07E1EB00035D A214075D121F486C485AA24A5AD87F0090C7FC007E133E0038137E5CEB01F06C485A381E 0FC0D807FFC8FCEA01F8263B79A72C>I<913807800F91391FC01F80023FEB3FC0167F14 7FA21780DA3F80130091381E001C91C9FCAA137C48B4143826038F8013FCEA0707000E7F 001E1401121CD83C0F5C12381503EA781F007001805BA2D8F03F1307140000005D5B017E 130FA201FE5C5B151F1201495CA2153F0003ED8380491403A2157F1607037E1300A2EDFE 0F160E14010001903803BE1C9038F8073E3A00FC1E1E3890393FF80FF090390FE003E02A 3C79BA30>252 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fb cmr8 8 6 /Fb 6 58 df48 D<130C133C137CEA03FC12FFEAFC7C1200B3 B113FE387FFFFEA2172C7AAB23>III<140EA2 141E143EA2147E14FEA2EB01BE1303143E1306130E130C131813381330136013E013C0EA 0180120313001206120E120C5A123812305A12E0B612FCA2C7EA3E00A9147F90381FFFFC A21E2D7EAC23>I57 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fc ectt1095 10.95 56 /Fc 56 126 df<143C147EEB01FE1303EB07FCEB0FF8EB1FE0EB3FC0EB7F80EBFF005B48 5A485AA2485A5B120F5B121F5BA2123F90C7FCA25A127EA312FE5AAD7E127EA3127F7EA2 7F121FA27F120F7F12077F6C7EA26C7E6C7E7FEB7F80EB3FC0EB1FE0EB0FF8EB07FCEB03 FE1301EB007E143C174771BE2F>40 D<127812FCB4FC7F6C7E6C7EEA0FF06C7E6C7E6C7E 1200137FEB3F80A2EB1FC0130F14E0130714F01303A214F81301A214FC1300A314FE147E AD14FE14FCA3130114F8A2130314F0A2130714E0130F14C0131FEB3F80A2EB7F0013FE12 01485A485A485AEA3FE0485A485A90C7FC12FC1278174778BE2F>II44 D<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B6E8A2F>46 D<16E0ED01F01503A2150716E0150F16C0151F1680153F16005D157E15FE5DA214015D14 035D14075D140F5D141F5D143F92C7FCA25C147E14FE5C13015C13035C13075C130F5CA2 131F5C133F91C8FC5B137E13FE5B12015B12035BA212075B120F5B121F5B123F90C9FC5A 127E12FE5AA25A127824477BBE2F>I49 DII< EC07F84A7EA2141F143F157C147F147E14FEEB01FC14F8130314F01307EB0FE014C0131F 1480133FEB7F00137E13FE5B485A12035B12075B485A121F5B123F90C7FC127E12FEB712 FE16FFA46C15FEC8EA7C00AA91387FFFFC91B512FEA46E13FC28397DB82F>I54 D<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCB1121FEA3F80EA7FC0EAFFE0 A5EA7FC0EA3F80EA1F000B276EA62F>58 DI<003FB612FC 4815FEB8FCA36C15FECAFCA9007FB612FEB8FCA36C15FE6C15FC28157DA52F>61 D<143F4A7EA24A7EA4903801F3E0A501037FA314E101077FA414C0010F7FA490381F807E A4013F137F4A7EA4017E6D7EA2017FB5FCA290B67EA49038FC000F48486D7EA400038149 1303A3D87FFF90383FFF80A2B56C4813C0A26C496C1380A22A397EB82F>65 D<007FB512E0B612FC15FF168016C06C15E03A03F0001FF0150FED03F8A2150116FC1500 A5150116F8150316F01507ED1FE0ED7FC090B61280160015FC15FF16C016E09039F0000F F0ED03F8ED01FC150016FE167EA2163FA6167F167E16FEA2ED01FC1507ED1FF8007FB6FC B712F016E0168016006C14F828387EB72F>I<91387F8038903903FFE07C010FEBF8FC49 13FC4913FF5BEBFFC048EB003F4848130FEA07F849130748481303A2484813015B123F90 C8FCA25A127E1678160012FE5AAC7E127EA21678007F15FC7EA27F121F6D13016C6C14F8 6D130312076DEB07F0D803FE130F6C6CEB1FE06C9038C07FC06DB512806D14006D5B6D5B 010313F09038007F80263A7CB82F>I<007FB57EB612F015FC81816C812607E0017F9138 003FE0151F6F7E6F7E15036F7EA26F7EA2167E167F82A41780161FAB163F1700A35E167E A216FE4B5AA24B5A15074B5A151F4B5A4AB45A007FB65AB7C7FC5D5D15F06C148029387E B72F>I<007FB612FCB77EA47ED803F0C7127EA7163C93C7FCA515F04A7EA490B5FCA6EB F001A46E5A92C8FCA5160FEE1F80A9007FB7FCB8FCA46C160029387DB72F>I<007FB612 FEB8FCA47ED803F0C7123FA7161E1600A6157815FCA490B5FCA6EBF000A4157892C7FCAE 387FFFE0B57EA46C5B28387DB72F>I<007FB512FEB7FCA46C14FE390007E000B3B3A800 7FB512FEB7FCA46C14FE203879B72F>73 D<387FFFF080B5FCA27E5CD801F8C8FCB3B016 1E163FA9007FB7FCA2B8FCA27E16FE28387DB72F>76 D<007FB512E0B612F815FEEDFF80 16C06C15E03A03F0007FF0151FED07F81503ED01FCA2150016FE167EA616FE16FC1501A2 ED03F81507ED1FF0157F90B612E016C01680EDFE0015F815E001F0C8FCB0387FFF80B57E A46C5B27387DB72F>80 D<387FFFFEECFFC0B612F015FC6C80812603F0037F9138007FC0 153F6F7E150F1507821503A515075E150F151F4B5A157F913803FF8090B6C7FC5D5D5D81 819038F003FF9138007F80153F151F82150FA9EEC1E0EEC3F0A316E33A7FFF8007E7EEFF E0B512C06F13C06C497E6F1380C9EA3E002C397EB72F>82 D<90391FF8038090397FFF07 C048B512C74814EF4814FF5A381FF80F383FC00349C6FC48C7127F007E143F12FE48141F A2150FA46CEC0780007E91C7FC127F6C7E7FEA1FF86CB47E6C13F86CEBFF806C14E06C6C 13F8010F7F01007FEC0FFF02001380ED3FC0151FED0FE01507A216F00078140312FCA56C 140716E06C140F7F6DEB1FC001F0137F9039FE01FF8090B612005D00FD5CD8F87F5B011F 13E0D8700390C7FC243A7BB82F>I<007FB71280B812C0A53AFC003F000FA70078ED0780 C791C7FCB3B290381FFFFE497FA46D5B2A387EB72F>I87 D<387FFFFEB6FCA414FE00FCC7FCB3B3B3A5B512FE14FFA46C13FE18476DBE2F>91 D<387FFFFEB6FCA47EC7123FB3B3B3A5007FB5FCB6FCA46C13FE18477DBE2F>93 D<007FB612E0A2B712F0A36C15E0A224077B7D2F>95 D97 DI<903803FFC0010F13F8013F7F90B57E488048158048EB007FEA0FF85B485A 49EB3F004848131E90C9FC5A127EA212FE5AA87E127EA2127FED07806C6CEB0FC07F6C6C 131F6D1480D80FFC137F3A07FF81FF006C90B5FC6C5C6C5C013F13F0010F13C0D903FEC7 FC222A79A82F>I<913803FF804A7FA480EC000FAAEB03FCEB1FFF017F13CF90B512EF48 14FF5A3807FE07380FF801391FF0007F01C0133F485A151F48C7FC150F127E12FEA25AA8 7E007E141FA2127F6C6C133F157F6C7E6D13FF380FF8012607FE0713FF90B712806C14EF 6C14CF6C6C138F90261FFE071300D907F8C8FC29397DB72F>II<4AB4FC020713C0021F13E0147F91B512F0A249130FEB 03FC9138F807E0903907F001804AC7FCA8007FB61280B712C0A46C1580260007E0C7FCB3 A9003FB512FC4880A46C5C24397DB82F>I<903903F801FE903A1FFF07FF80017F13DF90 B712C05A5AD9FE0FEB0F803B07F803FC070048486C6CC7FCEBE00049137E001F147F497F A66D5B000F147E6D13FEEBF0016C6C485A3903FE0FF890B5FC485C5D485C019F90C8FCEB 83F80180C9FCA37FEA07E490B512F06C14FF4815C0488148813A3FC0001FF890C7EA01FC 007E6E7E007C157E00FC153E48153F82A46C5D007C153E007F15FE6C6C495A01E01307D8 1FFEEB7FF86CB65A6C5D000115806C92C7FC011F13F8010313C02A3E7DA72F>III107 D<387FFFF080B5FCA27EA2EA0001B3B3A8007FB6 12E0A2B712F0A26C15E0A224387BB72F>I<903901F801F83A7F8FFC0FFC3AFFDFFE1FFE 90B5487E92B51280A23A7FFE1FFE1F3B07FC0FFC0FC001F813F89039F007F00701E013E0 A301C013C0B3A33B7FFC3FFC3FFCD8FFFE01FE13FE027F137FA2023F133FD87FFC01FC13 FC2F2880A72F>IIII114 D<90381FFC0E48B5129F000714FF5A5A5A387FF007EB800000FEC77EA24880A37E007F14 1E01C090C7FCEA3FFC381FFFF06CEBFF80000314E0C614F8011F13FE9038007FFF020113 80EC007F0078EC1FC000FC140FED07E0A27EA27E6D130F6DEB1FC06D133F9039FC01FF80 90B6FC16005D00F814F8013F13E0D8700790C7FC232A7AA82F>I<130F497EAA007FB612 C0B712E0A46C15C026001F80C7FCB216F0ED01F8A5ECC003ED07F090380FE00F9138F81F E06DB512C0A26D14806DEBFE009038007FF8EC1FE025337EB12F>I<3A7FF001FFC0486C 487FA4007F7F0001EB0007B3A4150FA2151F153F6D137F6CB448B5128091B612C07FA26D 13E7010F01831380D903FEC8FC2A287EA62F>II< 3B7FFF801FFFE06E5AB515F0A26C16E04A7ED807C0C7EA3E00A36D147E0003157CA56C6C 5CEC0F80EC1FC0EC3FE0A36C6C486C5AEC7DF1A214FD15F914F9D978F85B1379137DA2EC F079157B013FEB7FC014E0153FA2ECC01F6D486C5A2C277FA62F>I<3B7FFF803FFF80B5 4913C014C0A214806C6E13803B01F00003E0007F12004B5A7F137C017E495A133EA2013F 49C7FC7FA290380F803EA214C001075BA214E001035BA2EB01F05D14F1EB00F95DA2147B EC7FC0143FA25D141FA292C8FCA3143EA35CA214FC000F5BEA1F81EA3FC1EBC3F0EB07E0 131FEBFFC06C5BA26C48C9FC6C5AEA03F02A3C7EA62F>121 D<003FB612F84815FCA416 F8007EC7EA0FF0ED1FE0ED3FC0ED7F80EDFF00003C495AC7485A4A5A4A5A4A5A4A5A4A5A 4AC7FC495A495A495A495A495A495A495A49C7123C4848147E485A485A485A485A485A48 B612FEB7FCA46C15FC27277DA62F>II< 127CA212FEB3B3B3AD127CA207476CBE2F>II E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fd cmsy10 10.95 2 /Fd 2 16 df3 D15 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe ecrm0900 9 81 /Fe 81 256 df<38038001390FF80380391FFE0700383FFFFE127838E00FF8384003F019 077AB126>3 D<003C1378007E13FC38FF01FEA2EB81FFA2EA7F80003D137B00011303A4 00031307EB0006A248130E0006130C000E131C000C1318001C13384813704813E0006013 C018177FB31A>17 D<003C1378007E13FC38FF01FEA2EB81FFA2EA7F80003D137B000113 03A400031307EB0006A248130E0006130C000E131C000C1318001C13384813704813E000 6013C018177F871A>I<91393FE00FE0903A01FFF83FF8903A07E01EF83C903A1F800FF0 7E903A3F001FE0FE017E133F4914C0485A1738484890381F8000ACB812C0A33B03F0001F 8000B3A7486C497EB50083B5FCA32F357FB42D>27 DII<017C1503D803FEED078026078780140F260F01C0141F26 1E00E0EC3F00003E01F8147E003C017CEB01FE007C90397F8007FC913933FFFEF8007890 38307FF900F89039380001F00218495A16075F4C5A161F4CC7FC163E5E023813FC007801 305B007C4A5AEC7003003C01605B003E9038E007C0001EEBC00FD80F015C270787801FC8 FC3903FE003FD8007C133E90C748131F03FCEBFF809239F801E1E0913A01F003C0700203 9038078030DBE00F1338DA07C0EB0018020F49131C0380140C91381F001E4A013E130E02 3E15065C14FC495A5C495A13075C4948150E011F021E130C91C7121F013E161C017E6E13 18017CED803849020713300001923803C07049913801E1E049913800FF806C48ED1F0037 3C7CB740>37 D<14C01301EB0380EB0F00130E5B133C5B5BA2485A485AA212075B120F90 C7FC5AA2121E123EA3123C127CA55AB0127CA5123C123EA3121E121FA27E7F12077F1203 A26C7E6C7EA213787F131C7F130FEB0380EB01C01300124A79B71E>40 D<12C07E1270123C121C7E120F6C7E6C7EA26C7E6C7EA27F1378137C133C133EA2131E13 1FA37F1480A5EB07C0B0EB0F80A514005BA3131E133EA2133C137C137813F85BA2485A48 5AA2485A48C7FC120E5A123C12705A5A124A7CB71E>I<123C127EB4FCA21380A2127F12 3D1201A412031300A25A1206120E120C121C5A5A126009177A8715>44 DI<123C127E12FFA4127E123C08087A8715>I<1518A215381530 A21570156015E015C0A214011580A2140315005C1406A2140E140CA2141C141814381430 A214701460A214E05CA213015C130391C7FCA25B1306A2130E130C131C1318A213381330 A213701360A213E05B12015BA2120390C8FCA25A1206120E120CA2121C1218A212381230 12701260A212E05AA21D4B7CB726>II<13075B5B137FEA07FFB5FC13BFEAF83F1200B3B3A2497E007FB51280A319 327AB126>IIII<000C14C0380FC00F90B5128015005C5C14F014C0D80C18C7 FC90C8FCA9EB0FC0EB7FF8EBF07C380FC03F9038001F80EC0FC0120E000CEB07E0A2C713 F01403A215F8A41218127E12FEA315F0140712F8006014E01270EC0FC06C131F003C1480 6CEB7F00380F80FE3807FFF8000113E038003F801D347CB126>I<14FE903807FF80011F 13E090383F00F0017C13703901F801F8EBF003EA03E01207EA0FC0EC01F04848C7FCA248 C8FCA35A127EEB07F0EB1FFC38FE381F9038700F809038E007C039FFC003E0018013F0EC 01F8130015FC1400A24814FEA5127EA4127F6C14FCA26C1301018013F8000F14F0EBC003 0007EB07E03903E00FC03901F81F806CB51200EB3FFCEB0FE01F347DB126>I<1230123C 003FB6FCA34814FEA215FC0070C7123800601430157015E04814C01401EC0380C7EA0700 1406140E5C141814385CA25CA2495A1303A3495AA2130FA3131F91C7FCA25BA55BA9131C 20347CB126>II<123C127E12FFA4127E123C1200B0123C127E12FFA4127E123C08207A9F15>58 D<123C127EB4FCA4127E123CC7FCB0123C127EB4FCA21380A2127F123D1201A412031300 A25A1206120E120C121C5A5A1260092F7A9F15>I<1706171E1778EE03E0EE0F80EE3C00 16F0ED03C0030FC7FC153CEC01F0EC07C0021EC8FC1478EB01E0EB0780011EC9FC13F8EA 03E0000FCAFC123C12F0A2123C120FEA03E0EA00F8131EEB0780EB01E0EB0078141EEC07 C0EC01F0EC003C150FED03C0ED00F0163CEE0F80EE03E0EE0078171E17062F2C7AA83C> I<15E0A34A7EA24A7EA34A7EA3EC0DFE140CA2EC187FA34A6C7EA202707FEC601FA202E0 7FECC00FA2D901807F1507A249486C7EA301066D7EA2010E80010FB5FCA249800118C77E A24981163FA2496E7EA3496E7EA20001821607487ED81FF04A7ED8FFFE49B512E0A33336 7DB53A>65 DIIIIIIII<017FB5FCA3 9038003FE0EC1FC0B3B1127EB4FCA4EC3F805A0060140000705B6C13FE6C485A380F03F0 3803FFC0C690C7FC20357DB227>IIIIIIIII<90381FE00390387FFC0748B5FC3907 F01FCF390F8003FF48C7FC003E80814880A200788000F880A46C80A27E92C7FC127F13C0 EA3FF013FF6C13F06C13FF6C14C06C14F0C680013F7F01037F9038003FFF140302001380 157F153FED1FC0150F12C0A21507A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B 39F1FC03F800E0B512E0011F138026C003FEC7FC22377CB42B>I<007FB712FEA3903980 07F001D87C00EC003E0078161E0070160EA20060160600E01607A3481603A6C71500B3AB 4A7E011FB512FCA330337DB237>IIII<267FFF FC90B512C0A3000101E090381FF80026007F80EB0FC0013F6E5A6E91C7FC6D6C130E010F 140C6E5B6D6C133801035C6E13606D6C13E06D6C485A5EDA7F83C8FCEC3FC715C6EC1FEC EC0FFC5D14076E7EA26E7E815C6F7E9138063FC0140E4A6C7E9138180FF0EC380702707F 91386003FCECC0010101804A6C7E49C77E4981010E6E7E010C6E7E131C496E7E01786E7E 13FCD807FEEC1FFEB56C90B512F8A335337EB23A>I<003FB612FCA39039F80007F813C0 90C7EA0FF0003EEC1FE0123C0038EC3FC00078EC7F801270EDFF004A5AA20060495AA24A 5A4A5AC7FC4A5A4A5AA24A5A4AC7FCA2495A495AA2495A495AA24948130C495AA2495A49 C7FCA24848141CA2485A485A1638485A4848147816F84848130148481307153FB7FCA326 337CB22F>90 D<007FB712FCB812FEA26C16FC2F047A703C>95 D97 DII<153FEC0FFFA3 EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E48487F8148C7FCA25A 127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC3900F81E3FEB3F FCD90FE0130026357DB32B>III<151F90391FC07F809039 FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80EB00074880A66C 5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9FCA3121EA2121F 380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F8048140FA56C141F 007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22337EA126>IIIIII<2703F01FE0 13FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7003F387FD803 FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A33C217EA041> I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE497FA25BA25BB3 486CEB7F80B538C7FFFCA326217EA02B>II<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE7F6C48EB1F80 4914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F6DEB3F801600 01FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325307EA02B>I< 903807F00390383FFC07EBFC0F3901F8038F3807E001000F14DF48486CB4FC497F123F90 C77E5AA25A5AA9127FA36C6C5B121F6D5B000F5B3907E003BF3903F0073F3800F81EEB3F F8EB0FE090C7FCAAED7F8091380FFFFCA326307DA029>I<3803E07C38FFE1FF9038E38F 809038E71FC0EA07EEEA03ECA29038FC0F8049C7FCA35BB2487EB512E0A31A217FA01E> II<1330A51370A313F0A21201 A212031207381FFFFEB5FCA23803F000AF1403A814073801F806A23800FC0EEB7E1CEB1F F8EB07E0182F7FAD1E>IIIII<3A7FFF807FF8A33A07F8001FC00003 EC0F800001EC070015066C6C5BA26D131C017E1318A26D5BA2EC8070011F1360ECC0E001 0F5BA2903807E180A214F3010390C7FC14FBEB01FEA26D5AA31478A21430A25CA214E05C A2495A1278D8FC03C8FCA21306130EEA701CEA7838EA1FF0EA0FC025307F9F29>I<003F B512F0A2EB000F003C14E00038EB1FC00030EB3F800070137F1500006013FE495A13035C C6485A495AA2495A495A49C7FC153013FE485A12035B48481370485A001F14604913E048 5A387F000348130F90B5FCA21C207E9F22>I<3801C0073907F01FC0000F80A400075C26 01C007C7FCCAFCA7EB7F803803FFF0380F80FC381C003E003F133F6D6C7E6E7EA26E7EEA 1F00C7FCA4EB01FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13004815C05AA314 0FA26C131F6C133B3A3F8071F180391FC1E1FF2607FFC013003900FE003C22327DB026> 228 D<9038E003803903F80FE0000780A400035C3900E0038090C9FCA7EB07F0EB3FFE90 38FC1F803901F007C03903C001E000078048486C7E48C7127CA248147E003E143E007E14 3FA300FE1580A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900 FC1F80D93FFEC7FCEB07F021327EB026>246 D<013813709038FE01FCA2EBFF03A2EBFE 01A2903838007090C9FCA8D803F0133F00FFEB0FFFA30007EB007F000380B35DA35D1201 6D4813800000903803BFFC90387E073FEB1FFED907F8130026327EB02B>252 D255 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff ecrm0600 6 10 /Ff 10 58 df<13FF000313C0380781E0380F00F0001E137848133CA248131EA400F813 1FAD0078131EA2007C133E003C133CA26C13786C13F0380781E03803FFC0C6130018227D A01E>48 D<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>II<13FF000313C0380F03E0381C00F014F8003E13FC147C A2001E13FC120CC712F8A2EB01F0EB03E0EB0FC03801FF00A2380003E0EB00F01478147C 143E143F1230127812FCA2143E48137E0060137C003813F8381E03F0380FFFC000011300 18227DA01E>I<14E01301A213031307A2130D131D13391331136113E113C1EA01811203 EA07011206120C121C12181230127012E0B6FCA2380001E0A6EB03F0EB3FFFA218227DA1 1E>I<00101330381E01F0381FFFE014C01480EBFE00EA1BF00018C7FCA513FE381BFF80 381F03C0381C01E0381800F014F8C71278A2147CA21230127812F8A214784813F8006013 F0387001E01238381E07803807FF00EA01F816227CA01E>II<1230123C003FB5FCA24813FE14FC3860001C1438 14704813E014C0EA0001EB0380EB07001306130E5BA25BA21378A35BA41201A76C5A1823 7CA11E>I<137F3803FFC0380781E0380E00704813380018131C1238A3123C003F133838 1FC078EBE0F0380FF9E03807FF80120114C0000713F0380F0FF8381C03FC383801FE3870 007E141F48130F1407A314060070130E0078130C6C1338001F13F03807FFC0C613001822 7DA01E>I<13FE3803FFC0380781E0380E0070481378003C133848133CA200F8131EA314 1FA40078133FA26C137F121C380F01DF3807FF9F3803FE1EC7FCA2143E143C001C133800 3E13781470003C13E0381801C0381C0780380FFE00EA03F818227DA01E>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fg ecrm0800 8 10 /Fg 10 58 df48 D<130C133C137CEA03FC12FFEAFC7C1200 B3B113FE387FFFFEA2172C7AAB23>III<140E A2141E143EA2147E14FEA2EB01BE1303143E1306130E130C131813381330136013E013C0 EA0180120313001206120E120C5A123812305A12E0B612FCA2C7EA3E00A9147F90381FFF FCA21E2D7EAC23>I<000CEB0180380FC01F90B512005C5C14F014C0D80C7EC7FC90C8FC A8EB1FC0EB7FF8380DE07C380F801F01001380000E130F000CEB07C0C713E0A2140315F0 A4127812FCA448EB07E012E0006014C00070130F6C14806CEB1F006C133E380780F83801 FFE038007F801C2D7DAB23>II<123012 3C003FB512F8A215F05A15E039700001C000601480140348EB0700140E140CC7121C5C14 3014705C495AA2495AA249C7FCA25B130E131EA2133EA3133C137CA413FCA913781D2E7C AC23>III E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fh cmr10 10.95 5 /Fh 5 62 df<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B 1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E12 3FA37EA27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01 C0EB00E014701430145A77C323>40 D<12C07E12707E7E121E7E6C7E7F12036C7E7F1200 7F1378137CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614 C0130FA31480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E 121C5A5A5A5A145A7BC323>I<1506150FB3A9007FB912E0BA12F0A26C18E0C8000FC9FC B3A915063C3C7BB447>43 D50 D<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12 F0A26C18E03C167BA147>61 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fi cmmi10 10.95 6 /Fi 6 85 df<17075F84171FA2173F177FA217FFA25E5EA24C6C7EA2EE0E3F161E161C16 38A21670A216E0ED01C084ED0380171FED07005D150E5DA25D157815705D844A5A170F4A 5A4AC7FC92B6FC5CA2021CC7120F143C14384A81A24A140713015C495AA249C8FC5B130E 131E4982137C13FED807FFED1FFEB500F00107B512FCA219F83E417DC044>65 D<49B712F818FF19E090260001FEC7EA3FF0F007F84B6E7E727E850203815D1A80A20207 167F4B15FFA3020F17004B5C611803021F5E4B4A5A180FF01FE0023F4B5A4B4A5ADD01FE C7FCEF07F8027FEC7FE092B6C8FC18E092C7EA07F84AEC01FE4A6E7E727E727E13014A82 181FA213034A82A301075F4A153FA261010F167F4A5E18FF4D90C7FC011F5E4A14034D5A 013FED1FF04D5A4AECFFC0017F020790C8FCB812FC17F094C9FC413E7DBD45>I<49B9FC A3D9000190C7120718004B157F193F191E14035DA314075D191CA2140F5D17074D133C02 1F020E13384B1500A2171E023F141C4B133C177C17FC027FEB03F892B5FCA39139FF8003 F0ED00011600A2495D5CA2160101035D5CA293C9FC13075CA3130F5CA3131F5CA2133FA2 5C497EB612F8A3403E7DBD3A>70 D<49B56C93B512C050148062D90001F18000704B90C7 FC03DF5F1A0E1A1D1403039FEE39FC1A711A739126078FE015E3030F5FF101C3F1038714 0F020E93380707F0A2F10E0F021E161C91261C07F05E1938F1701F143C023804E05BA295 3801C03F0278ED038091267003F85EF00700060E137F14F002E04B91C8FCA24E5B01015E 4A6C6C5D60943801C00113030280DA03805BA294380700030107150E91C700FE5D5F1907 495D010E4B5CA24D130F011E6E5A011C60705A013C171F017C92C7FC01FE027E5DD803FF 4D7EB500FC017C017FB512E0167804385E5A3E7CBD58>77 D<49B77E18F818FFD90001D9 00017F9438003FE04BEC0FF0727E727E14034B6E7EA30207825DA3020F4B5A5DA24E5A14 1F4B4A5A614E5A023F4B5A4B4A5A06FEC7FCEF03FC027FEC0FF04BEBFF8092B500FCC8FC 5F9139FF8001FE92C7EA7F80EF1FC084496F7E4A1407A28413035CA2170F13075C60171F 130F5CA3011F033F5B4AEE038018E0013F17071A004A021F5B496C160EB600E090380FF0 1E05075B716C5ACBEAFFE0F03F8041407DBD45>82 D<48B912FCA25A913A0003FE000F01 F84A1301D807E0EE00F8491307491778000F5D90C7FC001E140FA2001C4B1470123C0038 141FA200785D1270033F15F000F018E0485DC81600157FA25EA215FFA293C9FCA25CA25D A21403A25DA21407A25DA2140FA25DA2141FA25DA2143FA25DA2147FA214FF497F001FB6 12FCA25E3E3D7FBC35>84 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fj ecbx1440 14.4 47 /Fj 47 253 df45 DI<151E153E15FE1403140F147FEB07FF0003 B5FCB6FCA3EBF87FEAFC00C7FCB3B3B3A6007FB712FCA52E4E76CD42>49 DI<913807FFC0027F13FC0103B67E010F15E090 261FF80313F890267FC0007F01FEC7EA3FFE48488148486E138013FE486C6C6D13C08048 17E080A66C5B18C06C5B6C90C75AD80038168090C8FC4C1300A24C5A5F4C5A4B5B4B13C0 030F5BDB7FFEC7FC91387FFFF816C016FCEEFF80DA000313E09238007FF8EE3FFE707E70 138018C07013E018F07013F8A218FC82A218FEA3EA03C0EA0FF0EA3FFC487EA2B5FCA218 FCA25E18F8A26C4816F0495C4916E0D83FE04A13C06C485CD80FF04A1380D807FE91387F FE003B03FFE003FFFC6C90B65A6C6C15E0010F92C7FC010114FCD9001F1380374F7BCD42 >I<17FC1601A216031607160FA2161F163F167FA216FF5D5DA25D5D5D167F153E157E15 FC15F8EC01F01403EC07E015C0EC0F80141FEC3F00143E5C14FC495A5C495A1307495A5C 49C7FC5B137E137C5B1201485A5B485A120F485A90C8FC123E127E5ABA1280A5C901FCC7 FCAF021FB71280A5394F7CCE42>I<486C150601F0153E01FEEC01FED9FFF0133F91B65A 5F5F5F5F5F94C7FC16FC5E16E093C8FC15FC01F0138091CAFCAC913807FF80023F13F891 B512FE01F36E7E9026FFFC0113E09139E0007FF891C76C7E496E7E01F86E7E5B70138049 16C0C9FC18E08218F0A418F8A31203EA0FE0EA3FF8487EA212FF7FA218F0A25B5E6C4816 E05B01C016C06CC85A18806C6C4A13007FD80FF04A5A6C6CECFFFCD803FE4913F02701FF E00F5B6C6CB612806D92C7FC010F14F8010114C09026003FFCC8FC354F7ACD42>II66 D<932603FFF01407047F01FF140F0307B600E0131F033F03F8133F92B700FE137F020391 26C003FF13FF020F01F8C7EA3FC1023F01C0EC0FE391B5C80003B5FC4901FC8149498149 01E082011F498249498292CA7E4948834948835A4A83485B4885A24849187FA2485B1B3F A2485B1B1FA25AA21B0091CDFCA2B5FCAE7EA280A36C1A1FA36C7FA21B3F6C7F1B3E6C7F 1B7E6C6D187C6C1AFC6E18F86C19016D6CEF03F06D7E6FEE07E06D6DEE0FC001076DEE1F 806D01F8EE3F006D6D16FE6D01FF4B5A023F01C0EC07F8020F01FCEC3FF00203903AFFC0 01FFC0020091B6C7FC033F15FC030715F0DB007F1480040301F0C8FC505479D25F>II70 D<932603FFF01407047F01FF5C0307B600E05B033F03F85B 92B700FE5B02039126C003FF5B020F01F8C7EA3FC1023F01C0EC0FE391B5C80003B5FC49 01FC814949814901E082011F498249498292CA7E4948834948835A4A83485B4885A24849 84A2485B87A2485B87A25AA298C8FC91CFFCA2B5FCAE7E067FB7128080A37E95C76C90C7 FC807EA36C7FA26C7FA26C7F7E806C7F137F6D7E816D6D93B5FC01077F6D01F85D6D7F6D 01FF5D023F01E0EC0FEF020F01FCEC3FE30203903AFFE001FF81020091B6C6FC033F03FC 133F030703F0130FDB007F02801303040301F8CAFC595479D267>III 75 DII80 D82 DI<00 3FBB12FCA59126C0007FEB000301FCC7ED003FD87FF0F00FFE49180749180349180190C8 1600A2007E1A7EA3007C1A3EA500FC1A3F481A1FA6C91700B3B3AC49B912C0A550517BD0 5B>I86 DI97 DI<913803FFE0023F13FE91B67E010315E0010F9038003FF8D93FFCEB07FC4948 497E4948131F4849497E485B485BA24890C7FC5A5B003F6F5A705A705A007F92C8FC5BA3 12FFAD127F7FA3123F7F6CEE0F80A26C6D141F18006C6D5C6C6D143E6C6D147E6C6D5C6D 6C495A6DB4EB07F0010F9038C01FE06D90B5128001014AC7FCD9003F13F8020313803138 7CB63A>I<943803FF80040FB5FCA5EE003F170FB3A4913803FF80023F13F849B512FE01 07ECFF8F011F9038C03FEF90273FFE0007B5FCD97FF8130149487F484980484980484980 488291C8FC5A5B123FA2127F5BA312FFAD127FA37F123FA3121F7F6C5E6C6D5C5F6C6D91 B5FC6C6D5B6C6D4914E0D97FFCD90FEFEBFF80D91FFFEB7F8F010790B5120F010114FC6D 6C13E00207010049C7FC41547CD249>I<913807FF80027F13F849B512FE01076E7E011F 010313E0903A3FFC007FF0D97FF06D7E49486D7E4849130F48496D7E48824890C77E1880 485A82003F17C0A3485A18E082A212FFA290B8FCA401FCCAFCA6127FA37F123FA2EF03E0 6C7E17076C17C06C6D140F18806C6D141F6C6DEC3F006C6D147ED97FFC495AD91FFFEB07 F86D9038E03FF0010390B512C001005D023F01FCC7FC020113E033387CB63C>IIII<133FEBFFC0487F487FA2 487FA66C5BA26C5B6C5B013FC7FC90C8FCAEEB1FF8B5FCA512017EB3B3A6B612F0A51C54 7CD324>I107 DIII<913801FFC0023F13FE91B67E010315E0010F018013F8903A3FFC001F FED97FF0EB07FF49486D7F48496D7F48496D7F91C8127F4883488349153F001F83A2003F 8349151FA2007F83A400FF1880AC007F1800A3003F5F6D153FA2001F5FA26C6C4B5AA26C 6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB1FFE6DB46CB45A010790B512F0 010115C0D9003F49C8FC020313E039387CB642>II<90393FF001FCB590380FFF804B13E0037F13F0 9238FE1FF89138F1F83F00019138F07FFC6CEBF3E015C0ECF780A2ECFF00EE3FF84AEB1F F0EE0FE093C7FC5CA45CB3ABB612FEA52E367DB535>114 D<903903FFC00E011FEBFC1E 90B6127E000315FE3907FE003FD80FF0130F4848130348481301491300127F90C8127EA2 48153EA27FA27F01F091C7FC13FCEBFF806C13FEECFFF06C14FE6F7E6C15E06C816C15FC 6C81C681133F010F15801301D9000F14C0EC003F030713E0150100F880167F6C153FA216 1F7EA217C07E6D143F17807F6DEC7F0001F85C6DEB03FE9039FF801FFC486CB512F0D8F8 1F14C0D8F00791C7FC39E0007FF02B387CB634>I<147CA614FCA41301A31303A21307A2 130F131F133F137F13FF1203000F90B512FEB7FCA426007FFCC8FCB3A9EE0F80ABEE1F00 6D7EA2011F143E806D6D5A6DEBC1F86DEBFFF001005C023F1380DA03FEC7FC294D7ECB33 >III121 D228 D<027EEC1F80DAFF80EB7FC0496D497E496D48 7F496D487FA24982A46D5EA26D496C5B6D496C5B6D496D5A027EC7EA1F8091CCFCACD93F F8913801FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA25F137F5F6D6C14F7DC01 E713F06D6CD907C7EBFFC0903A0FFF801F876D90B51207010114FC6D6C13F0020701C091 C7FC42537CD149>252 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fk ecbx2074 20.74 18 /Fk 18 117 df49 D<92381FFF804AB512FC020FECFF80023F15F091B712FC010316FF010FD9001F14C0D91F F8010380D93FE0010014F8D97F80023F7F4848C86C7F01FC6F7F48486F148048486F14C0 4848817114E0484818F04982003F7113F813F8D87FFE7013FC6D7E6E17FEB56C81A2801A FFA284A56C5BA26C5B6C495DD807FEC9FCD801F818FECBFCA2601AFCA21AF8601AF0601A E095B5FC1AC04D14801A005F614D5B4D5B614D5B4D5B614D90C7FC4D5A4C13F8604C5B4C 5B4C5B4C48C8FC4C5A4C5A5F4C5A4B13804B90C9FC4B5A4B5A4B5A4B48153F4B5A4B5A93 C9FC4A48167E4A5A4A5A4A5A4A5A4A5A4A4816FE4ACAFC495AD903F817FC4A1601495A49 48160F49B9FC5B5B90BAFC5A4819F85AA25A5A5A5ABBFCA21AF0A4487177F05B>I<9238 03FFF8037FEBFFC00203B612FC020F15FF027F16C09127FFFC007F13F0010301C0010F13 FC4948C700037FD91FF86E7FD93FE06E14C049488191C98001FE707F2601FFC08302F081 486D838080486D8384A38192C8FCA46C5F5C6C495F6C5BEB3FE00107C95C90CA5AA26260 6295B55AA24D5C97C7FC4D5B4D5B614D5B4D13C0057F5B4D48C8FC04035B4BB512F04AB6 12804DC9FC17F8EFFFE018FC91C86CB47E050F13E0050313F87113FE716C7E1AC0727F72 7F727F86727F86A2721480A21BC0A21BE084A31BF0A3EA03FE380FFF80487F487F487FA2 B57EA31BE0A260A21BC05C6C1A804A5D4A18006C5B49C9485BEA1FF801E04C5B6C6C4C5B D807FC606C6C4C5B2601FFC092B55A6C01F002035CD93FFF020F49C7FC6D01F8017F5B01 0790B712F0010117C06D6C93C8FC020F15F8020015C0030701F8C9FC4C7379F05B>I<19 7F61A2606060A26060A2606095B5FCA25F5FA25F5F5FA25F5FA217FD1601EE03F917F116 07EE0FE1EE1FC11781163FEE7F01167E16FEED01FCED03F816F01507ED0FE016C0151FED 3F80ED7F00157E15FE4A5A5D14034A5A4A5A5D141F4A5A92C7FC147E14FE495A5C130349 5A5C495A131F495A91C8FC5B13FE5B485A1203485A5B120F485A5B48C9FC5A12FEBDFCA6 CA000391C7FCB3A4030FB9FCA650727BF15B>I<0160EF018001781707017F173F02E0ED 01FF02FE151FDAFFF80107B5120092B75AA261616119C06196C7FC6018F818E018804DC8 FC17F817C0D97E3F49C9FC0200138092CBFCB3923803FFE0033F13FF92B612E0020315F8 020F15FE913B3FFE007FFF80DA7FE0011F7FDAFF80010713F0D97FFCC76C7F4A6E7F02E0 6E7F4A824A6F138091C914C084017E18E0013C8290CA14F0A21AF8A21AFC84A21AFEA51A FFA5EA03F8EA0FFE487E487F487FA2B57EA31AFEA45C4E13FC6C5B91C9FC01FC18F813F0 D83F804C13F0A26C6C18E04E13C06C7E6D93B512806C6C18006C6C4B5B6D5D6C6C6C4A5B 6C6D4A13F0D97FF0023F5BD91FFC91B55A90270FFFC00F91C7FC6D90B612FC010116F06D 6C15C0021F92C8FC020314F09126003FFEC9FC487377F05B>III65 D75 D<92381FFFC00203B512FE023FECFFC091B712F0010316FC 010FD9E00313FFD91FFCC76C13C0D93FE0021F7FD97F806E7FD9FFF06E7F6E6E7F486D6E 7F6E824870806E8186A2727FA46C496F7FA26C5BEB3FF0EB0FC090CAFCA960040FB6FC03 03B7FC157F0203B5EAFC1F021F140091B512F0010391C7FC010F13FC4913F0017F13C090 B55A4891C8FC485B485B485B485B5A5C5A4AF007E0A2B5FC5CA260A360A26E92B5FC7E6E EC01EF17036C6DDA07C79038F80FC06C6DEC0F876C6DDA1F07EBFC1F6C6DDA7E039038FF 7F806C6D6C48486CECFF006C9138E00FF86C6C90B5D8E0005C011F4B013F5B010792C76C 13F0010002F802075B020701C0020090C7FC53507ACE5B>97 D<923801FFFC031FEBFFC0 92B612F8020715FE021F6F7E027FD9E03F13E09127FFFE00077F010301F801017F49496D 7F4901C0EC3FFE4949814990C86C138049486F13C013FF4A6F13E05A48496F13F0A24849 17F848831AFCA2484981A24819FEA3485B197F1AFFA3B5FCA491BAFCA402C0CBFCA77EA4 807EA37E80A26C193FA26C6D177F1A7E6C7F6C19FE6EEE01FC6C7F6DEF03F86D6DED07F0 6D6DED0FE06D6DED1FC06D01F8ED3F806D6DEDFF006D01FFEC03FE6D6C01E0EB0FFC6E01 FEEBFFF8020F90B612E002031680DA007F4AC7FC030F14F0DB007F90C8FC48507BCE53> 101 D103 D<903803FFF8B6FCA6C67E131F7FB3AFF07FF80503B512 C0051F14F0057F14FC94B7FC932603FE0180932707F0007F7FDC0FC06D7F4CC77E043E82 4C6E7F5E4C80DBF9E082A2EDFBC0DBFF80808793C8FCA25DA35DA45DB3B3A9B8D8803FB7 12E0A65B787AF766>II<903801FFF8B6FCA6C67E131F7FB3B3B3B3B3AFB81280A629787BF732> 108 D<902603FFF0EC7FF8B60203B512C0051F14F0057F14FC94B7FC932603FE01809327 07F0007F7FC66CDA0FC06D7F011F4AC77E6D023E824C6E7F5E4C80DBF1E082A2EDF3C0DB F780808793C8FC15FF5DA35DA45DB3B3A9B8D8803FB712E0A65B4E7ACD66>110 D<902603FFF8903801FFF0B6021F13FF94B612E0040315FC040F15FF93263FF80114C093 27FFC0003F7FC66CD9F9FEC76C7F011FD9FBF8020713FC6DD9FFF06E7F4C6E7F04806E80 93C96C7FA24B707F4B707F5D747FA2747FA2888688A286A21D80A4861DC0AF501480A51D 0062A26462A264626462646F4C5B816F4C5B97B55A704A91C7FC704A5B04F04A5B704A5B DBF9FC023F5BDBF8FF91B512C093267FF00791C8FC041FB612FC040715F0040115C0DC00 3F49C9FC050713C094CCFCB3A8B87EA65A6F7BCD66>112 D<15FCA71401A51403A31407 A3140FA2141FA2143F147F14FFA25B5B5B131F5B90B5FC000F91B612FCB9FCA5D8000701 FCC9FCB3B3A4F01F80AF183F6D170081A2187E6D7F18FE6D6E5B6E4A5AEEC0036E6D485A 6E9038F80FE0020790B55A6E5D02004AC7FC031F13F8030113C0396E7DEC47>116 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fl ecsl1095 10.95 36 /Fl 36 224 df<007FB5FCB512FEA418057C951E>45 D<121E127FEAFF80A413005A123C 0909778819>I<153015F014011407143F903803FFE0137FEBFFCFEBFC0F1300141F15C0 A5143F1580A5147F1500A55C5CA513015CA513035CA513075CA5130F5CA3131F497EB612 F8A31D3D78BC2D>49 DII<160C16 1C163C167C16FCED01F8A215031507150F151FED3FF01537156715C7EC01871403913807 0FE01406140C1418143014709138E01FC014C0EB0180EB03001306130E49EB3F8013185B 5B5B12014848EB7F0090C7FC12065A5A12384814FE1260B8FCA3C73801FE00A25DA41403 A25DA314074A7E0107B512F8A3283E7BBD2D>I<01061403D907C0131F9138F801FE91B5 12FC16F84914F016C01680EDFC0090380C7FF091C8FC131C1318A513381330A59038701F E0903860FFF8903863E03E90386F001F017CEB0F80017814C049EB07E04914F049130390 C7FC16F8A61507A3121FEA7F80A2150F00FF15F0A290C713E048141F00E015C0153F0060 15800070EC7F00A26C14FE003C495A6C495A6CEB0FE03907E03FC06CB5C7FCC613FCEB1F E0283F7ABC2D>II<12035A13C090B712805AA217005E485D5E001CC8 1270485D00305D150100704A5A00604AC7FC150E5D485CC8123015705D4A5A4A5A4AC8FC 140EA25C5C1478147014F0495AA213035C1307495AA2131FA249C9FCA25B137E13FEA312 015BA21203A3485AA5120F5BA26C5A6C5A294074BD2D>I<17C04C7EA21603A216078316 0FA2161FA24C7EA21667A216C7A292380187FC1683ED0303A2150683ED0C01A21518A203 307F1570ED600015E05D14014B804AC7127FA21406A24A81173F5C021FB6FC5CA20260C7 EA3FE0171F5CA2495A8449C8120FA21306130E010C82131C011815071338137801F88248 7ED807FEED1FFEB500C00103B512FC4C14F8A23E417DC044>65 D<011FB7FC4916F018FC 903B007FE00003FE023F913800FF80F07FC04B143FF01FE019F0180FA2027F16F85DA502 FF16F092C8121F19E0183F19C0F07F8049EEFF004A4A5A4D5AEF0FF0EF3FE04CB4C7FC49 B612F8EFFF8002FCC7EA1FE0EF07F0EF03FC717E13074A6E7E1980187FA219C0130F5CA5 011FEEFF805C19005F4D5AA2013F4B5A4A4A5A4D5AEF7FE0017FEDFF8001FF020790C7FC 007F90B612FC17F0B8C8FC3D3E7DBD40>I<4BB46C1370031F13F0037F01FC13E0913A03 FF803E01913A0FF8000F83DA1FE0EB03C7DA7F80EB01EF4AC8FCD903FCED7FC04948153F 495A4948151F495A4948150F01FF178091C91207485A12035B485A000F180084485AA248 485EA295C7FC485AA412FF5BA790CCFCA21818183818307FA2007F1770186018E0003F5F 6D1501606C6C15034DC7FC6C6C150E12076C6C5D6D15786C6C5D6C6C4A5AD93FC0EB0780 6D6C011FC8FCD907FE13FC0101B512F06D6C13C0DA07FEC9FC3C4276BF41>I<011FB7FC 4916E018F8903B007FE00007FE023FEC00FFF03FC04B6E7E180F727E727E85027F15014B 6E7EA28585A202FF178092C9FCA54918C05CA41A8013034A16FFA41A0013074A5DA261A2 4E5A130F4A4B5AA261180F61011F4C5A4A153F614EC7FC18FE4D5A013F4B5A4A4A5AEF1F E0EF7F80017F4A48C8FC01FFEC0FFC007F90B612F01780B700FCC9FC423E7DBD45>I<01 1FB812F05BA29026007FE0C7127F023F150F18034B14011800A31970147F4B1560A502FF 146092C7FCA3190017E0495D4A1301A21607161F91B6FC495DA29138FC003F160F160716 03010792C8FC5CA2196019E019C0010F14064A90C712011980A218031900011F5E5C180E A2181E181C013F163C4A157C4D5A1703017F150F01FFEDFFF0007F90B7FCA2B95A3C3E7D BD3D>I<011FB812E05BA29026007FE0C7FC023F151F18074B14031801A31800147F4B15 C0A514FF92C71260A3190017E0495D5C160116031607161F49B65AA39138FC003F160F16 07010792C8FC4A7FA5010F14065C93C9FCA4131F5CA5133F5CA3137F497E007FEBFFF0A2 B6FC3B3E7DBD3B>I<4BB46C1370031F13F0037F01FC13E0913A03FF803E01913A0FF800 0F83DA1FE0EB03C7DA7F80EB01EF4AC8FCD903FCED7FC04948153F495A4948151F495A49 48150F01FF178091C91207485A12035B485A000F180084485AA248485EA295C7FC485AA4 12FF5BA6043FB512E090C8FCA29339001FFC00715AA26D5EA2127FA2171F6C7E60A26C7E A26C6C153F12076C6C4B5A7F6C6C15FF6C6CEC01CFD93FC0EB0787D91FF0EB1F07D907FE 9038FC03800101B5EAF0016D6C01C0C8FCDA07FEC9FC3C4276BF47>I<013FB5D8F007B5 12FEA39026007FF0C7380FFE006E486E5AA24B5DA4180F147F4B5DA4181F14FF92C85BA4 183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FCA45F130F4A5DA41703131F 4A5DA41707133F4A5DA3017F150F496C4A7E007F9026FFC00FB512F8B65BA2473E7DBD44 >I<013FB512F0A39039007FF0006E5AA25DA5147F5DA514FF92C7FCA55B5CA513035CA5 13075CA5130F5CA5131F5CA5133F5CA3137F497EB612E05DA2243E7DBD21>I<011FB500 F0903803FFFE5B609026007FF0C7000113E06E486E130019FC4B15F0614E5A0607C7FC18 0E027F5D4B5C60EF01C04D5A4DC8FC02FF140E92C75A17705F4C5A4C5A49020FC9FC4A13 1E163F5E4C7E15030103496C7EECFC0E4B6C7E15389238E01FF0ECFDC049B4486C7E1500 4A6D7E14F8707EA2010F6E7E5C707FA2717EA2011F6F7E5C717EA2717EA2013F6F7E5C84 1703017F4B7E496C4A13C0007FD9FFC090B512FE61B6FC473E7DBD46>75 D<011FB512FC5BA29026007FF8C8FCEC3FE0A25DA5147F5DA514FF92C9FCA55B5CA51303 5CA513075CA21830A21860130F5CA218C0A3011F15014A15801703A21707EF0F00013F5D 4A5C5F17FE017F140301FF143F007F90B6FC5FB8FC343E7DBD38>I<90263FFFE0933807 FFFC6F5EA2D9007F94381BFC00023FEF1FF8DA3BF816370233601A67A2DA31FC16C7F101 8F147102619338030FE0A2DA60FE1506A2F10C1F14E0DAC07F03185B1930A219601A3F01 016D6C14C0028060F00180F003006F7E0606137F130302004B91C7FC6F7E60A24E5B495E 01066D6C5D60A24D5ADB03F81401010EED0300010C03065CA26F6C5AA24D1303131C0118 4B5CED00FE5F5F19070138EC7F80013060013892C7FC137801FC027E140FD807FF023C4A 7E007F01F0030FB512F0B502385B1618563E7DBD53>I<90263FFFF091381FFFFEA281D9 003F030013C06E6CED3F00023F163CDA33FE151C1918EC31FFA202306D14381470912660 7FC01430A26F7EA26F6C147014E04A6C6C1460A26F7E15037014E00101130102806D5C6F 7FA2707E18010103EC3FE091C75DEE1FF0A2EE0FF8180349EC07FC010694C7FCEE03FEA2 EE01FF60010E6E1387010C1686EF7FC6A2EF3FE618EE011CED1FFE01185E170FA2170717 03133801306F5A13380178150013FCD807FF1678007F13F0B51630A2473E7DBD44>II<011FB612FE49EDFFC018F0903B007FE0000FFC023F EC03FEEF00FF4BEC7F80F03FC0A2F01FE0A2147F5D19F0A402FFED3FE092C8FCA219C018 7F19805B4AEDFF004D5A60EF07F84D5A0103ED3FC04A49B4C7FC91B612FC17E002FCCAFC A213075CA5130F5CA5131F5CA5133F5CA3137F497E007FEBFFC0A2B6FC3C3E7DBD3D>I< 013FB612F017FF18E0903B007FE0003FF8023FEC07FCEF01FE4BEB007F1980F03FC0A2F0 1FE0147F4B15F0A502FFED3FE092C8FCA219C0F07F80A249EEFF004A4A5A4D5AEF07F0EF 1FE0EF7F800103DA03FEC7FC91B612F017C09139FC0007F0EE01FC70B4FC01076F7E4A14 3F84717EA3130F5CA5011F153F5CA5013F17035CA21907017F1706496C021F130E007FD9 FFC0150CB691380FF01C943803F878CBEAFFE0F03F8040407DBD43>82 D<03FF1307020713E0021FEBF80E91397F00FE1ED901FCEB1F3ED903F0EB07BE4948EB03 FE49481301494814FC91C8FC49157C133E137E173C491538A66D1530A26D1500808080EB 7FFCECFFC06D13FCEDFF806D14E06D14F80103806D80D9003F7F1403DA007F1380150715 016F13C0167F163FA2161F1218A3160F161F00381680A31700003C5D163E007C157E007E 157C007F15FC6D495A6D495AD87DE0495AD8F8F8EB1FC0D8F07F017FC7FC39E01FFFFC01 0713F048C613C030427BBF32>I<0007B912E0A33C0FFC001FF0003F01E0160F01801603 90C7491301121E001C1700A212180038143F00304B14C0A35AA2157F485DA3C81600A215 FF93C9FCA55C5DA514035DA514075DA5140F5DA5141F5DA3143FEC7FF80003B612FE5EA2 3B3E76BD41>IIII< 010FB500F090387FFFF8495CA2D9003F90C7001F1300DA1FFCEC07F8020F16E002071680 96C7FC6E6C1406606E6C5C18386E6D5B606F6C5B4D5A6F6C48C8FC170692381FF00E5F92 380FF8185F6F6C5A5FED03FF5F6F90C9FCA26F7FA2707EA24C7E5DEE9FF0ED031F03067F ED0C0F031C7FED380703707FED600303C07F4A487E0203814AC7FC140E020C6E7E5C4A6E 7E5C02E06E7E495A49486E7E49C8FC496F7E4982D97F80140F2603FFC091383FFF80007F 01F849B512FEB55AA2453E7EBD44>II<010FB712FCA3923980000FF8D91FF8C7EA1FF014E04AEC 3FE091C8EA7FC0011EEDFF80494A1300A201384A5A4C5A494A5AA201604A5A4C5A4C5A49 4A5AA24B90C7FC90C7485A4B5AA24B5A4B5A4B5A4B5AA24B5A4A90C8FC4A5A5D14074A5A 4A5A4A5AA24A48EB01804A5A4990C7EA0300495AA2495A49485C49481406A24948140E49 5A495A4890C85A173C485A4848157C484815FC494A5A001F15074848141F4848EB01FFB8 FC5FA2363E7BBD37>I<0470133CDB01FC13FE030380705A150716FC03035CEEF800DB00 E0137893C9FCA417C04C7EA21603A2160783160FA2161FA24C7EA21667A216C7A2923801 87FC1683ED0303A2150683ED0C01A21518A203307F1570ED600015E05D14014B804AC712 7FA21406A24A81173F5C021FB6FC5CA20260C7EA3FE0171F5CA2495A8449C8120FA21306 130E010C82131C011815071338137801F882487ED807FEED1FFEB500C00103B512FC4C14 F8A23E4E7DCD44>196 D220 D<03FF010792393FC001C0020701E0923801 FFF8021FD9F80E02079038FE038091277F00FE1E91391FC03F87D901FCD91F3E91397F00 07CFD903F0D907BE02FCEB01EF4948D903FE4948EB00FF494801014A48147F4A4A4A1500 49C84A488049037C010F81013E60017E171F053C8349033849C8120EA66D03306E140CA2 6D92C76D91C7FC6E836E836E83D97FFE70B47EDAFFC017F06D01FC6F13FFDBFFC017F06D 02F06E14FC6D6E6E8001036E02008001006E033F80023F6D030F8002036E020080DA003F 170F03036D03007F0300183F706C707E043F170F041F1707A2040F170300181706A30407 1701040F17030038DCC00E5EA305805F003C031F010F150705005F007C4B49150F007E03 7E6E4A5A007F037C6E92C7FC6D02FC6E5C6D49486E147ED87DE0494802785CD8F8F8D90F C0D93E3EEB03F028F07F803F80903A3C1FE00FE027E01FFFFEC7D83807B51280010701F8 030149C8FC27C0007FC0913930001FF062427BBF64>223 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fm ecbx2488 24.88 31 /Fm 31 256 df[148 145 121 272 163 65 D[134 142 121 269 154 I[<97263FFFE017E0071FB616010603B700F01503063F04 FC15074DB96C140F050F06E0141F053F18F84CB7D8000101FE143F040703C09026000FFF 147F041F02FCC8000101C013FF047F02C06F6C6C5A93B6CA381FF803030302F8943807FC 074B02E0EF03FE031F0280943800FF0F4B91CCEA7F9F4B01FC73B5FC4AB548854A4A1907 4A02C0854A4A854A91CDFC4A49864A498791B54887498A5E494A87494A875B4C874991CF FC8C495B498A5D90B51E7FA2485C213F485C211FA2485CA248200FA25D5AA22107A2485C A29EC7FCA25AA492D3FCA3B6FCB3A27EA381A47EA46C80F907E0A37E81A27E210F6C6E1E C0A36C80211F6C6E1E80A26D1F3F6F1E007F6D6D65701C7E6D1FFE70646D1E016D6E515A 6D8070515A6D1E0F6E6D646E6D515A6E6D515A6E6E1A7F6E6E50C7FC6E02F04F5A6E6E4F 5A6E6C6D4F5A6F01FFF11FF06F02C04E5A03076EF0FFC06F02F84D90C8FC030002FFEF07 FE7002E0EE1FFC041F02FCEEFFF00407DAFFC002075B040103FF91B51280DC003F92B648 C9FC050F18F8050118E0DD003F94CAFC060316F8DE001F1580DF003F01F0CBFC>131 146 116 271 156 I[146 142 121 269 166 I[129 141 122 268 142 I[154 142 121 269 169 72 D[67 142 122 269 79 I[114 142 122 269 130 76 D[188 142 120 269 205 I[ 151 144 121 269 160 82 D[<0007BF12E0A61FC005E0C9FC04F8CA158004804C150003 FCCAFC03F04D5C4802C04D5C92CBFC4A4E5C5C4A4E5C02E04E5CA24A4E5C4A95B65A91CC FC5092C7FC5B494E5C505C5B505C505C5B505C5B505C97B65AA248484D92C8FC61644F5C A24F5C494D5CA24F5C616496B65ACCFC4E92C9FC4E5CA24E5C60634E5CA24E5C4E5CA295 B65AA24D92CAFC4D5CA24D5C4D5CA24D5CA24D5C4D5CA294B65A4C92CBFCA24C5CA24C5C 4C5CA24C5C4C5CA24C5CA293B65A4B92CCFCF603F04B5C5D604B5CA24B5C4B4A1707A24B 4A18E092B6FC604A92CBFCA24A5C4A5C1E0F4A5C5C5F4A4A181FA24A5C91B65A1E3F4992 CCFCA2494AF17FC0495C1EFF495C494A6065495C65494A6090B64860654892CC5A484A96 B5FC64484A180764484A183F484A4DB6FC1B0F484A057F158048073FB7FC92BDFCC0FCA6 >108 142 116 269 132 90 D<93387FFF80030FB512FC92B712C0020316F8020F16FE02 3FD980076D7EDAFFF8C780490180023F13F0D907FEC86C7FD90FF86F13FE49486F7F02C0 6F80D93FF86F80D97FFE816E6C8390B56C6F7FA26F6F7F5A6F838587A385876C5CA26D5B A26D5BD90FFEC9FCEB03F890CBFCA90603B6FC051FB7FC040FB8FC93B9FC030FECFC0F03 7F14000203B512E0021F91C7FC027F13F849B512E0010714804949C8FC013F5B495B90B5 5A485C485C485C4891C9FCA2485BA2485BF507E0485BA3B5FC5C61A461193B197B806C18 F3806CDD01E3EC800F6EDB03C116C06C6D15076CDD0F80ECC01F6F4A489138E03F806C02 E0023E6D9038F07F0000016E02FC92B5FC6C02FCD903F86D5C013F9027FF803FF06D5C01 0F91B500C06D5C010393C700035CD9007F02FC6E14C0020F02F06E6C90C7FCDA003F90C9 EA0FF8635F79DD6C>97 D[106 144 122 270 120 I<933801FFFC043FEBFFE00303B612FE031F6F7E03 7F16E04AB5D8C00313F8020701FCC7EA3FFE4A01F0EC03FF023F01C0020013C04A49ED3F E049B5C96C7E494916074949EE3FF84949EEFFFC49491503494D7F5D49495D90B5844B5D 5A4891C9FCA25A5C5A735B5A4A705BA248725B070013E0F23F8097C8FC5A5CA5B5FCB07E A380A37EA36C7FA37E6EF00FC07E1B1F6C6E1880A26C6E173F1C006C6E5F6D197E6F17FE 6D6D4C5A6D6D4C5A7F6D6D4C5A6D6D4C5A6D02C04B5A6D6EED7F80023F01F84BC7FC6E6D EC03FC0207D9FF80EB0FF8020102F8EBFFE06E6C90B65A031F93C8FC030315F8DB003F14 C0040101F8C9FC525F79DD60>I<933803FFF8047FEBFFC00307B612FC033F15FF92B812 C00203DA807F13F04A9026FC000F13FC021F01E001037F4A4901007F91B5C86C7F49496F 7F49496F7F49496F7F49496F7F49498349834949838590B54883488492CA14805A7413C0 485BA2481BE04A835AA21CF05AA2865C5A1CF8A4B5FCA391BBFCA402F8CDFCAA7EA4807E A37EA2807EA2F301F86C7F1B036C1BF06C801B076C6E18E06D190F6FEF1FC06D1A806D6D 173F6D6DEF7F006D6D17FE6D6D4C5A6D6D4C5A6D6E4B5A6E01E0ED1FE0021F01F8ED7FC0 6E01FE4A485A0203D9FFC0D907FEC7FC020002FCEBFFFC033F90B612F0030F16C003014B C8FCDB001F14F0040091C9FC555F7ADD62>101 D[<943801FFF0057F13FE0407B67E043F 8193B712F003039138007FF8030F01F8804B01E0497E037F495A92B5C6487F4A495B5C4A 494914804A5B4A5BA24A5BA25C5E91B56E1400A2725B4C6D5B499338007FF0F11FC096C8 FCB3A8BAFCA7D8000102C0CAFCB3B3B3B3A6007FB812F0A7>73 144 122 271 66 II[107 143 121 270 120 I[46 144 121 271 60 I[47 143 121 270 60 108 DII112 D<03FFEC1FF890B691B5FCB7010314E0050F804D14FC94393FF0 0FFE94397F003FFF05FE491380DC01F890B5FCD8003F4A484814C0010F15E06D4A484814 E06D1580160F17005E161E5EA27214C05E72148004706E130004F06E5AF10FF84C91C8FC A55EA65EB3B3AEB912E0A74B5D7ADC57>114 D<92263FFF80EB0380020FB500FC130702 7F02FF131F49B7EAE03F0107EEF07F011F903AC0007FFCFFD97FFCC7000FB5FCD9FFE014 0148496E7E4890C97E484882000F83498248488284123F4982007F187FA3193F12FF7FA2 191F7F7F7F80806E93C7FC14F86C13FF15F0EDFF806C15FCEEFFE06C16FEEFFFC06C17F0 6C17FC18FF6C846C18E06C84013F836D830107836D8301001880143F020717C0DA007F16 E01507DB001F15F01600050F14F81701717E8400FC050F13FC84846C83A284A26C187FA2 193F7FA26D18F8A27FA26D18F0197F7F6D18E019FF6D18C06D5E6E4B13806E4B130002F0 4B5A6E4B5AD9E7FEED7FF89026C1FF8049485A018001F8011F13C026FE003FB75A48010F 4BC7FC48010315F0480100158048020701F0C8FC465F79DD55>I[67 132 124 258 84 III<007FB802 0FB712C0A7C702FCC96C01FCC7FC70040790C8FC6EF003FC6E6D4C5A6E6E5E71150F6E4E 5A6E6E4B5A714B5A6E96C9FC6E6E5D6E6E4A5A714A5A6F4C5A6F6D5D6F6E495A72131F6F 4C5A6F6E495A6F6E91CAFC7213FE6F15016F6E485A706D485A06FF5B704A5A70149FF1FF C0705D7092CBFC705CA2705C82717F85837180718086837180864D805F864D804D81EF7F 9FDDFF0F8005FE8104017F4C486C804C486C80DC0FF0814D7E4C486D7F043F6E7F4C4882 4CC77E4C6E804B486E800303844B48804B486E804C834B486E80033F824B486F7F4BC981 4A48824B7080020371804A48854A48824A487080DA7FF87080010FB585B700FC4AB812FC A76E5C7EDB72>120 D<0007BB12FEA503F0C814FC92C84814F802F85D02E018F048494B 14E091C95A4919C04E1480495E494C1400624993B55A5F49604D5C5F49604D5C5F624D91 C7FC001F5E495F94B55A5E614C5C5E61C9485C5E614C91C8FC5E6093B55A5D604B5C5D60 4B5C5D604B91C9FC5D5F92B55A5C4D153F4A5C5C5F4A5C5C4D157E4A91C9FC5C5E91B55A 5B5E494A16FE5B5E495C4918015E4991C9EA03FC5B5D90B548160748190F485C4B161F48 4A163F48197F4BED01FF484A5D48181F92C9B5FC4849031F14F8BCFCA5505C7ADB60> 122 D[<94B5FC043F14F04BB612FE03076F7E031F16E0037FD9F0017F4AB53980001FF8 4A49C7EA03FE4A4914014A49EC007F4A496F7E4A844C151F4A717E5E91B5160787491803 5EA287491801B263A21A03A4631A07A2631A0F963803FF80193FB792B5C8FC06035B4E13 F84E48C9FCF01FF84E5A187FD800035F18FF615FA24D5BA55FA685A385A285A285717FF1 FF801AFCF2FFC01BF87115FE757E7182887215F8887281A272817216807216C084060016 E085071F15F01903F1001F080114F8F2003F87877513FC87DD07E080A287A272157FA31C 3FA4841DF8A484F47FF0A2841DE07215FF1DC0735B51138073491300B76F495A07F8495A 07FEEBFFF806F9B65A06F015C0DEC07F91C7FCDE801F13F8CAD900031380>94 145 122 271 108 255 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fn ecbx1095 10.95 68 /Fn 68 256 df27 DI<1407140F143E 147C14F8EB01F01303EB07E0EB0FC0EB1F80A2EB3F005B137E13FE485AA2485AA212075B 120FA25B121FA25B123FA4127F5BA512FFB0127FA57F123FA4121F7FA2120F7FA212077F 1203A26C7EA26C7E137E137F7FEB1F80A2EB0FC0EB07E0EB03F01301EB00F8147C143E14 0F1407185A77C328>40 D<12E07E127C7E7E6C7E7F6C7E6C7E6C7EA26C7E7F137E137FEB 3F80A2EB1FC0A214E0130F14F0A2130714F8A2130314FCA414FE1301A514FFB014FEA513 0314FCA414F81307A214F0130FA214E0131F14C0A2EB3F80A2EB7F00137E13FE5B485AA2 485A485A485A5B48C7FC123E5A12F05A185A7AC328>I45 DI< 1606160E161E161CA2163C163816781670A216F016E0150116C015031680A2150716005D 150EA2151E151C153C1538A21578157015F05DA214015D14035D140792C7FCA25C140E14 1E141CA2143C143814781470A214F05C13015CA213035C130791C8FC5B130EA2131E131C 133C1338A21378137013F05BA212015B12035BA2120790C9FC5A120E121E121CA2123C12 3812781270A212F05AA2275B7AC334>II<14 0F5C147F495A130F48B5FCB6FCA213F7EAFE071200B3B3AA003FB612F8A4253C79BB34> I<903803FF80013F13F890B512FE00036E7E2607F80F7F260FC00113F048486C7F48C76C 7ED87FC06D7E7F486C6D7E7FA26F1380A46C5AA2EA1FC00007C7FCC814005DA25E153F5E 4B5A5E4B5A4A5B5E4A90C7FC4A5AEC0FF84A5A5DEC3F804AC8FC14FED901F8EB0780495A 495A4948EB0F00495A013EC7FC5B495C485A90B7FC485D5A5A5A5A5AB7FC5EA3293C7BBB 34>III<000E1518D80FC014F801FC131F 90B65AA25E5E5E93C7FC15FC5D15E092C8FC14F80180C9FCA9903881FFC0018F13F801BF 13FE9039FF01FF809039F8007FE001E06D7E4980496D7E6CC7FCC87F150F82A31780A212 0FEA3FC0487E487EA41700A25B6C48495A5B007CC75B6C143F003F5D6C6C495AD80FE049 5A2607FC075B0001B6C7FC6C14FC013F13F0010790C8FC293D7BBB34>II<121E121F13F090B712F0A35A17E017C01780 17005EA2485D007CC7EA01F84B5A00784A5A5E150F4B5A484AC7FC157E5DC85A14014A5A 4A5AA24A5A141F5D143FA24AC8FCA25CA2495AA21303A313075CA2130FA5131FAA6D5A6D 5A6D5A2C3F7ABD34>III<16F84B7EA24B7EA34B7EA24B7FA34B7FA24B 7FA34B7F157D03FD7F15F8A2020180EDF07F020380EDE03FA2DA07C07F82020F814B7E02 1F811500824A81023E7F027E81147C8202FC814A7F0101825C91B7FC4982A2498202C0C7 123F83010F834A80011F8391C8FC834983013E81017E83137C83D801FE83B500FC49B612 F8A4453F7CBE4E>65 DI<922607FF80131C92B500F8133C020702FE137C023F9138FF80FC91B538003FE101 0301F0EB07F74901C0EB01FF011F90C8FCD93FFC153F4948151F495A4849150F48170748 4915035C48170191C9FC481700A2485AA2197C127FA2491700A212FFAC127FA27F193C12 3FA36C7E197C6C1878806C18F86E16F06C6D15016CEF03E06C6DED07C06D6C150FD93FFE ED1F806D6CED3F00010701C014FE6D01F0EB03F8010001FFEB1FF0023F90B512C0020792 C7FC020014F8030713803E407ABE4B>IIII<922607FF C0130E92B500F8131E020702FF133E023FEDC07E91B539801FE0FE499039F80003FB0107 01C0EB00FF011F90C8127F4948153F4948151FD9FFF0150F481707484915034A1501485B 48170091CAFC48187EA2485AA2193E127FA24994C7FCA212FFAB0407B612FC127FA27F93 C7383FFE00123FA36C7EA26C7FA26C7F7E806C7F6C7F6D6C157F6D7E6D6C15FF010701C0 5B010101F85B6D9039FF801FF1023F90B5EAC07E0207ED001E020002FC1306030701C090 C7FC46407ABE52>III75 DIII80 DII< 903A01FF8001C0011FEBF803017FEBFE0748B6128F489038007FDFD807F8EB0FFF484813 0348487F4848EB007F163F127F49141F160F12FF1607A27FA26D1403A27F01FC91C7FC13 FF6C13F8ECFF8015FC6CECFF806C15E016F86C816C816C816C16806C6C15C0131F010715 E0EB007F020314F0EC001F1503030013F8167F163F12F0161FA2160FA27EA217F07E7EEE 1FE07E6DEC3FC013E06DEC7F8001FE903801FF003AFEFFE007FED8FC3FB512F8D8F80F5C D8F003148027E0001FFCC7FC2D407ABE3A>I<003FB912F8A4903BFC007FFC007F01E016 0FD87F80EE03FC90C71501007E1700A2007C187CA20078183CA548181EA5C81600B3B101 1FB712F0A43F3D7CBC48>I86 DI<003FB812C0A49126C0001F138049C75A01F8160001E04A5A4914FF495D90C7485B 485C007E5E4B5B007C5C5F4B5B5D007893C7FC5D5E4B5AC75A5E4A5B5C5E4A5B5C5E4A90 C8FCA24A5A14FF5D495B5B4BEB01E0495B5B5D495B49150392C713C05B5C494814075A5C 4849140F5A4A141F4849143F48167F4A14FF4890C75A48030F138049147FB9FCA4333E7A BD3F>90 D<007FB912F8BA12FCA46C18F83E06776851>95 D<903807FF80013F13F048B5 12FC3903FC03FF2607E00013C0D80FF86D7E001F6E7E7F6F7EA26F7EA26C5A6C5AEA01C0 C8FCA3EC03FF49B5FC130F017F138F3901FFF00F00071380481300EA1FFC485A127F5B12 FF5BA3151FA26D133F127F6D49B4FC273FFC01F713FC391FFE07E30007B5128100019038 FE007F26001FF890C7FC2E2B7DA932>97 D<13FFB5FCA412077EB0ED7FE0913807FFFC02 1F13FFDA7F0013C002F8EB3FF04A6D7E4A6D7E02806D7E8391C77E1880A218C082A318E0 AA18C0A35E1880A24C13006E5C6E130F6E5CD9FDF0495AD9F8F8EB7FE0903AF07F01FFC0 D9E01FB5C7FCD9C00713F8C813C033407DBE3A>IIIII<903A03FF8003F0013F9038F81FFC90B538FE7FFE0003903801FFFC3A07 FC007FE1000F15E04848EB3FF0003FEDF87C49011F1300A2007F81A7003F5DA26D133F00 1F5D6C6C495A00075D9039FF01FF80DAFFFEC7FCD80F3F13F801031380001ECAFCA2121F A37F7F90B6FC6C15F016FC6C15FF17806C16C017E0120F271FC0000113F04848EB001F48 C8EA0FF8160712FE1603A46C15076C16F06D140F6C6CEC1FE06C6CEC3FC0D80FF8ECFF80 3B03FF800FFE00C690B512F8011F14C0010101FCC7FC2F3D7DA834>I<13FFB5FCA41207 7EB0ED3FF0EDFFFE02036D7EDA0FC07F91391E007FE04A6D7E5C5C4A6D7E5CA25CA391C7 FCB3A5B5D8FC07B512E0A4333F7CBE3A>II<13FFB5FCA412077E B1923803FFFEA4030013804CC7FC4B5AED03F04B5AED1FC04B5A037EC8FC5DEC03F8EC07 E04A7E4A7EEC7FFC14FF818102E77F02837F1401496C7F826F7E6F7E151F6F7E826F7F6F 7F816F7F83B5D8F807EBFFC0A4323F7DBE37>107 D<13FFB5FCA412077EB3B3B1B512FC A4163F7CBE1D>IIII<01FFEB7FE0B53807FFFC021F13FFDA7F0113C09139F8007FF000 07496D7E6C496D7E02806D7E8391C77E18808218C0A38218E0AA18C05EA34C1380A21800 6E495A6E131F6E5C6E495A6EEBFFE0DA7F035B021FB5C7FC020713F8020013C092C9FCAD B512FCA4333B7DA83A>II<3901FE 01FC00FF903807FF804A13E091383F1FF0143C00079038783FF8000313F014E013FF14C0 ED1FF09138800FE0ED038092C7FCA291C8FCB3A4B6FCA425297DA82B>I<90381FF80E48 B5123E000714FE380FE007381F800148C7FC007E147E007C143E12FC151EA27E7E6D90C7 FC13E013FF6C13FCECFF806C14E06C14F86C80000380C680133F01031480EB000F020113 C000F0EB007F153F6C141FA2150F7EA26C1580151F6C15006D5B01E0137E9038F803FC00 FCB512F0D8F03F13C026E007FEC7FC222B7DA929>II<01FFEC07F8B5EB07FFA40007 EC003F6C151FB3A6163FA3167F6C15FFA26E487F6C913907DFFFE090397FE01F9F90391F FFFE1F010713F8010001E0EBE000332A7CA83A>IIIII<003FB612FC A39039F0003FF801C0EB7FF090C712FF003E4913E016C0484913805C4A130000785C4A5A 143F4A5A5DC7485A5B495B5D4990C7FC5B4948133C5C495A137F494813785C485B5A4849 13F891C7FC48481301001F14034848130749EB0FF04848137FB7FCA326287DA72E>I<03 F8EB0F80DA03FEEB3FE04A6C497E4A6D487EA316C1A21680A36E496C5A6E486D5ADA00F8 EB0F8092CCFCA5B76C90B61280A426003FFEC96CC7FC193EB3B3A5011F5FA2806D17FC61 6D6D1401616D6D4A5A6D16076D6DEC1FC0DA7FF84A5ADA3FFE49B4C8FC913A0FFFC00FFC 020390B55A020015E0031F1480030101F8C9FC49527DD050>220 D<017EEB07E09039FF801FF0486D487E4881ECE07F4881A46C5DECC03F6C5D6C496C5A90 397E0007E090CAFCA6903807FF80013F13F048B512FC3903FC03FF2607E00013C0D80FF8 6D7E001F6E7E7F6F7EA26F7EA26C5A6C5AEA01C0C8FCA3EC03FF49B5FC130F017F138F39 01FFF00F00071380481300EA1FFC485A127F5B12FF5BA3151FA26D133F127F6D49B4FC27 3FFC01F713FC391FFE07E30007B5128100019038FE007F26001FF890C7FC2E3F7DBD32> 228 D252 D255 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fo ecbx1200 12 58 /Fo 58 253 df27 DI45 DI49 DII<163FA25E 5E5D5DA25D5D5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07143E147E147C14 F8EB01F0EB03E0130714C0EB0F80EB1F00133E5BA25B485A485A485A120F5B48C7FC123E 5A12FCB91280A5C8000F90C7FCAC027FB61280A531417DC038>I<0007150301E0143F01 FFEB07FF91B6FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC3FF001C1B5FC01 C714C001DF14F09039FFE03FFC9138000FFE01FC6D7E01F06D13804915C0497F6C4815E0 C8FC6F13F0A317F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E05B007EC74813C0 123E003F4A1380D81FC0491300D80FF0495AD807FEEBFFFC6CB612F0C65D013F1480010F 01FCC7FC010113C02D427BC038>I<4AB47E021F13F0027F13FC49B6FC01079038807F80 90390FFC001FD93FF014C04948137F4948EBFFE048495A5A1400485A120FA248486D13C0 EE7F80EE1E00003F92C7FCA25B127FA2EC07FC91381FFF8000FF017F13E091B512F89039 F9F01FFC9039FBC007FE9039FF8003FF17804A6C13C05B6F13E0A24915F0A317F85BA412 7FA5123FA217F07F121FA2000F4A13E0A26C6C15C06D4913806C018014006C6D485A6C90 38E01FFC6DB55A011F5C010714C0010191C7FC9038003FF02D427BC038>I<121E121F13 FC90B712FEA45A17FC17F817F017E017C0A2481680007EC8EA3F00007C157E5E00785D15 014B5A00F84A5A484A5A5E151FC848C7FC157E5DA24A5A14035D14074A5AA2141F5D143F A2147F5D14FFA25BA35B92C8FCA35BA55BAA6D5A6D5A6D5A2F447AC238>I65 DIII IIII<0107B7FCA590C7001F1300B3B3A9EA1FE0487E487EA2487EA44B5AA26C48495A49 5C6C4813FF6C48485B260FFC0713C06CB65A6C4AC7FCC66C13F8010F138030457DC33A> 74 DIIII80 D82 DI<003FBA12E0A59026FE000FEB8003D87FE09338003FF049 171F90C71607A2007E1803007C1801A300781800A400F819F8481978A5C81700B3B3A201 07B8FCA545437CC24E>III<007FB6D8C003B61280A5D8000F01E0C7D801F8C7FC6D4C5A6F14 076D6D5D6D6D4A5A4E5A6D6D143F6E6C92C8FC6E157E705B6EEBC0016E01E05B4D5A6E6D 485A6EEBF80F6E01FC5B4D5A6E6D48C9FC6F6C5A6F137E5F6F5B815F816F7F81836F7F70 7E93B5FC844B805D4B8004E77FDB0FC37FED1F83DB3F817F04007F037E137F4B8002016E 7F4B6D7F4A5A4A486D7F020F6E7F4B7F4A48814AC76C7F717F147E4A6F7E0101707F4A81 49488349486F7F010F707FB600E00103B612FCA54E447DC355>88 D<001FB812FEA59126F8000113FC028015F801FCC75A494A13F04916E0495C494A13C048 4816805E90C84813005F003E15FF4B5B5F003C5C4B5B5F5D4B5BC85C4B90C7FC5D5E4B5A 5C5E4A5B5C5E4A5B5C5E4A90C8FC5C5D4A48140F5B5D495B5B4949141F5D49161E495B92 C8FC49163E495A5C48177E485B4A15FE481601484914034A140748160F4849143F91C8EA FFFC48150FB9FCA538447AC344>90 D<903801FFE0011F13FE017F6D7E48B612E03A03FE 007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F7F6C5A6C5AEA00F090C7FCA40203B5FC 91B6FC1307013F13F19038FFFC01000313E0481380381FFE00485A5B127F5B12FF5BA35D A26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1FFF80FC7F0007EBFFF86CECE01FC66CEB80 07D90FFCC9FC322F7DAD36>97 DIIIIIII<137C48B4FC4813804813C0A24813E0A56C13C0A26C13806C1300 EA007C90C7FCAAEB7FC0EA7FFFA512037EB3AFB6FCA518467CC520>I107 DI<90277F8007FEEC0FFCB590 263FFFC090387FFF8092B5D8F001B512E002816E4880913D87F01FFC0FE03FF8913D8FC0 0FFE1F801FFC0003D99F009026FF3E007F6C019E6D013C130F02BC5D02F86D496D7EA24A 5D4A5DA34A5DB3A7B60081B60003B512FEA5572D7CAC5E>I<90397F8007FEB590383FFF 8092B512E0028114F8913987F03FFC91388F801F000390399F000FFE6C139E14BC02F86D 7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E>II<90397FC00FF8B590B57E02C314E002CF14F89139DFC03FFC91 39FF001FFE000301FCEB07FF6C496D13804A15C04A6D13E05C7013F0A2EF7FF8A4EF3FFC ACEF7FF8A318F017FFA24C13E06E15C06E5B6E4913806E4913006E495A9139DFC07FFC02 CFB512F002C314C002C091C7FCED1FF092C9FCADB67EA536407DAC3E>I<90387F807FB5 3881FFE0028313F0028F13F8ED8FFC91389F1FFE000313BE6C13BC14F8A214F0ED0FFC91 38E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>114 D<90391FFC038090B512 87000314FF120F381FF003383FC00049133F48C7121F127E00FE140FA215077EA27F01E0 90C7FC13FE387FFFF014FF6C14C015F06C14FC6C800003806C15806C7E010F14C0EB003F 020313E0140000F0143FA26C141F150FA27EA26C15C06C141FA26DEB3F8001E0EB7F0090 38F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7CAD2C>IIIIIII<001FB71280A49026FC001F130001E0495A5B49495A90C7485A48495B123E4A5B4A5B 003C495BA24A90C7FC4A5A4A5AC7FC4A5A495B495BA2495B499038800780491300A2495A 4948130F49481400A2485B48495B485BA248495B4890C75A48485C15034848EB1FFEB7FC A4292C7DAB32>I228 D252 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fp ecrm1095 10.95 94 /Fp 94 256 df<001C1307007FEB1FC039FF803FE0A201C013F0A3007F131F001CEB0730 00001300A500011470491360A2000314E090C712C048130100061480000E1303000C1400 001C5B48130E485B006013181C1B7FBE1E>17 D<001C1307007FEB1FC039FF803FE0A201 C013F0A3007F131F001CEB073000001300A500011470491360A2000314E090C712C04813 0100061480000E1303000C1400001C5B48130E485B006013181C1B7F881E>I22 D27 DIII<121C127FEAFF80 A9EA7F00AC123EAC121CACC7FCA9121C127FEAFF80A5EA7F00121C094178C019>33 D<013F1603D9FFC0ED07802601E0E0150F2607C070151F48486CED3F00D9001E157E001E 6D15FE003E02C0EB03FCDA06F0EB0FF8003CD9073F13FD007C903A030FFFF1F00300EB03 E00078ED000700F86E5C02014A5A171F95C7FC173E177E177C5F16015F0203495A0078EC 0007007C5E4C5A003C49131F003E010691C8FC020E133E001E010C137E6C011C137C6D48 5B3907C070012601E0E05B6CB448485A90263F0007147E90C79039C001FF80923A0F8003 C1C0031F90380F80E09339001F0070033E011E1338037E491318037C017C131C4B150C02 010278130E4B01F813064A5A02075CDBC0011407DA0F801503141F1500143E147E147C5C 13015C494816070107020014064A80495A011F0378130E91C8007C130C013E171C017E03 3C1318017C6F133849031F1370000193380F80E049923803C1C049923801FF806C489238 007E0040497BC34B>37 DI<121C127FEAFF80A213C0A3127F12 1C1200A512011380A2120313005A1206120E120C121C5A5A12600A1B78BE19>I<143014 7014E0EB01C0EB0380EB07005B131E5BA25B5BA2485AA2485AA212075B120FA290C7FC5A A2121E123EA3123C127CA6127812F8B21278127CA6123C123EA3121E121FA27E7FA21207 7F1203A26C7EA26C7EA213787FA27F7F7FEB0380EB01C0EB00E014701430145A77C323> I<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A27FA2133E131E131FA27F1480 A2130714C0A3130314E0A6130114F0B214E01303A614C01307A31480130FA214005BA213 1E133E133CA25BA25BA2485A485AA2485A48C7FC120E5A5A5A5A5A145A7BC323>II<1506 B3ABBA12E0A2C80006C9FCB3AB3B3C7BB446>I<121C127FEAFF80A213C0A3127F121C12 00A512011380A2120313005A1206120E120C121C5A5A12600A1B788819>II<121C127FEAFF80A5EA7F00121C0909788819>I<16C0A215011680A2150316 005D1506A2150E150CA2151C1518A215381530A21570156015E05DA214015DA2140392C7 FCA25C1406140E140CA2141C1418A214381430A214701460A214E05C13015CA2130391C8 FCA25B1306A2130E130CA2131C131813381330A213701360A213E05BA212015B120390C9 FCA25A1206A2120E120CA2121C1218A21238123012701260A212E05AA2225B7BC32D>I< EB03FC90381FFF8090383E07C09038F801F048486C7E4848137C49133C0007143E48487F A248C7EA0F80A24815C0A4007EEC07E0A500FE15F0B3A3007E15E0A4007F140F6C15C0A4 6C15806D131F000F1500A26C6C133EA26C6C5B6C6C5B6C6C485A90383E07C06DB45AD903 FCC7FC243F7CBC2D>I<14C013031307131F137FEA07FFB5FC139FEAF81F1200B3B3ACEB 7FF0B612F8A31D3D78BC2D>III<150E A2151E153EA2157E15FEA214011403A21406140E140C141814381430146014E014C0EB01 80130314001306130E130C5B133813305B13E05B485A120390C7FC1206120E120C5A1238 12305A12E0B8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403D807C0130F01 F813FE90B55AA215F05D5D92C7FC38063FF890C9FCADEB01FE90380FFF8090383E03E090 387001F8496C7ED807C0137E497F90C713800006141FC813C0A216E0150FA316F0A4123E 127F487EA490C713E048141F12E0006015C012700030EC3F8012386CEC7F00001E14FE6C 495A3907C003F83903F00FE0C6B55A013F90C7FCEB07F8243F7CBC2D>II<12301238123E003FB612FCA3 16F85A16F016E00070C8FC0060EC01C0ED038016005D48140E150C151C5DC8123015705D 4A5A5D14034AC7FCA2140EA25CA2143C14381478A214F85C1301A31303A313075CA3130F A5131FAA6D5A6D5A26407BBD2D>III<121C127FEAFF80A5EA7F00121CC7FCB3A3121C127FEAFF80A5EA7F00121C092778A6 19>I<121C127FEAFF80A5EA7F00121CC7FCB3A3121C127FEAFF80A213C0A3127F121C12 00A512011380A2120313005A1206120E120C121C5A5A12600A3978A619>I61 D<12E01278121EEA07C0EA01F0EA003C130FEB03C0EB00 F0143EEC0F80EC01E0EC0078151EED0780ED01F0ED007C160FEE03C0EE00F0173CEF0F80 EF03E0EF0078181EA21878EF03E0EF0F80EF3C0017F0EE03C0040FC7FC167CED01F0ED07 80031EC8FC1578EC01E0EC0F80023EC9FC14F0EB03C0010FCAFC133CEA01F0EA07C0001E CBFC127812E0373279AF46>I<1507A34B7EA24B7EA34B7EA34B7E156FA2EDCFF815C7A2 91380187FC1583A291380301FEA391380600FFA2020E80020C137FA2021C800218133FA2 4A80161FA24A80160FA24A6D7EA349486D7E91B6FC4981A291C712014981010680A24982 177FA24982173FA2496F7EA21370717E13F0000183487ED80FFEED3FFEB500C00107B512 F8A33D417DC044>65 DIIIIIIII<010FB512F8A3 D900071300EC01FEB3B3A7123FEA7F80EAFFC0A44A5A1380D87F005B006C130700705C6C 495A6C495A000F495A2603C07EC7FC3800FFF8EB3FC025407DBD2E>IIIIIIIIII<003FB9FCA3D9E000EBC00190C7397F80003F007EEF1F8000 7C170F0078170700701703A300601701A548EF00C0A5C81600B3B24B7E4A7F0107B612F8 A33A3E7DBD41>I III<007FB56C48B512E0A3C601FCC7383FFC00D93FF8EC 1FE06D48EC0F8095C7FC6D6C140E6D6C140C171C6D6C5C6D6C14305F6D6D13E06E6C5B4C 5A91383FE003DA1FF090C8FC160691380FF80E913807FC0C5E913803FE38913801FF305E 6E13E06F5AA26F7E6F7EA26F7E4B7EA2ED33FEED71FF156103C07F02016D7E15804A486C 7E4A6D7E14064A6D7E021C6D7E5C02306D7E02706D7E5C4A6D7F49486E7E130391C86C7E 496F7E130E011E6F7E013E8201FF82000701C0EC3FFFB500F049B512FEA33F3E7EBD44> II<003FB712 F0A349C7EA3FE013F001C0EC7FC090C8FC003EEDFF80003C4A1300A200384A5A00785D00 7014074B5AA24B5A00604A5AA24B5AA24B5AC74890C7FCA24A5A5D14074A5AA24A5A4A5A A24A5AA24A5A4990C8FCA2495A5C01071518495AA2495A495AA2495A1738495A4890C8FC A2485A4915701207484815F0A24848140148481403160F4848143FED01FFB8FCA32D3E7B BD37>II93 D<007FB812FCB912FEA26C17FC3704796E46>95 D97 DI<49B4FC01 0F13E090383F00F8017C131E484813074848131F4848EB3F804848137FA2485AA248C7EA 3F00151E4891C7FCA2127E12FEAB127FA36C15C07F001F14016D1480000F14036C6CEB07 006C6C13066C6C131E6C6C133890383F01F090380FFFC0D901FEC7FC222A7DA828>IIII<167E903903FC01FF903A0FFF07878090393E07CE0F9038FC03FC 3901F801F83B03F000FC070049017CC7FC0007147EA248487FA86C6C137EA20003147C6D 13FC6C6C485A6D485A9038BE07C026038FFFC8FCEB03FC48CAFCA47FA27F6C7E90B512F0 6C14FE6F7E6C6C14E048B612F83907C0001FD81F80EB03FC48C87E003E157E48153E163F 4881A56C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC 90383FFFFC010313C0293D7EA82D>III<1470EB01FCEB03FEA5EB01FC EB00701400AC14FE133FA313011300147EB3B3A6123C007E137CB413FCA214F8130100FE 13F0387803E0383E07C0380FFF00EA01FC175084BC1C>III<2701F803FCEB01FE00FF903B0FFF8007FFC091 3B3C0FC01E07E0913BF003E07801F02607F9C0D9F0E07F3D03FB8001F9C000FC00010100 5C01FFD900FF147E4992C7FCA2495CA2495CB3A6486C496C14FFB528F07FFFF83F13FCA3 46287EA74B>I<3901F803FC00FF90380FFF8091383C0FC09138F003E02607F9C07F3A03 FB8001F80001130001FF6D7E5BA25BA25BB3A6486C497EB539F07FFFF8A32D287EA732> II<3901F807F800FFEB1FFF9138780FC09039F9 E003F03A03FB8001F86CB4C77E49147E49147FEE3F8049141F17C0A2EE0FE0A317F01607 A9EE0FE0A4EE1FC0A2EE3F806D15006D5C16FE6D495A9039FB8003F89039F9C007E09039 F8F81F80DA3FFEC7FCEC07F091C9FCAD487EB512F0A32C3A7EA732>I<02FF130C0107EB C01C90381F80F090387E003849EB1C3CD803F8130E4848EB077C491303484814FC001F14 01485A150048C8FCA412FEA97E7EA36C7E15016C7E000F14037F000714076C6C130E6C6C 131CD8007E137890383F01E090380FFFC0903801FE0090C8FCAD4B7E92387FFFF8A32D3A 7DA730>I<3903F00FC000FFEB3FF0ECF0F89038F1C3FC00071383EA03F33801F70313F6 EC01F89038FE0060491300A45BB3A4487EB512F8A31E287EA723>I<90387FC0603903FF F8E03807C03D381E000F481303481301A20070130012F01560A27EA27EB41400EA7FC013 FE383FFFE06C13FC00077F6CEBFF80C66C13C0010713E0EB003FEC0FF000C01303EC01F8 14007E1578A27EA27E15F07EEC01E06C14C039F780078039F1E01F0038E0FFFC38C01FE0 1D2A7DA824>I<1318A61338A41378A213F8A2120112031207001FB512C0B6FCA2D801F8 C7FCB3A21560A96C6C13E015C0A2EB7E0190383F038090381F8700EB07FEEB01F81B397E B723>I III<3B7FFFC0 0FFFE0A3000390390007FE00C6EC03F86D14E06D5C02805B6D6C48C7FC010F130E903807 E00C6E5A903803F83801015B6D6C5A6E5AEC7F80143F141F6E7E81141FEC3BF0EC71F8EC E1FCECC0FE903801807E01037FD907007F010E6D7E010C130F011C6D7E498001F86D7E00 0181D80FFC497EB590381FFFF8A32D277FA630>II<001FB61280A29038E0007F90C7130000 1E14FE001C495A140300185C0038495A4A5A0030131F5D4A5A4AC7FCA2C712FE495A1303 5C495A495A131F9138C00180EB3F80EB7F00A213FE485A000314035B48481400485A001F 5C495B485A48C7123F4849B4FC90B6FCA221277EA628>I<020FEB078091393F800FE0ED C01F027F80A3023F5CED800F91390F00078091CBFCA41507A34B7EA24B7EA34B7EA34B7E 156FA2EDCFF815C7A291380187FC1583A291380301FEA391380600FFA2020E80020C137F A2021C800218133FA24A80161FA24A80160FA24A6D7EA349486D7E91B6FC4981A291C712 014981010680A24982177FA24982173FA2496F7EA21370717E13F0000183487ED80FFEED 3FFEB500C00107B512F8A33D4E7DCD44>196 D<020FEB078091393F800FE0EDC01F027F 80A3023F5CED800F91390F00078091CBFCA7B600C090387FFFF8A3C601C0C7000313006D 48EC00FC18781830B3B3A4013F16706E1560A218E0011F5E6E1401130F6E4A5A01074BC7 FC6D6C5C6D6C140E6D6C143C027F5C91393FC001F091390FF00FE00203B51280020049C8 FCED1FF03D507DCD44>220 D<01E013703903F801FC486C487EA56C486C5A3900E00070 90C9FCA9EB1FF0EBFFFC3803E03F390F000FC0001C6D7E001F6D7E486C6C7E6D6C7EA315 7E6C5A6CC7FCC8FCA4EC1FFEEB03FF90381FF87EEB7F803801FC00EA07F0485A485A485A 127F90C7FC160312FEA315FEA21401007F14BE14033A3F80071F06261FC00E138E3A0FF0 3C0FFC3A03FFF007F83A003FC003E0283C7CBA2D>228 D<01701338D801FC13FE486C48 7EA56C486C5AD80070133890C9FCA9EB01FE90380FFFC090383F03F090387C00F8D801F0 133E48487F4848EB0F80A24848EB07C0001F15E090C712034815F0A2007EEC01F8A400FE 15FCA9007E15F8A3007F14036C15F0A26C6CEB07E0000F15C06D130F000715806C6CEB1F 006C6C133ED800FC13FC90383F03F090380FFFC0D901FEC7FC263C7DBA2D>246 D<010FEB078090393F800FE0ECC01F017F80A3013F5CEC800F90390F00078090CAFCAAD8 01F814FC00FF147FA3000714030003140100011400B3A51501A3150312006D1307ED0EFE 017C497E6D4913F890381F80F0903807FFE00100903800FC002D3C7EBA32>252 D<14FF010313C090380FC0F090383F0038017E7F017C7F01FC1306A2491307000180AA5D 1506A3157EEC01F800FFEB07804AC7FC141E1201141C143CA5143EA2143F6E7E15F015FF 6E13C06E13E06E13F0020013F8153FED01FC1500167E0230133EA3161E1438A4023C131C 163CA20003013E137800FF013F13F0ED81E0913839FFC0C738307E0027417EBF2D>255 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fq ecrm1440 14.4 28 /Fq 28 253 df70 D76 D78 D82 DI<49B4FC 010F13F090383F01FC9038F8007FD801E0EB1F8048486D7E48488048C76C7E01C06D7EEA 1FF06F7E7FA26F7EA36C5AEA03C0C9FCA4151FEC0FFFECFFF8903807FE00EB1FF0EB7FC0 49C7FCEA03FE485A485A485AA2485A485AEF01C0A2485AA31501A315036D147E007F1407 6C6CD90E3E138092381C3F036C6C01381400D807F89038F01F873B01FE03C00FFE3B007F FF8007FC903A07FC0001F032367BB439>97 DIII< EC1FF091B5FC903903F01FC090390FC007E090391F8003F890397F0001FC01FE6D7E4848 147F485A0007ED3F805B000FED1FC05B001F16E05B003F150FA2007F16F0A25BA212FFA2 90B7FCA20180C9FCA8127FA27FA2123F17706C7E17F0000F16E07F0007ED01C06C6C1403 6C6C158000001507017EEC0F006D141E6D6C5BD907E013F0903901F807C09026007FFFC7 FCEC0FF82C367DB433>II<173F913A3FC001FF80903B01FFF807 C3C0903B07E07E0E07E090391F801F9C903A3F000FF80F017E903807F00749010314C000 019238F8010048486D6CC7FCA2000781491300A2000F81A800075DA26D130100035DA26C 6C495A00005D017E495A017F495A496C485A2701C7E07EC8FC9038C1FFF89038803FC000 0390CAFCA67FA27F7F7F6CB612C06C15FCEEFF806D15E0011F81017F15FCD801F8C7EA3F FED807C014034848EC00FF48C9EA7F80003E163F007E161F007CEE0FC012FC481607A600 7CEE0F80A26CEE1F00003F5E6C6C157E6C6C5DD803E0EC01F0D801F8EC07E0D8007EEC1F 8090271FE001FEC7FC0103B512F0D9003F90C8FC334E7DB439>I II 107 DI110 DII114 D<90390FFC018090387FFF833901F803E73907C000FF48C7127F001E143F003E141F003C 140F127C0078140712F8A21503A27EA27E7E6C6C90C7FC13E0EA3FFCEBFFE06C13FE6CEB FFC06C14F00001806C6C13FE011F7F01011480D9000F13C01400ED3FE000E0141F150FED 07F07E1503A215017EA37E16E06C1403A26C15C0ED07806D130FD8F9C0EB1F00D8F0F013 3C90387C01F839E01FFFE026C003FEC7FC24367CB42D>IIIII<267FFFFC90380FFFFEA4000101F06D13E06C6C486D90C7FC011F15 FC17F06D6C5C6D6C5C01034A5A6E49C8FC6D7E6D6C131E6E5B6F5A91383FC07091381FE0 F091380FE1E0EDF3C0913807FB80EC03FF6E90C9FC6E5A816F7EA24B7E4A7FEDCFF0EC03 C791380783F891380F03FC91381E01FE15004A137F4A804A6D7E4A131F01016E7E494880 49486D7E010F1403011F81017F6E7E01FF8100076D010713C0B56C011FEBFF80A439337F B23C>I<001FB712C0A201FCC7127F01E015800180ECFF0090C7485A1503001E5D4B5A00 1C140F003C5D4B5A4B5A0038147F5E4BC7FC5C5D4A5AC7485A140F5D4A5A143F5D4A5A4A C8FC5B5C495A0107EC01C05C495A495A133F4AEB0380495A13FF91C7FC485A4848140712 075B4848140F001F151F49143F4848EC7F004848495A00FF140F90B7FCA22A337DB233> 122 D252 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fr ecxc1728 17.28 3 /Fr 3 83 df66 D68 D82 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fs eccc2074 20.74 11 /Fs 11 85 df65 DI68 DI73 D76 DI79 DI82 D<001FBE12FCA402FCC7000301F0C7120F02806E4914004848C949ED3FFE01F81B0F01E0 1B03491B01491B0090CA187EA2003E1D3EA2003C1D1EA300381D0E00781D0FA4007089A8 48F50380A6CB95C7FCB3B3B3B34D7FA24D7F053F13FF0303B812F0A4697679F578>84 D E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%BeginPaperSize: a4 a4 %%EndPaperSize %%EndSetup %%Page: 1 1 1 0 bop 1202 566 a Fs(DIPLOMARBEIT)1633 961 y Fr(DRBD)936 1286 y Fq(F)-9 b(estplattenspiegelung)36 b(\374b)s(ers)i(Netzw)m(erk) 1805 1399 y(f\374r)577 1549 y(die)f(Realisierung)f(ho)s(c)m(h)m(v)m (erf\374gbarer)i(Serv)m(er)f(un)m(ter)i(Lin)m(ux)972 2200 y Fp(ausgef\374hrt)31 b(am)f(Institut)h(f\374r)f(Computersprac)m (hen)774 2313 y(Abteilung)h(f\374r)g(Programmiersprac)m(hen)j(und)d (\334b)s(ersetzerbau)1207 2426 y(der)f(T)-8 b(ec)m(hnisc)m(hen)34 b(Univ)m(ersit\344t)d(Wien)1477 2751 y(un)m(ter)h(Anleitung)f(v)m(on) 1022 2864 y(o.)41 b(Prof.)g(Dipl.-Ing.)g(Dr.)f(Manfred)31 b(Bro)s(c)m(khaus)1801 2977 y(und)1141 3090 y(Univ.-Ass.)39 b(Dipl.-Ing.)i(Dr.)g(An)m(ton)31 b(Ertl)779 3203 y(als)f(v)m(eran)m(t)m (w)m(ortlic)m(h)k(mit)m(wirk)m(enden)f(Univ)m(ersit\344tsassisten)m (ten)1765 4179 y(durc)m(h)1495 4504 y Fo(Philipp)i(Reisner)1542 4617 y Fp(Diehlgasse)c(33/21)1667 4730 y(1050)g(Wien)382 5376 y(Wien,)g(am)f(18.)h(Mai)f(2000)p eop %%Page: 2 2 2 1 bop 1596 539 a Fn(Kurzfassung)382 751 y Fp(Diese)44 b(Arb)s(eit)f(zeigt,)48 b(da\377)c(Ho)s(c)m(h)m(v)m(erf\374gbark)m (eits-Cluster)j(auc)m(h)e(ohne)f(teure)h(Sha-)382 864 y(red)37 b(Devices)g(implemen)m(tiert)j(w)m(erden)e(k)m(\366nnen.)62 b(Es)37 b(w)m(erden)i(das)d(Design)i(und)f(die)382 977 y(Implemen)m(tierung)e(eines)e(Ger\344tetreib)s(ers)h(\(=DRBD\))f (f\374r)f(Lin)m(ux)i(gezeigt,)h(der)e(das)382 1090 y(Spiegeln)j(v)m(on) f(F)-8 b(estplatten)37 b(\374b)s(er)e(das)f(Netzw)m(erk)i(erlaubt.)55 b(Um)35 b(so)m(w)m(ohl)h(gute)g(Lei-)382 1203 y(stung)c(als)h(auc)m(h)g (Un)m(terst\374tzung)h(f\374r)e(Journaling-Filesysteme)j(bieten)e(zu)f (k)m(\366nnen,)382 1316 y(wurde)j(ein)f(Algorithm)m(us)i(en)m(t)m(wic)m (k)m(elt,)i(der)c(dem)h(Disk-Sc)m(heduler)h(b)s(eim)e(Sc)m(hreib)s(en) 382 1429 y(die)23 b(gr\366\377tm\366glic)m(he)i(F)-8 b(reiheit)24 b(einr\344um)m(t,)j(Bl\366)s(c)m(k)m(e)c(umzuordnen,)j (dab)s(ei)d(ab)s(er)g(die)g(Rei-)382 1542 y(henfolge,)31 b(die)g(das)f(Filesystem)g(v)m(orgibt,)i(nic)m(h)m(t)g(v)m(erletzt.)382 1704 y(Das)g(Ger\344t)h(erreic)m(h)m(t)i(zwisc)m(hen)e(50)g(\045)g(und) g(98)g(\045)f(der)h(theoretisc)m(h)h(m\366glic)m(hen)h(Lei-)382 1817 y(stung.)76 b(W)-8 b(eiters)43 b(geb)s(e)f(ic)m(h)h(einen)g(\334b) s(erblic)m(k)g(dar\374b)s(er,)j(wie)d(sic)m(h)f(DRBD)g(in)g(die)382 1930 y(anderen)31 b(Clustering-K)m(omp)s(onen)m(ten)k(un)m(ter)c(Lin)m (ux)h(eingliedert.)1678 4098 y Fn(Abstract)382 4310 y Fp(This)37 b(w)m(ork)h(sho)m(ws)g(that)f(it)h(is)f(p)s(ossible)g(to)g (implemen)m(t)i(high-a)m(v)-5 b(ailabilit)m(y)40 b(clusters)382 4423 y(without)c(exp)s(ensiv)m(e)e(shared)h(devices.)54 b(A)34 b(description)i(of)e(the)h(design)g(and)g(the)g(im-)382 4536 y(plemen)m(tation)c(of)d(a)h(device)f(driv)m(er)i(for)e(Lin)m(ux)i (is)e(pro)m(vided,)i(whic)m(h)g(allo)m(ws)f(harddisk)382 4649 y(mirroring)d(via)f(the)g(net)m(w)m(ork.)41 b(In)24 b(order)i(to)f(b)s(e)f(able)i(to)f(o\033er)g(go)s(o)s(d)f(p)s (erformance)i(and)382 4762 y(supp)s(ort)37 b(for)f(journaling)h (\034lesystems)g(an)f(algorithm)i(w)m(as)f(dev)m(elop)s(ed)h(whic)m(h)f (giv)m(es)382 4875 y(the)k(disk)f(sc)m(heduler)i(maxim)m(um)h(freedom)e (during)h(the)f(write)g(pro)s(cess)g(to)f(reorder)382 4988 y(blo)s(c)m(ks)30 b(without)i(compromising)g(the)e(order)h(imp)s (osed)g(b)m(y)f(the)h(\034lesystem.)382 5150 y(The)42 b(device)h(reac)m(hes)g(b)s(et)m(w)m(een)h(50)e(\045)g(and)h(98)f(\045) g(of)g(the)g(maxim)m(um)i(theoretical)382 5263 y(p)s(erformance.)c (Apart)29 b(from)e(that,)i(this)f(w)m(ork)h(giv)m(es)e(an)h(o)m(v)m (erview)i(of)d(ho)m(w)i(DRBD)e(is)382 5376 y(in)m(tegrated)32 b(in)m(to)g(the)e(other)h(clustering)h(compnen)m(ts)g(under)f(Lin)m (ux.)p eop %%Page: 1 3 1 2 bop 382 1244 a Fm(Inhaltsv)-6 b(erzeic)g(hnis)382 1821 y Fn(1)83 b(Einleitung)2334 b(4)382 2065 y(2)83 b(Clustering)2330 b(6)517 2220 y Fp(2.1)93 b(Wissensc)m(haftlic)m(he)32 b(Cluster)85 b(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(7)517 2374 y(2.2)93 b(Lastv)m(erteilung)106 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(7)725 2528 y(2.2.1)105 b(hohe)31 b(CPU-Last)48 b(.)e(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(7)725 2682 y(2.2.2)105 b(hohe)31 b(Netzw)m(erk-Last)86 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)143 b(7)517 2836 y(2.3)93 b(Hohe)31 b(V)-8 b(erf\374gbark)m (eit)112 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(8)725 2990 y(2.3.1)105 b(V)-8 b(erf\374gbark)m(eit)56 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(9)725 3145 y(2.3.2)105 b(HA-Cluster)67 b(.)45 b(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) 98 b(11)725 3299 y(2.3.3)105 b(Beispielk)m(on\034guration)47 b(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)98 b(12)382 3543 y Fn(3)83 b(DRBD)34 b(Design)2097 b(16)517 3698 y Fp(3.1)93 b(DRBD)30 b(im)h(Kernel)48 b(.)e(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(17)725 3852 y(3.1.1)105 b(Seman)m(tik)m(en)67 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(18)725 4006 y(3.1.2)105 b(Single)31 b(P)m(oin)m(ts)h(of)e(F)-8 b(ailure)24 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)98 b(20)517 4160 y(3.2)93 b(Die)31 b(Protok)m(olle)g(.) 46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(21)725 4314 y(3.2.1)105 b(Protok)m(oll)32 b(A)58 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(22)725 4469 y(3.2.2)105 b(Protok)m(oll)32 b(B)62 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)98 b(22)725 4623 y(3.2.3)105 b(Protok)m(oll)32 b(C)61 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(23)517 4777 y(3.3)93 b(Sc)m(hreib)s(op)s(erationen)56 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(23)725 4931 y(3.3.1)105 b(Abh\344ngigk)m(eiten)47 b(.)f(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) 98 b(24)517 5085 y(3.4)93 b(Sync)m(hronisation)42 b(.)j(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)98 b(26)725 5240 y(3.4.1)105 b(Sc)m(hnelle)32 b(Sync)m(hronisation)38 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)98 b(26)725 5394 y(3.4.2)105 b(Datensic)m(herheit)48 b(.)e(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(27)1854 5622 y(1)p eop %%Page: 2 4 2 3 bop 382 262 a Fl(INHAL)-8 b(TSVERZEICHNIS)931 b(INHAL)-8 b(TSVERZEICHNIS)p 382 299 2989 4 v 382 539 a Fn(4)83 b(Lin)m(ux)2491 b(28)517 700 y Fp(4.1)93 b(GPL)56 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(28)517 861 y(4.2)93 b(Ger\344tetreib)s(er)68 b(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(28)725 1022 y(4.2.1)105 b(Zeic)m(henorien)m(tierte)34 b(T)-8 b(reib)s(er)65 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(29)725 1183 y(4.2.2)105 b(Blo)s(c)m(k)m(orien)m(tierte)33 b(Ger\344te)93 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)98 b(31)517 1345 y(4.3)93 b(P)m(arallelausf\374hrung)72 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(34)725 1506 y(4.3.1)105 b(Ausf\374hrungsk)m(on)m(texte)39 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(35)725 1667 y(4.3.2)105 b(Sync)m(hronisationsprimitiv)m(e)66 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(36)517 1828 y(4.4)93 b(Threads)64 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)98 b(38)725 1989 y(4.4.1)105 b(Kernel-Threads)49 b(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)98 b(38)517 2150 y(4.5)93 b(Mo)s(dule)c(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(39)382 2402 y Fn(5)83 b(Implemen)m(tierung)1974 b(40)517 2563 y Fp(5.1)93 b(Struktur)47 b(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)98 b(40)517 2724 y(5.2)93 b(Kernel-Mo)s(dul)51 b(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(41)725 2886 y(5.2.1)105 b(Bu\033er-Cac)m(he)80 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(41)725 3047 y(5.2.2)105 b(Threads)57 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(43)725 3208 y(5.2.3)105 b(Datenstrukturen)78 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)98 b(45)725 3369 y(5.2.4)105 b(Protok)m(oll)87 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(47)517 3530 y(5.3)93 b(Drb)s(dsetup)38 b(.)46 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(52)725 3691 y(5.3.1)105 b(K)m(on\034guration)47 b(.)f(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) 98 b(52)725 3853 y(5.3.2)105 b(Steuerung)32 b(im)e(Betrieb)c(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)98 b(54)517 4014 y(5.4)93 b(P)m(erformance)36 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(55)725 4175 y(5.4.1)105 b(Durc)m(hsatz)51 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(55)725 4336 y(5.4.2)105 b(Dateisystem)35 b(.)45 b(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) 98 b(59)382 4588 y Fn(6)83 b(HA)36 b(un)m(ter)e(Lin)m(ux)2019 b(62)517 4749 y Fp(6.1)93 b(Cluster)31 b(Managemen)m(t)57 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)98 b(62)725 4910 y(6.1.1)105 b(Struktur)40 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(62)725 5071 y(6.1.2)105 b(Cluster-Managemen)m(t-Soft)m(w)m(are)37 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(65)517 5233 y(6.2)93 b(Filesysteme)68 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)98 b(69)725 5394 y(6.2.1)105 b(ext2)69 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(69)1854 5622 y(2)p eop %%Page: 3 5 3 4 bop 382 262 a Fl(INHAL)-8 b(TSVERZEICHNIS)931 b(INHAL)-8 b(TSVERZEICHNIS)p 382 299 2989 4 v 725 539 a Fp(6.2.2)105 b(ext3)69 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(70)725 701 y(6.2.3)105 b(ReiserFS)26 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)98 b(70)725 864 y(6.2.4)105 b(XFS)60 b(.)45 b(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)98 b(71)725 1027 y(6.2.5)105 b(JFS)82 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(71)725 1189 y(6.2.6)105 b(LinLogFS)62 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(72)725 1352 y(6.2.7)105 b(GFS)57 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)98 b(72)517 1515 y(6.3)93 b(Implemen)m(tierung)73 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(73)725 1678 y(6.3.1)105 b(Struktur)40 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(73)725 1840 y(6.3.2)105 b(Ergebnisse)30 b(.)46 b(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)98 b(74)725 2003 y(6.3.3)105 b(Heartb)s(eat)31 b(Erw)m(eiterungen) 88 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) 98 b(75)382 2256 y Fn(7)83 b(Zusammenfassung)1927 b(79)382 2509 y(A)57 b(Me\377ergebnisse)2089 b(81)382 2762 y(Literaturv)m (erzeic)m(hnis)1980 b(85)1854 5622 y Fp(3)p eop %%Page: 4 6 4 5 bop 382 1202 a Fk(Kapitel)62 b(1)382 1657 y Fm(Einleitung)382 2143 y Fp(Unsere)29 b(Gesellsc)m(haft)h(ist)f(auf)g(dem)h(W)-8 b(eg)30 b(in)f(das)g(Informationszeitalter.)42 b(Eines)30 b(der)382 2256 y(vielen)41 b(Anzeic)m(hen)i(daf\374r)e(ist)f(das)h (enorme)h(W)-8 b(ac)m(hstum)42 b(des)f(In)m(ternets,)k(das)40 b(\374b)s(er)382 2369 y(100)e(\045)f(im)h(Jahr)g(liegt.)62 b(Dies)37 b(stellt)h(sogar)f(die)h(enorm)g(hohen)g(W)-8 b(ac)m(hstumszahlen)382 2482 y(der)31 b(gesam)m(ten)g(ED)m(V-Branc)m (he)i(in)d(den)h(Sc)m(hatten.)382 2635 y(In)23 b(den)h(v)m(ergangenen)h (Jahrzehn)m(ten)h(dien)m(te)f(das)f(In)m(ternet)g(haupts\344c)m(hlic)m (h)i(dem)e(\(ak)-5 b(a-)382 2748 y(demisc)m(hen\))33 b(Informationsaustausc)m(h.)43 b(Durc)m(h)32 b(die)g(rasan)m(te)g(En)m (t)m(wic)m(klung)i(hat)d(sic)m(h)382 2861 y(das)g(Netz)h(auc)m(h)g(in)g (Ric)m(h)m(tung)h(k)m(ommerzieller)g(An)m(w)m(endung)h(ge\366\033net,)e (w)m(ahrsc)m(hein-)382 2974 y(lic)m(h)25 b(ist)e(ab)s(er)h(auc)m(h)h (die)f(K)m(ommerzialisierung)j(ein)d(Grund)g(f\374r)g(das)f(hohe)i(W)-8 b(ac)m(hstum.)382 3087 y(Zu)20 b(den)h(p)s(opul\344rsten)g(k)m (ommerziellen)i(An)m(w)m(endungen)g(geh\366ren)e(heute)g(Online-Shops) 382 3199 y(und)31 b(T)-8 b(elebanking.)382 3353 y(Do)s(c)m(h)40 b(wir)h(sind)f(no)s(c)m(h)g(nic)m(h)m(t)i(abh\344ngig)f(v)m(on)g(k)m (ommerziellen)h(An)m(w)m(endungen,)j(die)382 3466 y(\374b)s(er)39 b(das)g(In)m(ternet)h(angeb)s(oten)h(w)m(erden,)i(wie)c(wir)h(v)m(on)f (anderen)h(Errungensc)m(haf-)382 3579 y(ten)33 b(des)f(F)-8 b(ortsc)m(hritts)34 b(abh\344ngig)g(sind.)47 b(Nac)m(h)33 b(ein)f(paar)h(T)-8 b(agen)34 b(ohne)f(Autobahnen)382 3692 y(w\374rde)40 b(z.B.)g(die)f(\366\033en)m(tlic)m(he)i(V)-8 b(ersorgung)41 b(zusammen)m(brec)m(hen,)k(w)m(\344hrend)c(ein)f(T)-8 b(o-)382 3804 y(talausfall)44 b(des)g(In)m(ternets)h(v)m(on)f(einem)h (gro\377en)g(T)-8 b(eil)45 b(der)f(Bev)m(\366lk)m(erung)i(gar)e(nic)m (h)m(t)382 3917 y(w)m(ahrgenommen)33 b(w)m(erden)f(w\374rde.)382 4071 y(Do)s(c)m(h)26 b(wie)h(die)g(Gesc)m(hic)m(h)m(te)h(zeigt,)g(w)m (erden)f(die)g(neuen)g(tec)m(hnisc)m(hen)h(Errungensc)m(haf-)382 4184 y(ten)k(allm\344hlic)m(h)i(in)e(das)g(t\344glic)m(he)i(Leb)s(en)e (in)m(tegriert,)j(und)d(wir)g(w)m(erden)i(zunehmend)382 4297 y(v)m(on)h(ihnen)g(abh\344ngig.)54 b(Es)34 b(ist)g(sic)m(her)i(n)m (ur)f(eine)g(F)-8 b(rage)35 b(der)g(Zeit,)h(bis)e(sic)m(h)h(die)g(Ab-) 382 4409 y(h\344ngigk)m(eit)k(v)m(on)f(funktionierenden)h (Informationssystemen,)g(wie)f(sie)f(sc)m(hon)h(jetzt)382 4522 y(in)e(kleinen)h(T)-8 b(eilb)s(ereic)m(hen)39 b(existiert,)e(auc)m (h)h(auf)e(einen)g(Gro\377teil)h(der)g(Bev)m(\366lk)m(erung)382 4635 y(ausdehn)m(t.)382 4789 y(V)-8 b(or)43 b(allem)g(das)f(Finanz-)h (und)g(V)-8 b(ersic)m(herungsw)m(esen)45 b(so)m(wie)e(viele)f (isolierte)i(Ec)m(h)m(t-)382 4902 y(zeitsteuerungssysteme)36 b(sind)e(f\374r)h(uns)g(v)m(on)g(so)f(gro\377er)i(Wic)m(h)m(tigk)m (eit,)i(da\377)d(wir)g(ihre)382 5015 y(fortlaufende)24 b(F)-8 b(unktion)24 b(un)m(ter)g(allen)f(Umst\344nden)h(sic)m (herstellen)g(m)m(\374ssen.)38 b(F\374r)23 b(diese)382 5127 y(Bereic)m(he)32 b(gibt)f(es)f(b)s(ereits)g(en)m(tsprec)m(hende)j (L\366sungen.)382 5281 y(Erh\366h)m(t)22 b(sic)m(h)f(jedo)s(c)m(h)f (die)h(Abh\344ngigk)m(eit)h(der)f(Gesellsc)m(haft)f(v)m(on)h(Online-An) m(w)m(endungen)382 5394 y(w)m(eiter,)40 b(so)c(m)m(u\377)i(hier)f(no)s (c)m(h)h(an)e(deutlic)m(hen)j(V)-8 b(erb)s(esserungen)38 b(gearb)s(eitet)g(w)m(erden,)1854 5622 y(4)p eop %%Page: 5 7 5 6 bop 382 262 a Fl(KAPITEL)31 b(1.)71 b(EINLEITUNG)p 382 299 2989 4 v 382 539 a Fp(denn)21 b(heute)g(ist)g(es)f(nic)m(h)m (ts)i(Un)m(\374blic)m(hes,)i(w)m(enn)e(In)m(ternetan)m(w)m(endungen)j (wie)c(das)f(Elek-)382 652 y(tronisc)m(he)25 b(T)-8 b(elefon)m(buc)m(h) 27 b(\(www.etb.at\),)h(T)-8 b(elebanking)26 b(o)s(der)e(der)g(Wiener)h (Stadtplan)382 764 y(f\374r)30 b(mehrere)i(Stunden)f(o)s(der)g(T)-8 b(age)31 b(einfac)m(h)g(nic)m(h)m(t)h(funktionieren.)382 927 y(Auc)m(h)41 b(in)g(Klein-)h(und)f(Mittelb)s(etrieb)s(en,)j(w)m(o)e (v)m(or)f(allem)g(auf)g(PC)g(basierte)h(ED)m(V-)382 1040 y(L\366sungen)32 b(gesetzt)f(wird,)h(k)-5 b(ann)31 b(der)g(Ausfall)g (des)g(ED)m(V-Systems)g(gra)m(vierende)i(F)-8 b(ol-)382 1153 y(gen)35 b(f\374r)g(das)g(Un)m(ternehmen)i(hab)s(en.)55 b(So)m(w)m(ohl)37 b(der)e(Ausfall)g(der)g(Pro)s(duktivit\344t)h(im)382 1266 y(Zeitraum)j(des)f(ED)m(V-Ausfalls)h(als)f(auc)m(h)h (Regre\377sanspr\374c)m(he)h(der)e(Kunden,)j(w)m(enn)382 1379 y(w)m(egen)24 b(eines)f(ED)m(V-Ausfalls)g(v)m(erein)m(barte)i (Leistungen)f(nic)m(h)m(t)h(erbrac)m(h)m(t)g(w)m(erden)f(k)m(\366n-)382 1492 y(nen,)31 b(k)m(\366nnen)g(f\374r)f(das)g(Un)m(ternehmen)j (existenzb)s(edrohend)f(w)m(erden.)382 1654 y(Es)24 b(w)m(erden)j (Systeme)d(b)s(en\366tigt,)j(die)e(garan)m(tiert)i(zur)e(V)-8 b(erf\374gung)25 b(stehen.)39 b(Im)25 b(Un)m(ter-)382 1767 y(sc)m(hied)35 b(zu)f(Ec)m(h)m(tzeitan)m(w)m(endungen)40 b(d\374rfen)34 b(kurze)g(Un)m(terbrec)m(h)m(ungen)k(\(im)c(Bereic)m(h) 382 1880 y(v)m(on)21 b(Min)m(uten\))i(auftreten,)h(w)m(enn)e(dadurc)m (h)h(die)e(K)m(osten)h(des)f(Systems)g(in)g(den)g(Bereic)m(h)382 1993 y(herk)m(\366mmlic)m(her)38 b(Systeme)e(gebrac)m(h)m(t)i(w)m (erden)g(k)m(\366nnen.)58 b(Es)35 b(m)m(\374ssen)i(also)e(Systeme)382 2106 y(gebaut)40 b(w)m(erden,)i(die)e(den)f(Ausfall)f(einzelner)i(K)m (omp)s(onen)m(ten)i(tolerieren)e(k)m(\366nnen.)382 2219 y(Diese)35 b(Systeme)h(m)m(\374ssen)g(aus)f(herk)m(\366mmlic)m(hen)j (Computern)f(b)s(estehen,)g(da)f(n)m(ur)g(so)382 2332 y(die)31 b(K)m(osten)g(gering)g(gehalten)h(w)m(erden)g(k)m(\366nnen.) 382 2495 y(Diese)26 b(Arb)s(eit)g(gibt)h(zuerst)f(einen)h(\334b)s (erblic)m(k)f(\374b)s(er)h(existierende)g(L\366sungen,)h(die)e(v)m(or) 382 2608 y(allem)40 b(mit)g(Hilfe)f(sp)s(ezieller)h(Hardw)m(are)h(arb)s (eiten;)k(ansc)m(hlie\377end)d(wird)e(eine)g(neue)382 2720 y(L\366sung)31 b(v)m(orgestellt,)h(die)e(ohne)h(sp)s(ezielle)g (Hardw)m(are)h(ausk)m(omm)m(t.)382 2883 y(In)e Fn(Kapitel)35 b(2)c Fp(wird)f(der)h(Begri\033)37 b Fn(Clustering)31 b Fp(erl\344utert;)h(der)f(Sc)m(h)m(w)m(erpunkt)i(liegt)382 2996 y(b)s(ei)d(existierenden)i(Clusterl\366sungen,)g(die)e(hohe)h(V)-8 b(erf\374gbark)m(eit)32 b(bieten.)382 3159 y(In)k Fn(Kapitel)43 b(3)37 b Fp(wird)g(das)g Fn(Design)42 b(v)m(on)f(DRBD)35 b Fp(\026)i(die)h(zen)m(trale)g(K)m(omp)s(onen)m(te)382 3272 y(des)31 b(Ho)s(c)m(h)m(v)m(erf\374gbark)m(eits-Clusters,)j(der)d (ohne)h(sp)s(ezielle)f(Hardw)m(are)i(ausk)m(omm)m(t)f(\026)382 3385 y(v)m(orgestellt.)382 3547 y(In)k Fn(Kapitel)42 b(4)37 b Fp(w)m(erden)g(f\374r)g(die)f(Implemen)m(tierung)j(v)m(on)e (DRBD)f(relev)-5 b(an)m(te)37 b Fn(T)-9 b(eile)382 3660 y(des)35 b(Lin)m(ux)f(Kernels)c Fp(v)m(orgestellt.)382 3823 y Fn(Kapitel)37 b(5)30 b Fp(b)s(ehandelt)j(die)e Fn(Implemen)m(tierung)k(und)f(erzielte)j(Leistung)f(v)m(on)382 3936 y(DRBD)p Fp(.)382 4099 y(In)20 b Fn(Kapitel)25 b(6)c Fp(wird)g(gezeigt,)j(wie)e(mit)f(dem)g(DRBD-Ger\344t)g(und)h(anderer)g (frei)f(erh\344lt-)382 4211 y(lic)m(her)32 b(Soft)m(w)m(are)h(ein)e Fn(Ho)s(c)m(h)m(v)m(erf\374gbark)m(eits-Cluster)k(implemen)m(tiert)c Fp(w)m(erden)382 4324 y(k)-5 b(ann.)1854 5622 y(5)p eop %%Page: 6 8 6 7 bop 382 1208 a Fk(Kapitel)62 b(2)382 1669 y Fm(Clustering)382 2160 y Fp(Wie)46 b(b)s(ereits)g(erw)m(\344hn)m(t)j(k)m(\366nnen,)i (preisw)m(erte,)h(ho)s(c)m(h)m(v)m(erf\374gbare)d(Systeme)e(gebaut)382 2273 y(w)m(erden,)41 b(indem)d(mehrere)h(herk)m(\366mmlic)m(he)h (Computer)g(zu)d(einem)i(Cluster)f(zusam-)382 2386 y(mengesc)m(hlossen) 32 b(w)m(erden.)45 b(Da)31 b(der)g(Begri\033)g(Clustering)i(ab)s(er)e (mehr)h(b)s(einhaltet)g(als)382 2499 y(Systeme)44 b(f\374r)f(hohe)i(V) -8 b(erf\374gbark)m(eit,)49 b(geb)s(e)43 b(ic)m(h)i(in)f(diesem)g (Kapitel)h(zuerst)f(einen)382 2612 y(\334b)s(erblic)m(k)c(\374b)s(er)f (v)m(ersc)m(hiedene)j(Cluster)e(und)f(gehe)h(danac)m(h)h(sp)s(eziell)f (auf)f(Cluster)382 2725 y(f\374r)30 b(hohe)h(V)-8 b(erf\374gbark)m(eit) 32 b(ein.)382 2884 y(Un)m(ter)d(einem)g(Cluster)g(v)m(ersteh)m(t)g(man) g(den)g(Zusammensc)m(hlu\377)h(mehrerer)g(unabh\344n-)382 2997 y(giger)35 b(Computer,)i(um)d(eine)h(Aufgab)s(e)f(zu)g(l\366sen.) 53 b(Ein)34 b(Cluster)h(un)m(tersc)m(heidet)i(sic)m(h)382 3110 y(dadurc)m(h)29 b(v)m(on)f(einem)g(Netzw)m(erk)h(v)m(on)f (Computern,)i(das)d(eine)h(v)m(erteilte)h(Applik)-5 b(ation)382 3223 y(ausf\374hrt,)31 b(da\377)f(er)h(in)f(einem)h(b)s(estimm)m(ten)h (Asp)s(ekt)d(den)i(Eindruc)m(k)h(erw)m(ec)m(kt,)g(da\377)f(es)382 3335 y(sic)m(h)g(um)f(einen)h(einzigen,)h(herk)m(\366mmlic)m(hen)h (Computer)f(handelt.)382 3495 y(Der)d(\022p)s(erfekte)f(Cluster\021)37 b(w)m(\344re)30 b(ein)f(System,)g(das)g(sic)m(h)g(in)f(allen)i(Asp)s (ekten,)e(wie)h(z.B.)382 3608 y(A)m(dministration,)40 b(Programmiermo)s(dell,)g(Repr\344sen)m(tation)e(im)f(Netzw)m(erk,)i (wie)d(ein)382 3720 y(einzelner)f(Computer)h(v)m(erh\344lt,)g(ab)s(er)e (mit)g(dem)h(Hinzuf\374gen)g(zus\344tzlic)m(her)g(Knoten)382 3833 y(seine)25 b(Leistung)g(und)g(Ausfallsic)m(herheit)h(steigern)f(k) -5 b(ann.)39 b(Die)25 b(Sic)m(h)m(tbark)m(eit)i(des)e(Clu-)382 3946 y(sters)30 b(als)g(eine)h(Einheit)g(wird)g(als)g(SSI)f(\(single)h (system)e(image\))j(b)s(ezeic)m(hnet.)42 b([P\03498)q(])382 4105 y(Die)35 b(meisten)g(der)g(heutigen)h(Clustering-Ans\344tze)g (setzen)f(sic)m(h)g(ein)g(w)m(esen)m(tlic)m(h)j(b)s(e-)382 4218 y(sc)m(heideneres)e(Ziel.)56 b(Sie)35 b(v)m(ersuc)m(hen,)j(das)d (SSI)g(f\374r)g(einen)h(b)s(estimm)m(ten)g(Zw)m(ec)m(k)h(auf-)382 4331 y(rec)m(h)m(tzuerhalten.)44 b(V)-8 b(erl\344\377t)31 b(man)g(b)s(ei)f(einer)h(Betrac)m(h)m(tung)i(solc)m(h)e(eines)g (Clusters)f(die)382 4444 y(Grenzen)37 b(des)e(SSI,)h(so)g(wird)g(die)g (T)-8 b(atsac)m(he,)40 b(da\377)c(es)f(sic)m(h)i(um)f(mehrere)h (Computer)382 4557 y(handelt,)31 b(wieder)h(sic)m(h)m(tbar.)382 4716 y(Ein)h(F)-8 b(aktor,)33 b(der)g(viele)f(k)m(ommerzielle)i (Hersteller)f(v)m(on)f(ED)m(V-Infrastruktur)h(da)m(v)m(on)382 4829 y(abgehalten)23 b(hat,)h(fortsc)m(hrittlic)m(he)h(Clustering-T)-8 b(ec)m(hnologien)26 b(zu)c(en)m(t)m(wic)m(k)m(eln,)27 b(ist)21 b(ih-)382 4942 y(re)33 b(eigene)g(Linzenzp)s(olitik.)50 b(Wird)33 b(Soft)m(w)m(are)h(f\374r)f(mehrere)h(Computer,)g(auc)m(h)g (w)m(enn)382 5055 y(es)j(sic)m(h)h(um)g(Knoten)h(eines)e(Clusters)h (handelt,)j(v)m(erk)-5 b(auft,)39 b(so)e(ist)h(f\374r)f(jeden)h(Com-) 382 5168 y(puter)i(eine)f(Lizenz)h(zu)f(erw)m(erb)s(en.)68 b(Das)39 b(ist)f(ein)i(Grund,)h(w)m(eshalb)f(viele)f(Kunden)382 5281 y(SMP-Computersysteme)30 b(v)m(orziehen,)g(da)e(hier)h(n)m(ur)g (Lizenzen)g(f\374r)f(einen)h(Computer)382 5394 y(erw)m(orb)s(en)40 b(w)m(erden)g(m)m(\374ssen,)h(ab)s(er)e(trotzdem)h(die)f(Leistung)h (mehrerer)g(CPUs)e(zur)1854 5622 y(6)p eop %%Page: 7 9 7 8 bop 382 262 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)80 b(2.1.)71 b(WISSENSCHAFTLICHE)32 b(CLUSTER)p 382 299 2989 4 v 382 539 a Fp(V)-8 b(erf\374gung)29 b(steh)m(t.)41 b(Die)28 b(Nac)m(hfrage)i(der)e(Kunden)i(wiederum)g(b)s(eein\035u\377t) f(das)f(Ange-)382 652 y(b)s(ot)j(der)h(Hersteller)h([P\03498)q(,)f (Seite)g(511].)45 b(\(Eine)32 b(Ausnahme)h(bilden)f(jene)g(Lizenzen,) 382 764 y(deren)f(Preis)g(v)m(on)f(der)h(Anzahl)g(der)g(maximal)g (erlaubten)h(Ben)m(utzer)g(abh\344ngt.\))382 927 y(Lin)m(ux)23 b(ist)e(f\374r)g(den)h(Einsatz)h(in)f(gro\377en)g(Clustern)h(viel)e(b)s (esser)g(geeignet,)k(da)d(b)s(ei)f(Lin)m(ux)382 1040 y(k)m(eine)45 b(Lizenzgeb\374hren)i(pro)e(Installation)h(anfallen.)83 b(Im)45 b(folgenden)g(eine)g(kleine)382 1153 y(\334b)s(ersic)m(h)m(t)23 b(\374b)s(er)g(die)g(v)m(ersc)m(hiedenen)h(Aufgab)s(enstellungen,)h (die)e(mit)g(Clustern)g(un)m(ter)382 1266 y(Lin)m(ux)31 b(gel\366st)g(w)m(erden)h(k)m(\366nnen.)41 b([Sha00)q(])382 1602 y Fj(2.1)130 b(Wissensc)l(haftlic)l(he)46 b(Cluster)382 1855 y Fp(F\374r)31 b(aufw)m(endige)j(Sim)m(ulationen)g(wird)e(oft)f (eine)h(derart)g(gro\377e)g(Anzahl)g(an)g(Rec)m(hen-)382 1968 y(op)s(erationen)25 b(b)s(en\366tigt,)g(da\377)f(ein)g(einzelner)h (Computer)g(viele)e(Jahre)i(b)s(en\366tigen)f(w\374r-)382 2081 y(de,)h(um)f(die)g(gesam)m(te)h(Sim)m(ulation)g(durc)m (hzuf\374hren.)41 b(Es)23 b(gibt)h(in)g(diesem)g(Bereic)m(h)h(den)382 2194 y(Ansatz,)33 b(eine)g(Applik)-5 b(ation)34 b(sp)s(eziell)e(f\374r) h(den)f(Einsatz)i(auf)e(einem)i(Cluster)f(zu)g(en)m(t-)382 2306 y(wic)m(k)m(eln.)42 b(In)30 b(diesem)h(F)-8 b(all)32 b(ist)e(der)h(En)m(t)m(wic)m(kler)i(selbst)d(f\374r)h(die)f(Aufteilung) h(der)g(Last)382 2419 y(auf)25 b(die)h(einzelnen)h(Knoten)f(des)f (Clusters)h(zust\344ndig.)40 b(Das)25 b(SSI)g(wird)h(hier)g(mit)g (Hilfe)382 2532 y(einer)f(Bibliothek)h(den)f(Applik)-5 b(ationen)26 b(zur)f(V)-8 b(erf\374gung)26 b(gestellt.)39 b(Die)25 b(b)s(ek)-5 b(ann)m(testen)382 2645 y(Bibliothek)m(en)32 b(sind)e(PVM)h([Sun90)q(])f(und)h(MPI)f([MPI97].)382 2981 y Fj(2.2)130 b(Lastv)l(erteilung)382 3237 y Fo(2.2.1)112 b(hohe)38 b(CPU-Last)382 3459 y Fp(Ein)33 b(anderer)g(Ansatz)g(b)s (eruh)m(t)g(darauf,)g(die)g(T)-8 b(atsac)m(he,)35 b(da\377)d(es)g(sic)m (h)h(um)g(einen)g(Clu-)382 3572 y(ster)44 b(handelt,)49 b(v)m(or)c(der)g(Applik)-5 b(ation)45 b(zu)g(v)m(erb)s(ergen.)84 b(In)44 b(diesem)h(F)-8 b(all)45 b(m)m(u\377)g(die)382 3685 y(Cluster-Soft)m(w)m(are)38 b(f\374r)d(die)h(Aufteilung)g(der)g (Last)f(auf)h(die)f(einzelnen)i(Knoten)g(sor-)382 3798 y(gen.)47 b(Dies)32 b(wird)h(in)g(MOSIX,)f(einer)h(Cluster-Soft)m(w)m (are,)j(durc)m(h)e(die)f(Migration)g(v)m(on)382 3910 y(An)m(w)m(endungsprozessen)28 b(erm\366glic)m(h)m(t.)42 b(Hier)26 b(\034ndet)g(sic)m(h)h(das)e(SSI)h(in)g(der)g(Systemruf-)382 4023 y(sc)m(hnittstelle)32 b(des)e(Lin)m(ux-MOSIX)h(Kernels)g(wieder.) 382 4186 y(Auf)g(die)h(Grenzen)h(des)f(SSI)g(st\366\377t)g(der)g (MOSIX-Cluster)g(b)s(ei)g(Netzw)m(erkv)m(erbindun-)382 4299 y(gen.)40 b(W)-8 b(enn)28 b(eine)h(Applik)-5 b(ation)28 b(einen)h(IP-So)s(c)m(k)m(et)g(v)m(erw)m(endet,)h(k)-5 b(ann)28 b(sie)f(nic)m(h)m(t)j(mehr)382 4412 y(migriert)h(w)m(erden.) 382 4705 y Fo(2.2.2)112 b(hohe)38 b(Netzw)m(erk-Last)382 4927 y Fp(V)-8 b(or)23 b(allem)g(f\374r)g(W)-8 b(ebserv)m(er)23 b(mit)g(vielen)g(Zugri\033en)h(baut)f(man)g(Cluster,)i(b)s(ei)e(denen)g (die)382 5040 y(hereink)m(ommenden)32 b(Anforderungen)f(der)e(Clien)m (ts)h(auf)f(mehrere)i(W)-8 b(ebserv)m(er)30 b(aufge-)382 5152 y(teilt)40 b(w)m(erden.)70 b(Auf)39 b(diesem)h(Gebiet)h(gibt)f(es) f(sp)s(eziell)h(in)g(letzter)g(Zeit)g(zahlreic)m(he)382 5265 y(En)m(t)m(wic)m(klungen.)1854 5622 y(7)p eop %%Page: 8 10 8 9 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439 b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989 4 v 382 539 a Fn(RDNS)44 b Fp(Die)24 b(ersten)f(L\366sungen)i (basierten)f(auf)f(RRDNS)f(\(round)i(robin)g(dns\),)h(w)m(ob)s(ei)609 652 y(der)46 b(DNS)e(\(domain)j(name)f(system\))e(Serv)m(er)i(mit)g (gleic)m(her)h(V)-8 b(erteilung)46 b(die)609 764 y(IP-A)m(dressen)c (der)f(einzelnen)h(Cluster-Knoten)h(an)e(die)g(Clien)m(ts)h(w)m (eitergibt.)609 877 y(Der)33 b(gr\366\377te)h(Nac)m(h)m(teil)g(dieser)f (L\366sung)h(liegt)f(darin,)h(da\377)f(die)g(Last)g(un)m(ter)h(den)609 990 y(Cluster-Knoten)42 b(meist)f(sc)m(hlec)m(h)m(t)h(v)m(erteilt)f (wird.)71 b(Die)40 b(Gr\374nde)h(daf\374r)f(sind)609 1103 y(vielseitig,)26 b(einer)e(da)m(v)m(on)h(ist,)f(da\377)g(der)g (DNS-Serv)m(er)h(nic)m(h)m(t)g(k)m(on)m(trollieren)h(k)-5 b(ann,)609 1216 y(wie)31 b(lange)g(die)g(IP-A)m(dresse)f(clien)m (t-seitig)i(gesp)s(eic)m(hert)g(wird.)382 1404 y Fn(Application)j(lev)m (el)g(Pro)m(xies)45 b Fp(Bei)35 b(dieser)h(L\366sung)g(wird)f(ein)h (Pro)m(xy-Serv)m(er,)i(wie)609 1517 y(er)22 b(v)m(on)g(der)g(Clien)m (t-Seite)i(b)s(ek)-5 b(ann)m(t)23 b(ist,)g(auf)f(der)g(Serv)m(er-Seite) i(eingesetzt.)38 b(Die-)609 1630 y(ser)d(Pro)m(xy)h(k)m(enn)m(t)h(die)f (Lastv)m(erteilung)h(im)f(Cluster)g(und)g(leitet)g(die)f(Anfrage)609 1742 y(des)24 b(Clien)m(ts)h(an)g(den)f(Knoten)i(mit)e(der)h (geringsten)g(Last)g(w)m(eiter.)39 b(Diese)25 b(Arc)m(hi-)609 1855 y(tektur)33 b(hat)g(jedo)s(c)m(h)g(den)g(Nac)m(h)m(teil,)i(da\377) e(die)f(maximale)i(Gr\366\377e)f(des)f(Clusters)609 1968 y(durc)m(h)g(die)e(Leistungsf\344higk)m(eit)i(des)f(Pro)m(xys)f(b)s (egrenzt)h(ist.)382 2156 y Fn(IP)j(lev)m(el)h(Sc)m(heduling)45 b Fp(Es)37 b(gibt)h(\026)f(eb)s(enso)g(wie)h(b)s(ei)f(b)s(ei)g(der)g (Pro)m(xy-L\366sung)i(\026)609 2269 y(einen)31 b(Computer,)g(der)f(die) g(Anforderungen)h(auf)e(die)h(Knoten)h(aufteilt;)g(aller-)609 2382 y(dings)38 b(gesc)m(hieh)m(t)i(dies)f(durc)m(h)g(NA)-8 b(T)38 b(\(net)m(w)m(ork)i(address)e(translations\).)65 b(Ein)609 2495 y(V)-8 b(orteil)37 b(gegen)m(\374b)s(er)g(der)f (L\366sung)g(mit)g(dem)g(Pro)m(xy)g(ist,)g(da\377)g(nic)m(h)m(t)i (f\374r)d(jedes)609 2608 y(Protok)m(oll)j(ein)e(sp)s(ezieller)h(Pro)m (xy)g(en)m(t)m(wic)m(k)m(elt)i(w)m(erden)e(m)m(u\377.)59 b(Die)37 b(maximale)609 2720 y(Gr\366\377e)h(des)g(Clusters)g(wird)h (zw)m(ar)g(w)m(eiterhin)g(durc)m(h)h(die)e(Leistungsf\344higk)m(eit)609 2833 y(des)33 b(Rec)m(hners)g(b)s(egrenzt,)h(jedo)s(c)m(h)f(ist)f(NA)-8 b(T)33 b(im)g(Kernel)g(implemen)m(tiert,)j(w)m(as)609 2946 y(diesen)31 b(Nac)m(h)m(teil)h(et)m(w)m(as)g(en)m(tsc)m(h\344rft.) 609 3059 y(Eine)e(andere)h(V)-8 b(arian)m(te)31 b(wird)f(mit)f(Hilfe)g (v)m(on)h(IP-T)-8 b(unnelling)32 b(implemen)m(tiert.)609 3172 y(Hier)37 b(w)m(erden)h(die)e(IP-P)m(ak)m(ete)j(innerhalb)f (anderer)f(IP-P)m(ak)m(ete)h(zu)f(den)g(Kno-)609 3285 y(ten)e(des)f(Clusters)g(b)s(ef\366rdert.)53 b(F\374r)34 b(den)g(angespro)s(c)m(henen)j(Knoten)e(en)m(tsteh)m(t)609 3398 y(der)30 b(Eindruc)m(k,)i(da\377)e(diese)g(Anforderung)h(direkt)f (v)m(om)g(Clien)m(t)h(k)m(omm)m(t,)h(daher)609 3511 y(sc)m(hic)m(kt)38 b(er)f(die)g(An)m(t)m(w)m(ort)i(direkt)e(zum)g(Clien)m(t)h(zur\374c)m (k.)60 b(Im)37 b(Un)m(tersc)m(hied)h(zu)609 3624 y(den)24 b(L\366sungen)g(mit)g(Pro)m(xy)g(und)f(NA)-8 b(T)24 b(ist)f(hier)h(die) f(Netzlast)h(f\374r)f(den)g(Knoten,)609 3737 y(der)31 b(die)g(Aufteilung)f(der)h(Anforderungen)h(\374b)s(ernimm)m(t,)g(viel)e (kleiner.)382 3999 y(Im)k(Rahmen)g(des)g(Lin)m(ux)h(Virtual)g(Serv)m (er)g(Pro)5 b(jektes)34 b([ZJW99)q(])g(wurde)h(eine)g(lin)m(ux-)382 4112 y(basierte)c(Implemen)m(tierung)i(des)d(IP-Lev)m(el-Sc)m (heduling-Ansatzes)k(gesc)m(ha\033en.)382 4275 y(So)m(w)m(ohl)41 b(b)s(ei)d(diesem)i(Cluster,)h(wie)e(auc)m(h)h(b)s(ei)f(Clustern)h (f\374r)e(hohe)i(V)-8 b(erf\374gbark)m(eit,)382 4387 y(wird)31 b(das)f(SSI)g(aussc)m(hlie\377lic)m(h)j(auf)d(Netzw)m(erk)m (eb)s(ene)i(erf\374llt.)382 4724 y Fj(2.3)130 b(Hohe)44 b(V)-11 b(erf\374gbark)l(eit)382 4976 y Fp(F\374r)33 b(viele)h(An)m(w)m(endungen)i(ist)d(hohe)h(V)-8 b(erf\374gbark)m(eit)34 b(\(high)g(a)m(v)-5 b(ailabilit)m(y\))36 b(die)d(wic)m(h-)382 5089 y(tigste)e(Eigensc)m(haft.)42 b(Beispiele)31 b(daf\374r)g(sind)g (File-,)g(Prin)m(t-,)h(Daten)m(bank-,)g(Gatew)m(a)m(y-)382 5202 y(und)38 b(Applik)-5 b(ations-Serv)m(er)39 b(in)e(Un)m(ternehmen,) k(ab)s(er)d(auc)m(h)g(\366\033en)m(tlic)m(h)h(zug\344nglic)m(he)382 5315 y(W)-8 b(eb-Serv)m(er.)1854 5622 y(8)p eop %%Page: 9 11 9 10 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439 b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989 4 v 382 539 a Fo(2.3.1)112 b(V)-9 b(erf\374gbark)m(eit)382 760 y Fp(V)h(erf\374gbark)m(eit)32 b(\(a)m(v)-5 b(ailabilit)m(y\))32 b(wird)f(wie)g(folgt)f(de\034niert)i([K)m(op97)r(]:)1416 1056 y Fi(A)26 b Fh(=)1821 994 y Fi(M)10 b(T)j(T)g(F)p 1615 1035 712 4 v 1615 1118 a(M)d(T)j(T)g(F)33 b Fh(+)20 b Fi(M)10 b(T)j(T)g(R)382 1352 y Fp(MTTF)185 b(Durc)m(hsc)m(hnittlic)m (he)42 b(Zeit)d(der)f(fehlerfreien)h(F)-8 b(unktion)40 b(\(mean)f(time)f(to)839 1465 y(failure\).)382 1652 y(MTTR)177 b(Durc)m(hsc)m(hnittlic)m(he)34 b(Dauer)d(einer)g(Reparatur)g(\(mean)g (time)g(to)g(repair\).)382 1840 y(MTBF)186 b(Die)39 b(durc)m(hsc)m (hnittlic)m(he)j(Zeit)d(zwisc)m(hen)h(zw)m(ei)g(Ausf\344llen)e(ist)g (de\034niert)839 1953 y(als)30 b Fi(M)10 b(T)j(B)5 b(F)38 b Fh(=)25 b Fi(M)10 b(T)j(T)g(F)33 b Fh(+)20 b Fi(M)10 b(T)j(T)g(R)30 b Fp(\(mean)h(time)g(b)s(et)m(w)m(een)h(failures\).)382 2215 y(Dieser)d(Ausdruc)m(k)h(k)-5 b(ann)30 b(erst)f(am)h(Ende)g(der)g (Leb)s(ensdauer)h(eines)e(Systems)g(b)s(erec)m(h-)382 2328 y(net)38 b(w)m(erden.)63 b(Betrac)m(h)m(tet)40 b(man)e(allerdings) g(die)g(V)-8 b(erf\374gbark)m(eit)39 b(eines)e(Systems)g(in)382 2441 y(einem)h(Jahr,)i(so)e(ergibt)g(sic)m(h)g(folgende)g(T)-8 b(ab)s(elle)39 b(f\374r)e(die)h(maximal)g(erlaubte)h(Aus-)382 2554 y(fallszeit)30 b(eines)h(Systems.)p 931 2704 1891 4 v 929 2817 4 113 v 981 2783 a(V)-8 b(erf\374gbark)m(eit)p 1564 2817 V 101 w(erlaubte)32 b(Ausfallszeit)p 2468 2817 V 100 w(Klasse)p 2820 2817 V 931 2820 1891 4 v 931 2837 V 929 2950 4 113 v 1150 2916 a(99)f(\045)p 1564 2950 V 586 w(88)g(h)p 2468 2950 V 520 w(2)p 2820 2950 V 931 2953 1891 4 v 929 3066 4 113 v 1115 3032 a(99,9)g(\045)p 1564 3066 V 574 w(9)f(h)p 2468 3066 V 543 w(3)p 2820 3066 V 931 3069 1891 4 v 929 3182 4 113 v 1093 3148 a(99,99)h(\045)p 1564 3182 V 478 w(52)g(min)p 2468 3182 V 470 w(4)p 2820 3182 V 931 3185 1891 4 v 929 3298 4 113 v 1070 3264 a(99,999)g(\045)p 1564 3298 V 479 w(5)f(min)p 2468 3298 V 493 w(5)p 2820 3298 V 931 3302 1891 4 v 929 3414 4 113 v 1047 3381 a(99,9999)i(\045)p 1564 3414 V 450 w(31)f(sec)p 2468 3414 V 487 w(6)p 2820 3414 V 931 3418 1891 4 v 382 3609 a(V)-8 b(ergleic)m(h)m(t)35 b(man)f(dies)f(mit)g(der)g(T)-8 b(atsac)m(he,)36 b(da\377)d(die)g (meisten)h(Lin)m(ux-Distributoren)382 3722 y(mindestens)i(4)g(mal)h(im) f(Jahr)g(neue)h(Distributionen)g(herausbringen,)j(so)35 b(ist)h(es)f(er-)382 3835 y(sic)m(h)m(tlic)m(h,)27 b(da\377)c(eine)h(V) -8 b(erf\374gbark)m(eit)24 b(v)m(on)g(mehr)f(als)g(99)g(\045)h(n)m(ur)f (mit)h(zw)m(ei)g(Systemen)f(zu)382 3948 y(erreic)m(hen)j(ist,)f(v)m(on) f(denen)h(ein)g(System)f(in)g(Pro)s(duktion)h(bleib)s(en)f(k)-5 b(ann,)26 b(w)m(\344hrend)g(auf)382 4061 y(dem)e(anderen)g(W)-8 b(artungsarb)s(eiten)26 b(durc)m(hgef\374hrt)f(w)m(erden.)40 b(Zw)m(ar)24 b(ist)f(die)h(Installati-)382 4174 y(on)29 b(einer)g(Lin)m(ux-Distribution)j(heute)d(w)m(esen)m(tlic)m(h)j(einfac) m(her)e(als)e(fr\374her,)i(do)s(c)m(h)f(nac)m(h)382 4287 y(dem)h(Einspielen)i(neuer)e(Programm)m(v)m(ersionen)k(sind)c(oft)f (\304nderungen)j(an)e(K)m(on\034gu-)382 4400 y(rations\034les)35 b(not)m(w)m(endig.)57 b(\(Diese)35 b(Problematik)h(b)s(etri\033t)f(nic) m(h)m(t)i(alle)e(Cluster,)h(siehe)382 4513 y(auc)m(h)31 b(Absc)m(hnitt)h(2.3.1.1.\))382 4675 y(V)-8 b(erzic)m(h)m(tet)26 b(man)e(auf)f(die)g(laufende)i(Aktualisierung)f(der)f(Lin)m (ux-Distribution,)28 b(so)23 b(ist)382 4788 y(es)32 b(b)s(ei)f (\366\033en)m(tlic)m(h)j(zug\344nglic)m(hen)h(Systemen)e(eine)f (Mindestanforderung,)i(die)f(neue-)382 4901 y(sten)d(sic)m (herheitsrelev)-5 b(an)m(ten)34 b(Aktualisierungen)d(einzuspielen.)382 5064 y(Betrac)m(h)m(tet)j(man)d(n)m(ur)h(die)g(Hardw)m(are,)h(dann)f (ist)f(es)g(n)m(ur)h(mehr)g(ein)f(kleiner)h(Sc)m(hritt,)382 5177 y(aus)21 b(zw)m(ei)h(unabh\344ngigen)i(Systemen)d(einen)h(Cluster) g(zu)f(bauen,)j(b)s(ei)d(dem)h(ein)f(Knoten)382 5290 y(aktiv)30 b(das)g(Service)h(an)m(bietet)h(und)f(der)g(zw)m(eite)g (Knoten)h(den)e(aktiv)m(en)h(\374b)s(erw)m(ac)m(h)m(t.)1854 5622 y(9)p eop %%Page: 10 12 10 11 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439 b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989 4 v 382 539 a Fp(P\034ster)36 b([P\03498)r(])f(f\374hrt)h(auc)m(h)h (den)f(Begri\033)g(der)g(V)-8 b(erf\374gbark)m(eitsklasse)36 b(ein.)57 b(Er)36 b(gibt)382 652 y(folgende)31 b(Beispiele:)p 633 801 2486 4 v 631 914 4 113 v 718 881 a(1-2)p 922 914 V 1070 w(LANs)p 3117 914 V 633 918 2486 4 v 631 1031 4 113 v 756 997 a(2)p 922 1031 V 735 w(herk)m(\366mmlic)m(he)i (Computer)p 3117 1031 V 633 1034 2486 4 v 631 1147 4 113 v 683 1113 a(3\(-4\))p 922 1147 V 101 w(Ho)s(c)m(h)m(v)m (erf\374gbark)m(eits-Cluster)g(aus)d(COTS-K)m(omp)s(onen)m(ten)p 3117 1147 V 633 1150 2486 4 v 631 1263 4 113 v 683 1229 a(\(3-\)4)p 922 1263 V 917 w(Mainframes)p 3117 1263 V 633 1266 2486 4 v 631 1379 4 113 v 756 1345 a(5)p 922 1379 V 633 w(Computer)i(des)e(T)-8 b(elefonsystems)p 3117 1379 V 633 1383 2486 4 v 631 1496 4 113 v 756 1462 a(6)p 922 1496 V 596 w(Bordcomputer)32 b(eines)f(Flugzeuges)p 3117 1496 V 633 1499 2486 4 v 382 1690 a(COTS)j(steh)m(t)f(f\374r)g (commercial-o\033-the-shelf,)j(d.h.)49 b(K)m(omp)s(onen)m(ten,)36 b(die)d(w)m(eitl\344u\034g)382 1803 y(v)m(erf\374gbar)e(sind.)382 1966 y(Bei)22 b(Systemen)g(der)g(h\366)s(c)m(hsten)g(Klasse)g(wird)g (zumeist)g(v)m(on)g(fehlertolerierenden)i(\(fault)382 2079 y(toleran)m(t\))38 b(Systemen)f(gespro)s(c)m(hen.)59 b(Bisher)36 b(wurden)h(aussc)m(hlie\377lic)m(h)i(Systeme,)f(b)s(ei)382 2192 y(denen)k(diese)g(Eigensc)m(haft)h(in)f(Hardw)m(are)h(implemen)m (tiert)h(wurde)e(und)g(somit)g(der)382 2305 y(Ausfall)d(einer)h(K)m (omp)s(onen)m(te)i(der)e(Hardw)m(are)h(f\374r)e(die)h(Umgebung)h(nic)m (h)m(t)g(sic)m(h)m(tbar)382 2418 y(w)m(ar,)31 b(so)f(b)s(ezeic)m(hnet.) 382 2580 y(Da)37 b(Kunden)g(den)h(Begri\033)f (\022fehlertolerierend\021)46 b(gerne)38 b(h\366ren,)h(wird)e(dieser)g (Begri\033)382 2693 y(o)s(der)k(Ab)m(w)m(andlungen)j(wie)e(\022soft)m (w)m(are)g(fault)g(toleran)m(t\021)50 b(auc)m(h)43 b(gerne)f(v)m(on)f (\034ndigen)382 2806 y(An)m(bietern)29 b(v)m(on)f(Ho)s(c)m(h)m(v)m (erf\374gbark)m(eits-Clustern)k(v)m(erw)m(endet.)41 b(Ho)s(c)m(h)m(v)m (erf\374gbark)m(eits-)382 2919 y(Cluster)31 b(\(high)g(a)m(v)-5 b(ailabilit)m(y)32 b(clusters\))f(w)m(erden)h(im)e(folgendem)i(als)e (HA-Cluster)h(b)s(e-)382 3032 y(zeic)m(hnet.)382 3322 y Fn(2.3.1.1)103 b(Betriebszust\344nde)382 3543 y Fp(Eine)40 b(Un)m(terbrec)m(h)m(ung)j(des)c(Betrieb)s(es)g(w)m(egen)i(eines)f (Ereignisses,)i(das)d(b)s(ereits)g(im)382 3656 y(V)-8 b(orhinein)43 b(b)s(ek)-5 b(ann)m(t)43 b(ist,)h(wird)f(als)e(geplan)m (te)j(Un)m(terbrec)m(h)m(ung)h(\(planned)e(outage\))382 3769 y(b)s(ezeic)m(hnet.)77 b(In)41 b(diese)h(Kategorie)i(f\344llt)d (auc)m(h)i(das)f(ob)s(en)g(genann)m(te)i(Beispiel)e(der)382 3882 y(Aktualisierung)31 b(der)g(Systemsoft)m(w)m(are.)382 4045 y(Das)23 b(Gegenst\374c)m(k)h(dazu)f(sind)g(\(nic)m(h)m(t)i (geplan)m(te\))g(Ausf\344lle)e(\(unplanned)i(outages\),)g(die)382 4158 y(\026)31 b(wie)g(der)g(Name)g(b)s(ereits)f(v)m(erm)m(uten)j (l\344\377t)e(\026)g(auf)f(nic)m(h)m(t)j(v)m(orherzusehende)f(Ereig-) 382 4271 y(nisse)i(zur\374c)m(kgehen.)53 b(In)33 b(diese)i(Kategorie)g (fallen)f(Ausf\344lle)g(v)m(on)g(Hardw)m(arek)m(omp)s(o-)382 4384 y(nen)m(ten,)h(bisher)e(nic)m(h)m(t)i(b)s(ek)-5 b(ann)m(te)33 b(Soft)m(w)m(arefehler)i(und)f(Ereignisse)f(der)g (Umgebung)382 4497 y(\(z.B.)e(Stromausfall\).)382 4659 y(Nic)m(h)m(t)d(alle)f(Computersysteme)h(m)m(\374ssen)f(jedo)s(c)m(h)g (rund)g(um)g(die)g(Uhr)g(v)m(erf\374gbar)g(sein.)382 4772 y(Ein)e(System)g(f\374r)f(den)h(Aktienhandel)h(m)m(u\377)g(z.B.)e (n)m(ur)i(w)m(\344hrend)g(der)f(B\366rsen\366\033n)m(ungs-)382 4885 y(zeiten)j(v)m(erf\374gbar)h(sein.)39 b(Bei)28 b(diesen)g (Systemen)g(k)-5 b(ann)28 b(der)g(Betrieb)g(zu)g(jenen)g(Zeiten)382 4998 y(un)m(terbro)s(c)m(hen)j(w)m(erden,)g(in)d(denen)i(die)e(V)-8 b(erf\374gbark)m(eit)31 b(des)d(Systems)g(ohnehin)i(nic)m(h)m(t)382 5111 y(erforderlic)m(h)36 b(ist;)g(die)e(V)-8 b(erf\374gbark)m(eit)36 b(wird)f(n)m(ur)g(\374b)s(er)f(den)h(Zeitraum,)i(der)d(v)m(on)h(In-)382 5224 y(teresse)30 b(ist,)g(b)s(erec)m(hnet.)1831 5622 y(10)p eop %%Page: 11 13 11 12 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439 b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989 4 v 382 2095 a currentpoint currentpoint translate 0.81702 0.81702 scale neg exch neg exch translate 382 2095 a @beginspecial 89 @llx 583 @lly 528 @urx 825 @ury 4390 @rwi @setspecial %%BeginDocument: /home/philipp/diplomarbeit//ha-cluster.ps %!PS-Adobe-3.0 EPSF-3.0 %%For: Philipp Reisner %%CreationDate: Wed Mar 29 00:02:16 2000 %%Title: ha-cluster.ps %%Creator: Sketch 0.6.5 %%Pages: 1 %%BoundingBox: 89 583 528 825 %%Extensions: CMYK %%DocumentSuppliedResources: (atend) %%DocumentNeededResources: font Times-Roman %%EndComments %%BeginProlog %%BeginResource: procset Linux-Sketch-Procset 1.0 2 /SketchDict 100 dict def SketchDict begin /bd { bind def } bind def /x { exch } bd /xd { exch def } bd /PI 3.14159265358979323846264338327 def /radgrad { 180 mul PI div } bd /skstartmatrix matrix currentmatrix def /tmpmat matrix def /ISOLatin1Encoding dup where { pop pop } { [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def } ifelse /arct dup where {pop pop} { /arct {arcto pop pop pop pop} bd } ifelse /size 0 def /fontname 0 def /newfont 0 def /sf { /size xd /fontname xd fontname findfont dup /Encoding get StandardEncoding eq { dup length dict /newfont xd { 1 index /FID ne { newfont 3 1 roll put } { pop pop } ifelse } forall newfont /Encoding ISOLatin1Encoding put fontname newfont definefont } if size scalefont setfont } bd /pusht {matrix currentmatrix} bd /popt {setmatrix} bd /pushc {gsave} bd /popc {grestore} bd /rgb {setrgbcolor} bd /w { setlinewidth } bd /j { setlinejoin } bd /J { setlinecap } bd /d { setdash } bd /F { eofill } bd /f { closepath F } bd /S { pusht skstartmatrix setmatrix stroke popt } bd /s { closepath S } bd /m { moveto } bd /l { lineto } bd /c { curveto } bd /txt { /tmpmat tmpmat currentmatrix def dup type /arraytype eq {concat} {translate} ifelse 0 0 m tmpmat } bd /T {txt x show popt} bd /P {txt x true charpath popt} bd /TP {txt x dup show 0 0 m true charpath popt} bd /C {newpath 0 360 arc} bd /R { 2 copy m x 2 index l x 2 index x l l closepath } bd /ellipse { dup type /arraytype eq { pusht x concat 0 0 1.0 C popt } { pusht 5 1 roll 4 -1 roll concat newpath dup 2 eq { 0 0 m } if 3 1 roll radgrad x radgrad x 0 0 1 5 -2 roll arc 0 ne { closepath } if popt } ifelse } bd /radius1 0 def /radius2 0 def /factor 0 def /rect { dup type /arraytype eq { pusht x concat 0 0 m 1 0 l 1 1 l 0 1 l closepath popt } { /radius2 xd /radius1 xd pusht x concat radius1 radius2 div 1 scale 0 radius2 m 0 1 radius2 1 radius2 arct radius2 radius1 div dup 1 1 index 0 radius2 arct 0 0 0 radius2 arct 0 0 0 1 radius2 arct closepath popt } ifelse } bd /buf 0 def /width 0 def /height 0 def /skcimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width 3 mul string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind false 3 colorimage tmpmat setmatrix } bd /skgimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind image tmpmat setmatrix } bd /rclip { 4 2 roll m dup 0 x rlineto x 0 rlineto neg 0 x rlineto closepath clip } bd /skeps { 10 dict begin /sk_state save def concat 3 index neg 3 index neg translate rclip 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /sk_dict_count countdictstack def /sk_count count 1 sub def userdict begin /showpage { } def /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bd /skepsend { count sk_count sub { pop } repeat countdictstack sk_dict_count sub { end } repeat sk_state restore end } bd /gradidx 0 def /gradient { 3 mul array /gradidx 0 def } bd /$ { 3 index gradidx 5 -1 roll put 2 index gradidx 1 add 4 -1 roll put 1 index gradidx 2 add 3 -1 roll put /gradidx gradidx 3 add def } bd /! { 3 { dup dup gradidx dup 3 1 roll 3 sub get put /gradidx gradidx 1 add def } repeat } bd /gradcolor { 3 mul dup 2 add 1 exch % idx 1 idx+2 { 1 index exch % array array i get % array component exch % component array } for 4 1 roll } bd /x0 0 def /y0 0 def /x1 0 def /y1 0 def /left 0 def /right 0 def /top 0 def /bottom 0 def /numcolors 0 def /axial { /y1 xd /x1 xd /y0 xd /x0 xd dup length 3 idiv /numcolors xd pusht exch % ctm array x0 x1 ne y0 y1 ne or { x0 y0 translate [x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath 0 gradcolor rgb clippath f 0 1 numcolors 1 sub { dup numcolors div 3 1 roll gradcolor rgb exch bottom right top R f } for } if pop popt } bd /r0 0 def /r1 0 def /dr 0 def /radial { /r1 xd /r0 xd /y0 xd /x0 xd /dr r1 r0 sub def dup length 3 idiv /numcolors xd pusht exch % ctm array r0 r1 ne { x0 y0 translate clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb clippath f dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse { dup numcolors div dr mul r0 add 3 1 roll gradcolor rgb exch 0 0 3 -1 roll C f } for } if pop popt } bd /max { 2 copy lt {exch} if pop } bd /conical { pusht 5 1 roll 3 1 roll /y0 xd /x0 xd x0 y0 translate radgrad rotate dup length 3 idiv /numcolors xd clippath flattenpath pathbbox newpath 4 { abs 4 1 roll} repeat 3 { max } repeat 2 mul dup scale 0 gradcolor rgb 0 0 1 0 360 arc f 1 1 numcolors 1 sub { dup numcolors div 180 mul 3 1 roll gradcolor rgb exch 0 0 moveto 0 0 1 4 -1 roll dup neg arc closepath f } for pop popt } bd /XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def /tileimage2 { exch 4 2 roll /height xd /width xd mark /components 2 index /PatternType 1 /PaintType 1 /TilingType 1 /BBox [0 0 width height] /XStep width /YStep height /PaintProc { begin XStep YStep 8 matrix imagedata false components colorimage end } counttomark 2 div cvi dup dict begin { def } repeat pop currentdict end dup /imagedata 4 -1 roll width height mul mul string currentfile exch readhexstring pop put exch makepattern setpattern clippath eofill } bd /tileimage1 { concat /components xd /height xd /width xd /imagedata currentfile width height mul components mul string readhexstring pop def clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd left width div floor width mul bottom height div floor height mul translate top bottom sub height div ceiling cvi { gsave right left sub width div ceiling cvi { width height 8 matrix components 1 eq { { imagedata } image } { imagedata false components colorimage } ifelse width 0 translate } repeat grestore 0 height translate } repeat } bd /makepattern where { pop /tileimage /tileimage2 load def } { /tileimage /tileimage1 load def } ifelse end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Roman 10.433 setmiterlimit %%EndSetup %%Page: 1 1 SketchDict begin newpath 382.949 762.521 m 385.783 759.686 l 408.461 759.686 l 411.295 762.521 l closepath 0.8 0.8 0.8 rgb F 382.949 762.521 m 385.783 759.686 l 408.461 759.686 l 411.295 762.521 l 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [34.0158 0 0 -28.3465 380.114 790.867] rect gsave 0.8 0.8 0.8 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [28.3465 0 0 -22.6772 382.949 788.033] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [39.6282 -2.12668 -3.43822 -11.171 377.612 757.907] rect S newpath 378.622 755.581 m 379.754 755.52 l S newpath 376.559 748.878 m 377.691 748.818 l S newpath 377.075 750.554 m 378.207 750.493 l S newpath 377.591 752.23 m 378.723 752.169 l S newpath 378.106 753.905 m 379.239 753.844 l S newpath 380.32 755.49 m 381.453 755.429 l S newpath 378.258 748.787 m 379.39 748.726 l S newpath 378.773 750.463 m 379.905 750.402 l S newpath 379.289 752.138 m 380.421 752.078 l S newpath 379.805 753.814 m 380.937 753.753 l S newpath 382.019 755.399 m 383.151 755.338 l S newpath 379.956 748.696 m 381.088 748.635 l S newpath 380.472 750.372 m 381.604 750.311 l S newpath 380.987 752.047 m 382.12 751.986 l S newpath 381.503 753.723 m 382.635 753.662 l S newpath 383.717 755.307 m 384.849 755.247 l S newpath 381.654 748.605 m 382.786 748.544 l S newpath 382.17 750.28 m 383.302 750.22 l S newpath 382.686 751.956 m 383.818 751.895 l S newpath 383.201 753.632 m 384.334 753.571 l S newpath 385.416 755.216 m 386.548 755.155 l S newpath 383.353 748.514 m 384.485 748.453 l S newpath 383.868 750.189 m 385.001 750.129 l S newpath 384.384 751.865 m 385.516 751.804 l S newpath 384.9 753.541 m 386.032 753.48 l S newpath 387.114 755.125 m 388.246 755.064 l S newpath 385.051 748.423 m 386.183 748.362 l S newpath 385.567 750.098 m 386.699 750.037 l S newpath 386.082 751.774 m 387.215 751.713 l S newpath 386.598 753.449 m 387.73 753.389 l S newpath 388.812 755.034 m 389.944 754.973 l S newpath 386.749 748.331 m 387.882 748.271 l S newpath 387.265 750.007 m 388.397 749.946 l S newpath 387.781 751.683 m 388.913 751.622 l S newpath 388.296 753.358 m 389.429 753.298 l S newpath 390.511 754.943 m 391.643 754.882 l S newpath 388.448 748.24 m 389.58 748.18 l S newpath 388.963 749.916 m 390.096 749.855 l S newpath 389.479 751.592 m 390.611 751.531 l S newpath 389.995 753.267 m 391.127 753.206 l S newpath 392.209 754.852 m 393.341 754.791 l S newpath 390.146 748.149 m 391.278 748.088 l S newpath 390.662 749.825 m 391.794 749.764 l S newpath 391.177 751.5 m 392.31 751.44 l S newpath 391.693 753.176 m 392.825 753.115 l S newpath 393.907 754.761 m 395.04 754.7 l S newpath 391.844 748.058 m 392.977 747.997 l S newpath 392.36 749.734 m 393.492 749.673 l S newpath 392.876 751.409 m 394.008 751.348 l S newpath 393.392 753.085 m 394.524 753.024 l S newpath 395.606 754.669 m 396.738 754.609 l S newpath 393.543 747.967 m 394.675 747.906 l S newpath 394.058 749.642 m 395.191 749.582 l S newpath 394.574 751.318 m 395.706 751.257 l S newpath 395.09 752.994 m 396.222 752.933 l S newpath 397.304 754.578 m 398.436 754.517 l S newpath 395.241 747.876 m 396.373 747.815 l S newpath 395.757 749.551 m 396.889 749.491 l S newpath 396.273 751.227 m 397.405 751.166 l S newpath 396.788 752.903 m 397.92 752.842 l S newpath 399.002 754.487 m 400.135 754.426 l S newpath 408.06 754.001 m 409.192 753.94 l S newpath 396.939 747.785 m 398.072 747.724 l S newpath 405.997 747.298 m 407.129 747.238 l S newpath 397.455 749.46 m 398.587 749.399 l S newpath 406.513 748.974 m 407.645 748.913 l S newpath 397.971 751.136 m 399.103 751.075 l S newpath 407.029 750.65 m 408.161 750.589 l S newpath 398.487 752.811 m 399.619 752.751 l S newpath 407.544 752.325 m 408.677 752.265 l S newpath 400.701 754.396 m 401.833 754.335 l S newpath 409.759 753.91 m 410.891 753.849 l S newpath 398.638 747.693 m 399.77 747.633 l S newpath 407.696 747.207 m 408.828 747.147 l S newpath 399.153 749.369 m 400.286 749.308 l S newpath 408.211 748.883 m 409.344 748.822 l S newpath 399.669 751.045 m 400.801 750.984 l S newpath 408.727 750.559 m 409.859 750.498 l S newpath 400.185 752.72 m 401.317 752.66 l S newpath 409.243 752.234 m 410.375 752.173 l S newpath 402.399 754.305 m 403.531 754.244 l S newpath 411.457 753.819 m 412.589 753.758 l S newpath 400.336 747.602 m 401.468 747.542 l S newpath 409.394 747.116 m 410.526 747.055 l S newpath 400.852 749.278 m 401.984 749.217 l S newpath 409.91 748.792 m 411.042 748.731 l S newpath 401.368 750.954 m 402.5 750.893 l S newpath 410.425 750.467 m 411.558 750.407 l S newpath 401.883 752.629 m 403.016 752.568 l S newpath 410.941 752.143 m 412.073 752.082 l S newpath 404.097 754.214 m 405.23 754.153 l S newpath 413.155 753.728 m 414.287 753.667 l S newpath 402.034 747.511 m 403.167 747.45 l S newpath 411.092 747.025 m 412.225 746.964 l S newpath 402.55 749.187 m 403.682 749.126 l S newpath 411.608 748.701 m 412.74 748.64 l S newpath 403.066 750.862 m 404.198 750.802 l S newpath 412.124 750.376 m 413.256 750.316 l S newpath 403.582 752.538 m 404.714 752.477 l S newpath 412.64 752.052 m 413.772 751.991 l S newpath 382.949 634.962 m 385.783 632.127 l 408.461 632.127 l 411.295 634.962 l closepath 0.8 0.8 0.8 rgb F 382.949 634.962 m 385.783 632.127 l 408.461 632.127 l 411.295 634.962 l 0 0 0 rgb S [34.0158 0 0 -28.3465 380.114 663.308] rect gsave 0.8 0.8 0.8 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [28.3465 0 0 -22.6772 382.949 660.474] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [39.6282 -2.12668 -3.43822 -11.171 377.612 630.348] rect S newpath 378.622 628.022 m 379.754 627.961 l S newpath 376.559 621.319 m 377.691 621.259 l S newpath 377.075 622.995 m 378.207 622.934 l S newpath 377.591 624.671 m 378.723 624.61 l S newpath 378.106 626.346 m 379.239 626.285 l S newpath 380.32 627.931 m 381.453 627.87 l S newpath 378.258 621.228 m 379.39 621.167 l S newpath 378.773 622.904 m 379.905 622.843 l S newpath 379.289 624.579 m 380.421 624.519 l S newpath 379.805 626.255 m 380.937 626.194 l S newpath 382.019 627.84 m 383.151 627.779 l S newpath 379.956 621.137 m 381.088 621.076 l S newpath 380.472 622.813 m 381.604 622.752 l S newpath 380.987 624.488 m 382.12 624.427 l S newpath 381.503 626.164 m 382.635 626.103 l S newpath 383.717 627.748 m 384.849 627.688 l S newpath 381.654 621.046 m 382.786 620.985 l S newpath 382.17 622.721 m 383.302 622.661 l S newpath 382.686 624.397 m 383.818 624.336 l S newpath 383.201 626.073 m 384.334 626.012 l S newpath 385.416 627.657 m 386.548 627.596 l S newpath 383.353 620.955 m 384.485 620.894 l S newpath 383.868 622.63 m 385.001 622.57 l S newpath 384.384 624.306 m 385.516 624.245 l S newpath 384.9 625.982 m 386.032 625.921 l S newpath 387.114 627.566 m 388.246 627.505 l S newpath 385.051 620.864 m 386.183 620.803 l S newpath 385.567 622.539 m 386.699 622.478 l S newpath 386.082 624.215 m 387.215 624.154 l S newpath 386.598 625.89 m 387.73 625.83 l S newpath 388.812 627.475 m 389.944 627.414 l S newpath 386.749 620.772 m 387.882 620.712 l S newpath 387.265 622.448 m 388.397 622.387 l S newpath 387.781 624.124 m 388.913 624.063 l S newpath 388.296 625.799 m 389.429 625.739 l S newpath 390.511 627.384 m 391.643 627.323 l S newpath 388.448 620.681 m 389.58 620.621 l S newpath 388.963 622.357 m 390.096 622.296 l S newpath 389.479 624.033 m 390.611 623.972 l S newpath 389.995 625.708 m 391.127 625.647 l S newpath 392.209 627.293 m 393.341 627.232 l S newpath 390.146 620.59 m 391.278 620.529 l S newpath 390.662 622.266 m 391.794 622.205 l S newpath 391.177 623.941 m 392.31 623.881 l S newpath 391.693 625.617 m 392.825 625.556 l S newpath 393.907 627.202 m 395.04 627.141 l S newpath 391.844 620.499 m 392.977 620.438 l S newpath 392.36 622.175 m 393.492 622.114 l S newpath 392.876 623.85 m 394.008 623.789 l S newpath 393.392 625.526 m 394.524 625.465 l S newpath 395.606 627.11 m 396.738 627.05 l S newpath 393.543 620.408 m 394.675 620.347 l S newpath 394.058 622.083 m 395.191 622.023 l S newpath 394.574 623.759 m 395.706 623.698 l S newpath 395.09 625.435 m 396.222 625.374 l S newpath 397.304 627.019 m 398.436 626.958 l S newpath 395.241 620.317 m 396.373 620.256 l S newpath 395.757 621.992 m 396.889 621.932 l S newpath 396.273 623.668 m 397.405 623.607 l S newpath 396.788 625.344 m 397.92 625.283 l S newpath 399.002 626.928 m 400.135 626.867 l S newpath 408.06 626.442 m 409.192 626.381 l S newpath 396.939 620.226 m 398.072 620.165 l S newpath 405.997 619.739 m 407.129 619.679 l S newpath 397.455 621.901 m 398.587 621.84 l S newpath 406.513 621.415 m 407.645 621.354 l S newpath 397.971 623.577 m 399.103 623.516 l S newpath 407.029 623.091 m 408.161 623.03 l S newpath 398.487 625.252 m 399.619 625.192 l S newpath 407.544 624.766 m 408.677 624.706 l S newpath 400.701 626.837 m 401.833 626.776 l S newpath 409.759 626.351 m 410.891 626.29 l S newpath 398.638 620.134 m 399.77 620.074 l S newpath 407.696 619.648 m 408.828 619.588 l S newpath 399.153 621.81 m 400.286 621.749 l S newpath 408.211 621.324 m 409.344 621.263 l S newpath 399.669 623.486 m 400.801 623.425 l S newpath 408.727 623 m 409.859 622.939 l S newpath 400.185 625.161 m 401.317 625.101 l S newpath 409.243 624.675 m 410.375 624.614 l S newpath 402.399 626.746 m 403.531 626.685 l S newpath 411.457 626.26 m 412.589 626.199 l S newpath 400.336 620.043 m 401.468 619.983 l S newpath 409.394 619.557 m 410.526 619.496 l S newpath 400.852 621.719 m 401.984 621.658 l S newpath 409.91 621.233 m 411.042 621.172 l S newpath 401.368 623.395 m 402.5 623.334 l S newpath 410.425 622.908 m 411.558 622.848 l S newpath 401.883 625.07 m 403.016 625.009 l S newpath 410.941 624.584 m 412.073 624.523 l S newpath 404.097 626.655 m 405.23 626.594 l S newpath 413.155 626.169 m 414.287 626.108 l S newpath 402.034 619.952 m 403.167 619.891 l S newpath 411.092 619.466 m 412.225 619.405 l S newpath 402.55 621.628 m 403.682 621.567 l S newpath 411.608 621.142 m 412.74 621.081 l S newpath 403.066 623.303 m 404.198 623.243 l S newpath 412.124 622.817 m 413.256 622.757 l S newpath 403.582 624.979 m 404.714 624.918 l S newpath 412.64 624.493 m 413.772 624.432 l S [42.5197 0 0 -56.6929 311.811 793.701] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 325.984 793.701 m 325.984 745.512 l 311.811 745.512 l S [-5.66928 0 0 2.83466 354.331 782.362] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 325.984 782.362 m 354.331 782.362 l 351.496 785.197 l 325.984 785.197 l 325.984 782.362 l closepath 0.5 0.5 0.5 rgb F 325.984 782.362 m 354.331 782.362 l 351.496 785.197 l 325.984 785.197 l 325.984 782.362 l 0 0 0 rgb 0.992126 w 2 j S [-5.66928 0 0 2.83466 354.331 779.528] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 325.984 779.528 m 354.331 779.528 l 351.496 782.362 l 325.984 782.362 l 325.984 779.528 l closepath 0.5 0.5 0.5 rgb F 325.984 779.528 m 354.331 779.528 l 351.496 782.362 l 325.984 782.362 l 325.984 779.528 l 0 0 0 rgb 0.992126 w 2 j S [-5.66928 0 0 2.83466 354.331 776.693] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 325.984 776.693 m 354.331 776.693 l 351.496 779.528 l 325.984 779.528 l 325.984 776.693 l closepath 0.5 0.5 0.5 rgb F 325.984 776.693 m 354.331 776.693 l 351.496 779.528 l 325.984 779.528 l 325.984 776.693 l 0 0 0 rgb 0.992126 w 2 j S [2.83464 0 0 -2.83466 317.48 788.031] 1.57079 4.71239 0 ellipse gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-2.83464 1.04143e-15 1.04144e-15 2.83466 320.315 788.031] 1.57079 4.71239 0 ellipse gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [2.83463 0 0 -5.66931 317.48 790.866] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [42.5197 0 0 -56.6929 311.811 666.142] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 325.984 666.142 m 325.984 617.953 l 311.811 617.953 l S [-5.66928 0 0 2.83466 354.331 654.803] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 325.984 654.803 m 354.331 654.803 l 351.496 657.638 l 325.984 657.638 l 325.984 654.803 l closepath 0.5 0.5 0.5 rgb F 325.984 654.803 m 354.331 654.803 l 351.496 657.638 l 325.984 657.638 l 325.984 654.803 l 0 0 0 rgb 0.992126 w 2 j S [-5.66928 0 0 2.83466 354.331 651.969] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 325.984 651.969 m 354.331 651.969 l 351.496 654.803 l 325.984 654.803 l 325.984 651.969 l closepath 0.5 0.5 0.5 rgb F 325.984 651.969 m 354.331 651.969 l 351.496 654.803 l 325.984 654.803 l 325.984 651.969 l 0 0 0 rgb 0.992126 w 2 j S [-5.66928 0 0 2.83466 354.331 649.134] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 325.984 649.134 m 354.331 649.134 l 351.496 651.969 l 325.984 651.969 l 325.984 649.134 l closepath 0.5 0.5 0.5 rgb F 325.984 649.134 m 354.331 649.134 l 351.496 651.969 l 325.984 651.969 l 325.984 649.134 l 0 0 0 rgb 0.992126 w 2 j S [2.83464 0 0 -2.83466 317.48 660.472] 1.57079 4.71239 0 ellipse gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-2.83464 1.04143e-15 1.04144e-15 2.83466 320.315 660.472] 1.57079 4.71239 0 ellipse gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [2.83463 0 0 -5.66931 317.48 663.307] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [42.5197 0 0 -56.6929 198.425 793.701] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 212.598 793.701 m 212.598 745.512 l 198.425 745.512 l S [-5.66928 0 0 2.83466 240.945 782.362] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 212.598 782.362 m 240.945 782.362 l 238.11 785.197 l 212.598 785.197 l 212.598 782.362 l closepath 0.5 0.5 0.5 rgb F 212.598 782.362 m 240.945 782.362 l 238.11 785.197 l 212.598 785.197 l 212.598 782.362 l 0 0 0 rgb 0.992126 w 2 j S [-5.66928 0 0 2.83466 240.945 779.528] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 212.598 779.528 m 240.945 779.528 l 238.11 782.362 l 212.598 782.362 l 212.598 779.528 l closepath 0.5 0.5 0.5 rgb F 212.598 779.528 m 240.945 779.528 l 238.11 782.362 l 212.598 782.362 l 212.598 779.528 l 0 0 0 rgb 0.992126 w 2 j S [-5.66928 0 0 2.83466 240.945 776.693] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 212.598 776.693 m 240.945 776.693 l 238.11 779.528 l 212.598 779.528 l 212.598 776.693 l closepath 0.5 0.5 0.5 rgb F 212.598 776.693 m 240.945 776.693 l 238.11 779.528 l 212.598 779.528 l 212.598 776.693 l 0 0 0 rgb 0.992126 w 2 j S [2.83464 0 0 -2.83466 204.094 788.031] 1.57079 4.71239 0 ellipse gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-2.83464 1.04143e-15 1.04144e-15 2.83466 206.929 788.031] 1.57079 4.71239 0 ellipse gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [2.83463 0 0 -5.66931 204.094 790.866] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [42.5197 0 0 -56.6929 198.425 666.142] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 212.598 666.142 m 212.598 617.953 l 198.425 617.953 l S [-5.66928 0 0 2.83466 240.945 654.803] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 212.598 654.803 m 240.945 654.803 l 238.11 657.638 l 212.598 657.638 l 212.598 654.803 l closepath 0.5 0.5 0.5 rgb F 212.598 654.803 m 240.945 654.803 l 238.11 657.638 l 212.598 657.638 l 212.598 654.803 l 0 0 0 rgb 0.992126 w 2 j S [-5.66928 0 0 2.83466 240.945 651.969] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 212.598 651.969 m 240.945 651.969 l 238.11 654.803 l 212.598 654.803 l 212.598 651.969 l closepath 0.5 0.5 0.5 rgb F 212.598 651.969 m 240.945 651.969 l 238.11 654.803 l 212.598 654.803 l 212.598 651.969 l 0 0 0 rgb 0.992126 w 2 j S [-5.66928 0 0 2.83466 240.945 649.134] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 212.598 649.134 m 240.945 649.134 l 238.11 651.969 l 212.598 651.969 l 212.598 649.134 l closepath 0.5 0.5 0.5 rgb F 212.598 649.134 m 240.945 649.134 l 238.11 651.969 l 212.598 651.969 l 212.598 649.134 l 0 0 0 rgb 0.992126 w 2 j S [2.83464 0 0 -2.83466 204.094 660.472] 1.57079 4.71239 0 ellipse gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-2.83464 1.04143e-15 1.04144e-15 2.83466 206.929 660.472] 1.57079 4.71239 0 ellipse gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [2.83463 0 0 -5.66931 204.094 663.307] rect gsave F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S /Times-Roman 11 sf (Node1) 205 725 T (Node1) 205 597 T (Node2) 319 725 T (Node2) 319 597 T (heartbeat) 257 781 T newpath 306.142 776.693 m 246.614 776.693 l S pusht 246.614 776.693 translate 180 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 334.489 799.371 m 334.489 810.71 l 396.851 810.71 l 396.851 799.371 l 0.992126 w S pusht 334.489 799.371 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt pusht 396.851 799.371 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 218.268 671.812 m 218.268 683.151 l 396.851 683.151 l 396.851 671.812 l S pusht 218.268 671.812 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt pusht 396.851 671.812 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt [8.50394 0 0 -8.50394 195.591 813.545] 3.1416 4.71239 0 ellipse 0.283465 w S [-3.8147e-05 -8.50394 -8.50394 3.8147e-05 422.363 813.545] 3.1416 4.71239 0 ellipse S [-8.50394 0.000190735 0.000190735 8.50394 422.363 725.67] 3.1416 4.71239 0 ellipse S [0.000160218 8.50394 8.50394 -0.000160218 195.591 725.67] 3.1416 4.71239 0 ellipse S newpath 187.087 813.545 m 187.087 725.67 l S newpath 430.867 813.545 m 430.867 725.67 l S newpath 195.591 822.049 m 422.363 822.049 l S newpath 195.591 717.166 m 422.363 717.166 l S [8.50394 0 0 -8.50394 195.591 685.985] 3.1416 4.71239 0 ellipse S [-3.8147e-05 -8.50394 -8.50394 3.8147e-05 422.363 685.985] 3.1416 4.71239 0 ellipse S [-8.50394 0.000190735 0.000190735 8.50394 422.363 598.111] 3.1416 4.71239 0 ellipse S [0.000160218 8.50394 8.50394 -0.000160218 195.591 598.111] 3.1416 4.71239 0 ellipse S newpath 187.087 685.985 m 187.087 598.111 l S newpath 430.867 685.985 m 430.867 598.111 l S newpath 195.591 694.489 m 422.363 694.489 l S newpath 195.591 589.607 m 422.363 589.607 l S (Client) 383 731 T (Client) 383 603 T newpath 181.418 765.356 m 141.732 751.182 141.732 668.977 170.079 654.804 c 0.76 0.707 1 rgb 11.3386 w 1 J S newpath 436.536 643.466 m 476.222 657.64 476.221 739.844 447.875 754.017 c S newpath 187.087 643.083 m 173.251 666.143 l 160.338 645.85 l 187.087 643.083 l closepath F newpath 430.867 765.738 m 444.703 742.679 l 457.616 762.971 l 430.867 765.738 l closepath F [14.1732 0 0 -11.3386 150.236 711.497] rect 1 1 1 rgb F [-14.1732 1.73572e-15 1.38857e-15 11.3386 467.717 700.159] rect F (Failover) 152 701 0 0 0 rgb T (Failback) 427 701 T [26.9291 0 0 -26.9291 333.071 636.379] ellipse 4.8189 w 0 J S newpath 351.922 655.23 m 314.221 617.529 l 4.8189 w 1 j S [26.9291 0 0 -26.9291 333.071 636.379] ellipse 1 0 0 rgb 4.25197 w 0 j S newpath 351.922 655.23 m 314.221 617.529 l 1 j S %%PageTrailer showpage %%Trailer end %%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 %%EOF %%EndDocument @endspecial 382 2095 a currentpoint currentpoint translate 1 0.81702 div 1 0.81702 div scale neg exch neg exch translate 382 2095 a 785 2291 a Fp(Abbildung)i(2.1:)40 b(prinzipielle)32 b(F)-8 b(unktion)32 b(eines)e(HA-Clusters)382 2566 y Fo(2.3.2)112 b(HA-Cluster)382 2787 y Fp(Das)35 b(Prinzip,)k(nac)m(h)e(dem)f(die)g(hier)g(b)s(espro)s(c)m(henen)h (HA-Cluster)f(arb)s(eiten,)i(ist)d(der)382 2900 y(sogenann)m(te)h(F)-8 b(ailo)m(v)m(er.)55 b(Dab)s(ei)34 b(\374b)s(ernimm)m(t)i(ein)f(Knoten)g (im)g(Cluster)g(die)f(gesam)m(te)382 3013 y(Arb)s(eit)e(des)g (Clusters.)47 b(Die)32 b(einzige)i(Aufgab)s(e)e(des)g(v)m(erbleib)s (enden)i(Knotens)f(ist)f(es,)382 3126 y(st\344ndig)38 b(zu)f(\374b)s(erpr\374fen,)j(ob)e(der)f(aktiv)m(e)h(Knoten)g(no)s(c)m (h)g(funktioniert.)63 b(Wird)37 b(der)382 3239 y(Ausfall)h(des)h(aktiv) m(en)g(Knotens)h(festgestellt,)h(wird)e(die)h(Arb)s(eit)e(des)h (Clusters)g(v)m(on)382 3352 y(n)m(un)i(an)g(durc)m(h)h(den)f(v)m (erbleib)s(enden)h(Knoten)f(\374b)s(ernommen.)73 b(In)40 b(Abbildung)h(2.1)382 3465 y(sind)30 b(diese)h(V)-8 b(org\344nge)31 b(graphisc)m(h)h(dargestellt.)382 3627 y(HA-Cluster)c(w)m(erden)h (eingesetzt,)g(um)g(geplan)m(te)g(Un)m(terbrec)m(h)m(ungen)i(und)e (\(nic)m(h)m(t)g(ge-)382 3740 y(plan)m(te\))35 b(Ausf\344lle)f (abzufangen.)53 b(Ein)34 b(Punkt,)i(der)e(zur)g(Beliebtheit)i(dieser)e (Cluster)382 3853 y(sic)m(her)f(b)s(eigetragen)h(hat,)f(ist,)g(da\377)g (nic)m(h)m(t)h(n)m(ur)f(Ausf\344lle)f(v)m(on)h(Hardw)m(arek)m(omp)s (onen-)382 3966 y(ten,)g(sondern)g(auc)m(h)h(viele)e(Ausf\344lle)g(auf) h(Grund)g(v)m(on)f(F)-8 b(ehlern)34 b(in)f(der)f(Soft)m(w)m(are)j (f\374r)382 4079 y(den)c(An)m(w)m(ender)h(transparen)m(t)g(w)m(erden.) 382 4242 y(Die)f(Wirkung)g(v)m(on)h(Soft)m(w)m(are-F)-8 b(ehler)1704 4209 y Fg(1)1777 4242 y Fp(die)31 b(n)m(ur)h(un)m(ter)g (ganz)g(b)s(estimm)m(ten)g(Umst\344n-)382 4355 y(den)g(ein)m(treten,)i (so)s(da\377)d(es)g(fast)g(nic)m(h)m(t)j(m\366glic)m(h)f(ist,)f(diese)f (F)-8 b(ehler)33 b(zu)f(repro)s(duzieren)382 4468 y(und)27 b(zu)f(b)s(eheb)s(en,)h(k)m(\366nnen)g(auf)g(Grund)f(genau)h(dieser)g (Eigensc)m(haft)g(v)m(on)g(einem)g(HA-)382 4581 y(Cluster,)42 b(der)e(die)g(Soft)m(w)m(are)h(ja)e(einfac)m(h)h(no)s(c)m(h)g(einmal)h (laufen)e(l\344\377t,)k(ausgeglic)m(hen)382 4694 y(w)m(erden.)c(Bei)22 b(der)g(erneuten)i(Ausf\374hrung)e(der)g(Soft)m(w)m(are)i(ist)e(es)f (sehr)h(w)m(ahrsc)m(heinlic)m(h,)382 4806 y(da\377)32 b(P)m(ak)m(ete)i(v)m(om)f(Netzw)m(erk)g(in)f(einer)h(anderen)g (Reihenfolge)g(empfangen)g(w)m(erden,)382 4919 y(und)e(da\377)f(daher)i (der)e(F)-8 b(ehler)32 b(nic)m(h)m(t)g(auftritt.)41 b([P\03498)q(,)30 b(Seite)h(391])p 382 4981 1196 4 v 486 5035 a Ff(1)520 5066 y Fe(P\034ster)38 b(b)r(ezeic)n(hnet)f(diese)h(F)-6 b(ehler)37 b(als)h(Heisen)n(bugs.)70 b(Streng)37 b(genommen)e(sind)i(n) n(ur)g(solc)n(he)382 5158 y(F)-6 b(ehler,)39 b(die)e(b)r(eim)f (\022Betrac)n(h)n(ten\021,)j(also)f(dem)d(Ausf\374hren)g(mit)h(einem)g (Debugger)g(v)n(ersc)n(h)n(winden)382 5249 y(o)r(der)26 b(ersc)n(heinen,)g(Heisen)n(bugs.)1831 5622 y Fp(11)p eop %%Page: 12 14 12 13 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439 b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989 4 v 382 2604 a currentpoint currentpoint translate 0.81888 0.81888 scale neg exch neg exch translate 382 2604 a @beginspecial 64 @llx 469 @lly 502 @urx 785 @ury 4380 @rwi @setspecial %%BeginDocument: /home/philipp/diplomarbeit//shared-disk.ps %!PS-Adobe-3.0 EPSF-3.0 %%For: Philipp Reisner %%CreationDate: Tue Apr 25 12:28:50 2000 %%Title: shared-disk.ps %%Creator: Sketch 0.6.5 %%Pages: 1 %%BoundingBox: 64 469 502 785 %%Extensions: CMYK %%DocumentSuppliedResources: (atend) %%DocumentNeededResources: font Times-Roman %%EndComments %%BeginProlog %%BeginResource: procset Linux-Sketch-Procset 1.0 2 /SketchDict 100 dict def SketchDict begin /bd { bind def } bind def /x { exch } bd /xd { exch def } bd /PI 3.14159265358979323846264338327 def /radgrad { 180 mul PI div } bd /skstartmatrix matrix currentmatrix def /tmpmat matrix def /ISOLatin1Encoding dup where { pop pop } { [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def } ifelse /arct dup where {pop pop} { /arct {arcto pop pop pop pop} bd } ifelse /size 0 def /fontname 0 def /newfont 0 def /sf { /size xd /fontname xd fontname findfont dup /Encoding get StandardEncoding eq { dup length dict /newfont xd { 1 index /FID ne { newfont 3 1 roll put } { pop pop } ifelse } forall newfont /Encoding ISOLatin1Encoding put fontname newfont definefont } if size scalefont setfont } bd /pusht {matrix currentmatrix} bd /popt {setmatrix} bd /pushc {gsave} bd /popc {grestore} bd /rgb {setrgbcolor} bd /w { setlinewidth } bd /j { setlinejoin } bd /J { setlinecap } bd /d { setdash } bd /F { eofill } bd /f { closepath F } bd /S { pusht skstartmatrix setmatrix stroke popt } bd /s { closepath S } bd /m { moveto } bd /l { lineto } bd /c { curveto } bd /txt { /tmpmat tmpmat currentmatrix def dup type /arraytype eq {concat} {translate} ifelse 0 0 m tmpmat } bd /T {txt x show popt} bd /P {txt x true charpath popt} bd /TP {txt x dup show 0 0 m true charpath popt} bd /C {newpath 0 360 arc} bd /R { 2 copy m x 2 index l x 2 index x l l closepath } bd /ellipse { dup type /arraytype eq { pusht x concat 0 0 1.0 C popt } { pusht 5 1 roll 4 -1 roll concat newpath dup 2 eq { 0 0 m } if 3 1 roll radgrad x radgrad x 0 0 1 5 -2 roll arc 0 ne { closepath } if popt } ifelse } bd /radius1 0 def /radius2 0 def /factor 0 def /rect { dup type /arraytype eq { pusht x concat 0 0 m 1 0 l 1 1 l 0 1 l closepath popt } { /radius2 xd /radius1 xd pusht x concat radius1 radius2 div 1 scale 0 radius2 m 0 1 radius2 1 radius2 arct radius2 radius1 div dup 1 1 index 0 radius2 arct 0 0 0 radius2 arct 0 0 0 1 radius2 arct closepath popt } ifelse } bd /buf 0 def /width 0 def /height 0 def /skcimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width 3 mul string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind false 3 colorimage tmpmat setmatrix } bd /skgimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind image tmpmat setmatrix } bd /rclip { 4 2 roll m dup 0 x rlineto x 0 rlineto neg 0 x rlineto closepath clip } bd /skeps { 10 dict begin /sk_state save def concat 3 index neg 3 index neg translate rclip 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /sk_dict_count countdictstack def /sk_count count 1 sub def userdict begin /showpage { } def /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bd /skepsend { count sk_count sub { pop } repeat countdictstack sk_dict_count sub { end } repeat sk_state restore end } bd /gradidx 0 def /gradient { 3 mul array /gradidx 0 def } bd /$ { 3 index gradidx 5 -1 roll put 2 index gradidx 1 add 4 -1 roll put 1 index gradidx 2 add 3 -1 roll put /gradidx gradidx 3 add def } bd /! { 3 { dup dup gradidx dup 3 1 roll 3 sub get put /gradidx gradidx 1 add def } repeat } bd /gradcolor { 3 mul dup 2 add 1 exch % idx 1 idx+2 { 1 index exch % array array i get % array component exch % component array } for 4 1 roll } bd /x0 0 def /y0 0 def /x1 0 def /y1 0 def /left 0 def /right 0 def /top 0 def /bottom 0 def /numcolors 0 def /axial { /y1 xd /x1 xd /y0 xd /x0 xd dup length 3 idiv /numcolors xd pusht exch % ctm array x0 x1 ne y0 y1 ne or { x0 y0 translate [x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath 0 gradcolor rgb clippath f 0 1 numcolors 1 sub { dup numcolors div 3 1 roll gradcolor rgb exch bottom right top R f } for } if pop popt } bd /r0 0 def /r1 0 def /dr 0 def /radial { /r1 xd /r0 xd /y0 xd /x0 xd /dr r1 r0 sub def dup length 3 idiv /numcolors xd pusht exch % ctm array r0 r1 ne { x0 y0 translate clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb clippath f dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse { dup numcolors div dr mul r0 add 3 1 roll gradcolor rgb exch 0 0 3 -1 roll C f } for } if pop popt } bd /max { 2 copy lt {exch} if pop } bd /conical { pusht 5 1 roll 3 1 roll /y0 xd /x0 xd x0 y0 translate radgrad rotate dup length 3 idiv /numcolors xd clippath flattenpath pathbbox newpath 4 { abs 4 1 roll} repeat 3 { max } repeat 2 mul dup scale 0 gradcolor rgb 0 0 1 0 360 arc f 1 1 numcolors 1 sub { dup numcolors div 180 mul 3 1 roll gradcolor rgb exch 0 0 moveto 0 0 1 4 -1 roll dup neg arc closepath f } for pop popt } bd /XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def /tileimage2 { exch 4 2 roll /height xd /width xd mark /components 2 index /PatternType 1 /PaintType 1 /TilingType 1 /BBox [0 0 width height] /XStep width /YStep height /PaintProc { begin XStep YStep 8 matrix imagedata false components colorimage end } counttomark 2 div cvi dup dict begin { def } repeat pop currentdict end dup /imagedata 4 -1 roll width height mul mul string currentfile exch readhexstring pop put exch makepattern setpattern clippath eofill } bd /tileimage1 { concat /components xd /height xd /width xd /imagedata currentfile width height mul components mul string readhexstring pop def clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd left width div floor width mul bottom height div floor height mul translate top bottom sub height div ceiling cvi { gsave right left sub width div ceiling cvi { width height 8 matrix components 1 eq { { imagedata } image } { imagedata false components colorimage } ifelse width 0 translate } repeat grestore 0 height translate } repeat } bd /makepattern where { pop /tileimage /tileimage2 load def } { /tileimage /tileimage1 load def } ifelse end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Roman 10.433 setmiterlimit %%EndSetup %%Page: 1 1 SketchDict begin [141.733 0 0 -34.0158 70.8662 694.489] rect 0.848 0.835 0.949 rgb F [141.733 0 0 -34.0158 354.331 694.489] rect F [62.3623 0 0 -36.8505 70.8662 660.473] rect F [62.3623 0 0 -42.5198 433.701 660.473] rect F newpath 225.95 493.23 m 228.784 490.395 l 251.462 490.395 l 254.296 493.23 l closepath 0.8 0.8 0.8 rgb F 225.95 493.23 m 228.784 490.395 l 251.462 490.395 l 254.296 493.23 l 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [34.0158 0 0 -28.3465 223.115 521.576] rect gsave 0.8 0.8 0.8 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [28.3465 0 0 -22.6772 225.95 518.742] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [39.6282 -2.12668 -3.43822 -11.171 220.613 488.616] rect S newpath 221.623 486.29 m 222.755 486.229 l S newpath 219.56 479.587 m 220.692 479.527 l S newpath 220.076 481.263 m 221.208 481.202 l S newpath 220.592 482.939 m 221.724 482.878 l S newpath 221.107 484.614 m 222.24 484.553 l S newpath 223.321 486.199 m 224.454 486.138 l S newpath 221.259 479.496 m 222.391 479.435 l S newpath 221.774 481.172 m 222.906 481.111 l S newpath 222.29 482.847 m 223.422 482.787 l S newpath 222.806 484.523 m 223.938 484.462 l S newpath 225.02 486.108 m 226.152 486.047 l S newpath 222.957 479.405 m 224.089 479.344 l S newpath 223.473 481.081 m 224.605 481.02 l S newpath 223.988 482.756 m 225.121 482.695 l S newpath 224.504 484.432 m 225.636 484.371 l S newpath 226.718 486.016 m 227.85 485.956 l S newpath 224.655 479.314 m 225.787 479.253 l S newpath 225.171 480.989 m 226.303 480.929 l S newpath 225.687 482.665 m 226.819 482.604 l S newpath 226.202 484.341 m 227.335 484.28 l S newpath 228.417 485.925 m 229.549 485.864 l S newpath 226.354 479.223 m 227.486 479.162 l S newpath 226.869 480.898 m 228.002 480.838 l S newpath 227.385 482.574 m 228.517 482.513 l S newpath 227.901 484.25 m 229.033 484.189 l S newpath 230.115 485.834 m 231.247 485.773 l S newpath 228.052 479.132 m 229.184 479.071 l S newpath 228.568 480.807 m 229.7 480.746 l S newpath 229.083 482.483 m 230.216 482.422 l S newpath 229.599 484.158 m 230.731 484.098 l S newpath 231.813 485.743 m 232.945 485.682 l S newpath 229.75 479.04 m 230.883 478.98 l S newpath 230.266 480.716 m 231.398 480.655 l S newpath 230.782 482.392 m 231.914 482.331 l S newpath 231.297 484.067 m 232.43 484.007 l S newpath 233.512 485.652 m 234.644 485.591 l S newpath 231.449 478.949 m 232.581 478.889 l S newpath 231.964 480.625 m 233.097 480.564 l S newpath 232.48 482.301 m 233.612 482.24 l S newpath 232.996 483.976 m 234.128 483.915 l S newpath 235.21 485.561 m 236.342 485.5 l S newpath 233.147 478.858 m 234.279 478.797 l S newpath 233.663 480.534 m 234.795 480.473 l S newpath 234.178 482.209 m 235.311 482.149 l S newpath 234.694 483.885 m 235.826 483.824 l S newpath 236.908 485.47 m 238.041 485.409 l S newpath 234.845 478.767 m 235.978 478.706 l S newpath 235.361 480.443 m 236.493 480.382 l S newpath 235.877 482.118 m 237.009 482.057 l S newpath 236.393 483.794 m 237.525 483.733 l S newpath 238.607 485.378 m 239.739 485.318 l S newpath 236.544 478.676 m 237.676 478.615 l S newpath 237.059 480.351 m 238.192 480.291 l S newpath 237.575 482.027 m 238.707 481.966 l S newpath 238.091 483.703 m 239.223 483.642 l S newpath 240.305 485.287 m 241.437 485.226 l S newpath 238.242 478.585 m 239.374 478.524 l S newpath 238.758 480.26 m 239.89 480.2 l S newpath 239.274 481.936 m 240.406 481.875 l S newpath 239.789 483.612 m 240.921 483.551 l S newpath 242.003 485.196 m 243.136 485.135 l S newpath 251.061 484.71 m 252.193 484.649 l S newpath 239.94 478.494 m 241.073 478.433 l S newpath 248.998 478.007 m 250.13 477.947 l S newpath 240.456 480.169 m 241.588 480.108 l S newpath 249.514 479.683 m 250.646 479.622 l S newpath 240.972 481.845 m 242.104 481.784 l S newpath 250.03 481.359 m 251.162 481.298 l S newpath 241.488 483.52 m 242.62 483.46 l S newpath 250.545 483.034 m 251.678 482.974 l S newpath 243.702 485.105 m 244.834 485.044 l S newpath 252.76 484.619 m 253.892 484.558 l S newpath 241.639 478.402 m 242.771 478.342 l S newpath 250.697 477.916 m 251.829 477.856 l S newpath 242.154 480.078 m 243.287 480.017 l S newpath 251.212 479.592 m 252.345 479.531 l S newpath 242.67 481.754 m 243.802 481.693 l S newpath 251.728 481.268 m 252.86 481.207 l S newpath 243.186 483.429 m 244.318 483.369 l S newpath 252.244 482.943 m 253.376 482.882 l S newpath 245.4 485.014 m 246.532 484.953 l S newpath 254.458 484.528 m 255.59 484.467 l S newpath 243.337 478.311 m 244.469 478.251 l S newpath 252.395 477.825 m 253.527 477.764 l S newpath 243.853 479.987 m 244.985 479.926 l S newpath 252.911 479.501 m 254.043 479.44 l S newpath 244.369 481.663 m 245.501 481.602 l S newpath 253.426 481.176 m 254.559 481.116 l S newpath 244.884 483.338 m 246.017 483.277 l S newpath 253.942 482.852 m 255.074 482.791 l S newpath 247.098 484.923 m 248.231 484.862 l S newpath 256.156 484.437 m 257.288 484.376 l S newpath 245.035 478.22 m 246.168 478.159 l S newpath 254.093 477.734 m 255.226 477.673 l S newpath 245.551 479.896 m 246.683 479.835 l S newpath 254.609 479.41 m 255.741 479.349 l S newpath 246.067 481.571 m 247.199 481.511 l S newpath 255.125 481.085 m 256.257 481.025 l S newpath 246.583 483.247 m 247.715 483.186 l S newpath 255.641 482.761 m 256.773 482.7 l S newpath 308.701 493.23 m 311.535 490.395 l 334.213 490.395 l 337.047 493.23 l closepath 0.8 0.8 0.8 rgb F 308.701 493.23 m 311.535 490.395 l 334.213 490.395 l 337.047 493.23 l 0 0 0 rgb S [34.0158 0 0 -28.3465 305.866 521.576] rect gsave 0.8 0.8 0.8 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [28.3465 0 0 -22.6772 308.701 518.742] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [39.6282 -2.12668 -3.43822 -11.171 303.364 488.616] rect S newpath 304.374 486.29 m 305.506 486.229 l S newpath 302.311 479.587 m 303.443 479.527 l S newpath 302.827 481.263 m 303.959 481.202 l S newpath 303.343 482.939 m 304.475 482.878 l S newpath 303.858 484.614 m 304.991 484.553 l S newpath 306.072 486.199 m 307.205 486.138 l S newpath 304.01 479.496 m 305.142 479.435 l S newpath 304.525 481.172 m 305.657 481.111 l S newpath 305.041 482.847 m 306.173 482.787 l S newpath 305.557 484.523 m 306.689 484.462 l S newpath 307.771 486.108 m 308.903 486.047 l S newpath 305.708 479.405 m 306.84 479.344 l S newpath 306.224 481.081 m 307.356 481.02 l S newpath 306.739 482.756 m 307.872 482.695 l S newpath 307.255 484.432 m 308.387 484.371 l S newpath 309.469 486.016 m 310.601 485.956 l S newpath 307.406 479.314 m 308.538 479.253 l S newpath 307.922 480.989 m 309.054 480.929 l S newpath 308.438 482.665 m 309.57 482.604 l S newpath 308.953 484.341 m 310.086 484.28 l S newpath 311.168 485.925 m 312.3 485.864 l S newpath 309.105 479.223 m 310.237 479.162 l S newpath 309.62 480.898 m 310.753 480.838 l S newpath 310.136 482.574 m 311.268 482.513 l S newpath 310.652 484.25 m 311.784 484.189 l S newpath 312.866 485.834 m 313.998 485.773 l S newpath 310.803 479.132 m 311.935 479.071 l S newpath 311.319 480.807 m 312.451 480.746 l S newpath 311.834 482.483 m 312.967 482.422 l S newpath 312.35 484.158 m 313.482 484.098 l S newpath 314.564 485.743 m 315.696 485.682 l S newpath 312.501 479.04 m 313.634 478.98 l S newpath 313.017 480.716 m 314.149 480.655 l S newpath 313.533 482.392 m 314.665 482.331 l S newpath 314.048 484.067 m 315.181 484.007 l S newpath 316.263 485.652 m 317.395 485.591 l S newpath 314.2 478.949 m 315.332 478.889 l S newpath 314.715 480.625 m 315.848 480.564 l S newpath 315.231 482.301 m 316.363 482.24 l S newpath 315.747 483.976 m 316.879 483.915 l S newpath 317.961 485.561 m 319.093 485.5 l S newpath 315.898 478.858 m 317.03 478.797 l S newpath 316.414 480.534 m 317.546 480.473 l S newpath 316.929 482.209 m 318.062 482.149 l S newpath 317.445 483.885 m 318.577 483.824 l S newpath 319.659 485.47 m 320.792 485.409 l S newpath 317.596 478.767 m 318.729 478.706 l S newpath 318.112 480.443 m 319.244 480.382 l S newpath 318.628 482.118 m 319.76 482.057 l S newpath 319.144 483.794 m 320.276 483.733 l S newpath 321.358 485.378 m 322.49 485.318 l S newpath 319.295 478.676 m 320.427 478.615 l S newpath 319.81 480.351 m 320.943 480.291 l S newpath 320.326 482.027 m 321.458 481.966 l S newpath 320.842 483.703 m 321.974 483.642 l S newpath 323.056 485.287 m 324.188 485.226 l S newpath 320.993 478.585 m 322.125 478.524 l S newpath 321.509 480.26 m 322.641 480.2 l S newpath 322.025 481.936 m 323.157 481.875 l S newpath 322.54 483.612 m 323.672 483.551 l S newpath 324.754 485.196 m 325.887 485.135 l S newpath 333.812 484.71 m 334.944 484.649 l S newpath 322.691 478.494 m 323.824 478.433 l S newpath 331.749 478.007 m 332.881 477.947 l S newpath 323.207 480.169 m 324.339 480.108 l S newpath 332.265 479.683 m 333.397 479.622 l S newpath 323.723 481.845 m 324.855 481.784 l S newpath 332.781 481.359 m 333.913 481.298 l S newpath 324.239 483.52 m 325.371 483.46 l S newpath 333.296 483.034 m 334.429 482.974 l S newpath 326.453 485.105 m 327.585 485.044 l S newpath 335.511 484.619 m 336.643 484.558 l S newpath 324.39 478.402 m 325.522 478.342 l S newpath 333.448 477.916 m 334.58 477.856 l S newpath 324.905 480.078 m 326.038 480.017 l S newpath 333.963 479.592 m 335.096 479.531 l S newpath 325.421 481.754 m 326.553 481.693 l S newpath 334.479 481.268 m 335.611 481.207 l S newpath 325.937 483.429 m 327.069 483.369 l S newpath 334.995 482.943 m 336.127 482.882 l S newpath 328.151 485.014 m 329.283 484.953 l S newpath 337.209 484.528 m 338.341 484.467 l S newpath 326.088 478.311 m 327.22 478.251 l S newpath 335.146 477.825 m 336.278 477.764 l S newpath 326.604 479.987 m 327.736 479.926 l S newpath 335.662 479.501 m 336.794 479.44 l S newpath 327.12 481.663 m 328.252 481.602 l S newpath 336.177 481.176 m 337.31 481.116 l S newpath 327.635 483.338 m 328.768 483.277 l S newpath 336.693 482.852 m 337.825 482.791 l S newpath 329.849 484.923 m 330.982 484.862 l S newpath 338.907 484.437 m 340.039 484.376 l S newpath 327.786 478.22 m 328.919 478.159 l S newpath 336.844 477.734 m 337.977 477.673 l S newpath 328.302 479.896 m 329.434 479.835 l S newpath 337.36 479.41 m 338.492 479.349 l S newpath 328.818 481.571 m 329.95 481.511 l S newpath 337.876 481.085 m 339.008 481.025 l S newpath 329.334 483.247 m 330.466 483.186 l S newpath 338.392 482.761 m 339.524 482.7 l S /Times-Roman 12 sf (...) 274 515 T (...) [1.19434e-15 1 -1 1.19434e-15 100.839 735.074] T (...) [1.19434e-15 1 -1 1.19434e-15 469.344 735.074] T newpath 223.937 643.466 m 218.268 637.796 l 232.441 623.623 l 274.961 623.623 l 283.465 615.119 l 291.969 623.623 l 1.98425 w 1 j 1 J S newpath 291.969 623.623 m 334.489 623.623 l 348.662 637.796 l 342.993 643.466 l S (HP-UX) 122 674 T (HP-UX) 405 674 T newpath 168.378 595.276 m 165.544 595.276 l 165.544 592.442 l 168.378 592.442 l 1 w 0 j 0 J S newpath 158.74 600.945 m 155.906 600.945 l 155.906 598.111 l 158.74 598.111 l S newpath 158.74 586.772 m 167.244 586.772 l 167.244 581.103 l 192.757 581.103 l 192.757 586.772 l 212.598 586.772 l 212.598 603.78 l 158.74 603.78 l 158.74 609.449 l 158.74 581.103 l closepath 1 1 1 rgb F 158.74 586.772 m 167.244 586.772 l 167.244 581.103 l 192.757 581.103 l 192.757 586.772 l 212.598 586.772 l 212.598 603.78 l 158.74 603.78 l 158.74 609.449 l 158.74 581.103 l 0 0 0 rgb S newpath 170.078 586.772 m 170.078 581.103 l S newpath 175.748 586.772 m 175.748 581.103 l S newpath 172.914 586.772 m 172.914 581.103 l S newpath 178.583 586.772 m 178.583 581.103 l S newpath 181.418 586.772 m 181.418 581.103 l S newpath 184.253 586.772 m 184.253 581.103 l S newpath 187.087 586.772 m 187.087 581.103 l S newpath 189.921 586.772 m 189.921 581.103 l S (NIC) 172 592 T newpath 366.803 595.276 m 363.969 595.276 l 363.969 592.442 l 366.803 592.442 l S newpath 357.165 600.945 m 354.331 600.945 l 354.331 598.111 l 357.165 598.111 l S newpath 357.165 586.772 m 365.669 586.772 l 365.669 581.103 l 391.182 581.103 l 391.182 586.772 l 411.023 586.772 l 411.023 603.78 l 357.165 603.78 l 357.165 609.449 l 357.165 581.103 l closepath 1 1 1 rgb F 357.165 586.772 m 365.669 586.772 l 365.669 581.103 l 391.182 581.103 l 391.182 586.772 l 411.023 586.772 l 411.023 603.78 l 357.165 603.78 l 357.165 609.449 l 357.165 581.103 l 0 0 0 rgb S newpath 368.503 586.772 m 368.503 581.103 l S newpath 374.173 586.772 m 374.173 581.103 l S newpath 371.339 586.772 m 371.339 581.103 l S newpath 377.008 586.772 m 377.008 581.103 l S newpath 379.843 586.772 m 379.843 581.103 l S newpath 382.678 586.772 m 382.678 581.103 l S newpath 385.512 586.772 m 385.512 581.103 l S newpath 388.346 586.772 m 388.346 581.103 l S (NIC) 371 592 T [56.693 0 0 -28.3465 70.8662 728.505] rect S [56.693 0 0 -28.3465 70.8662 779.529] rect S [56.693 0 0 -28.3465 439.371 779.529] rect S [56.693 0 0 -28.3465 439.371 728.505] rect S [56.693 0 0 -28.3465 155.906 728.505] rect S [56.693 0 0 -28.3465 354.331 728.505] rect S (Package) 79 711 T (Package) 79 762 T (Package) 447 762 T (Package) 447 711 T (MC/S) 368 711 T newpath 238.111 527.245 m 238.111 538.583 l 323.15 538.583 l 323.15 527.245 l S newpath 323.15 538.583 m 377.008 538.583 l 377.008 569.765 l S newpath 238.111 538.583 m 178.583 538.583 l 178.583 569.765 l S (MC/S) 170 711 T [147.402 0 0 -204.095 351.497 782.363] rect 0.283465 w [1.41733 0.283465 0.283465 0.283465 ] 0 d S [147.402 0 0 -204.095 68.0316 782.363] rect S [65.197 0 0 -34.0158 252.284 612.284] rect S [-28.3465 0 0 7.08663 283.465 588.19] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 283.465 595.277] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 283.465 602.363] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S /Times-Roman 12 sf (Disk) 272 598 T [-28.3465 0 0 7.08663 99.2128 588.19] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 99.2128 595.277] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 99.2128 602.363] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S /Times-Roman 12 sf (Disk) 87 598 T [-28.3465 0 0 7.08663 467.717 588.19] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 467.717 595.277] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 467.717 602.363] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S /Times-Roman 12 sf (Disk) 456 598 T newpath 158.741 643.465 m 155.906 643.465 l 155.906 632.127 l 158.741 632.127 l 1 w S newpath 158.741 629.292 m 167.245 629.292 l 167.245 623.623 l 192.757 623.623 l 192.757 629.292 l 212.599 629.292 l 212.599 646.3 l 158.741 646.3 l 158.741 651.969 l 158.741 623.623 l S newpath 170.079 629.292 m 170.079 623.623 l S newpath 175.749 629.292 m 175.749 623.623 l S newpath 172.914 629.292 m 172.914 623.623 l S newpath 178.583 629.292 m 178.583 623.623 l S newpath 181.418 629.292 m 181.418 623.623 l S newpath 184.253 629.292 m 184.253 623.623 l S newpath 187.087 629.292 m 187.087 623.623 l S newpath 189.922 629.292 m 189.922 623.623 l S (SCSI) 170 635 T newpath 357.166 643.465 m 354.331 643.465 l 354.331 632.127 l 357.166 632.127 l S newpath 357.166 629.292 m 365.67 629.292 l 365.67 623.623 l 391.182 623.623 l 391.182 629.292 l 411.024 629.292 l 411.024 646.3 l 357.166 646.3 l 357.166 651.969 l 357.166 623.623 l S newpath 368.504 629.292 m 368.504 623.623 l S newpath 374.174 629.292 m 374.174 623.623 l S newpath 371.339 629.292 m 371.339 623.623 l S newpath 377.008 629.292 m 377.008 623.623 l S newpath 379.843 629.292 m 379.843 623.623 l S newpath 382.678 629.292 m 382.678 623.623 l S newpath 385.512 629.292 m 385.512 623.623 l S newpath 388.347 629.292 m 388.347 623.623 l S (SCSI) 368 635 T %%PageTrailer showpage %%Trailer end %%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 %%EOF %%EndDocument @endspecial 382 2604 a currentpoint currentpoint translate 1 0.81888 div 1 0.81888 div scale neg exch neg exch translate 382 2604 a 1070 2800 a Fp(Abbildung)h(2.2:)41 b(HP)31 b(Beispielk)m(on\034guration)382 3075 y(Das)c(Prinzip)h(des)f (F)-8 b(ailo)m(v)m(ers)29 b(ist)e(auc)m(h)h(das)f(Grundprinzip)i(der)e (Clusterl\366sungen)i(f\374r)382 3188 y(Lin)m(ux)i(die)g(in)f(Kapitel)i (6)e(v)m(orgestellt)i(w)m(erden.)382 3481 y Fo(2.3.3)112 b(Beispielk)m(on\034guration)382 3702 y Fp(In)43 b(diesem)g(Absc)m (hnitt)h(wird)g(eine)f(Beispielk)m(on\034guration)j(v)m(on)e(HP)f([W)-8 b(ey96)q(])43 b(b)s(e-)382 3815 y(trac)m(h)m(tet,)h(die)c(eb)s(enfalls) g(nac)m(h)h(dem)f(Prinzip)h(des)e(F)-8 b(ailo)m(v)m(ers)42 b(arb)s(eitet.)69 b(Sie)40 b(ist)f(in)382 3928 y(Abbildung)h(2.2)f(sc)m (hematisc)m(h)h(dargestellt.)66 b(HP)39 b(wurde)h(zuf\344llig)f(als)f (Beispiel)h(ge-)382 4041 y(w)m(\344hlt,)32 b(ganz)f(\344hnlic)m(he)h (Cluster)f(sind)f(auc)m(h)h(v)m(on)g(anderen)h(Herstellern)f (erh\344ltlic)m(h.)382 4204 y(Die)i(lok)-5 b(alen)33 b(F)-8 b(estplatten)34 b(der)f(Knoten)h(w)m(erden)g(f\374r)f(das)g (Betriebssystem,)g(die)g(HA)382 4317 y(Soft)m(w)m(are)k(und)f(die)f (Applik)-5 b(ationssoft)m(w)m(are)38 b(v)m(erw)m(endet.)57 b(Die)36 b(Daten)g(der)f(Applik)-5 b(a-)382 4429 y(tionen)32 b(hingegen)g(w)m(erden)h(auf)e(dem)h(v)m(on)f(b)s(eiden)h(Knoten)g(aus) f(zug\344nglic)m(hen)j(F)-8 b(est-)382 4542 y(plattensystem)31 b(\(shared)g(disk\))f(gesp)s(eic)m(hert.)382 4832 y Fn(2.3.3.1)103 b(Shared)34 b(Disk)382 5054 y Fp(HP)f(realisiert)i(die)e(Shared)i(Disk) d(mit)i(Hilfe)f(eines)h(SCSI-Busses.)49 b(Es)34 b(w)m(erden)g(zw)m(ei) 382 5167 y(SCSI-K)m(on)m(troller)c(an)d(einen)h(SCSI-Bus)f(angesc)m (hlossen;)i(nat\374rlic)m(h)g(m)m(\374ssen)e(die)h(b)s(ei-)382 5279 y(den)c(K)m(on)m(troller)i(auf)e(v)m(ersc)m(hiedene)h(SCSI-IDs)f (k)m(on\034guriert)h(w)m(erden.)40 b(Die)24 b(heute)g(\374b-)382 5392 y(lic)m(hen)j(SCSI-K)m(on)m(troller)i(hab)s(en)e(in)f(der)h(Regel) f(b)s(ereits)g(aktiv)m(e)g(SCSI-T)-8 b(erminatoren)1831 5622 y(12)p eop %%Page: 13 15 13 14 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439 b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989 4 v 382 539 a Fp(in)m(tegriert,)36 b(die)e(allerdings)h(in)f(diesem)g (An)m(w)m(endungsfall)h(nic)m(h)m(t)g(v)m(erw)m(endet)h(w)m(erden)382 652 y(k)m(\366nnen.)64 b(W)-8 b(enn)39 b(ein)g(Knoten)g(des)e(Clusters) i(nic)m(h)m(t)g(in)f(Betrieb)h(ist,)h(ist)e(somit)g(der)382 764 y(aktiv)m(e)h(T)-8 b(erminator)41 b(ohne)e(V)-8 b(ersorgung,)43 b(und)c(der)g(gesam)m(te)h(SCSI-Bus)f(ist)f(w)m(egen)382 877 y(fehlender)31 b(T)-8 b(ermination)33 b(un)m(brauc)m(h)m(bar.)44 b(Daher)31 b(m)m(\374ssen)g(die)g(in)m(ternen)h(T)-8 b(erminato-)382 990 y(ren)24 b(deaktiviert,)h(der)f(SCSI-Bus)f(v)m (erl\344ngert)i(und)f(an)f(den)h(Enden)h(des)e(Busses)f(exter-)382 1103 y(ne)34 b(T)-8 b(erminatoren)36 b(angesc)m(hlossen)f(w)m(erden.)51 b(Viele)34 b(SCSI-K)m(on)m(troller)j(hab)s(en)d(einen)382 1216 y(externen)f(und)g(einen)g(in)m(ternen)h(Ansc)m(hlu\377.)48 b(W\374rde)33 b(man)g(den)f(externen)i(T)-8 b(ermina-)382 1329 y(tor)32 b(am)g(in)m(ternen)i(Ansc)m(hlu\377)f(des)e(SCSI-K)m(on)m (trollers)k(an)m(bringen,)f(k)m(\366nn)m(te)g(man)e(den)382 1442 y(Knoten)25 b(nic)m(h)m(t)g(v)m(om)f(SCSI-Bus)g(trennen.)39 b(Daher)24 b(ist)g(es)f(un)m(b)s(edingt)i(not)m(w)m(endig,)j(die-)382 1555 y(sen)g(T)-8 b(erminator)31 b(am)d(externen)h(Bus)f(anzubringen.) 42 b(Daf\374r)28 b(w)m(erden)i(SCSI-Y-Kab)s(el)382 1668 y(b)s(en\366tigt.)382 1819 y(Diese)23 b(Kab)s(el)h(sind)g(\026)f (au\377er)i(b)s(ei)e(den)h(HA-System-An)m(bietern)h(\026)e(fast)g(nic)m (h)m(t)j(erh\344lt-)382 1932 y(lic)m(h.)55 b(Eine)36 b(Umfrage)f(auf)f(der)i(Lin)m(ux-HA)f(Mailingliste)h(hat)f(ergeb)s(en,) i(da\377)e(es)g(n)m(ur)382 2045 y(einen)c(einzigen)g(H\344ndler)f(in)g (Europa)i(gibt,)e(der)h(diese)f(Kab)s(el)g(in)g(seinem)g(Sortimen)m(t) 382 2158 y(hat.)382 2310 y(T)-8 b(ritt)38 b(ein)g(Problem)h(auf)e(dem)h (SCSI-Bus)f(auf,)i(wird)f(z.B.)g(der)g(T)-8 b(erminator)39 b(v)m(erse-)382 2423 y(hen)m(tlic)m(h)32 b(en)m(tfern)m(t,)h(so)d(sind) g(die)h(Zugri\033sw)m(ege)h(b)s(eider)e(Knoten)i(un)m(terbro)s(c)m (hen.)43 b(Ein)382 2535 y(Shared)32 b(SCSI-Bus)f(ist)g(ein)h(SPOF)g (\(single)g(p)s(oin)m(t)f(of)g(failure\))h(f\374r)f(den)h(ganzen)g (Clu-)382 2648 y(ster.)68 b(Daher)41 b(wird)f(b)s(ei)f(den)h(Clustern)h (v)m(on)f(HP)f(der)h(Shared)h(SCSI-Bus)f(dopp)s(elt)382 2761 y(ausgef\374hrt.)79 b(F)-8 b(alls)43 b(eine)g(normale)h(SCSI-F)-8 b(estplatte)45 b(am)e(Shared)h(SCSI-Bus)f(an-)382 2874 y(gesc)m(hlossen)c(ist,)g(wird)g(diese)f(eb)s(enfalls)f(dopp)s(elt)i (ausgef\374hrt,)i(und)d(zwisc)m(hen)h(den)382 2987 y(b)s(eiden)31 b(F)-8 b(estplatten)32 b(sorgt)e(MirrorDisk/UX)g(f\374r)g(die)h (Datenspiegelung.)382 3139 y(Neb)s(en)26 b(HP)g(v)m(erw)m(enden)i(auc)m (h)f(andere)g(An)m(bieter)h(v)m(on)e(Unix-basierten)h(HA-Cluster-)382 3252 y(L\366sungen)e(einen)g(Shared)g(SCSI-Bus,)g(sogar)f(im)h(Lin)m (ux-HA-HO)m(WTO)g([Mil98)q(])f(wird)382 3365 y(die)31 b(V)-8 b(erw)m(endung)32 b(dieses)e(Busses)g(v)m(orgesc)m(hlagen.)382 3516 y(Shared)i(Disks)e(k)m(\366nnen)j(neb)s(en)e(SCSI)g(auc)m(h)i(mit) e(SSA,)h(Fib)s(er)f(Chanel)h(\(Switc)m(h)h(und)382 3629 y(Arbitrated)42 b(Lo)s(op\),)i(Digitals)d(Star)h(Coupler)g(und)f(IBMs)f (S/390)i(ESCON)g(imple-)382 3742 y(men)m(tiert)32 b(w)m(erden.)42 b([P\03498)q(])382 4016 y Fn(2.3.3.2)103 b(Soft)m(w)m(are)382 4226 y Fp(In)29 b(der)h(Clusterl\366sung)h(v)m(on)e(HP)h(\374b)s (ernimm)m(t)h(MC/ServiceGuard)g(das)f(Starten)g(der)382 4339 y(ho)s(c)m(h)m(v)m(erf\374gbaren)38 b(Applik)-5 b(ationen.)58 b(F\374r)35 b(jede)h(ho)s(c)m(h)m(v)m(erf\374gbare)i (Applik)-5 b(ation)36 b(m)m(u\377)382 4452 y(ein)24 b(sogenann)m(tes)i (P)m(ac)m(k)-5 b(age)26 b(erstellt)f(w)m(erden.)40 b(Dieses)24 b(P)m(ac)m(k)-5 b(age)26 b(en)m(th\344lt)g(Angab)s(en)e(zu)382 4565 y(den)30 b(b)s(en\366tigten)h(Ressourcen)f(der)g(Applik)-5 b(ation)30 b(so)m(wie)g(Shell-Skripts)h(zum)f(Starten)382 4678 y(und)42 b(Stopp)s(en)g(der)g(Applik)-5 b(ation.)75 b(Zu)41 b(den)h(erw)m(\344hn)m(ten)i(Ressourcen)e(z\344hlen)g(z.B.)382 4790 y(IP-A)m(dressen,)31 b(Logic)g(V)-8 b(olumes)31 b(und)g(Filesysteme.)382 4942 y(MC/ServiceGuard)42 b(l\344uft)g(auf)f (allen)g(Knoten)h(des)f(Clusters.)73 b(Die)41 b(einzelnen)i(In-)382 5055 y(stanzen)33 b(stehen)g(mit)h(Hilfe)e(v)m(on)h(Heartb)s(eat-P)m (ak)m(eten,)j(die)e(\374b)s(er)e(ein)h(gemeinsames)382 5168 y(Ethernet-Lan)40 b(v)m(ersc)m(hic)m(kt)f(w)m(erden,)i (miteinander)f(in)d(V)-8 b(erbindung.)64 b(Reagiert)38 b(ein)382 5281 y(System)c(auf)g(die)g(Heartb)s(eat-P)m(ak)m(ete)j(nic)m (h)m(t)f(mehr,)f(wird)g(es)f(v)m(om)g(anderen)h(System)382 5394 y(als)30 b(ausgefallen)h(b)s(etrac)m(h)m(tet.)1831 5622 y(13)p eop %%Page: 14 16 14 15 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439 b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989 4 v 382 539 a Fp(F)-8 b(alls)30 b(auf)f(dem)g(gerade)i(ausgefallenen)f (System)f(Instanzen)h(v)m(on)g(P)m(ac)m(k)-5 b(ages)31 b(gelaufen)382 652 y(sind,)45 b(wird)e(n)m(un)g(MC/ServiceGuard)g(die)g (not)m(w)m(endigen)i(Ressourcen)d(einric)m(h)m(ten,)382 764 y(z.B.)e(der)g(Netzw)m(erkk)-5 b(arte)41 b(die)g(en)m(tsprec)m (hende)h(IP-A)m(dresse)e(zu)m(w)m(eisen,)k(das)c(SCSI-)382 877 y(Ger\344t)35 b(auf)g(dem)g(Shared)h(SCSI-Bus)f(b)s(elegen,)h(die)g (not)m(w)m(endigen)h(Filesysteme)e(an-)382 990 y(melden)i(und)f(sc)m (hlie\377lic)m(h)i(die)e(Applik)-5 b(ation)36 b(erneut)h(starten.)57 b(Laut)36 b(HP)g(dauert)h(so)382 1103 y(ein)e(Wiederanlauf)g(eines)f (Soft)m(w)m(aresystems)i(45)e(Sekunden)i(zuz\374glic)m(h)g(der)e (f\374r)h(das)382 1216 y(Anmelden)c(der)g(Filesysteme)f(b)s (en\366tigten)i(Zeit.)382 1379 y(Daraus)e(lassen)f(sic)m(h)h(zw)m(ei)g (Anforderungen)h(an)f(die)f(Soft)m(w)m(are)i(eines)f(Clusters)g(ablei-) 382 1492 y(ten:)518 1754 y Fd(\017)46 b Fp(Das)e(Filesystem)f(m)m (u\377)i(in)f(der)g(Lage)g(sein,)k(nac)m(h)c(nic)m(h)m(t)i(ordn)m (ungsgem\344\377er)609 1867 y(Abmeldung)40 b(binnen)f(sehr)f(kurzer)h (Zeit)g(wieder)g(v)m(erf\374gbar)g(zu)f(sein.)65 b(Diese)609 1980 y(Anforderung)34 b(k)-5 b(ann)33 b(v)m(on)g(herk)m(\366mmlic)m (hen)j(Filesystemen)d(nic)m(h)m(t)h(erf\374llt)f(w)m(er-)609 2093 y(den,)j(da)e(diese)h(in)f(solc)m(h)h(einem)g(F)-8 b(all)35 b(die)f(K)m(onsistenz)i(der)e(Datenstrukturen)609 2206 y(auf)c(der)h(F)-8 b(estplatte)32 b(\374b)s(erpr\374fen)f(m)m (\374ssen.)518 2393 y Fd(\017)46 b Fp(Die)41 b(Applik)-5 b(ationen)43 b(m)m(\374ssen)f(in)f(der)g(Lage)h(sein,)i(nac)m(h)f(nic)m (h)m(t)g(ordn)m(ungsge-)609 2506 y(m\344\377er)j(Beendigung)g(wieder)g (starten)f(zu)g(k)m(\366nnen.)85 b(Sie)45 b(m)m(\374ssen)g(z.B.)g(mit) 609 2619 y(Ink)m(onsistenzen)31 b(in)g(ihren)g(dynamisc)m(hen)h (Daten\034les)f(zurec)m(h)m(tk)m(ommen.)382 2909 y Fn(2.3.3.3)103 b(Filesystem)382 3130 y Fp(HP)37 b(setzt)g(sein)g(hauseigenes)h (Online-Journaling-Filesystem)j(ein,)e(das)e(\304nderun-)382 3243 y(gen)28 b(der)f(Filesystemgr\366\377e,)i(w)m(\344hrend)g(es)e(im) h(System)f(angemeldet)i(ist,)f(un)m(terst\374tzt.)382 3356 y(Der)33 b(Journaling-Mec)m(hanism)m(us)k(stellt)d(sic)m(her,)h (da\377)f(die)f(Datenstrukturen)i(auf)e(der)382 3469 y(F)-8 b(estplatte)29 b(auc)m(h)f(nac)m(h)h(einem)f(Ausfall)g(eines)f (Knotens)i(v)m(om)f(anderen)g(Knoten)h(wie-)382 3582 y(der)37 b(rasc)m(h)h(in)g(einen)g(k)m(onsisten)m(ten)g(Zustand)g (gebrac)m(h)m(t)i(w)m(erden)e(k)m(\366nnen.)62 b(Es)37 b(darf)382 3695 y(ab)s(er)30 b(immer)h(n)m(ur)g(ein)g(Knoten)g(das)f (Filesystem)g(auf)g(der)h(Shared)g(Disk)f(angemeldet)382 3808 y(hab)s(en.)382 3971 y(Da)41 b(b)s(ei)f(sim)m(ultanen)j(V)-8 b(ersuc)m(hen,)45 b(das)40 b(Filesystem)h(anzumelden,)k(der)c(Inhalt)g (der)382 4084 y(F)-8 b(estplatte)33 b(un)m(widerru\035ic)m(h)i (zerst\366rt)d(w)m(erden)i(w\374rde,)f(v)m(erw)m(endet)h(HP)d(ein)h(sp) s(eziel-)382 4196 y(les)38 b(SCSI-Lo)s(c)m(k-K)m(ommando,)45 b(um)39 b(sic)m(herzustellen,)j(da\377)d(immer)h(n)m(ur)f(ein)g(Knoten) 382 4309 y(auf)34 b(die)g(Shared)h(Disk)e(zugreift.)53 b(Stellt)34 b(der)h(HP/UX)f(Kernel)g(fest,)h(da\377)f(der)h(ande-)382 4422 y(re)j(Knoten)g(das)g(SCSI-Lo)s(c)m(k-K)m(ommando)j(ausf\374hrt,)f (b)s(eendet)e(er)g(sofort)f(all)h(seine)382 4535 y(Aktivit\344ten)31 b(und)f(legt)h(das)f(System)h(mit)f(einer)h(Kernel-P)m(anik)i(still.) 382 4825 y Fn(2.3.3.4)103 b(Netzw)m(erk)382 5047 y Fp(In)30 b(der)i(Minimalk)m(on\034guration)h(\(wie)f(in)f(Abbildung)h(2.2)f(auf) g(Seite)g(12)g(dargestellt\))382 5159 y(gibt)i(es)f(ein)i(Netzw)m (erksegmen)m(t,)h(das)e(so)m(w)m(ohl)h(f\374r)f(die)g(Heartb)s(eat-P)m (ak)m(ete)i(als)d(auc)m(h)382 5272 y(den)47 b(Netzw)m(erkv)m(erk)m(ehr) j(zwisc)m(hen)e(Clien)m(ts)g(und)f(Serv)m(er-Applik)-5 b(ation)49 b(v)m(erw)m(endet)382 5385 y(wird.)1831 5622 y(14)p eop %%Page: 15 17 15 16 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439 b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989 4 v 382 539 a Fp(MC/ServiceGuard)25 b(un)m(terst\374tzt)g(ab)s(er)e (auc)m(h)h(redundan)m(te)i(K)m(on\034gurationen:)40 b(Jeder)382 652 y(Knoten)24 b(v)m(erf\374gt)g(\374b)s(er)g(zw)m(ei)g(Netzw)m(erkk) -5 b(arten)25 b(in)f(einem)g(o)s(der)g(mehreren)g(Netzw)m(erk-)382 764 y(segmen)m(ten,)42 b(die)d(redundan)m(t)i(durc)m(h)e(Bridges,)i (die)e(das)g(Spanning-T)-8 b(ree)41 b(Protok)m(oll)382 877 y(un)m(terst\374tzen,)32 b(v)m(ernetzt)g(sind.)1831 5622 y(15)p eop %%Page: 16 18 16 17 bop 382 1211 a Fk(Kapitel)62 b(3)382 1676 y Fm(DRBD)71 b(Design)382 2171 y Fp(Ein)35 b(Shared)g(SCSI-Bus)f(hat)h(eine)g(Reihe) f(v)m(on)g(Nac)m(h)m(teilen,)k(die)c(ihn)h(als)f(Standard-)382 2284 y(l\366sung)43 b(f\374r)g(HA-Cluster)g(auf)g(der)g(Basis)g(v)m(on) g(Lin)m(ux)h(nic)m(h)m(t)h(geeignet)f(ersc)m(heinen)382 2397 y(lassen:)518 2659 y Fd(\017)i Fp(Sehr)30 b(T)-8 b(euer:)41 b(Zw)m(ei)29 b(SCSI-K)m(on)m(troller)j(pro)d(Knoten,)i(zw)m (ei)e(SCSI-F)-8 b(estplatten.)609 2772 y(Die)30 b(b)s(ei)f(heutigen)i (PC)g(Motherb)s(oards)f(zur)g(Standardausstattung)i(geh\366ren-)609 2885 y(den)f(IDE-K)m(on)m(troller)i(w\374rden)f(zum)e(T)-8 b(eil)32 b(un)m(b)s(elegt)f(bleib)s(en.)518 3072 y Fd(\017)46 b Fp(Geringe)41 b(lok)-5 b(ale)40 b(Ausdehn)m(ung:)60 b(Die)40 b(geringen)h(Maximall\344ngen)g(des)e(SCSI-)609 3185 y(Busses)g(v)m(erhindern)j(die)e(Aufteilung)h(der)f(Knoten)h(auf)e (mehrere)i(Geb\344ude;)609 3298 y(genau)31 b(das)f(w\374rde)h(jedo)s(c) m(h)g(w)m(esen)m(tlic)m(h)i(b)s(essere)d(Chancen)h(bieten,)h(Katastro-) 609 3411 y(phen)f(wie)g(F)-8 b(euer)32 b(o)s(der)e(W)-8 b(asserein)m(bruc)m(h)33 b(ohne)e(T)-8 b(otalausfall)32 b(zu)f(\374b)s(erstehen.)609 3524 y(Eine)g(\334b)s(ersic)m(h)m(t)h (\374b)s(er)e(die)h(SCSI-Standards)h(und)e(deren)h(Maximall\344ngen:)p 609 3662 2788 4 v 607 3774 4 113 v 660 3741 a(SCSI)f(Bezeic)m(hn)m(ung) p 1428 3774 V 103 w(MB/sec)p 1835 3774 V 100 w(Datenleitungen)p 2536 3774 V 102 w(L\344nge)h([m])p 3029 3774 V 100 w(Ger\344te)p 3395 3774 V 609 3778 2788 4 v 609 3794 V 607 3907 4 113 v 882 3873 a(SCSI)g(1)p 1428 3907 V 455 w(5)p 1835 3907 V 509 w(8)p 2536 3907 V 552 w(6)p 3029 3907 V 384 w(7)p 3395 3907 V 609 3911 2788 4 v 607 4024 4 113 v 882 3990 a(SCSI)g(2)p 1428 4024 V 455 w(5)p 1835 4024 V 509 w(8)p 2536 4024 V 552 w(6)p 3029 4024 V 384 w(7)p 3395 4024 V 609 4027 2788 4 v 607 4140 4 113 v 821 4106 a(F)-8 b(ast)31 b(SCSI)p 1428 4140 V 371 w(10)p 1835 4140 V 487 w(8)p 2536 4140 V 552 w(3)p 3029 4140 V 384 w(7)p 3395 4140 V 609 4143 2788 4 v 607 4256 4 113 v 801 4222 a(Wide)f(SCSI)p 1428 4256 V 351 w(20)p 1835 4256 V 464 w(16)p 2536 4256 V 530 w(6)p 3029 4256 V 362 w(15)p 3395 4256 V 609 4259 2788 4 v 607 4372 4 113 v 801 4338 a(Ultra)g(SCSI)p 1428 4372 V 351 w(20)p 1835 4372 V 487 w(8)p 2536 4372 V 517 w(1,5)p 3029 4372 V 349 w(7)p 3395 4372 V 609 4376 2788 4 v 607 4488 4 113 v 682 4455 a(Ultra)g(Wide)h(SCSI)p 1428 4488 V 231 w(40)p 1835 4488 V 464 w(16)p 2536 4488 V 495 w(1,5)p 3029 4488 V 327 w(15)p 3395 4488 V 609 4492 2788 4 v 607 4605 4 113 v 659 4571 a(Ultra2)g(Wide)f(SCSI)p 1428 4605 V 209 w(40)p 1835 4605 V 464 w(16)p 2536 4605 V 507 w(12)p 3029 4605 V 340 w(15)p 3395 4605 V 609 4608 2788 4 v 607 4721 4 113 v 718 4687 a(Ultra)h(160)f(SCSI)p 1428 4721 V 245 w(160)p 1835 4721 V 442 w(16)p 2536 4721 V 507 w(12)p 3029 4721 V 340 w(15)p 3395 4721 V 609 4724 2788 4 v 607 4837 4 113 v 778 4803 a(Ultra3)h(SCSI)p 1428 4837 V 305 w(160)p 1835 4837 V 442 w(16)p 2536 4837 V 507 w(12)p 3029 4837 V 340 w(15)p 3395 4837 V 609 4841 2788 4 v 518 5057 a Fd(\017)46 b Fp(SCSI-Y-Kab)s(el)31 b(sind)g(n)m(ur)g(sc)m(h)m(w)m(er)h(erh\344ltlic)m(h.)518 5245 y Fd(\017)46 b Fp(Im)31 b(Gegensatz)h(zu)f(einem)h(Netzw)m(erkk)-5 b(ab)s(el)31 b(ist)g(ein)h(SCSI-Kab)s(el)f(unhandlic)m(h)609 5358 y(in)g(der)f(Handhabung.)1831 5622 y(16)p eop %%Page: 17 19 17 18 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)712 b(3.1.)71 b(DRBD)30 b(IM)g(KERNEL)p 382 299 2989 4 v 382 539 a Fp(Die)g(Idee)g(v)m(on)h(DRBD)1179 506 y Fg(1)1248 539 y Fp(ist)f(es,)g(die)g(Daten)h(redundan)m(t)h(in)e(jedem)h(Knoten)g (des)f(Clu-)382 652 y(sters)41 b(abzulegen)i(und)f(alle)h(V)-8 b(er\344nderungen)44 b(der)e(Daten)g(an)g(alle)g(Mitglieder)h(des)382 764 y(Clusters)35 b(\374b)s(er)f(ein)h(normales)g(IP-basiertes)g(Netzw) m(erk)g(zu)g(\374b)s(ertragen.)54 b(F)-8 b(olgende)382 877 y(Punkte)31 b(sprec)m(hen)h(f\374r)e(den)h(Einsatz)g(v)m(on)f (DRBD:)518 1140 y Fd(\017)46 b Fp(W)-8 b(esen)m(tlic)m(h)38 b(k)m(osteng\374nstiger:)54 b(Da)36 b(die)g(Daten)g(v)m(on)h(DRBD)e (redundan)m(t)j(ge-)609 1253 y(sp)s(eic)m(hert)21 b(w)m(erden,)j(sind)d (in)f(den)h(Knoten)g(k)m(eine)g(SCSI-)g(o)s(der)f(RAID-K)m(on)m (troller)609 1365 y(not)m(w)m(endig,)25 b(und)c(es)f(k)m(\366nnen)h(so) m(w)m(ohl)h(die)f(ohnehin)g(v)m(orhandenen)h(IDE-K)m(on)m(troller)609 1478 y(als)37 b(auc)m(h)h(g\374nstige)g(IDE-F)-8 b(estplatten)39 b(zum)e(Einsatz)h(k)m(ommen.)62 b(\(Eine)38 b(IDE)609 1591 y(F)-8 b(estplatte)32 b(k)m(ostet)f(in)f(der)h(Regel)f(n)m(ur)h (die)g(H\344lfte)f(einer)h(SCSI-F)-8 b(estplatte.\))518 1779 y Fd(\017)46 b Fp(Beliebige)22 b(Ausdehn)m(ung:)36 b(IP-basierende)22 b(Netzw)m(erk)m(e)g(k)m(\366nnen)f(die)g(ganze)g(W) -8 b(elt)609 1892 y(umspannen.)41 b(Die)28 b(Knoten)g(des)g(Clusters)g (k)m(\366nn)m(ten)h(sogar)f(auf)f(v)m(ersc)m(hiedenen)609 2005 y(K)m(on)m(tinen)m(ten)40 b(stehen.)58 b(\(Bei)36 b(gro\377er)h(Ausdehn)m(ung)g(sc)m(hr\344nkt)g(allerdings)g(die)609 2118 y(gro\377e)d(V)-8 b(erz\366gerung)35 b(des)d(Netzw)m(erk)m(es)i (den)g(Durc)m(hsatz)g(des)f(DRBD-Ger\344tes)609 2231 y(stark)d(ein.\))518 2418 y Fd(\017)46 b Fp(Es)30 b(sind)h(n)m(ur)g (Standard-Netzw)m(erkk)m(omp)s(onen)m(ten)k(erforderlic)m(h.)518 2606 y Fd(\017)46 b Fp(Netzw)m(erkk)-5 b(ab)s(el)30 b(sind)g(w)m(esen)m (tlic)m(h)i(einfac)m(her)f(in)e(der)h(Handhabung)h(als)e(SCSI-)609 2719 y(Kab)s(el.)382 3055 y Fj(3.1)130 b(DRBD)44 b(im)g(Kernel)382 3308 y Fp(In)39 b(Abbildung)h(3.1)g(sind)f(die)g(K)m(omp)s(onen)m(ten)j (des)d(Lin)m(ux-Kernels)i(so)e(dargestellt,)382 3421 y(wie)c(man)g(sie)f(auf)h(einem)g(herk)m(\366mmlic)m(hen)i(Serv)m(er)f (v)m(or\034ndet.)54 b(Der)35 b(graue)g(Bereic)m(h)382 3534 y(stellt)26 b(den)g(Kernel)g(dar.)40 b(Mit)25 b(Ausnahme)h(des)g (F)-8 b(estplatten)m(treib)s(ers)28 b(sind)e(alle)g(darge-)382 3646 y(stellten)j(K)m(omp)s(onen)m(ten)i(\034x)d(im)g(Kernel)h(v)m (orhanden.)42 b(Da)28 b(es)g(m\366glic)m(h)i(ist,)e(F)-8 b(estplat-)382 3759 y(ten)m(treib)s(er)30 b(in)f(einen)h(laufenden)g (Lin)m(ux-Kernel)h(nac)m(hzuladen,)h(meldet)e(sic)m(h)f(DRBD)382 3872 y(als)h(F)-8 b(estplatten)m(treib)s(er)33 b(im)e(Lin)m(ux-Kernel)h (an.)41 b(\(Siehe)31 b(Abbildung)h(3.2\))382 4035 y(DRBD)22 b(erh\344lt)h(v)m(om)g(Bu\033er-Cac)m(he)i(Subsystem)e(des)f(Kernels)h (Sc)m(hreib-)i(und)e(Lesean-)382 4148 y(forderungen.)41 b(Leseanforderungen)32 b(w)m(erden)f(durc)m(h)g(eine)f(Leseanforderung) h(an)f(den)382 4261 y(lok)-5 b(alen)43 b(F)-8 b(estplatten)m(treib)s (er)44 b(erf\374llt,)i(w)m(\344hrend)e(die)e(Daten)m(bl\366)s(c)m(k)m (e,)48 b(die)42 b(v)m(on)h(einer)382 4374 y(Sc)m(hreibanforderung)28 b(stammen,)g(auc)m(h)e(an)g(das)f(zw)m(eite)i(System)e(\374b)s(er)g (das)h(Netzw)m(erk)382 4487 y(w)m(eitergegeb)s(en)35 b(w)m(erden.)49 b(Dadurc)m(h)34 b(wird)f(der)g(Inhalt)g(der)g (virtuellen)h(Shared)f(Disk)382 4600 y(auf)d(b)s(eiden)h(F)-8 b(estplatten)32 b(des)e(Clusters)g(redundan)m(t)j(abgelegt.)382 4762 y(Grunds\344tzlic)m(h)42 b(ist)e(f\374r)h(den)f(Betrieb)i(v)m(on)e (DRBD)g(n)m(ur)i(eine)e(Netzw)m(erkk)-5 b(arte)42 b(pro)382 4875 y(System)33 b(erforderlic)m(h.)49 b(Es)33 b(k)m(omm)m(t)h(ab)s(er) f(nic)m(h)m(t)h(n)m(ur)f(DRBD)f(zugute,)j(w)m(enn)f(f\374r)e(die)382 4988 y(V)-8 b(erbindung)41 b(zwisc)m(hen)f(den)f(Systemen)g(ein)g (eigenes)h(Netz)f(zur)g(V)-8 b(erf\374gung)40 b(steh)m(t.)382 5101 y(Dies)26 b(hilft)h(v)m(or)f(allem)i(der)e(Cluster-Soft)m(w)m (are,)k(zwisc)m(hen)e(dem)f(Ausfall)f(eines)h(ganzen)382 5214 y(Knotens)k(und)g(dem)g(Ausfall)e(einer)i(Netzw)m(erkk)-5 b(arte)32 b(zu)f(un)m(tersc)m(heiden.)p 382 5275 1196 4 v 486 5329 a Ff(1)520 5361 y Fe(Distributed)25 b(replicated)h(blo)r (c)n(k)g(device)1831 5622 y Fp(17)p eop %%Page: 18 20 18 19 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)712 b(3.1.)71 b(DRBD)30 b(IM)g(KERNEL)p 382 299 2989 4 v 1156 2585 a currentpoint currentpoint translate 0.79683 0.79683 scale neg exch neg exch translate 1156 2585 a @beginspecial 61 @llx 449 @lly 278 @urx 771 @ury 2170 @rwi @setspecial %%BeginDocument: /home/philipp/diplomarbeit//scheme1.ps %!PS-Adobe-3.0 EPSF-3.0 %%For: Philipp Reisner %%CreationDate: Wed Mar 15 09:13:19 2000 %%Title: scheme1.ps %%Creator: Sketch 0.6.5 %%Pages: 1 %%BoundingBox: 61 449 278 771 %%Extensions: CMYK %%DocumentSuppliedResources: (atend) %%DocumentNeededResources: font Times-Roman %%EndComments %%BeginProlog %%BeginResource: procset Linux-Sketch-Procset 1.0 2 /SketchDict 100 dict def SketchDict begin /bd { bind def } bind def /x { exch } bd /xd { exch def } bd /PI 3.14159265358979323846264338327 def /radgrad { 180 mul PI div } bd /skstartmatrix matrix currentmatrix def /tmpmat matrix def /ISOLatin1Encoding dup where { pop pop } { [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def } ifelse /arct dup where {pop pop} { /arct {arcto pop pop pop pop} bd } ifelse /size 0 def /fontname 0 def /newfont 0 def /sf { /size xd /fontname xd fontname findfont dup /Encoding get StandardEncoding eq { dup length dict /newfont xd { 1 index /FID ne { newfont 3 1 roll put } { pop pop } ifelse } forall newfont /Encoding ISOLatin1Encoding put fontname newfont definefont } if size scalefont setfont } bd /pusht {matrix currentmatrix} bd /popt {setmatrix} bd /pushc {gsave} bd /popc {grestore} bd /rgb {setrgbcolor} bd /w { setlinewidth } bd /j { setlinejoin } bd /J { setlinecap } bd /d { setdash } bd /F { eofill } bd /f { closepath F } bd /S { pusht skstartmatrix setmatrix stroke popt } bd /s { closepath S } bd /m { moveto } bd /l { lineto } bd /c { curveto } bd /txt { /tmpmat tmpmat currentmatrix def dup type /arraytype eq {concat} {translate} ifelse 0 0 m tmpmat } bd /T {txt x show popt} bd /P {txt x true charpath popt} bd /TP {txt x dup show 0 0 m true charpath popt} bd /C {newpath 0 360 arc} bd /R { 2 copy m x 2 index l x 2 index x l l closepath } bd /ellipse { dup type /arraytype eq { pusht x concat 0 0 1.0 C popt } { pusht 5 1 roll 4 -1 roll concat newpath dup 2 eq { 0 0 m } if 3 1 roll radgrad x radgrad x 0 0 1 5 -2 roll arc 0 ne { closepath } if popt } ifelse } bd /radius1 0 def /radius2 0 def /factor 0 def /rect { dup type /arraytype eq { pusht x concat 0 0 m 1 0 l 1 1 l 0 1 l closepath popt } { /radius2 xd /radius1 xd pusht x concat radius1 radius2 div 1 scale 0 radius2 m 0 1 radius2 1 radius2 arct radius2 radius1 div dup 1 1 index 0 radius2 arct 0 0 0 radius2 arct 0 0 0 1 radius2 arct closepath popt } ifelse } bd /buf 0 def /width 0 def /height 0 def /skcimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width 3 mul string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind false 3 colorimage tmpmat setmatrix } bd /skgimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind image tmpmat setmatrix } bd /rclip { 4 2 roll m dup 0 x rlineto x 0 rlineto neg 0 x rlineto closepath clip } bd /skeps { 10 dict begin /sk_state save def concat 3 index neg 3 index neg translate rclip 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /sk_dict_count countdictstack def /sk_count count 1 sub def userdict begin /showpage { } def /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bd /skepsend { count sk_count sub { pop } repeat countdictstack sk_dict_count sub { end } repeat sk_state restore end } bd /gradidx 0 def /gradient { 3 mul array /gradidx 0 def } bd /$ { 3 index gradidx 5 -1 roll put 2 index gradidx 1 add 4 -1 roll put 1 index gradidx 2 add 3 -1 roll put /gradidx gradidx 3 add def } bd /! { 3 { dup dup gradidx dup 3 1 roll 3 sub get put /gradidx gradidx 1 add def } repeat } bd /gradcolor { 3 mul dup 2 add 1 exch % idx 1 idx+2 { 1 index exch % array array i get % array component exch % component array } for 4 1 roll } bd /x0 0 def /y0 0 def /x1 0 def /y1 0 def /left 0 def /right 0 def /top 0 def /bottom 0 def /numcolors 0 def /axial { /y1 xd /x1 xd /y0 xd /x0 xd dup length 3 idiv /numcolors xd pusht exch % ctm array x0 x1 ne y0 y1 ne or { x0 y0 translate [x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath 0 gradcolor rgb clippath f 0 1 numcolors 1 sub { dup numcolors div 3 1 roll gradcolor rgb exch bottom right top R f } for } if pop popt } bd /r0 0 def /r1 0 def /dr 0 def /radial { /r1 xd /r0 xd /y0 xd /x0 xd /dr r1 r0 sub def dup length 3 idiv /numcolors xd pusht exch % ctm array r0 r1 ne { x0 y0 translate clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb clippath f dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse { dup numcolors div dr mul r0 add 3 1 roll gradcolor rgb exch 0 0 3 -1 roll C f } for } if pop popt } bd /max { 2 copy lt {exch} if pop } bd /conical { pusht 5 1 roll 3 1 roll /y0 xd /x0 xd x0 y0 translate radgrad rotate dup length 3 idiv /numcolors xd clippath flattenpath pathbbox newpath 4 { abs 4 1 roll} repeat 3 { max } repeat 2 mul dup scale 0 gradcolor rgb 0 0 1 0 360 arc f 1 1 numcolors 1 sub { dup numcolors div 180 mul 3 1 roll gradcolor rgb exch 0 0 moveto 0 0 1 4 -1 roll dup neg arc closepath f } for pop popt } bd /XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def /tileimage2 { exch 4 2 roll /height xd /width xd mark /components 2 index /PatternType 1 /PaintType 1 /TilingType 1 /BBox [0 0 width height] /XStep width /YStep height /PaintProc { begin XStep YStep 8 matrix imagedata false components colorimage end } counttomark 2 div cvi dup dict begin { def } repeat pop currentdict end dup /imagedata 4 -1 roll width height mul mul string currentfile exch readhexstring pop put exch makepattern setpattern clippath eofill } bd /tileimage1 { concat /components xd /height xd /width xd /imagedata currentfile width height mul components mul string readhexstring pop def clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd left width div floor width mul bottom height div floor height mul translate top bottom sub height div ceiling cvi { gsave right left sub width div ceiling cvi { width height 8 matrix components 1 eq { { imagedata } image } { imagedata false components colorimage } ifelse width 0 translate } repeat grestore 0 height translate } repeat } bd /makepattern where { pop /tileimage /tileimage2 load def } { /tileimage /tileimage1 load def } ifelse end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Roman 10.433 setmiterlimit %%EndSetup %%Page: 1 1 SketchDict begin [215.433 0 0 -130.394 62.3622 702.992] rect 0.848 0.835 0.949 rgb F newpath 127.284 473.387 m 130.118 470.552 l 152.796 470.552 l 155.63 473.387 l closepath 0.8 0.8 0.8 rgb F 127.284 473.387 m 130.118 470.552 l 152.796 470.552 l 155.63 473.387 l 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [34.0158 0 0 -28.3465 124.449 501.733] rect gsave 0.8 0.8 0.8 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [28.3465 0 0 -22.6772 127.284 498.899] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [39.6282 -2.12668 -3.43822 -11.171 121.947 468.773] rect S newpath 122.957 466.447 m 124.089 466.386 l S newpath 120.894 459.744 m 122.026 459.684 l S newpath 121.41 461.42 m 122.542 461.359 l S newpath 121.926 463.096 m 123.058 463.035 l S newpath 122.441 464.771 m 123.574 464.71 l S newpath 124.655 466.356 m 125.788 466.295 l S newpath 122.593 459.653 m 123.725 459.592 l S newpath 123.108 461.329 m 124.24 461.268 l S newpath 123.624 463.004 m 124.756 462.944 l S newpath 124.14 464.68 m 125.272 464.619 l S newpath 126.354 466.265 m 127.486 466.204 l S newpath 124.291 459.562 m 125.423 459.501 l S newpath 124.807 461.238 m 125.939 461.177 l S newpath 125.322 462.913 m 126.455 462.852 l S newpath 125.838 464.589 m 126.97 464.528 l S newpath 128.052 466.173 m 129.184 466.113 l S newpath 125.989 459.471 m 127.121 459.41 l S newpath 126.505 461.146 m 127.637 461.086 l S newpath 127.021 462.822 m 128.153 462.761 l S newpath 127.536 464.498 m 128.669 464.437 l S newpath 129.751 466.082 m 130.883 466.021 l S newpath 127.688 459.38 m 128.82 459.319 l S newpath 128.203 461.055 m 129.336 460.995 l S newpath 128.719 462.731 m 129.851 462.67 l S newpath 129.235 464.407 m 130.367 464.346 l S newpath 131.449 465.991 m 132.581 465.93 l S newpath 129.386 459.289 m 130.518 459.228 l S newpath 129.902 460.964 m 131.034 460.903 l S newpath 130.417 462.64 m 131.55 462.579 l S newpath 130.933 464.315 m 132.065 464.255 l S newpath 133.147 465.9 m 134.279 465.839 l S newpath 131.084 459.197 m 132.217 459.137 l S newpath 131.6 460.873 m 132.732 460.812 l S newpath 132.116 462.549 m 133.248 462.488 l S newpath 132.631 464.224 m 133.764 464.164 l S newpath 134.846 465.809 m 135.978 465.748 l S newpath 132.783 459.106 m 133.915 459.046 l S newpath 133.298 460.782 m 134.431 460.721 l S newpath 133.814 462.458 m 134.946 462.397 l S newpath 134.33 464.133 m 135.462 464.072 l S newpath 136.544 465.718 m 137.676 465.657 l S newpath 134.481 459.015 m 135.613 458.954 l S newpath 134.997 460.691 m 136.129 460.63 l S newpath 135.512 462.366 m 136.645 462.306 l S newpath 136.028 464.042 m 137.16 463.981 l S newpath 138.242 465.627 m 139.375 465.566 l S newpath 136.179 458.924 m 137.312 458.863 l S newpath 136.695 460.6 m 137.827 460.539 l S newpath 137.211 462.275 m 138.343 462.214 l S newpath 137.727 463.951 m 138.859 463.89 l S newpath 139.941 465.535 m 141.073 465.475 l S newpath 137.878 458.833 m 139.01 458.772 l S newpath 138.393 460.508 m 139.526 460.448 l S newpath 138.909 462.184 m 140.041 462.123 l S newpath 139.425 463.86 m 140.557 463.799 l S newpath 141.639 465.444 m 142.771 465.383 l S newpath 139.576 458.742 m 140.708 458.681 l S newpath 140.092 460.417 m 141.224 460.357 l S newpath 140.608 462.093 m 141.74 462.032 l S newpath 141.123 463.769 m 142.255 463.708 l S newpath 143.337 465.353 m 144.47 465.292 l S newpath 152.395 464.867 m 153.527 464.806 l S newpath 141.274 458.651 m 142.407 458.59 l S newpath 150.332 458.164 m 151.464 458.104 l S newpath 141.79 460.326 m 142.922 460.265 l S newpath 150.848 459.84 m 151.98 459.779 l S newpath 142.306 462.002 m 143.438 461.941 l S newpath 151.364 461.516 m 152.496 461.455 l S newpath 142.822 463.677 m 143.954 463.617 l S newpath 151.879 463.191 m 153.012 463.131 l S newpath 145.036 465.262 m 146.168 465.201 l S newpath 154.094 464.776 m 155.226 464.715 l S newpath 142.973 458.559 m 144.105 458.499 l S newpath 152.031 458.073 m 153.163 458.013 l S newpath 143.488 460.235 m 144.621 460.174 l S newpath 152.546 459.749 m 153.679 459.688 l S newpath 144.004 461.911 m 145.136 461.85 l S newpath 153.062 461.425 m 154.194 461.364 l S newpath 144.52 463.586 m 145.652 463.526 l S newpath 153.578 463.1 m 154.71 463.039 l S newpath 146.734 465.171 m 147.866 465.11 l S newpath 155.792 464.685 m 156.924 464.624 l S newpath 144.671 458.468 m 145.803 458.408 l S newpath 153.729 457.982 m 154.861 457.921 l S newpath 145.187 460.144 m 146.319 460.083 l S newpath 154.245 459.658 m 155.377 459.597 l S newpath 145.703 461.82 m 146.835 461.759 l S newpath 154.76 461.333 m 155.893 461.273 l S newpath 146.218 463.495 m 147.351 463.434 l S newpath 155.276 463.009 m 156.408 462.948 l S newpath 148.432 465.08 m 149.565 465.019 l S newpath 157.49 464.594 m 158.622 464.533 l S newpath 146.369 458.377 m 147.502 458.316 l S newpath 155.427 457.891 m 156.56 457.83 l S newpath 146.885 460.053 m 148.017 459.992 l S newpath 155.943 459.567 m 157.075 459.506 l S newpath 147.401 461.728 m 148.533 461.668 l S newpath 156.459 461.242 m 157.591 461.182 l S newpath 147.917 463.404 m 149.049 463.343 l S newpath 156.975 462.918 m 158.107 462.857 l S newpath 210.035 473.387 m 212.869 470.552 l 235.547 470.552 l 238.381 473.387 l closepath 0.8 0.8 0.8 rgb F 210.035 473.387 m 212.869 470.552 l 235.547 470.552 l 238.381 473.387 l 0 0 0 rgb S [34.0158 0 0 -28.3465 207.2 501.733] rect gsave 0.8 0.8 0.8 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [28.3465 0 0 -22.6772 210.035 498.899] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [39.6282 -2.12668 -3.43822 -11.171 204.698 468.773] rect S newpath 205.708 466.447 m 206.84 466.386 l S newpath 203.645 459.744 m 204.777 459.684 l S newpath 204.161 461.42 m 205.293 461.359 l S newpath 204.677 463.096 m 205.809 463.035 l S newpath 205.192 464.771 m 206.325 464.71 l S newpath 207.406 466.356 m 208.539 466.295 l S newpath 205.344 459.653 m 206.476 459.592 l S newpath 205.859 461.329 m 206.991 461.268 l S newpath 206.375 463.004 m 207.507 462.944 l S newpath 206.891 464.68 m 208.023 464.619 l S newpath 209.105 466.265 m 210.237 466.204 l S newpath 207.042 459.562 m 208.174 459.501 l S newpath 207.558 461.238 m 208.69 461.177 l S newpath 208.073 462.913 m 209.206 462.852 l S newpath 208.589 464.589 m 209.721 464.528 l S newpath 210.803 466.173 m 211.935 466.113 l S newpath 208.74 459.471 m 209.872 459.41 l S newpath 209.256 461.146 m 210.388 461.086 l S newpath 209.772 462.822 m 210.904 462.761 l S newpath 210.287 464.498 m 211.42 464.437 l S newpath 212.502 466.082 m 213.634 466.021 l S newpath 210.439 459.38 m 211.571 459.319 l S newpath 210.954 461.055 m 212.087 460.995 l S newpath 211.47 462.731 m 212.602 462.67 l S newpath 211.986 464.407 m 213.118 464.346 l S newpath 214.2 465.991 m 215.332 465.93 l S newpath 212.137 459.289 m 213.269 459.228 l S newpath 212.653 460.964 m 213.785 460.903 l S newpath 213.168 462.64 m 214.301 462.579 l S newpath 213.684 464.315 m 214.816 464.255 l S newpath 215.898 465.9 m 217.03 465.839 l S newpath 213.835 459.197 m 214.968 459.137 l S newpath 214.351 460.873 m 215.483 460.812 l S newpath 214.867 462.549 m 215.999 462.488 l S newpath 215.382 464.224 m 216.515 464.164 l S newpath 217.597 465.809 m 218.729 465.748 l S newpath 215.534 459.106 m 216.666 459.046 l S newpath 216.049 460.782 m 217.182 460.721 l S newpath 216.565 462.458 m 217.697 462.397 l S newpath 217.081 464.133 m 218.213 464.072 l S newpath 219.295 465.718 m 220.427 465.657 l S newpath 217.232 459.015 m 218.364 458.954 l S newpath 217.748 460.691 m 218.88 460.63 l S newpath 218.263 462.366 m 219.396 462.306 l S newpath 218.779 464.042 m 219.911 463.981 l S newpath 220.993 465.627 m 222.126 465.566 l S newpath 218.93 458.924 m 220.063 458.863 l S newpath 219.446 460.6 m 220.578 460.539 l S newpath 219.962 462.275 m 221.094 462.214 l S newpath 220.478 463.951 m 221.61 463.89 l S newpath 222.692 465.535 m 223.824 465.475 l S newpath 220.629 458.833 m 221.761 458.772 l S newpath 221.144 460.508 m 222.277 460.448 l S newpath 221.66 462.184 m 222.792 462.123 l S newpath 222.176 463.86 m 223.308 463.799 l S newpath 224.39 465.444 m 225.522 465.383 l S newpath 222.327 458.742 m 223.459 458.681 l S newpath 222.843 460.417 m 223.975 460.357 l S newpath 223.359 462.093 m 224.491 462.032 l S newpath 223.874 463.769 m 225.006 463.708 l S newpath 226.088 465.353 m 227.221 465.292 l S newpath 235.146 464.867 m 236.278 464.806 l S newpath 224.025 458.651 m 225.158 458.59 l S newpath 233.083 458.164 m 234.215 458.104 l S newpath 224.541 460.326 m 225.673 460.265 l S newpath 233.599 459.84 m 234.731 459.779 l S newpath 225.057 462.002 m 226.189 461.941 l S newpath 234.115 461.516 m 235.247 461.455 l S newpath 225.573 463.677 m 226.705 463.617 l S newpath 234.63 463.191 m 235.763 463.131 l S newpath 227.787 465.262 m 228.919 465.201 l S newpath 236.845 464.776 m 237.977 464.715 l S newpath 225.724 458.559 m 226.856 458.499 l S newpath 234.782 458.073 m 235.914 458.013 l S newpath 226.239 460.235 m 227.372 460.174 l S newpath 235.297 459.749 m 236.43 459.688 l S newpath 226.755 461.911 m 227.887 461.85 l S newpath 235.813 461.425 m 236.945 461.364 l S newpath 227.271 463.586 m 228.403 463.526 l S newpath 236.329 463.1 m 237.461 463.039 l S newpath 229.485 465.171 m 230.617 465.11 l S newpath 238.543 464.685 m 239.675 464.624 l S newpath 227.422 458.468 m 228.554 458.408 l S newpath 236.48 457.982 m 237.612 457.921 l S newpath 227.938 460.144 m 229.07 460.083 l S newpath 236.996 459.658 m 238.128 459.597 l S newpath 228.454 461.82 m 229.586 461.759 l S newpath 237.511 461.333 m 238.644 461.273 l S newpath 228.969 463.495 m 230.102 463.434 l S newpath 238.027 463.009 m 239.159 462.948 l S newpath 231.183 465.08 m 232.316 465.019 l S newpath 240.241 464.594 m 241.373 464.533 l S newpath 229.12 458.377 m 230.253 458.316 l S newpath 238.178 457.891 m 239.311 457.83 l S newpath 229.636 460.053 m 230.768 459.992 l S newpath 238.694 459.567 m 239.826 459.506 l S newpath 230.152 461.728 m 231.284 461.668 l S newpath 239.21 461.242 m 240.342 461.182 l S newpath 230.668 463.404 m 231.8 463.343 l S newpath 239.726 462.918 m 240.858 462.857 l S newpath 221.103 532.914 m 221.103 507.402 l S newpath 221.103 518.741 m 138.898 518.741 l 138.898 507.402 l S /Times-Roman 12 sf (...) 175 496 T newpath 201.26 558.425 m 198.425 558.425 l 198.425 555.591 l 201.26 555.591 l S newpath 201.26 544.252 m 209.764 544.252 l 209.764 538.583 l 235.276 538.583 l 235.276 544.252 l 255.118 544.252 l 255.118 561.26 l 201.26 561.26 l 201.26 566.929 l 201.26 538.583 l S newpath 212.598 544.252 m 212.598 538.583 l S newpath 218.268 544.252 m 218.268 538.583 l S newpath 215.433 544.252 m 215.433 538.583 l S newpath 221.102 544.252 m 221.102 538.583 l S newpath 223.937 544.252 m 223.937 538.583 l S newpath 226.772 544.252 m 226.772 538.583 l S newpath 229.606 544.252 m 229.606 538.583 l S newpath 232.441 544.252 m 232.441 538.583 l S (NIC) 217 549 T [-85.0394 0 0 28.3464 155.906 581.102] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-85.0394 0 0 28.3464 269.291 581.102] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-85.0394 0 0 28.3464 155.906 623.622] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 221.102 581.102 m 221.102 569.197 l 0.992126 w S pusht 221.102 569.197 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 232.441 566.929 m 232.441 578.835 l 1 w S pusht 232.441 578.835 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 107.717 623.622 m 107.717 611.717 l 0.992126 w S pusht 107.717 611.717 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 119.055 609.449 m 119.055 621.354 l 1 w S pusht 119.055 621.354 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 107.717 666.142 m 107.717 654.236 l 0.992126 w S pusht 107.717 654.236 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 119.055 651.968 m 119.055 663.874 l 1 w S pusht 119.055 663.874 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 107.717 708.661 m 107.717 696.756 l 0.992126 w S pusht 107.717 696.756 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 119.055 694.488 m 119.055 706.394 l 1 w S pusht 119.055 706.394 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 221.102 694.488 m 221.102 682.583 l 0.992126 w S pusht 221.102 682.583 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 232.441 680.315 m 232.441 692.22 l 1 w S pusht 232.441 692.22 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 221.102 632.126 m 221.102 620.221 l 0.992126 w S pusht 221.102 620.221 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 232.441 617.953 m 232.441 629.858 l 1 w S pusht 232.441 629.858 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 107.717 581.102 m 107.717 569.197 l 0.992126 w S pusht 107.717 569.197 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 119.055 566.929 m 119.055 578.835 l 1 w S pusht 119.055 578.835 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt [-28.3465 0 0 7.08663 113.386 545.669] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 113.386 552.756] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 113.386 559.842] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S /Times-Roman 12 sf (Disk) 102 555 T (Disk driver) 86 592 T (Disk scheduler) 81 626 T (Buffer cache) 73 640 T [85.0394 0 0 -28.3464 70.8661 694.488] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [85.0394 0 0 -28.3464 184.252 668.976] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S /Times-Roman 12 sf (File system) 85 677 T (NIC driver) 201 592 T (TCP/IP) 209 649 T [198.425 0 0 56.6929 70.8661 708.661] rect S (Service) 152 734 T %%PageTrailer showpage %%Trailer end %%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 %%EOF %%EndDocument @endspecial 1156 2585 a currentpoint currentpoint translate 1 0.79683 div 1 0.79683 div scale neg exch neg exch translate 1156 2585 a 716 2781 a Fp(Abbildung)i(3.1:)41 b(Daten\035u\377)31 b(in)g(einem)g(einfac)m(hen)h(Serv)m(ersystem)382 3056 y Fo(3.1.1)112 b(Seman)m(tik)m(en)382 3278 y Fp(DRBD)41 b(wurde)i(v)m(or)f(allem)h(f\374r)f(den)g(Einsatz)h(in)f(einem)h (HA-Cluster)f(en)m(t)m(wic)m(k)m(elt,)382 3391 y(Lastv)m(erteilung)28 b(wurde)e(dab)s(ei)g(nic)m(h)m(t)i(b)s(er\374c)m(ksic)m(h)m(tigt.)41 b(Daher)26 b(wurde)h(bisher)f(auf)f(die)382 3504 y(exakte)i(Nac)m(h)m (bildung)j(der)d(Seman)m(tik)i(einer)e(Shared)h(Disk)f(v)m(erzic)m(h)m (tet.)42 b(F\374r)27 b(eine)h(ex-)382 3617 y(akte)c(Nac)m(h)m(bildung)j (der)e(Seman)m(tik)h(m)m(\374\377ten)g(die)f(Daten,)h(w)m(enn)g(sie)e (v)m(on)h(DRBD)e(\374b)s(er)382 3729 y(das)34 b(Netzw)m(erk)h (empfangen)g(w)m(erden,)h(ohne)f(da\377)f(diese)g(im)g(Bu\033er-Cac)m (he)i(abgelegt)382 3842 y(w)m(erden,)46 b(direkt)c(an)g(den)h(darun)m (terliegenden)i(F)-8 b(estplatten)m(treib)s(er)44 b(w)m(eitergegeb)s (en)382 3955 y(w)m(erden.)d(Diese)27 b(Seman)m(tik)h(w)m(\344re)g (f\374r)f(den)g(Einsatz)h(eines)f(Shared-Disk)h(Filesystems)382 4068 y(wie)j(z.B.)f(GFS)907 4035 y Fg(2)977 4068 y Fp([PBB+99)q(])g (erforderlic)m(h.)382 4358 y Fn(3.1.1.1)103 b(GFS)382 4580 y Fp(Im)42 b(Un)m(tersc)m(hied)i(zu)e(anderen)h(Filesystemen)g(k) -5 b(ann)42 b(GFS)g(ein)g(Dateisystem,)k(das)382 4692 y(auf)26 b(einer)i(Shared)f(Disk)f(liegt,)i(v)m(on)f(mehreren)h(Knoten) g(aus)e(gleic)m(hzeitig)j(anmelden.)382 4805 y(Um)35 b(die)g(Zugri\033e)h(der)g(Knoten)g(auf)f(die)g(Datenstrukturen)i(auf)d (der)i(F)-8 b(estplatte)36 b(zu)382 4918 y(k)m(o)s(ordinieren,)h(ist)d (ein)g(v)m(erteilter)i(K)m(o)s(ordinationsmec)m(hanism)m(us)i (erforderlic)m(h.)54 b(Die)382 5031 y(GFS)29 b(En)m(t)m(wic)m(kler)k (hab)s(en)d(dies)f(mit)h(Hilfe)f(eines)h(sp)s(eziellen)g(SCSI-K)m (ommandos)i(im-)382 5144 y(plemen)m(tiert,)h(das)d(auc)m(h)h(im)g (SCSI-Ger\344t)g(implemen)m(tiert)i(sein)d(m)m(u\377.)p 382 5206 1196 4 v 486 5259 a Ff(2)520 5291 y Fe(Global)d(Filesystem) 1831 5622 y Fp(18)p eop %%Page: 19 21 19 20 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)712 b(3.1.)71 b(DRBD)30 b(IM)g(KERNEL)p 382 299 2989 4 v 382 4014 a currentpoint currentpoint translate 0.75989 0.75989 scale neg exch neg exch translate 382 4014 a @beginspecial 61 @llx 392 @lly 533 @urx 771 @ury 4720 @rwi @setspecial %%BeginDocument: /home/philipp/diplomarbeit//scheme2.ps %!PS-Adobe-3.0 EPSF-3.0 %%For: Philipp Reisner %%CreationDate: Wed Mar 15 09:15:38 2000 %%Title: scheme2.ps %%Creator: Sketch 0.6.5 %%Pages: 1 %%BoundingBox: 61 392 533 771 %%Extensions: CMYK %%DocumentSuppliedResources: (atend) %%DocumentNeededResources: font Times-Roman %%EndComments %%BeginProlog %%BeginResource: procset Linux-Sketch-Procset 1.0 2 /SketchDict 100 dict def SketchDict begin /bd { bind def } bind def /x { exch } bd /xd { exch def } bd /PI 3.14159265358979323846264338327 def /radgrad { 180 mul PI div } bd /skstartmatrix matrix currentmatrix def /tmpmat matrix def /ISOLatin1Encoding dup where { pop pop } { [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def } ifelse /arct dup where {pop pop} { /arct {arcto pop pop pop pop} bd } ifelse /size 0 def /fontname 0 def /newfont 0 def /sf { /size xd /fontname xd fontname findfont dup /Encoding get StandardEncoding eq { dup length dict /newfont xd { 1 index /FID ne { newfont 3 1 roll put } { pop pop } ifelse } forall newfont /Encoding ISOLatin1Encoding put fontname newfont definefont } if size scalefont setfont } bd /pusht {matrix currentmatrix} bd /popt {setmatrix} bd /pushc {gsave} bd /popc {grestore} bd /rgb {setrgbcolor} bd /w { setlinewidth } bd /j { setlinejoin } bd /J { setlinecap } bd /d { setdash } bd /F { eofill } bd /f { closepath F } bd /S { pusht skstartmatrix setmatrix stroke popt } bd /s { closepath S } bd /m { moveto } bd /l { lineto } bd /c { curveto } bd /txt { /tmpmat tmpmat currentmatrix def dup type /arraytype eq {concat} {translate} ifelse 0 0 m tmpmat } bd /T {txt x show popt} bd /P {txt x true charpath popt} bd /TP {txt x dup show 0 0 m true charpath popt} bd /C {newpath 0 360 arc} bd /R { 2 copy m x 2 index l x 2 index x l l closepath } bd /ellipse { dup type /arraytype eq { pusht x concat 0 0 1.0 C popt } { pusht 5 1 roll 4 -1 roll concat newpath dup 2 eq { 0 0 m } if 3 1 roll radgrad x radgrad x 0 0 1 5 -2 roll arc 0 ne { closepath } if popt } ifelse } bd /radius1 0 def /radius2 0 def /factor 0 def /rect { dup type /arraytype eq { pusht x concat 0 0 m 1 0 l 1 1 l 0 1 l closepath popt } { /radius2 xd /radius1 xd pusht x concat radius1 radius2 div 1 scale 0 radius2 m 0 1 radius2 1 radius2 arct radius2 radius1 div dup 1 1 index 0 radius2 arct 0 0 0 radius2 arct 0 0 0 1 radius2 arct closepath popt } ifelse } bd /buf 0 def /width 0 def /height 0 def /skcimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width 3 mul string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind false 3 colorimage tmpmat setmatrix } bd /skgimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind image tmpmat setmatrix } bd /rclip { 4 2 roll m dup 0 x rlineto x 0 rlineto neg 0 x rlineto closepath clip } bd /skeps { 10 dict begin /sk_state save def concat 3 index neg 3 index neg translate rclip 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /sk_dict_count countdictstack def /sk_count count 1 sub def userdict begin /showpage { } def /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bd /skepsend { count sk_count sub { pop } repeat countdictstack sk_dict_count sub { end } repeat sk_state restore end } bd /gradidx 0 def /gradient { 3 mul array /gradidx 0 def } bd /$ { 3 index gradidx 5 -1 roll put 2 index gradidx 1 add 4 -1 roll put 1 index gradidx 2 add 3 -1 roll put /gradidx gradidx 3 add def } bd /! { 3 { dup dup gradidx dup 3 1 roll 3 sub get put /gradidx gradidx 1 add def } repeat } bd /gradcolor { 3 mul dup 2 add 1 exch % idx 1 idx+2 { 1 index exch % array array i get % array component exch % component array } for 4 1 roll } bd /x0 0 def /y0 0 def /x1 0 def /y1 0 def /left 0 def /right 0 def /top 0 def /bottom 0 def /numcolors 0 def /axial { /y1 xd /x1 xd /y0 xd /x0 xd dup length 3 idiv /numcolors xd pusht exch % ctm array x0 x1 ne y0 y1 ne or { x0 y0 translate [x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath 0 gradcolor rgb clippath f 0 1 numcolors 1 sub { dup numcolors div 3 1 roll gradcolor rgb exch bottom right top R f } for } if pop popt } bd /r0 0 def /r1 0 def /dr 0 def /radial { /r1 xd /r0 xd /y0 xd /x0 xd /dr r1 r0 sub def dup length 3 idiv /numcolors xd pusht exch % ctm array r0 r1 ne { x0 y0 translate clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb clippath f dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse { dup numcolors div dr mul r0 add 3 1 roll gradcolor rgb exch 0 0 3 -1 roll C f } for } if pop popt } bd /max { 2 copy lt {exch} if pop } bd /conical { pusht 5 1 roll 3 1 roll /y0 xd /x0 xd x0 y0 translate radgrad rotate dup length 3 idiv /numcolors xd clippath flattenpath pathbbox newpath 4 { abs 4 1 roll} repeat 3 { max } repeat 2 mul dup scale 0 gradcolor rgb 0 0 1 0 360 arc f 1 1 numcolors 1 sub { dup numcolors div 180 mul 3 1 roll gradcolor rgb exch 0 0 moveto 0 0 1 4 -1 roll dup neg arc closepath f } for pop popt } bd /XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def /tileimage2 { exch 4 2 roll /height xd /width xd mark /components 2 index /PatternType 1 /PaintType 1 /TilingType 1 /BBox [0 0 width height] /XStep width /YStep height /PaintProc { begin XStep YStep 8 matrix imagedata false components colorimage end } counttomark 2 div cvi dup dict begin { def } repeat pop currentdict end dup /imagedata 4 -1 roll width height mul mul string currentfile exch readhexstring pop put exch makepattern setpattern clippath eofill } bd /tileimage1 { concat /components xd /height xd /width xd /imagedata currentfile width height mul components mul string readhexstring pop def clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd left width div floor width mul bottom height div floor height mul translate top bottom sub height div ceiling cvi { gsave right left sub width div ceiling cvi { width height 8 matrix components 1 eq { { imagedata } image } { imagedata false components colorimage } ifelse width 0 translate } repeat grestore 0 height translate } repeat } bd /makepattern where { pop /tileimage /tileimage2 load def } { /tileimage /tileimage1 load def } ifelse end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Roman 10.433 setmiterlimit %%EndSetup %%Page: 1 1 SketchDict begin [215.433 0 0 -172.913 62.3622 702.992] rect 0.848 0.835 0.949 rgb F [215.433 0 0 -172.915 317.481 702.994] rect F newpath 155.906 595.276 m 184.252 595.276 l 0.509 0.376 0.687 rgb 2.83465 w 0 j 0 J [] 0 d S pusht 184.252 595.276 translate 0 rotate 2.83465 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 411.025 595.278 m 439.371 595.278 l S pusht 439.371 595.278 translate 0 rotate 2.83465 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 263.622 513.072 m 342.993 513.072 l S pusht 342.993 513.072 translate 0 rotate 2.83465 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 252.284 581.103 m 252.284 566.93 l S pusht 252.284 566.93 translate -90 rotate 2.83465 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 394.017 566.931 m 394.017 581.104 l S pusht 394.017 581.104 translate 90 rotate 2.83465 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 507.402 609.45 m 507.402 623.623 l S pusht 507.402 623.623 translate 90 rotate 2.83465 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 507.402 581.103 m 507.402 566.93 l S pusht 507.402 566.93 translate -90 rotate 2.83465 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 507.402 538.584 m 507.402 524.41 l S pusht 507.402 524.41 translate -90 rotate 2.83465 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 252.284 538.583 m 252.284 524.41 l S pusht 252.284 524.41 translate -90 rotate 2.83465 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 394.016 518.741 m 394.017 538.584 l S pusht 394.017 538.584 translate 89.9971 rotate 2.83465 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt [-85.0394 0 0 28.3464 155.906 538.583] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-85.0394 0 0 28.3464 524.41 538.583] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-85.0394 0 0 28.3464 155.906 581.103] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-85.0394 0 0 28.3464 524.41 581.103] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-85.0394 0 0 28.3464 269.291 538.583] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-85.0394 0 0 28.3464 411.024 538.584] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-85.0394 0 0 28.3464 155.906 623.622] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [-85.0394 0 0 28.3464 524.41 623.622] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S newpath 221.102 538.583 m 221.102 526.678 l 0.992126 w S pusht 221.102 526.678 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 232.441 524.41 m 232.441 536.316 l 1 w S pusht 232.441 536.316 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 107.717 623.622 m 107.717 611.717 l 0.992126 w S pusht 107.717 611.717 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 119.055 609.449 m 119.055 621.354 l 1 w S pusht 119.055 621.354 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 107.717 581.103 m 107.717 569.198 l 0.992126 w S pusht 107.717 569.198 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 119.055 566.93 m 119.055 578.835 l 1 w S pusht 119.055 578.835 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 107.717 666.142 m 107.717 654.236 l 0.992126 w S pusht 107.717 654.236 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 119.055 651.968 m 119.055 663.874 l 1 w S pusht 119.055 663.874 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 107.717 708.661 m 107.717 696.756 l 0.992126 w S pusht 107.717 696.756 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 119.055 694.488 m 119.055 706.394 l 1 w S pusht 119.055 706.394 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 221.102 643.465 m 221.102 631.56 l 0.992126 w S pusht 221.102 631.56 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 232.441 629.292 m 232.441 641.197 l 1 w S pusht 232.441 641.197 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 221.102 581.103 m 221.102 569.198 l 0.992126 w S pusht 221.102 569.198 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 232.441 566.93 m 232.441 578.835 l 1 w S pusht 232.441 578.835 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 107.717 538.583 m 107.717 526.678 l 0.992126 w S pusht 107.717 526.678 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 119.055 524.41 m 119.055 536.316 l 1 w S pusht 119.055 536.316 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt [-28.3465 0 0 7.08663 113.386 503.15] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 113.386 510.237] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 113.386 517.323] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S /Times-Roman 12 sf (Disk) 102 513 T [-28.3465 0 0 7.08663 481.89 503.15] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 481.89 510.237] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S [-28.3465 0 0 7.08663 481.89 517.323] ellipse gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.992126 w 0 j 0 J [] 0 d S /Times-Roman 12 sf (Disk) 470 513 T (Disk driver) 86 549 T (Disk driver) 454 549 T (DRBD) 96 592 T (DRBD) 464 592 T (Disk scheduler) 81 626 T (Disk scheduler) 449 626 T (Buffer cache) 73 640 T (Buffer cache) 442 640 T [85.0394 0 0 -28.3464 70.8661 694.488] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [85.0394 0 0 -28.3464 439.37 694.488] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [85.0394 0 0 -28.3464 184.252 609.45] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [85.0394 0 0 -28.3464 325.985 609.451] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S /Times-Roman 12 sf (File system) 85 677 T (File system) 454 677 T (NIC driver) 201 549 T (NIC driver) 342 549 T (TCP/IP) 209 592 T (TCP/IP) 351 592 T [198.425 0 0 56.6929 70.8661 708.661] rect S [198.425 0 0 56.6929 325.985 708.663] rect 0.992126 w [0.992126 0.992126 ] 0 d S (Service) 152 734 T (Service) 407 734 T newpath 210.898 513.071 m 208.064 513.071 l 208.064 510.237 l 210.898 510.237 l 1 w [] 0 d S newpath 201.26 518.74 m 198.426 518.74 l 198.426 515.906 l 201.26 515.906 l S newpath 210.898 498.898 m 219.402 498.898 l 219.402 493.229 l 244.915 493.229 l 244.915 498.898 l 264.757 498.898 l 264.757 515.906 l 210.898 515.906 l 210.898 521.575 l 210.898 493.229 l closepath 1 1 1 rgb F 210.898 498.898 m 219.402 498.898 l 219.402 493.229 l 244.915 493.229 l 244.915 498.898 l 264.757 498.898 l 264.757 515.906 l 210.898 515.906 l 210.898 521.575 l 210.898 493.229 l 0 0 0 rgb S newpath 201.26 504.567 m 209.764 504.567 l 209.764 498.898 l 235.277 498.898 l 235.277 504.567 l 255.118 504.567 l 255.118 521.575 l 201.26 521.575 l 201.26 527.244 l 201.26 498.898 l closepath 1 1 1 rgb F 201.26 504.567 m 209.764 504.567 l 209.764 498.898 l 235.277 498.898 l 235.277 504.567 l 255.118 504.567 l 255.118 521.575 l 201.26 521.575 l 201.26 527.244 l 201.26 498.898 l 0 0 0 rgb S newpath 222.236 498.898 m 222.236 493.229 l S newpath 212.598 504.567 m 212.598 498.898 l S newpath 227.906 498.898 m 227.906 493.229 l S newpath 218.268 504.567 m 218.268 498.898 l S newpath 225.072 498.898 m 225.072 493.229 l S newpath 215.434 504.567 m 215.434 498.898 l S newpath 230.74 498.898 m 230.74 493.229 l S newpath 221.103 504.567 m 221.103 498.898 l S newpath 233.576 498.898 m 233.576 493.229 l S newpath 223.938 504.567 m 223.938 498.898 l S newpath 236.411 498.898 m 236.411 493.229 l S newpath 226.773 504.567 m 226.773 498.898 l S newpath 239.245 498.898 m 239.245 493.229 l S newpath 229.607 504.567 m 229.607 498.898 l S newpath 242.079 498.898 m 242.079 493.229 l S newpath 232.441 504.567 m 232.441 498.898 l S (NIC) 215 510 T newpath 352.632 513.072 m 349.797 513.072 l 349.797 510.238 l 352.632 510.238 l S newpath 342.994 518.741 m 340.159 518.741 l 340.159 515.907 l 342.994 515.907 l S newpath 352.632 498.899 m 361.136 498.899 l 361.136 493.23 l 386.648 493.23 l 386.648 498.899 l 406.49 498.899 l 406.49 515.907 l 352.632 515.907 l 352.632 521.576 l 352.632 493.23 l closepath 1 1 1 rgb F 352.632 498.899 m 361.136 498.899 l 361.136 493.23 l 386.648 493.23 l 386.648 498.899 l 406.49 498.899 l 406.49 515.907 l 352.632 515.907 l 352.632 521.576 l 352.632 493.23 l 0 0 0 rgb S newpath 342.994 504.568 m 351.498 504.568 l 351.498 498.899 l 377.01 498.899 l 377.01 504.568 l 396.852 504.568 l 396.852 521.576 l 342.994 521.576 l 342.994 527.245 l 342.994 498.899 l closepath 1 1 1 rgb F 342.994 504.568 m 351.498 504.568 l 351.498 498.899 l 377.01 498.899 l 377.01 504.568 l 396.852 504.568 l 396.852 521.576 l 342.994 521.576 l 342.994 527.245 l 342.994 498.899 l 0 0 0 rgb S newpath 363.97 498.899 m 363.97 493.23 l S newpath 354.332 504.568 m 354.332 498.899 l S newpath 369.64 498.899 m 369.64 493.23 l S newpath 360.002 504.568 m 360.002 498.899 l S newpath 366.805 498.899 m 366.805 493.23 l S newpath 357.167 504.568 m 357.167 498.899 l S newpath 372.474 498.899 m 372.474 493.23 l S newpath 362.836 504.568 m 362.836 498.899 l S newpath 375.309 498.899 m 375.309 493.23 l S newpath 365.671 504.568 m 365.671 498.899 l S newpath 378.144 498.899 m 378.144 493.23 l S newpath 368.506 504.568 m 368.506 498.899 l S newpath 380.978 498.899 m 380.978 493.23 l S newpath 371.34 504.568 m 371.34 498.899 l S newpath 383.813 498.899 m 383.813 493.23 l S newpath 374.175 504.568 m 374.175 498.899 l S (NIC) 357 510 T newpath 235.547 416.693 m 238.382 413.858 l 261.059 413.858 l 263.893 416.693 l closepath 0.8 0.8 0.8 rgb F 235.547 416.693 m 238.382 413.858 l 261.059 413.858 l 263.893 416.693 l 0 0 0 rgb S [34.0158 0 0 -28.3465 232.712 445.039] rect gsave 0.8 0.8 0.8 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [28.3465 0 0 -22.6772 235.547 442.205] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [39.6282 -2.12668 -3.43822 -11.171 230.21 412.079] rect S newpath 231.22 409.753 m 232.352 409.692 l S newpath 229.157 403.05 m 230.29 402.99 l S newpath 229.673 404.726 m 230.805 404.665 l S newpath 230.189 406.402 m 231.321 406.341 l S newpath 230.705 408.077 m 231.837 408.016 l S newpath 232.919 409.662 m 234.051 409.601 l S newpath 230.856 402.959 m 231.988 402.898 l S newpath 231.371 404.635 m 232.504 404.574 l S newpath 231.887 406.31 m 233.019 406.25 l S newpath 232.403 407.986 m 233.535 407.925 l S newpath 234.617 409.571 m 235.749 409.51 l S newpath 232.554 402.868 m 233.686 402.807 l S newpath 233.07 404.544 m 234.202 404.483 l S newpath 233.585 406.219 m 234.718 406.158 l S newpath 234.101 407.895 m 235.233 407.834 l S newpath 236.315 409.479 m 237.448 409.419 l S newpath 234.252 402.777 m 235.385 402.716 l S newpath 234.768 404.452 m 235.9 404.392 l S newpath 235.284 406.128 m 236.416 406.067 l S newpath 235.8 407.804 m 236.932 407.743 l S newpath 238.014 409.388 m 239.146 409.327 l S newpath 235.951 402.686 m 237.083 402.625 l S newpath 236.466 404.361 m 237.599 404.301 l S newpath 236.982 406.037 m 238.114 405.976 l S newpath 237.498 407.713 m 238.63 407.652 l S newpath 239.712 409.297 m 240.844 409.236 l S newpath 237.649 402.595 m 238.781 402.534 l S newpath 238.165 404.27 m 239.297 404.209 l S newpath 238.681 405.946 m 239.813 405.885 l S newpath 239.196 407.621 m 240.329 407.561 l S newpath 241.41 409.206 m 242.543 409.145 l S newpath 239.347 402.503 m 240.48 402.443 l S newpath 239.863 404.179 m 240.995 404.118 l S newpath 240.379 405.855 m 241.511 405.794 l S newpath 240.895 407.53 m 242.027 407.47 l S newpath 243.109 409.115 m 244.241 409.054 l S newpath 241.046 402.412 m 242.178 402.352 l S newpath 241.562 404.088 m 242.694 404.027 l S newpath 242.077 405.764 m 243.21 405.703 l S newpath 242.593 407.439 m 243.725 407.378 l S newpath 244.807 409.024 m 245.939 408.963 l S newpath 242.744 402.321 m 243.876 402.26 l S newpath 243.26 403.997 m 244.392 403.936 l S newpath 243.776 405.672 m 244.908 405.612 l S newpath 244.291 407.348 m 245.424 407.287 l S newpath 246.505 408.933 m 247.638 408.872 l S newpath 244.442 402.23 m 245.575 402.169 l S newpath 244.958 403.906 m 246.09 403.845 l S newpath 245.474 405.581 m 246.606 405.52 l S newpath 245.99 407.257 m 247.122 407.196 l S newpath 248.204 408.841 m 249.336 408.781 l S newpath 246.141 402.139 m 247.273 402.078 l S newpath 246.657 403.814 m 247.789 403.754 l S newpath 247.172 405.49 m 248.305 405.429 l S newpath 247.688 407.166 m 248.82 407.105 l S newpath 249.902 408.75 m 251.034 408.689 l S newpath 247.839 402.048 m 248.971 401.987 l S newpath 248.355 403.723 m 249.487 403.663 l S newpath 248.871 405.399 m 250.003 405.338 l S newpath 249.386 407.075 m 250.519 407.014 l S newpath 251.6 408.659 m 252.733 408.598 l S newpath 260.658 408.173 m 261.791 408.112 l S newpath 249.538 401.957 m 250.67 401.896 l S newpath 258.595 401.47 m 259.728 401.41 l S newpath 250.053 403.632 m 251.186 403.571 l S newpath 259.111 403.146 m 260.243 403.085 l S newpath 250.569 405.308 m 251.701 405.247 l S newpath 259.627 404.822 m 260.759 404.761 l S newpath 251.085 406.983 m 252.217 406.923 l S newpath 260.143 406.497 m 261.275 406.437 l S newpath 253.299 408.568 m 254.431 408.507 l S newpath 262.357 408.082 m 263.489 408.021 l S newpath 251.236 401.865 m 252.368 401.805 l S newpath 260.294 401.379 m 261.426 401.319 l S newpath 251.752 403.541 m 252.884 403.48 l S newpath 260.81 403.055 m 261.942 402.994 l S newpath 252.267 405.217 m 253.4 405.156 l S newpath 261.325 404.731 m 262.457 404.67 l S newpath 252.783 406.892 m 253.915 406.832 l S newpath 261.841 406.406 m 262.973 406.345 l S newpath 254.997 408.477 m 256.129 408.416 l S newpath 264.055 407.991 m 265.187 407.93 l S newpath 252.934 401.774 m 254.067 401.714 l S newpath 261.992 401.288 m 263.124 401.227 l S newpath 253.45 403.45 m 254.582 403.389 l S newpath 262.508 402.964 m 263.64 402.903 l S newpath 253.966 405.126 m 255.098 405.065 l S newpath 263.024 404.639 m 264.156 404.579 l S newpath 254.481 406.801 m 255.614 406.74 l S newpath 263.539 406.315 m 264.672 406.254 l S newpath 256.696 408.386 m 257.828 408.325 l S newpath 265.753 407.9 m 266.886 407.839 l S newpath 254.633 401.683 m 255.765 401.622 l S newpath 263.69 401.197 m 264.823 401.136 l S newpath 255.148 403.359 m 256.281 403.298 l S newpath 264.206 402.873 m 265.338 402.812 l S newpath 255.664 405.034 m 256.796 404.974 l S newpath 264.722 404.548 m 265.854 404.488 l S newpath 256.18 406.71 m 257.312 406.649 l S newpath 265.238 406.224 m 266.37 406.163 l S newpath 334.213 416.693 m 337.047 413.858 l 359.725 413.858 l 362.559 416.693 l closepath 0.8 0.8 0.8 rgb F 334.213 416.693 m 337.047 413.858 l 359.725 413.858 l 362.559 416.693 l 0 0 0 rgb S [34.0158 0 0 -28.3465 331.378 445.039] rect gsave 0.8 0.8 0.8 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [28.3465 0 0 -22.6772 334.213 442.205] rect gsave 0.7 0.7 0.7 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [39.6282 -2.12668 -3.43822 -11.171 328.876 412.079] rect S newpath 329.886 409.753 m 331.018 409.692 l S newpath 327.823 403.05 m 328.955 402.99 l S newpath 328.339 404.726 m 329.471 404.665 l S newpath 328.855 406.402 m 329.987 406.341 l S newpath 329.37 408.077 m 330.503 408.016 l S newpath 331.584 409.662 m 332.717 409.601 l S newpath 329.522 402.959 m 330.654 402.898 l S newpath 330.037 404.635 m 331.169 404.574 l S newpath 330.553 406.31 m 331.685 406.25 l S newpath 331.069 407.986 m 332.201 407.925 l S newpath 333.283 409.571 m 334.415 409.51 l S newpath 331.22 402.868 m 332.352 402.807 l S newpath 331.736 404.544 m 332.868 404.483 l S newpath 332.251 406.219 m 333.384 406.158 l S newpath 332.767 407.895 m 333.899 407.834 l S newpath 334.981 409.479 m 336.113 409.419 l S newpath 332.918 402.777 m 334.05 402.716 l S newpath 333.434 404.452 m 334.566 404.392 l S newpath 333.95 406.128 m 335.082 406.067 l S newpath 334.465 407.804 m 335.598 407.743 l S newpath 336.68 409.388 m 337.812 409.327 l S newpath 334.617 402.686 m 335.749 402.625 l S newpath 335.132 404.361 m 336.265 404.301 l S newpath 335.648 406.037 m 336.78 405.976 l S newpath 336.164 407.713 m 337.296 407.652 l S newpath 338.378 409.297 m 339.51 409.236 l S newpath 336.315 402.595 m 337.447 402.534 l S newpath 336.831 404.27 m 337.963 404.209 l S newpath 337.346 405.946 m 338.479 405.885 l S newpath 337.862 407.621 m 338.994 407.561 l S newpath 340.076 409.206 m 341.208 409.145 l S newpath 338.013 402.503 m 339.146 402.443 l S newpath 338.529 404.179 m 339.661 404.118 l S newpath 339.045 405.855 m 340.177 405.794 l S newpath 339.56 407.53 m 340.693 407.47 l S newpath 341.775 409.115 m 342.907 409.054 l S newpath 339.712 402.412 m 340.844 402.352 l S newpath 340.227 404.088 m 341.36 404.027 l S newpath 340.743 405.764 m 341.875 405.703 l S newpath 341.259 407.439 m 342.391 407.378 l S newpath 343.473 409.024 m 344.605 408.963 l S newpath 341.41 402.321 m 342.542 402.26 l S newpath 341.926 403.997 m 343.058 403.936 l S newpath 342.441 405.672 m 343.574 405.612 l S newpath 342.957 407.348 m 344.089 407.287 l S newpath 345.171 408.933 m 346.304 408.872 l S newpath 343.108 402.23 m 344.241 402.169 l S newpath 343.624 403.906 m 344.756 403.845 l S newpath 344.14 405.581 m 345.272 405.52 l S newpath 344.656 407.257 m 345.788 407.196 l S newpath 346.87 408.841 m 348.002 408.781 l S newpath 344.807 402.139 m 345.939 402.078 l S newpath 345.322 403.814 m 346.455 403.754 l S newpath 345.838 405.49 m 346.97 405.429 l S newpath 346.354 407.166 m 347.486 407.105 l S newpath 348.568 408.75 m 349.7 408.689 l S newpath 346.505 402.048 m 347.637 401.987 l S newpath 347.021 403.723 m 348.153 403.663 l S newpath 347.537 405.399 m 348.669 405.338 l S newpath 348.052 407.075 m 349.184 407.014 l S newpath 350.266 408.659 m 351.399 408.598 l S newpath 359.324 408.173 m 360.456 408.112 l S newpath 348.203 401.957 m 349.336 401.896 l S newpath 357.261 401.47 m 358.393 401.41 l S newpath 348.719 403.632 m 349.851 403.571 l S newpath 357.777 403.146 m 358.909 403.085 l S newpath 349.235 405.308 m 350.367 405.247 l S newpath 358.293 404.822 m 359.425 404.761 l S newpath 349.751 406.983 m 350.883 406.923 l S newpath 358.808 406.497 m 359.941 406.437 l S newpath 351.965 408.568 m 353.097 408.507 l S newpath 361.023 408.082 m 362.155 408.021 l S newpath 349.902 401.865 m 351.034 401.805 l S newpath 358.96 401.379 m 360.092 401.319 l S newpath 350.417 403.541 m 351.55 403.48 l S newpath 359.475 403.055 m 360.608 402.994 l S newpath 350.933 405.217 m 352.065 405.156 l S newpath 359.991 404.731 m 361.123 404.67 l S newpath 351.449 406.892 m 352.581 406.832 l S newpath 360.507 406.406 m 361.639 406.345 l S newpath 353.663 408.477 m 354.795 408.416 l S newpath 362.721 407.991 m 363.853 407.93 l S newpath 351.6 401.774 m 352.732 401.714 l S newpath 360.658 401.288 m 361.79 401.227 l S newpath 352.116 403.45 m 353.248 403.389 l S newpath 361.174 402.964 m 362.306 402.903 l S newpath 352.632 405.126 m 353.764 405.065 l S newpath 361.689 404.639 m 362.822 404.579 l S newpath 353.147 406.801 m 354.28 406.74 l S newpath 362.205 406.315 m 363.337 406.254 l S newpath 355.361 408.386 m 356.494 408.325 l S newpath 364.419 407.9 m 365.551 407.839 l S newpath 353.298 401.683 m 354.431 401.622 l S newpath 362.356 401.197 m 363.489 401.136 l S newpath 353.814 403.359 m 354.946 403.298 l S newpath 362.872 402.873 m 364.004 402.812 l S newpath 354.33 405.034 m 355.462 404.974 l S newpath 363.388 404.548 m 364.52 404.488 l S newpath 354.846 406.71 m 355.978 406.649 l S newpath 363.904 406.224 m 365.036 406.163 l S newpath 362.835 538.584 m 362.835 526.679 l 0.992126 w [0.0992126 0.992126 ] 0 d S pusht 362.835 526.679 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 374.174 524.411 m 374.174 536.317 l [0.0992126 0.992126 ] 0 d S pusht 374.174 536.317 translate 90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 362.834 581.102 m 362.834 569.197 l [0.0992126 0.992126 ] 0 d S pusht 362.834 569.197 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 374.173 566.929 m 374.173 578.835 l [0.0992126 0.992126 ] 0 d S pusht 374.173 578.835 translate 90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 476.22 581.102 m 476.22 569.197 l [0.0992126 0.992126 ] 0 d S pusht 476.22 569.197 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 487.559 566.929 m 487.559 578.835 l [0.0992126 0.992126 ] 0 d S pusht 487.559 578.835 translate 90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 476.22 623.622 m 476.22 611.717 l [0.0992126 0.992126 ] 0 d S pusht 476.22 611.717 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 487.559 609.449 m 487.559 621.355 l [0.0992126 0.992126 ] 0 d S pusht 487.559 621.355 translate 90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 476.22 666.142 m 476.22 654.237 l [0.0992126 0.992126 ] 0 d S pusht 476.22 654.237 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 487.559 651.969 m 487.559 663.875 l [0.0992126 0.992126 ] 0 d S pusht 487.559 663.875 translate 90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 476.22 708.661 m 476.22 696.756 l [0.0992126 0.992126 ] 0 d S pusht 476.22 696.756 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 487.559 694.488 m 487.559 706.394 l [0.0992126 0.992126 ] 0 d S pusht 487.559 706.394 translate 90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 476.22 538.582 m 476.22 526.677 l [0.0992126 0.992126 ] 0 d S pusht 476.22 526.677 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 487.559 524.409 m 487.559 536.315 l [0.0992126 0.992126 ] 0 d S pusht 487.559 536.315 translate 90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 362.834 643.464 m 362.834 631.559 l [0.0992126 0.992126 ] 0 d S pusht 362.834 631.559 translate -90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 374.173 629.291 m 374.173 641.197 l [0.0992126 0.992126 ] 0 d S pusht 374.173 641.197 translate 90 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt /Times-Roman 12 sf (...) 291 441 T newpath 232.441 484.724 m 232.441 467.717 l 368.504 467.717 l 368.504 487.559 l 1 w S newpath 252.283 467.717 m 252.283 450.709 l S newpath 354.331 467.717 m 354.331 450.709 l S %%PageTrailer showpage %%Trailer end %%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 %%EOF %%EndDocument @endspecial 382 4014 a currentpoint currentpoint translate 1 0.75989 div 1 0.75989 div scale neg exch neg exch translate 382 4014 a 1218 4210 a Fp(Abbildung)i(3.2:)41 b(DRBD)29 b(im)i(Kernel)1831 5622 y(19)p eop %%Page: 20 22 20 21 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)712 b(3.1.)71 b(DRBD)30 b(IM)g(KERNEL)p 382 299 2989 4 v 382 539 a Fp(Alternativ)g(gibt)g(es)f(auc)m(h)i(die)f(M\366glic)m(hk)m (eit,)i(eine)e(auf)f(IP-V)-8 b(ernetzung)32 b(aufsetzende)382 652 y(Implemen)m(tierung)25 b(zu)e(v)m(erw)m(enden.)39 b(Dieser)23 b(Lo)s(c)m(k-Manager)h(k)m(\366nn)m(te)g(zusammen)f(mit)382 764 y(einem)31 b(um)g(die)g(exakte)g(Shared-Disk)g(Seman)m(tik)h(erw)m (eiterten)h(DRBD)d(den)h(Einsatz)382 877 y(v)m(on)g(GFS)f(auf)g(DRBD)g (erm\366glic)m(hen.)382 1167 y Fn(3.1.1.2)103 b(DRBDs)33 b(Seman)m(tik)382 1389 y Fp(Jedes)28 b(DRBD-Ger\344t)f(ist)h(einem)g (der)g(folgenden)g(Zust\344nde,)h(die)f(jederzeit)g(ge\344ndert)382 1502 y(w)m(erden)k(k)m(\366nnen,)f(zugeordnet:)382 1764 y(Primary)133 b(Das)34 b(DRBD-Ger\344t)g(k)-5 b(ann)34 b(zum)g(Sc)m(hreib)s(en)i(und)e(Lesen)h(ge\366\033net)f(w)m(er-)839 1877 y(den.)63 b(Es)37 b(k)-5 b(ann)38 b(mit)g(DRBD-Ger\344ten)g(auf)f (anderen)i(Knoten,)h(die)e(im)839 1990 y(sekund\344ren)31 b(Zustand)g(sind,)g(v)m(erbunden)h(sein.)382 2177 y(Secondary)77 b(Das)23 b(DRBD-Ger\344t)h(k)-5 b(ann)24 b(n)m(ur)g(zum)g(Lesen)h (ge\366\033net)f(w)m(erden.)40 b(Es)23 b(k)-5 b(ann)839 2290 y(mit)23 b(anderen)g(DRBD-Ger\344ten)g(auf)g(anderen)g(Knoten)g(v) m(erbunden)h(sein.)382 2553 y(Die)31 b(Einf\374hrung)h(dieser)g (Zust\344nde)g(en)m(tspric)m(h)m(t)h(der)e(V)-8 b(erw)m(endung)34 b(des)d(SCSI-Lo)s(c)m(k-)382 2666 y(K)m(ommandos)h(v)m(on)f(HP)f(auf)g (dem)h(Shared)h(SCSI-Bus)e(\(siehe)h(2.3.3.3\).)382 2959 y Fo(3.1.2)112 b(Single)37 b(P)m(oin)m(ts)e(of)j(F)-9 b(ailure)382 3180 y Fp(Ein)40 b(Single)g(P)m(oin)m(t)h(of)d(F)-8 b(ailure)41 b(\(=SPOF\))f(ist)f(eine)h(K)m(omp)s(onen)m(te)h(eines)f (Systems,)382 3293 y(deren)i(Ausfall)f(den)h(Ausfall)f(des)g(ganzen)i (Systems)e(b)s(edeutet.)74 b(Ein)42 b(HA-Cluster)382 3406 y(sollte)30 b(k)m(einen)i(SPOF)f(aufw)m(eisen.)382 3696 y Fn(3.1.2.1)103 b(F)-9 b(estplatten)37 b(und)d(deren)g(K)m(on)m (troller)382 3917 y Fp(Legt)24 b(man)g(die)f(Daten)h(auf)f(einem)h (Massensp)s(eic)m(herger\344t)h(ab,)g(das)e(v)m(on)h(allen)f(Knoten)382 4030 y(des)i(Clusters)g(aus)g(zug\344nglic)m(h)j(ist,)e(so)e(ist)h(der) h(Zugri\033sw)m(eg)g(ein)g(prinzipieller)h(SPOF.)382 4193 y(Dieser)i(SPOF)h(existiert)g(b)s(ei)f(DRBD)f(nic)m(h)m(t.)42 b(F\344llt)29 b(die)h(F)-8 b(estplatte)30 b(o)s(der)g(eine)f(K)m(om-) 382 4306 y(p)s(onen)m(te)24 b(auf)e(dem)h(Zugri\033sw)m(eg)h(zur)f(F)-8 b(estplatte)24 b(aus)e(\(z.B.)h(K)m(on)m(troller,)k(Kab)s(el,)d(PCI-) 382 4419 y(Slot,)32 b(etc.\),)f(wird)h(einfac)m(h)g(der)f(gesam)m(te)h (Knoten)g(als)f(ausgefallen)h(b)s(etrac)m(h)m(tet,)h(und)382 4532 y(der)h(zw)m(eite)g(Knoten,)h(der)f(ja)f(eb)s(enfalls)g(mit)h (einer)g(K)m(opie)g(der)g(Daten)g(ausgestattet)382 4645 y(ist,)c(\374b)s(ernimm)m(t.)382 4934 y Fn(3.1.2.2)103 b(Netzw)m(erk)382 5156 y Fp(F)-8 b(alls)37 b(das)g(Netzw)m(erk)h(zwisc) m(hen)g(den)g(Knoten)g(des)f(Clusters)g(ausf\344llt,)i(ist)e(dies)g (f\374r)382 5269 y(Cluster)e(b)s(eider)g(Arten)g(gleic)m(herma\377en)j (ein)d(Problem)h(\(split)f(brain)g(problem\).)55 b(Ist)382 5382 y(das)40 b(Netzw)m(erk)h(zu)g(den)f(Clien)m(ts)i(nic)m(h)m(t)f(un) m(terbro)s(c)m(hen)i(o)s(der)e(handelt)g(es)f(sic)m(h)h(n)m(ur)1831 5622 y(20)p eop %%Page: 21 23 21 22 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)701 b(3.2.)71 b(DIE)30 b(PR)m(OTOKOLLE)p 382 299 2989 4 v 1309 1116 a currentpoint currentpoint translate 0.74356 0.74356 scale neg exch neg exch translate 1309 1116 a @beginspecial 50 @llx 682 @lly 233 @urx 790 @ury 1830 @rwi @setspecial %%BeginDocument: /home/philipp/diplomarbeit//model.ps %!PS-Adobe-3.0 EPSF-3.0 %%For: Philipp Reisner %%CreationDate: Thu May 11 10:32:34 2000 %%Title: model.ps %%Creator: Sketch 0.6.5 %%Pages: 1 %%BoundingBox: 50 682 233 790 %%Extensions: CMYK %%DocumentSuppliedResources: (atend) %%DocumentNeededResources: font Times-Roman %%EndComments %%BeginProlog %%BeginResource: procset Linux-Sketch-Procset 1.0 2 /SketchDict 100 dict def SketchDict begin /bd { bind def } bind def /x { exch } bd /xd { exch def } bd /PI 3.14159265358979323846264338327 def /radgrad { 180 mul PI div } bd /skstartmatrix matrix currentmatrix def /tmpmat matrix def /ISOLatin1Encoding dup where { pop pop } { [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def } ifelse /arct dup where {pop pop} { /arct {arcto pop pop pop pop} bd } ifelse /size 0 def /fontname 0 def /newfont 0 def /sf { /size xd /fontname xd fontname findfont dup /Encoding get StandardEncoding eq { dup length dict /newfont xd { 1 index /FID ne { newfont 3 1 roll put } { pop pop } ifelse } forall newfont /Encoding ISOLatin1Encoding put fontname newfont definefont } if size scalefont setfont } bd /pusht {matrix currentmatrix} bd /popt {setmatrix} bd /pushc {gsave} bd /popc {grestore} bd /rgb {setrgbcolor} bd /w { setlinewidth } bd /j { setlinejoin } bd /J { setlinecap } bd /d { setdash } bd /F { eofill } bd /f { closepath F } bd /S { pusht skstartmatrix setmatrix stroke popt } bd /s { closepath S } bd /m { moveto } bd /l { lineto } bd /c { curveto } bd /txt { /tmpmat tmpmat currentmatrix def dup type /arraytype eq {concat} {translate} ifelse 0 0 m tmpmat } bd /T {txt x show popt} bd /P {txt x true charpath popt} bd /TP {txt x dup show 0 0 m true charpath popt} bd /C {newpath 0 360 arc} bd /R { 2 copy m x 2 index l x 2 index x l l closepath } bd /ellipse { dup type /arraytype eq { pusht x concat 0 0 1.0 C popt } { pusht 5 1 roll 4 -1 roll concat newpath dup 2 eq { 0 0 m } if 3 1 roll radgrad x radgrad x 0 0 1 5 -2 roll arc 0 ne { closepath } if popt } ifelse } bd /radius1 0 def /radius2 0 def /factor 0 def /rect { dup type /arraytype eq { pusht x concat 0 0 m 1 0 l 1 1 l 0 1 l closepath popt } { /radius2 xd /radius1 xd pusht x concat radius1 radius2 div 1 scale 0 radius2 m 0 1 radius2 1 radius2 arct radius2 radius1 div dup 1 1 index 0 radius2 arct 0 0 0 radius2 arct 0 0 0 1 radius2 arct closepath popt } ifelse } bd /buf 0 def /width 0 def /height 0 def /skcimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width 3 mul string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind false 3 colorimage tmpmat setmatrix } bd /skgimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind image tmpmat setmatrix } bd /rclip { 4 2 roll m dup 0 x rlineto x 0 rlineto neg 0 x rlineto closepath clip } bd /skeps { 10 dict begin /sk_state save def concat 3 index neg 3 index neg translate rclip 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /sk_dict_count countdictstack def /sk_count count 1 sub def userdict begin /showpage { } def /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bd /skepsend { count sk_count sub { pop } repeat countdictstack sk_dict_count sub { end } repeat sk_state restore end } bd /gradidx 0 def /gradient { 3 mul array /gradidx 0 def } bd /$ { 3 index gradidx 5 -1 roll put 2 index gradidx 1 add 4 -1 roll put 1 index gradidx 2 add 3 -1 roll put /gradidx gradidx 3 add def } bd /! { 3 { dup dup gradidx dup 3 1 roll 3 sub get put /gradidx gradidx 1 add def } repeat } bd /gradcolor { 3 mul dup 2 add 1 exch % idx 1 idx+2 { 1 index exch % array array i get % array component exch % component array } for 4 1 roll } bd /x0 0 def /y0 0 def /x1 0 def /y1 0 def /left 0 def /right 0 def /top 0 def /bottom 0 def /numcolors 0 def /axial { /y1 xd /x1 xd /y0 xd /x0 xd dup length 3 idiv /numcolors xd pusht exch % ctm array x0 x1 ne y0 y1 ne or { x0 y0 translate [x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath 0 gradcolor rgb clippath f 0 1 numcolors 1 sub { dup numcolors div 3 1 roll gradcolor rgb exch bottom right top R f } for } if pop popt } bd /r0 0 def /r1 0 def /dr 0 def /radial { /r1 xd /r0 xd /y0 xd /x0 xd /dr r1 r0 sub def dup length 3 idiv /numcolors xd pusht exch % ctm array r0 r1 ne { x0 y0 translate clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb clippath f dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse { dup numcolors div dr mul r0 add 3 1 roll gradcolor rgb exch 0 0 3 -1 roll C f } for } if pop popt } bd /max { 2 copy lt {exch} if pop } bd /conical { pusht 5 1 roll 3 1 roll /y0 xd /x0 xd x0 y0 translate radgrad rotate dup length 3 idiv /numcolors xd clippath flattenpath pathbbox newpath 4 { abs 4 1 roll} repeat 3 { max } repeat 2 mul dup scale 0 gradcolor rgb 0 0 1 0 360 arc f 1 1 numcolors 1 sub { dup numcolors div 180 mul 3 1 roll gradcolor rgb exch 0 0 moveto 0 0 1 4 -1 roll dup neg arc closepath f } for pop popt } bd /XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def /tileimage2 { exch 4 2 roll /height xd /width xd mark /components 2 index /PatternType 1 /PaintType 1 /TilingType 1 /BBox [0 0 width height] /XStep width /YStep height /PaintProc { begin XStep YStep 8 matrix imagedata false components colorimage end } counttomark 2 div cvi dup dict begin { def } repeat pop currentdict end dup /imagedata 4 -1 roll width height mul mul string currentfile exch readhexstring pop put exch makepattern setpattern clippath eofill } bd /tileimage1 { concat /components xd /height xd /width xd /imagedata currentfile width height mul components mul string readhexstring pop def clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd left width div floor width mul bottom height div floor height mul translate top bottom sub height div ceiling cvi { gsave right left sub width div ceiling cvi { width height 8 matrix components 1 eq { { imagedata } image } { imagedata false components colorimage } ifelse width 0 translate } repeat grestore 0 height translate } repeat } bd /makepattern where { pop /tileimage /tileimage2 load def } { /tileimage /tileimage1 load def } ifelse end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Roman 10.433 setmiterlimit %%EndSetup %%Page: 1 1 SketchDict begin [56.6929 0 0 -28.3464 56.6929 765.354] rect 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [56.6929 0 0 -28.3464 170.079 765.354] rect S newpath 113.386 751.181 m 170.079 751.181 l S newpath 85.0394 737.008 m 85.0394 722.835 l 198.425 722.835 l 198.425 737.008 l [3 3 ] 0 d S /Times-Roman 12 sf (inter-cluster network) 97 779 T (node) 73 748 T (node) 186 748 T newpath 150.236 773.858 m 144.567 754.016 l 0.283465 w [] 0 d S pusht 144.567 754.016 translate -105.945 rotate [ ] 0 d -6 3 m 1 0 l -6 -3 l S popt (clients) 124 685 T newpath 141.732 722.835 m 141.732 700.157 l 1 w [3 3 ] 0 d S pusht 141.732 700.157 translate -90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt %%PageTrailer showpage %%Trailer end %%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 %%EOF %%EndDocument @endspecial 1309 1116 a currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale neg exch neg exch translate 1309 1116 a 1091 1312 a Fp(Abbildung)h(3.3:)41 b(Mo)s(dell)30 b(des)h(HA-Clusters)382 1587 y(um)42 b(eine)g(v)m (or\374b)s(ergehende)i(St\366rung)f(des)e(Netzw)m(erk)m(es,)46 b(k)-5 b(ann)42 b(es)f(dazu)h(k)m(ommen,)382 1700 y(da\377)i(b)s(eide)h (Knoten)g(annehmen,)k(da\377)44 b(der)g(jew)m(eils)h(andere)g (ausgefallen)g(ist.)81 b(Im)382 1813 y(g\374nstigsten)30 b(F)-8 b(all)29 b(k)m(\366nnen)h(die)f(Clien)m(ts)h(k)m(einen)g(der)f (Cluster-Knoten)i(erreic)m(hen,)g(im)382 1926 y(sc)m(hlimmsten)h(F)-8 b(all)31 b(zerst\366rt)g(der)f(aktiv)m(e)h(Knoten)g(den)g(Datenstand.) 382 2089 y(Damit)25 b(der)g(Ausfall)g(des)f(Netzw)m(erk)m(es)i(nic)m(h) m(t)h(zu)e(diesem)g(skizzierten)g(Szenario)h(f\374hrt,)382 2202 y(sollte)41 b(es)g(einen)h(w)m(eiteren)h(K)m(omm)m(unik)-5 b(ationsw)m(eg)45 b(zwisc)m(hen)d(den)g(Knoten)g(geb)s(en.)382 2315 y(Hierf\374r)d(wird)g(gerne)g(ein)g(serielles)g(Kab)s(el)g(v)m (erw)m(endet,)j(da)d(serielle)g(Sc)m(hnittstellen)382 2428 y(meistens)c(v)m(orhanden)h(sind)e(und)h(die)f(K)m(omm)m(unik)-5 b(ation)38 b(\374b)s(er)c(die)h(serielle)g(Sc)m(hnitt-)382 2541 y(stelle)30 b(nic)m(h)m(t)i(die)f(F)-8 b(unktion)32 b(des)e(IP-Subsystems)g(im)h(Kernel)g(erfordert.)382 2877 y Fj(3.2)130 b(Die)44 b(Protok)l(olle)382 3129 y Fp(Der)k(Nac)m(h)m(teil,)54 b(der)48 b(m\366glic)m(herw)m(eise)j(b)s (ei)d(der)g(V)-8 b(erw)m(endung)50 b(eines)e(IP-basierten)382 3242 y(Netzw)m(erk)m(es)35 b(gegen)m(\374b)s(er)h(eines)e(SCSI-Busses)g (en)m(tsteh)m(t,)j(ist,)e(da\377)f(die)h(Zeit,)g(bis)f(ein)382 3355 y(einzelners)j(P)m(ak)m(et)g(sein)e(Ziel)h(erreic)m(h)m(t,)k(auf) 35 b(einem)i(IP-Netzw)m(erk)f(h\366her)h(sein)e(k)-5 b(ann)382 3468 y(als)30 b(auf)g(einem)h(SCSI-Bus)g(b)s(ei)f(gleic)m (her)i(Bandbreite.)382 3631 y(Dieser)38 b(Nac)m(h)m(teil)j(wird)e(b)s (esonders)f(deutlic)m(h,)k(w)m(enn)e(in)e(den)h(Knoten)h(des)e(DRBD-) 382 3744 y(Clusters)44 b(auc)m(h)h(SCSI-F)-8 b(estplatten)46 b(v)m(erw)m(endet)g(w)m(erden.)82 b(Die)44 b(V)-8 b(erz\366gerung,)49 b(die)382 3857 y(durc)m(h)34 b(die)f(\334b)s(ertragung)h(\374b)s(er)f (das)g(IP-Netzw)m(erk)h(en)m(tsteh)m(t,)h(b)s(etri\033t)e(n)m(ur)h (DRBD-)382 3970 y(basierte)48 b(Cluster,)j(w)m(\344hrend)e(die)e(V)-8 b(erz\366gerung)49 b(des)e(SCSI-Busses)g(den)g(DRBD-)382 4083 y(Cluster)31 b(und)g(Shared)g(SCSI-Bus-Cluster)g(gleic)m (herma\377en)i(b)s(etri\033t.)382 4245 y(Aus)24 b(diesem)i(Grund)f(ist) g(DRBD)g(mit)g(drei)h(Protok)m(ollen)h(ausgestattet,)g(die)e(v)m(ersc)m (hie-)382 4358 y(dene)32 b(Abstufungen)h(des)e(Durc)m(hsatz-K)m (onsistenz-K)m(ompromisses)36 b(bieten.)46 b(F\374r)32 b(die)382 4471 y(Betrac)m(h)m(tung)c(der)e(Protok)m(olle)h(im)e(F)-8 b(alle)26 b(des)g(Ausfalls)e(einer)i(K)m(omp)s(onen)m(te)i(wird)e(das) 382 4584 y(in)k(Abbildung)i(3.3)e(dargestellte)i(Mo)s(dell)e(v)m(erw)m (endet.)382 4747 y(Dab)s(ei)c(wird)h(da)m(v)m(on)g(ausgegangen,)h (da\377)f(jede)f(der)g(K)m(omp)s(onen)m(ten,)k(die)c(b)s(eiden)h(Kno-) 382 4860 y(ten)j(und)g(das)f(v)m(erbindende)i(Netzw)m(erk,)g(en)m(t)m (w)m(eder)h(funktionieren)f(o)s(der)f(nic)m(h)m(t)h(funk-)382 4973 y(tionieren.)1831 5622 y(21)p eop %%Page: 22 24 22 23 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)701 b(3.2.)71 b(DIE)30 b(PR)m(OTOKOLLE)p 382 299 2989 4 v 382 539 a Fo(3.2.1)112 b(Protok)m(oll)35 b(A)382 748 y Fp(Bei)e(Protok)m(oll)i(A)d(wird)i(eine)f(Sc)m(hreibanforderung)j (als)d(abgesc)m(hlossen)h(b)s(etrac)m(h)m(tet,)382 861 y(sobald)26 b(der)g(Sc)m(hreib)m(v)m(organg)j(auf)c(die)h(ph)m(ysisc)m (he)h(F)-8 b(estplatte)27 b(abgesc)m(hlossen)g(ist)e(und)382 974 y(die)g(Daten)g(gesendet)h(wurden.)39 b(Da)25 b(TCP)-8 b(,)26 b(das)f(v)m(erw)m(endete)h(IP-Protok)m(oll,)i(ein)d(p)s(eer-)382 1087 y(to-p)s(eer)f(Protok)m(oll)i(ist,)f(funktioniert)g(der)f(K)m(omm) m(unik)-5 b(ationsk)g(anal)27 b(n)m(ur)e(solange)g(b)s(ei-)382 1200 y(de)30 b(Endpunkte)i(der)f(K)m(omm)m(unik)-5 b(ation)33 b(funktionieren.)382 1351 y(F\344llt)c(n)m(un)h(der)f(sendende)g (Knoten)h(unmittelbar)h(nac)m(h)f(dem)f(Absc)m(hic)m(k)m(en)h(eines)f (Da-)382 1463 y(tenpak)m(etes)d(aus,)g(so)f(k)-5 b(ann)25 b(TCP)h(nic)m(h)m(t)h(sic)m(herstellen,)g(da\377)f(dieses)f(Datenpak)m (et)h(auc)m(h)382 1576 y(b)s(eim)37 b(empfangenden)i(Knoten)f(ank)m (omm)m(t.)63 b(\334b)s(ernimm)m(t)39 b(n)m(un)f(der)f(no)s(c)m(h)h (funktio-)382 1689 y(nierende)d(Knoten)g(das)f(Service,)h(k)-5 b(ann)34 b(es)g(sein,)g(da\377)h(er)f(die)g(letzten)h(Datenpak)m(ete,) 382 1802 y(die)28 b(der)g(gerade)h(ausgefallene)f(Knoten)h(no)s(c)m(h)f (gesendet)h(hat,)g(nic)m(h)m(t)g(b)s(ek)m(ommen)g(hat.)382 1953 y(Dieses)d(V)-8 b(erhalten)28 b(ist)e(f\374r)g(eine)h (transaktionsbasierte)h(An)m(w)m(endung)h(nic)m(h)m(t)f(akzepta-)382 2066 y(b)s(el.)45 b(Eine)33 b(T)-8 b(ransaktion)34 b(m)m(u\377)f(p)s (ermanen)m(t)g(o)s(der)g(gar)f(nic)m(h)m(t)i(durc)m(hgef\374hrt)g(w)m (erden.)382 2179 y(Hat)22 b(der)g(sendende)h(Knoten,)i(b)s(ev)m(or)d (er)g(ausgefallen)h(ist,)h(dem)e(Clien)m(t)i(mitgeteilt,)h(da\377)382 2292 y(die)g(T)-8 b(ransaktion)26 b(funktioniert)g(hat,)g(sind)f(die)g (V)-8 b(er\344nderungen)27 b(durc)m(h)g(die)e(T)-8 b(ransak-)382 2405 y(tion)29 b(nac)m(h)h(der)f(\334b)s(ernahme)g(durc)m(h)h(den)f(zw) m(eiten)h(Knoten)g(nic)m(h)m(t)g(mehr)g(v)m(orhanden.)382 2518 y(Eine)h(der)g(grundlegenden)h(Eigensc)m(haften)h(einer)e(T)-8 b(ransaktion)31 b(wurde)h(v)m(erletzt.)382 2668 y(Mit)23 b(Protok)m(oll)i(A)d(k)-5 b(ann)23 b(k)m(ein)h(Ausfall)e(einer)i(K)m (omp)s(onen)m(te)h(\(des)f(Mo)s(dells)e(aus)h(Abbil-)382 2781 y(dung)29 b(3.3\))f(toleriert)h(w)m(erden,)h(ohne)f(die)f(T)-8 b(ransaktionseigensc)m(haften)31 b(zu)d(v)m(erletzen.)382 2894 y(Protok)m(oll)23 b(A)d(\034ndet)i(jedo)s(c)m(h)g(seine)f(An)m(w)m (endung,)26 b(w)m(enn)c(auf)f(hohen)h(Datendurc)m(hsatz,)382 3007 y(nic)m(h)m(t)32 b(ab)s(er)e(auf)h(die)f(T)-8 b (ransaktionseigensc)m(haften)33 b(w)m(ertgelegt)g(wird.)382 3283 y Fo(3.2.2)112 b(Protok)m(oll)35 b(B)382 3492 y Fp(Bei)e(der)h(V)-8 b(erw)m(endung)36 b(v)m(on)e(Protok)m(oll)h(B)e (wird)h(ein)g(Sc)m(hreib)m(v)m(organg)j(dann)d(als)f(ab-)382 3605 y(gesc)m(hlossen)26 b(b)s(etrac)m(h)m(tet,)j(sobald)d(der)f(Sc)m (hreib)m(v)m(organg)k(auf)d(die)f(lok)-5 b(ale)26 b(Platte)h(abge-)382 3718 y(sc)m(hlossen)22 b(ist)f(und)h(eine)g(Empfangsb)s(est\344tigung)h (v)m(om)f(zw)m(eiten)h(Knoten)f(eingetro\033en)382 3831 y(ist.)382 3982 y(Im)40 b(Gegensatz)g(zu)g(Protok)m(oll)i(A)d(bleib)s (en)i(b)s(eim)f(Ausfall)f(einer)i(K)m(omp)s(onen)m(te)h(die)382 4095 y(T)-8 b(ransaktionseigensc)m(haften)44 b(erhalten.)75 b(F)-8 b(allen)42 b(jedo)s(c)m(h)g(zw)m(ei)h(K)m(omp)s(onen)m(ten)h (auf)382 4208 y(einmal)c(aus,)h(so)d(k)-5 b(ann)40 b(es)e(auc)m(h)i(b)s (ei)f(diesem)g(Protok)m(oll)i(zu)e(einer)h(V)-8 b(erletzung)40 b(der)382 4321 y(T)-8 b(ransaktionseigensc)m(haften)33 b(k)m(ommen.)42 b(Ein)31 b(Beispiel:)639 4490 y(Beide)i(Knoten)h(eines) f(Clusters)g(fallen)g(in)g(kurzem)g(zeitlic)m(hen)i(Abstand)e(w)m(e-) 639 4603 y(gen)k(eines)f(Stromausfalls)h(aus.)58 b(Der)36 b(prim\344re)h(Knoten)g(teilt)g(einem)g(Clien)m(t)639 4716 y(mit,)c(da\377)f(eine)h(T)-8 b(ransaktion)33 b(abgesc)m(hlossen)g (ist,)f(danac)m(h)i(f\344llt)e(er)g(aus.)45 b(Der)639 4829 y(sekund\344re)27 b(Knoten)h(hat)f(zw)m(ar)h(den)f(Daten)m(blo)s (c)m(k)h(empfangen)g(und)f(die)g(Emp-)639 4942 y(fangsb)s (est\344tigung)39 b(zur\374c)m(k)g(an)f(den)g(prim\344ren)i(Knoten)f (gesendet,)i(f\344llt)d(je-)639 5055 y(do)s(c)m(h)31 b(aus,)f(b)s(ev)m(or)h(der)g(Daten)m(blo)s(c)m(k)g(auf)g(die)f(F)-8 b(estplatte)32 b(gesc)m(hrieb)s(en)g(wird.)639 5168 y(En)m(tsc)m (heidet)f(der)e(Cluster-Manager)h(nac)m(h)f(dem)g(Stromausfall,)h (da\377)e(der)h(an-)639 5281 y(dere)34 b(Knoten)g(das)e(Service)i(an)m (bieten)h(soll,)e(so)g(sind)g(die)g(Auswirkungen)h(der)639 5394 y(letzten)d(T)-8 b(ransaktion)32 b(v)m(erloren.)1831 5622 y(22)p eop %%Page: 23 25 23 24 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)448 b(3.3.)71 b(SCHREIBOPERA)-8 b(TIONEN)p 382 299 2989 4 v 382 539 a Fp(Dieses)30 b(Problem)i(k)m(\366nn)m(te)h(man)e(dadurc)m (h)h(l\366sen,)g(da\377)f(der)g(Cluster-Mananger)h(nac)m(h)382 652 y(dem)39 b(Ausfall)f(b)s(eider)h(Knoten,)j(das)c(Service)h(wieder)h (auf)e(jenem)h(Knoten)h(startet,)382 764 y(auf)30 b(dem)h(es)f(zuletzt) h(gelaufen)g(ist.)382 1044 y Fo(3.2.3)112 b(Protok)m(oll)35 b(C)382 1257 y Fp(Bei)d(Protok)m(oll)h(C)f(wird)h(ein)f(Sc)m(hreib)m(v) m(organg)j(abgesc)m(hlossen,)e(sobald)g(der)f(Sc)m(hreib-)382 1370 y(v)m(organg)41 b(auf)f(die)g(lok)-5 b(ale)40 b(Platte)h(abgesc)m (hlossen)g(ist)f(und)h(eine)f(Best\344tigung)h(v)m(om)382 1483 y(zw)m(eiten)d(Knoten)g(eingetro\033en)g(ist,)g(die)f(b)s(esagt,)h (da\377)f(der)g(Daten)m(blo)s(c)m(k)h(auc)m(h)g(dort)382 1596 y(erfolgreic)m(h)32 b(gesc)m(hrieb)s(en)g(wurde.)382 1749 y(Mit)e(Protok)m(oll)i(C)f(bleibt)g(die)f(T)-8 b(ransaktionsseman) m(tik)33 b(auf)d(jeden)h(F)-8 b(all)31 b(erhalten.)382 1903 y(Bei)k(Protok)m(oll)i(B)e(und)h(C)f(m)m(u\377)h(b)s(ei)f(Ausfall) g(des)g(v)m(erbindenden)i(Netzw)m(erk)m(es)f(o)s(der)382 2016 y(des)h(zw)m(eiten)j(Cluster-Knotens)f(der)f(Empfang)g(der)g(no)s (c)m(h)g(ausstehenden)h(Best\344ti-)382 2129 y(gungen)45 b(sim)m(uliert)h(w)m(erden.)83 b(Das)44 b(Blo)s(c)m(k-IO-System)h(un)m (ter)g(Lin)m(ux)g(erlaubt)h(n)m(ur)382 2242 y(eine)36 b(b)s(egrenzte)h(Anzahl)g(nic)m(h)m(t)g(abgesc)m(hlossener)h (Anforderungen,)h(und)d(es)g(w\374rde)382 2355 y(blo)s(c)m(kieren,)31 b(w)m(enn)h(nic)m(h)m(t)g(alle)f(Anforderungen)g(abgesc)m(hlossen)h(w)m (erden.)382 2678 y Fj(3.3)130 b(Sc)l(hreib)t(op)t(erationen)382 2921 y Fp(F\374r)30 b(viele)g(Filesysteme)f(ist)h(die)g(Reihenfolge,)g (in)g(der)g(b)s(estimm)m(te)h(Daten)m(bl\366)s(c)m(k)m(e)h(auf)382 3034 y(die)25 b(F)-8 b(estplatte)27 b(gesc)m(hrieb)s(en)f(w)m(erden,)i (v)m(on)d(en)m(tsc)m(heidender)j(Bedeutung.)41 b(Zum)25 b(Bei-)382 3147 y(spiel)30 b(m)m(u\377)h(ein)f(Journaling-Filesystem)i (v)m(or)e(jeder)g(Metadatenaktualisierung)i(eine)382 3260 y(T)-8 b(ransaktion)32 b(in)e(den)h(Journalb)s(ereic)m(h)j(sc)m (hreib)s(en,)d(w)m(ob)s(ei)h(der)e(Commit-Record)j(als)382 3373 y(letzter)e(gesc)m(hrieb)s(en)h(w)m(erden)g(m)m(u\377.)382 3527 y(Un)m(ter)39 b(Lin)m(ux)g(wird)f(derzeit)h(explizit)g(auf)f(den)g (Absc)m(hlu\377)h(jener)f(Sc)m(hreib)s(op)s(eratio-)382 3640 y(nen)j(gew)m(artet,)46 b(die)41 b(v)m(or)h(den)f(n\344c)m(hsten)h (Sc)m(hreib)s(op)s(erationen)i(auf)d(die)g(F)-8 b(estplatte)382 3753 y(gesc)m(hrieb)s(en)32 b(w)m(erden)g(m)m(\374ssen,)f(b)s(ev)m(or)g (die)g(folgende)g(Sc)m(hreib)s(op)s(eration)i(in)d(Auftrag)382 3865 y(geb)s(eb)s(en)g(wird.)382 4019 y(Damit)40 b(DRBD)f(auf)g(dem)h (sekund\344ren)g(Knoten)h(alle)e(Sc)m(hreib)s(op)s(erationen)k(in)c (der)382 4132 y(gleic)m(hen)32 b(Reihenfolge)e(ausf\374hrt,)g(in)h(der) f(sie)g(auf)f(dem)i(prim\344ren)g(Knoten)g(v)m(om)g(IO-)382 4245 y(System)36 b(an)h(den)g(T)-8 b(reib)s(er)37 b(gesendet)g(wurden,) i(m)m(\374\377te)f(der)f(Algorithm)m(us)h(wie)e(folgt)382 4358 y(aussehen:)493 4584 y(1.)46 b(Empfange)32 b(einen)f(Blo)s(c)m(k)f (v)m(om)h(Netzw)m(erk.)493 4763 y(2.)46 b(Sc)m(hreib)s(e)32 b(diesen)e(Blo)s(c)m(k)h(auf)f(die)h(F)-8 b(estplatte.)493 4942 y(3.)46 b(W)-8 b(arte,)31 b(bis)g(die)f(Sc)m(hreib)s(op)s(eration) j(abgesc)m(hlossen)e(ist.)382 5168 y(Dieser)41 b(restriktiv)m(e)h (Algorithm)m(us)g(w\374rde)g(w)m(ahrsc)m(heinlic)m(h)i(so)m(w)m(ohl)f (den)e(prim\344ren)382 5281 y(Knoten)26 b(bremsen,)i(als)d(auc)m(h)h (das)f(IO-System)h(des)f(sekund\344ren)h(Knotens)g(nic)m(h)m(t)h(aus-) 382 5394 y(lasten)c(k)m(\366nnen.)39 b(Der)23 b(Datendurc)m(hsatz)i(k) -5 b(ann)22 b(w)m(esen)m(tlic)m(h)k(v)m(erb)s(essert)c(w)m(erden,)k(w)m (enn)1831 5622 y(23)p eop %%Page: 24 26 24 25 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)448 b(3.3.)71 b(SCHREIBOPERA)-8 b(TIONEN)p 382 299 2989 4 v 382 539 a Fp(das)29 b(Empfangen)i(v)m(om)e(Netzw)m(erk)i(und)e(das)g (Sc)m(hreib)s(en)i(auf)e(die)h(F)-8 b(estplatte)30 b(parallel)382 652 y(statt\034nden.)382 932 y Fo(3.3.1)112 b(Abh\344ngigk)m(eiten)382 1145 y Fp(Ob)32 b(ein)g(b)s(estimm)m(ter)h(Daten)m(blo)s(c)m(k)g(v)m (or)f(einem)h(anderen)f(Daten)m(blo)s(c)m(k)i(auf)d(die)h(F)-8 b(est-)382 1257 y(platte)24 b(gesc)m(hrieb)s(en)g(w)m(erden)h(m)m (u\377,)h(w)m(ei\377)e(leider)g(n)m(ur)g(das)f(Filesystem.)38 b(Besteh)m(t)24 b(diese)382 1370 y(Not)m(w)m(endigk)m(eit,)30 b(so)c(existiert)g(zwisc)m(hen)i(dem)e(Absc)m(hlu\377)i(der)e(Sc)m (hreib)s(op)s(eration)j(des)382 1483 y(ersten)g(Blo)s(c)m(k)m(es)f(und) h(dem)g(Sc)m(hreibb)s(efehl)h(f\374r)e(den)g(zw)m(eiten)i(Blo)s(c)m(k)f (eine)f(Abh\344ngig-)382 1596 y(k)m(eit.)382 1750 y(Es)d(k)-5 b(ann)26 b(k)m(eine)g(Abh\344ngigk)m(eit)h(zwisc)m(hen)g(zw)m(ei)f (Bl\366)s(c)m(k)m(en)h(geb)s(en,)f(w)m(enn)h(der)f(Sc)m(hreib-)382 1863 y(b)s(efehl)34 b(f\374r)g(den)h(zw)m(eiten)h(Blo)s(c)m(k)f(gegeb)s (en)g(wird,)h(b)s(ev)m(or)e(die)h(Sc)m(hreib)s(op)s(eration)i(des)382 1976 y(ersten)31 b(abgesc)m(hlossen)g(ist.)40 b(Ein)31 b(Beispiel:)447 2606 y @beginspecial 22 @llx 758 @lly 365 @urx 817 @ury 3430 @rwi @setspecial %%BeginDocument: /home/philipp/diplomarbeit//block_timing_1.ps %!PS-Adobe-3.0 EPSF-3.0 %%For: Philipp Reisner %%CreationDate: Mon Apr 17 14:18:40 2000 %%Title: block_timing_1.ps %%Creator: Sketch 0.6.5 %%Pages: 1 %%BoundingBox: 22 758 365 817 %%Extensions: CMYK %%DocumentSuppliedResources: (atend) %%DocumentNeededResources: font Times-Roman %%EndComments %%BeginProlog %%BeginResource: procset Linux-Sketch-Procset 1.0 2 /SketchDict 100 dict def SketchDict begin /bd { bind def } bind def /x { exch } bd /xd { exch def } bd /PI 3.14159265358979323846264338327 def /radgrad { 180 mul PI div } bd /skstartmatrix matrix currentmatrix def /tmpmat matrix def /ISOLatin1Encoding dup where { pop pop } { [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def } ifelse /arct dup where {pop pop} { /arct {arcto pop pop pop pop} bd } ifelse /size 0 def /fontname 0 def /newfont 0 def /sf { /size xd /fontname xd fontname findfont dup /Encoding get StandardEncoding eq { dup length dict /newfont xd { 1 index /FID ne { newfont 3 1 roll put } { pop pop } ifelse } forall newfont /Encoding ISOLatin1Encoding put fontname newfont definefont } if size scalefont setfont } bd /pusht {matrix currentmatrix} bd /popt {setmatrix} bd /pushc {gsave} bd /popc {grestore} bd /rgb {setrgbcolor} bd /w { setlinewidth } bd /j { setlinejoin } bd /J { setlinecap } bd /d { setdash } bd /F { eofill } bd /f { closepath F } bd /S { pusht skstartmatrix setmatrix stroke popt } bd /s { closepath S } bd /m { moveto } bd /l { lineto } bd /c { curveto } bd /txt { /tmpmat tmpmat currentmatrix def dup type /arraytype eq {concat} {translate} ifelse 0 0 m tmpmat } bd /T {txt x show popt} bd /P {txt x true charpath popt} bd /TP {txt x dup show 0 0 m true charpath popt} bd /C {newpath 0 360 arc} bd /R { 2 copy m x 2 index l x 2 index x l l closepath } bd /ellipse { dup type /arraytype eq { pusht x concat 0 0 1.0 C popt } { pusht 5 1 roll 4 -1 roll concat newpath dup 2 eq { 0 0 m } if 3 1 roll radgrad x radgrad x 0 0 1 5 -2 roll arc 0 ne { closepath } if popt } ifelse } bd /radius1 0 def /radius2 0 def /factor 0 def /rect { dup type /arraytype eq { pusht x concat 0 0 m 1 0 l 1 1 l 0 1 l closepath popt } { /radius2 xd /radius1 xd pusht x concat radius1 radius2 div 1 scale 0 radius2 m 0 1 radius2 1 radius2 arct radius2 radius1 div dup 1 1 index 0 radius2 arct 0 0 0 radius2 arct 0 0 0 1 radius2 arct closepath popt } ifelse } bd /buf 0 def /width 0 def /height 0 def /skcimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width 3 mul string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind false 3 colorimage tmpmat setmatrix } bd /skgimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind image tmpmat setmatrix } bd /rclip { 4 2 roll m dup 0 x rlineto x 0 rlineto neg 0 x rlineto closepath clip } bd /skeps { 10 dict begin /sk_state save def concat 3 index neg 3 index neg translate rclip 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /sk_dict_count countdictstack def /sk_count count 1 sub def userdict begin /showpage { } def /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bd /skepsend { count sk_count sub { pop } repeat countdictstack sk_dict_count sub { end } repeat sk_state restore end } bd /gradidx 0 def /gradient { 3 mul array /gradidx 0 def } bd /$ { 3 index gradidx 5 -1 roll put 2 index gradidx 1 add 4 -1 roll put 1 index gradidx 2 add 3 -1 roll put /gradidx gradidx 3 add def } bd /! { 3 { dup dup gradidx dup 3 1 roll 3 sub get put /gradidx gradidx 1 add def } repeat } bd /gradcolor { 3 mul dup 2 add 1 exch % idx 1 idx+2 { 1 index exch % array array i get % array component exch % component array } for 4 1 roll } bd /x0 0 def /y0 0 def /x1 0 def /y1 0 def /left 0 def /right 0 def /top 0 def /bottom 0 def /numcolors 0 def /axial { /y1 xd /x1 xd /y0 xd /x0 xd dup length 3 idiv /numcolors xd pusht exch % ctm array x0 x1 ne y0 y1 ne or { x0 y0 translate [x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath 0 gradcolor rgb clippath f 0 1 numcolors 1 sub { dup numcolors div 3 1 roll gradcolor rgb exch bottom right top R f } for } if pop popt } bd /r0 0 def /r1 0 def /dr 0 def /radial { /r1 xd /r0 xd /y0 xd /x0 xd /dr r1 r0 sub def dup length 3 idiv /numcolors xd pusht exch % ctm array r0 r1 ne { x0 y0 translate clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb clippath f dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse { dup numcolors div dr mul r0 add 3 1 roll gradcolor rgb exch 0 0 3 -1 roll C f } for } if pop popt } bd /max { 2 copy lt {exch} if pop } bd /conical { pusht 5 1 roll 3 1 roll /y0 xd /x0 xd x0 y0 translate radgrad rotate dup length 3 idiv /numcolors xd clippath flattenpath pathbbox newpath 4 { abs 4 1 roll} repeat 3 { max } repeat 2 mul dup scale 0 gradcolor rgb 0 0 1 0 360 arc f 1 1 numcolors 1 sub { dup numcolors div 180 mul 3 1 roll gradcolor rgb exch 0 0 moveto 0 0 1 4 -1 roll dup neg arc closepath f } for pop popt } bd /XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def /tileimage2 { exch 4 2 roll /height xd /width xd mark /components 2 index /PatternType 1 /PaintType 1 /TilingType 1 /BBox [0 0 width height] /XStep width /YStep height /PaintProc { begin XStep YStep 8 matrix imagedata false components colorimage end } counttomark 2 div cvi dup dict begin { def } repeat pop currentdict end dup /imagedata 4 -1 roll width height mul mul string currentfile exch readhexstring pop put exch makepattern setpattern clippath eofill } bd /tileimage1 { concat /components xd /height xd /width xd /imagedata currentfile width height mul components mul string readhexstring pop def clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd left width div floor width mul bottom height div floor height mul translate top bottom sub height div ceiling cvi { gsave right left sub width div ceiling cvi { width height 8 matrix components 1 eq { { imagedata } image } { imagedata false components colorimage } ifelse width 0 translate } repeat grestore 0 height translate } repeat } bd /makepattern where { pop /tileimage /tileimage2 load def } { /tileimage /tileimage1 load def } ifelse end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Roman 10.433 setmiterlimit %%EndSetup %%Page: 1 1 SketchDict begin newpath 141.733 807.876 m 141.733 765.356 l 340.158 765.356 l 0 0 0 rgb 0.566929 w 0 j 0 J [] 0 d S pusht 340.158 765.356 translate 0 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt /Times-Roman 12 sf (Schreiboperation fertig) 25 767 T (Schreibaufforderung) 36 787 T newpath 147.496 784.968 m 158.835 784.968 l 1 w S newpath 164.504 784.968 m 175.842 784.968 l S newpath 181.512 784.968 m 192.85 784.968 l S newpath 198.52 784.968 m 209.858 784.968 l S newpath 232.535 784.968 m 249.543 784.968 l S newpath 260.882 784.968 m 266.551 784.968 l 272.22 784.968 l S (A) 148 787 T (B) 166 787 T (C) 183 787 T (D) 182 799 T (E) 200 787 T (F) 237 787 T (G) 262 787 T (H) 262 799 T newpath 204.189 782.134 m 204.189 779.299 l S newpath 215.528 782.134 m 215.528 779.299 l S newpath 241.039 782.134 m 241.039 779.299 l S newpath 263.717 782.134 m 263.717 779.299 l S newpath 269.386 782.134 m 269.386 779.299 l S newpath 285.056 782.134 m 285.056 779.299 l S newpath 296.395 782.134 m 296.395 779.299 l S newpath 307.734 782.134 m 307.734 779.299 l S (D) 200 768 T (A) 211 768 T (C) 237 768 T (E) 258 768 T (F) 268 768 T (H) 280 768 T (G) 292 768 T (B) 303 768 T newpath 238.205 799.141 m 215.528 810.48 198.52 804.811 195.685 804.811 c 0.283465 w S pusht 195.685 804.811 translate 180 rotate [ ] 0 d -6 3 m 1 0 l -6 -3 l S popt newpath 241.039 799.141 m 195.685 835.992 156 796.307 156 796.307 c S pusht 156 796.307 translate -135 rotate [ ] 0 d -6 3 m 1 0 l -6 -3 l S popt (Zeit) 342 769 T %%PageTrailer showpage %%Trailer end %%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 %%EOF %%EndDocument @endspecial 382 2830 a(Es)f(folgen)h(n)m(un)g(ein)g(paar)g (Erl\344uterungen)i(zum)d(Diagramm:)382 2943 y(Die)37 b(zeitlic)m(he)h(Ausdehn)m(ung,)i(mit)d(der)g(die)g(\334b)s(ergab)s(e)g (v)m(on)g(Daten)m(bl\366)s(c)m(k)m(en)i(an)e(das)382 3056 y(IO-System)32 b(dargestellt)h(ist,)g(en)m(tspric)m(h)m(t)h(einem) f(Aufruf)f(v)m(on)g(ll_rw_blo)s(c)m(k\(\).)48 b(Aus)382 3169 y(der)25 b(Abbildung)g(ist)f(ersic)m(h)m(tlic)m(h,)k(da\377)d(auc) m(h)g(mehrere)h(Bl\366)s(c)m(k)m(e)f(auf)f(einmal)h(\374b)s(ergeb)s(en) 382 3282 y(w)m(erden)38 b(k)m(\366nnen)g(und)f(da\377)g(Aufrufe)g(v)m (on)g(ll_rw_blo)s(c)m(k\(\))i(auc)m(h)e(v)m(ersc)m(hieden)i(lang)382 3395 y(dauern)e(k)m(\366nnen,)h(denn)f(ll_rw_blo)s(c)m(k\(\))g(k)-5 b(ann)36 b(blo)s(c)m(kiert)h(w)m(erden.)59 b(Der)36 b(Absc)m(hlu\377) 382 3508 y(einer)31 b(Sc)m(hreib)s(op)s(eration)h(ist)e(als)g (Zeitpunkt)h(dargestellt,)h(der)f(dem)f(Zeitpunkt)i(en)m(t-)382 3621 y(spric)m(h)m(t,)27 b(zu)d(dem)h(das)f(upto)s(date)h(Bit)f(im)h(k) m(orresp)s(ondierenden)h(Bu\033er-Head)f(gesetzt)382 3734 y(wird.)382 3888 y(Zwisc)m(hen)36 b(den)f(Daten)m(bl\366)s(c)m(k)m (en)i(A,)d(B,)g(C,)h(D)f(und)h(E)g(k)-5 b(ann)35 b(es)f(k)m(eine)h (Abh\344ngigk)m(eit)382 4001 y(geb)s(en,)43 b(da)d(v)m(or)g(deren)h(Sc) m(hreibb)s(efehlen)h(k)m(eine)e(Sc)m(hreib)s(op)s(eration)i(abgesc)m (hlossen)382 4114 y(wurde.)f(F)28 b(k)-5 b(ann)29 b(ab)s(er)f(v)m(on)h (A)f(und)h(D)g(abh\344ngen,)h(da)f(der)g(Sc)m(hreibb)s(efehl)h(f\374r)e (F)h(erst)382 4227 y(erteilt)h(wurde,)g(nac)m(hdem)h(im)e(System)g(b)s (ek)-5 b(ann)m(t)30 b(wurde,)g(da\377)f(A)g(und)g(D)g(v)m (ollst\344ndig)382 4339 y(auf)37 b(die)h(F)-8 b(estplatte)38 b(gesc)m(hrieb)s(en)h(wurden.)62 b(Eb)s(enso)38 b(k)-5 b(ann)37 b(es)g(eine)h(Abh\344ngigk)m(eit)382 4452 y(v)m(on)28 b(G)e(und)i(H)f(zu)g(A,)g(C)g(und)h(D)f(geb)s(en.)40 b(Es)27 b(k)-5 b(ann)27 b(ab)s(er)h(k)m(eine)g(Abh\344ngigk)m(eit)g(v)m (on)g(H)382 4565 y(und)f(G)f(zu)g(E)h(und)g(F)f(geb)s(en.)39 b(Ob)27 b(diese)f(Abh\344ngigk)m(eit)i(wirklic)m(h)g(existiert,)f(w)m (ei\377)h(n)m(ur)382 4678 y(der)36 b(Auftraggeb)s(er)f(der)h(Sc)m (hreib)s(op)s(erationen)i(\(das)d(Filesystem\).)56 b(Auf)34 b(der)i(Eb)s(ene)382 4791 y(eines)30 b(F)-8 b(estplatten)m(treib)s(ers) 33 b(darf)d(man)h(k)m(eine)g(m\366glic)m(he)h(Abh\344ngigk)m(eit)g(v)m (erletzen.)382 5068 y Fn(3.3.1.1)103 b(W)-9 b(rite)36 b(Barriers)382 5281 y Fp(Diese)f(Erk)m(enn)m(tnis)i(erm\366glic)m(h)m (t)h(es,)e(einen)g(Algorithm)m(us)h(anzugeb)s(en,)g(der)f(Sc)m(hran-) 382 5394 y(k)m(en)25 b(\(write)h(barriers\),)i(\374b)s(er)d(die)g(Sc)m (hreibanforderungen)k(nic)m(h)m(t)e(v)m(ersc)m(hob)s(en)f(w)m(erden) 1831 5622 y(24)p eop %%Page: 25 27 25 26 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)448 b(3.3.)71 b(SCHREIBOPERA)-8 b(TIONEN)p 382 299 2989 4 v 382 539 a Fp(d\374rfen,)31 b(erzeugt.)493 801 y(1.)46 b(Jeder)30 b(Blo)s(c)m(k,)g(der)f(gesc)m(hrieb)s(en)i(w)m(erden)g(m)m (u\377,)f(wird)g(zu)f(einer)h(Menge)g(hinzu-)609 914 y(gef\374gt.)493 1101 y(2.)46 b(Ist)31 b(das)h(Sc)m(hreib)s(en)h(einer) g(der)f(Bl\366)s(c)m(k)m(e)g(aus)g(der)g(Menge)g(abgesc)m(hlossen,)i (wird)609 1214 y(die)d(Menge)g(geleert,)g(und)g(eine)g(Sc)m(hrank)m(e)h (m)m(u\377)f(ausgegeb)s(en)g(w)m(erden.)382 1477 y(W)-8 b(endet)25 b(man)f(den)g(Algorithm)m(us)h(auf)f(das)f(Beispiel)h(an,)i (so)d(w)m(erden)i(folgende)g(P)m(ak)m(ete)382 1590 y(\374b)s(er)30 b(das)h(Netzw)m(erk)g(v)m(ersendet:)393 2152 y @beginspecial 9 @llx 758 @lly 365 @urx 810 @ury 3560 @rwi @setspecial %%BeginDocument: /home/philipp/diplomarbeit//wire_1.ps %!PS-Adobe-3.0 EPSF-3.0 %%For: Philipp Reisner %%CreationDate: Thu Mar 16 13:00:09 2000 %%Title: wire_1.ps %%Creator: Sketch 0.6.5 %%Pages: 1 %%BoundingBox: 9 758 365 810 %%Extensions: CMYK %%DocumentSuppliedResources: (atend) %%DocumentNeededResources: font Times-Roman %%EndComments %%BeginProlog %%BeginResource: procset Linux-Sketch-Procset 1.0 2 /SketchDict 100 dict def SketchDict begin /bd { bind def } bind def /x { exch } bd /xd { exch def } bd /PI 3.14159265358979323846264338327 def /radgrad { 180 mul PI div } bd /skstartmatrix matrix currentmatrix def /tmpmat matrix def /ISOLatin1Encoding dup where { pop pop } { [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def } ifelse /arct dup where {pop pop} { /arct {arcto pop pop pop pop} bd } ifelse /size 0 def /fontname 0 def /newfont 0 def /sf { /size xd /fontname xd fontname findfont dup /Encoding get StandardEncoding eq { dup length dict /newfont xd { 1 index /FID ne { newfont 3 1 roll put } { pop pop } ifelse } forall newfont /Encoding ISOLatin1Encoding put fontname newfont definefont } if size scalefont setfont } bd /pusht {matrix currentmatrix} bd /popt {setmatrix} bd /pushc {gsave} bd /popc {grestore} bd /rgb {setrgbcolor} bd /w { setlinewidth } bd /j { setlinejoin } bd /J { setlinecap } bd /d { setdash } bd /F { eofill } bd /f { closepath F } bd /S { pusht skstartmatrix setmatrix stroke popt } bd /s { closepath S } bd /m { moveto } bd /l { lineto } bd /c { curveto } bd /txt { /tmpmat tmpmat currentmatrix def dup type /arraytype eq {concat} {translate} ifelse 0 0 m tmpmat } bd /T {txt x show popt} bd /P {txt x true charpath popt} bd /TP {txt x dup show 0 0 m true charpath popt} bd /C {newpath 0 360 arc} bd /R { 2 copy m x 2 index l x 2 index x l l closepath } bd /ellipse { dup type /arraytype eq { pusht x concat 0 0 1.0 C popt } { pusht 5 1 roll 4 -1 roll concat newpath dup 2 eq { 0 0 m } if 3 1 roll radgrad x radgrad x 0 0 1 5 -2 roll arc 0 ne { closepath } if popt } ifelse } bd /radius1 0 def /radius2 0 def /factor 0 def /rect { dup type /arraytype eq { pusht x concat 0 0 m 1 0 l 1 1 l 0 1 l closepath popt } { /radius2 xd /radius1 xd pusht x concat radius1 radius2 div 1 scale 0 radius2 m 0 1 radius2 1 radius2 arct radius2 radius1 div dup 1 1 index 0 radius2 arct 0 0 0 radius2 arct 0 0 0 1 radius2 arct closepath popt } ifelse } bd /buf 0 def /width 0 def /height 0 def /skcimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width 3 mul string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind false 3 colorimage tmpmat setmatrix } bd /skgimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind image tmpmat setmatrix } bd /rclip { 4 2 roll m dup 0 x rlineto x 0 rlineto neg 0 x rlineto closepath clip } bd /skeps { 10 dict begin /sk_state save def concat 3 index neg 3 index neg translate rclip 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /sk_dict_count countdictstack def /sk_count count 1 sub def userdict begin /showpage { } def /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bd /skepsend { count sk_count sub { pop } repeat countdictstack sk_dict_count sub { end } repeat sk_state restore end } bd /gradidx 0 def /gradient { 3 mul array /gradidx 0 def } bd /$ { 3 index gradidx 5 -1 roll put 2 index gradidx 1 add 4 -1 roll put 1 index gradidx 2 add 3 -1 roll put /gradidx gradidx 3 add def } bd /! { 3 { dup dup gradidx dup 3 1 roll 3 sub get put /gradidx gradidx 1 add def } repeat } bd /gradcolor { 3 mul dup 2 add 1 exch % idx 1 idx+2 { 1 index exch % array array i get % array component exch % component array } for 4 1 roll } bd /x0 0 def /y0 0 def /x1 0 def /y1 0 def /left 0 def /right 0 def /top 0 def /bottom 0 def /numcolors 0 def /axial { /y1 xd /x1 xd /y0 xd /x0 xd dup length 3 idiv /numcolors xd pusht exch % ctm array x0 x1 ne y0 y1 ne or { x0 y0 translate [x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath 0 gradcolor rgb clippath f 0 1 numcolors 1 sub { dup numcolors div 3 1 roll gradcolor rgb exch bottom right top R f } for } if pop popt } bd /r0 0 def /r1 0 def /dr 0 def /radial { /r1 xd /r0 xd /y0 xd /x0 xd /dr r1 r0 sub def dup length 3 idiv /numcolors xd pusht exch % ctm array r0 r1 ne { x0 y0 translate clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb clippath f dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse { dup numcolors div dr mul r0 add 3 1 roll gradcolor rgb exch 0 0 3 -1 roll C f } for } if pop popt } bd /max { 2 copy lt {exch} if pop } bd /conical { pusht 5 1 roll 3 1 roll /y0 xd /x0 xd x0 y0 translate radgrad rotate dup length 3 idiv /numcolors xd clippath flattenpath pathbbox newpath 4 { abs 4 1 roll} repeat 3 { max } repeat 2 mul dup scale 0 gradcolor rgb 0 0 1 0 360 arc f 1 1 numcolors 1 sub { dup numcolors div 180 mul 3 1 roll gradcolor rgb exch 0 0 moveto 0 0 1 4 -1 roll dup neg arc closepath f } for pop popt } bd /XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def /tileimage2 { exch 4 2 roll /height xd /width xd mark /components 2 index /PatternType 1 /PaintType 1 /TilingType 1 /BBox [0 0 width height] /XStep width /YStep height /PaintProc { begin XStep YStep 8 matrix imagedata false components colorimage end } counttomark 2 div cvi dup dict begin { def } repeat pop currentdict end dup /imagedata 4 -1 roll width height mul mul string currentfile exch readhexstring pop put exch makepattern setpattern clippath eofill } bd /tileimage1 { concat /components xd /height xd /width xd /imagedata currentfile width height mul components mul string readhexstring pop def clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd left width div floor width mul bottom height div floor height mul translate top bottom sub height div ceiling cvi { gsave right left sub width div ceiling cvi { width height 8 matrix components 1 eq { { imagedata } image } { imagedata false components colorimage } ifelse width 0 translate } repeat grestore 0 height translate } repeat } bd /makepattern where { pop /tileimage /tileimage2 load def } { /tileimage /tileimage1 load def } ifelse end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Roman 10.433 setmiterlimit %%EndSetup %%Page: 1 1 SketchDict begin newpath 141.733 796.537 m 141.733 765.356 l 340.158 765.356 l 0 0 0 rgb 0.566929 w 0 j 0 J [] 0 d S pusht 340.158 765.356 translate 0 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt /Times-Roman 12 sf (Pakete auf dem Netzwerk) 12 773 T (A) 150 774 T (B) 167 774 T (C) 184 774 T (D) 201 774 T (E) 218 774 T (F) 243 774 T (G) 263 774 T (H) 280 774 T (Zeit) 342 769 T [14.1732 0 0 -14.1732 147.402 785.198] rect 1 w S [14.1732 0 0 -14.1732 164.41 785.198] rect S [14.1732 0 0 -14.1732 181.418 785.198] rect S [14.1732 0 0 -14.1732 198.426 785.198] rect S [14.1732 0 0 -14.1732 240.945 785.198] rect S [5.6693 0 0 -14.1732 232.441 785.198] rect gsave 0.697 0.697 0.697 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [14.1732 0 0 -14.1732 260.788 785.198] rect S [14.1732 0 0 -14.1732 277.796 785.198] rect S [14.1732 0 0 -14.1732 215.433 785.198] rect S /Times-Roman 12 sf (Schranke) 167 799 T newpath 215.433 802.206 m 232.441 802.206 232.441 796.537 235.276 788.033 c 0.283465 w S pusht 235.276 788.033 translate -71.5651 rotate [ ] 0 d -6 3 m 1 0 l -6 -3 l S popt %%PageTrailer showpage %%Trailer end %%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 %%EOF %%EndDocument @endspecial 382 2386 a(Nun)45 b(k)-5 b(ann)45 b(der)h(Algorithm)m(us)g (f\374r)f(den)h(Empfang)g(der)g(P)m(ak)m(ete)h(folgenderma\377en)382 2498 y(v)m(erb)s(essert)30 b(w)m(erden:)493 2761 y(1.)46 b(Empfange)32 b(ein)e(P)m(ak)m(et.)648 2973 y(\(a\))46 b(F)-8 b(alls)44 b(das)f(P)m(ak)m(et)i(einen)e(Daten)m(blo)s(c)m(k)i (en)m(th\344lt,)j(gib)c(den)f(Befehl,)k(den)809 3086 y(Daten)m(blo)s(c)m(k)42 b(auf)e(die)h(F)-8 b(estplatte)41 b(zu)g(sc)m(hreib)s(en,)j(und)c(merk)m(e)h(dir)g(den)809 3199 y(Daten)m(blo)s(c)m(k)32 b(in)e(einer)h(Menge.)643 3345 y(\(b\))46 b(F)-8 b(alls)43 b(das)f(P)m(ak)m(et)h(eine)g(Sc)m (hrank)m(e)h(ist,)h(w)m(arte)f(auf)e(den)g(Absc)m(hlu\377)h(der)809 3458 y(Sc)m(hreib)s(op)s(erationen)30 b(aller)f(Daten)m(bl\366)s(c)m(k) m(e)g(in)f(der)g(Menge,)h(und)f(leere)g(die)809 3571 y(Menge)j(ansc)m(hlie\377end.)382 3833 y(Hier)f(no)s(c)m(h)h(ein)g (Beispiel:)393 4922 y @beginspecial 9 @llx 707 @lly 365 @urx 820 @ury 3560 @rwi @setspecial %%BeginDocument: /home/philipp/diplomarbeit//timing_n_wire_2.ps %!PS-Adobe-3.0 EPSF-3.0 %%For: Philipp Reisner %%CreationDate: Mon Apr 17 14:17:40 2000 %%Title: timing_n_wire_2.ps %%Creator: Sketch 0.6.5 %%Pages: 1 %%BoundingBox: 9 707 365 820 %%Extensions: CMYK %%DocumentSuppliedResources: (atend) %%DocumentNeededResources: font Times-Roman %%EndComments %%BeginProlog %%BeginResource: procset Linux-Sketch-Procset 1.0 2 /SketchDict 100 dict def SketchDict begin /bd { bind def } bind def /x { exch } bd /xd { exch def } bd /PI 3.14159265358979323846264338327 def /radgrad { 180 mul PI div } bd /skstartmatrix matrix currentmatrix def /tmpmat matrix def /ISOLatin1Encoding dup where { pop pop } { [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def } ifelse /arct dup where {pop pop} { /arct {arcto pop pop pop pop} bd } ifelse /size 0 def /fontname 0 def /newfont 0 def /sf { /size xd /fontname xd fontname findfont dup /Encoding get StandardEncoding eq { dup length dict /newfont xd { 1 index /FID ne { newfont 3 1 roll put } { pop pop } ifelse } forall newfont /Encoding ISOLatin1Encoding put fontname newfont definefont } if size scalefont setfont } bd /pusht {matrix currentmatrix} bd /popt {setmatrix} bd /pushc {gsave} bd /popc {grestore} bd /rgb {setrgbcolor} bd /w { setlinewidth } bd /j { setlinejoin } bd /J { setlinecap } bd /d { setdash } bd /F { eofill } bd /f { closepath F } bd /S { pusht skstartmatrix setmatrix stroke popt } bd /s { closepath S } bd /m { moveto } bd /l { lineto } bd /c { curveto } bd /txt { /tmpmat tmpmat currentmatrix def dup type /arraytype eq {concat} {translate} ifelse 0 0 m tmpmat } bd /T {txt x show popt} bd /P {txt x true charpath popt} bd /TP {txt x dup show 0 0 m true charpath popt} bd /C {newpath 0 360 arc} bd /R { 2 copy m x 2 index l x 2 index x l l closepath } bd /ellipse { dup type /arraytype eq { pusht x concat 0 0 1.0 C popt } { pusht 5 1 roll 4 -1 roll concat newpath dup 2 eq { 0 0 m } if 3 1 roll radgrad x radgrad x 0 0 1 5 -2 roll arc 0 ne { closepath } if popt } ifelse } bd /radius1 0 def /radius2 0 def /factor 0 def /rect { dup type /arraytype eq { pusht x concat 0 0 m 1 0 l 1 1 l 0 1 l closepath popt } { /radius2 xd /radius1 xd pusht x concat radius1 radius2 div 1 scale 0 radius2 m 0 1 radius2 1 radius2 arct radius2 radius1 div dup 1 1 index 0 radius2 arct 0 0 0 radius2 arct 0 0 0 1 radius2 arct closepath popt } ifelse } bd /buf 0 def /width 0 def /height 0 def /skcimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width 3 mul string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind false 3 colorimage tmpmat setmatrix } bd /skgimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind image tmpmat setmatrix } bd /rclip { 4 2 roll m dup 0 x rlineto x 0 rlineto neg 0 x rlineto closepath clip } bd /skeps { 10 dict begin /sk_state save def concat 3 index neg 3 index neg translate rclip 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /sk_dict_count countdictstack def /sk_count count 1 sub def userdict begin /showpage { } def /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bd /skepsend { count sk_count sub { pop } repeat countdictstack sk_dict_count sub { end } repeat sk_state restore end } bd /gradidx 0 def /gradient { 3 mul array /gradidx 0 def } bd /$ { 3 index gradidx 5 -1 roll put 2 index gradidx 1 add 4 -1 roll put 1 index gradidx 2 add 3 -1 roll put /gradidx gradidx 3 add def } bd /! { 3 { dup dup gradidx dup 3 1 roll 3 sub get put /gradidx gradidx 1 add def } repeat } bd /gradcolor { 3 mul dup 2 add 1 exch % idx 1 idx+2 { 1 index exch % array array i get % array component exch % component array } for 4 1 roll } bd /x0 0 def /y0 0 def /x1 0 def /y1 0 def /left 0 def /right 0 def /top 0 def /bottom 0 def /numcolors 0 def /axial { /y1 xd /x1 xd /y0 xd /x0 xd dup length 3 idiv /numcolors xd pusht exch % ctm array x0 x1 ne y0 y1 ne or { x0 y0 translate [x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath 0 gradcolor rgb clippath f 0 1 numcolors 1 sub { dup numcolors div 3 1 roll gradcolor rgb exch bottom right top R f } for } if pop popt } bd /r0 0 def /r1 0 def /dr 0 def /radial { /r1 xd /r0 xd /y0 xd /x0 xd /dr r1 r0 sub def dup length 3 idiv /numcolors xd pusht exch % ctm array r0 r1 ne { x0 y0 translate clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb clippath f dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse { dup numcolors div dr mul r0 add 3 1 roll gradcolor rgb exch 0 0 3 -1 roll C f } for } if pop popt } bd /max { 2 copy lt {exch} if pop } bd /conical { pusht 5 1 roll 3 1 roll /y0 xd /x0 xd x0 y0 translate radgrad rotate dup length 3 idiv /numcolors xd clippath flattenpath pathbbox newpath 4 { abs 4 1 roll} repeat 3 { max } repeat 2 mul dup scale 0 gradcolor rgb 0 0 1 0 360 arc f 1 1 numcolors 1 sub { dup numcolors div 180 mul 3 1 roll gradcolor rgb exch 0 0 moveto 0 0 1 4 -1 roll dup neg arc closepath f } for pop popt } bd /XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def /tileimage2 { exch 4 2 roll /height xd /width xd mark /components 2 index /PatternType 1 /PaintType 1 /TilingType 1 /BBox [0 0 width height] /XStep width /YStep height /PaintProc { begin XStep YStep 8 matrix imagedata false components colorimage end } counttomark 2 div cvi dup dict begin { def } repeat pop currentdict end dup /imagedata 4 -1 roll width height mul mul string currentfile exch readhexstring pop put exch makepattern setpattern clippath eofill } bd /tileimage1 { concat /components xd /height xd /width xd /imagedata currentfile width height mul components mul string readhexstring pop def clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd left width div floor width mul bottom height div floor height mul translate top bottom sub height div ceiling cvi { gsave right left sub width div ceiling cvi { width height 8 matrix components 1 eq { { imagedata } image } { imagedata false components colorimage } ifelse width 0 translate } repeat grestore 0 height translate } repeat } bd /makepattern where { pop /tileimage /tileimage2 load def } { /tileimage /tileimage1 load def } ifelse end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Roman 10.433 setmiterlimit %%EndSetup %%Page: 1 1 SketchDict begin newpath 141.619 745.45 m 141.619 714.269 l 340.044 714.269 l 0 0 0 rgb 0.566929 w 0 j 0 J [] 0 d S pusht 340.044 714.269 translate 0 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt /Times-Roman 12 sf (Pakete auf dem Netzwerk) 12 722 T (A) 149 723 T (B) 167 723 T (C) 184 723 T (D) 201 723 T (E) 218 723 T (F) 243 723 T (G) 269 723 T (H) 286 723 T (Zeit) 342 718 T [14.1732 0 0 -14.1732 147.288 734.111] rect 1 w S [14.1732 0 0 -14.1732 164.296 734.111] rect S [14.1732 0 0 -14.1732 181.304 734.111] rect S [14.1732 0 0 -14.1732 198.312 734.111] rect S [14.1732 0 0 -14.1732 240.831 734.111] rect S [5.6693 0 0 -14.1732 232.327 734.111] rect gsave 0.697 0.697 0.697 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [5.6693 0 0 -14.1732 257.953 734.174] rect gsave 0.697 0.697 0.697 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [14.1732 0 0 -14.1732 266.457 734.174] rect S [14.1732 0 0 -14.1732 283.465 734.174] rect S [14.1732 0 0 -14.1732 215.319 734.111] rect S newpath 141.619 810.647 m 141.619 768.127 l 340.044 768.127 l 0.566929 w S pusht 340.044 768.127 translate 0 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt /Times-Roman 12 sf (Schreiboperation fertig) 25 770 T (Schreibaufforderung) 36 790 T newpath 147.382 787.739 m 158.721 787.739 l 1 w S newpath 164.39 787.739 m 175.728 787.739 l S newpath 181.398 787.739 m 192.736 787.739 l S newpath 198.406 787.739 m 209.744 787.739 l S newpath 232.421 787.739 m 249.429 787.739 l S newpath 266.457 788.033 m 272.126 788.033 l 277.795 788.033 l S (A) 148 790 T (B) 166 790 T (C) 183 790 T (D) 182 801 T (E) 200 790 T (F) 237 790 T (G) 267 790 T (H) 267 802 T newpath 204.075 784.905 m 204.075 782.07 l S newpath 215.414 784.905 m 215.414 782.07 l S newpath 240.925 784.905 m 240.925 782.07 l S newpath 263.603 784.905 m 263.603 782.07 l S newpath 269.272 784.905 m 269.272 782.07 l S newpath 284.942 784.905 m 284.942 782.07 l S newpath 296.281 784.905 m 296.281 782.07 l S newpath 307.62 784.905 m 307.62 782.07 l S (D) 199 771 T (A) 211 771 T (C) 237 771 T (E) 269 771 T (F) 256 771 T (H) 280 771 T (G) 292 771 T (B) 303 771 T newpath 238.091 801.912 m 215.414 813.251 198.406 807.582 195.571 807.582 c 0.283465 w S pusht 195.571 807.582 translate 180 rotate [ ] 0 d -6 3 m 1 0 l -6 -3 l S popt newpath 240.925 801.912 m 195.571 838.763 155.886 799.078 155.886 799.078 c S pusht 155.886 799.078 translate -135 rotate [ ] 0 d -6 3 m 1 0 l -6 -3 l S popt (Zeit) 342 772 T newpath 266.457 799.371 m 257.953 805.041 252.284 802.206 246.615 799.371 c S pusht 246.615 799.371 translate -153.431 rotate [ ] 0 d -6 3 m 1 0 l -6 -3 l S popt %%PageTrailer showpage %%Trailer end %%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 %%EOF %%EndDocument @endspecial 1831 5622 a(25)p eop %%Page: 26 28 26 27 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)641 b(3.4.)71 b(SYNCHR)m(ONISA)-8 b(TION)p 382 299 2989 4 v 382 539 a Fj(3.4)130 b(Sync)l(hronisation)382 786 y Fp(Neb)s(en)20 b(der)h(Replik)-5 b(ation)21 b(der)f(Daten)m(bl\366)s(c) m(k)m(e,)25 b(die)20 b(Bestandteil)i(der)e(normalen)i(Sc)m(hreib-)382 899 y(op)s(erationen)36 b(ist,)f(m)m(u\377)g(es)f(auc)m(h)i(die)f (M\366glic)m(hk)m(eit)h(geb)s(en,)g(den)e(Inhalt)h(der)g(gespie-)382 1012 y(gelten)c(F)-8 b(estplatten)32 b(wieder)f(in)g(den)g(aktuellen)g (Zustand)g(zu)g(bringen,)h(w)m(enn)f(w)m(egen)382 1125 y(des)23 b(Ausfalls)g(einer)i(K)m(omp)s(onen)m(te)h(die)e(F)-8 b(estplatten)25 b(nic)m(h)m(t)g(mehr)g(die)f(gleic)m(hen)h(Daten)382 1238 y(en)m(thalten.)382 1395 y(Die)e(o\033ensic)m(h)m(tlic)m(he)k (L\366sung)d(f\374r)f(das)g(Problem)i(ist)e(es,)i(alle)e(Bl\366)s(c)m (k)m(e)h(einer)g(der)g(b)s(eiden)382 1508 y(F)-8 b(estplatten)38 b(auf)e(die)h(andere)h(zu)e(k)m(opieren.)61 b(Diese)36 b(V)-8 b(organgsw)m(eise)38 b(ist)f(allerdings)382 1621 y(f\374r)23 b(viele)g(An)m(w)m(endungsf\344lle)j(nic)m(h)m(t)f (geeignet.)39 b(Bei)23 b(gro\377en)i(P)m(artitionen)g(z.B.)f(\(T)-8 b(erra-)382 1734 y(b)m(yte\))26 b(w\374rde)g(der)g(K)m(opierv)m(orang)i (sehr)e(lange)g(dauern,)h(b)s(ei)f(geographisc)m(h)h(v)m(erteilten)382 1847 y(Knoten)38 b(k)-5 b(ann)37 b(die)g(Not)m(w)m(endigk)m(eit,)k (derart)d(viele)f(Daten)g(zu)g(transp)s(ortieren,)j(mit)382 1960 y(hohen)31 b(K)m(osten)g(v)m(erbunden)h(sein.)382 2245 y Fo(3.4.1)112 b(Sc)m(hnelle)37 b(Sync)m(hronisation)382 2461 y Fp(Daher)27 b(ist)g(in)g(DRBD)g(no)s(c)m(h)g(zus\344tzlic)m(h)i (ein)e(v)m(erb)s(essertes)g(Sync)m(hronisationsv)m(erfah-)382 2574 y(ren)d(v)m(orhanden.)40 b(Dab)s(ei)24 b(w)m(erden)i(n)m(ur)f (jene)f(Bl\366)s(c)m(k)m(e)h(k)m(opiert,)h(die)f(v)m(er\344ndert)g (wurden,)382 2687 y(w)m(\344hrend)31 b(die)e(V)-8 b(erbindung)31 b(zum)e(Knoten)h(mit)g(der)f(gespiegelten)i(F)-8 b(estplatte)30 b(un)m(ter-)382 2800 y(bro)s(c)m(hen)h(w)m(ar.)382 2957 y(Daf\374r)j(ist)g(es)f(not)m(w)m(endig,)38 b(genau)d(zu)f(wissen,)h(w) m(elc)m(he)h(Daten)m(bl\366)s(c)m(k)m(e)g(v)m(om)f(empfan-)382 3070 y(genden)k(Knoten)g(ordn)m(ungsgem\344\377)h(auf)e(die)g(F)-8 b(estplatte)39 b(gesc)m(hrieb)s(en)h(wurden.)64 b(In)382 3183 y(den)31 b(Protok)m(ollen)h(A)e(und)h(B)f(ist)g(ab)s(er)h(eine)g (solc)m(he)g(Benac)m(hric)m(h)m(tigung)k(nic)m(h)m(t)d(v)m(orge-)382 3296 y(sehen.)40 b(Daher)27 b(wird)h(ein)f(w)m(eiteres)h(P)m(ak)m(et)g (in)f(das)g(Protok)m(oll)i(aufgenommen.)41 b(Dieses)382 3409 y(P)m(ak)m(et)g(wird)e(v)m(om)h(sekund\344ren)g(Knoten)h(an)e(den) h(prim\344ren)g(gesendet,)j(w)m(enn)d(alle)382 3522 y(Daten)m(bl\366)s (c)m(k)m(e)c(einer)f(der)f(in)g(Absc)m(hnitt)h(3.3.1.1)g (eingef\374hrten)g(Menge)f(gesc)m(hrieb)s(en)382 3635 y(wurden.)41 b(Dieses)30 b(Best\344tigungspak)m(et)i(ist)f(in)f(allen)h (drei)g(Protok)m(ollen)h(v)m(orhanden.)382 3792 y(Bric)m(h)m(t)j(n)m (un)f(die)f(V)-8 b(erbindung)35 b(zwisc)m(hen)f(zw)m(ei)g(Knoten)h (zusammen,)f(wird)g(am)f(sen-)382 3905 y(denden)e(Knoten)f(angenommen,) i(da\377)e(alle)h(P)m(ak)m(ete,)g(die)f(in)g(no)s(c)m(h)g(nic)m(h)m(t)i (b)s(est\344tigten)382 4018 y(Mengen)37 b(en)m(thalten)i(sind,)f(no)s (c)m(h)g(nic)m(h)m(t)g(gesc)m(hrieb)s(en)g(wurden.)61 b(Diese)37 b(Bl\366)s(c)m(k)m(e)g(und)382 4131 y(alle)29 b(Bl\366)s(c)m(k)m(e,)h(die,)g(w)m(\344hrend)h(die)e(V)-8 b(erbindung)31 b(un)m(terbro)s(c)m(hen)g(ist,)e(gesc)m(hrieb)s(en)h(w)m (er-)382 4244 y(den,)h(w)m(erden)h(in)e(einem)h(Bitfeld)g(markiert.)382 4401 y(In)f(diesem)h(Bitfeld)g(en)m(tspric)m(h)m(t)i(jedes)d(Bit)h (einer)g(b)s(estimm)m(ten)h(Datenmenge,)g(die)f(in)382 4514 y(k)m(einer)g(\034xen)g(Bezieh)m(ung)h(zur)e(Blo)s(c)m (kgr\366\377e)i(auf)e(dem)h(Ger\344t)f(steh)m(t.)382 4672 y(W)-8 b(enn)39 b(die)f(K)m(omm)m(unik)-5 b(ation)41 b(wieder)e(hergestellt)h(ist,)g(l\344uft)e(die)g(Sync)m(hronisation)382 4785 y(parallel)g(zum)g(normalen)g(Betrieb.)61 b(Die)38 b(Bandbreite,)i(die)d(der)h(Sync)m(hronisations-)382 4898 y(proze\377)31 b(maximal)g(b)s(elegen)g(darf,)g(m)m(u\377)g(v)m (om)g(An)m(w)m(ender)h(k)m(on\034guriert)g(w)m(erden.)382 5055 y(Die)d(Daten)m(bl\366)s(c)m(k)m(e,)i(die)e(im)g(Zuge)h(der)f (Sync)m(hronisation)i(v)m(ersendet)e(w)m(erden,)i(stehen)382 5168 y(au\377erhalb)22 b(des)e(in)g(Absc)m(hnitt)i(3.3.1.1)f(b)s(esc)m (hrieb)s(enen)g(W)-8 b(rite-Barrier-Mec)m(hanism)m(us.)382 5281 y(F\374r)47 b(sie)g(wird)h(immer)h(eine)e(Sc)m(hreibb)s (est\344tigung)j(nac)m(h)f(Protok)m(oll)g(C)e(zur\374c)m(kge-)382 5394 y(sc)m(hic)m(kt.)61 b(Das)36 b(en)m(tsprec)m(hende)k(Bit)c(im)h (Bitfeld)h(wird)f(erst)g(dann)g(wieder)h(gel\366sc)m(h)m(t,)1831 5622 y(26)p eop %%Page: 27 29 27 28 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)641 b(3.4.)71 b(SYNCHR)m(ONISA)-8 b(TION)p 382 299 2989 4 v 382 539 a Fp(w)m(enn)37 b(f\374r)f(alle)h(Bl\366)s(c)m(k)m(e,)i(die)d (v)m(om)h(Bit)f(abgedec)m(kt)i(sind,)g(eine)f(Sc)m(hreibb)s (est\344tigung)382 652 y(v)m(orliegt.)h(Das)21 b(erm\366glic)m(h)m(t)i (die)e(F)-8 b(ortsetzung)23 b(eines)e(sc)m(hnellen)h(Sync)m (hronisationsv)m(or-)382 764 y(ganges)k(nac)m(h)i(einer)e(erneuten)i (Un)m(terbrec)m(h)m(ung)h(des)d(K)m(omm)m(unik)-5 b(ationsk)g(anals,)30 b(ohne)382 877 y(da\377)h(eine)f(Un)m(v)m(ollst\344ndigk)m(eit)j(der)e (Sync)m(hronisation)h(b)s(ef\374rc)m(h)m(tet)g(w)m(erden)g(m)m(u\377.) 382 1171 y Fo(3.4.2)112 b(Datensic)m(herheit)382 1392 y Fp(V)-8 b(or)36 b(der)h(Sync)m(hronisation)h(en)m(th\344lt)f(die)g (gespiegelte)g(F)-8 b(estplatte)37 b(einen)g(v)m(eralteten)382 1505 y(ab)s(er)23 b(k)m(onsisten)m(ten)i(Datenstand,)h(w)m(\344rend)e (der)g(Sync)m(hronisation)h(ist)e(ihr)h(Filesystem)382 1618 y(in)k(k)m(einem)h(k)m(onsisten)m(ten)h(Zustand.)41 b(F\344llt)28 b(n)m(un)h(w)m(\344hrend)h(der)f(Sync)m(hronisation)h (die)382 1731 y(F)-8 b(estplatte)36 b(des)f(Knotens)g(mit)g(dem)h (aktuellen)f(Datenstand)h(aus,)g(k)-5 b(ann)35 b(n)m(ur)h(mehr)382 1844 y(ein)j(Bac)m(kup)g(helfen,)i(denn)e(der)f(Zustand)h(auf)g(der)f (gespiegelten)i(F)-8 b(estplatte,)42 b(eine)382 1957 y(Misc)m(h)m(ung)30 b(aus)f(dem)h(v)m(eralteten)h(Zustand)f(und)f(dem)h (aktuellen)g(Zustand,)g(ist)f(nic)m(h)m(t)382 2069 y(brauc)m(h)m(bar.) 382 2232 y(W\344hrend)36 b(der)f(Sync)m(hronisation)h(bietet)g(ein)f (Cluster)g(aus)g(zw)m(ei)h(Knoten)g(k)m(eine)f(Si-)382 2345 y(c)m(herheit.)382 2508 y(Dieses)30 b(Problem)j(k)m(\366nn)m(te)f (durc)m(h)g(den)f(Einsatz)h(eines)f(Log-Structured-Filesystems)382 2621 y(gel\366st)k(w)m(erden.)57 b(Es)35 b(m)m(\374\377ten)h(der)g (Sync)m(hronisationsmec)m(hanism)m(us)j(und)c(das)g(File-)382 2734 y(system)30 b(eng)g(zusammenarb)s(eiten)j(und)d(z.B.)h(die)f(Sync) m(hronisation)j(als)d(eine)h(einzige)382 2847 y(T)-8 b(ransaktion)32 b(auf)e(dem)h(empfangenden)h(Knoten)f(durc)m (hf\374hren.)1831 5622 y(27)p eop %%Page: 28 30 28 29 bop 382 1211 a Fk(Kapitel)62 b(4)382 1676 y Fm(Lin)-6 b(ux)382 2171 y Fp(Dieses)31 b(Kapitel)i(gibt)g(einen)f(kleinen)h (\334b)s(erblic)m(k)f(\374b)s(er)g(Ger\344tetreib)s(er)h(un)m(ter)g (Lin)m(ux)382 2284 y(und)i(bildet)g(die)f(Grundlage)i(f\374r)e(die)h(w) m(eiterf\374hrenden)i(Kapitel.)53 b(Die)35 b(Informatio-)382 2397 y(nen)26 b(in)g(diesem)g(Kapitel)h(wurden)f(haupts\344c)m(hlic)m (h)j(dem)d(Quellco)s(de)h(des)e(Kernels)i(en)m(t-)382 2510 y(nommen.)39 b(Die)23 b(meisten)g(B\374c)m(her)h([Rus98][BBDK97)q (][Rub98)q(])f(und)g(Artik)m(el)g([Rub97)q(])382 2622 y(\374b)s(er)i(den)g(Lin)m(ux-Kernel)j(geb)s(en)d(zw)m(ar)h(einen)g (guten)f(\334b)s(erblic)m(k)h(\374b)s(er)f(den)g(gesam)m(ten)382 2735 y(Kernel,)31 b(jedo)s(c)m(h)g(k)m(eine)g(Details)g(\374b)s(er)f (den)h(Bu\033er-Cac)m(he.)382 3072 y Fj(4.1)130 b(GPL)382 3324 y Fp(Die)34 b(au\033allendste)g(Eigensc)m(haft)i(des)d(jetzt)h(so) f(p)s(opul\344ren)i(Betriebssystems)e(Lin)m(ux)382 3437 y(ist)k(seine)g(Lizenz,)j(die)d(Gn)m(u)h(General)f(Public)i(License.)61 b(Diese)37 b(Lizenz)h(erm\366glic)m(h)m(t)382 3550 y(einerseits)44 b(die)g(rasend)h(sc)m(hnelle)f(V)-8 b(erbreitung)46 b(des)e(Systems,)j (sic)m(hert)e(ab)s(er)e(auc)m(h)382 3663 y(dessen)30 b(W)-8 b(eiteren)m(t)m(wic)m(klung.)382 3826 y(Die)34 b(Lizenz)g(r\344um)m(t)h(dem)f(An)m(w)m(ender)i(das)d(Rec)m(h)m(t)i (ein,)g(die)f(b)s(etro\033ene)g(Soft)m(w)m(are)h(zu)382 3939 y(mo)s(di\034zieren.)56 b(Wird)35 b(Soft)m(w)m(are,)j(die)e(un)m (ter)g(den)f(Bestimm)m(ungen)j(der)d(GPL)h(steh)m(t,)382 4052 y(als)28 b(T)-8 b(eil)28 b(eines)g(gr\366\377eren)h(Pro)s(duktes)g (o)s(der)e(als)h(eigenst\344ndiges)h(Pro)s(dukt)f(in)g(bin\344rer)382 4164 y(F)-8 b(orm)39 b(w)m(eitergegeb)s(en,)j(m)m(u\377)c(dem)h (Empf\344nger)g(der)f(Soft)m(w)m(are)h(der)f(Quellco)s(de)h(zu-)382 4277 y(g\344nglic)m(h)32 b(gemac)m(h)m(t)h(w)m(erden.)42 b(Es)31 b(m)m(u\377)g(auc)m(h)h(der)e(Quellco)s(de)i(aller)f(V)-8 b(er\344nderungen,)382 4390 y(die)33 b(ev)m(en)m(tuell)h(an)f(dem)g (Pro)s(dukt)g(v)m(orgenommen)i(wurden,)f(an)f(den)g(Ben)m(utzer)h(w)m (ei-)382 4503 y(tergegeb)s(en)d(w)m(erden.)382 4839 y Fj(4.2)130 b(Ger\344tetreib)t(er)382 5092 y Fp(Zu)39 b(den)h(grundlegenden)h(Aufgab)s(en)e(eines)g(Betriebssystems)g (geh\366rt)h(es,)h(Zugri\033e)382 5205 y(auf)26 b(die)h(v)m (erf\374gbare)g(Hardw)m(are)h(in)f(geregelten)h(Bahnen)f(zu)f(erlaub)s (en.)40 b(Lin)m(ux)28 b(bietet)382 5318 y(hier)40 b(grunds\344tzlic)m (h)h(die)e(M\366glic)m(hk)m(eit)i(f\374r)f(zeic)m(henorien)m(tierte)j (Ger\344te)c(\(c)m(haracter)1831 5622 y(28)p eop %%Page: 29 31 29 30 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1095 b(4.2.)71 b(GER\304)-8 b(TETREIBER)p 382 301 2989 4 v 382 539 a Fp(devices\),)31 b(blo)s(c)m(k)m(orien)m(tierte)j(Ger\344te)e (\(blo)s(c)m(k)f(devices\))g(und)h(Netzw)m(erkk)-5 b(arten)m(treib)s (er)382 652 y(\(net)m(w)m(ork)32 b(driv)m(ers\).)382 813 y(Im)41 b(Filesystem)g(sind)g(die)g(Ger\344te)g(durc)m(h)i(sp)s (ezielle)e(Ein)m(tr\344ge)i(f\374r)e(An)m(w)m(enderpro-)382 926 y(gramme)d(sic)m(h)m(tbar.)60 b(Diese)37 b(Ein)m(tr\344ge)h(\(sp)s (ecial)f(\034les\))f(tragen)i(zw)m(ei)f(Nummern,)i(die)382 1038 y(f\374r)31 b(den)g(Kernel)h(Bedeutung)g(hab)s(en.)43 b(Die)31 b(erste)g(Nummer)h(iden)m(ti\034ziert)h(den)f(ange-)382 1151 y(spro)s(c)m(henen)d(T)-8 b(reib)s(er,)30 b(die)e(zw)m(eite)i(das) e(angespro)s(c)m(hene)i(Ger\344t)e(des)g(T)-8 b(reib)s(ers.)40 b(So)29 b(ist)382 1264 y(das)35 b(Ger\344t)h(/dev/hda4,)i(die)e(vierte) g(P)m(artition)h(des)f(ersten)f(IDE-Ger\344tes,)j(f\374r)d(den)382 1377 y(Kernel)c(durc)m(h)h(das)e(T)-8 b(up)s(el)31 b(\(3,4\))g(iden)m (ti\034ziert.)382 1538 y(Die)h(erste)g(der)g(b)s(eiden)h(Nummern)f (\(ma)5 b(jor)33 b(n)m(um)m(b)s(er\))g(wird)g(innerhalb)g(des)f (Kernels)382 1651 y(v)m(erw)m(endet,)k(um)e(die)f(Einsprungspunkte)i (des)f(T)-8 b(reib)s(ers)34 b(in)f(einem)h(statisc)m(hen)h(F)-8 b(eld)382 1764 y(zu)30 b(\034nden.)382 1925 y(Ob)m(w)m(ohl)c(der)e (Kernel)h(nic)m(h)m(t)h(in)e(einer)g(ob)5 b(jektorien)m(tierten)27 b(Programmiersprac)m(he)g(im-)382 2038 y(plemen)m(tiert)34 b(ist,)f(k)-5 b(ann)32 b(man)h(das)f(Design)h(der)f(T)-8 b(reib)s(er)33 b(ob)5 b(jektorien)m(tiert)35 b(b)s(esc)m(hrei-)382 2151 y(b)s(en:)633 2336 y(Das)29 b(VFS)989 2303 y Fg(1)1029 2336 y Fp(-In)m(terface)h(ist)g(die)g(abstrakte)g(Basisklasse)f(aller)h (T)-8 b(reib)s(er.)41 b(Da)m(v)m(on)633 2449 y(abgeleitet)26 b(sind)f(die)g(Sprungtab)s(ellen)i(der)f(einzelnen)g(T)-8 b(reib)s(er,)27 b(da)e(sie)g(die)g(ab-)633 2562 y(strakten)30 b(F)-8 b(unktionen)32 b(des)e(In)m(terfaces)g(mit)h(reellen)g (Prozeduren)h(f\374llen.)40 b(Bei)633 2675 y(der)f(Initialisierung)h (eines)f(T)-8 b(reib)s(ers)40 b(suc)m(h)m(t)g(dieser)f(nac)m(h)h(der)g (v)m(orhandenen)633 2788 y(Hardw)m(are)f(und)g(erzeugt)g(f\374r)f(jede) h(gefundene)g(Instanz)f(der)h(Hardw)m(are)g(ein)633 2901 y(Ob)5 b(jekt)30 b(des)g(T)-8 b(reib)s(ers.)382 3192 y Fo(4.2.1)112 b(Zeic)m(henorien)m(tierte)35 b(T)-9 b(reib)s(er)382 3412 y Fp(Das)30 b(VFS-In)m(terface,)h(ist)f(in)h(include/lin)m (ux/fs.h)h(folgenderma\377en)g(de\034niert:)609 3668 y Fc(struct)47 b(file_operations)g({)844 3781 y(loff_t)g(\(*llseek\))g (\(struct)f(file)h(*,)g(loff_t,)g(int\);)844 3893 y(ssize_t)g (\(*read\))g(\(struct)g(file)f(*,)h(char)g(*,)g(size_t,)g(loff_t)g (*\);)844 4006 y(ssize_t)g(\(*write\))g(\(struct)f(file)h(*,)g(const)g (char)g(*,)g(size_t,)1690 4119 y(loff_t)f(*\);)844 4232 y(int)h(\(*readdir\))g(\(struct)g(file)f(*,)h(void)g(*,)g(filldir_t\);) 844 4345 y(unsigned)g(int)g(\(*poll\))g(\(struct)f(file)h(*,)1878 4458 y(struct)f(poll_table_struct)h(*\);)844 4571 y(int)g(\(*ioctl\))g (\(struct)g(inode)f(*,)h(struct)g(file)g(*,)1502 4684 y(unsigned)g(int,)f(unsigned)h(long\);)844 4797 y(int)g(\(*mmap\))g (\(struct)g(file)f(*,)h(struct)g(vm_area_struct)g(*\);)844 4910 y(int)g(\(*open\))g(\(struct)g(inode)f(*,)h(struct)g(file)g(*\);) 844 5023 y(int)g(\(*flush\))g(\(struct)g(file)f(*\);)844 5135 y(int)h(\(*release\))g(\(struct)g(inode)f(*,)h(struct)g(file)g (*\);)844 5248 y(int)g(\(*fsync\))g(\(struct)g(file)f(*,)h(struct)g (dentry)g(*\);)p 382 5308 1196 4 v 486 5362 a Ff(1)520 5394 y Fe(Virtual)26 b(Filesystem)f(Switc)n(h)1831 5622 y Fp(29)p eop %%Page: 30 32 30 31 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1095 b(4.2.)71 b(GER\304)-8 b(TETREIBER)p 382 301 2989 4 v 844 539 a Fc(int)47 b(\(*fasync\))g(\(int,)g(struct)f(file)h(*,)g (int\);)844 652 y(int)g(\(*check_media_change\))f(\(kdev_t)h(dev\);)844 764 y(int)g(\(*revalidate\))g(\(kdev_t)f(dev\);)844 877 y(int)h(\(*lock\))g(\(struct)g(file)f(*,)h(int,)g(struct)g(file_lock)g (*\);)609 990 y(};)382 1253 y Fp(Zeic)m(henorien)m(tierte)39 b(T)-8 b(reib)s(er)35 b(k)m(\366nnen)h(op)s(en\(\),)g(release\(\),)h (read\(\),)g(write\(\),)g(io)s(ctl\(\),)382 1365 y(p)s(oll\(\),)31 b(llseek\(\),)f(mmap\(\))i(und)e(fasync\(\))h(implemen)m(tieren.)382 1628 y Fn(op)s(en\(\))46 b Fp(Wird)21 b(aufgerufen,)j(w)m(enn)e(ein)g (Programm)h(op)s(en\(2\))f(mit)f(dem)h(en)m(tsprec)m(hen-)609 1741 y(den)38 b(Ger\344teein)m(trag)h(im)f(Filesystem)f(aufruft.)61 b(V)-8 b(om)38 b(Kernel)g(wird)g(automa-)609 1854 y(tisc)m(h)c(eine)h (Instanz)e(v)m(om)h(T)m(yp)g(\034le)g(angelegt)h(und)f(mit)g(op)s (en\(\))g(dem)g(T)-8 b(reib)s(er)609 1967 y(\374b)s(ergeb)s(en.)47 b(W)-8 b(enn)33 b(der)f(T)-8 b(reib)s(er)34 b(ein)e(Ger\344t,)h(das)g (v)m(on)f(mehreren)i(Prozessen)609 2079 y(gleic)m(hzeitig)d (ge\366\033net)d(w)m(erden)i(k)-5 b(ann,)29 b(v)m(erw)m(altet,)i(so)c (hat)i(er)f(die)h(M\366glic)m(hk)m(eit,)609 2192 y(in)f(\034le->priv)-5 b(ate_data)30 b(einen)e(Zeiger)g(auf)f(den)h(eigenen)h(K)m(on)m(text)g (abzulegen,)609 2305 y(der)39 b(genau)g(dem)g(momen)m(tanen)i (Proze\377)f(und)f(dem)g(angespro)s(c)m(henen)h(Ger\344t)609 2418 y(zugeh\366rig)28 b(ist.)39 b(Handelt)27 b(es)g(sic)m(h)g(um)f (ein)h(Ger\344t,)h(das)f(v)m(on)g(n)m(ur)g(einem)g(Proze\377)609 2531 y(angesteuert)41 b(w)m(erden)h(k)-5 b(ann,)42 b(so)e(k)-5 b(ann)39 b(op)s(en\(\))i(mit)f(einem)h(en)m(tsprec)m(henden)609 2644 y(errno-Co)s(de)32 b(b)s(eendet)f(w)m(erden.)382 2832 y Fn(release\(\))47 b Fp(En)m(tspric)m(h)m(t)31 b(dem)e(close\(2\))f(im)g(K)m(on)m(text)i(eines)e(An)m(w)m (enderprogrammes.)382 3019 y Fn(read\(\))46 b Fp(K)m(opiert)32 b(Daten)f(v)m(om)g(Ger\344t)g(in)f(den)h(A)m(dre\377raum)h(des)e (Prozesses.)382 3207 y Fn(write\(\))46 b Fp(Sendet)32 b(Daten)f(v)m(om)f(A)m(dre\377raum)i(des)f(Prozesses)f(zum)h(Ger\344t.) 382 3395 y Fn(mmap\(\))45 b Fp(Mit)29 b(dieser)g(F)-8 b(unktion)29 b(k)-5 b(ann)29 b(der)g(Proze\377)h(eine)f(Repr\344sen)m (tation)h(des)e(Ge-)609 3507 y(r\344tes)36 b(in)g(seinen)g(A)m (dre\377raum)i(ein)m(blenden.)59 b(Dies)35 b(wird)i(z.B.)f(b)s(ei)f (den)i(neuen)609 3620 y(Graphiktreib)s(ern)32 b(v)m(on)f(Lin)m(ux)g (2.2.x)f(gen)m(utzt,)i(um)f(dem)g(Proze\377)g(den)g(F)-8 b(rame-)609 3733 y(bu\033er)38 b(direkt)h(zug\344nglic)m(h)g(zu)f(mac)m (hen.)65 b(Dab)s(ei)38 b(k)-5 b(ann)38 b(allerdings)h(\374b)s(er)f(das) 609 3846 y(ph)m(ysisc)m(he)23 b(F)-8 b(ormat)24 b(der)e(graphisc)m(hen) i(Daten)f(nic)m(h)m(t)h(abstrahiert)g(w)m(erden.)39 b(Das)609 3959 y(VM-Subsystem)46 b(des)h(Kernels)f(bietet)i(f\374r)e(die)g (Implemen)m(tierung)j(den)e(re-)609 4072 y(map_page_range\(\))34 b(Aufruf.)609 4185 y(Die)26 b(neuen)h(Soundtreib)s(er)h(hingegen)f (bieten)g(\374b)s(er)f(mmap\(\))h(die)g(M\366glic)m(hk)m(eit,)609 4298 y(einen)h(Pu\033er)g(mit)f(dem)h(Proze\377)g(zu)f(teilen,)i(so)s (da\377)e(das)g(aufw)m(endige)i(K)m(opieren)609 4411 y(der)i(Daten)g(b)s(ei)f(read\(\))h(o)s(der)g(write\(\))g(en)m(tfallen) h(k)-5 b(ann.)609 4524 y(Um)39 b(ph)m(ysisc)m(hen)h(Sp)s(eic)m(her)h (in)e(den)h(A)m(dre\377raum)h(des)e(Prozesses)g(einzublen-)609 4637 y(den,)e(gibt)e(es)g(leider)h(k)m(eine)g(ma\377gesc)m(hneiderte)h (F)-8 b(unktion.)56 b(Es)35 b(ist)g(en)m(t)m(w)m(eder)609 4749 y(m\366glic)m(h,)k(mit)d(Hilfe)f(der)i(VM-Primitiv)m(e)g(die)f(en) m(tsprec)m(henden)i(P)m(age-T)-8 b(able-)609 4862 y(Ein)m(tr\344ge)41 b(selbst)e(zu)g(erzeugen,)j(o)s(der)d(ein)g(eigenes)g(VM)g(Ob)5 b(jekt)38 b(mit)i(einem)609 4975 y(eigenen)32 b(vm_ops->nopage\(\))g (Handler)f(zu)g(erzeugen.)382 5163 y Fn(p)s(oll\(\))45 b Fp(Mu\377)29 b(implemen)m(tiert)j(w)m(erden,)f(um)e(Aufrufe)g(v)m(on) g(p)s(oll\(2\))g(und)h(select\(2\))f(zu)609 5276 y(erm\366glic)m(hen.) 43 b(Diese)30 b(Prozedur)i(m)m(u\377)g(folgende)f(Seman)m(tik)g(hab)s (en:)1831 5622 y(30)p eop %%Page: 31 33 31 32 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1095 b(4.2.)71 b(GER\304)-8 b(TETREIBER)p 382 301 2989 4 v 609 539 a Fp(Daten)31 b(v)m(orhanden)359 b(Gibt)25 b(die)h (zutre\033enden)g(Ereignisse)g(im)f(R\374c)m(kga-)1648 652 y(b)s(ew)m(ert)32 b(zur\374c)m(k.)609 798 y(k)m(eine)f(Daten)g(v)m (orhanden)128 b(L\344\377t)42 b(den)f(Proze\377)h(mit)f(p)s(oll_w)m (ait\(\))i(sc)m(hlafen,)1648 911 y(bis)g(Daten)g(v)m(orhanden)i(sind,)h (und)d(gibt)g(0)g(zu-)1648 1023 y(r\374c)m(k.)382 1236 y Fn(io)s(ctl\(\))j Fp(Mit)26 b(Hilfe)f(dieser)h(F)-8 b(unktion)27 b(k)m(\366nnen)g(Metadaten)g(zwisc)m(hen)g(einem)f (Proze\377)609 1349 y(und)c(dem)g(Ger\344tetreib)s(er)h(ausgetausc)m(h) m(t)h(w)m(erden.)39 b(W\344hrend)23 b(z.B.)e(ein)h(T)-8 b(reib)s(er)609 1462 y(f\374r)32 b(die)g(serielle)h(Sc)m(hnittstelle)g (mit)g(read\(2\))g(und)f(write\(2\))h(den)f(Datenstrom)609 1575 y(zug\344nglic)m(h)44 b(mac)m(h)m(t,)j(k)-5 b(ann)42 b(der)h(Proze\377)g(\374b)s(er)f(den)g(io)s(ctl\(2\))h(Systemruf)f(die) 609 1688 y(Baudrate,)32 b(die)e(Anzahl)h(der)g(Daten)m(bits,)h(etc.)40 b(einstellen.)382 1950 y(Mit)29 b(Hilfe)f(dieses)h(In)m(terfaces)g(k)m (\366nnen)h(T)-8 b(reib)s(er)29 b(f\374r)g(zeic)m(henorien)m(tiere)j (Ger\344te)e(k)m(om-)382 2063 y(plett)36 b(gek)-5 b(apselt)35 b(w)m(erden.)56 b(Es)35 b(ist)f(daher)i(auc)m(h)g(mit)g(geringem)g (Aufw)m(and)g(m\366glic)m(h,)382 2176 y(sie)d(zu)h(mo)s(dularisieren.) 52 b(Diese)34 b(Mo)s(dule)g(k)m(\366nnen)h(zur)f(Laufzeit)g(des)g (Kernels)g(nac)m(h)382 2289 y(Belieb)s(en)d(nac)m(hgeladen)i(und)d(en)m (tfern)m(t)i(w)m(erden.)382 2582 y Fo(4.2.2)112 b(Blo)s(c)m(k)m(orien)m (tierte)34 b(Ger\344te)382 2803 y Fp(Das)i(VFS-In)m(terface)i(wird)f (nic)m(h)m(t)h(n)m(ur)f(f\374r)g(zeic)m(henorien)m(tierte)j(Ger\344te)d (v)m(erw)m(endet,)382 2916 y(sondern)h(auc)m(h)h(f\374r)f(blo)s(c)m(k)m (orien)m(tierte)j(Ger\344te)d(und)h(alle)f(anderen)h(Ob)5 b(jekte,)40 b(die)e(in)382 3029 y(einem)44 b(Filesystem)f(abgelegt)h(w) m(erden)g(k)m(\366nnen)g(\(FIF)m(Os,)j(Unix-Domain-So)s(c)m(k)m(ets,) 382 3142 y(Files\).)57 b(Es)35 b(w)m(\344re)i(theoretisc)m(h)h (m\366glic)m(h,)h(ein)d(blo)s(c)m(k)m(orien)m(tiertes)i(Ger\344t)e (aufbauend)382 3255 y(auf)e(das)h(VFS-In)m(terface)h(zu)f(implemen)m (tieren)i(und)f(dab)s(ei)f(die)g(read\(\))g(und)g(write\(\))382 3368 y(F)-8 b(unktionen)48 b(zu)f(implemen)m(tieren.)92 b(Dieses)46 b(Ger\344t)h(w)m(\344re)h(allerdings)f(f\374r)g(Filesy-)382 3481 y(steme)d(un)m(brauc)m(h)m(bar,)50 b(da)43 b(diese)h(den)g (Bu\033er-Cac)m(he)h(ansprec)m(hen)g(und)f(nic)m(h)m(t)h(das)382 3594 y(VFS-In)m(terface)35 b(des)g(Ger\344tes)g(v)m(erw)m(enden.)55 b(Die)34 b(k)m(orrekte)i(V)-8 b(organgsw)m(eise)36 b(b)s(esteh)m(t)382 3707 y(darin,)e(b)s(ei)f(read\(\))h(und)f(write\(\))h(die)f(generisc)m (hen)i(F)-8 b(unktionen)35 b(blo)s(c)m(k_read\(\))f(und)382 3820 y(blo)s(c)m(k_write\(\))27 b(anzugeb)s(en.)40 b(Diese)25 b(F)-8 b(unktionen)26 b(\374b)s(ertragen)g(die)g(Daten)f(v)m(om)h(bzw.) 382 3932 y(in)k(den)h(Bu\033er-Cac)m(he.)382 4222 y Fn(4.2.2.1)103 b(Bu\033er-Cac)m(he)382 4444 y Fp(Es)40 b(gibt)g(eine)h(ganze)f(Reihe)g (v)m(on)g(Cac)m(hes)h(un)m(ter)g(Lin)m(ux,)j(do)s(c)m(h)c(der)h (Bu\033er-Cac)m(he)382 4557 y(ist)27 b(mit)h(blo)s(c)m(k)m(orien)m (tierten)j(Ger\344ten)d(un)m(w)m(eigerlic)m(h)j(v)m(erbunden.)41 b(Der)28 b(Bu\033er-Cac)m(he)382 4670 y(v)m(erw)m(altet)k(Daten)m (bl\366)s(c)m(k)m(e)h(blo)s(c)m(k)m(orien)m(tierter)g(Ger\344te)e(w)m (\344hrend)i(sie)d(im)g(Sp)s(eic)m(her)i(lie-)382 4782 y(gen.)61 b(Jedem)39 b(dieser)e(Daten)m(bl\366)s(c)m(k)m(e)i(ist)e (eine)h(Instanz)f(v)m(om)h(T)m(yp)g(bu\033er_head)g(zu-)382 4895 y(geordnet,)j(die)d(alle)g(Metadaten)h(zu)f(dem)g(Daten)m(blo)s(c) m(k)h(en)m(th\344lt.)64 b(Die)38 b(wic)m(h)m(tigsten)382 5008 y(F)-8 b(elder)31 b(v)m(on)g(bu\033er_head:)609 5271 y Fc(...)609 5384 y(unsigned)47 b(long)g(b_blocknr;)g(/*)g(block)f (number)h(*/)1831 5622 y Fp(31)p eop %%Page: 32 34 32 33 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1095 b(4.2.)71 b(GER\304)-8 b(TETREIBER)p 382 301 2989 4 v 609 539 a Fc(unsigned)47 b(long)g(b_size;)188 b(/*)47 b(block)f(size)h(*/)609 652 y(kdev_t)g(b_dev;)564 b(/*)47 b(device)f(\(B_FREE)h(=)g(free\))g(*/)609 764 y(unsigned)g(long)g (b_state;)141 b(/*)47 b(buffer)f(state)h(bitmap)g(\(see)g(above\))g(*/) 609 877 y(unsigned)g(int)g(b_count;)188 b(/*)47 b(users)f(using)h(this) g(block)g(*/)609 990 y(void)g(\(*b_end_io\)\(struct)g(buffer_head)f (*bh,)h(int)g(uptodate\);)609 1103 y(void)g(*b_dev_id;)609 1216 y(...)382 1465 y Fn(b_blo)s(c)m(knr)d Fp(Die)30 b(P)m(osition)i(des)e(Blo)s(c)m(k)m(es)h(auf)f(dem)h(Ger\344t.)382 1650 y Fn(b_size)45 b Fp(Die)f(Gr\366\377e)g(des)f(Blo)s(c)m(k)m(es)h (in)g(Bytes.)80 b(Alle)43 b(Bl\366)s(c)m(k)m(e)h(eines)g(Ger\344tes,)j (die)609 1763 y(zu)39 b(einem)h(Zeitpunkt)h(im)e(Sp)s(eic)m(her)h (sind,)i(hab)s(en)d(die)h(gleic)m(he)g(Gr\366\377e.)67 b(Die)609 1876 y(Blo)s(c)m(kgr\366\377e)39 b(eines)e(Ger\344tes)h(k)-5 b(ann)38 b(zur)g(Laufzeit)g(ge\344ndert)h(w)m(erden.)63 b(Dab)s(ei)609 1989 y(w)m(erden)27 b(alle)f(Bl\366)s(c)m(k)m(e)g(mit)g (der)f(alten)i(Gr\366\377e)e(aus)h(dem)g(Bu\033er-Cac)m(he)h(en)m (tfern)m(t.)382 2173 y Fn(b_dev)45 b Fp(Das)30 b(Ger\344t,)h(zu)f(dem)h (dieser)g(Blo)s(c)m(k)f(geh\366rt.)382 2357 y Fn(b_coun)m(t)45 b Fp(Referenzz\344hler)31 b(dieses)f(Blo)s(c)m(k)m(es.)382 2542 y Fn(b_state)47 b Fp(Die)30 b(wic)m(h)m(tigsten)j(Zust\344nde)e (eines)f(Blo)s(c)m(k)m(es:)609 2749 y(dirt)m(y)267 b(Der)26 b(Blo)s(c)m(k)g(wurde)g(v)m(er\344ndert)i(und)e(m)m(u\377)g(auf)g(das)f (Ger\344t)h(zur\374c)m(k-)1066 2862 y(gesc)m(hrieb)s(en)32 b(w)m(erden.)609 3005 y(upto)s(date)104 b(Der)37 b(Blo)s(c)m(k)g(wurde) g(gelesen)g(o)s(der)f(gesc)m(hrieb)s(en)i(und)f(en)m(tspric)m(h)m(t) 1066 3118 y(somit)31 b(dem)g(Blo)s(c)m(k)f(des)g(Ger\344tes.)609 3261 y(lo)s(c)m(k)m(ed)212 b(Die)33 b(Daten)m(\374b)s(ertragung)i(v)m (om)e(o)s(der)f(zum)h(Ger\344t)f(\034ndet)h(derzeit)1066 3374 y(statt.)382 3582 y Fn(b_end_io)44 b Fp(Diese)g(F)-8 b(unktion)45 b(wird)f(nac)m(h)h(dem)f(Absc)m(hlu\377)h(einer)f(IO-Op)s (eration)609 3694 y(aufgerufen.)382 3879 y Fn(b_dev_id)g Fp(Dieser)31 b(Zeiger)g(wird)g(der)f(b_end_io)i(F)-8 b(unktion)32 b(\374b)s(ergeb)s(en.)382 4128 y(Die)c(Aufgab)s(e)h(des)f (Bu\033er-Cac)m(hes)i(ist)e(es,)g(die)h(Zugri\033e)g(auf)g(das)f (Ger\344t)h(zu)f(optimie-)382 4241 y(ren)22 b(und)g(den)f(darauf)h (aufsetzenden)h(Dateisystemen)f(eine)g(einfac)m(h)g(zu)g(handhab)s (ende)382 4354 y(V)-8 b(erw)m(altung)38 b(der)e(Pu\033ersp)s(eic)m(her) h(zur)f(V)-8 b(erf\374gung)37 b(zu)f(stellen.)57 b(Der)36 b(Bu\033er-Cac)m(he)382 4467 y(w)m(\344c)m(hst,)25 b(w)m(enn)e(gen)m (ug)g(freier)f(Sp)s(eic)m(her)h(v)m(orhanden)g(ist)f(und)g(IO-Op)s (erationen)h(durc)m(h-)382 4580 y(gef\374hrt)33 b(w)m(erden.)47 b(Wird)32 b(der)g(ph)m(ysisc)m(he)h(Sp)s(eic)m(her)h(knapp,)f(dann)f (wird)h(der)f(Bu\033er-)382 4693 y(Cac)m(he)37 b(v)m(erkleinert,)h (indem)e(Bl\366)s(c)m(k)m(e,)i(die)e(w)m(eder)h(v)m(er\344ndert)g (wurden)f(\(dirt)m(y\))h(no)s(c)m(h)382 4806 y(referenziert)26 b(sind,)h(v)m(erw)m(orfen)f(w)m(erden.)40 b(Dateisysteme)26 b(v)m(erw)m(enden)h(un)m(ter)f(anderem)382 4919 y(die)31 b(folgenden)g(Prozeduren)h(des)e(Bu\033er-Cac)m(hes:)382 5168 y Fn(getblk\(\))46 b Fp(Liefert)25 b(einen)f(bu\033er_head.)40 b(W)-8 b(enn)24 b(der)g(Blo)s(c)m(k)g(sc)m(hon)g(im)g(Bu\033er-Cac)m (he)609 5281 y(w)m(ar,)31 b(wird)g(der)g(Referenzz\344hler)g(erh\366h)m (t,)g(w)m(enn)h(nic)m(h)m(t,)g(b)s(ek)m(omm)m(t)f(man)g(einen)609 5394 y(neuen,)g(der)g(auf)f(einen)h(uninitialisierten)i(Blo)s(c)m(k)d (zeigt.)1831 5622 y(32)p eop %%Page: 33 35 33 34 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1095 b(4.2.)71 b(GER\304)-8 b(TETREIBER)p 382 301 2989 4 v 382 539 a Fn(brelse\(\))46 b Fp(Gibt)28 b(einen)h(Blo)s(c)m(k)e(frei.) 40 b(F)-8 b(alls)28 b(der)g(Blo)s(c)m(k)g(nic)m(h)m(t)h(mehr)g (referenziert)g(wird)609 652 y(und)43 b(er)f(v)m(er\344ndert)i(wurde,)i (wird)d(der)f(Zeitpunkt)h(festgelegt,)j(zu)c(dem)h(der)609 764 y(Blo)s(c)m(k)31 b(auf)f(das)g(Ger\344t)h(zur\374c)m(kgesc)m(hrieb) s(en)h(wird.)382 944 y Fn(ll_rw_blo)s(c)m(k\(\))44 b Fp(F\374hrt)38 b(eine)f(IO-Op)s(eration)h(\(Lesen)g(o)s(der)f(Sc)m (hreib)s(en\))h(auf)f(den)609 1057 y(angegeb)s(enen)28 b(Bl\366)s(c)m(k)m(en)f(aus.)39 b(Diese)26 b(F)-8 b(unktion)27 b(k)m(ehrt)f(v)m(or)h(dem)f(Absc)m(hlu\377)h(der)609 1170 y(Op)s(eration)32 b(zur\374c)m(k.)382 1350 y Fn(w)m (ait_on_bu\033er\(\))45 b Fp(W)-8 b(artet)31 b(auf)g(den)f(Absc)m (hlu\377)i(einer)f(IO-Op)s(eration.)382 1628 y Fn(4.2.2.2)103 b(Request-Queue)382 1841 y Fp(Die)35 b(Request-Queue)h(ist)f(ein)g(F)-8 b(eld)36 b(statisc)m(her)g(Gr\366\377e,)h(in)e(das)g(ll_rw_blo)s(c)m (k\(\))i(die)382 1954 y(IO-Auftr\344ge)28 b(ein)m(tr\344gt.)41 b(Beim)27 b(Ein)m(tragen)j(w)m(erden)f(die)e(Auftr\344ge)h(so)f (geordnet,)i(da\377)382 2067 y(die)42 b(Bew)m(egungen)h(des)f(Sc)m (hreib-/Lesek)m(opfes)h(der)f(F)-8 b(estplatte)43 b(optimiert)g(w)m (erden.)382 2180 y(Zur)36 b(Zeit)h(wird)f(der)g(sogenann)m(te)i(Elev)-5 b(ator-Algorithm)m(us)38 b(implemen)m(tiert.)60 b(F)-8 b(r\374her)382 2293 y(wurden)39 b(Leseop)s(erationen)i(gegen)m(\374b)s (er)f(Sc)m(hreib)s(op)s(erationen)h(b)s(ev)m(orzugt,)h(do)s(c)m(h)d(es) 382 2406 y(hat)h(sic)m(h)h(herausgestellt,)j(da\377)d(dadurc)m(h)h(die) e(Gesam)m(tleistung)i(des)e(Systems)g(her-)382 2519 y(abgesetzt)g (wurde.)67 b(Jetzt)41 b(w)m(erden)f(Sc)m(hreib-)h(und)e(Leseop)s (erationen)i(mit)f(gleic)m(her)382 2631 y(Priorit\344t)35 b(b)s(ehandelt,)i(die)d(Sc)m(hreib)s(op)s(erationen)j(d\374rfen)d (allerdings)h(n)m(ur)g(66)f(\045)g(der)382 2744 y(Request-Queue)g (ausf\374llen.)52 b(Das)34 b(letzte)h(Drittel)f(k)-5 b(ann)34 b(n)m(ur)h(v)m(on)g(Leseop)s(erationen)382 2857 y(b)s(elegt)c(w)m(erden.)382 3012 y(Die)i(Auftr\344ge,)h(die)g(einen)f (Ger\344tetreib)s(er)i(b)s(etre\033en,)f(w)m(erden)h(durc)m(h)f(Zeiger) g(zu)f(ei-)382 3125 y(ner)j(Liste)h(v)m(erk)m(ettet,)i(und)d(die)h (Abarb)s(eitung)g(dieser)f(Liste)h(wird)f(durc)m(h)h(den)g(Auf-)382 3238 y(ruf)k(der)g(do_request\(\))h(Prozedur)g(des)f(T)-8 b(reib)s(ers)42 b(gestartet.)73 b(Die)41 b(Zeiger)g(auf)g(die)382 3351 y(do_request\(\))g(Prozeduren)h(sind)d(in)h(einem)h(globalen)g(F) -8 b(eld)41 b(abgelegt,)i(die)d(ma)5 b(jor)382 3464 y(n)m(um)m(b)s(er) 32 b(der)f(T)-8 b(reib)s(er)31 b(gibt)g(die)f(P)m(osition)i(im)f(F)-8 b(eld)31 b(an.)382 3618 y(Do)s(c)m(h)23 b(leider)h(wurden)g(b)s(ei)e (der)h(Implemen)m(tierung)j(der)d(Request-Queue)h(die)f(K)m(onzep-)382 3731 y(te)32 b(nic)m(h)m(t)i(so)d(deutlic)m(h)j(getrenn)m(t)g(wie)e(in) g(anderen)h(Bereic)m(hen)h(des)e(Kernels.)46 b(So)32 b(gibt)382 3844 y(es)i(eine)h(Unzahl)g(sp)s(ezieller)f(Eigenheiten)j (in)d(den)h(einzelnen)h(T)-8 b(reib)s(ern,)37 b(die)e(sic)m(h)f(in)382 3957 y(der)26 b(einen)h(o)s(der)f(anderen)h(F)-8 b(orm)27 b(im)f(Quellco)s(de)h(der)f(Request-Queue)g(wieder\034nden,)382 4070 y(die,)j(w\374rde)f(man)g(den)h(Co)s(de)f(der)g(T)-8 b(reib)s(er)28 b(streng)h(v)m(on)f(den)g(allgemeinen)i(T)-8 b(eilen)29 b(des)382 4183 y(Kernels)i(trennen,)g(dort)g(nic)m(h)m(ts)h (v)m(erloren)g(h\344tten.)382 4338 y(Mit)37 b(Lin)m(ux)i(2.3.38)f(wird) g(diese)g(Situation)h(n)m(un)f(deutlic)m(h)i(v)m(erb)s(essert.)62 b(Es)37 b(ist)h(n)m(un)382 4451 y(m\366glic)m(h,)h(die)e (IO-Auftr\344ge)g(eines)f(Ger\344tes)h(in)f(einer)h(eigenen)g (Request-Queue)g(zu)382 4563 y(v)m(erw)m(alten.)k(Diese)28 b(ger\344tesp)s(ezi\034sc)m(he)h(Request-Queue)f(ist)f(in)g(einer)h (Datenstruktur)382 4676 y(abgelegt,)36 b(die)e(auc)m(h)h(6)f(Zeiger)g (auf)g(Prozeduren)i(en)m(th\344lt,)g(die)e(die)g(V)-8 b(erw)m(altung)36 b(der)382 4789 y(IO-Auftr\344ge)31 b(in)f(der)h(Request-Queue)g(steuern.)382 5067 y Fn(4.2.2.3)103 b(Blo)s(c)m(kn)m(ummern)382 5281 y Fp(Der)35 b(Bu\033er-Cac)m(he)i (iden)m(ti\034ziert)h(die)e(v)m(on)f(ihm)h(v)m(erw)m(alteten)i(Bl\366)s (c)m(k)m(e)e(durc)m(h)g(Num-)382 5394 y(mern.)62 b(W)-8 b(elc)m(he)38 b(Daten)g(w)m(elc)m(her)h(Nummer)f(zugeordnet)h(w)m (erden,)i(wird)d(durc)m(h)g(die)1831 5622 y(33)p eop %%Page: 34 36 34 35 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)764 b(4.3.)71 b(P)-8 b(ARALLELA)m(USF\334HR)m(UNG)p 382 301 2989 4 v 382 539 a Fp(momen)m(tane)29 b(Blo)s(c)m(kgr\366\377e)f (festgelegt.)40 b(Diese)27 b(Blo)s(c)m(kgr\366\377e)g(k)-5 b(ann)27 b(jederzeit)h(ge\344ndert)382 652 y(w)m(erden.)78 b(Bei)42 b(Dateisystemen)h(z.B.)f(ist)g(es)g(b)s(eliebt,)k(den)c(Sup)s (erblo)s(c)m(k)h(mit)g(einer)382 764 y(Blo)s(c)m(kgr\366\377e)31 b(v)m(on)f(1K)g(zu)g(sc)m(hreib)s(en,)h(w)m(\344hrend)h(auf)e(alle)g (anderen)h(Bl\366)s(c)m(k)m(e)g(mit)f(einer)382 877 y(Blo)s(c)m (kgr\366\377e)h(v)m(on)g(4K)g(zugegri\033en)g(wird.)382 1024 y(Jedesmal,)36 b(w)m(enn)f(die)f(Blo)s(c)m(kgr\366\377e)h (ge\344ndert)g(wird,)h(m)m(\374ssen)e(alle)g(Bl\366)s(c)m(k)m(e,)i(die) e(mo-)382 1137 y(men)m(tan)25 b(im)e(Bu\033er-Cac)m(he)i(sind,)g(aus)e (dem)h(Bu\033er-Cac)m(he)h(en)m(tfern)m(t)f(w)m(erden,)j(da)c(sic)m(h) 382 1249 y(die)31 b(Bedeutung)g(der)g(Blo)s(c)m(kn)m(ummern)h (\344ndert.)382 1396 y(In)21 b(den)h(IO-Requests,)h(die)f(die)g (do_request\(\))h(Prozeduren)g(der)g(T)-8 b(reib)s(er)22 b(b)s(ek)m(ommen,)382 1509 y(w)m(erden)30 b(die)f(Daten)h(als)e (Sektoren)i(adressiert,)g(w)m(ob)s(ei)f(jeder)g(Sektor)g(512)h(Bytes)e (hat.)382 1655 y(W)-8 b(enn)42 b(jedo)s(c)m(h)f(die)g(Gr\366\377e)g (eines)g(Ger\344tes)h(angegeb)s(en)g(wird,)i(w)m(erden)e(1K-Bl\366)s(c) m(k)m(e)382 1768 y(v)m(erw)m(endet.)805 2464 y @beginspecial 4 @llx 716 @lly 261 @urx 786 @ury 2570 @rwi @setspecial %%BeginDocument: /home/philipp/diplomarbeit//blk_sizes.ps %!PS-Adobe-3.0 EPSF-3.0 %%For: Philipp Reisner %%CreationDate: Thu May 11 14:42:19 2000 %%Title: blk_sizes.ps %%Creator: Sketch 0.6.5 %%Pages: 1 %%BoundingBox: 4 716 261 786 %%Extensions: CMYK %%DocumentSuppliedResources: (atend) %%DocumentNeededResources: font Times-Roman %%EndComments %%BeginProlog %%BeginResource: procset Linux-Sketch-Procset 1.0 2 /SketchDict 100 dict def SketchDict begin /bd { bind def } bind def /x { exch } bd /xd { exch def } bd /PI 3.14159265358979323846264338327 def /radgrad { 180 mul PI div } bd /skstartmatrix matrix currentmatrix def /tmpmat matrix def /ISOLatin1Encoding dup where { pop pop } { [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def } ifelse /arct dup where {pop pop} { /arct {arcto pop pop pop pop} bd } ifelse /size 0 def /fontname 0 def /newfont 0 def /sf { /size xd /fontname xd fontname findfont dup /Encoding get StandardEncoding eq { dup length dict /newfont xd { 1 index /FID ne { newfont 3 1 roll put } { pop pop } ifelse } forall newfont /Encoding ISOLatin1Encoding put fontname newfont definefont } if size scalefont setfont } bd /pusht {matrix currentmatrix} bd /popt {setmatrix} bd /pushc {gsave} bd /popc {grestore} bd /rgb {setrgbcolor} bd /w { setlinewidth } bd /j { setlinejoin } bd /J { setlinecap } bd /d { setdash } bd /F { eofill } bd /f { closepath F } bd /S { pusht skstartmatrix setmatrix stroke popt } bd /s { closepath S } bd /m { moveto } bd /l { lineto } bd /c { curveto } bd /txt { /tmpmat tmpmat currentmatrix def dup type /arraytype eq {concat} {translate} ifelse 0 0 m tmpmat } bd /T {txt x show popt} bd /P {txt x true charpath popt} bd /TP {txt x dup show 0 0 m true charpath popt} bd /C {newpath 0 360 arc} bd /R { 2 copy m x 2 index l x 2 index x l l closepath } bd /ellipse { dup type /arraytype eq { pusht x concat 0 0 1.0 C popt } { pusht 5 1 roll 4 -1 roll concat newpath dup 2 eq { 0 0 m } if 3 1 roll radgrad x radgrad x 0 0 1 5 -2 roll arc 0 ne { closepath } if popt } ifelse } bd /radius1 0 def /radius2 0 def /factor 0 def /rect { dup type /arraytype eq { pusht x concat 0 0 m 1 0 l 1 1 l 0 1 l closepath popt } { /radius2 xd /radius1 xd pusht x concat radius1 radius2 div 1 scale 0 radius2 m 0 1 radius2 1 radius2 arct radius2 radius1 div dup 1 1 index 0 radius2 arct 0 0 0 radius2 arct 0 0 0 1 radius2 arct closepath popt } ifelse } bd /buf 0 def /width 0 def /height 0 def /skcimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width 3 mul string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind false 3 colorimage tmpmat setmatrix } bd /skgimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind image tmpmat setmatrix } bd /rclip { 4 2 roll m dup 0 x rlineto x 0 rlineto neg 0 x rlineto closepath clip } bd /skeps { 10 dict begin /sk_state save def concat 3 index neg 3 index neg translate rclip 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /sk_dict_count countdictstack def /sk_count count 1 sub def userdict begin /showpage { } def /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bd /skepsend { count sk_count sub { pop } repeat countdictstack sk_dict_count sub { end } repeat sk_state restore end } bd /gradidx 0 def /gradient { 3 mul array /gradidx 0 def } bd /$ { 3 index gradidx 5 -1 roll put 2 index gradidx 1 add 4 -1 roll put 1 index gradidx 2 add 3 -1 roll put /gradidx gradidx 3 add def } bd /! { 3 { dup dup gradidx dup 3 1 roll 3 sub get put /gradidx gradidx 1 add def } repeat } bd /gradcolor { 3 mul dup 2 add 1 exch % idx 1 idx+2 { 1 index exch % array array i get % array component exch % component array } for 4 1 roll } bd /x0 0 def /y0 0 def /x1 0 def /y1 0 def /left 0 def /right 0 def /top 0 def /bottom 0 def /numcolors 0 def /axial { /y1 xd /x1 xd /y0 xd /x0 xd dup length 3 idiv /numcolors xd pusht exch % ctm array x0 x1 ne y0 y1 ne or { x0 y0 translate [x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath 0 gradcolor rgb clippath f 0 1 numcolors 1 sub { dup numcolors div 3 1 roll gradcolor rgb exch bottom right top R f } for } if pop popt } bd /r0 0 def /r1 0 def /dr 0 def /radial { /r1 xd /r0 xd /y0 xd /x0 xd /dr r1 r0 sub def dup length 3 idiv /numcolors xd pusht exch % ctm array r0 r1 ne { x0 y0 translate clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb clippath f dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse { dup numcolors div dr mul r0 add 3 1 roll gradcolor rgb exch 0 0 3 -1 roll C f } for } if pop popt } bd /max { 2 copy lt {exch} if pop } bd /conical { pusht 5 1 roll 3 1 roll /y0 xd /x0 xd x0 y0 translate radgrad rotate dup length 3 idiv /numcolors xd clippath flattenpath pathbbox newpath 4 { abs 4 1 roll} repeat 3 { max } repeat 2 mul dup scale 0 gradcolor rgb 0 0 1 0 360 arc f 1 1 numcolors 1 sub { dup numcolors div 180 mul 3 1 roll gradcolor rgb exch 0 0 moveto 0 0 1 4 -1 roll dup neg arc closepath f } for pop popt } bd /XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def /tileimage2 { exch 4 2 roll /height xd /width xd mark /components 2 index /PatternType 1 /PaintType 1 /TilingType 1 /BBox [0 0 width height] /XStep width /YStep height /PaintProc { begin XStep YStep 8 matrix imagedata false components colorimage end } counttomark 2 div cvi dup dict begin { def } repeat pop currentdict end dup /imagedata 4 -1 roll width height mul mul string currentfile exch readhexstring pop put exch makepattern setpattern clippath eofill } bd /tileimage1 { concat /components xd /height xd /width xd /imagedata currentfile width height mul components mul string readhexstring pop def clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd left width div floor width mul bottom height div floor height mul translate top bottom sub height div ceiling cvi { gsave right left sub width div ceiling cvi { width height 8 matrix components 1 eq { { imagedata } image } { imagedata false components colorimage } ifelse width 0 translate } repeat grestore 0 height translate } repeat } bd /makepattern where { pop /tileimage /tileimage2 load def } { /tileimage /tileimage1 load def } ifelse end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Roman 10.433 setmiterlimit %%EndSetup %%Page: 1 1 SketchDict begin newpath 255.118 737.008 m 56.6929 737.008 l 56.6929 722.835 l 255.118 722.835 l closepath 0.879 0.879 0.879 rgb F 255.118 737.008 m 56.6929 737.008 l 56.6929 722.835 l 255.118 722.835 l 0 0 0 rgb 1 w 0 j 0 J [] 0 d S /Times-Roman 11 sf (Daten) 150 725 T newpath 56.6929 742.677 m 255.118 742.677 l S newpath 56.6929 745.512 m 56.6929 742.677 l S newpath 70.8661 745.512 m 70.8661 742.677 l S newpath 85.0394 745.512 m 85.0394 742.677 l S newpath 99.2126 745.512 m 99.2126 742.677 l S newpath 113.386 745.512 m 113.386 742.677 l S newpath 127.559 745.512 m 127.559 742.677 l S newpath 141.732 745.512 m 141.732 742.677 l S newpath 155.906 745.512 m 155.906 742.677 l S newpath 170.079 745.512 m 170.079 742.677 l S newpath 184.252 745.512 m 184.252 742.677 l S newpath 198.425 745.512 m 198.425 742.677 l S newpath 212.598 745.512 m 212.598 742.677 l S newpath 226.772 745.512 m 226.772 742.677 l S newpath 240.945 745.512 m 240.945 742.677 l S newpath 255.118 745.512 m 255.118 742.677 l S newpath 56.6929 754.016 m 255.118 754.016 l S newpath 56.6929 756.85 m 56.6929 754.016 l S newpath 85.0394 756.85 m 85.0394 754.016 l S newpath 113.386 756.85 m 113.386 754.016 l S newpath 141.732 756.85 m 141.732 754.016 l S newpath 170.079 756.85 m 170.079 754.016 l S newpath 198.425 756.85 m 198.425 754.016 l S newpath 226.772 756.85 m 226.772 754.016 l S newpath 255.118 756.85 m 255.118 754.016 l S newpath 56.6929 765.354 m 255.118 765.354 l S newpath 56.6929 768.189 m 56.6929 765.354 l S newpath 113.386 768.189 m 113.386 765.354 l S newpath 170.079 768.189 m 170.079 765.354 l S newpath 226.772 768.189 m 226.772 765.354 l S newpath 56.6929 776.693 m 255.118 776.693 l S newpath 56.6929 779.528 m 56.6929 776.693 l S newpath 170.079 779.528 m 170.079 776.693 l S /Times-Roman 10 sf (Sektoren) 18 742 T (1K-Bl\366cke) 7 754 T (2K-Bl\366cke) 7 765 T (4K-Bl\366cke) 7 776 T %%PageTrailer showpage %%Trailer end %%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 %%EOF %%EndDocument @endspecial 382 2800 a Fn(4.2.2.4)103 b(Die)35 b(Rolle)f(des)h(VFS-In) m(terfaces)382 3005 y Fp(Die)23 b(Prozeduren,)j(die)d(die)h(Br\374c)m (k)m(e)g(zwisc)m(hen)g(dem)f(VFS-In)m(terface)h(und)f(dem)g(Bu\033er-) 382 3118 y(Cac)m(he)f(bilden,)h(sind)d(f\374r)g(alle)h(blo)s(c)m(k)m (orien)m(tierten)j(Ger\344te)c(gleic)m(h,)k(n\344mlic)m(h)e(blo)s(c)m (k_read\(\),)382 3231 y(blo)s(c)m(k_write\(\))45 b(und)f(blo)s(c)m (k_fsync\(\).)81 b(Diese)44 b(Prozeduren)h(k)m(ommen)g(somit)f(zum)382 3344 y(Einsatz,)e(w)m(enn)e(ein)f(Proze\377)h(ein)f(blo)s(c)m(k)m (orien)m(tiertes)j(Ger\344t)d(direkt)g(anspric)m(h)m(t)i(und)382 3457 y(nic)m(h)m(t)h(den)f(Um)m(w)m(eg)i(\374b)s(er)d(ein)h (Dateisystem)g(geh)m(t.)73 b(Daher)41 b(m)m(u\377)h(sic)m(h)f(der)g (Autor)382 3570 y(eines)34 b(Ger\344tetreib)s(ers)i(n)m(ur)f(um)g(die)f (Implemen)m(tierung)j(v)m(on)e(op)s(en\(\))g(und)g(release\(\))382 3683 y(der)d(im)g(VFS)g(v)m(ork)m(ommenden)j(Prozeduren)f(k\374mmern.) 46 b(Des)32 b(w)m(eiteren)h(b)s(einhaltet)382 3796 y(das)k(VFS-In)m (terface)h(zw)m(ei)h(Prozeduren,)i(die)c(n)m(ur)h(v)m(on)g(blo)s(c)m(k) m(orien)m(tierten)j(Ger\344ten)382 3909 y(gen)m(utzt)29 b(w)m(erden)g(k)m(\366nnen:)40 b(c)m(hec)m(k_media_c)m(hange\(\))32 b(und)c(rev)-5 b(alidate\(\).)41 b(Die)28 b(Rolle)382 4022 y(des)i(VFS)g(in)h(Lin)m(ux)g(v)m(or)g(der)f(V)-8 b(ersion)31 b(2.3.38)h(ist)e(in)g(Abbildung)h(4.1)g(dargestellt.)382 4168 y(Da)k(sic)m(h)g(der)g(v)m(on)g(blo)s(c)m(k)m(orien)m(tierten)j (Ger\344ten)e(und)f(v)m(on)h(zeic)m(henorien)m(tierten)i(Ge-)382 4281 y(r\344ten)32 b(gemeinsam)h(b)s(en)m(utzte)g(T)-8 b(eil)33 b(des)f(VFS-In)m(terfaces)g(auf)f(op)s(en\(\))i(und)f (release\(\))382 4394 y(b)s(esc)m(hr\344nkt,)45 b(hab)s(en)d(sic)m(h)f (n)m(un)i(die)f(Kernel-En)m(t)m(wic)m(kler)j(dazu)d(durc)m(hgerungen)i (in)382 4507 y(Zukunft,)28 b(das)e(In)m(terface)i(f\374r)f(blo)s(c)m(k) m(orien)m(tierte)j(Ger\344te)d(v)m(on)g(dem)h(der)f(zeic)m(henorien-) 382 4620 y(tierten)f(Ger\344te)f(zu)g(trennen.)40 b(Diese)24 b(T)-8 b(renn)m(ung)27 b(wurde)f(b)s(eginnend)g(mit)f(der)g(V)-8 b(ersion)382 4732 y(2.3.38)31 b(eingef\374hrt.)382 5045 y Fj(4.3)130 b(P)l(arallelausf\374hrung)382 5281 y Fp(Neb)s(en)21 b(der)h(P)m(arallelausf\374hrung,)k(die)c(dadurc)m(h)h(zustande)f(k)m (omm)m(t,)j(da\377)d(ein)f(Compu-)382 5394 y(ter)33 b(mit)g(mehreren)g (Prozessoren)h(ausger\374stet)f(ist,)g(gibt)g(es)f(no)s(c)m(h)h(eine)g (Vielzahl)g(an)1831 5622 y(34)p eop %%Page: 35 37 35 36 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)764 b(4.3.)71 b(P)-8 b(ARALLELA)m(USF\334HR)m(UNG)p 382 301 2989 4 v 1235 1614 a @beginspecial 135 @llx 659 @lly 289 @urx 799 @ury 1540 @rwi @setspecial %%BeginDocument: /home/philipp/diplomarbeit//vfs.ps %!PS-Adobe-3.0 EPSF-3.0 %%For: Philipp Reisner %%CreationDate: Wed May 17 13:41:22 2000 %%Title: vfs.ps %%Creator: Sketch 0.6.5 %%Pages: 1 %%BoundingBox: 135 659 289 799 %%Extensions: CMYK %%DocumentSuppliedResources: (atend) %%DocumentNeededResources: font Times-Roman %%EndComments %%BeginProlog %%BeginResource: procset Linux-Sketch-Procset 1.0 2 /SketchDict 100 dict def SketchDict begin /bd { bind def } bind def /x { exch } bd /xd { exch def } bd /PI 3.14159265358979323846264338327 def /radgrad { 180 mul PI div } bd /skstartmatrix matrix currentmatrix def /tmpmat matrix def /ISOLatin1Encoding dup where { pop pop } { [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def } ifelse /arct dup where {pop pop} { /arct {arcto pop pop pop pop} bd } ifelse /size 0 def /fontname 0 def /newfont 0 def /sf { /size xd /fontname xd fontname findfont dup /Encoding get StandardEncoding eq { dup length dict /newfont xd { 1 index /FID ne { newfont 3 1 roll put } { pop pop } ifelse } forall newfont /Encoding ISOLatin1Encoding put fontname newfont definefont } if size scalefont setfont } bd /pusht {matrix currentmatrix} bd /popt {setmatrix} bd /pushc {gsave} bd /popc {grestore} bd /rgb {setrgbcolor} bd /w { setlinewidth } bd /j { setlinejoin } bd /J { setlinecap } bd /d { setdash } bd /F { eofill } bd /f { closepath F } bd /S { pusht skstartmatrix setmatrix stroke popt } bd /s { closepath S } bd /m { moveto } bd /l { lineto } bd /c { curveto } bd /txt { /tmpmat tmpmat currentmatrix def dup type /arraytype eq {concat} {translate} ifelse 0 0 m tmpmat } bd /T {txt x show popt} bd /P {txt x true charpath popt} bd /TP {txt x dup show 0 0 m true charpath popt} bd /C {newpath 0 360 arc} bd /R { 2 copy m x 2 index l x 2 index x l l closepath } bd /ellipse { dup type /arraytype eq { pusht x concat 0 0 1.0 C popt } { pusht 5 1 roll 4 -1 roll concat newpath dup 2 eq { 0 0 m } if 3 1 roll radgrad x radgrad x 0 0 1 5 -2 roll arc 0 ne { closepath } if popt } ifelse } bd /radius1 0 def /radius2 0 def /factor 0 def /rect { dup type /arraytype eq { pusht x concat 0 0 m 1 0 l 1 1 l 0 1 l closepath popt } { /radius2 xd /radius1 xd pusht x concat radius1 radius2 div 1 scale 0 radius2 m 0 1 radius2 1 radius2 arct radius2 radius1 div dup 1 1 index 0 radius2 arct 0 0 0 radius2 arct 0 0 0 1 radius2 arct closepath popt } ifelse } bd /buf 0 def /width 0 def /height 0 def /skcimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width 3 mul string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind false 3 colorimage tmpmat setmatrix } bd /skgimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind image tmpmat setmatrix } bd /rclip { 4 2 roll m dup 0 x rlineto x 0 rlineto neg 0 x rlineto closepath clip } bd /skeps { 10 dict begin /sk_state save def concat 3 index neg 3 index neg translate rclip 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /sk_dict_count countdictstack def /sk_count count 1 sub def userdict begin /showpage { } def /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bd /skepsend { count sk_count sub { pop } repeat countdictstack sk_dict_count sub { end } repeat sk_state restore end } bd /gradidx 0 def /gradient { 3 mul array /gradidx 0 def } bd /$ { 3 index gradidx 5 -1 roll put 2 index gradidx 1 add 4 -1 roll put 1 index gradidx 2 add 3 -1 roll put /gradidx gradidx 3 add def } bd /! { 3 { dup dup gradidx dup 3 1 roll 3 sub get put /gradidx gradidx 1 add def } repeat } bd /gradcolor { 3 mul dup 2 add 1 exch % idx 1 idx+2 { 1 index exch % array array i get % array component exch % component array } for 4 1 roll } bd /x0 0 def /y0 0 def /x1 0 def /y1 0 def /left 0 def /right 0 def /top 0 def /bottom 0 def /numcolors 0 def /axial { /y1 xd /x1 xd /y0 xd /x0 xd dup length 3 idiv /numcolors xd pusht exch % ctm array x0 x1 ne y0 y1 ne or { x0 y0 translate [x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath 0 gradcolor rgb clippath f 0 1 numcolors 1 sub { dup numcolors div 3 1 roll gradcolor rgb exch bottom right top R f } for } if pop popt } bd /r0 0 def /r1 0 def /dr 0 def /radial { /r1 xd /r0 xd /y0 xd /x0 xd /dr r1 r0 sub def dup length 3 idiv /numcolors xd pusht exch % ctm array r0 r1 ne { x0 y0 translate clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb clippath f dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse { dup numcolors div dr mul r0 add 3 1 roll gradcolor rgb exch 0 0 3 -1 roll C f } for } if pop popt } bd /max { 2 copy lt {exch} if pop } bd /conical { pusht 5 1 roll 3 1 roll /y0 xd /x0 xd x0 y0 translate radgrad rotate dup length 3 idiv /numcolors xd clippath flattenpath pathbbox newpath 4 { abs 4 1 roll} repeat 3 { max } repeat 2 mul dup scale 0 gradcolor rgb 0 0 1 0 360 arc f 1 1 numcolors 1 sub { dup numcolors div 180 mul 3 1 roll gradcolor rgb exch 0 0 moveto 0 0 1 4 -1 roll dup neg arc closepath f } for pop popt } bd /XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def /tileimage2 { exch 4 2 roll /height xd /width xd mark /components 2 index /PatternType 1 /PaintType 1 /TilingType 1 /BBox [0 0 width height] /XStep width /YStep height /PaintProc { begin XStep YStep 8 matrix imagedata false components colorimage end } counttomark 2 div cvi dup dict begin { def } repeat pop currentdict end dup /imagedata 4 -1 roll width height mul mul string currentfile exch readhexstring pop put exch makepattern setpattern clippath eofill } bd /tileimage1 { concat /components xd /height xd /width xd /imagedata currentfile width height mul components mul string readhexstring pop def clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd left width div floor width mul bottom height div floor height mul translate top bottom sub height div ceiling cvi { gsave right left sub width div ceiling cvi { width height 8 matrix components 1 eq { { imagedata } image } { imagedata false components colorimage } ifelse width 0 translate } repeat grestore 0 height translate } repeat } bd /makepattern where { pop /tileimage /tileimage2 load def } { /tileimage /tileimage1 load def } ifelse end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Roman 10.433 setmiterlimit %%EndSetup %%Page: 1 1 SketchDict begin newpath 172.913 756.85 m 172.913 765.354 l 0 0 0 rgb 1 w 0 j 0 J [] 0 d S pusht 172.913 765.354 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 167.244 765.354 m 167.244 756.85 l S pusht 167.244 756.85 translate -90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 212.598 728.504 m 198.425 728.504 l S pusht 198.425 728.504 translate 180 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt [56.6929 0 0 -28.3464 141.732 751.181] rect gsave 0.888 0.888 0.888 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [22.6772 0 0 -8.50397 158.74 756.85] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.283465 w 0 j 0 J [] 0 d S newpath 198.425 734.173 m 212.598 734.173 l 1 w S pusht 212.598 734.173 translate 0 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 246.614 756.85 m 246.614 765.354 l S pusht 246.614 765.354 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 246.614 700.157 m 246.614 708.661 l S pusht 246.614 708.661 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 246.614 737.008 m 246.614 745.512 l S pusht 246.614 745.512 translate 90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 240.945 765.354 m 240.945 756.85 l S pusht 240.945 756.85 translate -90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 240.945 708.661 m 240.945 700.157 l S pusht 240.945 700.157 translate -90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 240.945 745.512 m 240.945 737.008 l S pusht 240.945 737.008 translate -90 rotate 1 dup scale [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 212.598 751.181 m 283.465 751.181 l 283.465 666.142 l 141.732 666.142 l 141.732 694.488 l 277.795 694.488 l 277.795 745.512 l 212.598 745.512 l 212.598 751.181 l closepath 0.88 0.88 0.88 rgb F 212.598 751.181 m 283.465 751.181 l 283.465 666.142 l 141.732 666.142 l 141.732 694.488 l 277.795 694.488 l 277.795 745.512 l 212.598 745.512 l 212.598 751.181 l 0 0 0 rgb S [56.6929 0 0 -8.50397 212.598 700.157] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.283465 w 0 j 0 J [] 0 d S [22.6772 0 0 -8.50397 232.441 756.85] rect gsave 1 1 1 rgb F grestore 0 0 0 rgb 0.283465 w 0 j 0 J [] 0 d S [141.732 0 0 -28.3465 141.732 793.701] rect gsave 0.89 0.89 0.89 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [56.6929 0 0 -28.3464 212.598 737.008] rect gsave 0.89 0.89 0.89 rgb F grestore 0 0 0 rgb 1 w 0 j 0 J [] 0 d S /Times-Roman 10 sf (do_request\(\)) [1 0 0 0.814962 215.917 693.422] T (VFS) [1 0 0 0.814962 234.61 750.115] T /Times-Roman 11 sf (Application) 186 776 T (Buffer) 218 725 T /Times-Roman 12 sf (cache) 239 714 T /Times-Roman 11 sf (Block device) 183 674 T (File) 147 737 T (system) 162 728 T /Times-Roman 10 sf (VFS) [1 0 0 0.814962 160.909 750.115] T %%PageTrailer showpage %%Trailer end %%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 %%EOF %%EndDocument @endspecial 1076 1810 a Fp(Abbildung)31 b(4.1:)41 b(Rolle)31 b(des)f(VFS-In)m(terfaces)382 2085 y(v)m(ersc)m(hiedenen)40 b(Ausf\374hrungsk)m(on)m(texten)g(im)f(Lin)m(ux-Kernel.)67 b(Da)38 b(der)h(Zugri\033)g(auf)382 2198 y(viele)h(Ressourcen,)i(die)f (aus)f(mehreren)h(Ausf\374hrungsk)m(on)m(texten)g(v)m(erw)m(endet)h(w)m (er-)382 2311 y(den,)29 b(nic)m(h)m(t)g(atomar)g(ist,)f(b)s(en\366tigt) g(man)g(geeignete)h(Mec)m(hanismen,)h(um)e(den)g(Zugri\033)382 2424 y(zu)i(regeln.)42 b([Russ00)o(])382 2717 y Fo(4.3.1)112 b(Ausf\374hrungsk)m(on)m(texte)382 2926 y Fn(In)m(terrupts)45 b Fp(In)m(terrupthandler)g(sind)d(Prozeduren)j(des)d(Betriebssystems,)k (deren)609 3039 y(Ausf\374hrung)36 b(durc)m(h)h(zur)f(CPU)g(externe)h (Ereignisse)f(angesto\377en)h(wird.)57 b(Die)609 3152 y(Ausf\374hrung)26 b(eines)f(In)m(terrupthandlers)j(k)-5 b(ann)25 b(wiederum)i(v)m(on)f(In)m(terrupts)g(un-)609 3265 y(terbro)s(c)m(hen)d(w)m(erden;)i(daher)d(m)m(u\377)f(ein)h(In)m (terrupthandler)h(auc)m(h)f(reen)m(tran)m(t)h(pro-)609 3377 y(grammiert)37 b(w)m(erden)f(\(es)f(sei)f(denn,)j(er)e(un)m (terbindet)i(den)e(Aufruf)f(v)m(on)i(In)m(ter-)609 3490 y(rupthandlern\).)382 3678 y Fn(Bottom)f(Halv)m(es)46 b Fp(Aktionen,)41 b(die)f(aufgrund)g(eines)f(In)m(terrupts)h (ausgef\374hrt)f(w)m(er-)609 3791 y(den,)24 b(ab)s(er)d(nic)m(h)m(t)j (so)d(dringend)i(sind,)g(da\377)f(sie)f(unmittelbar)i(im)f(In)m (terrupthand-)609 3904 y(ler)g(ausgef\374hrt)h(w)m(erden)g(m)m (\374ssen,)h(w)m(erden)f(in)f(Bottom)h(Halv)m(es)f(un)m(tergebrac)m(h)m (t.)609 4017 y(Die)31 b(32)f(Bottom)h(Halv)m(es)f(un)m(ter)h(Lin)m(ux)h (sind)e(statisc)m(h)h(v)m(ergeb)s(en.)41 b(W)-8 b(enn)31 b(man)609 4130 y(als)23 b(Autor)h(eines)f(mo)s(dularisierten)i(T)-8 b(reib)s(ers)24 b(eine)g(Prozedur)h(als)e(Bottom)h(Half)609 4243 y(ausf\374hren)34 b(lassen)f(will,)i(m)m(u\377)f(man)g(sic)m(h)g (der)f(T)-8 b(ask-Queue)35 b(\022tq_immediate\021)609 4355 y(b)s(edienen.)45 b(In)31 b(einem)h(In)m(terrupthandler)i(k)m (\366nnen)f(b)s(eliebige)f(Bottom)h(Halv)m(es)609 4468 y(markiert)f(w)m(erden.)44 b(Die)31 b(Ausf\374hrung)g(aller)g (markierten)i(Bottom)e(Halv)m(es)g(er-)609 4581 y(folgt)k(b)s(ei)g (jedem)g(Sc)m(heduling-V)-8 b(organg)39 b(und)c(b)s(ei)g(der)g(R\374c)m (kk)m(ehr)g(v)m(on)h(einem)609 4694 y(Systemruf.)47 b(Die)33 b(Markierung)g(wird)g(b)s(ei)g(der)f(Ausf\374hrung)h(wieder)h (gel\366sc)m(h)m(t.)609 4807 y(Bottom)d(Halv)m(es)g(m)m(\374ssen)f(nic) m(h)m(t)i(reen)m(tran)m(t)h(sein.)609 4920 y(Mit)21 b(der)g(Kernelv)m (ersion)i(2.3.43)f(w)m(erden)g(die)f(Bottom)h(Halv)m(es)f(durc)m(h)h (SoftIR)m(Qs)609 5033 y(abgel\366st.)56 b(SoftIR)m(Qs)34 b(un)m(tersc)m(heiden)k(sic)m(h)e(dadurc)m(h)h(v)m(on)e(den)h(Bottom)f (Hal-)609 5146 y(v)m(es,)30 b(da\377)g(einzelne)h(SoftIR)m(Qs)e(auf)h (v)m(ersc)m(hiedenen)i(CPUs)d(gleic)m(hzeitig)j(laufen)609 5259 y(d\374rfen.)1831 5622 y(35)p eop %%Page: 36 38 36 37 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)764 b(4.3.)71 b(P)-8 b(ARALLELA)m(USF\334HR)m(UNG)p 382 301 2989 4 v 382 539 a Fn(T)f(ask)35 b(Queues)46 b Fp(Hier)d(k)-5 b(ann)43 b(man)h(dynamisc)m(h)g(Prozeduren)h(registrieren,)j(die)43 b(zu)609 652 y(b)s(estimm)m(ten)i(Zeitpunkten)f(ausgef\374hrt)g(w)m (erden)h(sollen.)80 b(Da)43 b(die)h(Ausf\374h-)609 764 y(rung)25 b(der)g(T)-8 b(ask-Queues)25 b(im)f(Rahmen)h(der)g(Abarb)s (eitung)g(der)f(Bottom)i(Halv)m(es)609 877 y(statt\034ndet,)34 b(gilt)e(das)f(dort)i(Angef\374hrte.)45 b(T)-8 b(ask)32 b(Queues,)g(die)h(im)e(Kernel)i(zur)609 990 y(V)-8 b(erf\374gung)32 b(stehen:)609 1203 y(tq_immediate)78 b(Wird)36 b(b)s(ei)f(jeder)h (Ausf\374hrung)g(der)g(Bottom)g(Halv)m(es)g(abge-)1234 1316 y(arb)s(eitet.)609 1462 y(tq_timer)262 b(Wird)41 b(nac)m(h)i(jedem)e(Timerin)m(terrupt)j(abgearb)s(eitet.)74 b(\(100)1234 1575 y(mal)36 b(pro)f(Sekunde)h(auf)e(i386,)j(1000)e(mal)h (pro)f(Sekunde)h(auf)1234 1688 y(Alpha\))609 1834 y(tq_sc)m(heduler)109 b(Wird)31 b(b)s(ei)f(jedem)h(Aufruf)e(des)i(Sc)m(hedulers)h(abgearb)s (eitet.)382 2046 y Fn(Proze\377)46 b Fp(Ein)37 b(Proze\377)i(k)-5 b(ann)37 b(en)m(t)m(w)m(eder)j(seinen)d(Programmco)s(de,)k(o)s(der)c (ab)s(er)g(auc)m(h)609 2159 y(den)27 b(Co)s(de)f(des)g(Betriebssystems) g(ausf\374hren.)39 b(Im)26 b(ersten)h(F)-8 b(all)26 b(k)-5 b(ann)27 b(die)f(Aus-)609 2272 y(f\374hrung)32 b(jederzeit)f(un)m (terbro)s(c)m(hen)i(und)f(mit)f(einem)g(anderen)h(Proze\377)g(fortge-) 609 2385 y(setzt)d(w)m(erden.)42 b(Dies)28 b(ist)h(eine)g(ganz)g (normale)h(Eigensc)m(haft)h(eines)e(Betriebssy-)609 2498 y(stems,)h(das)h(pr\344emptiv)m(es)g(Multitasking)g(hat.)609 2611 y(F\374hrt)22 b(der)g(Proze\377)g(gerade)h(einen)f(T)-8 b(eil)22 b(des)f(Kernels)h(aus,)h(b)s(e\034ndet)f(er)g(sic)m(h)g(also) 609 2724 y(im)35 b(Kernelk)m(on)m(text,)i(k)-5 b(ann)35 b(er)f(zw)m(ar)i(durc)m(h)f(einen)g(In)m(terrupt)h(kurzfristig)e(un-) 609 2837 y(terbro)s(c)m(hen)h(w)m(erden;)h(danac)m(h)f(wird)f(er)f (allerdings)h(w)m(eiter)h(ausgef\374hrt.)49 b(D.h.)609 2950 y(im)40 b(Kernelk)m(on)m(text)i(ist)e(Lin)m(ux)g(zum)h(heutigen)g (Zeitpunkt)g(nic)m(h)m(t)g(pr\344em)m(tiv.)609 3062 y(Im)34 b(Laufe)h(der)g(2.3.x)f(En)m(t)m(wic)m(klung)j(wurden)f(die)e (M\366glic)m(hk)m(eiten)j(diskutiert,)609 3175 y(auc)m(h)i(den)g (Kernelk)m(on)m(text)h(pr\344emptiv)f(zu)f(gestalten,)j(es)d(ist)f(ab)s (er)h(un)m(w)m(ahr-)609 3288 y(sc)m(heinlic)m(h,)33 b(da\377)d(das)h(b) s(ereits)f(b)s(ei)g(Lin)m(ux)h(2.4.x)g(der)g(F)-8 b(all)31 b(sein)f(wird.)382 3582 y Fo(4.3.2)112 b(Sync)m(hronisationsprimitiv)m (e)382 3803 y Fp(Die)35 b(grundlegenden)h(Mec)m(hanismen,)i(aus)c (denen)h(die)g(h\366heren)h(Sync)m(hronisations-)382 3916 y(ob)5 b(jekte)30 b(aufgebaut)i(sind:)382 4178 y Fn(cti\(\)/sti\(\))47 b Fp(Sp)s(erren)24 b(und)g(F)-8 b(reigeb)s(en)25 b(aller)f(In)m(terrupts.)39 b(Es)23 b(gibt)h(no)s(c)m(h)g(w)m(eitere)h(V)-8 b(a-)609 4291 y(rian)m(ten)31 b(dieser)f(K)m(ommandos,)i(die)e(ab)s(er)f(k)m(eine)i (grunds\344tzlic)m(h)g(andere)g(F)-8 b(unk-)609 4404 y(tion)31 b(zur)g(V)-8 b(erf\374gung)31 b(stellen.)382 4592 y Fn(Spinlo)s(c)m(ks)44 b Fp(Ein)32 b(Spinlo)s(c)m(k)g(ist)f(ein)g (Sync)m(hronisationsob)5 b(jekt,)33 b(das)f(n)m(ur)g(einmal)g(b)s(e-) 609 4705 y(legt)24 b(w)m(erden)i(k)-5 b(ann.)38 b(Ist)23 b(es)h(b)s(ereits)g(b)s(elegt,)h(wird)g(so)e(lange)i(eine)f(W)-8 b(artesc)m(hleife)609 4817 y(ausgef\374hrt,)31 b(bis)f(der)h(Spinlo)s (c)m(k)g(wieder)g(frei)f(ist.)40 b(Ein)31 b(Spinlo)s(c)m(k)g(k)-5 b(ann)31 b(n)m(ur)g(f\374r)609 4930 y(die)i(Sync)m(hronisation)i(zwisc) m(hen)f(zw)m(ei)f(CPUs)g(v)m(erw)m(endet)h(w)m(erden.)49 b(F)-8 b(alls)33 b(ein)609 5043 y(Kernel)27 b(f\374r)e(einen)i (Computer)g(mit)f(n)m(ur)h(einem)f(Prozessor)g(erzeugt)h(wird,)g(w)m (er-)609 5156 y(den)k(Spinlo)s(c)m(ks)g(b)s(ei)f(der)h(\334b)s (ersetzung)f(des)h(Quellco)s(des)g(eliminiert.)1831 5622 y(36)p eop %%Page: 37 39 37 38 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)764 b(4.3.)71 b(P)-8 b(ARALLELA)m(USF\334HR)m(UNG)p 382 301 2989 4 v 382 539 a Fn(W)f(ait)36 b(Queues)46 b Fp(Eine)35 b(W)-8 b(ait-Queue)36 b(bietet)g(zw)m(ei)f(F)-8 b(unktionen:)51 b(Ein)35 b(Proze\377)g(k)-5 b(ann)609 652 y(mit)28 b(sleep_on\(\))g (auf)f(ein)h(Ereignis)g(w)m(arten.)41 b(Dab)s(ei)27 b(wird)h(der)f(Sc)m (heduler)j(auf-)609 764 y(gerufen,)j(und)f(der)g(Proze\377)h(gibt)f (die)g(CPU)g(ab.)45 b(T)-8 b(ritt)33 b(n)m(un)g(das)e(Ereignis)i(ein,) 609 877 y(so)38 b(k)-5 b(ann)37 b(man)h(alle)h(Prozesse,)h(die)e(in)f (einer)i(W)-8 b(ait-Queue)39 b(w)m(arten,)i(w)m(ec)m(k)m(en.)609 990 y(F\374r)f(den)g(gew)m(ec)m(kten)i(Proze\377)f(b)s(edeutet)f(das,)i (da\377)e(der)g(sleep_on\(\))h(Aufruf)609 1103 y(zur\374c)m(kk)m(ehrt.) 609 1216 y(Sleep_on\(\))29 b(gibt)f(es)f(in)g(zw)m(ei)h(V)-8 b(arian)m(ten;)31 b(eine)d(l\344\377t)f(den)h(Proze\377)g(im)g(Zustand) 609 1329 y(T)-8 b(ASK_UNINTERR)m(UPTIBLE)22 b(w)m(arten,)i(w)m (\344hrend)e(sleep_on_in)m(terruptible\(\))609 1442 y(den)36 b(Proze\377)h(im)e(Zustand)h(T)-8 b(ASK_INTERR)m(UPTIBLE)38 b(w)m(arten)f(l\344\377t.)56 b(Ein)609 1555 y(Proze\377)37 b(im)f(ersten)g(der)g(b)s(eiden)g(Zust\344nde)g(reagiert)h(auf)e(k)m (eine)h(Signale)h(und)609 1668 y(k)-5 b(ann)31 b(daher)h(auc)m(h)g(nic) m(h)m(t)h(mit)e(dem)g(Kill-K)m(ommando)j(aus)d(dem)h(System)f(en)m(t-) 609 1781 y(fern)m(t)g(w)m(erden.)382 2043 y(Darauf)e(aufbauend)h(gibt)f (es)g(Semaphore)i(und)e(in)g(neueren)h(V)-8 b(ersionen)30 b(\(2.3.x\))f(auc)m(h)382 2156 y(eine)f(Sc)m(hreib-)i(und)e(Lesev)-5 b(arian)m(te)29 b(v)m(on)g(Semaphoren.)41 b(Semaphore)30 b(k)m(\366nne)e(zur)g(Syn-)382 2269 y(c)m(hronisation)h(v)m(on)f (Prozessen)h(im)e(Kernelk)m(on)m(text)j(eingesetzt)f(w)m(erden.)41 b(Semaphore)382 2382 y(k)m(\366nnen)36 b(nat\374rlic)m(h)g(nic)m(h)m(t) h(in)e(In)m(terrupthandlern)j(und)d(Bottom)h(Halv)m(es)e(eingesetzt)382 2495 y(w)m(erden,)46 b(da)c(diese)g(au\377erhalb)i(eines)e(Proze\377k)m (on)m(textes)i(ausgef\374hrt)f(w)m(erden)g(und)382 2608 y(Semaphore)32 b(einen)f(Proze\377k)m(on)m(text)i(brauc)m(hen.)382 2770 y(Spinlo)s(c)m(ks)39 b(k)m(\366nnen)h(eb)s(enfalls)f(f\374r)g(die) g(Sync)m(hronisation)i(zwisc)m(hen)g(Prozessen)e(im)382 2883 y(Kernelk)m(on)m(text)32 b(eingesetzt)e(w)m(erden.)42 b(Spinlo)s(c)m(ks)30 b(gibt)g(es)g(b)s(ereits)f(in)h(den)g(2.2.x)g(V)-8 b(er-)382 2996 y(sionen)39 b(des)g(Kernels)g(in)g(Sc)m(hreib-)i(und)e (Lesev)-5 b(arian)m(ten.)67 b(Sie)40 b(eignen)f(sic)m(h)h(gut)f(f\374r) 382 3109 y(Sync)m(hronisationsaufgab)s(en,)44 b(b)s(ei)c(denen)h(die)f (Ressource)f(n)m(ur)i(f\374r)f(kurze)g(Zeit)g(ge-)382 3222 y(sc)m(h)m(\374tzt)f(w)m(erden)g(m)m(u\377.)62 b(W\344hrend)38 b(man)g(einen)g(Spinlo)s(c)m(k)g(b)s(esetzt)f(hat,)j(darf)d(man)382 3335 y(auf)30 b(k)m(einen)h(F)-8 b(all)31 b(den)g(Sc)m(heduler)h (aufrufen.)382 3498 y(F\374r)37 b(die)g(Sync)m(hronisation)i(zwisc)m (hen)f(In)m(terrupts)f(und)g(Prozessen)h(im)f(Kernelk)m(on-)382 3610 y(text)24 b(steh)m(t)h(eine)f(V)-8 b(arian)m(te)26 b(der)e(Spinlo)s(c)m(ks)g(zur)h(V)-8 b(erf\374gung,)26 b(die)f(die)f(Ausf\374hrung)g(v)m(on)382 3723 y(In)m(terrupts)j(auf)f (der)h(lok)-5 b(alen)27 b(CPU)f(v)m(erhindert.)41 b(F)-8 b(alls)26 b(es)g(sic)m(h)h(um)g(die)f(Sc)m(hreib-)i(und)382 3836 y(Lesev)-5 b(arian)m(te)40 b(der)e(Spinlo)s(c)m(ks)g(handelt)h (und)g(man)f(innerhalb)h(des)f(In)m(terrupthand-)382 3949 y(lers)31 b(n)m(ur)h(lesend)g(auf)f(die)h(Ressource)f(zugreifen)h (will,)g(k)-5 b(ann)32 b(man)g(dort)g(die)f(normale)382 4062 y(V)-8 b(arian)m(te)32 b(des)e(Spinlo)s(c)m(ks)h(v)m(erw)m(enden.) 680 4250 y(Innerhalb)25 b(des)e(In)m(terrupthandlers)j(m)m(u\377)f(im)f (Normalfall)g(eb)s(enfalls)g(die)g(_ir-)680 4363 y(qsa)m(v)m(e\(\))34 b(V)-8 b(arian)m(te)36 b(der)e(Spinlo)s(c)m(k-Op)s(erationen)i(v)m(erw) m(endet)g(w)m(erden,)g(denn)680 4476 y(w)m(enn)d(der)g(In)m(terrupt)h (w)m(\344hrend)f(der)g(Abarb)s(eitung)g(des)f(In)m(terrupthandlers)680 4588 y(ein)41 b(w)m(eiteres)g(Mal)f(auftritt)1671 4555 y Fg(2)1711 4588 y Fp(,)j(wird)e(diese)f(un)m(terbro)s(c)m(hen,)45 b(der)c(In)m(terrupt-)680 4701 y(handler)48 b(no)s(c)m(heinmal)h (aufgerufen)f(und)f(der)h(erste)f(Aufruf)f(danac)m(h)j(wie-)680 4814 y(der)43 b(fortgesetzt.)77 b(Im)41 b(Proze\377k)m(on)m(text)k(ist) d(die)h(_irqsa)m(v)m(e\(\))g(V)-8 b(arian)m(te)44 b(der)680 4927 y(Spinlo)s(c)m(k-Op)s(erationen)g(not)m(w)m(endig,)k(um)42 b(die)g(A)m(tomizit\344t)h(zu)f(gew)m(\344hrlei-)680 5040 y(sten,)33 b(im)f(K)m(on)m(text)h(des)f(In)m(terrupthandlers)i (wird)f(dadurc)m(h)h(auc)m(h)f(no)s(c)m(h)f(ein)680 5153 y(Deadlo)s(c)m(k)f(v)m(erhindert.)p 382 5214 1196 4 v 486 5268 a Ff(2)520 5300 y Fe(Das)26 b(ist)g(nat\374rlic)n(h)g(n)n(ur)e (mit)h(\035ank)n(engetriggerten)h(In)n(terrupts)e(m\366glic)n(h.)1831 5622 y Fp(37)p eop %%Page: 38 40 38 39 bop 382 262 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1451 b(4.4.)71 b(THREADS)p 382 299 2989 4 v 680 539 a Fp(Handelt)33 b(es)f(sic)m(h)h(n)m(un)h(um)e(einen)h(Sc)m(heib-)h(und)f(Lese-Spinlo)s (c)m(k)h(und)f(ist)f(im)680 652 y(In)m(terrupthandler)26 b(n)m(ur)e(lesender)f(Zugri\033)h(erforderlic)m(h,)i(k)-5 b(ann)23 b(innerhalb)i(des)680 764 y(In)m(terrupts)31 b(die)g(normale)g(V)-8 b(arian)m(te)32 b(der)e(Op)s(erationen)i(v)m (erw)m(endet)g(w)m(erden.)680 877 y(Da)37 b(mehrere)h(Leser)g(auf)f (einmal)h(erlaubt)g(sind,)g(k)-5 b(ann)38 b(es)e(daher)i(b)s(ei)f (einer)680 990 y(zw)m(eiten,)25 b(gleic)m(hzeitigen)f(Ausf\374hrung)e (des)f(In)m(terrupthandlers)j(auf)d(der)h(glei-)680 1103 y(c)m(hen)31 b(CPU)g(nic)m(h)m(t)h(zu)f(diesem)f(Deadlo)s(c)m(k)h(k)m (ommen.)382 1439 y Fj(4.4)130 b(Threads)382 1692 y Fp(In)30 b(vielen)g(anderen)i(Betriebssystemen)e(wurde)h(mit)g(der)g (Einf\374hrung)g(v)m(on)g(Threads)382 1805 y(der)42 b(Proze\377)g (derart)h(v)m(er\344ndert,)j(da\377)c(er)f(n)m(ur)i(mehr)f(eine)g (Umgebung)g(ist,)j(in)c(der)382 1918 y(eine)33 b(b)s(eliebige)h(Zahl)g (v)m(on)f(Threads)h(laufen)f(k)-5 b(ann.)49 b(Der)33 b(Proze\377)h(stellt)g(dab)s(ei)f(k)m(eine)382 2031 y(Einheit)40 b(f\374r)e(den)h(Sc)m(heduler)i(dar,)g(ist)d(ab)s(er)h(no)s(c)m(h)g (eine)g(Einheit)h(f\374r)e(viele)h(andere)382 2144 y(Subsysteme)h(des)f (Betriebssystems,)j(wie)d(z.B.)h(f\374r)f(die)h(Sp)s(eic)m(herv)m(erw)m (altung)j(und)382 2257 y(Filesysteme.)382 2419 y(Da)25 b(dieser)g(\334b)s(ergang)h(eine)g(einsc)m(hneidende)h(V)-8 b(er\344nderung)27 b(f\374r)e(ein)g(Betriebssystem)382 2532 y(darstellt,)35 b(wurde)f(un)m(ter)g(Lin)m(ux)g(ein)g(anderer)g (Ansatz)f(gew)m(\344hlt.)51 b(Dab)s(ei)33 b(wurde)h(der)382 2645 y(Sp)s(eic)m(herk)m(on)m(text)i(und)e(der)f(Dateisystemk)m(on)m (text)i(aus)e(dem)h(Proze\377)g(herausgel\366st,)382 2758 y(so)s(da\377)39 b(n)m(un)h(Prozesse)g(diese)g(gemeinsam)g(b)s(en) m(utzen)h(k)m(\366nnen.)69 b(Dies)39 b(spiegelt)h(sic)m(h)382 2871 y(auc)m(h)35 b(in)f(der)g(Implemen)m(tierung)j(wieder;)f(das)e(In) m(terface)h(der)f(Systemrufe)g(hat)g(sic)m(h)382 2984 y(n)m(ur)e(dadurc)m(h)g(v)m(er\344ndert,)h(da\377)f(eine)f(v)m (erallgemeinerte)j(F)-8 b(orm)32 b(des)e(fork\(2\))h(System-)382 3097 y(rufes)f(hinzugek)m(ommen)j(ist.)382 3260 y(Mit)g(Hilfe)g(dieser) h(Kernelerw)m(eiterung)j(wurde)d(eine)g(POSIX-k)m(onforme)h(Threading) 382 3372 y(Library)29 b(gesc)m(ha\033en.)41 b(Diese)28 b(stellt)g(den)g(Applik)-5 b(ationsprogrammen)31 b(mit)e(einer)f(klei-) 382 3485 y(nen)34 b(Ausnahme)970 3452 y Fg(3)1043 3485 y Fp(das)f(POSIX-k)m(onforme)i(V)-8 b(erhalten,)36 b(in)d(dem)h (Threads)g(Bestand-)382 3598 y(teile)d(eines)f(Prozesses)h(sind,)f(zur) h(V)-8 b(erf\374gung.)382 3891 y Fo(4.4.1)112 b(Kernel-Threads)382 4113 y Fp(Diese)22 b(Ausk)m(opp)s(elung)g(des)g(Sp)s(eic)m(herk)m(on)m (textes)j(und)d(des)g(Dateisystemk)m(on)m(textes)h(er-)382 4226 y(m\366glic)m(h)m(te)33 b(auc)m(h)e(die)f(problemlose)i (Einf\374hrung)f(v)m(on)g(Kernel-Threads.)42 b(Diese)30 b(sind)382 4339 y(Prozesse,)47 b(die)c(innerhalb)h(des)f(Kernels)h (erzeugt)g(w)m(erden)g(k)m(\366nnen,)k(um)43 b(dort)h(b)s(e-)382 4452 y(stimm)m(te)30 b(Aufgab)s(en)g(zu)f(\374b)s(ernehmen.)42 b(Da)29 b(sie)g(nie)h(Programmco)s(de)h(im)f(Userspace)382 4565 y(ausf\374hren,)h(hab)s(en)g(sie)f(auc)m(h)h(k)m(einen)g(Sp)s(eic) m(herk)m(on)m(text.)p 382 4626 1196 4 v 486 4680 a Ff(3)520 4712 y Fe(W\344hrend)g(laut)g(POSIX)f(Signale,)k(die)e(an)f(einen)g (Proze\377)i(adressiert)f(sind,)h(an)f(alle)g(Threads)382 4803 y(geliefert)j(w)n(erden,)h(wird)e(un)n(ter)f(Lin)n(ux)f(ein)i (Signal)g(n)n(ur)f(an)h(jenen)f(Thread)h(geliefert,)k(an)33 b(den)g(es)382 4894 y(adressiert)27 b(wurde.)1831 5622 y Fp(38)p eop %%Page: 39 41 39 40 bop 382 262 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1491 b(4.5.)71 b(MODULE)p 382 299 2989 4 v 382 539 a Fj(4.5)130 b(Mo)t(dule)382 791 y Fp(V)-8 b(or)29 b(der)g(V)-8 b(ersion)29 b(2.0)f(des)h(Lin)m(ux-Kernels)h(k)m(onn)m(ten)g(Ger\344tetreib)s(er)g (n)m(ur)f(statisc)m(h)g(in)382 904 y(den)k(Kernel)g(eincompiliert)h(w)m (erden.)48 b(Damals)32 b(w)m(ar)i(es)d(\374blic)m(h,)k(nac)m(h)e(der)g (erfolgrei-)382 1017 y(c)m(hen)h(Installation)h(des)e(Lin)m (ux-Systems,)i(den)f(Kernel)h(selbst)e(neu)h(zu)g(compilieren,)382 1130 y(und)f(dab)s(ei)g(n)m(ur)h(jene)f(Ger\344tetreib)s(er)h(in)f(den) g(Kernel)h(einzubinden,)h(die)e(man)g(auc)m(h)382 1243 y(tats\344c)m(hlic)m(h)f(brauc)m(h)m(te.)382 1406 y(Nic)m(h)m(t)24 b(n)m(ur)h(f\374r)e(den)h(An)m(w)m(ender)h(w)m(ar)f(diese)g(Situation)h (nic)m(h)m(t)g(zufriedenstellend,)h(auc)m(h)382 1519 y(w)m(ar)40 b(damals)f(die)h(En)m(t)m(wic)m(klung)i(eines)d(neuen)h (Ger\344tetreib)s(ers)f(sehr)g(umst\344ndlic)m(h,)382 1632 y(denn)29 b(die)g(einzige)g(M\366glic)m(hk)m(eit,)i(den)e(T)-8 b(reib)s(er)29 b(neu)g(zu)g(starten,)g(w)m(ar)h(es,)e(das)h(Zielsy-)382 1744 y(stem)h(mit)h(dem)g(neuen)g(Kernel)g(neu)g(zu)g(starten.)382 1907 y(Mit)c(V)-8 b(ersion)28 b(2.0)f(wurde)h(der)g(Kernel)g(um)g (einen)g(Loader)g(erw)m(eitert,)i(der)d(es)g(erlaubt,)382 2020 y(in)j(den)h(laufenden)g(Kernel)h(Mo)s(dule)e(einzuf\374gen)i (bzw.)41 b(zu)30 b(en)m(tfernen.)382 2183 y(Die)37 b(Sc)m(hnittstelle,) j(der)e(sic)m(h)f(ein)g(Autor)g(eines)g(Mo)s(duls)g(b)s(edienen)g(k)-5 b(ann,)39 b(ist)d(ab)s(er)382 2296 y(k)m(ein)26 b(F)-8 b(ramew)m(ork,)28 b(wie)e(das)g(b)s(ei)f(T)-8 b(reib)s(ersc)m (hnittstellen)29 b(vieler)c(Betriebssysteme)h(der)382 2409 y(F)-8 b(all)35 b(ist.)53 b(Es)34 b(stehen)h(eine)g(Menge)g (Prozeduren)i(und)e(Makros)f(zur)g(V)-8 b(erf\374gung,)37 b(die)382 2522 y(neb)s(en)g(den)f(F)-8 b(unktionen,)40 b(die)d(sp)s(eziell)f(f\374r)h(Mo)s(dule)f(zur)h(V)-8 b(erf\374gung)37 b(stehen)g(\(z.B.)382 2634 y (register_\034lesystem\(\),)30 b(restister_blkdev\(\),)f(usw.\),)f(auc) m(h)h(eine)f(gute)g(Ausw)m(ahl)g(der)382 2747 y(allgemeinen)k(F)-8 b(unktionen)32 b(des)e(Kernels)h(aufw)m(eisen.)382 2910 y(Diese)37 b(Kernelsc)m(hnittstelle)j(ist)e(zwisc)m(hen)g(v)m(ersc)m (hiedenen)i(V)-8 b(ersionen)39 b(des)e(Kernels)382 3023 y(nic)m(h)m(t)32 b(bin\344rk)m(ompatib)s(el,)g(man)f(k)-5 b(ann)30 b(jeo)s(c)m(h)g(Mo)s(dule)g(anderer)h(Kernelv)m(ersionen)h (la-)382 3136 y(den)26 b(und)g(wird)f(zumindest)i(darauf)f(aufmerksam)f (gemac)m(h)m(t,)k(da\377)d(dieser)g(V)-8 b(organg)26 b(zu)382 3249 y(einem)31 b(Systemabsturz)g(f\374hren)g(k)-5 b(ann.)382 3411 y(Do)s(c)m(h)35 b(b)s(eim)g(V)-8 b(ersuc)m(h,)37 b(ein)e(Mo)s(dul,)h(das)f(f\374r)f(eine)i(Ein-Prozessor-Masc)m(hine)h (\374b)s(er-)382 3524 y(setzt)27 b(wurde,)h(in)f(einen)g (Mehr-Prozessor-Kernel)j(zu)d(laden,)h(wird)f(man)g(leider)h(nic)m(h)m (t)382 3637 y(gew)m(arn)m(t.)48 b(So)m(w)m(ohl)34 b(diese,)f(als)f(auc) m(h)h(die)g(umgek)m(ehrte)h(K)m(om)m(bination)h(\(SMP-Mo)s(dul)382 3750 y(in)30 b(UP-Kernel\))i(ist)e(leider)h(sehr)g(instabil.)1831 5622 y(39)p eop %%Page: 40 42 40 41 bop 382 1211 a Fk(Kapitel)62 b(5)382 1676 y Fm(Implemen)-6 b(tierung)382 2171 y Fp(Es)33 b(gibt)g(zw)m(ar)h(ein)g(paar)f(w)m (enige,)i(jedo)s(c)m(h)f(in)f(der)g(Regeln)g(nic)m(h)m(t)i(aktuelle,)f (Un)m(terla-)382 2284 y(gen,)k(die)e(einem)h(b)s(ei)f(der)g(Implemen)m (tierung)j(eines)d(T)-8 b(reib)s(ers)37 b(f\374r)f(Lin)m(ux)h(b)s (ehil\035ic)m(h)382 2397 y(sind.)59 b(Nun)36 b(wurde)h(endlic)m(h)h (eine)f(Neuau\035age)h(des)e(diesb)s(ez\374glic)m(h)i(b)s(esten)f(Buc)m (hes)382 2510 y([Rub98])j(angek\374ndigt,)j(die)c(den)h(Lin)m (ux-Kernel)i(in)d(der)h(V)-8 b(ersion)40 b(2.2.x)f(ab)s(dec)m(k)m(en) 382 2622 y(soll.)h(Es)28 b(wird)h(sic)m(h)g(allerdings)g(erst)f (herausstellen,)i(ob)f(diese)g(zw)m(eite)g(Au\035age)g(wirk-)382 2735 y(lic)m(h)i(erh\344ltlic)m(h)h(ist,)f(b)s(ev)m(or)f(die)h(V)-8 b(ersion)31 b(2.4.x)f(des)h(Lin)m(ux-Kernels)h(fertig)e(ist.)382 2898 y(Auc)m(h)i(ist)g(das)g(F)-8 b(ramew)m(ork,)34 b(in)e(das)f(sic)m (h)i(ein)f(T)-8 b(reib)s(er)33 b(eingliedern)g(m)m(u\377,)h(v)m (erst\344nd-)382 3011 y(lic)m(herw)m(eise)i(auf)e(T)-8 b(reib)s(er)35 b(ausgeric)m(h)m(tet,)i(die)e(ric)m(h)m(tige)h(Hardw)m (are)f(ansprec)m(hen,)i(w)m(as)382 3124 y(nic)m(h)m(t)27 b(zuletzt)f(zu)f(einigen)h(Problemen)h(b)s(ei)e(der)h(Implemen)m (tierung)i(dieses)d(virtuellen)382 3237 y(Massensp)s(eic)m (herger\344tes)31 b(f\374hrte.)382 3400 y(Dieses)22 b(Kapitel)i(b)s (ezieh)m(t)g(sic)m(h)f(auf)g(V)-8 b(ersion)23 b(0.5.3)h(v)m(on)f(DRBD.) f(Alle)h(v)m(er\366\033en)m(tlic)m(h)m(ten)382 3512 y(V)-8 b(ersionen)21 b(v)m(on)g(DRBD)f(sind)g(un)m(ter)h(h)m (ttp://www.complang.tu)m(wien.)q(ac.at/)q(reisner/)q(drb)s(d/)382 3625 y(erh\344ltlic)m(h.)382 3962 y Fj(5.1)130 b(Struktur)382 4214 y Fp(Den)33 b(Hauptteil)g(des)f(Programmco)s(des,)j(knapp)e(2500)g (Zeilen)h(C,)e(bildet)i(ein)f(Mo)s(dul)382 4327 y(f\374r)d(den)i (Kernel,)g(das)e(ein)h(Blo)s(c)m(kger\344t)h(implemen)m(tiert.)44 b(Da)31 b(f\374r)g(die)g(K)m(on\034guration)382 4440 y(Information)46 b(v)m(om)g(An)m(w)m(ender)h(erforderlic)m(h)g(ist)e (und)g(DRBD)g(auc)m(h)h(auf)f(externe)382 4553 y(Ereignisse)d (reagieren)g(m)m(u\377,)j(k)-5 b(ann)41 b(das)g(Kernelmo)s(dul,)k(das)c (aus)g(dem)h(Userspace)382 4666 y(n)m(ur)h(als)e(Blo)s(c)m(kger\344t)i (sic)m(h)m(tbar)g(ist,)h(\374b)s(er)e(den)g(io)s(ctl\(\))h(Systemruf)e (Informationen)382 4779 y(en)m(tgegennehmen.)382 4942 y(Die)g(f\374r)g(den)h(An)m(w)m(ender)h(greifbare)f(Seite)g(der)f(io)s (ctl\(\))h(Systemrufe)f(ist)g(im)g(drb)s(d-)382 5054 y(setup)31 b(\(rund)g(350)g(Zeilen\))g(Utilit)m(y)g(implemen)m(tiert.) 43 b(Es)31 b(wird)g(un)m(ter)g(anderem)h(dazu)382 5167 y(v)m(erw)m(endet,)27 b(die)c(not)m(w)m(endigen)j(IP-A)m(dressen)d(an)h (das)f(Kernelmo)s(dul)h(w)m(eiterzugeb)s(en.)382 5280 y(Es)40 b(wurde)g(allerdings)h(so)f(ausgelegt,)j(da\377)e(sic)m(h)f(k)m (ein)g(f\374r)g(das)g(F)-8 b(unktionieren)42 b(des)382 5393 y(Ger\344tes)30 b(not)m(w)m(endiger)k(Programm)m(teil)f(im)e(drb)s (dsetup)f(Utilit)m(y)h(b)s(e\034ndet.)1831 5622 y(40)p eop %%Page: 41 43 41 42 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495 b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a Fp(Als)29 b(K)m(on)m(trast)j(dazu)e(sei)f(das)h(n)m(b)s(d-clien)m(t)i (Utilit)m(y)e(v)m(on)g(NBD)2506 506 y Fg(1)2575 539 y Fp(erw)m(\344hn)m(t.)42 b(Nb)s(d-clien)m(t)382 652 y(baut)21 b(die)g(TCP/IP-V)-8 b(erbindung)24 b(zum)d(Serv)m(er,)i(der)e(im)g(F)-8 b(alle)21 b(v)m(on)g(NBD)f(eb)s(enfalls)g(ein)382 764 y(normales)j(An)m(w)m(endungsprogramm)j(ist,)e(auf)f(und)g(\374b)s (ergibt)g(die)g(fertige)g(V)-8 b(erbindung)382 877 y(an)30 b(den)h(Kernel-Co)s(de.)382 1040 y(Da)49 b(drb)s(dsetup)h(n)m(ur)g (Information)g(w)m(eitergibt,)56 b(wird)50 b(es)f(einfac)m(her)i(sein,) j(Ro)s(ot-)382 1153 y(Filesystem-Un)m(terst\374tzung)29 b(in)f(DRBD)f(zu)h(implemen)m(tieren,)j(w)m(enn)e(DRBD)d(in)i(den)382 1266 y(Lin)m(ux-Kernel)33 b(eingebunden)f(wird.)382 1429 y(Daneb)s(en)h(gibt)h(es)e(no)s(c)m(h)i(Shell-Skripts,)g(die)g(die)f (In)m(tegration)h(v)m(on)g(DRBD)e(mit)h(der)382 1542 y(Cluster-Managemen)m(t-Soft)m(w)m(are)25 b(Heartb)s(eat)c(erm\366glic) m(hen,)k(so)m(wie)c(eine)g(Benc)m(hmark-)382 1654 y(Applik)-5 b(ation.)382 1991 y Fj(5.2)130 b(Kernel-Mo)t(dul)382 2243 y Fp(Als)23 b(T)-8 b(reib)s(er)24 b(m)m(u\377)h(DRBD)d (nat\374rlic)m(h)k(eine)e(Instanz)f(der)h(\034le_op)s(erations)h(im)e (System)382 2356 y(registrieren,)40 b(und)d(DRBD)f(m)m(u\377)i(eine)f (do_request)g(Prozedur)i(dem)e(Bu\033er-Cac)m(he)382 2469 y(zur)k(V)-8 b(erf\374gung)42 b(stellen.)73 b(W)-8 b(eiters)41 b(registriert)h(DRBD)e(einen)i(neuen)g(Ein)m(trag)g(im)382 2582 y(/pro)s(c)25 b(Filesystem,)i(\374b)s(er)e(den)h(sic)m(h)g(der)f (A)m(dministrator)i(ein)f(Bild)g(\374b)s(er)f(die)h(in)m(ternen)382 2695 y(Zust\344nde)31 b(der)g(DRBD-Ger\344te)f(v)m(ersc)m(ha\033en)i(k) -5 b(ann.)382 2988 y Fo(5.2.1)112 b(Bu\033er-Cac)m(he)382 3210 y Fp(W)-8 b(enn)35 b(der)g(Bu\033er-Cac)m(he)i(Anforderungen)f (durc)m(h)f(einen)h(Aufruf)e(der)h(do_request)382 3323 y(Prozedur)i(\374b)s(ergibt,)g(m)m(\374ssen)f(diese)f(m\366glic)m(hst)i (sc)m(hnell)f(erf\374llt)f(w)m(erden.)57 b(Handelt)382 3435 y(es)43 b(sic)m(h)i(um)f(eine)g(Au\033orderung)h(zum)f(Lesen)h (eines)e(Blo)s(c)m(k)m(es,)48 b(m)m(u\377)d(DRBD)e(den)382 3548 y(Daten)m(transfer)30 b(v)m(on)f(der)h(zugrundeliegenden)h(F)-8 b(estplatte)30 b(durc)m(hf\374hren.)42 b(Dies)29 b(wird)382 3661 y(mit)g(Hilfe)g(einer)g(temp)s(or\344ren)h(K)m(opie)h(des)d (bu\033er_heads)i(erledigt.)41 b(Diese)29 b(Metho)s(de)382 3774 y(wird)i(auc)m(h)g(b)s(eim)g(ext3)f(Dateisystem)h(v)m(erw)m (endet.)42 b([T)-8 b(w)m(e98)r(])382 3937 y(Durc)m(h)31 b(dieses)g(V)-8 b(erhalten)31 b(b)s(e\034nden)g(sind)g(immer)g(n)m(ur)g (Bl\366)s(c)m(k)m(e)g(des)g(DRBD-Ger\344tes)382 4050 y(im)48 b(Bu\033er-Cac)m(he,)54 b(Bl\366)s(c)m(k)m(e)48 b(des)f(ph)m(ysisc)m(hen)i(F)-8 b(estplattenger\344tes)50 b(liegen)e(nie)g(im)382 4163 y(Bu\033er-Cac)m(he.)382 4325 y(Bei)41 b(der)g(V)-8 b(erarb)s(eitung)42 b(einer)g(Sc)m (hreibanforderung)i(m)m(u\377)d(der)h(Daten)m(blo)s(c)m(k)g(aller-)382 4438 y(dings)23 b(auc)m(h)h(\374b)s(er)f(das)g(Netzw)m(erk)h(v)m (ersendet)g(w)m(erden.)39 b(Da)23 b(die)g(do_request\(\))h(Proze-)382 4551 y(dur)f(immer)h(im)g(K)m(on)m(text)g(eines)g(Prozesses)f (aufgerufen)2297 4518 y Fg(2)2360 4551 y Fp(wird)h(\(vgl.)38 b(Absc)m(hnitt)24 b(4.3.1)382 4664 y(auf)i(Seite)i(35\),)f(ist)g(das)f (V)-8 b(ersenden)28 b(des)e(Datenpak)m(etes)i(\374b)s(er)f(die)g(TCP-V) -8 b(erbindung)382 4777 y(ohne)41 b(w)m(eiteres)h(m\366glic)m(h.)73 b(Sollte)41 b(der)g(Pu\033ersp)s(eic)m(her)h(des)f(So)s(c)m(k)m(ets)g (v)m(oll)g(w)m(erden,)382 4890 y(blo)s(c)m(kiert)33 b(der)g(Aufruf)f(v) m(on)h(so)s(c)m(k_sendmsg\(\),)h(und)f(der)g(Proze\377,)h(der)f(die)g (Sc)m(hreib-)382 5003 y(op)s(eration)42 b(v)m(erursac)m(h)m(t)h(hat,)h (wird)e(blo)s(c)m(kiert.)74 b(Diese)41 b(Eigensc)m(haft)h(ist)f(auc)m (h)h(sehr)p 382 5064 1196 4 v 486 5118 a Ff(1)520 5150 y Fe(Net)n(w)n(ork)25 b(blo)r(c)n(k)h(device,)g(h)n(ttp://atrey)-6 b(.k)l(arlin.m\033.cuni.cz/\003pa)n(v)n(el/n)n(b)r(d/n)n(b)r(d.h)n(tml) 486 5209 y Ff(2)520 5241 y Fe(En)n(t)n(w)n(eder)37 b(im)g(K)n(on)n (text)f(eines)h(Prozesses,)43 b(der)37 b(eine)g(IO-Op)r(eration)g(durc) n(hf\374hrt,)i(o)r(der)e(im)382 5333 y(K)n(on)n(text)24 b(des)i(k\035ushd)e(o)r(der)i(kup)r(date)f(Kernel-Threads.)1831 5622 y Fp(41)p eop %%Page: 42 44 42 43 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495 b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a Fp(hilfreic)m(h,)40 b(w)m(enn)f(das)e(Computersystem,)j(das)d(die)h (Daten)m(bl\366)s(c)m(k)m(e)h(empf\344ngt,)h(lang-)382 652 y(samer)d(ist)f(als)h(das)f(sendende)i(System,)g(da)f(in)f(diesem)i (F)-8 b(all)37 b(eb)s(enfalls)f(der)h(Proze\377)382 764 y(am)31 b(sendenden)g(System)g(so)f(lange)i(blo)s(c)m(kiert)f(wird,)g (bis)g(das)f(empfangende)i(System)382 877 y(wieder)f(b)s(ereit)g(ist,)f (Daten)h(en)m(tgegenzunehmen.)382 1162 y Fn(5.2.1.1)103 b(Deadlo)s(c)m(k)382 1380 y Fp(Da)40 b(Lin)m(ux)i(eine)f(\034xe)f (Anzahl)i(an)e(Ein)m(tr\344gen)j(f\374r)d(IO-Anforderungen)i(hat)f (\(siehe)382 1493 y(4.2.2.2)26 b(auf)e(Seite)i(33\),)h(k)-5 b(ann)25 b(es)f(zu)h(einem)h(Deadlo)s(c)m(k)f(k)m(ommen,)j(w)m(enn)e (die)f(Request-)382 1606 y(Queue)31 b(k)m(eine)g(Sc)m (hreibanforderungen)j(mehr)d(aufnehmen)h(k)-5 b(ann.)382 1765 y(Kann)21 b(die)g(Request-Queue)f(k)m(eine)h(Sc)m (hreibanforderungen)j(mehr)d(aufnehmen)3114 1732 y Fg(3)3155 1765 y Fp(,)h(wird)382 1878 y(der)27 b(Proze\377,)i(dessen)d(Sc)m (hreibanforderungen)31 b(nic)m(h)m(t)d(mehr)f(Platz)h(hab)s(en,)g (einfac)m(h)g(so)382 1991 y(lange)43 b(in)f(den)h(Zustand)g(T)-8 b(ASK_UNINTERR)m(UPTIBLE)44 b(gebrac)m(h)m(t,)j(bis)c(wieder)382 2104 y(Ein)m(tr\344ge)28 b(frei)e(sind.)39 b(Dieses)25 b(Sc)m(hema)i(funktioniert)g(mit)f(normalen)i(F)-8 b(estplatten)m (trei-)382 2217 y(b)s(ern)30 b(ohne)h(Probleme.)382 2376 y(W)-8 b(enn)41 b(n)m(un)h(alle)f(Ein)m(tr\344ge)i(mit)f(Sc)m (hreibanforderungen)i(an)d(DRBD)f(b)s(elegt)h(sind,)382 2489 y(wird)36 b(der)g(Proze\377,)i(der)d(v)m(ersuc)m(h)m(t,)k(die)c (Anforderungen)i(abzuarb)s(eiten,)h(b)s(eim)e(V)-8 b(er-)382 2602 y(suc)m(h,)40 b(eine)d(Sc)m(hreibanforderung)k(an)c(den)h(darun)m (terliegenden)j(F)-8 b(estplatten)m(treib)s(er)382 2715 y(zu)33 b(senden,)i(blo)s(c)m(kiert.)50 b(Da)33 b(ab)s(er)h(k)m(eine)g (Sc)m(hreibanforderung)i(abgesc)m(hlossen)e(w)m(er-)382 2828 y(den)c(k)-5 b(ann,)30 b(ist)g(der)g(Computer)h(derart)f(blo)s(c)m (kiert,)h(da\377)f(er)g(auc)m(h)h(nic)m(h)m(t)g(mehr)g(herun-)382 2941 y(tergefahren)h(w)m(erden)f(k)-5 b(ann.)382 3100 y(Das)29 b(lo)s(op-blo)s(c)m(k-device,)j(das)d(sc)m(hon)i(sehr)e(lange) i(Bestandteil)g(des)e(Kernels)h(ist,)g(hat)382 3213 y(im)43 b(Grunde)h(dasselb)s(e)f(Problem.)80 b(Es)43 b(wurde)g(b)s(eim)g(lo)s (op-blo)s(c)m(k-device)i(dadurc)m(h)382 3326 y(gel\366st,)33 b(da\377)f(Sc)m(hreibanforderungen)k(des)31 b(lo)s(op-blo)s(c)m (k-devices)i(und)g(des)e(NBDs)h(n)m(ur)382 3439 y(ein)41 b(Drittel)h(der)f(Request-Queue)h(b)s(elegen)g(d\374rfen.)73 b(Es)41 b(handelt)h(sic)m(h)f(um)h(einen)382 3552 y(Sonderfall,)31 b(der)g(in)g(lin)m(ux/driv)m(ers/blo)s(c)m(k/ll_rw_blo)s(c)m(k.c)j (fest)c(v)m(erank)m(ert)i(wurde.)382 3711 y(DRBD)40 b(ist)h(bis)g (jetzt)g(als)g(Mo)s(dul)g(implemen)m(tiert,)47 b(da)41 b(dies)g(die)h(Installation)g(w)m(e-)382 3824 y(sen)m(tlic)m(h)47 b(v)m(ereinfac)m(h)m(t.)88 b(Daher)46 b(k)-5 b(ann)46 b(DRBD)f(k)m(einen)h(eigenen)h(Sonderfall)g(in)e(li-)382 3937 y(n)m(ux/driv)m(ers/blo)s(c)m(k/ll_rw_blo)s(c)m(k.c)38 b(hab)s(en.)50 b(Ic)m(h)34 b(hab)s(e)g(mic)m(h)h(dazu)f(en)m(tsc)m (hlossen,)382 4050 y(bis)40 b(auf)f(w)m(eiteres)j(die)e(Ma)5 b(jor)40 b(Nummer)g(des)g(net)m(w)m(ork-blo)s(c)m(k-devices)j(zu)d(v)m (erw)m(en-)382 4163 y(den.)59 b(Dadurc)m(h)38 b(k)m(\366nnen)f(Sc)m (hreibanforderungen)j(an)c(DRBD)g(n)m(ur)h(ein)g(Drittel)g(der)382 4276 y(Request-Queue)25 b(b)s(elegen,)h(und)e(es)g(k)-5 b(ann)24 b(nic)m(h)m(t)i(zu)f(dem)f(erw)m(\344hn)m(ten)j(Deadlo)s(c)m (k)e(k)m(om-)382 4389 y(men.)382 4548 y(Dadurc)m(h)33 b(en)m(tsteh)m(t)h(der)e(Nac)m(h)m(teil,)j(da\377)d(NBD)f(und)i(DRBD)e (nic)m(h)m(t)j(gleic)m(hzeitig)g(v)m(er-)382 4661 y(w)m(endet)46 b(w)m(erden)g(k)m(\366nnen.)83 b(Der)45 b(V)-8 b(orteil)45 b(liegt)g(in)g(einer)g(w)m(esen)m(tlic)m(h)i(einfac)m(heren)382 4774 y(Installation,)31 b(da)g(die)f(Implemen)m(tierung)j(als)e(Mo)s (dul)f(m\366glic)m(h)i(ist.)382 4933 y(Mit)40 b(Lin)m(ux)i(2.4)f(wird)g (diese)g(Einsc)m(hr\344nkung)i(aufgehob)s(en)e(w)m(erden)h(k)m (\366nnen,)j(w)m(eil)382 5046 y(dann)36 b(DRBD)f(seine)h(eigene)g (Request-Queue)g(hab)s(en)g(k)-5 b(ann)35 b(und)h(die)g(V)-8 b(erw)m(endung)382 5159 y(einer)31 b(eigenen)g(Ma)5 b(jor)30 b(Nummer)i(wieder)f(m\366glic)m(h)h(ist.)p 382 5217 1196 4 v 486 5271 a Ff(3)520 5302 y Fe(Nur)e(66)h(\045)f(der)h (Request-Queue)d(k)n(\366nnen)h(mit)h(Sc)n(hreibanforderungen)g (gef\374llt)h(w)n(erden,)h(das)382 5394 y(letzte)26 b(Drittel)g(steh)n (t)f(immer)f(f\374r)i(Leseanforderungen)g(zur)g(V)-6 b(erf\374gung.)1831 5622 y Fp(42)p eop %%Page: 43 45 43 44 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495 b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a Fo(5.2.2)112 b(Threads)382 755 y Fp(Am)34 b(Anfang)h(der)g(En)m(t)m (wic)m(klung)j(wurde)d(v)m(orgesehen,)i(da\377)f(der)f(Empfang)g(v)m (on)g(Da-)382 868 y(tenpak)m(eten)24 b(durc)m(h)f(einen)g(normalen)h (Proze\377)g(im)e(Userspace)h(v)m(orgenommen)h(w)m(erden)382 981 y(sollte.)40 b(Diese)29 b(V)-8 b(organgsw)m(eise)31 b(h\344tte)f(neb)s(en)f(sc)m(hlec)m(h)m(terer)j(P)m(erformance)f(und)f (k)m(om-)382 1094 y(plizierterer)i(A)m(dministration)g(v)m(or)f(allem)g (mit)g(folgendem)g(Problem)h(zu)e(k)-5 b(\344mpfen:)680 1274 y(Im)20 b(folgenden)i(wird)f(ein)f(Knoten)i(eines)e(Clusters)h(b)s (estehend)g(aus)f(zw)m(ei)i(Com-)680 1387 y(putern)31 b(b)s(etrac)m(h)m(tet.)764 1567 y(1.)46 b(Das)29 b(Ger\344t)h(des)g (Knotens)g(b)s(e\034ndet)g(sic)m(h)g(im)g(prim\344ren)h(Zustand,)f(da-) 880 1680 y(her)43 b(k)-5 b(ann)43 b(eine)g(Applik)-5 b(ation)43 b(auf)f(das)h(Blo)s(c)m(kger\344t)g(zugreifen.)78 b(Bei)880 1793 y(der)40 b(Durc)m(hf\374hrung)h(v)m(on)f(Sc)m(hreib)s (op)s(erationen)i(w)m(erden)e(K)m(opien)h(der)880 1906 y(Bl\366)s(c)m(k)m(e)h(im)g(Bu\033er-Cac)m(he)h(gesp)s(eic)m(hert.)75 b(Diese)41 b(Bl\366)s(c)m(k)m(e)h(tragen)g(die)880 2019 y(Ma)5 b(jor)30 b(Num)m(b)s(er)h(des)f(DRBD-Ger\344tes.)764 2160 y(2.)46 b(Der)39 b(Zustand)g(des)f(Clusters)g(wird)h(ge\344ndert,) j(und)d(das)f(b)s(etrac)m(h)m(tete)880 2273 y(Blo)s(c)m(kger\344t)j (wird)f(v)m(on)g(n)m(un)h(an)f(in)g(der)g(sekund\344ren)g(F)-8 b(unktion)41 b(v)m(er-)880 2386 y(w)m(endet.)764 2527 y(3.)46 b(Daten)m(bl\366)s(c)m(k)m(e)35 b(w)m(erden)g(v)m(om)e (Proze\377)i(im)e(Userspace)g(empfangen)h(und)880 2640 y(auf)g(die)h(dazugeh\366rige)h(F)-8 b(estplatte)36 b(gesc)m(hrieb)s (en.)54 b(Dab)s(ei)34 b(w)m(erden)i(sie)880 2753 y(im)28 b(Bu\033er-Cac)m(he)h(mit)f(der)g(Ma)5 b(jor)28 b(Num)m(b)s(er)g(des)f (F)-8 b(estplatten)m(treib)s(ers)880 2866 y(gesp)s(eic)m(hert.)764 3007 y(4.)46 b(Nun)f(wird)h(der)f(Cluster)h(wieder)g(in)g(den)f (urspr\374nglic)m(hen)j(Zustand)880 3120 y(gebrac)m(h)m(t.)764 3261 y(5.)e(Wird)21 b(n)m(un)g(v)m(om)h(DRBD-Ger\344t)e(gelesen,)k (liefert)d(der)g(Bu\033er-Cac)m(he)h(die)880 3374 y(Bl\366)s(c)m(k)m(e) 35 b(aus)g(Punkt)g(1,)g(ob)m(w)m(ohl)i(sie)d(in)h(Punkt)g(3)f(durc)m(h) i(neue)f(Bl\366)s(c)m(k)m(e)880 3487 y(\374b)s(ersc)m(hrieb)s(en)d (wurden.)382 3770 y Fn(5.2.2.1)103 b(Empfang)382 3986 y Fp(Um)45 b(nic)m(h)m(t)i(auf)d(dieses)h(Problem)i(zu)e(sto\377en,)k (wurde)d(das)f(Empfangen)i(v)m(on)e(Da-)382 4099 y(ten)m(bl\366)s(c)m (k)m(en)c(zu)f(einem)g(in)m(tegralen)h(Bestandteil)f(v)m(on)g(DRBD,)f (der)g(im)h(Mo)s(dul)f(als)382 4212 y(Kernel-Thread)33 b(implemen)m(tiert)g(ist.)382 4370 y(Dieser)21 b(Thread)h(w)m(artet)g (in)f(so)s(c)m(k_recvmsg\(\),)i(bis)d(ein)h(neuer)h(Daten)m(blo)s(c)m (k)g(v)m(om)f(Netz-)382 4483 y(w)m(erk)27 b(en)m(tgegengenommen)k(w)m (erden)d(k)-5 b(ann.)40 b(Danac)m(h)28 b(wird)f(v)m(om)h(Bu\033er-Cac)m (he)g(Puf-)382 4596 y(fersp)s(eic)m(her)e(f\374r)g(den)g(en)m(tsprec)m (henden)j(Blo)s(c)m(k)c(angefordert,)j(und)f(die)f(Daten)g(w)m(erden) 382 4709 y(direkt)615 4676 y Fg(4)692 4709 y Fp(in)38 b(diesem)g(Sp)s(eic)m(her)h(empfangen.)63 b(Bei)38 b(der)g(L\366sung)g (mit)g(dem)g(Daemon-)382 4822 y(Proze\377)23 b(im)f(Userspace)g (h\344tten)h(die)f(Daten)g(zuerst)g(in)g(den)h(A)m(dre\377raum)g(des)f (Daemons)382 4935 y(k)m(opiert)j(w)m(erden)h(m)m(\374ssen,)g(um)f(dann) g(v)m(on)g(dort)g(wiederum)h(in)e(den)h(Bu\033er-Cac)m(he)h(k)m(o-)382 5047 y(piert)c(zu)f(w)m(erden.)39 b(Danac)m(h)23 b(wird)f(der)f(Befehl) h(gegeb)s(en,)h(den)f(Blo)s(c)m(k)f(im)h(Bu\033er-Cac)m(he)382 5160 y(auf)30 b(die)h(F)-8 b(estplatte)31 b(zu)g(sc)m(hreib)s(en.)p 382 5217 1196 4 v 486 5271 a Ff(4)520 5302 y Fe(W)-6 b(enn)26 b(die)i(Netzw)n(erkk)l(arte)e(Daten)h(empf\344ngt,)h(w)n (erden)f(diese)h(zuerst)f(im)g(Pu\033ersp)r(eic)n(her)h(des)382 5394 y(So)r(c)n(k)n(ets)d(abgelegt)i(und)e(v)n(on)g(dort)g(dann)g(mit)g (so)r(c)n(k_recvmsg\(\))g(k)n(opiert.)1831 5622 y Fp(43)p eop %%Page: 44 46 44 45 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495 b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a Fp(Sollte)24 b(DRBD)f(einmal)i(erw)m(eitert)g(w)m(erden,)i(um)d(den)g (Einsatz)g(v)m(on)g(GFS)f(\374b)s(er)h(DRBD)382 652 y(zu)41 b(erm\366glic)m(hen,)46 b(so)40 b(m)m(u\377)i(un)m(ter)f(anderem)h (hier)g(eine)f(\304nderung)g(v)m(orgenommen)382 764 y(w)m(erden.)h (DRBD)28 b(m)m(\374\377te)j(b)s(eim)e(Empfang)i(v)m(on)f(Daten)m (bl\366)s(c)m(k)m(en)h(direkt)f(auf)f(die)h(ph)m(y-)382 877 y(sisc)m(he)21 b(F)-8 b(estplatte)22 b(sc)m(hreib)s(en)g(und)g (d\374rfte)f(den)h(Blo)s(c)m(k)f(nic)m(h)m(t)h(zuerst)f(im)h (Bu\033er-Cac)m(he)382 990 y(un)m(terbringen,)30 b(da)d(GFS)g(eb)s (enfalls)g(auf)f(diese)h(Bl\366)s(c)m(k)m(e)h(des)e(Bu\033er-Cac)m(hes) j(zugreifen)382 1103 y(w\374rde.)50 b(Ohne)33 b(diese)h(\304nderung)g (w\374rde)g(auc)m(h)g(jeder)f(Daten)m(blo)s(c)m(k)i(endlos)f(hin)f(und) 382 1216 y(her)e(gesendet)g(w)m(erden.)382 1378 y(Der)45 b(Thread)h(ist,)j(w)m(enn)e(das)e(DRBD-Ger\344t)g(mit)g(einem)h(P)m (artnerger\344t)i(v)m(erbun-)382 1490 y(den)g(wurde,)53 b(mit)48 b(dem)g(ps-K)m(ommando)i(sic)m(h)m(tbar)f(und)f(tr\344gt)g (z.B.)g(den)g(Namen)382 1603 y(\022drb)s(dd_0\021,)36 b(w)m(ob)s(ei)f(die)g(Zi\033er)f(immer)h(die)g(Minor)f(Num)m(b)s(er)h (des)f(Ger\344tes)g(anzeigt,)382 1716 y(zu)c(dem)h(der)g(Thread)g (geh\366rt.)382 2004 y Fn(5.2.2.2)103 b(Senden)382 2224 y Fp(W\344hrend)41 b(das)e(Senden)i(der)g(Daten)f(im)g(K)m(on)m(text)i (jenes)d(Prozesses)h(durc)m(hgef\374hrt)382 2337 y(wird,)27 b(der)f(den)g(Aufruf)f(der)h(do_request\(\))h(Prozedur)g(v)m(erursac)m (h)m(t)h(hat,)f(gibt)f(es)f(auc)m(h)382 2450 y(Ereignisse,)k(die)f(das) g(Senden)h(eines)f(P)m(ak)m(etes)h(ausl\366sen,)g(die)f(allerdings)h (nic)m(h)m(t)h(inner-)382 2563 y(halb)h(eines)f(Proze\377k)m(on)m (textes)j(auftreten.)41 b(Beispiele:)518 2821 y Fd(\017)46 b Fp(Der)e(T)-8 b(reib)s(er)44 b(der)g(F)-8 b(estplatte)44 b(meldet,)k(da\377)43 b(eine)h(Sc)m(hreib)s(op)s(eration)i(abge-)609 2933 y(sc)m(hlossen)37 b(ist.)59 b(W)-8 b(enn)37 b(n)m(un)g(dieser)g (Blo)s(c)m(k)f(in)h(der)g(momen)m(tanen)i(Menge)e(f\374r)609 3046 y(die)j(Bestimm)m(ung)h(der)e(W)-8 b(rite-Barriers)41 b(en)m(thalten)g(ist,)h(so)d(m)m(u\377)h(ein)g(W)-8 b(rite-)609 3159 y(Barrier-P)m(ak)m(et)33 b(gesendet)e(w)m(erden.)518 3346 y Fd(\017)46 b Fp(Der)e(T)-8 b(reib)s(er)44 b(der)g(F)-8 b(estplatte)44 b(meldet,)k(da\377)43 b(eine)h(Sc)m(hreib)s(op)s (eration)i(abge-)609 3459 y(sc)m(hlossen)31 b(ist.)40 b(W)-8 b(enn)30 b(dieser)h(Blo)s(c)m(k)f(v)m(on)g(einer)h(\334b)s (ertragung)f(mit)h(Protok)m(oll)609 3571 y(C)j(\(o)s(der)g(dem)g (Resync)m(hronisationsproze\377\))i(stamm)m(t,)f(m)m(u\377)g(ein)f(W)-8 b(rite-A)m(c)m(k-)609 3684 y(P)m(ak)m(et)32 b(gesendet)f(w)m(erden.)382 3942 y(F)-8 b(estplatten)m(treib)s(er)29 b(rufen)d(diesen)h(Callbac)m (k,)i(\374b)s(er)d(den)h(sie)f(diese)g(Ereignisse)h(signa-)382 4055 y(lisieren,)f(normalerw)m(eise)h(aus)e(einem)g(Bottom-Half)g(aus)g (auf,)g(der)g(an)g(den)g(In)m(terrupt,)382 4168 y(den)31 b(die)f(F)-8 b(estplatte)32 b(b)s(eim)e(Absc)m(hlu\377)h(der)g(Op)s (eration)g(erzeugt,)g(gek)m(opp)s(elt)h(ist.)40 b(Ein)382 4280 y(Bottom-Half)c(hat)g(k)m(einen)g(Proze\377k)m(on)m(text,)k(daher) c(k)m(\366nnen)g(auc)m(h)h(k)m(eine)f(Prozedu-)382 4393 y(ren,)31 b(die)f(ev)m(en)m(tuell)j(sc)m(hlafen,)e(aufgerufen)g(w)m (erden.)382 4555 y(Um)25 b(die)g(not)m(w)m(endigen)j(P)m(ak)m(ete)e(do) s(c)m(h)g(v)m(ersenden)f(zu)g(k)m(\366nnen,)j(gibt)d(es)f(einen)i(zw)m (eiten)382 4668 y(Kernel-Thread.)44 b(Dieser)31 b(Thread)h(w)m(artet)g (in)g(der)f(asender_w)m(ait)i(W)-8 b(ait-Queue,)33 b(bis)382 4781 y(er)k(v)m(on)g(einem)h(Bottom-Half)g(aus)f(gew)m(ec)m(kt)h(wird.) 61 b(Um)37 b(w)m(elc)m(hes)i(Ereignis)e(es)g(sic)m(h)382 4894 y(handelt)42 b(und)g(w)m(elc)m(he)h(Aktion)e(daher)h(zu)f(setzen)h (ist,)h(stellt)f(dieser)f(Thread)h(\374b)s(er)382 5006 y(V)-8 b(ariablen)37 b(fest,)f(die)f(mit)h(den)g(anderen)g(Programm)m (teilen)j(gemeinsam)d(v)m(erw)m(endet)382 5119 y(w)m(erden.)382 5281 y(Diese)26 b(Threads)h(sind)f(im)h(System)f(un)m(ter)h(der)g (Bezeic)m(hn)m(ung)i(\022drb)s(d_asender_X\021)35 b(zu)382 5394 y(\034nden,)c(w)m(ob)s(ei)g(das)g(X)e(eb)s(enfalls)i(die)f(Minor)h (Nummer)g(des)f(Ger\344tes)h(wiedergibt.)1831 5622 y(44)p eop %%Page: 45 47 45 46 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495 b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a Fn(5.2.2.3)103 b(Sync)m(hronisation)382 760 y Fp(F)-8 b(alls)45 b(neb)s(en)f(der)h(automatisc)m(h)i(durc)m(hgef\374hrten)g (Replik)-5 b(ation)45 b(der)f(Daten)m(bl\366)s(c)m(k)m(e)382 873 y(eine)30 b(Sync)m(hronisation)h(wie)f(in)g(Absc)m(hnitt)g(3.4)g (auf)g(Seite)g(26)f(b)s(esc)m(hrieb)s(en)i(durc)m(hge-)382 986 y(f\374hrt)g(wird,)g(so)g(wird)g(dies)g(durc)m(h)h(einen)f(eigenen) h(Kernel-Thread)h(erledigt.)43 b(Dieser)382 1099 y(Thread)26 b(l\344uft)g(n)m(ur)g(w)m(\344hrend)i(des)d(Sync)m(hronisationsv)m (organges)j(auf)e(jenem)f(Knoten,)382 1212 y(v)m(on)31 b(dem)f(aus)h(die)f(Daten)h(v)m(ersendet)h(w)m(erden.)382 1374 y(Bei)44 b(der)g(\374blic)m(hen)i(V)-8 b(organgsw)m(eise,)49 b(um)44 b(Daten)h(v)m(on)f(einem)h(Blo)s(c)m(kger\344t)g(zu)f(b)s(e-) 382 1487 y(k)m(ommen,)37 b(wird)e(zuerst)g(der)g(Blo)s(c)m(k)g(v)m(om)g (Bu\033er-Cac)m(he)i(angefordert)f(und)f(\026)g(falls)382 1600 y(dieser)g(nic)m(h)m(t)h(aktuell)f(ist)g(\026)g(w)m(erden)h(die)f (Daten)g(v)m(om)h(Ger\344t)f(mit)g(ll_rw_blo)s(c)m(k\(\))382 1713 y(eingelesen.)382 1876 y(Eine)43 b(der)h(Anforderungen)g(an)f(den) g(Sync)m(hronisationsmec)m(hanism)m(us)j(ist,)g(da\377)d(er)382 1989 y(parallel)38 b(zum)f(Normalb)s(etrieb)i(laufen)e(m)m(u\377.)61 b(Im)37 b(normalen)h(Betrieb)g(arb)s(eitet)f(al-)382 2102 y(lerdings)d(ein)f(Dateisystem)g(aktiv)g(mit)g(dem)h(Bu\033er-Cac) m(he.)50 b(Es)33 b(k)-5 b(ann)34 b(z.B.)f(Bl\366)s(c)m(k)m(e)382 2215 y(anfordern,)j(sie)d(einlesen,)j(Mo)s(di\034k)-5 b(ationen)34 b(durc)m(hf\374hren,)j(sie)c(freigeb)s(en)2972 2182 y Fg(5)3046 2215 y Fp(o)s(der)h(ex-)382 2327 y(plizit)d(das)f (Zur\374c)m(ksc)m(hreib)s(en)j(v)m(erlangen.)382 2490 y(W\374rde)i(der)h(Kernel-Thread,)j(der)c(die)g(Sync)m(hronisation)j (durc)m(hf\374hrt,)g(die)d(\374blic)m(he)382 2603 y(V)-8 b(organgsw)m(eise)31 b(b)s(eim)e(Einlesen)h(v)m(on)g(Daten)f(an)m(w)m (enden,)j(w\374rde)e(der)g(Bu\033er-Cac)m(he)382 2716 y(einfac)m(h)35 b(die)f(A)m(dressen)g(der)g(Bl\366)s(c)m(k)m(e)g(im)g (Sp)s(eic)m(her)h(auc)m(h)g(an)f(das)g(DRBD-Ger\344t)g(b)s(e-)382 2829 y(k)-5 b(ann)m(tgeb)s(en,)28 b(und)d(es)g(k)m(\366nn)m(ten)i (Daten)f(auf)f(die)h(gespiegelte)h(F)-8 b(estplatte)26 b(gesc)m(hrieb)s(en)382 2942 y(w)m(erden,)32 b(die)f(das)f(Filesystem)g (no)s(c)m(h)h(gar)g(nic)m(h)m(t)h(sc)m(hreib)s(en)f(will)2607 2909 y Fg(6)2647 2942 y Fp(.)382 3105 y(Daher)i(m)m(u\377)h(der)f (Bu\033er-Cac)m(he)i(b)s(eim)e(Einlesen)h(der)f(Daten)g(f\374r)g(die)g (Sync)m(hronisa-)382 3217 y(tion)k(umgangen)i(w)m(erden.)62 b(Dab)s(ei)37 b(wird,)j(\344hnlic)m(h)e(wie)g(in)f(5.2.1)g(mit)h(einem) g(selbst)382 3330 y(erzeugten)32 b(bu\033er_head)f(gearb)s(eitet.)382 3493 y(Die)c(Implemen)m(tierung)j(des)e(Bitfeldes)f(wurde)h(v)m(om)g (Rest)f(durc)m(h)h(eine)g(Sprungtab)s(el-)382 3606 y(le)34 b(k)m(omplett)h(getrenn)m(t.)53 b(Das)33 b(erm\366glic)m(h)m(t,)k (da\377)e(das)e(Bitfeld)h(durc)m(h)h(andere)g(Imple-)382 3719 y(men)m(tierungen)g(ersetzt)d(wird.)47 b(So)32 b(k)m(\366nn)m(te)i (eine)e(Implemen)m(tierung,)k(die)c(mit)h(einem)382 3832 y(Filesystem)24 b(in)m(tegriert)i(ist,)f(Informationen)g(aus)f(dem)h (Filesystem)f(heranziehen,)j(um)382 3945 y(den)k(Sync)m(hronisationsv)m (organg)i(b)s(esser)d(zu)g(steuern.)382 4238 y Fo(5.2.3)112 b(Datenstrukturen)382 4459 y Fp(Wie)29 b(b)s(ereits)h(erw)m(\344hn)m (t,)i(greifen)d(die)h(Threads)g(auf)g(einige)g(gemeinsame)h(Ressourcen) 382 4572 y(zu.)72 b(F\374r)41 b(Datenstrukturen)h(wurden)g(aussc)m (hlie\377lic)m(h)h(Spinlo)s(c)m(ks)e(v)m(erw)m(endet.)74 b(Da)382 4685 y(die)33 b(Zugri\033e)g(auf)f(diese)h(Datenstrukturen)h (sehr)e(kurz)h(sind,)g(w)m(\344ren)h(Semaphore)g(zu)382 4798 y(aufw)m(endig.)p 382 4860 1196 4 v 486 4913 a Ff(5)520 4945 y Fe(Ein)i(Blo)r(c)n(k,)i(der)e(mo)r(di\034ziert)f(und)f (freigegeb)r(en)j(wurde,)h(wird)e(sp\344ter)f(durc)n(h)g(k\035ushd)e(o) r(der)382 5036 y(kup)r(date)25 b(zur\374c)n(kgesc)n(hrieb)r(en.)486 5096 y Ff(6)520 5128 y Fe(Da)19 b(genau)h(dieser)g(F)-6 b(ehler)19 b(v)n(om)g(Kernel-Thread)g(f\374r)g(die)h(Sync)n (hronisation)f(des)h(Soft)n(w)n(are-Raid-)382 5219 y(Subsystems)26 b(un)n(ter)h(Lin)n(ux)g(gemac)n(h)n(t)g(wird,)j(ist)e(momen)n(tan)e (\(Lin)n(ux)h(2.2.x\))h(die)h(V)-6 b(erw)n(endung)26 b(v)n(on)382 5310 y(JFSs)g(auf)g(Soft)n(w)n(are-Raid)g(un)n(ter)f(Lin)n (ux)g(nic)n(h)n(t)g(m\366glic)n(h.)1831 5622 y Fp(45)p eop %%Page: 46 48 46 47 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495 b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a Fn(transfer_log)45 b Fp(Im)40 b(transfer_log,)k(das)d(als)f (Ringpu\033ersp)s(eic)m(her)i(organisiert)g(ist,)609 652 y(w)m(erden)50 b(Referenzen)e(auf)f(die)i(gesendeten)g(Bl\366)s(c)m (k)m(e)f(gesp)s(eic)m(hert.)94 b(Eb)s(enso)609 764 y(w)m(erden)42 b(gesendete)f(write-barriers)i(im)d(transfer_log)i(abgelegt.)72 b(Wird)40 b(ein)609 877 y(Best\344tigungspak)m(et)34 b(f\374r)e(ein)h(W)-8 b(rite-Barrier-P)m(ak)m(et)36 b(empfangen,)e(k)m (\366nnen)f(al-)609 990 y(le)j(Ein)m(tr\344ge)i(im)e(transfer_log,)i (die)e(v)m(or)g(der)g(dazugeh\366rigen)i(W)-8 b(rite-Barrier)609 1103 y(liegen,)31 b(freigegeb)s(en)f(w)m(erden.)41 b(Die)30 b(Menge)f(f\374r)g(die)h(Bestimm)m(ung)h(der)f(W)-8 b(rite-)609 1216 y(Barriers)28 b(sind)f(all)g(jene)g(Ein)m(tr\344ge,)j(die)e(nac)m (h)g(der)f(j\374ngsten)h(W)-8 b(rite-Barrier)29 b(ins)609 1329 y(transfer_log)i(eingetragen)i(wurden.)609 1442 y(Auf)e(das)f(transfer_log)i(wird)g(somit)f(aus)g(der)g(do_request\(\)) h(Prozedur,)h(v)m(om)609 1555 y(Empfangs-Thread,)27 b(v)m(om)c (Sende-Thread)i(und)e(v)m(om)g(K)m(on)m(text)i(eines)e(Bottom-)609 1668 y(Half)k(aus)g(zugegri\033en.)40 b(Um)27 b(auc)m(h)h(die)g(A)m (tomizit\344t)g(gegen)m(\374b)s(er)h(dem)f(Bottom-)609 1781 y(Half)k(gew)m(\344hrleisten)i(zu)e(k)m(\366nnen,)h(m)m(u\377)g (ein)f(Spinlo)s(c)m(k)h(mit)f(den)g(_irqsa)m(v)m(e\(\))h(/)609 1894 y(_irqrestore\(\))f(Op)s(erationen)f(eingesetzt)h(w)m(erden.)382 2081 y Fn(ep)s(o)s(c)m(h_set)46 b Fp(Das)29 b(ep)s(o)s(c)m(h_set)i (wird)f(b)s(eim)g(Empfang)h(v)m(on)g(Daten)m(bl\366)s(c)m(k)m(en)h(v)m (erw)m(en-)609 2194 y(det,)d(um)f(dort)g(Referenzen)h(auf)e(die)h (empfangenen)i(Bl\366)s(c)m(k)m(e)e(abzulegen.)41 b(Wird)609 2307 y(ein)36 b(W)-8 b(rite-Barrier-P)m(ak)m(et)39 b(empfangen,)g(m)m (u\377)d(auf)g(die)g(Beendigung)h(der)f(IO-)609 2420 y(Op)s(erationen)22 b(aller)f(im)f(ep)s(o)s(c)m(h_set)h(en)m(thaltenen) i(Bl\366)s(c)m(k)m(e)e(gew)m(artet,)j(das)c(ep)s(o)s(c)m(h_set)609 2533 y(geleert)48 b(und)g(ansc)m(hlie\377end)h(die)e(Best\344tigung)h (der)g(W)-8 b(rite-Barrier)49 b(an)e(den)609 2646 y(Absender)f (zur\374c)m(kgesc)m(hic)m(kt)i(w)m(erden.)88 b(Der)46 b(Sende-Thread)i(m)m(u\377)e(auf)g(das)609 2759 y(ep)s(o)s(c)m(h_set)31 b(zugreifen,)g(um)f(festzustellen,)g(f\374r)g(w)m(elc)m(he)i(Bl\366)s (c)m(k)m(e)e(eine)h(Sc)m(hreib-)609 2872 y(b)s(est\344tigung)g (gesendet)g(w)m(erden)h(k)-5 b(ann.)609 2984 y(Das)45 b(ep)s(o)s(c)m(h_set)h(m)m(u\377)h(daher)f(v)m(om)g(Empfangs-Thread)i (und)e(v)m(om)g(Sende-)609 3097 y(Thread)41 b(v)m(erw)m(endet)h(w)m (erden.)72 b(Ein)40 b(Spinlo)s(c)m(k)h(ist)f(f\374r)g(die)g(Sync)m (hronisation)609 3210 y(der)31 b(Zugri\033e)g(ausreic)m(hend.)382 3398 y Fn(sync_log)44 b Fp(Das)29 b(sync_log)g(ist)f(eb)s(enfalls)h (eine)g(Datenstruktur,)h(die)f(auf)g(der)g(Emp-)609 3511 y(f\344ngerseite)21 b(v)m(erw)m(endet)i(wird.)37 b(Da)21 b(Daten)m(bl\366)s(c)m(k)m(e,)j(die)d(v)m(om)g(Sync)m(hronisations-)609 3624 y(Thread)h(stammen,)h(nic)m(h)m(t)g(am)e(W)-8 b(rite-Barrier)22 b(Protok)m(oll)h(teilnehmen,)h(w)m(erden)609 3737 y(Referenzen)29 b(auf)g(diese)g(Bl\366)s(c)m(k)m(e)g(hier)g(gesp)s(eic)m(hert,)i(bis)d (deren)i(Sc)m(hreibb)s(est\344ti-)609 3850 y(gung)h(an)g(den)f (Absender)h(zur\374c)m(kgesc)m(hic)m(kt)i(w)m(erden)f(k)-5 b(ann.)609 3962 y(Das)36 b(sync_log)g(wird)g(eb)s(enfalls)f(v)m(om)h (Empfangs-Thread)i(und)e(v)m(om)h(Sende-)609 4075 y(Thread)32 b(v)m(erw)m(endet,)g(daher)f(ist)f(ein)h(normaler)h(Spinlo)s(c)m(k)f (ausreic)m(hend.)382 4263 y Fn(BitMap)46 b Fp(Das)29 b(v)m(om)i(sc)m(hnellen)g(Sync)m(hronisationsmec)m(hanism)m(us)i(v)m (erw)m(endete)f(Bit-)609 4376 y(feld)j(\(siehe)h(Punkt)f(3.4.1)h(auf)f (Seite)h(26\))f(m)m(u\377)h(v)m(or)g(gleic)m(hzeitigen)i(Zugri\033en) 609 4489 y(aus)28 b(mehreren)h(Proze\377k)m(on)m(texten)h(gesc)m(h)m (\374tzt)g(w)m(erden,)g(daher)e(wird)h(ein)f(Spin-)609 4602 y(lo)s(c)m(k)j(v)m(erw)m(endet.)382 4789 y Fn (need_to_issue_barrier)44 b Fp(V)-8 b(on)46 b(dieser)f(V)-8 b(ariable)45 b(wird)h(n)m(ur)f(ein)g(einziges)g(Bit)609 4902 y(v)m(erw)m(endet.)56 b(Ist)34 b(dieses)h(Bit)g(gesetzt,)i(wird)e (v)m(or)g(dem)h(Senden)f(des)g(n\344c)m(hsten)609 5015 y(Datenpak)m(etes)48 b(ein)f(W)-8 b(rite-Barrier-P)m(ak)m(et)51 b(v)m(ersc)m(hic)m(kt.)91 b(Do)s(c)m(h)47 b(der)h(Sende-)609 5128 y(Thread)j(v)m(ersuc)m(h)m(t)g(eb)s(enfalls,)j(w)m(enn)c(dieses)f (Bit)h(gesetzt)f(ist,)54 b(das)c(W)-8 b(rite-)609 5241 y(Barrier-P)m(ak)m(et)39 b(zu)e(v)m(ersc)m(hic)m(k)m(en.)61 b(Im)36 b(Quellco)s(de)h(sind)g(diese)f(Read-Mo)s(dify-)609 5354 y(W)-8 b(rite-Zugri\033e)39 b(auf)e(dieses)g(Bit)g(durc)m(h)h (atomare)g(Op)s(erationen)h(ausgef\374hrt,)1831 5622 y(46)p eop %%Page: 47 49 47 48 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495 b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 609 539 a Fp(damit)28 b(ein)f(need_to_issue_barrier)j(Bit)d(nic)m(h)m(t)i(zw)m (eimal)f(v)m(ersc)m(hic)m(kt)h(w)m(erden)609 652 y(k)-5 b(ann.)609 764 y(Do)s(c)m(h)34 b(dies)f(ist)g(n)m(ur)h(mehr)g(zu)f (Dokumen)m(tationszw)m(ec)m(k)m(en)k(im)d(Quelltext)g(v)m(or-)609 877 y(handen,)d(denn)e(auf)g(das)g(Bit)g(darf)g(erst)g(nac)m(h)h (Erhalt)g(der)f(send_m)m(utex)i(zuge-)609 990 y(gri\033en)23 b(w)m(erden,)j(da)d(man)g(das)g(P)m(ak)m(et)h(so)m(wieso)g(senden)f(m)m (u\377)g(und)h(diese)f(Aktion)609 1103 y(an)31 b(der)f(ric)m(h)m(tigen) j(Stelle)e(im)g(transfer_log)g(eingetragen)h(w)m(erden)g(m)m(u\377.)382 1282 y Fn(request.rq_status)46 b Fp(Da)31 b(b)s(ei)g(einer)g(Sc)m (heibanforderung)k(auf)c(den)g(Absc)m(hlu\377)h(v)m(on)609 1395 y(zw)m(ei)41 b(Op)s(erationen)g(gew)m(artet)h(w)m(erden)f(m)m (u\377,)i(wird)e(im)f(Statusfeld)g(des)g(Re-)609 1508 y(quests)g(festgehalten,)j(w)m(elc)m(he)f(Op)s(eration)f(b)s(ereits)f (abgesc)m(hlossen)h(ist.)69 b(Die)609 1621 y(Prozedur,)49 b(die)44 b(dieses)g(F)-8 b(eld)44 b(b)s(earb)s(eitet,)k(liest)c(zuerst) g(den)g(W)-8 b(ert)44 b(ein)g(und)609 1734 y(sc)m(hreibt)26 b(ihn)g(ansc)m(hlie\377end)h(zur\374c)m(k.)39 b(W)-8 b(eil)26 b(es)e(zumindest)i(einen)g(F)-8 b(estplatten-)609 1847 y(treib)s(er,)28 b(der)e(diese)g(Prozedur)h(\(\374b)s(er)f(den)h (Callbac)m(k,)h(der)e(den)g(Absc)m(hlu\377)h(einer)609 1960 y(IO-Op)s(eration)36 b(signalisiert,\))i(aus)d(dem)g(K)m(on)m (text)i(eines)e(In)m(terrupts)h(aufruft,)609 2073 y(gibt,)28 b(m)m(\374ssen)f(der)f(Lesezugri\033)h(und)g(der)g(Sc)m(hreibzugri\033) h(mit)f(einem)g(Spinlo)s(c)m(k)609 2186 y(zusammengefa\377t)32 b(w)m(erden.)382 2365 y Fn(So)s(c)m(k)m(et)46 b Fp(Da)d(aus)g(mehreren) i(Proze\377k)m(on)m(texten)2115 2332 y Fg(7)2200 2365 y Fp(und)f(dem)f(Sende-Thread)i(\374b)s(er)609 2478 y(den)37 b(So)s(c)m(k)m(et)h(gesendet)f(wird,)j(m)m(u\377)d(die)g(Sendeop)s (eration)i(mit)e(einem)h(Sema-)609 2591 y(phor)25 b(gesic)m(hert)g(w)m (erden,)i(da)d(sonst)g(ein)h(zuf\344lliges)f(Gemisc)m(h)h(der)f(Daten)m (bl\366)s(c)m(k)m(e)609 2704 y(en)m(tsteh)m(t.)609 2816 y(Dieses)j(Semaphor,)i(mit)e(dem)g(Namen)g(send_m)m(utex,)i(stellt)e (eb)s(enfalls)g(sic)m(her,)609 2929 y(da\377)34 b(die)g(Ein)m (tragungen)i(in)e(das)f(transfer_log)h(in)g(genau)g(derselb)s(en)g (Reihen-)609 3042 y(folge)d(erfolgen,)g(in)f(der)h(auc)m(h)g(die)g (Daten)m(bl\366)s(c)m(k)m(e)i(v)m(ersendet)e(w)m(erden.)382 3323 y Fo(5.2.4)112 b(Protok)m(oll)382 3536 y Fp(Da)25 b(der)g(Lin)m(ux-Kernel)i(auf)d(einer)i(Vielzahl)f(v)m(on)g(Hardw)m (areplattformen)j(l\344uft,)e(wur-)382 3649 y(de)40 b(v)m(om)h(Anfang)f (an)g(darauf)h(geac)m(h)m(tet,)k(da\377)40 b(DRBD)g(so)g(implemen)m (tiert)j(ist,)f(da\377)382 3762 y(DRBD-Ger\344te,)36 b(die)f(auf)f(un)m(tersc)m(hiedlic)m(hen)k(Hardw)m(areplattformen)g (laufen,)e(mit-)382 3875 y(einander)e(k)m(omm)m(unizieren)h(k)m (\366nnen.)47 b(Daher)33 b(wird)g(f\374r)g(die)f(Daten)h(in)g(den)g(P)m (ak)m(eten)382 3988 y(die)e(Big-Endian-Byteorder)i(v)m(erw)m(endet.)382 4142 y(Allen)d(P)m(ak)m(eten)j(ist)d(folgender)h(Header)g(gemeinsam:) 609 4371 y Fc(typedef)47 b(struct)g({)609 4484 y(__u32)g(magic;)609 4597 y(__u16)g(command;)609 4709 y(__u16)g(length;)609 4822 y(})g(Drbd_Packet;)382 5051 y Fp(Die)21 b(v)m(erw)m(endeten)i (Daten)m(t)m(yp)s(en)f(sind)e(in)h(den)g(Include-Dateien)h(v)m(on)f (Lin)m(ux)h(de\034niert,)382 5164 y(w)m(ob)s(ei)31 b(u16)g(b)s (edeutet,)g(da\377)g(es)f(sic)m(h)h(um)f(ein)h(unsigned)g(in)m(t)g(mit) g(16)f(Bit)h(handelt.)p 382 5217 1196 4 v 486 5271 a Ff(7)520 5302 y Fe(Es)21 b(k)n(\366nn)n(ten)d(b)r(eliebig)j(viele)g (Prozesse)g(das)f(Blo)r(c)n(kger\344t)i(gleic)n(hzeit)f(\366\033nen,)g (sc)n(hreib)r(en,)h(fsync\(2\))382 5394 y(o)r(der)k(fdatasync\(2\))g (aufrufen.)1831 5622 y Fp(47)p eop %%Page: 48 50 48 49 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495 b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a Fn(magic)45 b Fp(Es)39 b(handelt)h(sic)m(h)g(dab)s(ei)f(um)h(eine)f(K)m (onstan)m(te.)69 b(Auf)38 b(der)h(Empfangsseite)609 652 y(wird)d(diese)f(Zahl)h(immer)g(auf)f(ihre)h(K)m(orrektheit)h(\374b)s (erpr\374ft.)55 b(Ist)35 b(sie)g(einmal)609 764 y(nic)m(h)m(t)i(k)m (orrekt)f(v)m(orhanden,)i(wird)e(da)m(v)m(on)h(ausgegangen,)h(da\377)e (ein)g(F)-8 b(ehler)36 b(im)609 877 y(Programm)c(v)m(orliegt,)g(und)f (die)f(V)-8 b(erbindung)32 b(wird)f(un)m(terbro)s(c)m(hen.)382 1064 y Fn(command)44 b Fp(Dieses)33 b(F)-8 b(eld)34 b(dien)m(t)g(dazu,) h(die)e(F)-8 b(unktion)34 b(der)g(folgenden)g(Daten,)h(also)609 1177 y(den)27 b(T)m(yp)g(des)f(gesam)m(ten)h(P)m(ak)m(etes,)i (festzulegen.)40 b(F)-8 b(olgende)28 b(W)-8 b(erte)27 b(sind)f(m\366g-)609 1290 y(lic)m(h:)57 b(Data,)41 b(Barrier,)g(RecvA)m (c)m(k,)f(W)-8 b(riteA)m(c)m(k,)42 b(BarrierA)m(c)m(k,)f(Rep)s(ortP)m (arams,)609 1403 y(BlkSizeChanged)32 b(und)f(CStateChanged.)382 1590 y Fn(length)45 b Fp(Gibt)31 b(die)g(L\344nge)g(des)f(Daten)m (teils)i(des)e(P)m(ak)m(etes)i(an.)382 1878 y Fn(5.2.4.1)103 b(Datenpak)m(et)609 2050 y Fc(typedef)47 b(struct)g({)609 2163 y(__u64)g(block_nr;)609 2276 y(__u64)g(block_id;)609 2389 y(})g(Drbd_Data_P;)382 2648 y Fp(Datenpak)m(ete)38 b(b)s(einhalten)g(die)f(eigen)m(tlic)m(he)i(Nutzinformation.)61 b(Die)37 b(Daten)g(selbst)382 2761 y(folgen)31 b(diesem)f(Header.)382 3020 y Fn(blo)s(c)m(k_nr)44 b Fp(Die)30 b(Blo)s(c)m(kn)m(ummer)j(des)d (Daten)m(blo)s(c)m(k)m(es.)382 3207 y Fn(blo)s(c)m(k_id)44 b Fp(Mit)31 b(Hilfe)g(dieser)g(64)h(Bits)f(wird)g(einerseits)h(un)m (tersc)m(hieden,)i(ob)d(es)g(sic)m(h)609 3319 y(um)f(einen)h(Daten)m (blo)s(c)m(k,)g(der)f(am)g(W)-8 b(rite-Barrier-Protok)m(oll)34 b(teilnimm)m(t,)d(o)s(der)609 3432 y(einen)k(Blo)s(c)m(k)f(des)g(Sync)m (hronisationsprozesses)i(handelt.)52 b(Der)34 b(Inhalt)h(dieses)609 3545 y(F)-8 b(eldes)28 b(wird)g(auc)m(h)h(b)s(ei)e(einem)h (Best\344tigungspak)m(et)h(wieder)g(zur\374c)m(kgesc)m(hic)m(kt.)609 3658 y(Bei)42 b(Protok)m(oll)i(C)d(legt)i(hier)f(der)g(sendende)h (Knoten)f(die)h(A)m(dresse)e(der)i(IO-)609 3771 y(Au\033orderung)38 b(ab.)61 b(Dadurc)m(h)38 b(k)-5 b(ann)37 b(b)s(eim)g(Empfang)h(des)f (zugeh\366rigen)h(Be-)609 3884 y(st\344tigungspak)m(etes,)32 b(das)f(dieses)f(F)-8 b(eld)31 b(eb)s(enfalls)g(hat,)g(der)f(Absc)m (hlu\377)i(der)f(IO-)609 3997 y(Au\033orderung)h(sc)m(hneller)f(durc)m (hgef\374hrt)i(w)m(erden.)382 4286 y Fn(5.2.4.2)103 b(W)-9 b(rite-Barrier-P)m(ak)m(et)609 4457 y Fc(typedef)47 b(struct)g({)609 4570 y(__u32)g(barrier;)609 4683 y(__u32)g(_fill;)609 4796 y(})g(Drbd_Barrier_P;)382 5055 y Fp(\334b)s(er)30 b(dieses)h(P)m(ak)m(et)h(darf)f(k)m(ein)g(Daten)m(blo)s(c)m(k)h(v)m (ersc)m(hob)s(en)g(w)m(erden.)43 b(Auf)30 b(dem)h(Netz-)382 5168 y(w)m(erk)24 b(ist)f(dies)g(ohnehin)i(nic)m(h)m(t)f(m\366glic)m (h,)j(da)c(TCP)i(die)e(Datenpak)m(ete)i(in)f(der)f(ric)m(h)m(tigen)382 5281 y(Reihenfolge)h(\374b)s(ertr\344gt.)39 b(Do)s(c)m(h)24 b(im)g(Bu\033er-Cac)m(he)h(m)m(u\377)f(dies)g(erst)f(mit)h(en)m(tsprec) m(hen-)382 5394 y(den)31 b(Ma\377nahmen)g(sic)m(hergestellt)h(w)m (erden.)1831 5622 y(48)p eop %%Page: 49 51 49 50 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495 b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a Fn(barrier)44 b Fp(Hierb)s(ei)32 b(handelt)g(es)f(sic)m(h)h(um)f(eine)h (Nummer)g(zur)g(Iden)m(ti\034zierung)h(dieser)609 652 y(W)-8 b(rite-Barrier.)74 b(Sie)41 b(ist)f(f\374r)h(die)g(prinzipielle) i(F)-8 b(unktion)41 b(nic)m(h)m(t)i(not)m(w)m(endig,)609 764 y(wird)29 b(ab)s(er)f(denno)s(c)m(h)i(v)m(erw)m(endet,)g(um)f(die)g (k)m(orrekte)f(F)-8 b(unktion)30 b(des)e(Protok)m(oll)609 877 y(st\344ndig)j(\374b)s(erpr\374fen)g(zu)g(k)m(\366nnen.)382 1051 y Fn(_\034ll)45 b Fp(Da)21 b(gcc)g(auf)g(64-Bit-Plattformen)j(die) d(Gr\366\377e)h(des)f(Daten)m(t)m(yp)s(es)h(auf)f(ein)h(Vielfa-)609 1164 y(c)m(hes)k(v)m(on)f(8)g(Byte)g(au\033\374llt,)i(ist)d(dieses)h(F) -8 b(eld)26 b(not)m(w)m(endig,)j(damit)d(der)f(Daten)m(t)m(yp)609 1277 y(auc)m(h)32 b(auf)e(32-Bit-Plattformen)j(die)d(gleic)m(he)i (Gr\366\377e)f(hat.)382 1546 y Fn(5.2.4.3)103 b(P)m(arameterpak)m(et) 609 1718 y Fc(typedef)47 b(struct)g({)609 1831 y(__u64)g(size;)609 1944 y(__u32)g(state;)609 2057 y(__u32)g(blksize;)609 2170 y(__u32)g(protocol;)609 2282 y(__u32)g(version;)609 2395 y(})g(Drbd_Parameter_P;)382 2602 y Fp(Dieses)29 b(P)m(ak)m(et)i(wird)f(b)s(ei)f(den)h(K)m(ommandos)h(Rep)s(ortP)m (arams)g(und)f(BlkSizeChanged)382 2715 y(gesendet.)41 b(Es)29 b(wird)h(unmittelbar)h(nac)m(h)f(einem)g(erfolgreic)m(hen)h(V) -8 b(erbindungsaufbau)382 2828 y(ausgetausc)m(h)m(t.)50 b(Stimmen)34 b(das)f(Protok)m(oll)h(o)s(der)f(die)g(V)-8 b(ersion)34 b(der)f(b)s(eiden)g(K)m(omm)m(u-)382 2941 y(nik)-5 b(ationspartner)32 b(nic)m(h)m(t)g(\374b)s(erein,)f(wird)g (die)g(V)-8 b(erbindung)32 b(sofort)e(un)m(terbro)s(c)m(hen.)382 3148 y Fn(size)46 b Fp(In)30 b(diesem)h(F)-8 b(eld)31 b(wird)g(die)f(Gr\366\377e)h(der)g(lok)-5 b(alen)31 b(F)-8 b(estplatte)31 b(\374b)s(ermittelt.)382 3321 y Fn(state)47 b Fp(Hier)30 b(wird)h(der)g(Zustand)g(des)f(DRBD-Ger\344tes)g(\374b)s (ermittelt,)i(en)m(t)m(w)m(eder)h(pri-)609 3434 y(m\344r)f(o)s(der)g (sekund\344r.)45 b(T)-8 b(re\033en)33 b(zw)m(ei)g(DRBD-Ger\344te,)f (die)g(sic)m(h)g(im)g(prim\344ren)609 3547 y(Zustand)f(b)s(e\034nden,)g (aufeinander,)h(wird)f(die)g(V)-8 b(erbindung)32 b(un)m(terbro)s(c)m (hen.)382 3721 y Fn(blksize)45 b Fp(Die)31 b(momen)m(tane)h(Blo)s(c)m (kgr\366\377e.)382 3895 y Fn(proto)s(col)45 b Fp(Das)35 b(Protok)m(oll,)j(mit)e(dem)f(dieses)h(DRBD-Ger\344t)f(die)h(V)-8 b(erbindung)37 b(b)s(e-)609 4008 y(treib)s(en)31 b(will.)382 4181 y Fn(v)m(ersion)45 b Fp(Die)30 b(V)-8 b(ersion)31 b(der)g(DRBD-Implemen)m(tierung.)382 4451 y Fn(5.2.4.4)103 b(Best\344tigungspak)m(et)609 4622 y Fc(typedef)47 b(struct)g({)609 4735 y(__u64)g(block_nr;)609 4848 y(__u64)g(block_id;)609 4961 y(})g(Drbd_BlockAck_P;)382 5168 y Fp(Dieses)39 b(P)m(ak)m(et)h (wird)g(mit)f(dem)h(K)m(ommando)h(RecvA)m(c)m(k)f(im)f(Protok)m(oll)i (B)e(und)g(mit)382 5281 y(W)-8 b(riteA)m(c)m(k)35 b(im)f(Protok)m(oll)i (C)e(v)m(erw)m(endet.)53 b(Die)34 b(b)s(eiden)h(Datenfelder)g(w)m (erden)g(dab)s(ei)382 5394 y(aus)30 b(dem)h(Datenpak)m(et,)h(auf)e(das) g(sic)m(h)h(diese)g(Best\344tigung)g(b)s(ezieh)m(t,)h(\374b)s (ernommen.)1831 5622 y(49)p eop %%Page: 50 52 50 51 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495 b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a Fn(5.2.4.5)103 b(W)-9 b(rite-Barrier-Best\344tigungspak)m(et)609 710 y Fc(typedef)47 b(struct)g({)609 823 y(__u32)g(barrier;)609 936 y(__u32)g(set_size;)609 1049 y(})g(Drbd_BarrierAck_P;)382 1311 y Fp(W)-8 b(enn)35 b(alle)f(Bl\366)s(c)m(k)m(e,)i(die)e(v)m(or)g (einer)h(W)-8 b(rite-Barrier)36 b(empfangen)f(wurden,)h(auc)m(h)f(ge-) 382 1424 y(sc)m(hrieb)s(en)k(sind,)i(wird)e(dieses)f(P)m(ak)m(et)i(v)m (ersendet.)65 b(Beide)39 b(Datenfelder)g(dieses)f(P)m(a-)382 1537 y(k)m(etes)i(tragen)h(nic)m(h)m(t)h(zur)e(prinzipiellen)i(F)-8 b(unktion)41 b(b)s(ei,)i(w)m(erden)e(ab)s(er)f(f\374r)g(in)m(terne)382 1650 y(K)m(onsistenz\374b)s(erpr\374fungen)33 b(v)m(erw)m(endet.)382 1912 y Fn(barrier)44 b Fp(Die)22 b(Nummer,)i(die)e(b)s(eim)f(Erzeugen)i (dieser)f(W)-8 b(rite-Barrier)23 b(generiert)g(wur-)609 2025 y(de.)382 2213 y Fn(set_size)46 b Fp(Gibt)24 b(an,)h(wie)f(viele)g (Bl\366)s(c)m(k)m(e)g(v)m(or)g(dieser)g(W)-8 b(rite-Barrier)25 b(empfangen)g(wur-)609 2326 y(den.)382 2616 y Fn(5.2.4.6)103 b(C-Zustandspak)m(et)609 2787 y Fc(typedef)47 b(struct)g({)609 2900 y(__u32)g(cstate;)609 3013 y(})g(Drbd_CState_P;)382 3275 y Fp(Die)25 b(einzige)g(V)-8 b(erw)m(endung)27 b(dieses)e(P)m(ak)m (etes)h(b)s(esteh)m(t)f(darin,)i(dem)e(K)m(omm)m(unik)-5 b(ations-)382 3388 y(partner)33 b(den)f(Anfang)g(und)g(das)g(Ende)h (des)e(Sync)m(hronisationsv)m(organges)k(mitzutei-)382 3501 y(len.)382 3763 y Fn(cstate)47 b Fp(F)-8 b(olgende)32 b(W)-8 b(erte)31 b(sind)g(m\366glic)m(h:)609 3976 y Fn(SyncingAll)45 b Fp(Jetzt)31 b(w)m(erden)h(alle)e(Bl\366)s(c)m(k)m(e)h(k)m(opiert.)609 4122 y Fn(SyncingQuic)m(k)44 b Fp(Jetzt)31 b(b)s(eginn)m(t)h(ein)e(sc)m (hneller)i(Sync)m(hronisationsv)m(organg.)609 4268 y Fn(Connected)46 b Fp(Der)31 b(Sync)m(hronisationsv)m(organg)i(ist)d(b)s (eendet.)382 4558 y Fn(5.2.4.7)103 b(Timeouts)382 4779 y Fp(Da)25 b(aus)g(dem)h(K)m(on)m(text)g(eines)g(sc)m(hreib)s(enden)g (Prozesses)g(gesendet)g(wird,)g(wird)g(dieser)382 4892 y(blo)s(c)m(kiert,)33 b(falls)f(das)g(Senden)h(\374b)s(er)f(den)g(So)s (c)m(k)m(et)h(blo)s(c)m(kiert.)46 b(Dieser)32 b(F)-8 b(all)33 b(tritt)f(auc)m(h)382 5005 y(dann)44 b(ein,)i(w)m(enn)e(das)f (Netzw)m(erk)h(zwisc)m(hen)h(den)e(v)m(erbundenen)i(DRBD-Ger\344ten)382 5118 y(un)m(terbro)s(c)m(hen)33 b(wurde.)382 5281 y(Damit)21 b(eine)h(Applik)-5 b(ation)22 b(nic)m(h)m(t)g(angehalten)h(wird,)g (gibt)f(es)e(eine)i(ob)s(ere)f(Sc)m(hrank)m(e)i(f\374r)382 5394 y(die)g(Dauer)g(der)g(Sendeop)s(eration.)40 b(V)-8 b(or)23 b(dem)g(Aufruf)f(v)m(on)h(so)s(c)m(k_sendmsg\(\))g(wird)g(ein) 1831 5622 y(50)p eop %%Page: 51 53 51 52 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495 b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a Fp(Timer)30 b(gestartet.)41 b(L\344uft)30 b(dieser)g(Timer)h(ab)f(b)s (ev)m(or)f(so)s(c)m(k_sendmsg\(\))i(zur\374c)m(kk)m(ehrt,)382 652 y(wird)37 b(der)g(Systemruf)g(mit)g(Hilfe)f(eines)h(Signals)h (abgebro)s(c)m(hen.)61 b(Der)37 b(Proze\377)h(sieh)m(t)382 764 y(dieses)30 b(Signal)h(nic)m(h)m(t,)h(da)f(es)f(no)s(c)m(h)h (innerhalb)h(des)e(T)-8 b(reib)s(ers)31 b(wieder)g(gel\366sc)m(h)m(t)h (wird.)382 916 y(W)-8 b(enn)31 b(ein)g(Timeout)h(aufgetreten)f(ist,)g (wird)g(der)f(So)s(c)m(k)m(et)i(gesc)m(hlossen,)f(und)g(DRBD)382 1029 y(setzt)c(den)g(Betrieb)g(im)g(nic)m(h)m(t)h(v)m(erbundenen)h (Zustand)e(fort.)40 b(Alle)26 b(w)m(eiteren)j(Sc)m(hreib-)382 1142 y(op)s(erationen)j(w)m(erden)f(im)g(Bitfeld)g(f\374r)f(sp\344tere) h(Sync)m(hronisation)h(v)m(ermerkt.)382 1293 y(Im)i(F)-8 b(alle)36 b(v)m(on)e(Protok)m(oll)j(B)d(und)h(C)f(m)m(u\377)i(auc)m(h)g (f\374r)e(alle)h(im)f(transfer_log)i(en)m(thal-)382 1406 y(tenen)41 b(Bl\366)s(c)m(k)m(e)g(der)f(Absc)m(hlu\377)h(der)g(IO-Op)s (eration)g(signalisiert)g(w)m(erden,)j(da)c(nac)m(h)382 1519 y(dem)c(Sc)m(hlie\377en)i(des)d(So)s(c)m(k)m(ets)h(k)m(eine)h (Best\344tigungspak)m(ete)g(mehr)g(empfangen)f(w)m(er-)382 1632 y(den)31 b(k)m(\366nnen.)382 1783 y(Eb)s(enfalls)c(n)m(ur)h (f\374r)e(Protok)m(oll)j(B)d(und)i(C)f(m)m(u\377)h(die)f(Zeit,)h(die)f (auf)g(das)f(Ein)m(tre\033en)j(v)m(on)382 1896 y(Best\344tigungspak)m (eten)45 b(gew)m(artet)f(wird,)j(b)s(egrenzt)d(w)m(erden.)79 b(Die)43 b(Not)m(w)m(endigk)m(eit)382 2009 y(daf\374r)30 b(k)-5 b(ann)31 b(am)g(folgenden)g(Beispiel)g(erl\344utert)g(w)m (erden:)633 2179 y(Die)39 b(Request-Queue)h(k)-5 b(ann)39 b(k)m(eine)h(w)m(eiteren)h(Sc)m(hreibanforderungen)i(mehr)633 2292 y(aufnehmen)37 b(und)g(blo)s(c)m(kiert)g(daher)g(alle)g(Prozesse,) h(die)f(w)m(eitere)g(Sc)m(hreiban-)633 2405 y(forderungen)45 b(erzeugen)h(w)m(ollen.)83 b(W\344hrend)45 b(n)m(un)g(auf)f(den)h(Absc) m(hlu\377)g(der)633 2518 y(laufenden)c(IO-Op)s(erationen)g(gew)m(artet) h(wird,)i(wird)c(das)g(Netzw)m(erk)h(un)m(ter-)633 2631 y(bro)s(c)m(hen.)56 b(Da)36 b(allerdings)g(k)m(eine)g(neuen)g(IO-Op)s (erationen)h(erzeugt)f(w)m(erden,)633 2744 y(wird)d(auc)m(h)g(nic)m(h)m (ts)h(\374b)s(er)e(die)h(TCP-V)-8 b(erbindung)35 b(gesendet,)f(und)f (die)g(Un)m(ter-)633 2857 y(brec)m(h)m(ung)27 b(der)e(V)-8 b(erbindung)26 b(bleibt)f(unen)m(tdec)m(kt.)41 b(Das)24 b(IO-Subsystem)h(bleibt)633 2970 y(allerdings)34 b(blo)s(c)m(kiert,)i (da)e(die)g(Best\344tigungspak)m(ete,)i(die)e(die)g(aktuellen)h(IO-)633 3083 y(Op)s(erationen)d(absc)m(hlie\377en)g(w\374rden,)f(nic)m(h)m(t)h (mehr)f(ein)m(tre\033en)h(k)m(\366nnen.)382 3253 y(F\374r)25 b(die)h(Implemen)m(tierung)h(des)e(Timeouts)h(b)s(eim)g(Senden)g(ist)f (genau)h(ein)f(Timer)h(pro)382 3366 y(DRBD-Ger\344t)k(not)m(w)m(endig,) j(da)e(immer)g(n)m(ur)g(genau)g(ein)g(Proze\377)h(senden)f(k)-5 b(ann.)382 3517 y(Das)24 b(Timeout)i(f\374r)f(den)g(Empfang)h(v)m(on)f (Best\344tigungspak)m(eten)i(wurde)f(eb)s(enfalls)e(mit)382 3630 y(Hilfe)29 b(eines)h(einzigen)h(Timers)f(implemen)m(tiert.)43 b(Dab)s(ei)30 b(wird)g(der)g(Timer)g(b)s(eim)g(Sen-)382 3743 y(den)e(eines)g(Datenpak)m(etes)h(zur\374c)m(kgesetzt)g(und)f(ein) g(Z\344hler)g(\(p)s(ending_cn)m(t\))i(erh\366h)m(t.)382 3856 y(Wird)i(ein)f(Best\344tigungspak)m(et)j(empfangen,)f(wird)f(der)g (Z\344hler)g(v)m(erringert)h(und)f(der)382 3969 y(Timer)c(eb)s(enfalls) e(neu)h(gestartet)h(\(falls)f(der)g(Z\344hler)g(no)s(c)m(h)h(p)s (ositiv)e(ist\).)39 b(Durc)m(h)28 b(diese)382 4082 y(Implemen)m (tierung)k(k)-5 b(ann)30 b(zw)m(ar)h(eine)g(einzelne)g(Best\344tigung)g (l\344nger)g(dauern)f(als)g(der)382 4195 y(W)-8 b(ert)29 b(des)f(Timeouts,)i(ab)s(er)e(die)h(im)f(obigen)h(Beispiel)g(b)s(esc)m (hrieb)s(ene)g(Situation)h(wird)382 4308 y(erk)-5 b(ann)m(t.)382 4581 y Fn(5.2.4.8)103 b(Priorit\344ten)382 4791 y Fp(Im)40 b(folgendem)i(w)m(erden)h(zw)m(ei)e(DRBD-Ger\344te-P)m(aare)i(auf)e (einem)g(aus)g(zw)m(ei)h(Kno-)382 4904 y(ten)31 b(b)s(estehenden)i (Cluster)e(b)s(etrac)m(h)m(tet,)j(b)s(ei)d(denen)h(die)g(prim\344ren)g (Ger\344te)g(auf)f(den)382 5017 y(jew)m(eils)g(anderen)g(Knoten)h (liegen)f(\(siehe)f(Abbildung)i(5.1\).)382 5168 y(K)m(omm)m(t)45 b(es)e(b)s(ei)f(einer)i(solc)m(hen)g(K)m(on\034guration)i(dazu,)h (da\377)c(das)g(Netzw)m(erk)h(lang-)382 5281 y(samer)39 b(ist)f(als)g(die)h(F)-8 b(estplatten,)42 b(k)-5 b(ann)39 b(es)f(zu)g(Timeouts)i(und)e(zum)h(Abbruc)m(h)h(der)382 5394 y(V)-8 b(erbindung)32 b(k)m(ommen.)1831 5622 y(51)p eop %%Page: 52 54 52 53 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)681 b(5.3.)71 b(DRBDSETUP)p 382 299 2989 4 v 472 1322 a @beginspecial 104 @llx 677 @lly 441 @urx 782 @ury 3370 @rwi @setspecial %%BeginDocument: /home/philipp/diplomarbeit//sock_prio.ps %!PS-Adobe-3.0 EPSF-3.0 %%For: Philipp Reisner %%CreationDate: Tue Apr 25 12:26:25 2000 %%Title: sock_prio.ps %%Creator: Sketch 0.6.5 %%Pages: 1 %%BoundingBox: 104 677 441 782 %%Extensions: CMYK %%DocumentSuppliedResources: (atend) %%DocumentNeededResources: font Times-Roman %%EndComments %%BeginProlog %%BeginResource: procset Linux-Sketch-Procset 1.0 2 /SketchDict 100 dict def SketchDict begin /bd { bind def } bind def /x { exch } bd /xd { exch def } bd /PI 3.14159265358979323846264338327 def /radgrad { 180 mul PI div } bd /skstartmatrix matrix currentmatrix def /tmpmat matrix def /ISOLatin1Encoding dup where { pop pop } { [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def } ifelse /arct dup where {pop pop} { /arct {arcto pop pop pop pop} bd } ifelse /size 0 def /fontname 0 def /newfont 0 def /sf { /size xd /fontname xd fontname findfont dup /Encoding get StandardEncoding eq { dup length dict /newfont xd { 1 index /FID ne { newfont 3 1 roll put } { pop pop } ifelse } forall newfont /Encoding ISOLatin1Encoding put fontname newfont definefont } if size scalefont setfont } bd /pusht {matrix currentmatrix} bd /popt {setmatrix} bd /pushc {gsave} bd /popc {grestore} bd /rgb {setrgbcolor} bd /w { setlinewidth } bd /j { setlinejoin } bd /J { setlinecap } bd /d { setdash } bd /F { eofill } bd /f { closepath F } bd /S { pusht skstartmatrix setmatrix stroke popt } bd /s { closepath S } bd /m { moveto } bd /l { lineto } bd /c { curveto } bd /txt { /tmpmat tmpmat currentmatrix def dup type /arraytype eq {concat} {translate} ifelse 0 0 m tmpmat } bd /T {txt x show popt} bd /P {txt x true charpath popt} bd /TP {txt x dup show 0 0 m true charpath popt} bd /C {newpath 0 360 arc} bd /R { 2 copy m x 2 index l x 2 index x l l closepath } bd /ellipse { dup type /arraytype eq { pusht x concat 0 0 1.0 C popt } { pusht 5 1 roll 4 -1 roll concat newpath dup 2 eq { 0 0 m } if 3 1 roll radgrad x radgrad x 0 0 1 5 -2 roll arc 0 ne { closepath } if popt } ifelse } bd /radius1 0 def /radius2 0 def /factor 0 def /rect { dup type /arraytype eq { pusht x concat 0 0 m 1 0 l 1 1 l 0 1 l closepath popt } { /radius2 xd /radius1 xd pusht x concat radius1 radius2 div 1 scale 0 radius2 m 0 1 radius2 1 radius2 arct radius2 radius1 div dup 1 1 index 0 radius2 arct 0 0 0 radius2 arct 0 0 0 1 radius2 arct closepath popt } ifelse } bd /buf 0 def /width 0 def /height 0 def /skcimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width 3 mul string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind false 3 colorimage tmpmat setmatrix } bd /skgimg { /tmpmat tmpmat currentmatrix def { concat } if /height xd /width xd /buf width string def width height scale width height 8 [width 0 0 height neg 0 height] { currentfile buf readhexstring pop } bind image tmpmat setmatrix } bd /rclip { 4 2 roll m dup 0 x rlineto x 0 rlineto neg 0 x rlineto closepath clip } bd /skeps { 10 dict begin /sk_state save def concat 3 index neg 3 index neg translate rclip 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /sk_dict_count countdictstack def /sk_count count 1 sub def userdict begin /showpage { } def /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bd /skepsend { count sk_count sub { pop } repeat countdictstack sk_dict_count sub { end } repeat sk_state restore end } bd /gradidx 0 def /gradient { 3 mul array /gradidx 0 def } bd /$ { 3 index gradidx 5 -1 roll put 2 index gradidx 1 add 4 -1 roll put 1 index gradidx 2 add 3 -1 roll put /gradidx gradidx 3 add def } bd /! { 3 { dup dup gradidx dup 3 1 roll 3 sub get put /gradidx gradidx 1 add def } repeat } bd /gradcolor { 3 mul dup 2 add 1 exch % idx 1 idx+2 { 1 index exch % array array i get % array component exch % component array } for 4 1 roll } bd /x0 0 def /y0 0 def /x1 0 def /y1 0 def /left 0 def /right 0 def /top 0 def /bottom 0 def /numcolors 0 def /axial { /y1 xd /x1 xd /y0 xd /x0 xd dup length 3 idiv /numcolors xd pusht exch % ctm array x0 x1 ne y0 y1 ne or { x0 y0 translate [x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath 0 gradcolor rgb clippath f 0 1 numcolors 1 sub { dup numcolors div 3 1 roll gradcolor rgb exch bottom right top R f } for } if pop popt } bd /r0 0 def /r1 0 def /dr 0 def /radial { /r1 xd /r0 xd /y0 xd /x0 xd /dr r1 r0 sub def dup length 3 idiv /numcolors xd pusht exch % ctm array r0 r1 ne { x0 y0 translate clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd newpath dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb clippath f dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse { dup numcolors div dr mul r0 add 3 1 roll gradcolor rgb exch 0 0 3 -1 roll C f } for } if pop popt } bd /max { 2 copy lt {exch} if pop } bd /conical { pusht 5 1 roll 3 1 roll /y0 xd /x0 xd x0 y0 translate radgrad rotate dup length 3 idiv /numcolors xd clippath flattenpath pathbbox newpath 4 { abs 4 1 roll} repeat 3 { max } repeat 2 mul dup scale 0 gradcolor rgb 0 0 1 0 360 arc f 1 1 numcolors 1 sub { dup numcolors div 180 mul 3 1 roll gradcolor rgb exch 0 0 moveto 0 0 1 4 -1 roll dup neg arc closepath f } for pop popt } bd /XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def /tileimage2 { exch 4 2 roll /height xd /width xd mark /components 2 index /PatternType 1 /PaintType 1 /TilingType 1 /BBox [0 0 width height] /XStep width /YStep height /PaintProc { begin XStep YStep 8 matrix imagedata false components colorimage end } counttomark 2 div cvi dup dict begin { def } repeat pop currentdict end dup /imagedata 4 -1 roll width height mul mul string currentfile exch readhexstring pop put exch makepattern setpattern clippath eofill } bd /tileimage1 { concat /components xd /height xd /width xd /imagedata currentfile width height mul components mul string readhexstring pop def clippath flattenpath pathbbox /top xd /right xd /bottom xd /left xd left width div floor width mul bottom height div floor height mul translate top bottom sub height div ceiling cvi { gsave right left sub width div ceiling cvi { width height 8 matrix components 1 eq { { imagedata } image } { imagedata false components colorimage } ifelse width 0 translate } repeat grestore 0 height translate } repeat } bd /makepattern where { pop /tileimage /tileimage2 load def } { /tileimage /tileimage1 load def } ifelse end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Roman 10.433 setmiterlimit %%EndSetup %%Page: 1 1 SketchDict begin newpath 306.259 705.827 m 306.259 697.323 l 314.763 701.575 l 306.259 705.827 l closepath 0.843 0.808 1 rgb F [-76.5354 0 0 -2.83466 306.259 702.992] rect F newpath 238.227 720 m 238.227 711.496 l 229.723 715.748 l 238.227 720 l closepath F [76.5354 0 0 -2.83466 238.227 717.165] rect F newpath 306.259 748.346 m 306.259 739.842 l 314.763 744.094 l 306.259 748.346 l closepath F [-76.5354 0 0 -2.83466 306.259 745.512] rect F newpath 238.227 762.52 m 238.227 754.016 l 229.723 758.268 l 238.227 762.52 l closepath F [76.5354 0 0 -2.83466 238.227 759.685] rect F [8.50394 0 0 -14.1732 314.763 722.835] rect 0.8 0.8 0.8 rgb F [8.50394 0 0 -14.1732 221.219 751.181] rect F [51.0236 0 0 -14.1732 314.763 765.354] rect 0.838 0.838 0.838 rgb F [51.0236 0 0 -14.1732 178.7 708.661] rect F /Times-Roman 11 sf (IN) 157 754 0 0 0 rgb T (IN) 377 740 T (IN) 157 711 T (IN) 377 697 T (OUT) 146 740 T (OUT) 377 754 T (OUT) 146 697 T (OUT) 377 712 T newpath 243.897 768.189 m 243.897 691.654 l 249.566 688.819 l 252.401 691.654 l 258.07 688.819 l 258.07 768.189 l 252.401 771.024 l 249.566 768.189 l 243.897 771.024 l 243.897 768.189 l closepath 0.828 0.828 0.828 rgb F newpath 286.416 768.189 m 286.416 691.654 l 292.086 688.819 l 294.92 691.654 l 300.59 688.819 l 300.59 768.189 l 294.92 771.024 l 292.086 768.189 l 286.416 771.024 l 286.416 768.189 l closepath F [56.6929 0 0 -14.1732 173.031 765.354] rect 0 0 0 rgb 1 w 0 j 0 J [] 0 d S [56.6929 0 0 -14.1732 173.031 722.835] rect S [56.6929 0 0 -14.1732 173.031 708.661] rect S [56.6929 0 0 -14.1732 314.763 765.354] rect S [56.6929 0 0 -14.1732 314.763 751.181] rect S [56.6929 0 0 -14.1732 314.763 722.835] rect S [56.6929 0 0 -14.1732 314.763 708.661] rect S [56.6929 0 0 -14.1732 173.031 751.181] rect S newpath 229.723 701.575 m 248.149 701.575 l 250.983 704.409 l 250.983 727.087 l 253.818 729.921 l 0.992126 w 1 j S newpath 229.723 744.094 m 248.149 744.094 l 250.983 741.26 l 250.983 732.756 l 253.818 729.921 l 1 w 0 j S newpath 253.818 729.921 m 286.416 729.921 l 0.992126 w S pusht 286.416 729.921 translate 0 rotate [ ] 0 d -4 3 m 2 0 l -4 -3 l -4 3 l F popt newpath 161.692 779.528 m 263.739 779.528 l 263.739 680.315 l 163.109 680.315 l 0.283465 w [1.41733 0.283465 0.283465 0.283465 ] 0 d S newpath 382.794 779.528 m 280.747 779.528 l 280.747 680.315 l 381.377 680.315 l S /Times-Roman 12 sf (drbd0) 107 754 T (drbd0) 409 754 T (drbd1) 107 711 T (drbd1) 409 711 T (\(SEC\)) 107 742 T (\(PRI\)) 409 742 T (\(PRI\)) 107 699 T (\(SEC\)) 409 699 T %%PageTrailer showpage %%Trailer end %%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 %%EOF %%EndDocument @endspecial 1047 1518 a Fp(Abbildung)31 b(5.1:)41 b(Zw)m(ei)31 b(DRBD-Ger\344te-P)m(aare)382 1793 y(Bei)k(hoher)g(Last)g(ist)g(der)g (Sendepu\033ersp)s(eic)m(her)i(des)e(So)s(c)m(k)m(ets)g(des)g (Ger\344tes)g(im)g(pri-)382 1906 y(m\344ren)25 b(Zustand)h(normalerw)m (eise)h(v)m(oll,)f(w)m(\344hrend)g(der)f(Sendepu\033ersp)s(eic)m(her)i (des)d(Ge-)382 2019 y(r\344tes)37 b(im)f(sekund\344ren)h(Zustand)h(n)m (ur)f(gering)g(gef\374llt)g(ist,)h(da)f(Best\344tigungspak)m(ete)382 2132 y(w)m(esen)m(tlic)m(h)c(kleiner)e(sind)f(als)g(Datenpak)m(ete.)382 2295 y(Das)39 b(Netzw)m(erksubsystem,)j(in)e(der)f(Abbildung)i(als)e (grauer)h(v)m(ertik)-5 b(aler)40 b(abgerisse-)382 2408 y(ner)k(Balk)m(en)g(dargestellt,)k(arb)s(eitet)c(normalerw)m(eise)i (mit)e(einer)g(einfac)m(hen)h(FIF)m(O-)382 2521 y(Strategie.)d(Die)31 b(b)s(eiden)f(DRBD-Ger\344te)h(auf)f(einem)i(Knoten)f(stehen)g(b)s(eim) f(Senden)382 2633 y(in)e(einer)g(K)m(onkurrenzsituation.)43 b(Das)27 b(prim\344re)i(Ger\344t)g(v)m(ersendet)f(w)m(esen)m(tlic)m(h)j (mehr)382 2746 y(und)k(gr\366\377ere)h(P)m(ak)m(ete)g(als)f(das)f (DRBD-Ger\344t)h(im)g(sekund\344ren)g(Zustand.)55 b(Die)34 b(Be-)382 2859 y(st\344tigungspak)m(ete)42 b(des)e(sekund\344ren)g (DRBD-Ger\344tes)g(w)m(erden)i(daher)f(v)m(om)f(Netz-)382 2972 y(w)m(erksubsystem)31 b(l\344nger)g(v)m(erz\366gert.)382 3135 y(Um)f(diesem)i(Problem)g(en)m(tgegenzu)m(wirk)m(en,)i(wird)e(in)e (den)h(Ger\344ten)h(im)f(sekund\344ren)382 3248 y(Zustand)23 b(das)g(TCP_NODELA)-8 b(Y)25 b(Flag)e(des)g(So)s(c)m(k)m(ets)h (gesetzt,)h(um)e(den)g(Nagle)g(Algo-)382 3361 y(rithm)m(us)685 3328 y Fg(8)750 3361 y Fp(auszusc)m(halten.)40 b(Abgesehen)25 b(da)m(v)m(on)g(wird)g(der)g(So)s(c)m(k)m(et)g(mit)f(einer)h (h\366heren)382 3474 y(Priorit\344t)32 b(v)m(ersehen)f(TC_PRIO_INTERA)m (CTIVE.)382 3636 y(Dem)98 b(So)s(c)m(k)m(et)h(des)f(prim\344ren)h (Ger\344tes)g(wird)f(hingegen)i(die)e(Priorit\344t)382 3749 y(TC_PRIO_BULK)63 b(zugewiesen.)138 b(Die)62 b (Priorit\344tseinstellungen)j(hab)s(en)e(auf)382 3862 y(das)40 b(V)-8 b(erhalten)42 b(des)e(Netzw)m(erksubsystems)g (allerdings)h(n)m(ur)g(dann)g(Ein\035u\377,)j(w)m(enn)382 3975 y(CONFIG_NET_SCHED)63 b(b)s(ei)e(der)g(Compilierung)j(des)d (Kernels)g(angegeb)s(en)382 4088 y(wurde.)41 b(Diese)28 b(Priorit\344t)j(wird)e(auc)m(h)h(im)f(TOS-F)-8 b(eld)30 b(der)f(IP-P)m(ak)m(ete)i(w)m(eitergereic)m(h)m(t)382 4201 y(und)g(k)m(\366nn)m(te)g(v)m(on)g(der)g(Netzw)m(erkinfrastruktur) h(v)m(erw)m(endet)g(w)m(erden.)382 4537 y Fj(5.3)130 b(Drb)t(dsetup)382 4793 y Fo(5.3.1)112 b(K)m(on\034guration)382 5015 y Fp(Bev)m(or)25 b(ein)g(DRBD-Ger\344t)g(v)m(erw)m(endet)i(w)m (erden)f(k)-5 b(ann,)26 b(m)m(u\377)g(es)e(k)m(on\034guriert)j(w)m (erden.)p 382 5076 1196 4 v 486 5130 a Ff(8)520 5162 y Fe(Der)35 b(Nagle)h(Algorithm)n(us)e(v)n(erz\366gert)i(kleine)f(P)n (ak)n(ete)g(\(