From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner01.ps | 30395 ++++++++++++++++++++++ 1 file changed, 30395 insertions(+) create mode 100644 Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner01.ps (limited to 'Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner01.ps') diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner01.ps b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner01.ps new file mode 100644 index 0000000..369c664 --- /dev/null +++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner01.ps @@ -0,0 +1,30395 @@ +%!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(\(