This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
сl poки oткРЬlтьINi тeкстl]lll и не вьt. зьIваЙте r,lхr1oyкaзaтrлIо _ хaкеР мг1roBеннo пайде'ГзащUтrtьIri код лo пeРещeст. ] lll ]ToT сЧсr' Nlo1l(l1оllс Пo'l|ll.'лl1Tься), _ каrt a кaк
нЬl]t1ссьIлкaм' лyчшо тarс:6сpеlrуказaте'tьна r:тpoкy.Увелпuивaемсro нaNЬaйт,
С ' х n э " q P l t у . r а J а 1 1 , Л Ьп l l г o l P 1 N м о J | | г p e д и ( п o , 1 L J o в i r | l | | . ^ l я|,lч||ГJeм,v ''l" ле,ly. ( пP|| J Ioll Baм пnи |.,.я l,р[r] ILся с кUвiгс,|,вov o , | | | | \ | и J | | l , .), ш | | х ( J N | . rlи.]IЯтoрoв' I'oРoвяU{их вЬiче01.ЬN ещс rra сTадии кoпIпl'U1яц'tи),
Из6егаiircлpямoroвьrзoвaAPI-фуrшцпii'I'lаlcpllякахаt(ePпoстaBи'Г ]]aнпх 0pяк. Испoлlзyliтe6oлсeпpo.рe0с!Iвrrьlс - кoпиРoвaписАРI'фyнкиiiв ;поe метo/LиI{l{
T€ л o' в!iзo1з l{сс гIеpяoIi маlrrt,lнIюii кoмal lДl,I' рaсIlo3l lавaIlи c !t дeзa]с]Iва цltlo 'ГоЧск oсTаIroва (lroдРо6loс1rt в <ЗaIllсках l'l!IIц,Ьх'a'). Рaз6рoсaiiтe заrцlfilIыii i!1схallllзi\{ IIo ll€ с кoJ.IЬкl{]!l tIo'Гока]tl. oтлfu,(.lrtкIr llc вЬI. поЛI{я,].l l сPc]t'{loL]сll'lе |(ollтсксTa. I] o(TitлЬl I
Леilиc,I{Poмстoгo'oчсllЬTPv/iJюpaзо6РатЬс:i:l::;:;illТ::,fi:,:lHi мoм (Рaзy !lз пeск()Лькllх i!lcсl..
Coздaliте ltcскolькo rroдЛo)кIlых фyllкцпij, /{aл l'N' oс]\llnсЛellllЬlcl.]l]сUa, llIa CheсkRegisters'* xусть хaкеP TPа,ги1'BрeN1я lи их и3у,!ellиеt
гл^B^22
lv|Eтoдoлoгия 3AlЦитЬl B MиPЕ UNIX
ПрoгIrаммlloeo6eспeчeниопoд UNlX ttaлекorlе всeгдa6eсплaтнo'п кoмпlсPчr. кo]lкУpиPуeTс llPoсктaмll oрen so rсe' мнoгиeиз кoToРЬIt скшйсodЛ.yсIlе]lt]lo 3a расIrpoстPдняrотся Дeпьги(свo6oда_ rщс нс сиIlottимхaЛявьт)'этo и fla)rч. ' кoDпoDaтив. }IыeприЛo)ксIlияlмoДeлирylorциe дви'(сtt!!язвсзДa r.a.lrаI(Tиl€ х]'l обeсIleчelIиe' и flpo. иьIоnaкeтъlддя Pа6oтьIс трeхмePпoйгpaфикoii,ltсорвсPuot] Г P a м м I l Ь | кe о м f l л с к с Ь lд Л ц y | | г a в л е t I l l яп р o и з в o д с т в o мl'| т л ' ' l t т ' л , в с с э т o н е и}'еeт н!Iкаl(ol.oo1lloшrпия пl,i к ПIt, нп к <пиPатству'' иссrrсДoвateЛьскиe ltв. ст,lryтът и коPпoрации сJlишкoм дoрo'(aт свoeй pспутaЩtсй, чT{)6ц и/lтl4IIa oт. кpьl,Iьli,iгрa6Фк'
пofloмy.,гo в мирe UNIх тaк малo зaщит oT ]IесaпкЦlloпиpоBaннoгo lФпI'lpoвeIrия. Bот Liпuх _ дpyгoе дeлol opпeнтиPoвaннaя flа дoмаllrllих и oфиcEla пoльзoвате,!ей,онадви)кeтся трoпolitвaPвaPсi{oroPынка (он жr _ (мaсоoвый'} пoстG пaсeлell,loгo x?rксpaми'пщ)aтaми и пPoдвrrн}тъrмиюзсPaIlи, сt1oсoбlIьIп!,l ЯтЬ зa свoи lipавa' нaсftopo скаuaв из Сeтп свe)кепoймa{Irьпi кPaк. Бсt д
нoй защl'tтыздeсЬнrriryta!Без'достoйнoйзaщитьlвaшa пpoграммaвoo6ше 6yдeтпроДaваться. в UNIХ вce eщeoстaетсянayровнe кaчeсTвo)кезaцитньIxмехаt1изMoв п0д06Йя.Iевoiipyки. с Wjпdows ей не тягаться,Bпpoчепl,Iсaчествo инструмelттаpия пoл UNIХ eцe хylrtе'тaк чтo oднo уPaвновrI]IивaеT]tpуlюе,
плoхoньIrаЯзащитaпРсдстaвЛяeтсo60й6oЛьlltyюпpo6лeмyи ликуrоroлoв o бoЛь6eссoппъrхrroчеri.Дaнная гЛaвадaет кpaткoeпpeДставлeЕие 1 рассказьIвaeт o наи6oлeе пoпyлярн],lх ме]o,Да-\пpoтивoдeйствия o'гл и дизассeм6лepам.
пepeдбоем/или вхакеpсKом ла.eрey кoсгpa Pазвeдка
з57
PAзBЕдкA пEPEд БoЕM,
или BxAкEPскoМлAгЕPE y кoстPA C то.rкизpеlтияхatсepaUNjх - пoлньiйo'гсToii'ска. )кyя вal!t'дoстoйItoгoинстPyмeнтарIrЯ irет11пе с(opo 5удeт' ХalIrть lIpr'tхoдится гoльrпIиpyкaпrи'Бoльlrс Bсегo yдРyчaет отсутствис
tlоЛнoцсllнolo
отла/.lчикa'
eслIrне Solt Iсe' тo хo1r 6Ьt o1]уDь8, Мeлoчи тиlIа ЛампeРoв пaмятиl pа:]JIичl{ьIхтaII патчeРoB' anтo]!taTltчссltuх PаспакoвЦикor упa. кoваппЬIх фaйЛoв -l.аtоr(спPихoдiJтся пПсaTь (амoстoЯтrльllo, пoскoJlll(у ж]lвьIх
лРе/lсTatsиTсЛей этoй фаунъr в Cетп oбпapужrrr.ьнс удa'rось' Лишь 6еспoнснньlе шIaД6llца зa6PoпIснньIxпporктon..' Булсlr надсяться, .rтo .leРeз ]lесI(oЛькo'ЦстсtlтyaцIrя r|змcll,rтсЯ (как Irэвестrrо' сflpoс po)Iцaет пРе'lЛo)ItеllIrе)'а n oкa or.pallllчl iмся тeм, vтoсдcлaспr кpапrий о6. 3op сyщсствуlolllегo сoq),Гa'liРltГoдllolо дЛя хartrPствoвaItuя (I(статI'tгoвoPяl зalllитнЬle мсхaIl}l3мьI'осо6еtltto с,lкlжяl,tс'тnклreтРe6yIoToшtаIц{и),
oтлAдlчики GDB (ptiс, 22.1) крoсс плaтфoрNIerl!IьIiisourсоJсvel-oтла,цvик' oспoвaнlIьIйIIа 6 и 6 л и o r c к ep tr а с et с м , r I l J |J| r r J l , e) и U P l 1 ' P ,и Р o в а н P Ь , Il'l Р еи ] ! l уU l Р l , Ь , o hаU|,1ад. t у | р | | Л o ж e | | и сй и с х o д н L l r и 1 . к . , j v и , Д J . r в з Л n м i ]п o д х U д | | Гп J o , { o n . Л | l п o д xoдит вoo6щe. пolЦеpxrивaст апflaРаTньIетoчкll oстaнosaна исполнение, но нe чтeнI,rе/записьпамя'lи (oдtlаl{oпPизaпyскe I{з.пoДVМWаIо oни не сРa6атыва ют' a нa loЛoм ]келeзея el.oне гorrял). не N'o)кeт6рякатъ и мoдифициpoвaть сo вмeсTIIoиспoJ1ъзУемуюпамять (тoeстъ lsс егoлопloщью вьI вpяд ли oтЛaдитеI), lloilсIс в 11амятиoтсyтствуeт I€ к тal.oвoii, Oткaзывается зaгpyжатъ фaйл с ис.
з58
глава 22. метoдoЛогия защитЬlвмиpеi]Nц
sесtiontaьlс, BнеilrliепPедстaвляетсo. IсDкенЕoйстPуктypoйиЛи с oтpeзаIrlroй п!илo^Phи..o слo}rлoli(,и.Tеvoйкoманд'IloлIloenписJIlиe 60й кoнсoЛь||"e кoтopoli заЕимaетllopядкa TpеxсoтсTРа]rицу6оPистoIoтeкстa,ПPи яrrлании к oтлaдчI,lкyмo)iшo j1PиI{PутиTьгpaфичeскуIoo6oлo.rкy (6лaто нeдoстaткав них испьIтьIватьнe пpихoдлTся),oДпакoкpaсивьIминтсРфейсoмкPlrвoс ядрo нe исIlpaвлrrlь,за вpеп{ясвоelo сyщeствoванияGDB усlleЛ o6pастиr.yстoйпrеp. стъn]антиoтлaдoqнЫхl1pиеNloв'мпoгt,lе из l(oтoPыxoстaютсяaктyanъIrымии пo сетoдняrпнийденl, Teleрь o дoстoиIiсTвaх| GDB 6есплатe}r, PaспPoстpaняется пo лицензии GNU (oтсIoдaи яазваti,1с_ Gпu Deвuggег),вхollиT в IсoмплeкT пoставrсrr 6oлъtttинстваUNIХ,oв и к томy tке пoзвoлястпатчI'tтьиспoJlняемый файJt'Iteвьпoдя из oтладчIrкa' чтo6ьl6Pякl'tyтьсянa тoчrсeвхoда,нeoб. I{PaткoсPукoвolrс1.вo Лляrraчинающrtхl ееaДPесtдлячсгo пpигoДитсЯштaТIrаяутиoItpe]leлить хoлимo пPeдвaPитlrлЬ}io лита ot|duпlp ('roлькoдЛя нсзaцищеIlньIхфайловl) иЛи biew/lDA| objdunр llpol?aммy в GDв (!db -q fi ]e-iаm), fi ]e-nаme. f. зaтс[1,зaгpyзllвoт4а'{иваeмyю *oxхххxхххх, rдr 0xХ стaPтoвЬiйаДРес,a зaтeм run для ee даTькoмa]J/(ybгeаk зanyскa нa выltoJ]нсItис. Еслlr все пPoIJIлoycпelrнo' GDB тут,(e oстанosиTся, llePсдal]aЯ!a]\'6DaздьlпрaвJlсн!l,l.ЕсЛи ll{jт'о'ГI(Ройтe фaйл в Ьiew,eи вUeдpитe пРeдвaритeлЬIlo сoхPанивв IoЛoвeoPи. ссh), в eпtty рoint тoчl(yoоTаl'loва oФrL и пePсзaпyститeo'l)Iqlolи('a пoсле дoсти)кeниllтoчки l.иlla]lЬtlo0соj(сР)l(имoe' . YY)' ee сoдeр'ollloe (set {сhar) r(]хx)(Х)(xхx)( oстaпoвавoос1altоl]итe
P'.iс.22'1' GDвза pабoтoй
пepeд60ем,иливхакepскoм лaгерey кoФpa развeдка
359
АLD' АssemЬle lаnguаge DеЬu88еI (http://аld'sourс€ f olge'nеv) _ пPoIrьIР.{ивьпi solIсeleve] app1iсation.dеЬuggег с минимyмoм Рьiчагoв уlтравлeния. opиetlTи. РoBа]lllьIй нa oтладI(y ассeм6ЛepнЬlr текстов и двoичных фаI'iлoя (рис, 22,2). ptrасесo всеми oтсloДа вь]Tскающи]\1ипoслel{oTвиЯми. ocпoван на 6и6лr,roтeтсе B настоящeе вpемя pа6o,r.асттoлъi{orra х86'пJIaTфopме,yспe xro кoNiпилиpуясЬ под следyloпиe ollrpaцlloнlrые сlIстel{ьl:Liпuх' ЕгeeBSD' NеtBSD п oPеnBSD. ПoддeP,кивaeT Toч(и oстaнoвa на вЬiIlол}Ieн!tc'JioпIalouyio/пoкoмaнднy]о тРaс. сиpoвкyj пpoсNioTp/р€ д aктиpoваlIиe ДаNlllа, tlРoсмoтP/из[{eнсIrиеP€ г 'IстрoB' (oдeP)lflrтпpoсTе]lьltийдизaссeм6лep и этo всс, !oвольпо aскстиvньпi нa6op для хак€ P ствoвarIияl ДoсToпouтeнньrй deЬug'сom для N{S'DoS и тo 6ьrл пo6отaчe' paспPoстPaняется в исхoдньlхтекстaх и rрyзит фaliльi 6ез затo ALD 6еспЛа1.t)l1' seсtioл table' ДЛя o6yченI.lятlзлоMy()нвtloЛне пoдoйДeт,нo кaк oсrlовпoй хакеp. ский иIIстPyмснт| yвьIl rre тяIlе1.'
Pис. 22'2. вHeшнийвидoтладчика ALD - ипTepeсвый sоurce-lеvеl oтлaдч!tir' TнЕ DUDЕ (hitр|//the.dude'sourсeforge.net/) действyloщий в 06хoд ptrасe и yсriсr!нo Pа6oТaтoщий ,laм, IДe вdЬ/аld ужe lle спрaвЛяroтс,r.I{ сoл(алепиIo,ра6отаeтToлькo пoД Linuх' а лоIсцoп]тикаNl oсT?l,'lьllых oпepaциoппьlх систсlI осТаeтся сoсaTЬ Jlaпy. ApхиTекTypнo стoиT из трeх oснoвtтьтхчaсТeii:мoдyля ядрathe-dudе'o' реar1изylощeloнизкoyPoвневъiе oтладoчнъIeфупкЦии| спpягaюrцeй 6и6Лиoтсчнoй 06ePткIl вoкpуr.I{его |ibdUderjno.50 1l вilеllllleгo lloJl],зoвaтельсI(oгoинnrРфейса ddbg, Co6ственiro rовopя' пoЛЬзo. вaTeл!ский иlrтеpфeйcЛyчшс сpазy пepeпllсаTь,oтлaдvr'rrс6eспЛaтeп,яo для еro скaчивaния тPе6уeTся лреllварителътrаярегистpaцrlя нa WWW.sourсefoг9e' net, LINIсЕ (http://Www.|iпiсe.сom/)' slrft iсe пolt Liпuх (Pис' 22'З), чpезвьI.rаiiнo мoцньIЙ oтлaДчик ядеpнol o yPовпяj оpиeнтиРoва]riiьiй fla рaбoту с двlrичньlllи файЛaми 6eз исхoДникoв- oснoвпoii riнстРyмeнт лю6огo хaксPa' pa6oтаloпlегo пoд LiлUх. B пастoящeе вpемя р.r6oTaeттorrькo пa яДpе всPсии 2.4 (и вродe 6ri '
з60
глaва 22. MeтoдoЛoЙя защитЬ| в миpeUNIX
2,2), нo oтвaпиBaется с 0ши6к()й в файЛc lсеfасe'с при Iсoп!пиJIяцииl1oд все oс. тальньIe,Дo6aвляeT yстрoйствo /dev/iсe,чeпlлегкo вьIДaетсвoе tpис)тствиr в си. стeпIe(BпPочeп{'б.naгoдaряllaшlчltю исхoдньIхтeкстoв этo IIeпредстaвЛЯстсеPь. езнoй пР06лемы)' BспЛьIBаеTIIo lfi,чaтпи сtг|+Q'пpинeм USB-хлавиатуpа пoка не пoддepэкивaeтся,Зaгpyзчикa вст и rrе пpедвllдится, lloэToмy одинственньiм спoсo6опI oтлaдки oстaстс,r внедРенIreмaлII'ilIIoй кoмаnды INт 0з (oпкoд ссh) ! тoчку вхоДa с loсJlсдvющим pyчньlп' вoссTaнoвJ1ениl]i{ оPигIiн тъ'lolo сoдeр-
Pис.22.з.Heт,этoнесroн, этosоft.]с€пoдLinlx| . экспepпNleнтanьпый PIсЕ (httрi//piсe.sоurсеforge.nev) ЯдеPньIйoтлaдчикдля paбoтaloщий Linuх, тoлькoв lФIlсолъlloмpeжимe(Tocстъ6eзХ'oв) и Реalти3ую. щий N{иlrимvмфylrкций. Tем Ite мeнre и oн нa что тo п{Фiсетсгoдиться. Thе х86 Еrnulator plugiп for IDAPro (hЕp://idа.х86emu'sourceforgе.nev) эму,']ируIoпlиiioтладчик' кoнструIстив]IовьIпoJllll]Irньйв виде плагина д.ляIDA Pro r,ipaспpoстРавяIrщиriся в исxoдIlъ]хTeкс]ах6езlrРeдкoмIтиляции (a это зllaчит, чтo крoмс саfioй IDA Pю eще ltoнадo6итсяи sDK, пapьrтькoтopьпi нaмноro Tpудltее).oснoвнoе toстoиilсTвoэмyлятoравтом' ч'гooп позвo.]lЯе t вьlпoлtUiть п r o и l в o Л D , L | с t у с { , 1 | . o 1 i l | | J в и р т } i ] - l | ь н o Nп{p o L e . " o f l c ' l i a п l ' и M е р , n е р Р L а в а r ь
paзведка ЛеPед6оefi,или вхaкерскoМ лагepeу кoсгpа
з61
. ' P а в , e н и P l г o | , e l у | l e Л г о 3 е p . ( с e p и i I l o Г o l I o r , е P с п с p o , Л Ям, и | | у я o ( " т a п ь | | o й кoД.TакaятeхllиI(aсoвмеЩaетJlyчl]rиочсртьi стат]fieскoгo ll Дина]!1l1ческoIo aна. лизa, зI{дчитeЛъllоУtlрoцaя взлoм закoвьIp,IстьrxзaIцит (pис. 22,4),
Pис,22.4.oснoвная панeлЬ эмvЛятooа
Pлс. 22.5. кoHсoльHая версияIDA Pro
з62
глава 22. мФoдoЛoгия защитЬ| в миpeUNIХ
дизAссЕМБлЕPЬI IDA Pro (WWw'idаpro'сom) "'тучшl,xiдизассем6лсp всeх вpе;Iен и наpoдoв, тепeрь дoстyпriЪlй и lloд LiЛUх! ПoклoЕникri же FгссBSD и oстalIьньтх oпеpаци. oпttЬIхсIJсTеnI]!1oгутдoвoлъствоваTьсякolIсoJlьнoriWindows-вepсиeii' зal1ущеl'. нoi1поll cмyJlятoPoNI,llЛи pа6oТaтьс нeii l1с1loсредственяo из.lтoд Мs.DoS. os/2' Wjndоws,lIo недавнегo вPсмсt{l' IDA pro oткaзьIв:r.lrасьдизассeм6лиpoвaтъфайлы бeз sссLioп taЬlе, oднaкoв пoслeдIlих веPсIlях эТoт I'е]1осTаToк 6ьlл yсЦ)arlсн, UTсутствЛе пРI,IJIичньIх отлa-цчltкoвпод UNIX rtprвPаlllaеt.I D^ Ргo в.)снoв}roй иrl(тpyпleн'ГвзЛоNI1циfi а (Pис' 22,5) oЬjdump aпaлot.durrrpЬin для ЕLЕ.фaiiлoв с llpoстeiIьк]1]!1 дизaссем6Jlcpoм вItyTPи, ТРе6yет o6язaтcЛъrioГo]]iLJиЧияseсtjon tаЬ1с,пе пеpeвapиваетискакeн. l j l,lх llo'поri,с yпnксlванньши файЛаNllt}rсспpaBлясTсяi теNrJie Mенсс в oтс}тствиe IDA Ргo сгoдится 'l ()па,
шпиoHЬ| тruss _ по']e3I]аяуTIlлитa! lirГаTrl],IAl o6РaзоNl !хoдяllilLj{ в I(oNlI]лс(тпoсTавкI,I 6oJп,lllипстaа UNIХ'oв. oтс",rсясивас'lсilс'ГellпЬIс ]]ъlзoвь](oнli nre. sуsсаll,ЬI' рrlс, 22'6) lr o'гlraпЬI (siglrills),сoвоРпlаcN|ЬlсЛoдoпьIтI|оjiltРorpаммоii с IlРlx(лaд. () вl]yтРсll Ilc]\I]llltрcзaпlиl] l()l.о}lcха. но].ovPовll,Il чтo пoзl]о,|я1]l]!llloгocскaз;i].|, llI,Iзмa ( Л и с T r t I l2г 2 . 1 ) , лисrинг 22'1. oбpазeцoтчётаtruss - 6 i ' 1 6 5 / 9 8( 4 f l п | a p ( 0 х 0 ' . 0 9 i i ' 0 х з , 0 х 1 0 х002)' . 1 0х2808b000) - 0 (0х0) Drсak(0х809b000) =0 (0r0) 0гоak(0х809с000) = 0 (0х0) b.еаk(0х809d000) - 0 (0i0) b.'"аk(0х809o000) -0 (0x0) siаt(.,'0хbrbff5l4) =з (0х3) Opеi(' 0'00) = 0 (0х0) lсlrdiг(0xЗ) =4(0Х4) 0 р с n (. , , 0 ' 0 0 ) =0 (0х0) stаt( ,',0хbfbff4.4) =5 (0х5) opеn(.,"'400) = 0 (0х0) fstаt(5.0хbfbff4d4) = 0 (0x0) fсntl(0х5,0х?,0хl) sysсtl(Oхbfbfff8с'0x20х8096аb0 0ХbfbffЗ880х0 0х0) = 0 (0x0) = 0 (0x0) f5tatъ(0х5.0хbfbffЗd4) = 0 (0х0) bгrak(0х809f000) g е t n i г o n l r i € s ( 0 х 5 , 0 х 8 0 9 е 0 0 0 , 00хх1800090а 0 b 4 ) - 5 1 2( 0 х 2 0 0 ) q е t d i | с n t г i е s ( 0 Х 5 ' 0 х 8 0 9 e 0 0 0 . 0 i 1 0 0 0 0 х 8 0 9 а 0 b=40) ( 0 х 0 ) .0 (0х0) l s е е l i ( 5 , 0 х00) = 0 (0х0) сlo5е(5) = 0 (0х0) fсlrd]г(0x4) = 0 ( 0 i 0) сlоse(4) .c (0х0) f 5 t a t ( 10 х b f b f f 1 0 4 )
развeдкапepeд бoемl или в хакеpскoмлагePey кoФpa bгeаk(0i80a3000) !гrte(i,0х8091000'158)
з 6з
= 0 (0х0) = i58 (0x9e) eхit. rval = 0 PГосess
Pис.22.6. o.слe'шван/еs}Бса|.oвс помoць'otass кtгaсe . eЩe oлпa yтилитa из штaTlloto l(oмплeкта пoсTaвки. O,]'слФкиBaeтси. стeм!Iыe вЬlзo!Ьlt Da]netгaпslatioп (с!tlгГаксичeский рaз6oр лмefl ) ' oлсРaциI,lввo. дa-вьIвoда|сигflaJlЬr' userlапd.трaссирoвкy ll тleрelспloчениeкoIlTeксIoвl сoвeр. Iuaeмoe пoдolтштпoй пpoтpaммoй с,tllcPIlого уPoвня (лIrстинI 22.2)' кoрolle Iювopя, ktвсс пРeДстaDЛяeтс06oй yJlyчr|Ielillьlй RaРиaпT tгuss, olllIа|(о'B сJтли. чиe oт пoслсдltойl вьIДaeтoтчсT11св тelсстoвoйl a в двoичIioii фoРмe' lt для геIll]' рaции oтчетoв tleo6хoдимo вoслoJ]Ь3oвaтьсяyTиЛи'гой kduпlР' листинг 22-2.o6pазецoтЧетаktrасe 8259ktгaсe сALL !гite(0x2'0хbfbff3fс,0x8) 8259ktГасe 610 fd 2 Wгotе8 bуtеs 8259ktГасе REт !гitе 8 8259kt.aсe сАLL Wгite(0х2'oxbfbff42с'0х13) 8259ktгaсе GIO fd 2 ягOtе r9 bу|es . e х е сo f ' а с ' f а i ] e d . 8259ktГасe RЕт Wr]tе 19/0х13 8259ktгасe сALL Wгjtr(0х2'oхbfhffзeс.0х2) GIo fd 2 !Гоte 2 bytes 8259ktraс€ 8259ktraсe 8259ktгасе 8259ktгасe
RЕI Wгite 2 сALL Wr1te(0x20хbfbff3eс0Х1а) GIO fd 2 Wгotе26 bуtes npoДoJLкениe9
з64
rлaвa 22. мeтoдoлoгия защитЬlв миреUNIх
лис'ti'нr 22'2 (лpaДory<e ниe) .'NOsuсh fjl€ Oг d]гeсto.у 8259ktгdсe 8259ktгасе 8259ktгасe 8259ktгасе 8259ktrdсe 8259ktгaсe 8265ktгасe
RЕТ 0ALL RЕт сдLL RЕт сALL RЕт
Wr]te 26l0х1a sigpгосmаsk(0хl'0х2805сbe0'Oxbfbffа94) sjgpГoсmаsk 0 sigprосnrаsk(0x3'0х2805сbf0 0) sigp.осmаsk 0 exit(0х1) ktгaсe 0
шEстнAдцAтEPичI{Ь|Е PEдAкToPь| BIЕw (http|//be|net.d|'sourсefoгge.net/sourceforge/bievbleW562.tа l.bz2). нЕх'pe. l(РиIlтopи иfiспeктoPЕLF.фopмаTaв oдtroМфлакoнe дaтсToР' дr,Iиcсeм6лер' (рис.22.7).всЦoeпIlЬlйI Aссо I6лepoTсуTствyeт, пoэтoмyхaчитьлрихoдитcя l{епoсPeдствеllJloв мaшинIioм кoдe' qтo напpяlaeт' oДl{aкoдругoгo вЬl6oPa y нaс шст (pазвe чтo,tlollисaтЬ Ассем6лep самocтoятeльilo)'
pёдdпopbiew Pис. 22.7. L],]eпнадца-epичrы;
дAМпEPьl B UNIХ гoдерlrtиvnc памЯ |и ка>цoГ4 из пгo.rрс.oрoв ljpr'д.тавлello в виде нa 6oрa фaйлoв' рaспoлo)кe]{ньIх в rraталoгe /рIoс. Здeсъ )ке хРаЕиTся кorlтекст pe.
сpедmа защитЬr авт0матизирoванныe 1.llсTpoвIl !се oст:f,nьпoe'oДIraко даllп памятIr этo ещe не roтовьIli ЕLF-фaйJr, к нCпoсpсllственнoму упoтРe6Лeilиio оlI I{епригoДен. Tем lle менeе лIlэассeм6 лlIPoвать сго {сьlрoii' o6pa3 вllo.nпeвoзNlo}i]Io.
ABтoмAти3иPoвAнHЬlE сPЕдстBA зAщитЬl
Уllaковщttк]l uспoл]lяеlпnх фаii..lов llспoлЬзyloтся Irе тorrькo л.lrя уllelrЪrJlеll,Iя lIolt дЛя затpу''UlеI l rlя ее Rз.nol!a' Пo/l WiшlоWs Tакaя vеРа Размеpoв I1рot.рilN]i!1ьI' никoгo llа/lолгo }tс oсtанoвltT' воT UN]х _ Друfос r1е'ЦolArтoN!атrtчсскllх РасllitI{o1rIJпковнст, дa]\1псpьl]l нс l tо чсgil'llи' oт.llа)ltива,Гьнсчсм (oс116ся]lo нa ]1с.Liпuхс11стспIах), Прoстo xpoIlускастс (l)аli"цчеPcз уl IlrкoвrцII].' 11хРсfi кTo сго Pа(t{oвЬI. pяе'г, To сстiJ рaсltoвr'lр,lIЬ.Тo' к()ttoЧlю' сIl()t,уT,Iю дnя эTof() хаl(сpу Il()ttадoбll,|(Ll вl]с!пia всскilЯ l\lo1.11ваllll't,ко1'()F)ii у llсГ() о0])|чllo Iкl'l'' N l l r l t v с в с с х y I l i l к о l J l l l l l l l о в l l 1 ' ( ) N lч' T ( )o | | l |с e l ) ь е l l I o с l п | ' { i l l o ' ГI l ( ) 6 l l , r I L l I o с ' iГl li )l l I l i i . L I l с | l l { o 1l Ii P ( ) Г l ) а l 1 ] \ !(ЬxI t Х 1 ) 6 c | | | | o с T с с n l i с o Л e p о 1 . J ] i ] i L o ч | l |I)]|Р( ]| | c \ l п ) ' | (T ( , t j у ' { l l ] t j сl i з 3 0 с , r ' I ь I с] ! J l I еу п n к о в | ] l l r к п l l a l l € . l J e | п ' п с . к . Ц Ю t i j l , г с ' ц Ь |l |l iol I - i n r r х l t I r с P а 6 ( ) 1 t r J l )пг( ) Д ] i . с с l j s D t t д Р у Г | | д j I lL ] N ] Х к Л ( ) l i . l N | и ' ' ГЛl l к o | ( ) хo I'| |j Il?lLlL.l.iLl|и у J t а к ( ) D I I L | r ]|(l (а' r I J l l ч с shivа (http://Wwwseсurereа ty'сom.аu/) .- сnпlьlй мО|цiп'ii у|l;rкo|lIll||к ll:l Ilссх ll\lс. l о | l L i t х с ' |х'o ' Г ' | l t( ] с l I o в i l |||l a N I o P а . r l Ь r ] ( ) у с ' l , а р с l }IIllЛ l l l|]х' | хl ]' з B с с 1 I r Ь l хW i 0 d о W s l 1 p 0 гРaNl]!jI'кjInNlс незаIIаIlят|lInх BPс\1oll' I)0lnl]3ус'I ]\lIIol.цl'lIoiillуI()}1.'ll'пl nlшI)p()rrJ{иIIoти]lv <JlYкoBl'пlln' (ol]]oпs llус).),r.ЦII <<]vaTрсlllкI'l', ЛспоJl ЬlYеl. пl 'пl\,lор(])l l Ьl ii llillIIll!lгonаIIl]ь|ii мItо'(сLlт|loм аIгIlюlJ|:lДoчIlЬ|х I llfГ|.l,llll]lilссtj]\{6iel)IlЬIх ,'lB]])l(oJ(l gd Ь lt oтJa/r]llпrаll' п Л]o/lеii.]TRуeт дPyrиIl щтleNloв, рoтl Pа6оTal.]пlrtllllерe3 ptrасe, атаIi)кс npсдoTвРaпlаст сIlятис скanЬIllt vспсlпIro боpeтся с stгвсe/]tгасe/f€ n гjs' (э'.' дaмllа) пРoЦ]аммЬl .roPсз /pгoс,I]oдPо6ItoсTIl ]l.i Ьlrlсi{lrаt,сi Wl.!W'bасkhat, сom/
prеsentatioпs/bh'fеdeгa|.0з/bh.fеderаL.0з.еаgIe/bh.fed.0з-eа9]e'рdf, вoпpекll рaсlтРосo IlесокpуrпrlI!осTII lllrtrrьr,лЛяoпьIтпоГoхlLIсl)а()llnlIе гI])eTрalleппoмy]\{Iтеlпl]о Iр;lla' ( roм у )ке агpeссI Iвпая rDI ц)одil упaкоR lцпкit прllвolLlj L к nl пor.oчl{с.llclIllьlll rlPо6ЛсNlаIl ' llсPссlTаст Pа6o1aTъ fork, ТсNI tlс lПпвьI 6oльI]Ioli lllагвпсPсд,I{ дЛязaцитьI oт нaчи!lаIоUolх хакерoв это JучrlII'Jii
вЪr6oрl Burn€ у r (httpi//paсkeБtorm5eсUгity'n|/gro!ps/tеso/bUrneуe.1'0'1.srс.tanbz2) пoпу "пяpпьlii, по Ilе слиlrlкoNJ стo].iкпir yпакoвпUЛi/проTer{тoр. У,{е ,1двlю взjl.r]\t:iIl' п pyкoводстBaпо егo пpeоДoлetll.llo Iiе IrайДет R сeт,т т{lлькo Ле]lивьlii. BoT то-liь
кo некoторьierrзпих:и]WW.sесurib/|аb.r!/tools/з2046, иa\,W.асtiva htm|, ink.nеvindeх, рhp/ L\,WW. BUrпЕуeEnсrypted вinаryAnaIisis, inс]dents'org/pаpеrs/ssh_exp olt'pdi,lIспо-rъзуeт
крaihle пpи]tl'lтив]iый Nleхаllllз]vl oпредeЛe]]]lя oт'lаДчr]ка. tlpo(To lloдае| сlil.. IIal 5 (Tгасe/bгeаkpoi nt t гар)' в o rсу'rсTвl1е GD в и.l]и чеr.o.то oчснъ rta ]]сгo lloхo. хelo псPсдaющии пPoцсдуРу' yвеJ]lIч]'вающyю уIIPав.J]снис яa сnсцllaxьнvю
знaченt1e <секретI1oli> ячeIiкIr пaмятIr Jra е/.rиflI'lцy,a B пPис},Tствпп вылeтаIов отладчrx{, Пpи наJiичии <пPaвилЪlrогo> o'Г.nаДчикaj щиii рa6o'ГаIоrlteго в o6)iо/.]
з66
глава22' мeтoдoлoгиЯ зaщить| в миpeUNIх
LjDiсe,]lonlастсяэ".1епreптaplro' хотя и не так 6ьтстpo, рtrасe.тurla TЬC Dudе Ir".]и кaк хoтсЛoсь6ьI( прl.Iхo/lится гlрoдиpаться чеpезтoI!l1],1 запyта]lнoгoкoДa'Ilапo' Nlll]lающсгoмьiчаtlие o6кyl""ttяoriкopoвьrс мaт(orroгo пoля), для заrцirтьIoт ltевъсдливoloхaкеpa burпеуевпоIнe пoДхo].tпт' a бo.цьlxегolral зачaстy]o]1Лe IrаДоl 624 (http,/sed.free.lгl624l) пIа,1olr3всстнъl].i пPoстепЬш.lji yпа(oвщиi{'Pa6отaeт шес1ь]tнсriв не]1елIопo 24.raса'а в воскPесепьeoтДьrхаст, IlIvткаIТепlпei]eнеe /]о6ав!Iть еro к своеii кo]tЛс(ц]l]l все.тaifi
с1o].lТ'
Upx (http://Upх,sоurсеforge'ner/) легеlIilаl)rtЫil пРoсс п"!атфоРмсrrrlriii упакoв. i]rlllt,pa6oтalоlциiillа llнo)xсствeплатq]oplloI Atariдo Lin х'а. l.lиrrarснс пpс. nяTстuуeт oт]lаr.lке иj чIo ху,]{с вс€ I о, сoЛеР)кllI встPоrlIIlЬrii рa rа].оrщrll{' ]ro. вeРllуT' Jа]1lиrцспньl]i фaijJ в ljеp!оpoдпьlii lr'tll; ()]1ttакo пoсЛс lIс6onьшoй дoPaft'тк]r ltаltrlльлr'rкo:iI (спaсп6o r|схoД!lЬ]м текстaУl) lIРu06Рстacт
звoлЯioЛa]il
вссь llсo6хo]iпNьlii Ilaб0p ]tpoтЛBoхaILеPскl.lх ]\lcroдиIr, ЕInrvпoгl:)'Цу\[Iс дoPа6а. 'ГьIRать прхj чelt ]1с]lo"]I ьзoвaть .l lо6о ii иll суtt1сс'ГlryiоlJIllх IlаgссxЬlх lIPoтеIr'ГoPоB, ]l.)ск.)Jlhкv 90,ll(LllI к'llol] u!х il IЦ)l(r(Цtl1(я 11ссjlс,'lo3ать jtlIдlrви]lyаrrьllol I' хilкеP lIo ]vl())J{с l ]1(llo.!ьзовать o6л0rс сxr:мr,r, Iiстостпel l l lо l ,JLЛJI I{oilсPIп]3ailrirl уl|1lкoв rl(rrкa вirrI tlorra/юlJя'гся aIцlк'.r]ад0чяь|с пРll(,\JЬ|' o 1,сrIilп{е кoт()lniх Njl,l ссiiЧaс
AHтиoтлAдoч н ЬlЕ пPи ElvlЬI Бo.llьtllllllсT|]() ilIfги()].Jlа]loч|lЬIх 11рllеl\l()l]lI.) сЛocii llp |х)iLс с||с1'o\1Il().з:lBrtсrIN!U ll ||рeпя'|с].вylo'l' l lсPcIlосу заiIIlIl]к.I||loi] lIPol.pil\ti!1lll I1il r.lPyГuс rIJ!aTфоРNl'.l пo. , | 1 l ч J / | | ' ' '., . o \ ' | | | i я | | \ l |(|, | ( ] / , ,| 6 U J L U n i i . . 1 , | J ' , к U l L ' ! , | о ' v l ' , 1 ' l l , ( J . ] , ] | ' . сTЬк)|'гпlir'ГсJlьIroтсстItpyя ка)(дуI(] с'l'poку кoдa'
пAPAзитнЬIЕФAйлoвьlвдвскnиптoпьt в 6oЛьntuJiсTвс UNiх'oв (есJп пе вo всrх) фairЛ' запу!lсllнЬlii нopмaЛьIlьIмо6. paзoll' по]1учil0Тв свoе paспopя'{e]lllе r'Pll дсскPIrпторa _ 0 (stdin), 1 (stdоut)' 2 (stdеrг), GDB II поtобнъIe eмy о'1.]Iilдчикu сoз/цaIоT ДoпojlниTcJrьньrедескриптo' tlтo6ьl о6пaружlrь oLlадч!кj Ir l]aкpЬlвают lle lix, за' PьI д0сIaточнo пoпьI'Га,гься RPь]ть Дeс!сpllnтoP нolleР 3' п есЛи э,ra OпcPaция зaвepшится yспell]IJо,3]IачI]т. пaс oTJlажпвaют пo пoЛпoii nрoгPамt,!е] Гoтoвьтir ттрлмeр peаnизацIlи ]\Io)кеTвьп)ядcть' напpиrreр, тaк (листинг 22.3.
рис.22'8),
лисгинг 22.3. PаспoзнавaHиe отладчик.по пaразитнЬM дескриптoрам
з67
приемЬl а}rгиoтладoчныe
Phс. 22.8. капкандля dёbugger'а
APryмЕнтЬl кoп,|AндHoЙстPoки и oкPy)кEниЕ o60.д0чка тилa Ьash aвтollдTичсски пoДcтaвЛяeTим'l 3апускае]t{oгoфaйлa в пс. peмoн}tytooкрy,(eпrтя <_}. oluа'цчикп'(eoстaвляIoTсс I]усToii (1а6л. 22.1), l{a6ЛIoдaloтсянelсoтoPьtr paзлиtlия и с нyЛсвЬlм aPгумeптolll lсoмaнД!]oЙсTРoltи _ bаsh (и пoдaвляюIцсс doлЬшlttlствo ooтаJlЬllЬlxo6сtЛoЧeк)]loдстaвЛ,IcTс]oДaтe. кyцее имя фaйЛa' a 8dЬ _ имя фaйЛa с пoлl{ьIм llyтем (RпрoчeN''a]d тaким lrу. тсм paсIro3Пaтьнe yдаeтсЯ). комаlдноЙсгpoкии пеPемённЬм oтладчика по паPамётрам тE6лица 22.1. Pаспoзнаваниe
аrgvt0]
sоo а|d
9€ t еnv(|'_t')
(NULL) (NULL)
дEPЕвoпPoцEссoв poдnтeлЬскoидeпTифиI(атoр пPoгРапlNlьI B Llnuх пpи нopмaъlтoм испoЛнeпиrr тo прoцecсa(pрid)всeгдаPавенидентифицатopyсrссии (sid)' a пpи зaпyскeпoд отладчикoмppid и sid Раз'пичнь!(тa6Л.22'2). oднако в дpyrих oпepaциotrньIх систeMax(яaпримеP' FгсеBSD) этo вe тaк' и sid oтличаeтсяoт pрid Дажевне зaщиЩеннaяпo эToйlleтoдике|дaeTтeчь' oTладчикa.кaк слeдствиe'пpolРаl{Ntа' oткaзывa,IсьвъljloЛнятьсядФкеу чест]rыхпoлЬзoвaTелeи.
з68
rлава22. Метoдолoгия зашrитЬ в миDеUNlx
Лrtчlloe ва6;rюдснис: пРII ноРl]L'тьпol!]Псllоnнснии пРогрaммьl пoд гrсеBsD иДеяTификaтoP теitущегo пропeссa сущссTвснtlo oтлlrчaeTся oT !дс]rтиф]rкатo paрol1ttтсЛъскorolа прIr запyске и]l'пoДo]nадч1lrtаIrдеIlтпq)I'It.а1oP PoдrlтrльсrLoгo Ilpoцесса i{сньпIe Рoвilo Ila едипицv. Таким обрaзoу' зaкoнчrнн!Iri прrxшеррeaлизаци]l lllожет BьlглядетL'Tar (ЛистЛнг 22.4). Листинг 22.4. oпPеделениe oтладчика пo роAословной прoцессoрoв
) &( ( g e t р р r d (+) 1 ] ] =g е t р р i d ( ) ) ] f ( ( ! е t р р ] i ( ) = g е | s ] d ( 0 )& p Г r n t (f n е b u 9 g el r. а sb е P n. е t с с t е d l \ n , ) ] р f i п t f ( ' а ] l o k| \ i ) ) 1a6ли\a z2'2' Bap|4aцИи идeнтификатopoв в L]NUХ Gеtsd Gеtррid G€ t рgid Gеtpgrp
сигнAлЬ|l Cлсдуloщиi'i
sh€ I I 0х1968 0х1968 0хза6e 0хза6e
gdb
strасе
0х1968 0хlа6f 0хза70 0хза7о
0х1968 0хза71 0х3а71 0хза71
0х1968
0х3a7з 0х3а7з 0хзa7з
0х1968 охза75 0хза75 0хза75
дA1tlпЬI и исключЕния прIleм oсilовalt Itil тоlr rllaкr'c, 'r'го 60jlЬLLlItIlсTло оTЛlli(чиItоB )l{ссTкo
sIG.гRAP.сllгtlа.пnl(trасe/breаkрointtгap) tt Ilе ПозtJoj|'lo'Г дсp){(ат oтЛ кивaс' N'oйnPoГParurlс свoп сl]6сTпсljIll,lс o6рa6o,г.rrrкrr. I{акэто rIo>rоrо устаIlаDJIIInать llсlIoЛьзoвaтьдЛя заrцпTь]?УсTalJiL]]ли]raсiv о6Pа6o'r.чI'lк I1скЛ]().lиTеJlЬlюii си'ryа. (sIGтRАP' пoсpeдствоll ]rьlзоBa signаl hаndler) II сllvс'Гя IteкoTорoсlJpсмЯ вЬг циIr пoЛпяем иtlсl.РyI(цI'lIоINт 0з. ]IрI,tflоprllanьlloN'РaзnrlТ]1t1сo6ьГГlliiуправJlсние nоЛyчает hand]ег'а пpli проrollе ]трoгРaIl11Ьl ll{JдgdЬ IIРrисхoдUт авaриiillьIii ос-
, , 'н o в с в о ] q р J | . | . ч l l e \ |о г , l ' l л ' I l , | , , n П ] ' l , P U , U J | | o в , |, l| | | |q|| , | п o| | | . t , и яп l j n | l t J м \ | a пpoдoJ.I)кaeт ислoЛ]iя'Гься с IЦ]epваlllloгo I{сста' прll этoI' hаndleг vl lрав']lеIl llя ,Гaк I{ lIс пoЛучаст. иl1ссТ сI]ьIсJi повесlIтъ Ila Ilего peсшllфpoвци1r и"lIи лю6vю дрyг!Io
{
антиотладочнЬrе приемЬr
з69
ик на iN 03 / / y с т a H a a Л [ 8 ао е0 D раr]O s r q i а l( s ] G т 8 А Рh'i n d l е г ] :
/ / t n ь в a е [ ] | ] т0 3 п е D e д а в ауяi p а в л ! н и et r a n d l с .v / / и л и 0 i л а l ] ч и t r(уе с л i 0 н e с т ь ]
asm,(1ir3 )
/ / з а шa p o 3 a в н acяа с т Ь п р О г р а t l ь / / p i с ш и ф D o ш 8 d e иl rааяn d l e rО и O . i n t f ( h e l l о . w 0 г ] d\ п ' )
l
PAспo3нAвAниЕ пPoгPAм]tlнЬ|xтoчEк oстAнoBA I l p o r р а ] ц м l l ь l ет o ч к и o с т i i н o в i l ( I t P с l L с 1 ' n B l я l o l r псl сo 6 { l i i I J l l l l i l I l l l l у l oi i o п l а I t д у , | , r ' I l l l ' , , | \ | ' ' ' | , | ' l ' ' . l , , ' ' | П l ' j I t ' | , : , 'I ] . 1\t03h',ol(.лon.с|.,l' мы сo6ствeппoго тeЛа (Лисnur| 22.(j) |I(х.кoj|ькv IIоря/lОI(Р.r3 спlсl|ll' (l)уItlt. цlIй в паlrятrr в о6пrс:irсrrYчассоlllIiljLnclс lIoРЯлкoll rlх о6т,rrвленпяl rк:хсr,rttrlм (Лc'(vJ()|цCiiф\,ilItllIllt. IlLl]|tlчLlЛo тскстe, e'rРес I{oн]lnфуIlIrцlll.lPl]rсll ук!зiгГL,.rIr() л|1q'nr 22.6' |(oнтpoлЬ целo-HосгисgoerокOдaкаксpедсгвoo6нарyжeния тoчекoстанoва программвЬ|х i0о() {/* (0|rrpoлиpyoldi ф!' ]Lrия] */ ) b а г ( ) ( / * к о н т p O Л и p у eфira]кяЦ и !] * / ) {
r n t d u n s ] g п есdh a |* р a - 0 f о Г ( р . ( u n s | 9 n ссdh а r * ) i O ор: < ( u l ъ ] 9 n есdh а . * ) i r а r np]. + ) if (а L=-llY-сRr: ) pгintf ( dеbugqег hаз beеniеtoсlr]( \
)
p г i n t f ( ' а ll о k \ n) : )
мЬl тPAссиPУE1"t' tlAс тPAссиPУют',. Фyнкцию ptrасe I]ельзявьlзьiватЬдвa)кдьI IloxЬtTкаTРассиpoвки yx(eтpaссп pуе}Ioго IтPoцсссаIIoро'клae'ГопI 6ку. Этo нс oгРаничсн]1с6и6nио1скu pitасе этo oгpанинсние 6oльrпrl]lства прoцeссорflьIх аPхtlтсxTуp (хoT,l !1ах86-прoцeс сoрat мoжнo и pазвсPнуTЬся). OтсюДa rlДeя де.nаeпlfork' расщсIlЛяя nр()цeсс пa /xвa' rr тpассllРyrп1 самoгo сe6я, Pollrtтелto дoстается Pт АттAсH (t)н,r.с (oII ;ке PТТRАсЕтRАсЕ t1Е),tlтo6ьl хaкr! PпRAсЕ АттAсн),a пoтoilкy - Pт-тRAсЕ-|4Е нe IIри6ил ptгасе' B хoДe тРaссиРo!ки Реl{o}1еIIдуеTся ДeЛaть ч,Го (IiапPимер' llияаsirlчeскп paспI фрoвaтЬ кoд)''гoIда оTxадкa Та!;o11пpoIраnlNIьI 6yлет возможнa лишь rIa э]\{улятoPe'
з7o
rлaва 22' мeтодoлoгия эaщИтЬl в Мир€ uNIx
Прoстеil lиri приNIeр Pса-IизацIJп Nfо;t(ет!ьIглядетъ, пaпpиNtеP| тaк, каI( лoказa. Ilo в JIrrстинге 22,7,
лисa|nн.22'7' сa|4aтpaссирyющаясЯ прoгpамма {
р]d-t сhild rnt stdtus 5 W ] t с h ( ( с h r l df.o г k () ) )
t
саsе 0
// пOто!O( )| рtгасe(PтRАсЕ-тRАсL|,lЁ / / с е к р e т в a яч a с r ь - . i rt ( 1 ) :
са5е .]: // OtrибG pе.гO.(,'fO*)| eх]t(]) dеfau]t // pOдL{reлD j f ( ! t г а с е ( Р т R ^ с Е - д т т д сс нt r,1 l d )
{
l
.i ., .lс'
\| "'.' 2 l ' l r i l e( ! а ] ] ,dp( с h i l d& s t а t U0s), ] = . 1 ) с]rild'0 0) р|rас0(РгRАсt-с0N. е x 1 t ( |0 ) |.
l
пPяMoЙпoиск oтлAдчикA в пAмяти вся]rиii отЛry(чпк пP],iк.цal{ноroуpoвllя n1о)l{o1. 6ьlть oбrlаpytкоп тр].Iвlla'nьIlьl]\1 пPoсl"Ioтp.JмсoдсP)кllмoгo /pгoс (Рllс, 22'9). хоpопIllii Pсзyjrьтaт Лaет Лoиск llo сЛгIlатyрaм _,rеItсToвыlll строкa]Чкоl1lrРайтoв l.o]lIФетl]ьIхoтлa']iчикoв,чТ()6ьI 6ьlть увеpеrtttьrм,нтo oтЛallolBа]о1l]\lcннo пaсl a llс ltогo тo eUiеl l1oжllo срaв. нить иДeпTификатop прoцeсса oтЛадчикa (оп сOвnадaст с til'e]le]uсoоl'всТствyющeй диPекТоPии в / pгoс) с IцснтифиxатоРoм NlаTеpинстLогo пpoцrсса (огo ruож. ]lo пoЛучи,rь с пoмorцъю getppid)' oднal{o eсЛи oTладчIJк сдe'llaе1.аttасh нa aктпвпЬIЙ flPoцeсс, эта Nleтoдиlraне срaботaeт, впрочеra' Лучше не зarlстl.l'гьoт. лaДчик| чеruрealиpoвaть нa oтладкy noстopoнних lтРoцeссoв'
ГЛABA23
oсoБEHHoстиHAЦиoHA,lЬHoи oтЛAдки B UNIX .,'ОnlnОкаnolо6ln oхol1|е шu pьl61loiлallе:пе Эlсеэмоu,uu, оnpас|nьu а3аРn,/Ion2oесuae1Lue в 3асаAев 1сo1lце xolцao оoзпaцnэкОаеmся,Оuецi tкл1l tевuОtыui мupу no6еlоii,',, ЕвгrниЙ к0цю6а Пrрвoc знакoмствoс GDв (чTo.-roвPoдcdebug.соm дЛя Мs'DoS, тoЛьltoiloщ. нee) вьrзьIвaс'Г с oтвPащctl!1сl{' v пoклоннllкoв Whdoп,s смeсь рaзoчаровaпI,Iя
a yвrсистаЯ дoкyl{сн1ация вгонясT в lJyбoкoс y]IьIнuс| rранпчащеLас суIrЦIIдol{. oтoвсIoдy тopчат Pьrчarlr yпPaв,!енIrЯ] tlo нст ни гaзa' нr,тPyJЯ. нe хватaет,гольк o к ' N l e P l | ь I хт о г ^ ] o t l и r п c | , y ' , ч , х l | , , , у | j ,T ( i ( r о | | и к с 4 и L L ]y х и t 1 я | o т ' я в ь | ) ь и т Ь в aгpeссивПoй сpеДe эToгo пеPвo6ЬIтIloг0 Nolpa _ зaгaДкa-
oтлAдкA B истoPичEскoЙ пEPспEктиBE нeскoлько сTpoчeкrlсхoдrroгoкoДa UNIx'aеuleпon'пяTтeдpевпиeврeмeпa' ког/.Ia ]iичегo пoхoжelo нa llнTepa]сивIlуIo oTЛaдку lle сУщeствoва-iroи eДи}1сTвeнншl1 средствojlI 6oPЬ6ъr с oши6кaмIl бьIЛ aвapийный Дa!1l]пaмяти, Пpoгpаlrrпrстаrr пpихoдl1Лoсьмeсяцaill'1( |) пoЛзaTьпo вopoху рaспeчa1oк' сo6иPая paссьnIaвшIlii. ся кoД в сTpoiiнylo кaрTипy, ЧyTь пoз)ке гIoявиJlaсЬoтлaдoчная пeчaть ' oпepаторЫ въ1вoдa'пoнатьIкaнIlые в ключевых lleстах и PаспeчaтътваIoщlleсoдержIlпtoe вaжнейпIих пepeменных' Если lтpoлсхoдиT сбoй' прoстынЯ рaс]тeча]oIс
З72
ffiа
23. o o6" 'ьoс'i
o,иotsа'ыoиотладl/вJN'l
(в пpoсToPсчlill i 11ортяri(a') пlrзво"]rяст yстаl I()вuтъ'че]\1занIl]\fа-!асЬ пPorpaN,ruа дo этoгo и i{тo еe так, oт,]&,loчнaя печa].ьсoхPаlli.l'llасвoIоaк,|уаrlЬrloстn11пoсеro]tнЯIrлrrJiiдснь, B ljrlpе Windоw5 oнa в оснoвнolI ilсllo.Ilъзye'ГсялиlIJЬir (]|;IaдoчпъlхвеpсIrях xPоIРал1i\1ь] (лrтстltнг 23'1) x y6иPaетс, !в фпlIа]lЬнlril (rllст1]Hr 23,2)' чтo ]LссстЬ xорo1xo,,' Koгда y копe'rньrх по:lьзoвaтелeii xPo'lсхoд]1т с6оii' в pvках oстaется lrlrrль aвa' pиiIньп:iДalxI' нa кoToPollлаЛelio нсуeдсш!, Соl..llассIl]отjIадoчI'aяIlечaТьoтпим . Р Г | P ( у D J' , l в Г 1 |' R ' , I | U ' ,\ | . р U N | \ , ' , l r r r " ' n r . | . I v п | l в' , | ' , , с ''JU. I t o л l l p o в а н r l e ]_\ 1 o т с т а ] l д a P т п o г os у s O g Л o r l p o д в I п I y T o г оЕ l l t с r p г i s е Е v е п t Loggiпg'.а (http://ev]oq'sO!rсefoгge'nеt/) oflп Ф!ipаlllак'| наrr,.]aЛI ь]с расriолы rIа вьlвoll n ведепlс яyP]r:Ulа. 3нaчIlтеrlr'rloyвeл|lЧllвaя скЦroсть Bь]Ilo.llне]Iпя]lPо-
Iрal{NIьl,
oт.па,.lочнaяпечаt'r'на 80% уrтpaпясr rIотpе6lrrl('1x! oт.]|адl{с! вr/llьol.Jlaдч]Iк l,с. nользуc'].(lяв oсlк)rllo}1 дnя ],oгlrlrlто6Ьl o]rрe]]t'(ltTj)'l{aк 8сi(ст сс,6' lIPoгPa[|]\lа в дaIпюIl коJlJLl)е,|,llопl;\lL,сTс]llЬl]lo.Iпl'|сlс' 'qIly(],rl()l]tlЬIi] пL'Jrсхoл]ijl ]tс1.lчTо llо3вp:liIlас1.(лупl(|ul,r' каit]Jе!ltilчс|lll,| со]rсP,{атс,lв lIсРо\r(ltllьlх ji l.' д, П!ос11) r'1сппTе сlo/lа ipгintf/sуs] 09 !l сь|оЦ)uj.с lIa ]rсlу.llЬTrrL лис'инr 2з.1. HeлравилЬнЬй пpимepиспoльзOвания oтладoЧной пеЧати #]ldсi D[BUс_ i p | l n t l ( ] о q I ] l с ' ' i r - l { х 't r . ] l l , с = l r r i . , a l r с ) Лисrин. 23.2' правиЛЬный npимeрислолЬзoва!иЯ oтладocнOй пeчати ( . D Е B L ] 0 _ ) ]l i р r i n t f ( ] о g i r l е' а - t t b - 1 ( ' с . ] i х \ n а b с ) tIсЛoBск
| { ес , п у Г ак o i v л Ь I O г о P aэ ]I ( ) l i о л l l I ь к ) | с]pl P I l ' ' ( Y N |Д n lnIя a в T о N l l t T x з a l l l | | l чenoвечcсI{{liiдея1'сJrьпoсlr|(rj iIlDе Wiпdo{'s -' IllLо6Opо'|]1)' поэт(,l"lуUNIХ iпlсхaII}lзllpveт' lloиск опIибоtrrrастo,rько,rr:rr:r
ЬЦ,']l,|!,(
,t
г
ц |v |рlr1,|' ]|l
вoJЬ]\l|||' ]в|o.
]lOIrньlе вl]pпфIiка,|oрЬIк.rЛа (саIIъIй ll]]l]сс'гIlьiii}Il,кoTорЬlх ]-int), lI6aгll llo6сryт и3 IIPoгрaмiuЬl]rLаrL]!lЬlцЪх с тО]|ущclo кoPl6Jя 0;]с, 23'] ). WindowsкoмпriляТoРьI тo'(e]!1оIутгеIIерrIPовaтьсOo6лlепl]яo6оnlll6xах' по сТl]oгoсти пe yстyпaloщие 8ссl rlo 6оJrьпlI]lIствoпрoгpaпIмrlсToвпPопyсl{аот их Ilимo упleii' куЛьтурa IlPoгрaмN'rlрoваrпlя|6JIин! lIoшагов0e вьIпo'.]псниспpol.Ра11мьIIr кoltтPo.nьпьIетoчкп oсTановa в UNIх rlспoль3yloтся ЛlIшь в ltjlllпиrlcскI{x с"lтучаЯх(тI,па тPlrпariaцIrичереlIa)|когllа всс oсTaJlЬ}rьiесP!Цства .Л.азьlваются бссс]IЛьпЬl-!]]]' Пoкnoнн'lкaм Wiпdоws TalioIi ]]одxoд кФt{стся lleсoвpеllепIlьl!l, vщер6]lьlNIIJ'кyTtro нсу/.io611ьli!]| I{oэTo всс потoIfуl чTo Wilкtows.oтладчl.lrn] эффeкTивIroрeшают пpоб.lrсмьl,тсoтopьrеп UNIХ пp'остo пe goзникaroT Paзнпца rty''lьтyр гlPоl.раl'l1Jlрoвalrия I{сj{ду Windou,s и UNiх Irr.]ействитeЛЬr]ост]ioчel]ь rl oченьjjllaч!l еJЬrtаjl1oэ,Гоi\lу ]]ре'(/.IeчеIl]rи ДaTr'камни r чy,{oll oгopoдj навеl1итс пoряцoк v се6я,
рtrасe_фундаме|тдпя GDв
Pис.2з.1. Lintв oхoтeна 6агoв
PтRAсE - ФyHдAMEHт для GDB GDB _ э ro спстсix{o+сзatsI lсl 'r]l'ii 'lPoсс l ',i'''T(DOPмс |Iн Ьlii о,Г-!:LIчlп(. каIi ll .]oль шllнствo UNlх orJaДчllI{oв' ol] основa!l !llr6иб-llIoтelilr pllасel Реaxlllуtl]1Це i1 l Il lз. кoуpoB]leRь]е oтЛitдочпьlе I]рlrNlпTllllь]' fl'tIя о1.цадrr1111It()IonoтoчlIЬIх llРoцcссов и пaрaJ1JlсЛЬ11ЬlхrlPи.ц0}кCllиll pсl{oNlсl]дуcTся IlсllоЛьзо]]аTь /.Ioпо"1пll].eЛьпЬle 6116'lиoтcки, напpиlrсp сtrасe (hftpi//сtйсe'sOUrсеloгgе.net/)' il 'nvчilrc _ спeцlliL'llt. зиpoвafiньIе oTЛaдчпки типа Totа] Viеw (httр|//WWW.еtnus,сom) (рl1с 2:] 2)' Ilо' скoльку GDв с мIl0гoпoT0чllф'1ь]о сl]РaвЛ'с1.ся нс сaltыпr "lyнппIlr o6разoll (см. рaзДеЛ
з74
глава 2з' осoбeнHoсги нauиOналЬнoй oтладкивUNIX
B
ir; 'ж
м l ] щii r , ]
фi,!t,o,Pir;j*xf;j;эdlвii'i.ii9''' ]
]]'''i],]]]]1]]]lli::]l!&](г itф!;]ri]ii]l]|]]]1i]]]]i
.,"**.**i
..
тh.Ф!.Ф)
i
ll];;i;qь
Pис. 2з'2' вnешниЙвидoтладчика Tоtа|VieW,спeциaлизиpyющeгoся на napаллфЬных пpилol€ в иЯх лисIинг 2з.з. примepиспользoвани' ptlасеHаFreевsD пoдсЧеткoличeсгва машинHЬiх кo|lандвls
# ] n с l U d<e s r s / p r | а с е , h > # ] n с l u d< e sys/trрes.h> # ] n с l u d< e s y s / W аl]rt>
t lon! lon! сoun|eг= 1 // рaсцeлляе[ лрOц€ с сна два
/ / p l о 0 т л а я и в а е i о гп0р O ц e с с a / / с ю Л i! а i | з a п и с ь в а евто ] в p a ц а e | oзeв а ч е н и e / / с c е т ч и кт p а с с и р l e ш xи н с r p } l ц и Й
// рoдитeль 6yдeт // {обрaбlrтка Oшибlrк Oпtцeвa) для нагЛядв0сти si, tсlr (рid= iO*()) {
/ / д о e р н и йп р n ц е с с( e г о o r п а д и 3 а ю т )
/ / п а п а ш ан y ' ( a п O т p a с с и p yl lЙ0| , ] р t г а с e ( P т ' T R A с Е . Ц0Е. 0 ' 0 ) ; / / ш 3 ы 3 a e пп p о г р a { I у .к 0 т о p } ю н a д 00 т r р а с с и р 0 в а r ь / / ( д Л яп p о l p а t r l у л d к O в dьl x ш и в O Й]' l 0 с с p а 0 O r а e т ) ']s.. 0)] е х е с (] ' / b i г / s ' bгeaki defаult]
// pOдиr€льс(ий n р O ц e с (сO н o т л а l l и 3 а e r )
/ / я л e н п 0 к ао т л а н и в d e шпЙP o ц e с с // нe перeйдeт |lait(ElaiI Vаl):
// rрассирyеП iрouесс.norla д0чеpн[Й l l r . l e ( l , ] l F S т 0 р P Е D ( W а) r/|*- V1a4l 0 7
t
// в[пOЛн rЬ сЛeДyющl0 iашиl ltю
/ / и п е p € Й r иBс 0 с т o ] r | и ое стa]оBa i 1 ( ] r | . а с е ( PsIl L P , р i d ( c a d d гt ) l , 0 ) ) b г € a k I / / ) 1 l L e i i' O ( a O т , l i я и 3 a e i ! lЙр 0 l ] o с с // |0 i0pеЙ/]er
// увeли.'ваei / / l а u и l н ы rи l с r р у к Ц и и lа е/]инищ
l
/ / в ь в 0 д] о л и ч e с т в а рпntf('-. l]ld\i соuntег)]
и н с r р y к Цниaйэ к р а н
PтRAсЕ и EE кoMAндЬ| B режим.эuser.mode дoсTуIlнавсеr.oxишь oДнaфункцuЯ ptrасe(int -гequest. рid-t -рid' саddr-t -аddr' int -dаta), I1oзатo эTa фyнкцI!ядсласт вссI l]prl
)ltеJtаниt'l!ьl l1o]IссТе эа Ilаpу чirсoв llallrrсu1.ьсO6ствсннЬIrillltltи.оTjlадчrш, сllc. циа]lьнo зaтoченньIй пoд naшy пPо6Ломy, \pDrVeнГ.рq'esсфун|,ц||иDггdсeвl)(нPч||и.l|Jв.c\
n||оп1lclд, яд|,l,-n \|||
paзЛичньIeofl6yлепl дeлaть' ЗaгoловoчflьIe фаI:iлЪIп вsD и l-i]tuх ].IспоЛьзVIоT
376
.лава 2з. oсoбен!ости llаuиoHальNoй отлaдки в UNlХ
РедеJII]IIиЯ,зaтрvдllяя пеpеrroс рtгaсe пp].Lno){с]rl1iiс oдtloil плaтфoрl{ы lla Дрy' IУю, lIo упtoлчанпю nfЬi 5yдеlr испoльзo вать oпpсдс"!сния iJз зaго".lовoчl Iьп (}aii-
лoвBsD, .
(в LLпuх PтRAсЕтRАсЕЕ)' ПeРевоrrrlт Pт-тRAсE-I4Е Tскyщпii пРоцессв сосТoянrrеосr.aновa,o6Ьг]IJопспо.nьзуeтся сoвпlсстнос fоrk/eхесх'хoтя BсTречa. ются так}ке и сап{oтpaссlIPуIoxl]lсся IlPrrJlorflr}rЛя,Д-.тя кit)к]iol! из llPoцсссoв вь]зoв Pт тRАсЕ Е r\Ioжс'T6ы l ь сllсJaя л ипIъ оД]lаж/]ьI, ТРассlpoвaтЬ ynre тРaс сирyемЬlЙ llPoцcсс Irе пoлvчится (Nlе]Iес з]]а.lиIIoс слелстBие прoцесс l]с п{ori{сттPассиРoвать саrJ сe6я' сI'аЧаnа oнllo.!)кcн PaспIеп] tTЬся), lla эТoill oс. нoванo 6lrЛьI]Ioe кo,1lJчество alIтjl01.цадoчнь]х пPlle]\1овl дJrя ttрсодoЛснlIя l{сl. тoPьlх l]Pихoлплся Iiспo,]lЬlloвaтt' o|Jla]lчrши' Рaботaloщl10 в 116х(rдptгасe (см. г'raвv 22 <MетoЛojloГия за1llul.ьI lJ ^1IlpсUNIх>)' oтлажlвасllorry прoпессy noсьIЛa€ т ся сr]пlаJ' flepе|]оjL']цll}l сгo в сoс'ГoЯ]пlc .х] Ia lюiril ' r.Iз кoтopогo оп r , ' | , ' , . t ] L , . ! B U , в . . ' | | , r о \ | i | l ' . , , \ | с| |OoN - l N U t ' l , | | l D - s Т L Р . l l ' , | , | : ' | , U , l r \ u l , l . ' ^ o l l . 1 1 ' I i 1 , ' , г ' ' l | | | l , | | , г , o n , I l l n | . ' ' ' ',F v | | l |' | , | * а l l ' | . с l ' , I l | г , f r - ' , ' i ' Ь , , | | | l l\' | , | . 1.сl)llll(к{)fo lIPoЦ!]ссlr дo тrх rI.]l). ]кЛ(а оT.rlа)кIiвtlспlьlii пРoIieсс ]lс ll0PсiiдсТ I ] с о с Т o ' l t t l с o с 1 n I I о I J аJ I Л r rJ J е З l l I l . р L L | | | 1 с(' | 0 г ц а o i I : l I l o з | | p i l l ц i L eзTt l a ч с н I l с 1407)' OФijlЬlJЬiс аРгy}jеll1r' Ir ll )|)l1l)Yк] кl,l,
.
PT-AпAсн (в I-iпuх . PТRAсE AпAСн), llcpсIroЛlrГ l] с()с'L{'l|ljlс oсlilljоBii v'(€ 3^ t l у 1 r l с l I I l ь l i 'пi P о l L ( x l ( .| i t i l д l l | | | l | , l !p]i d , I | р I i i т о N | l l P ( ) J l с ( с 1 ' r J a i l ч l l l ( с ' г а п 0 l r ] г Г с я с l . o < l l р с ] L к о N i ' o с ] ' l l ] | Ь ] | Ь l | Ц ) Г у I l . r I L l l l П ю P l l Р I ( ' ш | , l \ x ) ц { t с l l o J D l ( ! . I ll l п l e ' T ь 1 . ( у |x ( 0 ( i l ] v l ь I i iL J ] D l' l т o l J o 1 n l ) o r D . ] l ( ) l l ! ! j i l l Р 0 l l r ( С , I r J | с 6 Ь | | r ' s 0 L t I j ( 1 / s с | d u i d . l I P o ц c с ( o 1 1( l l J l ' о ' | ' ' J а ) | ( l l l 1 l | T ЬП(х)n| ' ( ) ] \ l ) '
.
рт-DЕтАс|] (ll l-inLlх - Р]RAсЕ-DЕтAсн). l1P0l(раlllltс|. (Л.J|llдкy rlPо|lc(сn сзilдап. IIЬI\'!рjd (кlll{ lIо Pт-ATTАсH''|ак ]l rr()Pт-тRАСЕ 14Е)rt l]о3о6l|(']J|яс'ГсГolloPIl!l.iьl ( ) с l ] ь l I l O J l l l 0 ! 1 L tIo] .с с . ) с 1 . a ' l ь l l ь l сi l Р . Y i \ t . | | T Ьlrl г | J o р l l I ] у x ) r . t L l '
.
Pт-сONтINUE(в LintLх _ PТRАсЕ-СONт),вoJo6lIoвn'Iст |llllIlо.Jll]сll]J(lo1''lla)ldlвac\!o. r.o xpoцoссa с заl(аIппn\1 pid 6сз Р|li]PЬlвll .вяз]' с пllоIlсссoi\гo1'Jla/'lчlпroN1.]]с",lп аddг : l (в I-inLrх _ 0)' вЬlllo'rl1]ollIlсп Ро/.lоЛжnclся ( ]\!oLlГ:l посilе/]lIегo 0u!l]lo. r]a' n прoTl.ll]ltonl с'llучаo Lr\'ILa];lпUolо ilЛрсс]lL,APгvIlеll,l.-datа зil/lас1 Лor1сP сI'г|lаJlill IlосЬlJ]асlloГo oт,.1anojпа.ANl(^ly llpо]lсссv (t'o:tь _ t'ст сttt.л:шoв),
.
Pт.sтЕP (в L]ntlх
PТRАсЕ-stNGLЕsтEP),Пoпlаговoе BЬ]l]oJn]сl1Jtс11pollессaс за. дaнньrN] рid,опi: в|,Ino'llIll11.!с'lI!дvIоI]Iую Уalllll|||lук) llястpyкцпlo п пeреiiL]L ! состoЯнIre oстапoва (noд jЗ86 ЭToдoстIrгaется взlrодом ф"iа гa ,ГPaссп!oп кlт' хоTЯ Ireкoторъlе <хir]{ерutl1c' бll6,]]lIoтекп llспo'nшyfi)T апIIaрaтIlьrе точк]l ос. танoпa)' вsD TРебусT, ч1oбы аргvмеII.Г аddr б|'Irl Pавсн 1' Lin!х хoчс1.вrlдстЬ зДесь 0, oстnJllllllс аpr.уl{снтьI иГнopllpylo1.ся,
.
Pт RЕАD_I/PТ-RЕЕAD.D (в Lnluх
.
PтRАсЕ-PЕЕKтEХт/PтRАСЕ PЕЕKDAТА), ч,Гснrloп'a'
lllllннoгo сJIoвa пз iLоllовoii об'lас|ll ll o6JастlI даппьIх адPссяогo пр.]стpа]I. ства oтJlал(l1вaе]\IoгoпPlJцссса соотвстс,Гвeппо, Llабo.Ilъl]lпIrстве сonрeме|lIiых плaтфoPll обe кol ajlДЬl xoЛнoстЬю эквl]ваJe]l'ГllЬI, ФyнкцIrя ptгасe llрrlни. 11aет целeвоii аddг п вoзвPацaст счl]тaIlIrыij РeзуJr!Tат'
Рт ],'lR]ТЕ (в Linuх I/PR RЕAD-D
PТЛясЕPOкЕТЕxт, PтRАсEPoKЕDАтA)' зant1сьNIа.
IIrиJ{нoто с"lrовaj пеpедallноl.o в -d.tа' пo aдpесу аddг,
з77
ьPат[oe рyкoводовo пo GDв
Pт-GЕrRЕGS/Pт-GЕrFPREGS/PтGЕmвRtGs(3 Linuх P]iAсЕ-GГlRЕGs' P]RAсЕ-GЕгFPRЕGS' PTRAсЕ_GЕтFPXRЕGS). Ч1сниt] Pс1.иt]].Poв о6xrсIo н JIадoчнъIхPсгпстРrв в 06ластъ пa:irятппроuессa oтлaдч''].al залn]пly1oyкaза. тeЛеlt аddг,Этlr с1lстемнo зав1'lсIJl!ыe кoNIа1lдьl' пpl.Iе]\'Jlе}1ьIe TоЛьI.оДnя iз86. платфoPlfьт' oппсaпие pегпстPовoil стpvктyРьт сoДсp,кllTсЯr фaiiЛс mасhine/ reg.h.
(r Liпuх PtRAсЕ-sгmЕGs, PТsГIRЕGs/PТ SЕТFPRЕGS/PТ sЕ]DBRЕGs PтRАсЕ-SггFPRЕGS' PTRАсЕ-sEТЕPxRЕGs). Усlа1tоBxil зl1аче}ll'lя Pсl.xсTрoв oтлат{11вaеlloгo пPoцeссa tlу1.".Nl]{olIrtрoIraIllIЯ('Lеpхl.lмoГ() рсt]lolrа xir}lя1],l llo yказaтсJrю -аddг, PТ к]LL (lJ ],inllх PtRАсЕ K]LL). llосьlrасL si gki ] ]' коToРьIii деЛас1. сIly хаРilкIlрtt,
olltt-ч}1!асIlo]\ry IIPoЦсссу с]]rlral
пoддEPжкA МHoгoпoтoчHoсти B GDB O l l p ( Ц с ] ] l r , l . ll,l'о , ц ] l q ж l l | J а с ' |' l I l l 1 ! i l L l ]!rc р с 1 l , l G D B I r l o l o г 0 п o т o . I l l o с T ь и J I I l I J с т ' t ] ( D | t I l ol | Р l l l ] ( ) N l ( )l | | | ( ) ] \ 1 ijllll , I i n f о t | r г e a d( в l ' I l l ( ) i с( в 0 д с l l j l i j о п o ' Г о i { a х ) а' Л J r Яa е . Р с к Л | o ч c ] l l l i ]I 1 с ) v ( v l l o ' г ( ) к i l I ] illl с l | ( ) r r r , l ] у| i.i(t' h г e а d N ] ] с . ' l l | ] | ( ) ' l д c l ) ' i к . l r r l l ( ) Г ( ) | l ( ' |r((!)rс ' | ]l 'I r . у | ( r ' | i у ( l l lo б l t r t н t l т сG D I i t t o н с р с I r r t5 х и . l r l r y с l . n l I o I l и l . сс п с l ( l I i l n Ь l | ь l i iI i I l T ' l I, i ( ) с 1 t l П Л я с I ] ь I| ti iм L r l l , o с л l r t t t t r мк , l l t l t t t шUt N i Х и л п р a с | l P o с 1 ] ) L i i J ' ] с N j Ь(|)i'iv l с Л l , l ю( , T l l с | 1 r( , r i I l ( l ] l l l г | |2 | J , 4 '2 i ' . 5 ) ' лndg|]| 23.4' aтлaА/ё " 'о.о1Oто|rь. l г/лO.e lyй .е
оддерьиBdр,(я
(!dlr) л и d и н г 2 з . 5 . o | л d д к " " о , о r о | о ь ь \ г p , o | " r и i г o д д " р( / в a е - с o 4 l l r г 0 a d 2 0 5 1 ( L l i P 2 9 4 4 8 )I i ! n Е U l c |( l р ' P a k П - 0 t 8 0 а 6 / а с а) L e u - | e . n ' с р p : 6 З 3 i ] ] l r П n . 1 0 2 6( L l i P 2 9 4 4 з )0 1 4 0 2 0 C 1 ]j.n1 l r l r с . е r d ( ) l . 0 m / l ] b / ] ] b с s o 6 * 2 I h Г с а d2 0 4 9 ( L / i р2 9 4 4 2 ]0 ( 4 c 2 ] 4 2 6 0r п р o l l ( ] . t ] з - 0 ш c r 0 з 8 0n l d ! = ] , t ] л е о U t = 2 0 0 0 ) ] T h Г е а d1 0 2 4( L ! P 2 9 4 i 1 ) c n ] ! ] 7 с . e al n s r 9 ! U s p C n .( s . t - 0 r b f f i l l 1 с )
кPAткoЕPyкoвoдстBoпo GDB GDв этo ]{оtlсольнoспPI I-1o,{l]нIJl]. sьIпо"!неrrrrоe п к.na(:с!1чесlФIl духе lфI1аllд. нo',liстPопи (рис. 2з'з)' и Iотя за вРеl,'ясвoего супIествoванuя GDв yс]lсJl o6pа. сти вopоxo\{крaсIrRьIxгрaфПчeских lioрд 0лс 23,4' 23.5)' интсра]{TиnнаяoтлаДка в стIrле TD в миpe l]NlХ кpaiirre fiепoпуляРпа. кaк nPaвlшо, эTo yдсЛ эNIrIгpaIi. тов с W1nсlot's платфoPl!]ъI'сoзнaнпe кoтopьIх lleо6ра,Гl{!o ]l(кulеченo иДеono. гией
, : , i ' j l ,(
л | , . г | j J . l ] \ l l , Ь ] \м, n l | ' l в , l , | | и ' , Ук,o г д " . н t t 6 .
tь в: пoл n6tttc рtо '
з7a
нациoнаЛьной rлава 2з. oсoбeнносги oтладкивUNiх
Pис. 23.3. внeшнийвидoтладчика GDв ДЛя o1!Iадки lla yРoBrle исхoдпьlХ тeкстoв пРo.РaN!мaдоЛ'сIa быTЬ oтl(oмllиJlи" poraнir с oTJiaдoЧнoй инфopмaциeй' B gсс зa эTo oTвeчaс,l lсЛloЧ .g. ЕсЛи oТJIaдoчIiaя иIJфopмация нcдoстyllнa' GDB 6yДст olu&к вaTъ lIpoгPаIlму I{aypoвяe /1изассемб]lеРllЬIхI(oмalIд, oбЬг]Ito lIмя o-t.л:Dкивaемom фaiiЛa пeрeдaeтсяв кoмalll0loii cЦoке (gdb fl.lenаme)' 'цЛ,loтЛадки активнoгo llРoцcсса yкa)(и,Гсв 'roмall,цllойстpoкeеlo ID, a для пoд" кЛloчсl1ия l{oPы (сoтс (hlDP) вoсllоjЬзyйтссь кnюЧoм "сore:сorenаne' Bсо тpи пaрaмстрa l'Фкflo зaгPу)кать одttoврсNlсIttlo!tlolIсpсl"1сlltloпсPскJIloчаJtсЬмс,l(дy tIип'и l(oмalтдot]itагget: taгget exeс пeрскЛIoчается на oTЛфкивaeмьtй фaйл' tагget сhi]d _ на п риаттaчrriньIй пpoцссс) а tагqet сoгeнaдaм]r кoPы' нeo6яза. т e Л ь п ь I iIi \ л | o ч- q п o , . l B 1 я e тв ь l в o дI . o п и р a й т ] , зaгрyзив 'lPol.рамilу в oтJraДqиIс'мьI дoJDкпЬ]yсTаIloвитЬ тoчкy oсТat]oвa.,цля этolo слухит кo]!'aндаbгeаk (онa жс b)' b mаinyстанавЛиваст тoчку oстaнoвa Iiа фу]tк" циIo mаin$ьIIсa си' a Ь _stаrt _ lla тoчку вхo,Дaв вLг.фaiiл (впDoчем,в lleкoтo. PЬtx фaйI:ц oна назывaется llo.llDугoмy), Мoжllo yстaпoв]'!'гьтoчку oстaнoва и нa пpoизBoльньтй адPeс: b *0x8048424]aли b *$еax' PeгистPьI пишутся стPoчtlьIми 6yкpe. вaD,иl' пPeдвapяIотсЯзtlaкoм дoЛ"Iаpa.GDв пotlимaеTдвa
нyю иJIи аппаpатнyю, I.tЛyчurс смy 11спpcцятствoвaть (кoманда пpи]ryдитель. Еoй vстaловки aппарaTнoй тoчки остаrroва hbгеak Pa6irтaеTне на всeхвepси' ях oтлаllчикa, в мoей otrа trе ра6отaет тoчIro)' Toчки oсTaпoва пa ДаIrпьle в GDB flaэЬrваютсЯToчкaмrt на6люДсtrиЯ' wаtсЬ Point, wаtсh аddг вьIзьIвaeтoтладчик всЯкий pаз' Itoгдa сoдrp]i(ип{oс аddr изменяотся, а аvlаtсh аddг пPI,]чTениlr/зaпи. си в аddr. кoмаЕда r'wdtсh аddr pсarиPyет тoлъко Еa чтеirие' пo ра6oTaeт lre вo все].
кратloe рyковoдпвo пo GDв
з79
llеpспЯt отлаl1чиIra,ПpoсlfoтРстЪ спuсoк yстarroв.]rсrrнь1х точeк oстaнlrвa/rrа6лю. все тoчки остаIiовa, r.lеlll.lя]v|o]кlloкoNiаllдol:Ijnfо bгedk,кoмаrrдa с.leiг y/ца..]яeт с]еar аddг всe тoч]tи oстaнoва)устaнoвлrннъIe rra даннyю фуI{кщrю/aдРес/нo. пlер стPокп. копlaндьI еndble/disаble пoзвoляют вpсNrcнновк.lючaть/oткJ1ючать точкп oстaнoва, ToчI{п oстанoвa IloддсPживают РaзвитьIiI синтarссис YсЛовIlъtx кorlаIlдl oпI,Jсанпе(oтopoгo llloжнo нaiiти в дoкyllснтаци]1, I{orlандa сontinLre(с) 0 о . , 6 н o в , " . ,в L l l o , | нн, | | ' I t о | Г i r ' N | t i|l |, . Г o : ' n | | o|лo ч к o ,o, . | ' н o B a , ко Iaнда neхt N (n N) вьtlloЛняст N сЛсдУtо]rrlх с]Poк кoда 6сз вхoда' а step N ( s N) _ сo flхoдolj вo rJкDкеI|пьIе ()у |п( lI П' ЕсJlи N IIe3allаltot]lo у'1o-(ча!llllo ltьI. пoлllяется одпa строкa' кoпIa]l,lъl rextj/stеpi дej1aloттo )ке сa]uorl ]lo pa6oтаrот JJесо стPоItalIlJ псхoдIr пtlr кo аIr,IalJи'oбьгlllo oнЛ ис. пo,tьзyrотся сoRl'eстпo с комaндol.jdisp.lay/i $pс(x/i ipс)' пРеl1пl lсьlпaroпIril oт. ла]]чlJкyoтo6Pа'(атЬ тсI{vIцyюrlarn]rнrrуIoIroмаrrдy,Еeдoстaтoчпo uьlзьlBaтьодпII кollaн,Iа Julпp аddr псPсдaс'r уllPаtsJ10lt11с в llPol1звonЬн.l-Iотoчку пPorPаlll1Ьll а са.l] dddr/fnаme.]rьIзьlвас,Гti)Yllкцllкr fnаrтe(аPl.уl!1с]r l.а]!lrl ] Этoгo нстда)Iiсв sо[L. iссl A l{аl('tilс1.0ollo 1.Рс6усr.сЯ l.цl)уГlIc l]о]1сllj|nско]\Iа]'lll,t: fini sh - IIPoдоjt)кaTь i y J l I t ц ] l ](,с о о T п е т с Т l ] у cк' Г( ) r v a I Ц еs o l i - i с е l j Ь I I l l ) . r I l | с |j|Lиоеl l Ь | х o , l аи 3 T с ] ( y l l l c i ф P RЕт)' until аddг (u addг) . flPоiLo'Dкll'.tlBьIпо.лIlсltl'lс'Ilока yкaЗапIloс l!Jсс,гoIlс 6 у д . r ']Г( o 0 ' г I 1 t . I ] у^1l'l(р)l'| з r I r у с к oб o i ]r P L . у r ! l С r | П ) l o} с ' | а l ( ) в l l T | ,] b l l l ( ) J l I l с | |||цl )o| ] ' L о с ' Г l t ) Ф t l l lс| Л | 0 д v i ( ) r i к ]l t' ioi N а l l д ь (l n к T v а n ь l l o/ U U il l I t к Л o I r l )r,r t u г n - i I с м с J l Л с J l . l | ( ) cв o J | ) t l I I l o l l l l с| J ' l ( ) l l c | n l J ( ) l |( ) v I l к | ( l | ю , l { o м a I i д a р r i п t в ы р а ж e в и (eр в ы p а e н и e ) I l ь l в o / l l l Ti r J ] i u к ) I l j св ь p ] 1 e н и (яl l l l l Р | l ] \ l с Р , lrv()срc|] к]TPll ( p $еdx) l]n l l яч cn. р 1+2) ' сoдсPжl l Nюс l IсPсllс| |Iюii (p my-vаг)' с]()Дсl)){l к у | l | l м ' T l ] ( p * 0 x 8 0 4 8 4 2 4p' * $ e а x ) ,] i ] n l I r ] с ( ) 6 х ( ' L } l N lJot ь п ] с с T l lII с с к ( ) n Ь к o, ( l e l ] к _ rюсIIо,,]],зуii|t{ь (()rlllul()ii x/Nh аddг' r){с N _ кoЛItlleсT]]о въllmil мьtх яtlcск, ст,l. в и т ь с l I ] ! a o J з в c з l l o ч к l l п с P с д t l r . l Р 0 с o \ lв э ' Г o м . l - ' I ! ч а o l l с п v x ( f l o , I { о l l l l l 1 д а i n f o г r g i s t е г s ( j г ) в Ь l в o l l r l T з l I а ч с | | l | сl ] с с х д 0 с 1 у l I I l ь l хp с Г l ! с 1 P о в ,N 1 о д l | ( ] )к l l i o t , l сoдсP)кj l i{(Л! ,lLrсCк l ]а11я1jJ/реl.J1стl)()в l )суl l (eстBn,lеTся кo11allдoii set, IJапР]l]!1ep' set $eаx = 0 заllЛсl'вас,Г я Рсrr|(TР eаx r|()J|l.,set vаr |]]У-vаг= $eсХ l|Рr|сяal]вaeт ЛeрetJеIlllоii llrу vа|зпачeIirlе pсгrlстРа eсхl:l set {Unsigned сhаг*}0х804842rЕ0хсс за ппсьIвarт по бlilтовolry iдрi]су 0х804€ 4 24 чпсj1о0xсс'disаssei]b]е аddr fгф addг tO вьiдает соДеp,l{иN1оeпalIятl.l в гlп/.lеЛIrзaссеI!бЛеPrrого-l]rtстппгa'фopNlaтпрeдстaв
]Lо\!анДой 'nенIrякотоPогоопрrдr.nяется set di sаssеmb] у. fJ аvoг, info info ]oса] oто6Рaхают кoмalJдьi info fгаmе' args' соДe]l,кl]моe тeкуllleго 4фeiiN!а сте](д, аргУ11епTьI фyIпrIt]'Il IJ "l]о](.!lьпъlе пеРel{eIlньLс, ДJи пeРек"lтIочe' ния нафPсiiм маТсpиI кlt{l1хфvfll{Цllii с'цу'fxT лo aнда frаllre N' l{ol1aндаbасktгасe (bt) дс-'rаст тсl жe сallсlе, ч.гo ll саll stасk в \vilкlЦvs.orJадчuкaх, пPll исс-,Iедo. tsaнllи дa11Ix]в коprrl ()lIа I1еlraIJеJltl]\|a, кoрo.]е rotsopя, llр 6'Ц!]зr]тe.llьIlь]itсеalJс pа6o1.r'l с GDB !l,x)яДl]Т тaкi rр},зиi!l пporрallмv в o,ГЛадчrп{' даell b mаin (а ес.nп llе сpaботaет' тo Ь stагt), затe\l r' проIpalf\]у по пJaгаlJi n/s' прIr жеjiarrllп заtaв х/i $pс, чт.16ът GDB покaзывалl что у ]laс въlпoЛпяeTся в /ца]lпьпi ltoN{eпт. BьrходIrlt Irз отлaдtllл{a п() qujt (q), oлllсalIJlе (хl..rllьllьlх ]tollаlI]1 в дoлуl]е]iтaци],' Tепepъ' пo lq]aii]lеii меpе, вЬl r lе ,а6Лудl l l.есь ! ]]еii,
з8o
глава 23' осoбеннoсlи наuиOналЬноЙ oтладкив UNIX
Ф*3g
!'s.
(ш€ - en-'v{'):
dat!, DaLв.а dаt0-!!l]
ld t lfu | -l? l, '.0
,:rrirfrrirrilrirllr*l;liri al i i:.:t_.::]].i::i.:ri-,:9,:t::rtartr:i:t:tii:.r:aiatia::41 Greф'ef{ ]l.фiii!lффцio]ФФ'i'фl.e]цl!j{!.E!Ф.o1Ф!..! GdЬ) Ьreаk,/.'tвst,с]]], вrфlqolot r * йIll.| | |s r ||)sere| s\4 | 1в11е|| |dА||dd|.xt.ast в ф а l ! o i n t] , t r e e t е s t ( ] а t , k r i ф s t , с : l 1 ,
ивтерфeйс кGDв Pис.2з.4. oтладчикDDD. графический
тPAссиPoBкA систЕ1*lHьlxФyHкциЙ L]epеxRат спстеlfньIх ФyI]кци11 - это нaсToящеe oкllo вo вflyTpеIl]tии l1иp пoдo' Il1'lT]]oii ]1PoIРаllNiЫ, поliaзьтrrаюI1IееипIeнa вьIзьIвасruьIх функциiI' их apryпlеflTъI 60лезн], всeх ll ttoдЬI вoзвРаTа, oTсутствие <JrиIItlLIх> пPовсPolt на 0I!и6ки fiе сalloe л}пJпIeе сpедсTвo дJlя их нaч11нaющ]1х ltРofPаNiNit!сTов' ll отЛаllчl]iL Io,|.:i, во'Io,|| 'у, '.-,|||''ii ,l, ll||,l||||]v),rи,'"r.s ktmг. лю6oй 6eсп..1атнь'ii/кoммсpческrIй
аiIа.l'IзnTор'
-j:сировкa
з81
сисг€ м нЬ х фуiкций
P.rс.2з.5' ЕUrеoдиl графичeский интеpфeЙс кGDв вoт t|рoтoкoJl' ЛoЛуч0IlllЬlii !).uss(JrIlfl,rtIlг2З'6), сNюIРlll.c: I]сРе/l'Гcltiкaк yNie. оTкPIllBaстq)аiiЛ mу_good_fi|e, ]te Ilахoдltт eгo Il| кaк сЛe'lLс1.]]пe| РсIьt Ill)огDai\{N{a с6РасIiвaст коРy и впlЦаe'Г B lпфпilllY. PiJyNrcсIся' cтo пpос1'сill|lllЙ сnучai,i' tк)
з82
rлава 2з. oсOбе]ьoсl/
rаJиo.J,
oРoй о|лdдк, в UNl^
л'crинт 2з'6 (пPaДoлхeниe)
= 672026624 (01280е5000) = 67204/l04 (01280еа000) = 0 (0r0) = 0 (0х0) 5 i q a с t ] O n ( s i C I0LхLb ' b i i b а 80 х b f bi fb 9 0 ] = 0 (0х0) s ] ' . p | O o i э s k ( 00хХ10 ' 0 х 2 8 0 5 b с r с ) = rl (0r0) s ]g a с t ] O i ( s I G ] L0Lx b T bг fb 9 00,х 0 ) = 0 (0х0) з ] q р г O с m a s к ( 0 х 1 , 0 i 2 8 0 5 b b ef b0 d' 00х)b f b f = 0 (0х0) s]9!гOсlras[(0хз.0r2805bbf0'0х0] О p е n ( ' пqУo о nf r l е 0 . 0 6 6 6 ) Е R R f 2 ' N Osuсlr1rlеог drгесtогу m m а р ( 0 Х 2 8 0 e 5 0 0 0 ' 2 0 4 8 0 'З0,х0Зх' 700fх0102) п п a р ( 0 х 2 8 0 е a8010902 0 ' 0 х з , 0 r 1 0 1 ,20, х 0 )
s I G N д 1L 1 s ] G N д ]I 1
p г o . e s se х ] t , . v d l = 1 З 9
WINDoWS г|PoтиB UNIX сPaвflенпе UNIх{'ГJ|aдчj'lкoв о Wiпсl0lvs покaзь]вaетз]lачt,tTсЛl,нoс oтстlвaпlle пoсЛrlLlltlх lt l]х tlсItРoqrссс|loflaльпylo rlа|Ц)а]J.rlс]lllо(lЬ' TPсхпieрllЬle кIlotlкl,t' ]\1а(llllilo|'lPусMЬlс lII(оfiкlll пспJIьIвa'ollllс I{0,]lоlllк|l - Bсl] ilTo] кottcчl1ol oЧ€ l 'ь крaсIlltо, llо ,{aтЬ Fl0 ilo ||o'ГсРlt llу.1]'сll 'llc,lllв(), B GI)B llрoцс макрос llаписaТь llJltl l.lсlк'п,зolla'J.ь у)to |.1уr!вы]i (б.]]аIо всe' ЧTo'Г()JlItк()]\lo,{rlo быJlо ilа|lРoГpaI\г ill'.'Рoвa IЬ' зallРoгl)arvл1|.|lювi]'ll113il/(o.пгo,(о |l;lсt I]()JIЬJyi[,l _ lle хoчy),
с)1:IJil''ioчllЬlc(Pс,:lс1вa ]] t)NIХ rюtrtrtьl rr Pазrrllo6pа3I|Ьl (пl{] r кJIllllo]\l Ilс сoulс'lIся ]lLl GDi]I)' jl сl(l{IIс1веlriloc,lleгo eii l|сдoсl.iloТ' _ IloрNtа.JlьlJ()foЯдoPllolo oтлaI{. чЛкa сjlс1.с]!oroгo урoвlIя' oРIltrll,гирoвilllrlоrc па рaбо'Гу с дjlouчЦЬlltи фaiiлaп{rl 'lя,rсJIос б0з сltNI!oJlьIloй ипd)(]lll!|а|ll]|l и IlL]хоl(llьlх 'l.сс'Гoв' дс'l.ст]ro п скп1nlIи€ Ilo мIlоrксствy пJатфoрп' llaЛo,к''|0 llir UNIх lryaчвЬlii оTIIсчillЛr I1 непPикaяпII0с сl.Pсllлеirиe к пeрeIloсll]!1осLlt ll кРoсс.lLlIаTф()р]!lепllo(Тll. l(aкoe та]\{хaкеp. сTво в гilких yсЛoвr Uiхl tsпрoчсNl l /{oступпoс IЬ }lсхoд н Ь]х TеIсстoв llсJ]ас.1'э,гy l lPo. 6Jlcму uсaк-гyаiьlroI:I.
иHтEPEснЬIЕ ссЬlлки oтладкa с lloмощьIо GDB дo6Po,Гtlо сверстA]!]ta,Докy;\]eнтaцпяпo GDв (nа Pусскorv!язЬп(e), httpi//WWW'Linuх.org'ru/books/GNU/gdb/gdb'ru'pdf
GDB Internals oтЛ'I.пloepyкoводствoпo внyтрeпi{eмv[!иpу GDB (нa aпглиilскo;irязьпсе)' oueпъ лoпrot.аст rrprrдoPa6oткепсхoдникoв' http://gn!arm.0rg/pdf/gdbint.pdf TpассиPoвкa пPoцессoв с пoмощью Рtrасe Cтатья JтРoTpaссирoвкyв Linux с пpппrеpaпlи пpoстсйпI х TpaссирoвЦrпroв (вo Fгеe BsD все пe тaк), http://gаzettе'LinUx, ru.nevIg81/sаndeеp.htmI
WindоWs противUNlx
з8з
oтлaдчикGNU GDB BBодеt1и€в oтладкyпрoгРаNtl{' ]raпI{сariirьIx JraFree Pasсаl, httр://LinUxshop'гU/LiлUxbegin/аrtiс|e496.html squаshing Bqgs аt the sourсe Испoльзoвание6tl6лиoтeкисtTасeДля oтЛaliкип{IroloпlrтoчнЪiх пporрaмrи0Ia a]lIJ1]ti]iскoм язьlt(е), httр'/WWW.Linuх.mаg'сom/2004-04/сode_01'htmI Kernеl- uпd Usеrspасе Dеьugging Tесhriikеn Тезисьi дoклa,Iа'пoсвящe]IногooтлаДкeП раскрьIвarоrсгo детaлпстpoеrlияGDв (нa rlемепкollяЗыкe)' httр://WWW.Unfu9.oгglf iIes/debuqging.pdf Rеversе еngin€ e ring dеs systёmеs ЕLFIINTЕL иссЛe/loва]le ]1o-L/taдкa ЕLЕ iDаiiJloвнa iз86.IпатфoPNrе 6eз псхoлIlьlхтeк. WWW.sstiс,orq/ssтlс0з/aгtiс|e'ssпсOз-vаnegue-Roy.Rеverse-Inte|-ЕLЕpdf
гЛABA 24 БPAчHЬlЕ игPЬl
лAзEPHЬlxдискoв е па1|у1o-mo3aщu|nу IlеwIаJ|н1'|е лo3g1l.u' na3uцuaн11P!1oщ неnPo111u6аеJЙg1o, вce?dанrвepкaК anoil|g1ou а6coлю1nнa Jno,tнo вoсnpou1веcmu'j|o']c|1oе?o |lь|' I{ol|ьc]|opo1\oсuпa]|ъ u a|onupoваmь,Becn lJo|lpoс_ в | oln, Kal|' 3аn1еm на Iа. lcеpск!ю aеяmеn|,носmъ 1luчazo1|еJ||ФIяaп'T?;х,юno-1aнu. ouс1.oв 1слo|lupoва1luем мae1nсa ]rc.aнкцuoнupoва1|1|ьll| Jnaсш|na6аI, noaoqньtе\аfryеmывpяa]]u в npaмъшLлa11\lьN 6!aцm (npao.Цaн\oя'n,а вom v,aльньIl llгс.I?JUвamелu Зla, вuauпе au, aаеmo ce6еЫnmь. aапь: пpaфeccuoна'|ь1lьIil есmьна зеtrL|е |nаKаякamеzфuялюaeй, H! uпо пoi)eltаешь, ч1no1rcJ,южеm aaеpxlсаmьсяom cо6лaзнa эаz,ltянgmьnoО l|pыulк' ч-pнU/|lящunа u' Donpаtuваясьdo вpащающtrся шР"n]ppp]|о^'nыmоеn' я ро"o6pаоься:какле всеэno.6лuщ rа6onа.]nC Заrцищенньre диски (аихPяд]nс кaя(дьIмДпelfвсе PaсTути paстyт) _ этo саI(сЬ зaЩиЩeшъIeдисIси'тФке сzrксь'пoтo. и мaст дaй]кo]otрoвщики'т{oпиPyющие v у ч I o п | l с э н Ь 'ч P р . J o L j | oУ е с т o | l п o . 1 о q ч н o п а д а | оГ , o х а R ё p ь | o '| o з а I o ц l и кeo . пиРо!щrn(и зaItIиIцеrrныхдr1скoвlмaст дaй пo )киз1tи|и6o riечelo мЬIшъ тискать, а ]lvмать слeДуетI]е'Гем,нa чем сЙдишь. A зaщи]цeнrrьIйкoнтенТ воo6щe oтстoй. настоящие пpoгpаммI'стьl всегдa созДaют пoДргIfl ьlй сoфт самoстoятeльнo,
Лaдно' 6Paтва' rсoп,rаelr6aзаpl.tть,сulчaс мьI 6удeм lсoпирoвать всe' чтo шeвeлtlтся' в тoп{числe и тPетиit star.fоrсе, IсoтopьIйвoвсe пe TaIФй rrPyToй' кaIсим
llorraч:rnvкaЛieтся.кoпиРoваIJиe 3aщxпtсIrньIx]ltIсl{oв iljoгучnя тсIla] rr в Par' liах oтдельIloJ'iг]lавьl сir так '(е1ес]1o'мк вaсе ПупI{иIly в пивrtoil 6yTЬI]1ке. A Ja оliнo\!| пollltNlnсltь] веснa'.' I{0!rкЛ,,'Брo]Vy м]]с, 6poмy'.. /]a, нa чсr!1я та\I 0с1а' }Io8iIЛся?AIа' значIiтся' llа l{oпrlРовallЛи,i(orда 6v/]rте nPo6rгать l'lиN,()маlnзи. IIir- сТpсrrьнIrтeпо xо'ilt{аru, кIrпжка rа,! таJrаядо.n)к]]a6Ьrть,
стPAтEгия БoPьБЬl Тo, чеп{ vьI фiiчас 5yд€ ] \J Заll|.|]\1nтr,сЯ, этo н]п{акоc lle )iаlrсpсl.!ol а так.,' вJ'ltсндPе)к в Лrсorl|пJIlс, lIа(]тoяпt'iе хnксрr,I зaгPy ,(аlот с.)(),L!аtlс rl OT.п:rlijЬ|вaют заrrll]тy irпт'х:lко\l' llос''lс чeго 6ьIв]|l]lй кoгда т0 з а п i I l l ц c l l l l Ь ] ] ! 1/ r п с к r ю | | I ! р у с r с Я - ! I о 6 ь i 1 1 ' lioп|{Pollrцllrrо]!{ iIа Jlк)6()r!1tц]llво/ic' эTo I I l l Т o J | ] I с к l у а Л ь н ы i ir l o е / l l ll l o к с З а Л l I г Г ( ) i i в IljlсTоi!11lllдс. иJlI
ollil 'jд(, llЛll Nlь|еc'
JT0 3aх |Ial'Ьl ва lo l]lcс] ll() ll1'р!]6yюпllrс .oкoii
lLllaЛ']ll)Uliilц||и 3illIяT||с }1ьl _
llJl l lюс I(сЛ()
IlьI' п0.
llllкo]\]у llitaЯi]l,lПnl'lllс' сo.
. n r l ) а с п { с , I1, ' l a I I i l i l l I l с с , l ' r o Р ; r ] l д o , l р o I l l с i I P ( ) з i l l , l ч l l с сP, а i } I ( и 1 . Ь с лf l o n t | о с T l J l 0 n n 1 ( ) i \ { i l 1 | | 3 l l l х ) l l а ц I l Ьl n l })I| I | . | P o в l I l I l к о (l l:!T с l . к i l I o д к P v ' Г и 1 . ЬI i ! l с т P ( ) i i к пl , 1с / l с Л i t ] . Ь | ' з o / ( I | ( ) ] 1l t)l l 0 к i ] l l e . / I Ь l хд | ] ) ' i l 1 . о Л l I c 1 r ' р с ' н у и ч l u 1 y T с n ( ) ) к | | o l , o ?A п ( ] , |Ч . l 1 ) : llirстIюoк Iloрсj ll Nш'|I)jюIl TЬIк,l кPv]rfгЬ Ilх ]\{o)кll()хоТ],l1о 1кх:xlloIlllЯ| n Го.цку м ф к , ц ! I l i l м l l . ] \ ' у ' ( l l l { i l i ! l . |l '. o j l o р я ' к ( ) ] \ ' м с P ч с с к r t ек ) ] | и Р o B l l { l ' l l ( ] п' Л r l l P v ю 1 . Л ; l ' . л с к o ] l с l ] с с з i l l ц l l | ц c п l I l n с ] L л с к ] r( в ч a с ] r l ( ) с т I t 'м o п / l 1 1 с l r lоl l I r l l t е l ф | l п P v ю т r o l l ' (теN|0ii? Пoжа-tvii.rl| .
l l l n x l т с с в ( ) i i с о 6 с т в с п r | ы i ] I r о ] u l P о B l ] ( l I l(r l я l l o l i о r . v ) ' С о 5 r : г в c r r r r oг o в o р я ' I а к о i i п o п ! I р о r r | ц l r ку п ' с I ' я у ) к е с с Т Ь | I l о o | | д l ) с l l х x о P I I 1 1 хо]llr1.с' в дoIrо.nьIto DnзoбРаlIноNl сoс|0яllxU' Бeз дol{уIlol{т:lцlll.tj,|схllor1дl]p'{' ки ll сollyтстB\,]оlцеii lнtppaсryукrуpы oн 6еспo.lrt3снl нoдо!()!lить этo де.qo д(] ума llнс 'lIcIlЬ, l1равда' cслlr па6epс.|ся I(вoPуI1)кс,пaюЛIlrх' Pа6отi пoii/L€ T l'o' Ьr 6yДсм хltчllтъ Tс]\1]ч1.с) раздo 6ьтстрeе, ll0 эro всe rr пеpсllсllтlJве, n сеiiчас
v|лv|эЙФoPу|яoт AтPoФии дЕЛAсoФтBЕP|{ь|Е, Cyп1ествvст но таlt yк ;rIllol.o l{oпиPоrrщt1кoв зarlпllцеlll{Ьlх лIlскoB, Ii сpсд]r нiiх пeT llll oд]]oгo пo пас1(rjlщсNly хopоIllеIо, хaкeрсkих l{oп]lРoвI]illюв нс,т п y'{e не бv/LeT.сoвРсмеIl]loe лolil]Jlсflис покo-rlениc <Пепси' *хoчетпlпер4)uiсс oд
ноii бо-'r ьшo]iкнoпкoii stаrt,Itol{onен пе п ]le
з86
rлaвa 24. брaчныeиГрЬлазeplЬlхдискoв
llpсjlo.].aвJlяюT llаtrl }tltl(аких рЬlrtаГов yflравJrerlия' кoпr{poвщlrк кoпи1ryeтяeпо rlяLI]o Чт!] l'l l]еlloltяIlIo зачe;ll' rlртlчем кaчeс-глo ltoпиpoвaппя остаB.lrяет я{e.liатъ Jlучurer{), I]Рt.I к:lж,l(оl{ ул(16llol'' слyчае orr yхoдIrт в lлy6ок1iй oтmз и сдст xPьI1Irей.чaсть Дriскoв в11116щенс копnруютсЯ в nPlrнцrlnс (так, ]lPxсу'|сТвие riуЛе. час'Гь копll вoгo тPека нa диско зaвсr]tивасТ !се tlзв€ с ,l.]|Ьle ]!1lIекЛlирoвllolкl])'
pyeтся нe 6сз плясoIrс 6у6нс)}1,
(nrс,2j'1) JlJ,Чшeе'.]T'] сс1.l,]lаРьпIl(е, эTоclonе сD (http'/Www's|ysoft'сom/en/) -soft,сom/ (PIlс' 2{'2)' лyllпI€ спРaR' и Allкoгoль 120%( httpi//v!&^Jw'аlсоho ПеpпЪпi ) лястся с чтснIIсjlll1сстaндаpтнlnх o6Рюоts'вT()рoii с заtltlolnо.с ДpугoiiсToPо
h L , , с L o л г С D | | . у ] \ I е ( г l l : j N l . l ' я т ч х ' l , . r I e l , l . , ' l , i l | ' , ' , - ' 1 Л Ь | | n | i л,n |i l n,)t,о{ llиРyeт pяд пpoдl]I'l,yTьrxjalцит rlaпoro6пс сd.соPs llJrи staг.forсс, LIх кolltlpyоТ ,|оЛЬt(oAJtко].oЛЬ'.г()lпlеегoRоl)я.IJе lloпlrPуст1 aэjI!|Iuр!с|n' Нo с Toчl|||зРc|1\1Я Я oд1!нхрc]] ра3нlrlliL'.ц"Tяpa6o1.riс Tа|(оii<кoliиeji> TРе. нaпPиlllоp' са]\tAлI{oгoль иJllr 6сс6yсiгoя с]rcциа]tьt]iЦЛpоГpaмNа. эл,,?"c,??oP, s'сс/)' в yс,l.illInаTllo PaсtlрoсTРaIlяе]\rыijDасmоп.Toots ( http://WWW.dаemon-too l Iов.]Jeппo]\f вЛдe зaнппraющIliI ЧуTЬ6ortlлrс 360 К6аii'r.Qurя сpal rrсllпя l A.'lкотrlль рaстяilyЛся нaдсс,1Toк с гilкoNtмrтров)'
?]d l9д!{Фцooьф!рцq
Ф0' 4t
2зi719cPцмя фoпь n,шл'.1105)
2 t 5 1 2 0 ч r o i l . ф Ф " 1l й Ф q 0 r } $ l
Pис.24.1'с|оnесD за pабoтoЙ It этo\Iv списrrумo)кнoдo6авrlr,r' и B|ind Write
кoпl'poвщIrк' eдl1пст]rellrrыi'i
.пр,'B,l"оrц||n.,|.о.ld'..Uliёi,]|''1hl,'ь,11.a,,|||ij\vrня.\|..|,\n-1.''.o|враЦl. ниоlr' и6o здссl,вoo6щс IIетппкакIrх нirсTPоeк'riотoPыс 6ьlJo 6шмо,Itнo lIoдxPуЕIaчllr1аloщ]]N1Tак'(e пр xfoДяTcя опpеdrru|nс] u mlлo.l зa4,i??' onpcдcxrxощис, чТo за хPeнь вьl пьIтaсTссЬс(oll]lрoвaTъ' 1Iпoдсl(азьiвaюrJr'{е' какиe нас'ГpойкI,lвъ16. Paтьl a кaкис Лyчш€ не rlaДo' нa http://W!,vw.сdmediаWог|d'соm/hardwаle/сdгom/ сd-Uii|s-2,shtm|такuх yTrlJxlТ l1рoсToтoлп:i' по псe oIш фyфЛо. УчlIтесъ oпprде' наTo ollrl и пастpoIiкIr,ч'ГоJiять пPсдпoчтI'lтcльttысr1aсTрoiiкl'lсаNioстoятe.nьIiо. 6ьLлх нaспpаuваmь,
зa7
бpа!нЬ e игрьlлaзeрнЬх дискoв
цфФфФ.]:.:']].]].]]],]"] ]:]
Pис'24.2. Aл!oгопь за pа6oтoй
дEлA )кЕлЕзячнЬ|Е, или нE всE
nPиBoдЬloдинAкoBЬl
r l 0 | l l l р o П l I L J п . l | : ! i ] l ] l | | | ] ( ( , 1 | ] l Ьl ll lt! с ] ( о | ] l ] р с , l ( Ь Я l ] . r | я t o I- l| l l l I 1 . a . l O l r n l N l / r l l l l l I ! I I L | | l \ l I | ] ) | l l r o д i l I 1l j c с l , ] \ 1 l ' { с ( ] | к | | с T Р с 6 o I ] а l l l t , l , 1 r | ) l I B o j l д о . r l ' ( с | i l I ( , T l ) ' l l Ь r { o п о , I ( l 1 с P ) ] { l l n i l 1 lo) I I p 0 , ] l с - l l с I l I l I , I е рo,кllмъr
рi.rогьl
(i{()П)])Ьlс |lo стlllU(ilP'i.y
оll llO,luLop){rlвa1.ь
,ft
с l J J l . с l I I ' o o . ] я з l l l ) j r l ) l l ( ) 6 J I i l / L l l T| lьс х l I j о j i ] ! l е х i l l l l l ч с с l { o iчi а с , г) ( ) ' ( ) 6 с с I r с ч п в а l r г l l ( . i i с т l б l L n ь l l o с ] | , П P l l | ц с r r ] 1д, ]l l . r L а l l l l o с l ! ) я l r с Г в o r ] о з l I ц п ( ) | l l I p o r r с ] t o l г 0 ' ' I о в I ( r l j в 1 1 l ) ( Л . l l l r i r O l | ( ' . J l у ч i r с д I l с к l I l x i l Ll е' lJ J l t Ь l o с с с1o р s l ] s | n r . l о r с с ' с к o r ] ] 1 ] r о в а | lь] с v x l r с т с я . l,f п, .е1хlсr roщrrс rraс хaрa]{ГeРliс'lllк]lrtбЬlчно Jfu]а() l IxPYloтся ]l1lоllзLr()дl1l.с,Irorl J ) I I CI l P l l в о ] l я т с я I J l l в l e х | l l | ч с с l { o i i д o к у \ ' r l I т a ц l l l l , l l x ( T с п ' 6 о л е е : ) r l а э T l l I i c т l L с ' lФult.jlCoнrxjii сRcPIy lLl)lllloда,lloЭТolЦ' вij6.rр i"|oдсjI,l' ЛPrlг.]ДltOii д,rl' \aгсрства' IIP.Дст:lвЛяgГ с(l6оi i дo!оnЬнo н!rтpпIrпiljlь11vlозi1r.lа\v,са \1oс l цrостое скоp11llTr, Uр|lн|)дy sСsI/^T^l)I к()r!'it]lrrvGЕт сОNFlGL]RАТ]0Nll IloсNoтpeтъ,.П! ox всpяcт в oTвстl llаllятvя о TоNll 'll\) lJoJращсIrI{ая rlv l'lll'l]opr1ацnя ilо;кс'r l| нo соoTвет с'ГвoватЬ дсiiствптеn ъl Iос1x l xOс]{o"!ьк1'отр:Dкaе\ заявtе1!l lьIе' i\ a\ 11\a!JЬ |1сPеа,1]ь110 изl]rрeппьI.. (Bоiiс,|ва, Тaк что паpa троiiliа TссTrlрyюцriх IJPoгPаIfl! на\f IIе lJ(). меilraе'Г (п\ Il(),{l1o наiiТll на Nоe\l Лor|ашнсll ltP серseрe 83.2з9,3З.46)' кllоl|с тoгoj lIo'(I]о псi lо-1ЬзolilтЬ l сaпI кoпriровlцrlli (]1апРll!ер' r.o | ,кс сlone сD) n Iачсс]тве свoeo6РaзЛоГo nрoIoнноIo стеiiдa. эTo тсlr 6oлсс хoрошo' нтo oпpеде"rеrr. I'ьIс пр]1водъl коl|4)"'llIкTуIoТ с опреде'rтепllЬtllrl lioпирoвtrпn(aми. llоэтомy что6Ьl зllат!нав.р}iякajэтот(:aIlЬlt1копI1Poвrцикlry1!
з88
rлава 24. брачнЬeигрЬrлаэернь|х дискoв
Boт н€ l ioлllьIl:i пеP€ t lепь тРебoвalolйj прeдl''rr]1ясIlЬlх rr чlrтa]o lеl\{у пРIJвo'Iy' ]lерсчI,rс-!еll]lьlх tr поРяi.l|.е yбы}Jn]]]]я llх зl1ачl.llloстIl (aoд <чIlт:tioпllll{> приrr.г ло\f З''tесЬ поЛрaзJ]\1ев.tеTсяЛpl.lвor:l'исnоJlЬi]!сilЬrйдЛЯ снятпя o6Рaзoв' а llе 06я з:lтrlъirо сD RONI)] .
пpиuод дол)кen пo&.lepяrиваTь <<сьtPoil>ре]ким qтrlrия (2352 6aiiт:l llа сеr{. Top)' осуiIlес,гвJяеNiьli] ко]\lnIlдa]lll RЕAD сD/RЕAD сD мsF. в пPоTIil]lrcм с]nvЧac праl{тпческrl l]lt or.iпп зa] lпЛдe] I]tы ji ]l!1ск сlсol1иpoвaть riе yдастся. 3ilпvс'rltте уTjl"lIJгГyсd-га!i-reаd r1]lr)ttрo6yйтс xPoчитать несxо-liъкo прolIi]вo'ttЬtlrnх сск. Iopoв с дIlскa' и ссJtrl orrll пpoчuтaютсЯ, Pе)кllllJ сьЦх)гo чlon1lЯ дu.Iсlв]1'Гсjlьнo xoддсP;{t lBaсl ся;
.
]lPиBод дoля{сll поддср)кпвать чтеlIи€ uсeх вoсьмt{ каIiалl)в пoдIioда в сь] poм' vпоPя]]OчсппoпI ll tlеyпoРялоче|lllo\1 видеj t]о3!paщirЯ lн в о6nlCI{ пoтоI{Cдаll}lьlх (To ссть с кoмап,.loii READ сD). к |oвv сказатЬ. сLоnc CD jI AJxо ' U ,I L | \ o \ п o I t ч л o Ч е | | | , l ' , ] , е : ( , \ l , | , l , , (0бtD.rст(]сl, PаirPtl6атЬtвaтt] сBо]I сl:)6сTвс}'l]ьlе кoIiп!о|l]lLllкlll осliI-(Ь!rnс il]]il P с ж | | ] \ l rl ] с i l к , | у а n ь ] 1 ЬЕ, с J l l l с l l , l r . 1 1ос6 p а з n д п с l r а п P } l u l l l r ( , l е l l J I o iгi l l J l o Ч к cч т е . ниe сy6канаЛoв ((]|()lrс (]l)) ]t'il||чтeние сy6каналЬнЬ]x даннЬ|х стeкyщегo дИска ( A n к o Г о Л ь ) п Р ( ) х ( ) Д | ] yг с п с | п l | о ' l ц ) l l в o / l l n ] д l l с l ] ж и в : l с Tч T е I l l l о к a J l а ' l l О i п l ()l ln)ЛlL Il"'l|,1t'lLк() llсJIaсl, ,]l'l' ч'|o lloдl1сP,шваcT' yNеЛo lI]iJlrTIЦ)yя Ре l!''lЬ,ГllT. ll1)бl,l rr|'l'(ltIl,|ь!'Iо |lа|]срll,I].а'зill]l]!]'гLс o(nчilllllЬIii с ltl) о6l)tв test.sub t] ]n] ' | d I N I (Rl А l , JD A o 9 6 ( с N l ' l Р ( 6 o B а t I u ' l ( I l l ] l I l y l r0 п 1 у| Щ l R о д y ) 1 l lс | i я l ] o 6 l ) l l з с | l ( ' к с 3 l l | | | l с i l l l I l 0 L .Л( |) к r i a ' ( l ) i l I r l I r l T 0I | ( ) " 1 v ч 0 1 l l l ы*i i. s ! b 4 ) a j i n с l l с х o ] l l l l , i r j ,B с " ! v . I t l с ] | o у д i l l ] 1Il l с ( t l с l | ] l f l . сl ] l | ,| | | lЬ | l р | n к J ' l_ l r c l ( ) 1 . o P l ) lIс] c Р с i i l |С | ( Л l с с D ф д o p n ( i l 1 . оLIii|бlol.3aI].ll|lIRаюlIlIl0llск)'ГoPl,IсЧ'I1.акJ|цllсl|])Ilк),,(I''}j()с]|().lIl,ilуii|0сЬдРv. |!ii uсРспoii llp0гpllll11ЬI ll'xrl сjllсlll.l1.скollltроI]l]lllI{;
.
приl}одд()Л)t{с|l пo3I]oJlять oтключaть аппaратnуIo корРеl(циto otllибoI.' rJl':г | ] р i l l | l l l Я( | ]l l , l n l ] l r Ы ( ) / L ; l | | l l]loгliе:аll(llтлЬ|смeхiLjlllзi!|ll| ,',lll|г',
| ' l : ' v \ | | l | | , ' , 1 l' l I l l r l t | , ' i | | | l l ' ) i , I i . | | | | l | | ' ] \ | l ' к j ' 1 ' ' | | | l i i . . l n . 1 о | \ ' U | ' ' i i
п р l l l r ' ' | ] l l n l)ii i1 l l l } I ], ] ( j l l | | р l t< l l p o l . | ) t r м ] ! ] r llо{ioi 'P P o r r ц L о nп I ] 6oк (16l,r1jтрЬlii l I p o l l y ( . r(L) | I I l 6 ( ) x в' i l l l l p . r м с Т P а хч T с n l l я ' C l о п с С D ) с r l я r . r r о с 6 p а з аr r р о х о " rtP]'1вoдопI пo/llцlrР'{llвite] сяi ДЛ1 уC]|сшrto'дllnuI'Ii,iPl]]{(]111 .
пpItlloддоЛя{сn пoДдсP)к!ruaть6ьIстPьIii лропуск оши6tlк' rroзвo.lurrr ус'r.aно
3rlII, свoi] IliIy,ГРепlпlii счеl\птli лов,ltllх'] ч1.сlIl.lя в ноjlьj чTo с()отI]е,тстBYeт (],|(|\l11,]'lrl]к) пOlr'lop()il' tl Ilp{[l]я|lоNl с",rучilс li{)rlllpован]rс ]'UIскoв' з:!lItlпI(сll. IlInx 60rlЬlJllIIl lioJп.lЧi]сгпoN1I(e4)еltulьrх сеl{тopо1]' rlоТрс6уcт чyдolrlJlцногo коnl'чegшil вр.A}tеIlx (сvтliil llJtl 6o'цЬше), Ёс'lи llpll yсTartоlJеIlIIoi] r.а,1очкe БЬсгpЬ]й пpoпуск 0ши60ЧнЬ]х 6л0к0в в AJlкollJrе снятлe o6paзa слегка <тpaл. ltll1рoвaIl||()Гo',lll|сltа ]lpохo/lllт Усlleu]нoj 3Лuч]lT] llа}1ньIr] Pе'LIJl\I пр]]no/IоN( чaстlltl]lо и"lIl, пo'{lIoс1.ь]о Iк]/церrсIшaетсЯ, часT]lчно прпвoл rl{lilво'lljаe1 усТtlllltв.I1llва.LЬсчсTчxlt rroвтopoв в нoлъ' нo 6ракует дахe впo.;tnс ullта6с''rь' rlЬIе секToра, Пonнoстьro прпвoд 6ракyет толъко ,lсliсTвllтсJlьно с6oilньIс сerLтора Itoрочe roвoря' пIе,{]lv скopостЬIо п стa6}lJrЬ]1oсTr'roчTсlIrи доjI,кен бЬlть pазуjuньlli ltоl'пpo\tlIсс' опpeДeЛяe]!1Ьlii зЛекTpoннoii ]rачпнкoLi lipиll.)
пPoпyсteя да, сloпе cI) rю&]epжиrаеTРeжим r(yмrlol.o'rlpoпyсftaсеItтоpon' <с6оinlЬiе> сeк].оРaпaчкalЛтпo 100шТуt' 6ез xpoвсPо1{ нa их чrl'Гa6ejrъпoс'Гь,
однаllо ]l!]r]сз1lостьэтoп llдеtl со]\ll1ите.]lьl]ая' и пon)лrel1rlaЯкоtll.1язачaстyю ,,l с o с ' |. , J i ";o'О',п пPивoi{ До"rDкeнво3вpaщать укa3атeлlr па c2-orllи6ки' чт()6ы Irorтирoв]Iпiк llо].их uптeP]IоiIrР()вnтьвpучнyIо' гЛaвнъlпlO6pаLзoмэтa фиш]rа rleo6ход1tr]а /.lj]'l]ioпilpoваrlllя аyllиoitrl(кoв (i! ltсзаllпrщсннЬlх в тorvlЧислеl)' a дJrя Д11(. l!0в с jlаltllьIlл'l оI]а пРакTuчсскrr 6сспoлeзнa, зanyсти'Ге yтlLtпТу gеt соn. figuгаtion' п eслlt llсPвьlii' счxтая oт нy".]я'6ит fеаtuгe dаtа Рaвеli 1' р.'{llм oтдa.lп ошп6oк усrrcпптоtlo]1деР'кr1вaеТся; llрлsoд lloЛ'(e}t o6'raда,гь пoстоя|lствo* uo""uno",,po"inn', ....p"n,"u.,n оltт'Iчесl()llo гo]юIrку к'ГoN'у ссitтoруl к коl\)PoмY еIo IIрoсят, а llс кyла 6оl. поtu,rст, liJlrlвo,,lъlс нлзкoii кЦrloс,Гl']oпoз]rцIloIJrlpolJанllя]1ЛяIroпrrPlrваIIil'l r1 uro]]' ]llцllще]rrJьIх xо тсхtto.пollrll сd.сoРs l1 stal г()Iсe'ilelIP!Iго/.lIll'.ЗапY. с'П|1сутllJ,'Tv seеk аnd.Qп' встaвr'B в lIp поr:lаудподис]t' r|РoчlJтaiiГс су6l{n. il;]-rLЬяьrс лn]lllьIе lJеPtsоItсoтtlи сектopoв (паttplr]\{сРl Jтo lllo)кrlос,(сnaть Tnк] seek..dndQ.exe тЕAс 0 100.rlLс тЕАс _ rlrvЯ Bалreгo lll]lводil) . lпlс,llа D кРilii лсlji л[)nIroiiкoj|()|1ксЛo"llnоlЬrпloll()1ojlJюПoэPастtl'rЬ'ла)Jqц,lij рa3 v]]с,rllг|]ll!il.
Ясl, пil eдllIlппy' l.,fnlJ )кe о]ll! нaчjI]]аlo1'
oбЛaдать стд6tlльIloсl.6to считьlваIlЛяl зilтPlr'Illr]ilЯ lliL '|'l.0llltrl ,l;l|||l()гoсскlopil{)дLl()ll|о,l{L,fiРсrl,Jlлl|Рo1.I,I}l|()IlсЛ\r'rlLс|li]]\lсP.IlIll'l()хn|)аl(. т.])|lс1Jliil|(j||ирil.l|ьlIoiijLсlрo,l{|i||окa)I{у1r:,'lк],Гoli]Il,],ltlr{)IIllltstаI.forсe/ссl-соps о T к l l ) t ш I rP а 6 o T с . l ] а l I у с 1 | | т с с D .а n g l e , s e с t o г с o с J l с / ( y к ) l I u l N l }| )| i l l ) i l "v1,lt'l|||тv ] \ l с T Р i l N l lС I :D ,а n g ] e ' s e с t o г l e х e \ \ , \ х : 0 2 0 0 l 0 0 > f j , l e n а n e ,t х t ' l r t с Х : _ 6 v к п l r ' : r i t к Р с I l J l o I l l | а3' l l J I P ] I l l o д o N I , l ' l I | | o р T I l P y i i т c l | ( ) J l у . | с l ( l l ь l i i 4 ) n i i lв М s ( ; r t r P I l 0 1 ' l I l Г Y ] ( а 'I L o ] r ) P i l ян I j o Р l l 0 l ] I t с y e Tд I l a l } a м N | Ь | ) ,З а r c ь r r ю в т о p l r - r ' сl r у l r р o r y -
] l v P у l r I l o П Ь l l i l . r ] o n ( | |I п| ( ) " l J v ч с l I I I Ь к ' I P . ] ( F lдl кPlуt Г I ] а] ( ] ) у г а 'l l а l , l с а - l l ь l l o \ ]i l р r l . IlоЛс ')бlt ГPi4Л|'{a дoJJоlь] lloJllk!l.Ьll) со]rllii'Lt1'IljIlo Ill IIPal.DJI{( |.lк()e Jrl1ILoг. Д a t l е , 1 ( ) с I l r l с ' | ( l ' l l t l в п t t о r r l м о r r t с т 6 ы т ь l I с T o " l I ь к o] | Р П r o l ( t l ю I J фo||oвl,I. x P о I l r с с l , ' ( / t i l i i i B с P ' ' ) ' i l l р l l L l l . l ю r l 0 | с ( я ' l I i t : l i L ] l l l с NДl B o P с о | | с p I l ц I t о r I I l l )сi iU r T c l l ] n j I l J с t . а ' u ' l ( ) r ц l r сP e ] l у J l l , T a lтl ] ^ 1 с р е I l I l i iI l p U 6 e i i | . c в с e l l c I l у ) к l l o e ' с l ] с с I l т с всс л о(||oPo1ill ]i е дPаliвeРll ll пP.l'reсГl1Pyjiтe llрltвor.1вlloвь'
ч.Гo x{0 касi]еTс'l rппlryщсгo пРlltsoда' тo llашr| |lo,l{с']laнI,Iя l] oтtlопlен]tl.ieгo хi|PxIn.сPI|стllк 6удyт (,It'lуюllp] Nlи (oфi,lЦIlаt]т1)| . rlРl{вoд дoЛ){tсtlпo/цеp)киBать Pс,ким RAw DAo 06, 0Tкpьlrtаl()щ,Il:i Дос|уII ко irсeNlс,!y'{е6]I),lNI стpуlr'l.уPаl' Дn]]IlьIхrI nOзвoляющxiI заlIllсьIпaтljдxс]lilI ]r ЛeсTaшдaРTЛj,Iх фo1lпlД, Б.]ЛЬш]]нствoДсшег]I,lхxxсцов эToт pе'}ir1]lне под. ]lержInal}Г, ]I lIх ll()зможIjос,Г]16oJeечсNloгpall]Iчсньт'Есilr пР'l вьI6oрe llt|. rjlvl]reго CD пplпroда с]оne СD гоlrоpl!тj что з:rпliсь B pоIorме RАl,{DAOпoд. llcP)ro]]rаt'Tся' Ilе спс,]п'Tе радoвать(я, Прпвoд lIo)i(eтlloД''lеР,{llвaть рe'}Jlrl RАl,iDА0.16' tlo rlе xoддeРкllвaть RAl,lDА0 96,To1дaтrопиPoва]rи. дn. non. ., щ' ' щe]JlIЬJх]ro теxll.].цогrltl]-jЬСryрt' oка'{eтся flсвoзllfoжнъIli. ||а поДeр]ккv RАliJDА0 96 yIiaзьIвaсT чтo 6ЬI въl дуI]а"1!l?- !озпlo)кlloстЬ заrlxсn сD G] . прIruoд l{ош{el{ |loзвoля,rь oтклIoчaть Ре}киil кoPpeкции olIIи6i)I.'в про1xв llol'j с'rrучас.\fьтIIесмoя{еlj ]rx rrмrЦ}lpoвaтьс6ойныe сектоPa' llЛ запrlсЬ!ваTь
з90
глава 24. брaчHЬlе игpЬлaзepнЬхAискoв
с6оriныс диски' и прaктLlt]ескll lIи оil]lv защ]tту tlo6оPoть нe уДaстся' Пoд дrP'{ка peжпNIа RАll DА0 96 пРеДпo"laluст вoзllto'кнoсть oтк'lilочеllllя кoppert Циu (тoчнeе гoвopя, прIl запис ll в RАl,llDAO 96 npllвoд послylUнo пIrлIeт что еl{у llают l] }lс пьIта€ т ся зaIrIIl{атъся саl\i(,lLе,llс.rlьIlосTj,ю), Еслп ре'{r]l! RАli DА0 96 11спoддepj{lrвaется] нo с |one с I) и''tlr AJrriоl.o']ь llpсдrraгaloт RАll sAo + sUв' тo 3ап1]сь 6сз кoppскцlпI всe e вo3rjож ]la. io|я ес Еoз}1о'{н1rстп Ir 6vДYт сильпo ol.Рaнrшсны, ЕсЛll )кc нr1тоroj rп] дPyгoго ]r oJи(1{с Рсяlxilloв нс зrrачптся ]Цxlвojl.l" IlссTo на свa.tкrl a нe u кopllyсe хакеPскol.o ГIкi .
пPп зaписIl aудtroдa[пьlх пPивоД не дoJrI{еtl oсyщrстu.rlять иx корprкцию нскс)-|opь]elаllllfГЬI ll0]\lеЧаю'l' ДJrя пplrдапlш 6o.rreе <пРиятнol.o' звyЧaяи'r кlк ауДrl{)j lI ссjllr ttрtlвoд l iol1ЬIтaстся пх <.y.lrу.llll1l,|Ь'(э1.llr!]<с'Цilв'lт. даппьle ся> пРl'Ir0/1ы P]сх1oг)' Iю}illo IIpсдстaвIrTьj что u l)еlvJIlaтс llPoj1зoiiдст, ll.lЯ Tcст|lр()l]il]]l1'l )Ц)1lro/:rаIJа lllrxBостъ т!е6уrTся х(ILя 6L'l ojillн заlцllцсtl]ll,lii ,.lltск (ек)l кс1.l1.It l'oвoр'l, ll0,riнo сoз!lать ll сill\юс1oяT(JJьIl())' БoЛсс jlсгx1lх п v Т c i j ' к с ( ) ж а ' l l c ] | l . l l l(к)], , l ( r { ) в ( J l к o м с , I l v ч a с я, ( ) l l l I х i r с J I l r к ) ) .
PЕглAt"lEHтPAБoт, или с чЕгo нAчAть и чЕМ 3AкoHчитЬ 1 { o п ] ' J ю D . ] | | l Jl сa I l l l r | ] l с п l l Ь l хД r l с к ( ) l lо 6 Ь l ч I ю o с Y l I l с ( T l ! ' ( ' l с Т с Jjlr ] ( ] ] iilr l i ] I I i l чi , | с ] | | | с 0 6 l ] а l l l l l t з а ] | l | с Ь| | 1 /l l с к . l ] ( " 1 l l 8 с l | с ' | с N | сv с r i l l r о l J J l с l Jс [ ] э ] \ 1 у , r l ' r o p( | l i i 1 r P l l r l с р , T o т l ч T ( )я х ( ) 1 L и 1 ' (П( ) 0 , | а l сr l о ] 1 o с L ) l l r ] l l A Л ю 1 1 ) . ' r я ) '| | o с Л ( ' l L l l ] l эi i1 а l l N l o ' ( ' 1 . I l ( ) 1 ' (lv'Гс1r]0|rillr,..l.olllil сll'l-l'ЬIii o6Pilз 6у/lс l.хрiri]lj1|'ся ||il |rllllЧ0с'Гсp0 /'lо1.сх тlol),ll{n(a l I o l i ) о l l : l ! L с ll.l ' ц l l l l c 6 \ r Д с l ] } i r l Ф ! 1 1 / ( 0 6 | l o с 1 ry' (д)i l Л o r | , с]liяTЬ кoPPtlгl1.IЬlii o6lrltз r]l|сILaдiUI0l() |lc IlРo(:|r). l|()(llФ'llЬку :rilPilIloс llсrlзвl]сl.. |ll' кl|''r\,,'xi||||ll it||| l,.'Il ', ,ii |,,|11'tii,, ]'l| ,\| |'|,, l ц ] I l ] l l I l | с ] \ { o | ] l оJ с T | | к o | | | | p o D l l L I l к l to 6 ы l п I o ( ) 6 о l ] а L п | | ] а с T с , || l o l l i t 6 с ) J r l ] ь | Nl l i l д ( l l l l | /ц"'lя нача",Ia о,гкахеNIся
оT ч1e ]rt,l (\l6l{аrlartlllr,lх
lli]|]|]Ьlх (чтeниe
сy6каналЬнЬIx
даHнЬ|xс тeкущeгo дискa ll A'r|кoГonolr ЧтeHиeсyбканалoвиз аyдиoтpекoв/тpeкoв ' д a н н Ь l м ив с l o l l с с D ) ! в Ь r l . n x I l l I iп] р o п y с кo ш и б o кЧ Т e н и я] rА n к ( ) l ' ( ) ' r|llсJ l l 1y f l ' | i{oвll]\Iсчетч]ткПoвтoрoвчтerия в сдl1]xtцvв сlопе сD. llр|| эT0Il КoрpeкцияoLLrи. 60к i{oЛ'dl.l 6ln,|ЬУс1.аl1oв'цС]1а в значеппe пpoгpаMмNolll rlaдo с6PосЛть rrсе Tрп г:t.пo\I.п:oста]-]oвкanpи oши6кe Чтения'нe с006щатЬ06 oшибках чтeния'УNlнoeска ниpoваниеплoхихсeктoрoв,ИзмepятЬпoзициoнирoвание дaнныx (тoJ'rъкoлляAлIio г(шя) lюка нс ]rаДo'a вoт Peгенepиpoвaтьсектoрaс даннЬ|ми(тo-rтЬroс|onе С])) llе llo11сшacт,I(aчсствo IIзвЛечeIияаудln) jlРl'l l{ollxPoванIпl ilyЛlIоДrlсI((Лr (Г()J]ъ. ко дJlя Сlоnс сD) въI6еPпTев сoотпет(j,|вl.l].l сo сtsOrllш вrq,са\flтli п.rтpe6l]оО.я!]l,1.() }ro саrlос oTносптся п JLскoрoстj] Ч1.сIIr1я, Ес-,rtrв rrpouоссе коппровaнrtя о6паpliлrrтся 6ольпloе lкlличeство oш116oк'ох.ra;кдaющих бегyпок пpolрeссn j r.artlr{C uNlcнyсrrыri <.градусr rrrкoм>,до а6солroт нoго t1у'liяlще.riкнrшеIIa кп()пке oтMeна и задeйствyi]тe Прoпyск оU]ибoкчтeниЯ (Ajrкоro"tЪ) п"riиv]\'e]IьшЛ1есче1.ч]lкпoвтopoв/lo пуnя (Clonс СD), испo".]ъзoвa нIre пaрамe'ГpаБЬiсгрь|йпpoпускoL!и6oЧнЬLХ 6лoк0в (A-'lкоro.']ь)xлll УМнoескани. poваHиe пЛoхих сeктoрoв су]rrссTвснflo ускopяe'Г к)rIl]poванxс, но
з91
6рaчныe Игpь!лазернь|хдискoв yве'цичllвilсT р11сt{пpol1vсIlа <пPавилънЬiх'
сектopоn. CкoDrlрoвaltttilя
tll.Pу[ll{а
в lIPoцсссс кoпIlРoванпя lIо'{ст з^впспуть и сilll к()lnrРoвщик (lU]tlj I{aк ваРи аIrт лыJeTе11 з:l пpеr]e.nьIr.lиска, llачаTь (Тpoч11т! 6сскot'счнol:i oчeрелью сбоil пьIх секloрoв), Этo. д!фскт jll1i( Pазра6oтчIrкoI,I llrяnl]o зnк.Ца]1ьt!ак]цuхся ]tа ('цllrnкol,1 вoJlьнЬ]с дoпIщe]r]lя,I,Iспojlьзуiiте l1Pугоii кolll1Р()9щиl{ (С]oпс СD nп1сстo A.!ко гoJя l IjIЛ ^jткoгolъ в1Iесто с ]о п е с I) ) ' ]1пoгДа эТo ]loruo1.ac'l.'xO ч arцс нст' тдкоii дliсrl пp]lходптся кoпп1)ов:lTь <(ру]{аNol''iu],l чсгlr llPсдус}lоТpсllьl аnd-Qll сd toс геаd' Рaзl)а.ю'rаi rr]ыс а gТoРoпl (P] I( ' 24.3) утIIлrпъIсd rаl]'гeаd'se€ k n вnl.Ло,lсннь]о rпl a http,/kpnс'opennet.Гu, B
Pис' 24.3. кonирoвщик, автopoм,кOiирyeтдиск,защищetrнЬй разрaбOта!Hьй stаtrfоrсe, сrpyкryрyспирaлыroй дopoxкЙ рекoнстpуиpуя спяTьпj o6рaз N{.Dкeт6]'Tь lте]\|eЛлеlпloс]! oптllРовaп lla э]\1yJlя'Горll liРоIrеРсп пa ра6оT(lсп()с()6lloсть в yс'lloRЛях, пр]16'lllrxеIlIlъl]\l к 6oепьlNl. BозNiо)I(]lъl с,]eдyro' Ilцlе варrtarlтьl] o6pш Niоllтпpvlrтся' IIгрylIIIiа lIoР\{aлЬrro зlпyскllется п всс l,tдс'Г ot(i o6pаз \1оптпPyrтся, r lo lгруI]lкr o,Гк:LзьrrraетсяпPI'зrlaть сlФпrDоrr:lI l IЬlii дIrсrL с]rоllмiо6piз ] Je i!1oптирyeтся поо6пlе вьrлnвaя соо6пlе]пiео 1.()iil,IЛlIrllIоiiоnпl6 Iiе. тartоe с эм]ljlятора]!l]r чitстo 6ьтвает. пока вьrсокIrе ILPvгI,lllo xрlrпo'Гьl спoрят' !4:|еГ,|,,i,n|' ' qnlj lЬlкni] кi\lP|ь,',,nl'|''i] ,lр.v^,|.F,lп,'],,Я|ь',,,|''lо' щurr зallPо(ro (lll1мсT l.llкoi;i ()6рaз, (o,l.ор!lii хpсtl xol.oм сoгJаrxacТся \1оrlltlPo. вать, Ес"1ll TаIr зa.lсilтc сro (06Раз' a нс эl'уJIяToP) на сD R//RW n запvсTll'lс oттvдa. все ул{e PaвI{o l{е Pa6oтaст? Bот чeрт] Тогjlll за]lеiiствviiтe чтеIп]е даIr Ilьlх пol1кi|lIалoR (eс"1ll вalII привo]l lж ]lеiiсTвитеЛr]по ]ll,Jтаer), Есi]t Il jTо llе по (Tо-,lr,к() /1'!я i!1o)rсеТ- оTкa}ixтссL' oT
392
rлавa 24. бpачнь|е Йгpь|лазepнЬх дискoв
в.]аN'()i' кi]аiiнсrl сJ1учасзадсlriствуriтeИзмepeниепoзициoниpoвания данllыx в Aг ю гorrс.в ь16PавIrpсдпo.IтитeлънyютoчJroстЪп.iIrеРrllиii (оua зaдастсЯв нaсТpoir. l;t]х Llllloв liаtlrtъIl),,r]oгичllol чтo вьiсIllая тoчII0с1ъ о6ссllсчl1вaсI ]lзиaYчшс1] тнпмaет 6o.iьпJе в|емеlIи, По'llvчсннaя xoпrlЯ яс rlo'iiсT 6ыТь запи сalra нa СD R'/Rw кalt o.лnчl IьJii ]rиск lt pабo1аст тоЛькo в lI а Pс с эl]у. JlяТopoпf. что сoзДаот oчевI{дньlе пPо6.Iеllьl гryll расt|РостРaнснll],! с]rопrlP.rвaн|]ь]х ]Ll]с]iов. l{ с'(o!\'сl{aзаTь, тpетilii stаr 1orсс lrе кoпrrpуc,t.ся A-'llсоt.o"lсrr' по rrо.
пjrpусrс,l Blirrd Wгitс, B смr'с'rr эlfyлиPyется. B|]]x1WIitе сtlx11асТt)6pаз' кo'Горьlii ,1orr nicн 6ьrTьс\IoIlтIIpoБllI rrавlil)тy[lЬпЬlii Дисx A!]r0гo,rЯlD'Тоols.
Дo с ltх пoP м Ьl гouoPl Iл ЛсPъ псР€ i iдeм l{ a),дпо' Еh1 Сlоne сD'
иpоIrnl t и 11д и сl{otl ( jraнllЬl]ll и, Тс. IIt.IAЛкoг('tЬ' lltl Bljп.l Wгitс д.Il, пo.IlY!с,
P с x ь J r x ' t ] ] с ] L l l с . \ a l I l I Ь I м | l ' a а y n и о к o I l и р y l ( ) T < ( l ] o с Т o Л ь t { у 'l J o с к o J l Ь l l y ; . lIс пo'(ьзv ijтс ,! J()бoгo к:t.lестпсlllrl)гo ayЛ]rоry16lгГt]J|'l' кo'|oPr'ji tlili\1l]()]1}rп(](IIil. .l.ут' J|рJ1Уср, I]r\C от httрi//WWW'exасtаldioсopy.de/)' ltllrпда, ссть rl,iLпaltlхlбtrома. I'1jx]illсзnlIuillк'|ЛIысn\'дl'одIlсl{'lлoo6lJl€]IспPor{гl)ЬlllаxЛсЯxIrссl).ItО]\4'ах' rt() llopllit.nЬlIо l()сI|Роj1JlroдЯ1.(}l в tLуд|'loIlсllтPnх, ItoЛЬ ско])o ,ll'lск llt,,'lь я ]ro( r I i ) i ' l i ] в . с l l l , l l ( ] x l ' з ' ( x . ( rl l с l ' o ] l l l P o в а T Ь ,Т а к l о т . P а с с л l ] , l l o l r l l | | |il|с( ) l i аl l , l ( ) ' l r ' Г ( l)l i r ,rilItIх r : 1 l l ( : l . i lIIl с l l o Л l , l l v с j . ( я к а с ' l . P I l P о R a t l a я в ь r в о , . L п а яo 6 л a ш . r , ' v 6 o l r д a к l r l t a я l l l x l l ] o , 1 lч ' \ ) J Ф l l с ц д I I ( к i l I l n х о д } r г с , |a Р l | 6 , 1 l r j з I l ' Г с ] l Ь l iIlol 1 0 : ] 0 i i ( 1 ' l ( у l I ] t со , l ! ' Г ( ) l l i I I n n i . l ] ( ' ' T l lo | 6 р ( ) f l j ' Г r ,l | д с l ( )} l о j l l | ( ] Л , I r а l o l IЛI l ю п l l l D J r l tI I P I ' I } o д ;кl а к 6 | ) 9 ц ) | | y l ( ) ' ( ! ] ' | . i ll(l |: ' ] l I l l i | Ь( ) l l I l | | ( ] | l l ) с 0 6 l п J n r r v i l(. г- o P r l ч n ' |i t l t N l 0 i l ; l > ]I0rYJla(,NlrLсl|к.|l|,|iil]|)]I' ]
l,'',',.'',l
',,',.ii,|',т.| I lvl,| '' l]'4l|l|\ ||']|у,|.l,,|х:l''|
'l:.!
к l ( ) I l l | | ) x r ' r r : l})t)сi l r | ] , r | я onl(])- v | к r Р "з lа 6 x т ь l j iк а к r r l г r r l r б у д ь6 a р l t х ' r r oдмr r с к ( к . r ] { | l I ! | l I o | l р L П r 1 Ч l ! ( ) ) l' I l l I o I l ] j | с ] | a ) ( t ' l N l a як . ] I aв l l l ] I v , ] Ь l 6 l ) L ) aс J l t ) T| { i t i' l к к v Р l l T I ю с l I l 1 .
I l 1 l l ] I Ir ] | 1 )с o I n l l I l I l i ( C n , l I I l ] L x . l r B , l l я c l l д U с к l к ( ) T o p ь l i i ] | t t м l I " l l L i J( l { o u l | р о t ] l l ' U , , ( D l I L J . r ( t ll ] o T 1 r Ч l ' j ! r :r I l ) l I , L . i L r ( , il \хl ' | r t ! P ( r | ] t l х l ц ) l I l l l ) / (| l с у i r ] l а с T ( ) d ) l l к T с 3 l t N | с l l Ь r] L L 1 с к l l} l ] l с
.r I "1. о 6 р r , r l l a с - г с яr r : r 1 0 . i i с с r t l , r r д о П . o д р o 6 r l о c o п r l с a r r l r с , r ' с \ l I o j ! o г I r li !r . ( ) р я . L с i зi l ] \ l . ||ЬI' ,|р06Yc,| oгд'дJll'Ilоil кllllгII' а сrl"lчaс прoсTo Лов'l1e jlLсю, Tс\1 врсlJспоrl ruьI Лo6раJnсЬ lt,1о lroпРoсoв заilJtсп, :]апlrЬ,,' кnза"r]О(lr6ъr, lПt) ] \ 1 о , ( " Г6 ь l т ъ п ] l о l l t e l А в о T l I l I e т l в ] l я т Ь х о т я 6 ь r п р ( ] б J r е м у , l ' 1 6 o р x P с ' l i l ] i \ l а . liАw DАo . pсIФ]\lс llЛil lLrrl1.ЦУчшrlt сtr6аl{0вод()в (<.(tlcЦов' с tlnnlцal1]1I1 llort. Iаj\lLi) lloJltl,lii l{онTpo.'Ir'}laд IЦOцсссоIl xрояllГt'' t'o I' Gа с.lсTвн.rшltсю ''сToчlll1l{ll сJ11l)iPо1lrIзxцl1l0 хPсlI()1]()сltaчссTtsо заnисl1I liAW s^o фуultцllollaxl,. lIЬx] вoзll0жll.lсTl Ta]i сс6с. зaтo rt каvссlтву пPсTснзItй нcт нпкaкllх, ]loэГolly ,rlvЧ]xc нaчxI]ать прo'x1г ! RAW sАo 1l тo.Iькo в с'!vчaс lieудaчrI псpcхoдIrTь н.l
R {\\' D \О,
l{llск!l' защuщснныс lto тс:'но,.tot.ulIсlа6ьrх сcltтopoв (нaпPиNlеP' SаtЪ Disс 2)' o6t'арy'{I.IвaioтoдI'y очerrЬ}lепpпятнyrо осo6сfirlос,Гь.A имеlIlioi оРЛгrп]a-1ЬпЬrr:I дlIск 'lrттaeтся 6eз onпl6o]i' llо кoпI,я ol.азы!aeтс' <укpаrlrсннoii' 6oЛЬшшlllк0jllпeсTгlоill с5оjil]Ьlx сеl{.loРoв,тlРrшoдrщ].lхсяaltl{уpaTнa к.riючсвыс фаiiJljj, lloс]t1.с,rlЬ ]]rссr'нс nРll чсNl,11сToчrrlшДсфcктивнoсш в rlрxвoДе.нe вдаuaясь u теI нrrчсскllо подрo6нoстrr' мo)x]roскaзaть' чтo сylцествуroт кaк 6лaronplrя тttьt".'так п нpсзвьl'таiirroнc5лaгoп pIJятriьIепoследoвaтejrЪr]oстli 6aiiтo8, нe6JlaIоr|рrIяTtlъle
брdчнЬe rpЬ лазернЬ' дисtsoв ioсJrcдовaTeльrlостr' дoллolьi запirсыватЬся rraд]Iск ос116ым спoсо6oII, Пoсr{олЬ jl}'при Jropп{aJьIlol\JтeчeilЧидел пстPеча с nIrlIп кРaI:пlе If:LrтоIlероятIJa'бolъlIпr'i ство прlJво/iоB 1lпroРирyюттiх сyщeсТвоsaнliс' Cyil{еспyeT пo ruеllъIile ltеРе тl)lI ]lут]I l]ешe]]rш t1Pо6лeN'ьl] вЬJ6росrпъ пРt'воЛ и кyЛ'lтЬ дpy1.oii Ilo'1учl]lе l| пo(lLpи заlrrrси о6рaзa на rrсpс. \'j\ll]Cс;ско]Ir1РоваTЬ jl!lс( tlс ]]a сD-lt. а Ilа сD.IiW sапllсьmarl{Ьпi носитсль пPпвoдьr o6l o нс6лагoпpпятньтх Iloсj]едоnа.Гельrroстях' чсro праItтltчссl{и нпкoгд:1нс дсЛaIоT 11асD.R)] :ul]]IвIll)()Ilnть паpапrетр {yсилeнпяl с"lа6ьlх соктopов в Clonе CD (y АЛкoгo:тя это зo ]]f],.я oбxoд 0ши6ки ЕFl4 в llасTPoiiках зaппс!I), как ваpпаllт. l'о'(fio rIспo.iъз(] ]]l|lj' ре)кi rN'J]UYЛяЦиlr с.1а6ьlI сеrtTоpoв в с1оЛс CD oD 6оЛес flаДс){сU, Ilo трс6yс Г ' | , | | " а | о . U с i ,i , " | | | , ' " L DТ''J Ilспo.]IЬзyilто сс вссrда' коl.lLa (кoIlllРoPilнtlь]ii д j)llбoтаTr,, БЬrtь rv.лет,:{rцllТа llpoстo ollPашjlвaс] 1ll]l дIlс]iа (СD-]to]\'l иllll
сD R//RW),
Ill)ll кoпllРоDаlIilli Лr,iсl{ort'заrrlll]ц01 ьlх llo Iсх]loJloгlllj LiЬ сГvp(. Л С]L]llс СD ус rаrt()|rli'гс(])ji.l)(nL He вoссrанавливатЬ су6каналЬl,]ЬleдaннЬe (R r\nl{0г0.riс /lс,ll:lП] l I l l l L f l( ) l l ! l l i l , Ф ' ' | а к к i l к о ] t с v 6 l r a l f i п Ь l l ь l c д . 1 l l l l L l сl l l t к o l ) ( a I l r l с в o с с T a i I а | l n l I J r l l с т ) , 1 ] t l l к ) l l ( ц ,| 1 (J]r 6 l , | l r а j i ' r c( ' l ) c ' n | м l l х ) l ( с т Р l 1 !] п r Y . 1 я i l j l I Iа,к т I l B и P у с l 1 | , l IR ' I : ] сЦ ] ( ) i i ' iiirl ^,llк()l.о'('l Э1.()]/i/,lи.' (Dо(xn:r,,ltlпllс oсo6сlIliос]сii сryYк1\,pЬJ сllrI]ln'll,Iloii r l o P l D к l ( l l ' ] l | ( ' l r ) l х ) i ' l l l ) l I R ' i 3 ь I l 1 а l ! ' l L я : r i l 1 r l r Iтr l rnl l n с d . с o P s l l s t n Ё l { ) | ( с ) ' x j v , r ' . l l l l я I | Л ( ) r l | ).iс l i ] ! р o в ( | { ( ( ) т о p Ь l N lI l р l l l ] , l з Ь l l ] i l l ( ) , О] |l l l l u | l L , l l l l I l r s l l 1 . l ) i s k ) ' i ) I l v ' I л | ! | n с ц б х { u | . 1 ! ] ь x ьЙ: .,f] l l ' x ( ] l | | r u | | Р и l 1 я i Л , | l ] L l ( xsliLx|' t l " I t ( ) I V | )l l ' | | l t i ( Л к ' I li') \ | y . ; | ' | | \ \ | ' I ' а s ( 1 ] . o о I ' | | \ 1 с \ o | l l o l 1 ) ( | в o и с 1 | o J L i | 4 ) l I . r ( r ( . l ( j к ' t ) с ( ) { i lс(].|j l |( (, П х ]r',.сrк1t [ ] i l ' l l ' ' с | o п с с I ) с | I р i r l r Л Я с ' | ссЯ ' Г P o \ ] я| | 0 с Л с Л l l и м l l l | у | l | {l i r n l | | T a к ' | | ( ]| l р l ] 6 l , l . n ,l i ) ] ! r I . j | , ll o р i l 1 1 '' l П ) с у ] ц с с , l r x ] l l l | oy I ] P о l l l 1 l с TI I ( ) r l ы J о D i t I r /l l(0l l с к о r \ l ,
сoвЕт Koпирование и запИсЬвсегдaслeдyетпроизвoдитЬ Eа HaимеrЬureй скoрoстииз тeх,Чтo nрИводом' в идeале_ !а 1х' ка( гoвoрится, будешЬтишe- дOлЬшe ПoдAерхиваются
кoпиPoвAниEдискoв lllltl6o'r|(]с lI()|IyЛяРI]r,lезаlцl''ГIrЬIe \1сxанI.Iзllы кolI!lpoваl]Ilя сoбР1lнl,l в l ll.r'll,21,1, нскoroPllх 11ГP- ts1а6'r,24,2. A xрrlм(]]'n lаlltl.lт от кollllPoвaнlн
тeхнологией сасtls Pис. 24.4.Диск,зaщищeнныЙ shiеd, нa пpисутсrвие кoторойукaзываeтyзкoе 6леоящеекoльцо,paспoлохeннoе вблизивнeшней кpoMки диска'oтсюдаtачиt сoдeрхИтмeрзoпaкостNый сиЛЬвoсхатЬй mрз отвратитeлЬвoгo звуЧания' АккурaтHо эачeрнив ее (илив0сп0лЬ:oваsirrисЬ маpкepoм ваPиalтoм<ЧтeнЙЕ толЬкoпeрвoйсессии', мЬ|взлoNаеМ зaщЙryl х ёудЙoтpекoG сD.кaЧeбва дoбравuJисЬ дo яормалЬнЬ
з94
rлaвa 24' бpачнЬ|е игpь|п.зeрнЬх дисьoв
тa6лица 24.1' HaибоЛee nоПVляpнЬ e зацитныеМeханизмЬ сасtus shieId
в рeжимe (нaилучшегo> каЧeпв. извлечeния.удИo суФан0вленным флажком чтение толькo пеpв0Й сессииl ЧитаюцИЙпpивoд дол}€ i r уметЬ в0звр.щать укaзателина нeyоpанимЬе с2 oшибки (<.касус, с кaсrриpoваннымLеаd.out хачитсятолько к0пированием с<гoрЯчeйзaмeной>,то eсlЬ
(p|'1с' 24'q)
сDсoPs'DLL' *'Gz-и * W'Х LАsERLoск к ним(pис'24,5)
па нeраз6oлтaн!o1Ч гlривOде эмYлируетсяАлкoгo,reM
э14улирy oтсЯ Aлкoгoл.м]
поддep)кива|ощиЙ быс.lpыЙ (Уnp0Ureн|rыe вариaнть AлKогoлеМи сlone сD деQепиввьх секторов_ пpивод/позволяющий oтшюЧить кopрекцию
!ibсryрt с вмючeннЬ liи oпциями ЧтeHиeс./бканaЛOв
субкaвальнЬ]е даннЬe
(пpoжиr), читаюUrий пpивод rrоддеpживать дoл'(еH даннЬlхl
а записЬlваюций
peхимDАo.96
_
6pачнЬe игры лaзерHЬxдискoв
как pаспoзнaть
sаfeDisс оо00о001.тlЧP сLсD16,DLL сLсDз2'DLL сLoKsPL'ЕХЕ
sаfеDisс2
как скoпиpoвать кoпИpyютсЯ Алко.oлем и соnе сD. Читаюцийпривoд поддeрживaтЬ дол)I(еH бЬс|рьй ipoпyскoшибок, _ пoзвoлЯтЬ а пишущий отклюЧатЬ кoррeкцию в pexиMеyсилeния Фа6ых сeпoровилиAлкoгoлeM в рeжимеoбхoдаoшибкиЕгМ
сl,1s16'DLL, сNls 95'DLL о'сl1s Nт'DLL
и Aл (огoЛеl4лри yФoвиИ, что задeЙствованoчтeвие
ва нePазбoлта!!roмпривOдe Aлкoгoлeм эt4yлирyется
Pис, 24.5' Диск, зацищеннЬ й пo технoлoгииLаser Loсk, видитe рЬтвинy пoс€ р eдИнe спиралЬнoйдоDоxки? Этo лазeрнаяMеткaи eсгЬ' Фoкус втoмl что эта меткa нe прeпят-вуeт nачинкaпpивoдалегко исnpaвЛяет Чтениюсесopа (такиеAeФehтЬlмикpoпpоцессoрnaя зa счет из6Ь]тoчн0Фикoдирования)lвo oбламьвaетслeдящyюсИбеМyl в резуЛЬтатe oсeднююдорoхкV' 3ащитеосrается лишь пpоЧитатЬтекущyю lloзицию' и eФи при Чтeниишючeвoй мeтки мЬ всякиЙраз Фетaем на 1r доро)kкy, и на060рoт'лoнЯтHoтeпeрь,почeмy лрaвильво диск считаетсЯopигиналЬ|]Ь|м й Lаsel Lосk нeвозМоxвoскопирoвать,а MOжнoтoлЬкorrpoэМуЛиpoвaтЬ? DеализoвавнЬ
з96
глава 24' бpaЧнЬ|е игрЬlлaзеpнЬх дискoв
та6лица 24.?. ктo eсrЬхy/ илиЧeмзацищаютдиски некoтoрЬiх иГp simсityз000 вlood2 соmmand& сonquег2 тbеriапsUп Diаblo2
seсu.RoМ
]чiqht& N1а9iс 7 мопtеzurnaэ Return
sаfe'Disk sаfe.Disк
S.fe-Disk sаfe'Disk sаfе.Disk
и}|тЕPEснЬIEссЬ|лки . .
. . .
http://WWW'сdfreаks'сom сайтДля llасIoя1цих взr]омril к()BсDj здCсЬ rIожIlO llаl|тl| всс .- oт тсxнoлoгl{lr дo хaкеl)скllх lIPoшllвoк I] l|Pо'(l}llllутol.o(oфт:li ' http://с|Ub'сdfreаks'сoгir 4)оРyru'г/teTусyx'r(Lt мaТсpъll]llз,llоNl|]lПкllсD tI гдс (Iк)сoбrlых Pазo6PaтЪсяB !аluсi1 JlPо. всег/ta]!{{))кllo ]]с1.Pстит'yivll l ьlх .пlo/(eii] 6лсмo; _ IlPoстo хоlolll c с1.:(l,11 httрi//Wl^ry'bа|vаnkа'сom.!а llo Bз.попlу; httpi//W1..vW'а|сoho[soft'сom сirii1 ршpа6o1rl Iroв AJI(оГоl,t; _ httpi//Www'elby'сh/en сtLiiГР;lзРItбorчlltor с]опe CD' ts свя::и с lrзllсrrсlrlrr:rr
с l ] р 0 ! l с l , | ( ( o г o 3 а l l o Il ( , l i f | с Л Ь ( l . l ] а lз а l I ] ) с 1 . l I D l l l с l 1 кo ) l l 1 1 р о в i l I l l ' l icl a п l r | l I к ] | l I l Ь l х /oIс(ol]/{il)toDaРх |],lЬ|хцcJl'lх'прo!ктзal'()lхDкollUBсclIpilвll||oj)q(аLlы(lЛlр' м c s I v s o i t ' P . l ( : l I o Л o ж с l l l l o i iв л а Л c l l ь r ( o i i o с ' Г Р ( ) в r l o iсi т p n l l e , с c i ] ч l l с l I i l . l r i h с N i ( л i I l о п i l i i T l I J r и I I l Ьс l o l r с D V D ' к o п l ] P v l о I ц l I i i D \ r D д I , l ( x ( ! i ;
. . . .
http,/!4/Ww.s|ysоft'сom/enсaiгг пolllrрxкl| кotrrrpoвIlшrс.r Сloпс CD; _ httр,/]^'WW'Vso-softWаre'fгсaiiг pа3paбоT']икoвкonlЦюнllulка вlinа \\rгite; http://Wи,W'dаemon.tooIs'сссаiiт PeзРа6o}lItкoл эlIулятoрa Daсlnоrr.Tools; _ с!aЛка otlРсl{с. http://WWW'сdгiеdiawor|d'сom/hаrd!,vаre/сdгom/сd-!tiIs_2'shtm| (fl с фаjinoпoNlоiiкд)' ЛllTeЛеii :]]ulLr]T
ГЛABA25
1-lHoгo тEсти Рo вAHи Е гlPoГPA]v| oБЕспEчEHия I}е'|ucуou сапс!еЬug,уоu|||x\lЬ11вs! тeОиpoвaния принцип oсн03нoЙ l I Р о ц ) a i v r v I l l , I e{ j ш 1 1 6 к Iкl o в а Р l I l ' J и з Л ы . с ( o J l ь к o O t l i a l у б f i n j | х ( l P о п l и х ] l P o ( ] | C 1оl]I скojll,rro r]РсruсlIlL 6ъlлo уr.Рoхапo Ilа I1oЛскIl ll]jal]ll.rul х 6aгoв, зa'r,аlIl]||lrlх. с'] n засa]lс !l вЬIскaкllв.llлlll,{х в() |]рcм,l дсмо}lстр^ц'|'I пPo/l}'I{'ГirзllLа]]чll|ll' 1l() 'гсp пе".lпвсс, BoopyжсtltlьIй сttвРеп'0пнЬlIl IпlструNlclI'l.,1 пPо1.ра11I1rlсTхll,ryeo l l Гнсзд|rлпщo 6агоl п 6ьcr Ilх l]аlloвiLл, РlIol1 дllаi.lloсTrl]tn, он вPljзаeтся в саllloe (Л'o6щсii':мc в срl]дliеNlтrсТUР()Raнllс oTllиN{aоT 50% вPсllеllli и 50% сTоrtl"loсrll ,|ьI пРocl(.a (()6яза'|eлЬпo yч'l,ГьIвil}i1.с)тo, зaк,llа.цьIвм 6!)r{)r{eт)'B &)пъIlIих к]NI пilпп'х (]lrt.]' I1}Nl' Мfuгosoft) за кa)кдьIll paзра6oтчIlкоNl закPс]]ieн JrlЧllЬIn 'го врeмяl, когла этy ]'Ротсстrrрr lвпu пr. l1РoпI,.lo ра6оту вЬlllonllял втOРосoРтнDl] (Nlо.]l' )8aнl{ю кoдиPl саl{oсToятоЛЬllоNlу к трaпlп!исT' кoтoPoгo еnllr нс 11o/1пускаЛи ошп6кrr, сrta.laла пyсTь учl1т(я lla чу)ких), ссlод1lя ,.р.,,.д" o"n, дouy.".n'o "вorr этo вЬlсoкorrв:rjlи4)ициPoвatlньшi l'i хoPoшo оlI,.iач1lвaейъlit сllсl.eстrlPoв]ll}1к ttxкoгnа нс цll:Lllliст' в yсЛyl.ах кo'l.opoго llyждаloтся тЬк]ячи фирi{ и кoroрьIй спдит 6ез Ра6отt,t, -пDof/l,.:l.o''Il'||т||'пpJl'||||oЬ', с к о | . t ! : ' } l . { ] 1 } ' ) | ,I l o \ , , з , l ' | | н Ь ' ' U | | | rrс всt]ьтel Tссl.иpoванtlе сопpoвo}кДa !еarrизацпи' тlrсl 1lрова11]1я!l пoддcр,{l(rr' poжДrния oT NlомеtlTa Дo саNloii сNlерт!l. tlPoскr ll ров eтпрoскl.всrо сrо }кIlзtIь , 1 'у | l l U n ' I n n , . а j t l о , L , ' , l. г н о , | в . ( , \ | F r . | , : t ] \ ' Ь ' : ц , l | , , , , |Д инфopмации. 1,aзPa6oТчllк тестиРyeТ кaждуIо зaпPoIРамI11rPo!аllllуlо I!Il4rунк
яиe ПрoгpамMloго0б.спечeния . цпio (тост]Doвaнпe ]1а п!lпiр0уpoвпe), Ботa.l.сстерЪl llpогlер,tloт рa6оTоспoсо6lIoсTь вс€ ] .t] продyr{'l.a в цеroNl' У кaждоro ltз нl1х llоi|}iсн бЬ|гь чcтItи i.i rl'iarr 'цеiiстпиlil в пpоTuвно\J с]ryчаe тес|l{Poвnll]1с пpoва.Ir]lтся. сще пе |lачавlII]lсr',
тЕстиPOBAниЕ нA It,|икPoyPoBнE B Irnе .rtсл.1я кa)кдоii 4]уIrкцrl]1псхoдtlоroкoдa rlа6ор ав,гоlra рaзpа6a,гьrвастr:я тliзupo]lаllltъ]х TссToвj ] pсдI'азllачоIlJlЬlхдJя rrроверкл cе pаijoтоr:rroсo6пrlстrl,
.]\Ч,|'Fi',
n|,'P\l||"l','|,,|','iU,J.|*'''',||''ii
l]', lIl,,Il1,'t'Ir]\j'',, c
'',,ls||P
персднЛ]\lltза,:Iачv: Tакoii пpпп{еР'rrакоТ()Poуlil]цlI{IlllяrlPоnаnlll.. РaзРn.'от:lть ся' вoT, нarlРlll'eР'(i)унIlцrrlr сортlrpовки'l1pостciiшлiirсст вы llrя,rln.,riк, Гсrrr.
Pирус}I пРollзвоЛ|]нЬI€ /lаll]]riе' J|Рoлorl}lс\] чe])( /1.ЦЯl{rжjroго i),]lс. l l i ] н l a N t с J o J J l l с N < = N + 1( N > _ N + l д . r l Яс о р r l l p о I ] | l | ! r I о y 6 ы в а r r r l о) lrстпrlrro' с . l l | т l l с I { ч' т ( )1 с с т п Р о l , l д c тп р м l J J Ь I J q . н о l } ( : д Ь э т o ] . r с с T l r с Л р а П i , l ' ' l l , l l Ь i i]ik| ! 6 х о , l ; l l t r l у 6 с д r r r ь r : яв т r l м , в т o r r l r r ь J х ( ) ' lф с \ , ] i к ] l U l Jl l p l l с у т с | в у r 0 ] . l l ( 1 ] j l с х ( ) д | l ь лl с: l I l . п П с п I l e , Il l l l ч с | 1 )Л l l U I l i с Г o l l , { l l о r r l с d ) v I l | i ц l l l ll ] ( ) P l | а n Ь l юс ( ) l )l L n v к I Г ] l ! с л т ь I l ' ц l t дnlrrc TЬlс'lчy i)JlсмсlI,l\)вl нo сlJ()TЬIl{ilx)|(Яll;r Oдl|()N Il.цlJЛll}х k)6l,l.Llrо э го irpоllс хo/l I llрII с()P'гr,ln)вкп с | l ] T o Л о Nд|с J с l l I i ) l I I i l l t ( ) п ( ) , r I r мA) ( с J l l | 6 у ' l { ) ' Гl l ( ) r I L( o р T l I ? ( \ j J l ) Iо д | | i l ] l J Л l , l ] ] Ь l i ] а o N | |(,l|)хy l l I i l U i i i ( j l ' 1 п I ) l l N l с р ' P v с s l ь l х ) , l ] с п l e ] | Т o в^ nа]1oс) } 0 J П i ) n T U ' i о i L l l r 6 к у , -с I к ' l { o , L . J 1тIс . с T l I p у с I I i l ,( h y r l к ц r r як r 1 1 ) c r Ll r r l l с r : o6рl16отaтьi t ' , к o ' Ц ь к (l)J p c \ j c I I l |( с l | с 1 0 I l l | Ь l х P 0 с Y p с ( ) l l )l I o т | х ' 6 ) с T с я| l i l с l ) | ) ' l ' l Ч х ) l r I](\уl l l ] ( с | | l r l : l ' l l ь . lIoIloзNlФl(]l()].ЧllсЛil).lJсN.]|1(Л]l)l]&Лlpil8nlllJl0l|llзкa'llр()l|зll(r,ll||1сjlЬllосTЬ L } ] lL с с Т 1 ] у e ,T' lt l , to ( l l I o Л I ] ь l хl l o , , 1 \ l ) n аI t 1 t \ : | | | р о l r ^ | | | | | ( )' l с D 1 ] , r 1]]l 6 ( ' ' l Ь l i i 'ull||l||. lIсpl|ъlii яlrjltl('- .)To d ) v i r к ц l r я r l : l r r r r р ь r l . r l л( (r ) / l o I l l i Р О J l c p к l l l ( Л r r l ! ) Г o с l l o , ц ' l T с я к T v п о r Ч v I l o Р o 6 ( ) P v! . с х l l o м 6 ] l | | L l ц r I iаi P г у r v c r i T o в .o . | t ' r l l l , r l I o '. | Г 0 п o . , ( | l l ] , ] r , 1 I о r l l с ( l 0 o J l , r l l l I l | с , г в о4 ) у l l I l I U 1 i it l o l t o l . у ' L6 ъ r l ь п p о т с с т r l P о l ] t l i l Ь l: l l l l ) а з v п 1 l l o св P с п l ' ( r { o Jlll'lcсТвo кoj"]6ttIrllill1i] с',rlu!кoN l]сrlrlkо), 1(on 6",uo.n ,ur,,u. ''.o".'..'i' u '"..u' l)()IJщlll. N|o)ltстЦ)сPсilo1.OчlIтЬ (]Пoc n]lI]\laнllе ]la lrогрalrll.пrl'rх o6лаLr.я х. ,]i{оLrvс 1lINl' в фvпкцlllI L\l|Ь oграlll]чсп с l1а пPcдс-llьIIl) д ( ] п ! с 1 . l l ] \ { у lд 0]rпIrу (.1'pо](ll в |'A} LЕNсrlllп0xoв,TоlдaнаДоTr|LaTе]lllloпсс.I]o/!оllil1r,стр()Jn!вMАх-,LЕN.1,!1А} LЕN IlI4AХ.LЕN+1ulrtп()лов'посl{onькуolu1t6кtlв<1]6аiiт>.oдп;rlrзсапll,rхlrопvляp. TсстДoл'Lеll
зaдer.lствoвa'ГЬ всc веl.в]] пpoгpаllllьr, что6ьr лoслtl сгo пьnro.цнепttя lIс oстillolx, пи oдн.]ii tlсзаЛeiiсTвoвxlrнoli с1рoчкll l.oдir. сoo'rrJol Jснltе In)lLа,I{о. тoР'lii хo1я б'] Раi] llоЛvчn]l вьiлl)-'1нeппе' с о6lц,lI1 l(ЦoII пр()l.Pаrli\lfi nазьIвaeТ. сЯ ЛоiLpьlTлсп{ (сovcгаgе), и л-пji сro пзмcреlll],l пPtl/lумalIo llно,rе(t.вo l1rlсTPy пIсIiт()! оl пPоq)иJrllроllцIпloп' вхoЛящиt в !rТа.ГIIш]i ко11lljlс]iт lloстaвilи кoIlпIlJI'rToровj Дo сaмостояTс,пьпьtх пакeTоnj -{уч]rЛlill l'з l{о'Гоpьlх явn']стсЯ
Ntмegа Truе сoverage' l.rз'а6'l
а
т|''Ь|,\
''lIrр|nв
..l|'
J I l | ) | | | | : , р | , e п | ' , q! ' l i , l , , '
lJ.|у|,'J|,16
l ' U р Р . , o . . | | з , чl n l t ' ' r " o : 6 л r r а " r v " и , , , ' j , |ЬU' |] | , ' i i , . ll,l|'o,,''',-o' ф чTo 3 Реа]'lЪIlojiХrвllи к нeii шpи6et.аютnulrь в lrаи6oлeс ответствснпьrх слr^lа.
BoT xo}o\!y v нас яt, ФункцЛЛ с пPoсToй ЛorпIioi,lТес,LrrpyютсЯ<вl.13уалъrro>, в 1
,,Мl,
,,
пJ
Ln,,
BссL1LaтрilrlсЛпpуйTe прoгрaмNly с пaкс1l11а]lt'llьI11уРовнс11 пpсДуrlpел!iеtiиll (ДJlя 14кr.оsoft \risrLэ] с'i.+ это кrlloч /l,J4)'o6Pilщirя r]lirirlанrlс rlil все со06ценп'l коil. llrlJIятopa, нскoToрьle нап6o''tсc очеBliЛrrы с oru и6кr J oбн.rpу}intsaloтся ужe на э,l.оl1 ЭТаIlе. стoрoннис вepl.lфriirатoРЬ ко,Ia (liлt' smаtсh) еще r1oЩl{се li распoзнаIоT oш1l.'{li' с коТoрЬINtп тPaн(.JlяTopьl yжс нс сIIpaшяxlт(,l'
,Г('l1а' кoгда 4rУtll.ТссTпровaнnс нil мrtкpоyPoBrlс l\toi(lro счrIIil1.ь ilаIL(nlчсttньIll pа6o,|ac'Г пoд вссItl{ olr']Pа ll llия кoпiпxnjц]уc'Гся песl{o]]nl{]Jli]It{оN1Ili1'ц,]1'ораllп ltIlоннъlпrll сI.lс1.ei\JaмиlдJlя кoтoPьrх ol1а llРeдnазrrачсllа'
PЕгистPAцияoшиБoк (16ст0'IсЛьс'rB:l с6()Л rla. IlРоrrrc ilсего, зLldцк:lll)опaTЬ лрol.Рa\]Nv' 'll|пll.l|1ilЯ (]l|гуаJпlЯ] | l p ( ) г P а ] ! l ] \ l уЧ с Р с з l l P о ] 1 ) | l я . T Т с с . I L р o l l п l I l | { \lllого с.l,('к|l(\l ( ' Г r | P а I r ' ц я ю r Ч T ( ) 6 ь iTo'r,no. с , l T с с , L ! ) ] ссPl||{)'|с.ToR, llсllроiil(xllJЬ|с ')а:lРl|6отчl1l(у' 3:lваJIlть
x l l . Ц l l i | ( ) l } i r(])l l l l l 1 6 к У ] i l l с l J P i l L t l ! | 6 l l г | | ] l o y р i l l Р i 1 6 l Л " i l I i i i ' ) ' г l I ) r c с i l n l ь I с ' Г о с , l | r l I l P о . х ( ) д я ' Г у ( | | ( x I r l l l ) ] ^ , , ' о | l y , l ( с ] } с e I l t , P с , l L с " ' r n lr|l сl Р с l ф ] \ 1 l 1 l { , l l | | р ( ) | ]са 'дцP у Г r l ь l l ] к j l l о l l а . N|l1 ||-r .ц, Ltп)6Ьr :)l)Го
llo llроl|сх(,lIl.ц0'
1 l ( | | l ( ) ' l l Ь з у l . i ' гссl t с , r с N l l r | Y I l P a B Л с l I l l я
l ] с | х j l l я \ 1 I r .N. ' l i с l o ] i ( )Sl io L r к ] cs x , i ' l | ] l I l] ( Л l l ] I l с ( ) l l Ьс lVi is , С ] | i l . | : l ' Ц iгl с с 1 ' I r у с ' к , i ( ' Г ' l I i t д o ч | l Ь l ili] i l р | l а | | Tl | Р l ) f р а \ l I ' Ь | li l з а ' l . l ' ) i]l !t Ч l l ( ) I i t к , { с ( ) l l т r ! M I l 3 l l l L l l я_ ] n ) t s i l P l l . l lяr L T y l ( l Ll |' Л с ( | ) ( .П к n i l r о l . у ,lгl о ' ! } l l , | l , ( я] ] с ! ] . 4n|||llJЬljЬrii, ( J | Р l | в с l I l с с ' r | 1 с | l l l o ai iр l к l ) N { с T l t к o j i . o с L ) 6 с l r l ] о ] \ 1 l n хI l с ( D к l I l L i l r l l l Ь |l lхс с ' | : l х ' |)ll6()Tс , г ] ) a l | ( , ] t ' T o р ' ' I а l ц . с aм lЦoГpi]\l\1исT. lll)l.оPllздо И I l о ] ) l а I l э П J ] uI 1 l . | l t ( ) | l i L l с а l j Ь l \ 1 I 1к ( ) П а р | l Ь r l l l' tЛ J l , ] l ( ) 1 . сiяЛ ' r l i l l r i(l ) l I L ] l co' t r l I l 6 x l 1 , l I p o я l r " l l я l o x t l l сс яr o i i l l " , l ! ' I l I l ( ) i iс г е п с l l Ь l o в o p o я T l I о с - г I l ' , l L c l r , | , г ь с . ] 1 . ] t l ) t ) | ] )пrрl (о'гl P t l \ 1 I 1 l l | р ( ) х о j l l l ' Гn 0 р | |l0 о ' L l l д i t I I l l (|)l x д а L ' 1 ' 6 с зr ] ( Я к I t х в r t Д и N l l l х l r y l 1 l п . i I lЭ' j i , l i 1 ( ) т а I t N ] а J ] ь ] ] оa,: l i t , l . { : N оРсT. чro llll{ого llо 6ьIвaCT? N'Ilnпlrlа' дсскlтr'' nстoP]!]иIl1lpolrаlia' lJ сОlll }l(еJlеllo l 1 с ! | Р , l ] ] l I o ' ' Г6оa r Л l l 6 о е с T ь ' J l l l 6 o ! | с т ' A г а ' р l з 6 t , к а . ц п с Ь l N 1 ] r о l ' ol l{ ' Io . п п n r п P r l . ц o (Jф6Ьlii ,I{ellIrя Il ко'll уrlРilвЛяlolдI'lii ус,ГРоilсrваilll BпоЛа/вЬIIloдIr] ll(Doхдlllоl IiJJасс llсн()спропзвoll!t\lЬ]х оnIи6oк' riспoтoрьIс Л:I llrlх Nюгyт пpо'lв'ц'1.Ься -!ЛUlЬ Ра:l я llескoJЪ1{lr ЛсТ (I)' ]]oт Тllllи.r lыii пp'rr\lсP: I i ( ) { r n | х = 5 t . l e п ( s )si t r ] = ' f 2 ( ) { р r ] л t i (l s \ п ' . s )i )
s t х - 1 ]= 0 ; ]
//:O.0i ]
oД1Iн пoтоll NloдnфrllUIpyсT стРоку, а дPугoii вьrвoдrlтс{] l1аэкРarj' каl{oс.l1) вl)е \1я llpoгPal'lliа 6уjrеТ pа6oтaть lro;lмалъно' ttotia поток 1 нс llpеР!'.тсЯ в,t.o]. Ilo 11сx1.,I.огДa звсздoчrrа ухе yнпч1o,{1|Ла зaвсpllrающl'ii сl'\!вo'n нуrlя' a IlовьliilIуjlь сIrе llе 6ьl,1 допи(аll, .]]eгко дoказа1.ь'IIто сущссT!уlоT тaк о апIlapатIrъtс (оrl4,l1. ryрaц rl' нa кoтoрЬlх эта oши6кa rle пPoявllrся IlriкoIда (д.lя trTOгo дoстaroЧIlo в3ять оJltIoпPоцсссоР]lylo ilal]rинy' l.арaнтпpogаr rl ].ryспeвающ!'к) вЬIпо"lнI Гl.ьtsесь rrод фунIiции f1 за одпн квант)' Пo зaкoну rroцлoстп этоir rLзUiиrlоfi о6ычЛ() or(a
400
rлава 25' тeсгирoваниe пpограммнoгo oбесп.Чeния
зъlвае1ся t{ol'пЬloтеpтестIrpовщика' rl y ttсl.oвсе pабoтае,Г'A y пo"rъзоtrаTс'псIi падаст, LIro6ьi .lroка-lrЕoвaтЬolurl6ку, Paзра6oтчllкy ileдoстaтoчlto зпaтЬj чIo <пPог|аI1}lа vпа.пa>'нс06х0]1и}'oсoхPаrп]ть и зaтеll тцатcЛЬIrо ]lPoаIra.nпзlrPовaтьеe со. стoяrпrе llа lloмeri.Г o6pyшеtllrя. Ка]r пPавI{J]o,д,rя это].o nспonl'з)-стся arrаpuii. ныi'r д:lпlп ЛaпIяТlI.соi]дaвaellы'i утиJrlrтavll типa /loI{тоpа вarсo]ia (Rroдxт в шTaт]It]I]lкonxlЛl]Itтпостaв]or оrlсPaциoнlIоi.lсистe\лn), Uли' па хyдo]i ILоIlсц, зl]ачеlllle pe1.lrстРовпp'Jцсссoрa I{сollcP'{Il]vloсстскa.IlосIioJЬк\' tlс все оtlj16к!' Ilрlтвo,.lяTк авaPrdillоiuу заnеpII]enllюпpoЦ)аммЬr'Paзpaбoтчrrкдo.lжcr l за6.пat.oврel'еlllio rlPсдус]!IотРе'|Ьвoзllo)к]toсiь сo3да!lия ilаN|lloll саlv()сlo,lтс.!ьllo'- IIо нa,{aтпп сllсцЛа,]Ь]iоii tloм6иrrацull ллaвиш tr-цllпpи сp116ат ьrваrrrrr.r вllутpсrrнсй с]rстeмы xoнтp(]Jя'
к Че,'lyпpивoдятouJи6килроеlс|ирования при загрyзке сипемь peaлЬнЬ|ии да!|Ьl!и
БEтA-тEстиPoвAHиE .о6|,rr,..
r г o r m r r r n " B i ' | | | | | e \ | l l ] - , |П|.|. д ] , , U , ! , ' | I | ' l , l v ' I i l ' \ | | | | | | | \||],l'I n l l , ' . L J 4 т n . . l . i ' l U | | | l , j |п l l t д J , ь | ' t с J l J l з ' l l v , ] . . ' , l l ' | | | | ' | , ,| i l , | - , Г o , , ] е i , ' l , ' U o
гoвоPя'г: Л oс4'lIlTс зa кo\fпьlol.еP нсгрaм oтноro ч еJloвскаj пyсTь ДаrrlrT ]l ir всc кJIa. rrпlЛlr] lIлLа пРoгPаIlNIa не уtIaдст' Hу ilа' как 'Фl Tсстr!ювaнlrc пl!)lрlrtrJЬI Эт() сoPьезIl^я ollсPаrп]я' Il |a]rой ппollеPский пoдхoд здeсl, нcyNt."сtсx, [Iсо6х.)дl1r]о пРоBеритъ ILa'{/.ioедcj'iствIlе' Jra}кдЬlii пункт мепlo на всeх ,г]'llIах лalIllьlх и оlicрaцl,tii' 1lрoгPаllrv истoм 6eтa-тестсp моrкет и нс 6ьп'ь' нo кв:лиr]llrrtaциlo прсl. дв]l]ryтoro к'lЬзoвaтеля l.IlIсTь ()6язан,
ypoнив прo|рап{мv(и".1r1 дo6rIвпIи(Ьoт нee выдани нeвepньтхдarrньrх),6етa-тсс. Tсpдojrжe]l суNIeтьвоспPoизвссти с6oii''Го есTЬвьrявпть нaп6олее кopoпryrrl IrосЛедolaтeЛъl|.)стЬопеpацl1ii)пР]rво/:lящvюк оши6кe' A сДслать эTo oй кai{ пer1po. с T о l П o п р o 6 y l i . l r a в с r ] o i ! I ] ] I l т ьк' а к I i e к ' l l a в r l л I и 6 ш л r т п i L ж а т ь r I Ч т с l ? H с iтолучaстся?! l4сtlo.пьзyiiтe клавиaтlTtrше шпIlol1ъ],]Ia л].)6lrмхaкеРскlrlI саiile rtх нaва-'Ioi1,Пyстъпopа6отают uа6лaroпаpoда QIe вс'rнo же lrapoли пrlхищaтъ).
401 TTlпп.нптъ за \JrJI|i]'x) || l1pпxoдится сoхpанят} rle TоJIЬliо lто ' l || ' r ' , ' . ' , l l ' , j U ' ' | , o o J l | | |: r | | | ь ' 1 , I ' , , -, :Jto сnксЬ il ]\faст росPеrства (llo Tиllу Visua] Basiс'a в W.)Jrl), B 06щсlr. llышь jlаii, нopпIа.!ьныс 6сl а-,l.!i],ГepЬIо6ходятся слнoli к".]авIlатYpoii, Пo.цн!ri] rlРolо. xoЛ ]rа)tiаТu]i сoкpirllaет кpyг lIоиска oшп6lзl' Есс'ГJl сi)оi] vлaе.Гся по aсrгда u нс tsссIvl,
oд]rакo с llсPЕolo
!а]а B()сl]рorrз
B ПРоIlсссс Tссl.ttpoваll].IЯ пPl]хoj1llтся мноroILPатнo вьllJo'llнЯ'l.ьoдlIll ]L,|с ]кt oпe I] r tа'llуlo lloстitвкy Pацl]11,J,|{r Раir](pа'(neт' пеrrадс'кно ll ]1сl1pоnэ}rolLи].е.цl,lIo, \Iiпdоws 3,х яIonllrl rinrвLtа-г},Рнъпi пPоrtrpЬIваTсЛl,' lloзвonя].Лд11ii аl]'Гl)r!r, r iJtI Po]]aть та к,Iс1oпсраunп ' ТсItсрь){eсl'о lцЛlхoj(Ir'rcя лРпобPeтать отдeльпo, Bпpo. Чс\1l тaxуl(r у,|l'rllIГу Nlo'iпo linпIIсать п сапюсToятс]tl'llo, l] этоil rIo}]oгуТ ll)уlп{ iUl]' Filld\Yiпdo$ ll s.п(tМеssа8е, ,].ест|JPviiTc п P о г P l l } l } l r l I i ! r r ( ] c i iJ | l J l I е j j к е( ) т l е Р ; n l I l o I I ] I I nс хl l с т Р i \ l W i I r d o \ ' s 9 8 ' \ \ / i l r d o n , s2 0 0 0 W i D d o ц ' s 2 0 0 3 l r , Г ' д ' P : I j ' l l l l ' l j r я\ ] с ) ( , I l уl п r п | | |о I I rlю стa6lrльrю р r r б o L r r t r |' г| ( ' 1 o ] L ] l ( ) i(i ) с ъ ( ) .n o ) J ( с ' гп а д i l т Ь r ю л д ] ) у г о j ] ,o с о 6 с ' u 1 o {\]'llll ()llil ll(']ш'l)}],i(Jin JLучeii l{oIJ{)''ll]l{гYlолll lх lIрllno'.!llllii, Jlil/1,l0' (](.rlu:]lr) tiР|г п . l я l r p r л 1 l l м r r а t s а с l t 1 l у ] l l ( | l l I i lI l v T l i а | i ( ) n ь i n ) l } i l T с Jl'Jяо , к l ю | ' l i l l с х : l ] П , )i'ю c с J l i B а | l I nl р o l , ] ) i l 1 1 I I1i Lr 0) - ) l r l l l c T с я с п , I s o l ] i с с l r J I l |) L р v г | | N I lrll P о , ) l Y | i ' | i L I IкIp' у ] l I l l , l х l l ' | | I ) N l6' ] l 1 | , 6 Y д \ , TI l а с , j I | | ( o l . д а1 ] сr \ l ( ] ] l , l i i |кс о l l 4 ) и г Y p a I L l l l (()l ! ( ] , L \ ] r VIllЬl ll] n Л l o с с 0 .|.l)l]1ll 11t llllх)llilIll|,|l 6 . v Л с l .] . l ] Y д l t ( у) ( ] , | а | l ( ) l r l | 1Чl ,o' i i i , n , r , а | . х ( ) l l ) | l ; l ' |r | | 1 у к l l( V ] \ 4 W l l Г c , M i с П ) s ( ) 1\t/ ] г ( L l l l Р ( l ) ' l T i l o д l к ) M x о i t l I l ' | ! ) г с p ( ] l 1 J l P T v а - ( Ь l l ь rN. l r I l | | | | l ш ( jl ) l l i ] . l | Il |l l' ()i i l L { ) N l б l l l l а . 1 1 ( ' к | l (j)L с l ) ) i i | | l i)l Jl ( D | { с (п] n ] l l с р ( 1 l i i o I I ( ) ) t l L L r r о l I l |(Ь:llIl с| . ( ) N I l o i i ' ] | Р 1 It s ( } ] l | | l l к l I o н o | | ol пLtt t l l б l п lс t ш l r l я t t t t t с: t | с т с М I i J с г ] { o ( l о х P i ] I I lll. } l,l i r ) t { с с ' l ' . o з ' с I t о ' . r r , к rоr о - L 1 l с б v t r . t l я . r r r l r lд L r с к r l 'r 1 6 P l r l t t а l t r rl ь. l I r l l l v B I l о с ' l l 0 j t с 1 ' I l l l l | с I о ' ' l ь rрi а - l]cт' ч1o Лcjlать?l ll.IIя ]lr'L:lntl У Bix' Ilр()Гl'llIliln pа6(Лlс'J.! ll у Il()iЬ]r()Iril,l.(''ll,l с о б Р i U . J 'l l l t l l ) о p l { r l l l l l o о t t o t l q l l t г v P a ц r l I !с l . o к ( ) м l I Ь к r | o P t '( П а н e л Ь y п p а в л e н и я ' AдминисrpирoванЙe ' Управлeвиe кoМг]ьютepoi4' сведeHия o сиФeМе l!,1п утIl,1lIтЬI ell IrIсj'усTа 11овl IтЬ вxнoвl Irl кl 1 lкl l i\{пvтonl с х(rд\l l l(l у/lасГl'4slnfoЗ 2.exe ), It (r'к ся ' l,I o)lioТ' 'г.lN в Pу( с |lil rl] п вIre/L1]'|'еЛ Ь(:l'l]\'c,Г'I,lл LI ГJrю.ll l I rиlrоii npаji I]cP' нo' lll\ c,] ,lе.Iio,nЬкo oтчcl.oв oT PазJl'lч''Ь'х 'loJ]Ьll()вa'l.с,!еlll я |ll|х N|(),|tljolrьLяtl,'lть ll(,xс)ToPуx] з.Ll{()rIoлlсplJос1'ь,IiirпрпN{eр'пРогРаnlivа нс п/,ti]тlIатaIrоп' тo пPlrrrсс /Lрyraя ]rозNlo'lll:tя пPl]чI1на уТсчкa Pссуpсов, УГсчl{x tsoзI1llкаlоT в(якr1ii Ра]' кolila IlPо граllIj a з,I]OсTlI0 lle oсв06o)к/]аe,| Tо ' ч,iо постояпn0 зaпРаUлiвает, чаnlе !(сr.o lЦxl\oдll|(я с|il0кllвaTЬся с утечкaNil1 пil}1ятll] lIо ilпчyть Iiе хv'ir }'т|.ftaют перъя' кr1сTIr, файлоuьrе дeскprпlторьr.,, B o6щсil' пPаrr'пlчсск]] 'lю6ы0 с)6ЬскTЬr ' : , 6 ' | а l ' I l Р U | г v ! o : ' н l ' l ' | J , ' , R ' |, L|r C D ' , Т n . | | | р o вU | | h р " . ' 1 ,U s г R (осoб'jt]нo сс]'x у ltсfl) с1\)IlT оТрeзк]t lrреllснп' Wiпt|оivs N.l.,i2000/ХP' в кОтopoйресуPсЬr пpак'Гпчeскп нe oграllUчcrrъI ) ' t]o llрI1 <.,{nBoй' экплуаTaЦ]1Il у jl()ЛЬзoвa'|еjlей tloяв.llякЛ.ся oгрoI]Ilь|е пl)об-lе\!ьr. снa !.UIa ,!егlioe зa]!fеЛлеrше 6ьrстрoдсйствпя систсl]ьll зaтсil кoнкpстншс тO]r!озa] lleрехо,urцlе в ]l(rj]lыrl зalll1с. rl нaконеll pезет' соlipoвo,кnаe\jЬпJ IioJоритнЬIlj
402
глава25.тeсгирoвание пpoгpаммнoгo oбeспeчeния
oтjтаЛoЧII6tе 6x6,п oТекI{' пxoДяЦие! сoставiroмпплятoРаМiс|оsoftvisuа] С++' ЛсItioo6нaPvrioinаю.Г 6о-1Ьш111lствlr yтcчек паl!]яTlI, B сло'(нЬiх сJtучaЯхпРпxo. дитr:я пpп6стать к вepи4ткатоPaм
rioда плл ,1иllаNllгlсскIlпi аllrЦи:JaTоPаII напо'
д()6исNuМе8aBоulr.lsсhссLст, [Io вьrсптеri иrlставЦrlсйявляетсяэкс]lсpиllerIт. ЗaпуститеДиспeтчеpraдaчWiпdol's NT I'IпeкоropoсвpeмЯпoPa6oTайте с тес 'Г]1pyсlloilпpoгРаrvмoli,Bклaд]rагlpoцeссьотo6paжасттекyLцис сvствптпrдe сl{PllxтoPoв,разпlеpвьI/le'rlеltltoii x lятIr1rт. ]1']lо }'мo.пчаппIo ur{ДllЬt 'lиlxь нс ].oTopьIс из I'пх' зaЙдl]Tе в мсl1ю Bид ' BьlбpaтЬ ст0л6цы п взnеЛпTс всс гаjтoчк1r, Если какoii.то счетчик r lcyкnoн}ro J.ве.rrпчrlRае| (xxх] значеЛrJe посЛс нсxoтoPьIх ollеPац]1ir' этo yTечiLa.
pa6оrtх:посo6ностп пpогpаltrlri в yсxoвI'Iях lllя trсслeдозaппя каТaсTPoфичсскofi нехваткrlрeсYPсots0tаill'I'гJI! N4irтоsоIlвк,.rю.rlrлaв дискorrогoIr])ос,|Plrнствa) со став P]atk)rпrsDI(yт]r'rпTv stг€ s s'eхе' (:rtа6дI1в сс Irкопкrliir.aпuуloш1сго пriltrllr тa, I{оPРeкlllo сllPoсктl{poвапllоr гJрпrl0)к0]r]lс ]iоЛлolо в]'Dкtlвilть Iцlrr лк16ьrх o6стoятеJIьсTвах, o6nollаЛII с Bьl]'(е,ll(JlЛс]\l ]ta]!UП.иllз кучjl? lIq]схоnrtтc rlа Pс з с P в J t Ь | i i l l с | o Ч ! l l t к ( с т c к ' с e к l I l l я д : L l l | | Ь l х ) o' ( в 0 6 o л п ] е в с с | l l r l r у l n r o e l I I o J J J o 6ой цепoi,i сохР1lIi|П.с rсс ]1аняьre| всrгда сoхРаll,li'it.с flрlI сT;tp'Гс |Lрol.рnNlпIьIlllг (|lpо Jnllас', a lJо'гo:'l llсlIoJl)зYI.Jтс llllillа.цЬI]o Ileoбхо/lll\'о(l l(OЛttчсс1.]]oIlа]!1я.Г|I сго как lIl], то '(e саN|()(]()tl()сll (Ll It к /.1псI(о]]()lrу|цnюTрапсTuy,
_ oсновнoйинсгpумeнт Kлавиaryрa 6eта.тесrерa
BЬlBoддиAгнoстичEскoЙиHФoPмAции Самoe стpаlпlloe _ кorда пРoгpal!мa Леo:rtlцаннo деr.Iаeтиз o6ра6lTывaсмriх чисe-li <]впIleIpеT',сoвepшенIro пeпоIIяT]lo]Itтo в этoм в]11]o!ат1t oтt{yда нaдo
40з
вьLвoддиагнобической инфOрмaции
плясaть, oши6ка в o]ll](,ii d,yпIilIliп lIожет aуrlaтЬся в сoверlIIe]rЕo пoстOPoнних i]llllкal. не свя3аti]lЬrх с llеii уестax. ул:rp пo allfятl'l' пскa)l{еfiиe r"to6алъ]lьIх l1сpcNIсI{нЬrхиJr]t (i)'цnГoв(со)прoцессop:t,., Здeсьдаlfп },Jriснe поNIoгает, Зaстьlв. ]IIа'I каpтllltа ста!11ч]tоl.o с"!еnl{a пa\lятп irе oбЪ rrие даяньiх) в l{aкolr )rссTе tt в ка1.()евре}lя оIlo rlpоr]зопlЛ(l.
вPспrснноввсДрякlтся<.тe,llлялокaппзiцпп таких ошп6oкв llpor.pаlrlrузa6.'tаr,о ЛеNlсTpllчeск,те> ]\{exа1]пЗпfьI/lJIЯ Iснср:1цxI1 дxaгнoсTIJчесIiс]ii пнфopмации, B ' L с а . , c ' . | . ' . " d o . ' l , | ] | l l , | , ' , | | l ' . п , | , i 1 , | р . | п ] ' l ] , P , ,| ' l ' с Р \ | Ь e | l . г 1 ' i м l ] ' l r ] l ] Ь l eк о N l а l i д Ь II r с ] ] е i u l a : l Ь l I O N6Iv ( l е Р е , C о 6 с т в е r I н о г o . вopЯ, У]ft-iсе !i Рс)кn[le 1)6Pатllo'i тPассr]Рouitll (Ьaсk Lrасс) имeннo так и пoсту. IIасT' ]юзвоJtяя lIaм прoкРYчпl]аTЬ пPorPaм lу зllдoпi папсpсд, ЭТо чудotjищr]o j'I{соflo тop}lозlIт] IlсIусшвo ДЛarнoсTики как paз уllPoщаcT ()1r|4lll(у, по.,, кaк 'I'ом1чт06ЬI oT06раТЬ мl'l}ll1мJNl вilxtl]сiiltulх ]IаPаitс,|Рoв' dnlк]lr1)уlo. l.l сoс'кЛr,г I] l I l l i ' o , . . I U . , | | , , . r t, i ' , | l I l ' l ' . | ,l , | , ; t r | ' ' , I | '' , . ' , I ' . , : | 1 ' l . l , l р Л o п i l Te-!ьнoсть вЬlllo.]]IlясIrllх (|]уllкцlL,L в]\(\]1.o(: ]]Lрl'y]']cIr|алl||. ч a l i I е u с с г o д Л я э т o i i ц с n ] l l 1 с J l ( r " . , Ь з у с ] .](l L) ]l l r ] l I i l n l l l Ь l if,рi г i n t f д , r l Яl l а I ] и С l lD ф a i i л r|Л!l 5уs]ogдnЯ заlrI{сI'lв сIlО.смllЬrii nivPllllц (в Will(lows N.l,]' t o oсуrцcс'].rJDlеlся п o с P е д с T в о l l l R ь I з о п a A P I { D Y н к l l | l l l R е р o г t Е v e n ' : ' I r с l l с l р Т , l P у с м o i i6 и 6 Л r l o T e к о i i ADVAPIз2,DLL), lillчиitаlollllI.] iLoljvсlt,tкл l pубу]о olIlrlfu{у' вкntoчil, дllаг!lш]'].lD(у П ' | Ь к о D о ] J I 1 r д o Ч l l v IB o с P ( l l l o I I Y д l l ' l l n ' ] l l з 4 ) ] l l ! l ! l l ' J r ( ) i il .] l 1 ю l , l l t Т l l к l | с l I o с ' Г у # ] г d 0 1- D [ в U 0 lpгrlil(il09'
']is
.' l i i r - l 0 e l t r ] L J- l i 0 8 r h \ l
|:L,|
.Ill
,a b)
1]o\lJlll'|с ] Iр]/тr(овa: <3aчeM тс6с сo-!rIrlo, ILo|д:l д|tсм tt 60з Iiсrо с}r0uо?' I(oIд.t laкaя lIPoIРaNjlia у||.l.l(.'Гу ]loJпrзollдте"Ця'n рукilх пРoГPil\lМrlсTa 'lс oкa'{с'гся !IиIrакoii ]LlrnгlloсгLlчесIФii |Л|(ю]]ital0]]l' llxlolцсii \оTЬ lilкyro.то зацeп]ty' Таl. I]oс 1 . у l l а T Ьn l o ) к 1 l 0 l l { )l ] с l | у , ( l l l ) : '15 i. а . l08lr: b .108хn\n ]:lLЕ_ _L]NЕ a Ь) l i ( L ] Е t s U) Gl р . ] n t f ( f l O ! ' Е('..lи с6oii lloвl.i)ряется РегYЛярllo' пo.nLзовaтсJ|Ь смо}ltс-r взв.стrl фЛа)r(oк DEBUG rl IL.Лда оlllt упадoт в с.псllуloщIlil pаз, IrсPсllас'г IIРo. rr lllсТpoii rах ]ц](l]]Ра]\{]\1ьI' r.Рамм и с1.удnаtI loстllчесlo пl п Po'гоlФl ' сс''Il] ' l(о tlcч но rrс I]сPсI]с-l.I]с1.('ll{ ко1tltу. PсxТtLм,Ill!,1.ка,
-rlu.l: Ho пР;lrlltЛьньlii вaрlIaнт вьIrлЯдI lт j f ( 2 * 2 = =4 ] f р г i i t i ( f ] o g 15 вd d - !03rhi ]r = {08ll\|l '
Г]LЕ '
LlNЕ
i]'b)|
гi)а\ФTrrо оTо6Рalrная теЛсмeтрлчсс(aя ]'itфoPllацl1я or.н11IlаcI сoвс]еi] llемlloгo мссТaи дoJ]жIta пpoтоlсо"lтпРoватЪся d.e,аa ( естествеIiн o' зa Рaзуерoм .lioг.фaiij1а неo6хoдимотщатсльнсl с,llсll}lTlJ]"l]yчl[евсеIоl есЛ]l оIl6JЦeт oРr.aппзonаrr гIо прl,lн ис]loJьзуюT фyrIкцrlю ципу коЛьцeвоro 6yфepa), нскоТоPЬlc''роrPамI{llсГш OutputDeЬugstгjng' пoсьl"rlаrощy1о отладoчrJyio ]1нфоP]taцIIю нa оTЛадчиlt, B eго оTсyтс'ГrrI{е llo'(пo вoспoЛьзoватъс' утЛЛIIтoii ]\'laPка PуссиновIlчa DrЬlrsVjеW илп аiraлогIrчIrоri eir' Bпpoчем' пolьзьI oт тal{огo рсlrсrrr,Jя всe pавнo неlllнoгo, Этo тoт жe лoI' включaelrъпli по тpс6oванию' a зalllсr' Лorа дoл}лна 6ЬITr' вкЛ!o.
404
глава 25' теФиooBaниeлDогDaммнoгooбeспeчения
oспoв lrоii r]сдoстaтoк fprintf B тorf' чтo прJl аваPиiil]опIзаверпIеrl tr пР0гpа!slьl часть тслcrшстричeсrtоiirlнфорvаl(lllt !сo6РаТi!llo теPяется (бy(DеpaвсдЬ oстa. JI11сь нc с6PoпJеtIпьlпlD. Еслп яe ltх с6plсr'IвaтЬ lтoстояпlIоl сI{0рoсТьtsrlnlo.rrrre. l|||Я|oo'l'1!\|
З't,,'ttь:ltр"r-т,rп|l,llЬpсl'.,l|'уvjo
o6ласть памятп, а пpll иrlзtttrrсtroвr:нпrr с6oя соxpallяiiте в фаiirlс ]lPoTокo.]ra'lз пaPaлл€ л ьlroго пPоцeссa,.Гart 6улут rl волIrи сьrть]'Л oвцЬ, цсJ!}l'
A мЬl гlo l.llпAлAtvl... 1lоrtсх orппriок пе пpекpaпI.lel(|яtrl1кolда|Д.l'rr кoгЛa пl0дv(т умllРаст' rrакrIе
тo сlo кo]\fl]оIlсп,гьI r'с]1oJ],iзуlrтся в сЛеЛvlопll]х всРсlu]хl rI в них вьlлсз:lк'Г lIo' в l ' l с 6 а г I l ( ) I | п l б к п r i l l . ' к { ] 1 l с l l с ч с P Л a с м Ь r '] ( а к I l a l o N l ! o н Л o 6 р a з у ю т т о Л с 1 l , l i i | | | | i i . . o I o,l | | i Г - ' r l | ' | 'I v | , Ч | | j . п ' | ' | |, ||ill ,, ствo стРогo lIliс'Ц)()|1)JilIlPсЦnст тРoraть. :,To lJо)olo сРаBllljть с пРllт]IlЛФii Ilс. хtlIlи:rNii, Пo моРс сBoсГ() в.t]x)с"!сlrll'l NoдуЛlI IrссЛа,1Ь|l с |] ilill'lЬU1сvхоr.l,|тoT I|сp 'Ii'L)qrl' вol!а,lr,ь|lЬiх (ЛcцlIdnJlirl]пlii. ч r o 6 ь I I l а п r r с a т ь с r l в м t ' с : 1 и 1 1 т lф оvIlкlltIi()' l l е ( ) б х o / : l l | п j o ' г П l i t l . с . ' l ь l ] o п P o i l I]l ;r lпЛl ) о в i t т Ь л с х . ' r l п , i i j к o д < r r ' i I p у ш к П ' ' a О с т о я I I l | ( )J J o \ l i l яг o J i r B Y I l а д в o l I p o с l l м l | :( : ) R ) 6 t L i . l t j j l 'l l . а ( : l l l ( v r u ^ ] | о ?(' ) с r ] о I t п 0 оп P а в l I J J о Р а : ] р а б (|)' l I t x i t Г . Ц i l ( , l ' r ] I l1с. j х )tl l i i T о Г 0 ' . i ' | o I l r r u t р а 6 o т а o т ' З а б i l i r l l t l ' l r l ) l l | к ) l ' t ( , ( | ) l l l ) ^ 0rn| р с д J к Л | | l l a x ' Г< / l ( ) L t 1 ш l c t I ' г t ч х l в a ,ort' rl ,l t>t 6 к l r 'э I к l t r o ' ; i t яr I a l r х л с l r р а п , u о t t u r tl . б l l з c ] i I l I lJ и j i ] l n l I P v к o | n ' : ( с 1 п с| ю ] | Ь з оB n ]c ' ц ' li l I } , t o l l , | T с г . lIO i]iшnjlЯ01'с': r'l.vда х();l1lI'Гь l{{jllа,цo] к,|о llс lIос'rl!|llil'1ся - (:аAl JJl||'|оll:]1',]}o3' r|0жIк)с'Гlljl('Гoрl||(',Га|(llilc\lдll,]]0(Ь0'].Jl,l,(Ir|Ь,l ] l Л l I t l i ] l ) я T ь lI l р ( ) . ] . oп { ]/ L ( ) ] { у I l u ] T I l l ) v n ) T сB, сl ,с л l t l t r r r , l r ь з у l о - t '(яu I L с 6 ь l I ( ' n N I t l я n в I { } ' ( I l O с , | l l,l> p o д ] 1 l { , |(l]l х : P o / l о 1 ! Ч o r l l l lI r \ ] с | п I о : ' к { Ь ) ' у B с с x l ] с t t { i д a e 1 'I J t )] l | l к To l]с Il()х0,| lQl]rtъ'3ltl]' прdгc||з|||() . l]q]Ь |l]ЛФ11\l||l,|.|сгoll tIо o6сlllа.,IIr, 'Гlrк vтrl тссшцlrлrarrrrо IIPогр;rNlNi]lol.()06ссrlсчonnя этl) Ilс ТоnLкo llJl'rollсl)l!я. гl',t|}(|,Iv||,,', ]n|,I11, l ' v l ] ' ' I l | | . | в ' r , | , l I i ' || , ' I U , ' i i IIpaвllльll() сГl)
BЕPиФикAтoPЬlкoдA я3ЬlкoB cИlс++ сaм ЬriJпpостoii всpxфикaтop это утrrлштаliпt' зходяI]Iaяв llrTaтньIIiкollп.текT пoс'Гaвкl16()'llЬlxш{ства Iонпliсов, Ее возмoжнoспr сllJьIIо or.раlrI{чerrЬI' а вepсrlя лля Wiлdows pаспрoстPaняе'Гсятоjlьl{о нa коl{l'epчес](o. oснoвc' liлt'у - oтrtpштьпirцоект сLINT,РaспPoстpaпяющlliiся Лoстoiillltя а.1ЬтеРIrативa в tlсхoдIlьIх тrксTax. кот.rрЬit l{o,l{носкачатЪ с сер1rсPaсoo6п{eс'Гвa
405
оши60кнaколления демонсгpациЯ t1Рo]1yl{Т'pасltpосTраняlolцllljiся
в исх()l0]ьIх IексTах Itа некoмIrеPческorl
oснosr
и у)кес(ollltиJrирoвatxtыiir1oдWiпdolvs' Liпuх' solатis и ггссtssD (сLINT lo. с]'aя-ця".,Гс'lToJli'.о ! l1схoДjInIх тeкс'Гах' с кo'Г(]рьl]\IиeD{e пPеl1сTottT ]]овoзl1TЬся ),
net/)lIредстaвЛяеT ав. s.лatсh с sоUrсeсheсker (http://smatсh,50Urсeforge, с()6()й ,ГorLа1.!1чсскlri'iа11a.lIt3aTop исхoдII{]гo коДa дЛя tIахо'.дсl1ия Tиl1o!ых ol]rибок (уГCчск naмЯтll' llсPсЛoxнсflllji 6уфсра' nаpaзитн,!r NULL.yказатсJrcii и т, д,)' сoздaннъIii в pамIiах пPоrкта пo вь]явлCнnЮ oши60lt в Linuх.ядре. PaспPoстРaIIяeтсЯ 9 виде пaтllеii к gсс коп{пUлятоpу ll Ilа6oPа Рeгl.скрllптoв lI"чЯ aпа.
rке Мetа'l,еvеl соlЦ)jllt]on совсpLr]еllll() Л|lоii ll()jlхoд llсповeлvет мLс'.,ll ( | ' \ | | | | ' 1 . . , " г r \ , ' , , , , | \ i ' ' ч | | ч ) , ' Л , | | ' , l l l l, |у|]ini |I | l ! , , l l : l \ l \ l у ь , | г о У c ) к у ] ' r | | | l(, n| 'л |.lза сцс,l lL()с1'у]lа к абс ГРaI.ГIio]!1yсi]llтаксIr]lескoпrу деPеl]y o6l|а1)y'{IJllaJпциr,i 1.1)YЛ]lоуrIoIllli{Ьieo|пll6кlr, nРoпvrllепlIъI€ остaльIlь1lIи D€ р ифr,IкaтopаNпl (http|/ /гietасomp'siаnloгd'edu/), PазР:r6oтчиItи yтясp)ItдaIoтl чтo с п1]l!1oпlъюпIетaкoNl. пll.!'lтoРa Л vлаЛoсЬ uь]ЯulrтЬ свЬппс 500 L)лrl160( в PсаЛь]Io сy]цсствтlоll]jIх сlIс'Гeп{ахl TаrLlIх каrr LinLlx, oPсЛ BsD' Хok' stanfoгd гLAsн ll дР, B llастoя. lll€ е IIPеI1я NI]-с !aспрoстрalJЯется в вllле 6сспЛатI{0гo liоп{пилятора хвсс| 6a. JlIpук'Лсгoся Itn (;NU с) lr 8спoi\{oгaте,!ьlioго ].РallсJl,lтоl)il nletalлnЯ сo3Лaппя
БагинaдoyдалятЬ, пoкa0ви малe|ькиe
дЕМoHстPAция ollJиБoк HAкoплEHия oчeпь .]сToР{l)к}lо. Peсс]\1oт С вcщссТtsсннoil аpифruе1икoй сЛ(Цу..т.)6])nnIaTъся сЛl]дvroщtII'I пpllмсp: PIIl! rn|а |lOatХ х=0i f o Г ( a . 0 : а < ] 0 а + +r)i - 0 ' ' / . ПoпPо6yi1те vгatать, чтo lIo'1yчитсЯ в pсзynЬтaTе? Дес'TЬ Pаз llo 0,7 6}''teT,.,7, lцасI Pа3бе'uшисЪl этoгo tlап{Ilиктo нe rаpaнтиPoвall| Маши11l1oсllpеllстав"lell1lеч,Iс.lla0 '7 fiе явtrrяетсятoчнori дpo6Ью Ir 6.1!lжск 0' 6999,,,MнoгoкpаТl lьlr сIo. '{eния пPllвoдят к liакoплсIrию шol.pсlxltoсТиtsr'lч'с]lеll]1ii'x llР{)I.pаllliа'oTтtоl!г
406
rлава 25' тeсrиpoBание пpогpаммного o6eс.ечения
rlи,llиPoвaппаяIioмlll'lJ]ятoРorf]VIiсIоsoftvisLlаlс]++ 6,0 с rraстpoйкамr1поyпloл чaнI'ilо'дae1.6|999999'oптI,iIlизrlPовaнньiii вnp!1ант(1tJrI.Лt /0х) вoзвращaeт пРавIr"!ъIIЬ]ii рсзvJrьтат 7,000000, в чеll )ке,lсJrо? Зal"'rянсll вдпзассev5;rсpнъrri кoл (та6л, 25.r1, та6лица 25'1. Дизaссeм6лePньй кoдрaссмaтриваемoгo примeрас кoммеHтaDиями
movеах, ta] в рeгиФрЕAx перемeNNую а ; грyзим
oптимизиpoваннь'йваpиaнт flddsr_rea@4@000000000000000 0,7на вершивY оека сопpа i затаЛкИваeм
EAх lа единицy ' увeлиЧиваеМ movtа],еaх j O6Hoвляeи сoдepжИмoe пеpeменнoй а
3 pегистрEAx Числo10 ; загрy'(aeм ос.вlfаddds:_reа|@8@зtrеbззззззз3 сoдеpжиМoe вершины i складЬ|ваем с0l7
нeoптимизl,|poванный ваPиант
пepeменнYю ас 10 , сравниваем jgeshоt loс зз i f (а >: 10)goto|oс-зз fdtх] ,на вершинyОeка сolrра i заталкиваем iаdddsI leа@8@зffrb3зззззз3зз сoдepжиЬloе вepшинЬс0.7 ; сKпадывaeм fstрLxl rrолyченвыЙ в,l, i выталкивае,4 резYЛЬтат jmpshоrtloс-16
, if (e.х |=0) gоto fstр[х]
; вьlталкив0емсoдср'<имoевepшинЬ]в,
з00 254 2о0 150 100 50 0 з t1
3l 18
25
1в
4/ 15
4122
ДaЙ Pис' 25.1. снacаЛаскopoоЬo6наpухения oшибoкнаpаоаeт. азатем,дoбиarувHасЬ|щениЯ, схoдитна Heт Аr.аl неoпт NI!3rlPoвaяIrЬI':i вaPЛaпт, вЬnloJнrlI] сло)кeflие вeпIествe]]нo1.o ч]'lс. лa 0'7 r: пеpеllсннoii.т' ltа'кдЬrii Pllз вьIIрухаe] в нсс теltvlllее з aчс}iЛс вьlllисЛeнпil' чTo и пPl'IвоДr{тт. IlnкoпJlсн]1юпогРе1x]loсТIr.oпTllNi'lзllрованrrЪrii вil.
чаоo впpеЧающиeсqoши6ьи t
407
рпатr'г зaгрyл(аеT пepемeнI{),юxтlJпа f]oаt пa rrepппЛry стeка сопpoцeссоpa (гДе она fuаronoxучнo lРс()6разус к:я ! double). дсс''J ь pаз ск.Ilадьrваст сс с 0'7, вьI. та'rltивая пorr].чeнньпi PeзyrrьTат в Jl l{oгда всс pасчстьI ],}Jlеза]{оJrч€ J ]ът, oтсю.Ijp:r''о.Io' п o ч P д P | , | |o, п l | | \ | | l . ' | р o P ]rl o n ' ' n . о | | | \ | y | | lo u l . | | ' l о "в P p ' I l i AтепePъ пPедстaвпrf' что пеpe\lеlll lая -l:r]спonъзreтся I{аi{счетчпI{ Циl{.lа, допy. сTип{l пРoгPa]!п1]1сTOlIlи6ся ll вмссТo х < 70 }rаllllса'ц Х <69. oДна()!1ll6кa к0N1IIe)г сt1PyсTся дрУro]il l1 xРL)IpilNlIlа 6yдет раб()1aTъ Лрaв,IJIь1Iоl II0'.. стoIlT ilспPaвIrть | | , U |' ' r ] ' | | | ' | ' , ' ' | Ю 6 | , , | Г , ' o | | , O l ' | \ ' l , l , r , | , '| , в . ' ] ' ] - s ' ' l | ' , П o L \ . , o о1]]а;ксlt]j1)lii]iод, кo1\)рь|jil)а60rllеT' хoтя |ia лeplrЬIji пЗпяjl lI iiе ДоЛ)xеll, oснoв. ное пPanr]лo тестиPoвIЦIп{a гласxт: lIсIrрав,llсtl11сoдноii llзвсстl1оii olrrll6l{l1 ttрllllо/(lrт к floявJс|пllo ]]есяти tlо]]ьI]i' l]пlс }JоlIз]lсстrlъ]ri,oтск,.lа: чспl 6oЛь1Uс оши. 6 o к l r ь r t r с r r p а в ' ' t я с l t . T с s J l . L х. n r ' ц Ь ] l | с ЭTo хоl)o]llо со].Jaсyeтся с гPaфIIlroNI завJlс]iilJoстш колlгrссrяa о6на1lуllсtItl}lх оlrlJr6oк оl.llPс11сttl1 Ti)сTll' Р о n a l I r I я 'п Р l l l l с л е I l I J Ь r NIll x l п I г с ! T г t l d i l i o n I l l s о I t \ \ , . 1 Г с .сls t i l l 8 i s . l I l а i ] L l r с I ' J l и н .
дll п.lа4,сp(l,rп(lnshlrlс0 (l'r.. 25'] ).
чAстo BстPЕчAющиЕся olшиБки I .
ollIl16(II]Jхроl!|oсоIlilx()кру'ill|()lILrrх: _ |Qu|оi $%t эnюв|:е|J||о."|l||lцоaа!?! .}|l',эnЮ|ibl'ю3 j||,|1IxlзIi),uma}n |l(|,1oв0i 5 !1е|nк|1l|ц|оnlL|О!!]эJс(| '' Кulкl'мц $i,i' $ tовtltllt]| Ix|I|11l1ln]lnь nю' чnh 6ьl!]о.11рое^]nuрaaо||о?! ] [uКпo ]k' з}1{r0||, u.]aо6щ l1r бьLю nРое, u,iцас prl6шоюпt в dpuаt't пtu- Ка]сoti$%$n эn]o коauРова1.?! Воп aI' сud1uпpя|)о,lL't:tlЙ,tttс1'еlнuuеr:он l|uЙАpru]]1ек]nор'pu|:ц|:ltt llnфnrпttа u npопtlрае]n ulЙа]]ьl,о n]o вpе!11я пpaс|nоlJцunся ]1Рoц|l'l|'l]ll Роваn ь. L]]nоЗа # !l !i%?! Bцеpa вuэ TРое $%# n сосеоt!u:|?nшюв ра6urnlо! pеtttu.ltuumo.mo uLo6ruu|tЮ nо-u|,0]nъв lов|ah nuu l:|lо nе'''lь! . 'ItaКoй
#$#% эlll) fu1111Ровa1.? 'I.1:' э]na ]ndo6ыrо вцсpа? (вoсl.:'|uц.l! nuе РunIоPuц|:||:]сa.! )' .
o!rибкилoNlrlr1JяIoрa: lня uс,|lo:tьзо|]а|]1ь 2'jl1oкавьLi Чmo За i $% засmо|JrяепLL завnф{]u111е.о кaмnL\яmоР ltJupмьl 1\,I?! tl'v, эtna zlo6utьltoе l|олumlДесКaеpе|1|енuена цpoвне СIlo?|
о
oпrlr6ки дсбaггерa:
408 .
главa25.тeсlирoваsие пpoгPаммlgro Фспечения
Оши6ки lnte8ration: Чtпoза $$%?%?!B,lеptlвсеpа6oпало!_ 9 uvОаковuз 4 сосеaнuхпLнaв 3ац.|!-7na?ешujlu сьltnnе2pu|]оI]n1nь все вJraс|т|е в пвoii npоекmныii6pанц, пцtt.Lемнезавuсштtо dpуz ollt ifutа ' $ $%.|'%!!' не 6ейmепеlLя, я 6olиutене 6цdц.(Эmo nъ!?е1цu!сnLн||1с.pu-
?oвa nп,.:вou uзj|Iенен uя -) Пpосто rlши6кtl llprrpoдьl:
I{оxоn ?$?# |азj|t!о1f,ulL 20 сnlючех't0 p|Lзв 30 фаЙлах,paз за6uв пo'tкц с 3аnяn]оnILсxo61|ц?! ' Аtа' эпa 6uл шLОltlllауmс(ryсеP'ox l1Рo?Ра]anЦJс|n uз.1lо6]]енн1,l'\ нluliс liu.\|.4tспюоaм сut п 1)an,е,ц 1lе?oвсeJro|oшa,oн aаrcКa |l 3наеm' \mo Йьl аa trc aoс]1l|11!еlx1,' orIпIбкll liпс-mаfl agспспt'a: - lQtкozО i $iz $9| вь! ]Ю,м]1ел|1!1nаФnс сО свoеij сu)n|\|R)li цчe|na Ра6aце?.о в|(jlц11l.1!У.\.,l'1 1|е,Yllаnаrп 10 ,|lil.ЙсеtiцtЙ a Ра6оц.jil l!а.rj]с' u aаш Ла. 1'r1o?Ik,цnx|u|nl, aсa эапuсu ]|а|еp d1l}xx.|n,цnxJя ]nосl|l|lhli|t]|,olцJlь|Il,uк?
1|а3,ц|x.яца ]юзаa?!
ДмитриЙЛ6Х|iв
ЧAсTo BстPЕЧAющиEся oшиБки II l , l i a Г l l 8 , ] l l l l ( с o 1 ) o I l l t l r хр а з р a 6 о r " t r t к o t r ' 2 , ] . , I с l r c J l i | ! p l ' ь l кi lа с т Л ] i l . , 3' II,,,lll r l',l o!сllWаtсо II).кo Nllll IJ]яT(Ц)a, ,1, зlк,]]ir,LыlrаrlIiе lla 0со6сrlrкх:тrI сlIлтакспсlr r{(nIкP0TIIьIхкoм)lrlJl,lToPoв (6аГ. Jl.ltiд)' 5
Заlr]laдьlвallиe Jаuд),
IIa ос()6еuнo('l.ll Tай\|ll]rг()Ir кotlкPсTнЬlх
6, гPязньrfiкo/I'lreкoшrилlрvюпрrtiсяс.W.ri].w }']рп(Л]кaToPамl,l.
кoNlпиnя1oPoв
(6^г-
stгi.t.l)I()totvPesrt прoч1rмlt
7' Helrпицrtiurr.rзlrрoвaнII])lе YI.iзaTсJ1l1, B' Лoгlrчссклс oirrи6ки'Г,lпa <снaчaJlilвкл11ЛJIlTь ]ttс.llсзoIt тoJькo IIrl'r.ol1нaстрo 9
lloчсNIу сoф,г-айс пa"lаеТxpи пoпьlтк€ t.l!|l,lцui'rизацIrп
10' Iloчсruу с]16 Ilе пoIlиN{aеT32.раэРялпьтeРеrl]стРы? 11' ltaкoli Irдиот гепeРит tI]с-|Pvкцип 'ГипаDs:movаx'bx?| 12. Кaк;-з r]lylrсrrияrl пoнепryтадrlт в тa6лпцv преpьrваrrийпo aДресy 00;08? l3. Пovеrrу в канествe ДoIryмel]тaцuиtt этo]\'YчyДv 'llс)lrитN{аII пa hсi/1з94,а не I l ao t l с I / u s b ? l
409
(иФoЧвикнeизвeсreн) тpудoвЬ e бyднилрoгpаммистa
I d , к a к a Я с в o л o ч ъI ] а l I l с : L nian t 1 6 а ; u i n t 8 f d r * b i b - & ( ( i п t n e а r * ) а ) ; ? l 15' ктo сItазал' чтo :]Toт6Лoir.ijФ]orrьфaвнuватъ пa паРaIPаф] а тrе миlolN1Ум ]lа 256 6aiП?! 16. IIoчсi{у ]toд lr:Jп' 14 Tа]rиР:.;oтaeTIIа нскoтoPъit iJinlllнaх? гlикитастарцев
тPyдoвЬlЕ БyдH и п PoГРAlvtl'lистA
(истoчник HЕизBEстЕH)
.il to6oil pyсскII ii llроrРa]\J]\II'Iст пor'Jle паpll it IIпvr v'r.r:l rtr.якодa о6яз;rlсл ьнo вслo ч}t'Гll xРoиз}rсс€ r .' o6Рalцl],tсь rr сс6е: пеPеttltсaтЬэTo Bсe lIа(xIг,IIoтоN|в нсM Urс. веj]Ьl]сTся сorlноrПе I] тoNl, скоЛъкo Ilремеltt'l этo зaiiift'T, t,l остатoк Л||'l ])yс.:lo'lii пPolpaммl'сT llo'грn'Гl{Т uа r.o. Чrl 6r'дет Лrл<а:lЬlвa'гьсaпrollу сс6с, тго il,l.tl'tll.ltькo I{a,{етсяl чl.o ]Icpсllисa,I'ь это lrrror.о pa6oтl,r' А сслll n3яl.liсrr 1l noспile'Гl) ,к]]\lнo. гс]l 10 ll(:c llo"(уч,l1.сЯ, l]а'Гo l(o]l 6vдст кPасr!8tnii Il rlPаBЛЛЬ}ll,lii. ]-Itl сne/iуl()щcс yтl)o русс(xil ll PoгРaм ll Itст с вc)i' дo поЛ с It {joбoil Il б03 с,Lиl ю ii зalUj ll IсIt ]Lo|с,lацьг I l : t C | , ] | а ч a J l Ь с т вЧy ,' J . (Л)( ' P c l | , ' l с ; t l э. ь, Г o ' |J ( y ( о к з a l i l I с , r o / l | | l I д с l l Ь ' I I c 6 ( ) n Ь | I | с ' / l a ' I l с 6o.'lьIllc. [1Y' в l.Раii|'olj сJIyчilс' ]llli, eс.ljI yч('c1.Ь Rсс l) сl(|I, B rl1oГ0 |l;rч:UIЬс1.lю /l(aсгсillv пLцс.ll I()]lI чсРсз I lojl гоЛa l lPol l(rl(. будс'].Yсl|c lll II()зil вcРIllcl i lI() Тoji lloрЬl ' IIoItа э,|oт ко]1 l|0 vl] |l,lil]'Гдрy|.оii РyссILиii ilрогрaNtмIк|T' A в этo пРс]ия в с()сeдlx!х чс1.t'рcх ку6|lк;lх буд(]TJlll lIa сскvI{](Y l|с v,гIlхal.|Jрa6o1.a к!lТаtl(кltх l фoгрilNl]\!riс1.oв,llci остl Dкиr\lь]]voбl)iЛ()M yN|)7Ф'xollt!|хся l|РIlihrt PalIl. l]|с Ру(x(oгo IЦюгpам мLtстa' yi,iттr пo:lrкс rI rt рr r э'rlr]t|(|/{|.rIn1,Ь IЧrrl]\ieрlк) D'ГPoс NtcIl Ь' lllс, )m чсТвеPJсa I{ilB]ю llс llиIllсT lrиJ{aкоГ()lioдil| il,гojЬк() ll olЦeРxo lt]асl, кolll l]ir. r l и с i ] ] l 1 1 п ua с l ] o с ' р ' r м Я и l l д у с o м l l l ( в ш { д Ь l r | с p e Л l ] с а I l ' l Ь I i i] 1 f i у l " l я PазнымrI рyссIri,шll'{.B эTоlt1к(Цe flс пРoстo,lоlll\,T 6агri. здесtJ llх lrlсз/(о, :лo Гlloзllо lloстoлrшroвoсrщot'tзвoдrrтсс6я прtI пoNющll Jlю6lг!()ii li!ll.iliiспoiiтехlloЛoГrl]l рсI'сtlojlь. зoваtluЯ кol1а '- соpy/pаste, oтс]oд:l6aгII рaспо.DзаюTсяв P:LlIlЬle сToPoяьт rIосPед. ством с'Гaтl.iчес1{rцпcремellllьtхrI xсPс]\lснllьIх' llсPoдaнuьIх lj0 ссЬlrlкс (rlостtoлЬlс\, клтаiiск!tй xPoгPaммllсT пeв сtUtах с]\IпpI.lTl,с,с Iiсyдo6с,Гlrаl l) lrызr]alпIы]llli l.еNl' что оIl ltс l!|oжcтIlз]\{еllllтl,зlIачсниcвIlеIlпlеii llсirсмснtloi'l' псpcдаllнoii в rгo4)!lll{цпiо \n)дуJlяltll1l кoтopьIе пeРеIIl.к:!Iваcт Pyсск'l.i lЦro'рам' l'сT), (16 этori фyr]кциl1' pyсский програмNxtс]тj кaк прilвlUlo) на 8Pе]\{ятepeчи и xсpсхoдит к l.a]ioii-то помeсIi pyссIioго 'I кtrтаi'iскo. анfлIrйскoй PяеT/lаP гo' oп дaв]1o lIсч'ГаeT пepellлсaть весь кусoк' llaд l{o.Гoрьtl!1 Pil6oтa]lrт llll]аjhlьl.Ilo y пегo llствP€ l terи' IIа ки'Iа].iцаt в'Jсят сеPьсзнЬlе 6nrЛ, o l{oTopr,rх xtlre] llач;rrrL (lTвo I{ пoстoяппo ltх Тopопllт, ки1.аiiцьl тоPоп"rrlrвo IrсPовrЛllrнiltrrГ 6агп :lPуг ]Ia вспoмl{llaя
дPуIal пoсIloJrькy знаю'Гl ч1o l1ollьiткIl J.iх )loч'll1иTь пpЛвelvТ вьIх. еще xу/ll]rЛх, и в этoп ollI] лpaвы,
l{ I]оЯв'{eнпIo lIo'
Paзo6pатъся в тtlм, в кaItом llОpядrrс r1.I]яloтся сLат]1чсск'le пePеI1енньll] 1l liа! пpиo6рeтatот свoи знaнепия' сrroсo6еlr толькo oДи]i чtrлoвeк Ilа (lrирr1с t]ндyс' нo oн прe6ь]вaет в Nlсдптaциr.l. lioэтol'rу r:oгдa всto чствepку vвоnяl. зo врerlя
410
rлава 25, тefrиDoваниeпoогоаммногоo6eспeчeния
сol(pаlцu{tlЯ'., /\ кoю еrltе yвoJъrlяTl,? Pус(кr'ii . спlс ilе пel)сl1llсaJ] сBoii кyсоrrl a иllдyс -. гJIaвIrая ЦсIпloстъ 'lЛrl)мЬ o]| pсxкo о6Pапlilе1. нlr,ll]аlrrlс нa пpoскт, пo кolцa о6pirцаст' всс поlll.|]!tаiоI' '],|()l aкj кiu( oIlj аpхпTектyl)у Лrlк,lo !]с зl{аст. Tа]. io,г' кol.liа кI]таiIJ(сD Yпо rьliяl(rг' ! llх к()'lil !oз]\ки(i]ьJ /(r]е()с1l()нllЬlсоy]lь6ы' ПеРвiul - ott llrrllадсТ x рvсскil\j! |l cг() J|сl)0l||llllу1.'l]тopа,l . ()ll I]()IIirLдс'г к r\lсот. пoпly' каIl:'к|l()11Y llPoгра[lIll]с'ly, o , к a l l а / ] с r ( и i iI I P o г P n r ! | N l l | ( r . -) т ( ) ( ) с ( ) 6 ь l ]Tr l I l | . o l l ' l l п | | a ] ! I л I l y Т уl l с З l l / l y N l l , I в а ' r c ь ' к a к р ь I l l а Р ь 6 ф с ' r . l ) a х iIl l v l | р с к i | ' б р о ( | r г с , l ч l ] l l l г Г Ь с a м Ь 1 i i с 8 l I D c п ь ] i i 6 i r г к i l . тaiiстсогo (().1iL,:jT01'баГnrl11lсT,|il]!|у'rс TPII l oдill l1 l{]l|'?ri]ltlnv)ф 'lc'Гl,ц)e}|(nЬI (tru{' д Ь l i , i п о P а 3 v ) с o o 6 u i i l Л l 1 u а ч а . ] l Ь ( , г | ] уч' 1 ! ) 0 l t 1 к Л l и l l с l l ' t I о 6 l l г к l l ) | q ц Ь l j iр i l 3 ' п ' J U I ' i U r : ' r | ( ' , к : | к Б , ' . ! c | , | ' l , n , ' ' i l \, ,. 'l | l I , , : ' ' - , i | ' I l , , к | ' , ' | , 0 . ' | ] ' j , v l | | | l . , . l ( - , , n 'r,()]чсгo кl'lTaiiцьr ]Iс рискoIrlL!]r l((''rjаIь IJ,|0Il0ln]с'LPcх j(o"!гшх Jlс,|, oн IlPrl ]|oI{oIIl|{дo6afсpа oTс,tсдltт N'сстоl lдс с,].а1]]чс(l]Lil'Ilсp.lIсllIJая |фlll|я.lra i]l|ачcIlис 1 вI1есто nрдвrlJIь]lогo U' ll Poll1lr1с,lЬIlr]lNlд)rlDко|lисNl :]aвcllсT pядoпi в1lЦrу!o lIерo. l{eп]lуI(r с llраl]l!IЬ}t!lIl зllaчс|пIcIl' Баr пoгir6lie,. в lIcPaвяoli схBaткe с кnJla/lс. киl{ прoIтапlми('roll, IIo пoбoдil бv,]eт Дoс,гllгl iуTа ,Гя)I{oJоii цсно'i' Pa6oтaть пeрeс,мlrс'г вссl вltJПoча'l тojlькo tlт() llеРel]]1сalIнЬlii Pусскl'I[' прогрaм. \tистoм l(о/], эTo Ilo]]сРl! oT Pyссltоl.o пpoграNIN'Ilсl.ilв l]адУIIчl'вoстЬ IJa цеЛьJх два дня' пoсЛе чеl.о OIl сДс,rlаcт' в о5щоrl.тсl' п]leДскaзIсмr,rj] вьIпo'1o тоNr' \TolLlвa]ill с сaмоlo rraча:rа 6ыл нсправrtJ.rЬпьi}l п в(|е lInДo nсPсIirlсаTь, lIa э'гo Ilal"l нvжнa пeДеi,!, да' нсдcjrя, нe 6.]льпlе' ка]lа/1(шl]i nPoгPlllt\JIIсT сrlе]lo 6PoсиTся нала ]{tивaть Bсel и сTалe1.eцс хужс' хоTЯ' Iaзал.]сь 6ь]', этa сустa вьI Irедет из lreДиTa. ции Irп/.]усa'кoTоPшii JtPI]llуIlаl]т п гlоllсe гeпI li].r]ьrrосрсllIснпe
.)т6Ра]lчuTl, кoд,
Coгласtto еr.oпланy' мъr тепepь 6удем rк1rдсplкIrватьдве веpсиrl од]loгo rI тoгo )ке кol1а - однy pa6o'Гarorцуrо'пo с Баr.oм,дpyгvlo 6ез БаIа' no flсpа6oтающvю' Pусскиri пpотpаммпст, yсЛЬllrав ()6эToм ]inaне' слoм аeT.'rиIrсiit.vо6 сTo.nи доN'n o6jroвет]]{снудypoii' tlo riа мlr,гиljге ЕoзPaзйть нe PеI Лт(:'t, I( сvaстьtсl'ясе это но сr1Льнoвл'яе,Г rll ДсJra4ruPNIьIj пoскoЛьку пpoдyкт xРoдa e | . я ] , т , ' ' , п о J , o \ l v ! д н Р u r ' P | | г х ' , J ' |в|' , r| |овоlЬ|lЬ,||,,|' нaть всell' чтo o]1 o,гo6Pa1rьI какЛуllrll]lr сpсдx лyчrппх, l1 чтo пlьIдавно докaзали свoIo сrroсo6нoстъ вьii1yскaть aрoд\,riTтсll' чтo вьlпyскасlrl cr.orlнoгдa.
471
глAс нAPoдA ,-,СrnolкнувuLuсьс trco1ъяcнu.t|oйouЛЙкoi, нтчuн(|t|)щuе|1pо??|1j|J|!uс?|7ь! aбычно свaпu|rаюm вuнц 11аlсoмnulлmop, JiamJ|в natlавлаlouae) вi,ьutullc-ве .J||цчаев aнu вuноваmы са'ltu,F]eыnLмаmельнoсчlnенuе i)снцменmаu'uu u нс' 6pеэl|.1!1,|й с|nunь коduloваnuя _ вom aсnoвньЦ|в?a.u пpaqа'ju|uсп а ; -'Jnссlnuрцйmе nJJozpalшlJ moльtсоl tа завеdо'+tоuспpавlюм о6opуОaвашu u lLu в l|oе']||oryц(l( tLlэpl1з.oxяilnс, ano 6ъLпrrм ltu6ьuto |1ouс1сuчсp oi кoulх-u, кa|nоpou1Iе|n,в чеp11oй кo.мнаme,коmapoiiнuкozОаlLе6ьшo,оnньtlаrmлtютl l|pеJ|c]|uu цсuлun' хaduп rczеltОrl,цnо odulL пакоn pазpа6amuuк, бunьtn ,мLсяц zoня|JluuЙ6аzа в npozptutле, пoО кaпецнаutеl1еZa,,'в 6nanс |rllпа1t1]я, Пo.adlюn веpсuu 6лoк nпmа]|11ябьш Звеpс1|u Ра3tlу6'ltаtmuюpсl.lt, пo |)pуzо1i _ 11oв.,1l|эl| 3(I nРolзoa }n сnещ (tз1lal dаше oКР!:'ссl lоtцrц); .,,|tакp|пo(uаnься a фаiL1еОа'чnа.?I]ц:tснoзttаn ь льlк Ас се.I|6I.р! l;Nээ ]]1() zo вrы ttuксltlа lrc сnn tnь nаInaя ul,llу n ! Рo4n.ссu о1!аt|o'l1 '''|1poe](Л1 |:doa',нa arc еI4е cсnD nцца no'illэjнbL1. ссьLlon o ]1k?сnLц)o|за]l1oО: http|//WWWtestiлgсrаft 'сom/,
@
шl0T8uIllll[
ЧAстЬv oп EPAЦиOHHЬlE систЕlvlЬl/ эlЧyЛяToPЬl
и кoMпилятoPЬl
нескoлъкo Лст нaзаl{ oсl'lовllЬlм opynrиoм хаксPа 6ьtJx1дизaсссмб.цсP и o1uад. чик. TепсpЬ жe к лим дoбaЬlя,.'|с'4eЩe и эм.ц!t!arлol, oткpЬlвaloщий ltcPoд кolLo. IlьIс'l.о.пьlс0 кPyrl. кonaТсЛЯnrиnoистиllc 6rзl?аlIl lLllll'е tJo3мФкllос'|]и, Рa Ilсe/{oс1уII г oс . л с l r ',в r r с ,r я , ншм чov|,алl|лIа l ' | с | RГ Ь г Г а в J l l | (, I P и в | , | ' | | | a| ,,lrмp и t i г5o ь r, r r о t 1 о и чTо же этo зa эItyЛятopЬITaкиel и l(aкиe иIlielIIloвOзnlo](нoстtlоllи o,IкРЫвalo1?
глава 26
эмyлиpyЮ|дие o1ЛадЧики и эМулятopЬ| |aвa 27 06з0pэмуЛятopoв глaва 28 эмyЛяTopoв o6лaсrипpиl.4еtleHия глава 29 xP oт 9x ядeрнo-|"Iуклo|.ltlаЯ сМесЬ,иличel4oтличaeтся глава з0 paзгoни тoрмoхeниeWindowsNт глава з1 |JNIX,или пopтили,пop1илИ|ncГ'op1|4л|4 Winз2завoевЬlвает главa з2 гoвкина вьlмираниe, дeвяяoстoпятЬIeвыживают глава зз пoдлинyкс теxникаoг]тиMизaции
гЛABA26
эМyЛиPyюЩиE oтлAtЧики и э]v|yЛятoPЬl Bсякtlя oпepaциo]llIAя (llсTсмA иiцоeт свol,l 0с060цIloсTl,I,li l1ol]ollсц,'lсllpoгpаN'. Nпn,зAлyщeltlloй Iloд Windo''vs 9х, Nlo}ксr'су щ0с'lвснtlьtм o6paзoпto,lлllvаться oт WjlldоWs NT. зoollаPr( UNIх.пo,цo6lIьlх сllсTсм I'tlctleTичcски lllyTирoaапнЬIх lсJloвoв JlучrЦс soo6u{е IIe всIтомI)lil1'Ь'xilксpу, зaпимаюrцемyся сстсвori 6озo. пaспoстьIo' пrо6хoдltпlо п]tIcть aо ]!,еi|Ь]xсiiмсDс тDll сllс,г{,мЬl:Windоws NT' LINUХ и Ггсс BSD' _ нy!t другиe ()JиГмаllЬl pьIflI(aпe пoNlошаIoТ'Мнoгl,!е Yяз. вl,1мOсти(и в частностll' oппtбкtl rlсpсrrшlнсlrпя) прояRJtяloтс'Iтoлькo Irа строl.o oпpeДeЛcннъrхвсPсиях oсll l,l .)lljv1{|твyюr нa всeх остаJlьIlьlх. A paз Та]t'написaпиeм и о'Гnадкoй экспJroи'Гaаr]ьllla чеI"ltlс зailruсЛл'ся..'Еio Ilостoяннo пeDeсTa]r. л я т r , . в о r o P а 6 о ч у ю o г . ' f , г n | | r 1 ' l J | ь | . U ' ] l о в | | | ] I | . JпlU l . Л ' | o p . ' ' n " u 1 i в 1 ' е м я вссlда pа6отaeт прoтив пас)' llo сlцсl ll pисrr потeРIl всeх нaкoплсптlых ДalЛ$lхI К тоllу жc сгasЬ тeстьl пa перепoJlnснис, зaltаtIчllваlощисся с6рoсoпl дaмпa Ядрa, это хоIroпlиii с110с06nPcвРа'ГитьфаI:iЛoвуroсистe;rтyв мerualtишy,И хo. тя поTeряппЬlеДariньIotlо)l(нoпoлпoстьlo иЛи частичIlо вoссTaltoвllть - вInдол'( пЬтумeTЬэ1oдсЛaть, oставляязirсвoиMu IUlсчaми г1lrаптский onr,lт60Рь6ы с paз' рУlrreвиями, Сухая тeoрпЯ 0)aвпo как и Noгton Disk Destloусr) тoлько N'eптаeT. Boт и пpихoдится зa6ла].oвремснltoпollitJючaть oTдеIьньIй ви}rчестeр звеp. сI.и наД нIrNrиздeватЬся' тo norpу)ка-.{фай.rioBylосис,Ге]!1y в rrе6ьIтI,rе, To вoзвpa. Экспeрипrенты с виpусallи и 'кспЛoиTаItи так'(e следУeт прoloдить I'а oтдeль. пoii 01oЛнoстью изoлиpовarirrой o1.внсlшнсIoмирa) lташинс, пoскoлькy систe. мъI рa3гpа}rичениядoстvпа' rrстрoе]шыс в Windolvs NT и UNIх.системъI' Дafle.
эмyлиpующиe oтладЧики ito llе бeз]]l lpсчflьI NILrтеihпаЯ r1с6Pсжнoсть, Допущс11nая ]iссneДоваr с'цсr{l зачас тую o6l:lpачпвaется тоTaiЬllым paзPvЛIеlIиеi\l, ТPадltцuонно эти заla.пl Рelr:!1tlсЬ путеrJ прr'о6pсTсния ri€ с k)rl ],tiuх ltoN!пьIотe pr'B r'"]|rl}]а хyдoп l{oпe]( пi|южс(тna ineсп{I{х ]'Lllскoв' IloпеpeNleIlljo ]loдI{ЛIoчаe Ifьlх к оlrнoi маш пe' нo леPвoс дoрoго (п к 1oNlу ,кс всe:|ти кontllL]oт.Pьr rJФ.lo l |Р,г'г',|\l.L,,lь|
оiiа,кeTся ]lсдoстaточ]lo ]\kс1а)' а втopoе )кес'
,|r
)t ' loр
r|.cli
ltе:эс'l.стlIннo rr llеу,rобrlo. lt тоi\f\] 'iе
||',д||''{||,l''Pо,|L||'l,|U,}|.'||l'],',п],,l','|п'д|,--l,|
Iloкpllвaясь
<бэдаi!1и' пр1l rLll)клоNlyдаpс,
Тспсръ x(е этоT коlrмaP маr1о пo\r:Ulу oTхo;lпт B п]х'r|rос, п,Ioп(l, сoвpсn]снньlх xpoцrссоPoв l]oз]JoJяст э]\ElrrпР()вrrь nссь пеРсо|lа.Цl,lIьx.i rrопlпьlo'|ср Цс.llш{o\J' l]o3вoляя вuIloЛxJlTЬ нa IIеi{ rryоIPаllIlьI n Pe:!]ьlloNl rrРс]\'l]пll ]i (] Iлll('iJJIсlioi.i с}iopoстЬlo, J]\!ynЯтoPьI плoля1.сяj ]tаl{ с'illк]I |]осnс дo'(дя' vМWаrс'
V i п u а IР С D о с h sL l] l ( ] U l / , D o s . B ( ' х , ,
] l l l ( ) ! ы с ' I { a l { o i I] n i l l | х в l l 6 P i l I Ь ? Б o J Ь n I l | | l с , l в oI I I 6 л l i к n r u ] ] i 'l I о с в я п l c l i I i ь \ ) l l ! лятоPаIll оPl{сн] llPyl(rr()r l)]авIlыIl oбP.]lr()\lIlil l.сiiuoров || (]l|с'гс^lIlьIх:l/lNlllJ11сl. PаТoPоll. IlсрBьlrч ва'(llЬl ск()l)(х|1.ЬJ' ii:lIlес'Гвеlr1llnii3l]y](' Dтoрl'lNl .- IJаiпl.ll.|с Nl(! хn]пlзN''()в|]3illl]vIoдс|iс'ГilIlяNlсlilу l]jlР].yа"'lьllrnNjll]\|iillJrпlа]\1|l. хitInx)а]\l nn' ljr }Jс0 эТo ltilII'Il0вaть' Гnn8|l()!' -. ЧT()6ы Р116оTrLJJ Aiiс' Ilу II встро()r]|r'ii (ЬUiIL jn' ilILсrлn]' 1Ilfugl.аtсс1)()тJrUtчllк l|('llо]!JсltlасT' I{ loN1у )l{с oсI|()|j)l()сllРoxJ\IyIl(t]TJ]o э}tvJ|я. | | l l lI | J J " , l , , , l l , | \ l "| г U l l ! ( ' , o , l n r ,j , , | , , r,, ,'чv,|!,l ,, .,' Tltковoi.i. lIо Ile 6yЛr]м зit6сгil'rЬ ljllсP0д..'
476
глава 26. эмyлиpyющиe oтпадчиrии эмулqтoры
MINIМALsYsтEм RЕQUEsт to
"J,',с|0оJ\|IJ
1 ' | , U п п , e L L Я в ,} o ' в c ' ' r l ' \ \ 1 6 l / | | | | ь 1 ' г'iuвrl , ||,'|п"
paтyPс' .цЛякo1lфoртtloiipа6oтьrсWiпrlows 2000 и iгеe вSD 4,5 пPoцсссopа PoпLnш-III 7Зз MГц 5},детRuoЛllедoсTатoчно (в чaспloс1rl,VN'IWагc (рис,2tj,2) прсвPащa€ т егo в Рelltiun lII 3з6 Мгц' a viгttlа] Pс в Pспtium IIl 187NIгц' rrо tto всe TакиТянеT), рoчс гoвoPя'QtjAкЕ I хоlь lr lla ]tPсдс.l1с| 'IпllfiEяll
Pис. 26'2, диагнoстикавиpтyаЛЬнoйMашиньl'созданHoйэмуЛяторомVM Wаrе Тpc6овaнпя к папrяти rlirпlItol.o 6oncс )ксстки' к:rк мrIllllllуIll1]оo6х0д1111сr lr]!lеть 128 п,I6аiiт /.lля ос,IIовlloiiо]lсPациoннoй спсTeN1ЬIG)6ЬlчIlо назъIrrаeмоii <хоrяii кой' оT al]l!|, hosl) rl пo 128 256 Мбaiil /Ln' (aждoii l'Iз oдIlовlreмеlllo заIlуп{ellпых вrDr.ya.JrЬllЬIх llаш!п (rlлиl llllаЧс 1.oDоP''
памятlr опpeДел,сТся тиnoll эNIулирyе.
мoй oпеPaцпorrrlоii сисr.ellln,Tак, cсли этo пpoстуUЛrаN4s.DoS' To д-1япee lr 4 М. 6айт плoлlte хва1.ltт, lla 256 N{6aliт y)к!AI]oжrl.J сlloсllo эNlyлировaтЬ Win. dows 2000/ХI,/200з, запуlц€ н нoй повepх w2k !шrl aна-rlorliчпoйorlcрaциoннoil o6ъсм физичcсItоIo ,кесткoгo ll1lска в ()6щеlгт0 неI(рптЛчe!l,BuPTya,IrьньIrма пп.lпьIсoздаюТся oт]]юдь недля iiаI(опЛefiиядaнньIхи за рeдI{иl!l!.] искЛючcнIrя \lllп..rД6p^|
n,ч.|о,роvenп6l.Unl',|нo||.,.|.v|,,
1|||п'|ч]L\|ваГ:l,|Г' пo
стаsItи и /]яielITJIьi!1снскoro на6opa сoп\4.с'rэуrощиx eй прUлo)ксниii' чтo
417
вы6ирайэмулqтoрc6e пo pукe|
]] сo9ol(yплoсти oтнxI1ает r!e 6oлеe r.ига6ai.iTa дI'скoвoгo пРoсTРaпства,Ilpичe]!f' }1Ilo]1иll rв пзвeстньtх NпIeэмyЛятoPo! flе тpe5yeт нсlloсPeДствеIrнoro дoсTуIтa к фtlзичeсI.oпlyХeсTкоlly дIrсI{У,tsМeсто этоIo o6pа] rrлртya.riьнoгorЛпчeстePa . PJзI'eЦа'|'явo6l,|кdов"dнorl1''it1Р'lo,no.,t']Uп.,1'||hя|o.Lc|''hхn|!"lс|вс| l 6ьIвaют Iк) кI дliс ной otteрациo]J}rоilсистсIlе. сo6ствеIJtiо гoropя, вl.lРтyа]lьriьt{r Г\Р|IсoзnaН]Л|l(bL||.. iLсньrlreйN'ерeдвyхтиrtats фuксupoв|lнньtеLIa ulLаl||u1Lес\|uе, сиPoвaпlloго д,lска эпly.цяторсрaзy,Irе
J||с|(ll,
JпРo|,,|r, х|lJ||'-
в 06р"J
Лишь
I ' e , ' , 1, h o з а . , l i l т я ' | l : l l h L , .
виp]yirirnlыe сеIоoРa] lroсTеttеI.Irо увел,Iчl1в:ul (16ъеl! o6Рaза пo мерe eгo зaпon. не]tl!я aктy:UIьЛЬI]\l!Iданllll]vи' 3altaIlчшваЯ' ttt]РспeктIIвa) не Ilpaвrlа JlIJ? впIссTо Дr1ск Nr)кдy вIrPTуаJlЬ1'оr() чт()6ьr пoPoвну дpо6!lтЬ свol.j qЛвичс('lil.lii,{есткllii Rсc св()6()дlllr lпlх пРaктllче(rl(Il !lьlN{и Ntallпlllaп!и' Irьl ]\lo)кe\1вЬl,]еJrrпь кa,к]]оji (ollJ J r lI lx п | |усTь ol tl l сail,1 нoe фrlзxчсскoс IlPoс Qaпство ' а |.il}l..' Pа]l6 l)aloтсЯ' ких l'|.cЛ ЬI tость 1laмltL|ес Ill]остo 1 П дr] дrlс. o!t{rl lу)кI lеe' Oдrlаlio rtс всс Tак PoиJl]()Лl (l)l|ксиPoвaЛlIЬrх' вrlvlРell. к Toi\!у,{c.]llll noдвeP'(еllьI '{oв llа]\{lloгo Ill])кс' чеi'{ Да ltеri qrрarN10Iшallllп (lIe путать с (])Р.lГмeIJ'ГIulllсй(Diljinl oбрllJа Л d]Pаl.мсIrл;tItt]еiI эNiуЛnPусlIoii(rаtliЛoвoii с с,гс}Iы!), ],l хor.' Ilск()|olЛ,iс llз эIlyJ'r'г(Цх)П (Il чaс'Гнo. оJll] всс Pilltlt() lle РсI a. сти' Vi!'1 Waгс) содсP)la1. ',сTрoс|IIlЬ|с /l0.lrра|I1cl|,|iL'l()])ЬI' ,к]NIy)кс (ю])N1llr l|с с,гаIulаPIliJoва||' I1о6. I{ toт tllю6Jlrr\lЬl. /(lI]lаrvllчссl(llх д|l.IroD (]()]}]\{есT]lN|ьl I.аToгoР||ч(x]ill ,(, ]муJ!я1,olх'l друГ с /rруГo]\J, разЬl рitri!llч|lЬlх . oсr.а.'rьнoс o6o1>улoвlrrrlIe]\{Ф|rс].б]nтЬ'(I()бЬI\l lln сI{oр0с'|I,0N|у"lI'i0lЛ tlIltlIlplr|i. T!lчcсl(lI 1l].ll{il|l ||0 ]lJI']яo'Г'
BЬlБиPAЙэмyлятoP сEБЕ пo PyкЕ! Прп въr6oрr:Ilодхоllяlцегo cмуля'гoРn хаксРь] oбычllо слсдylощи 11|l крI 11.сpliя \] l1: зaЩl llцсl |. Рукoв(JjlсTвуloтсЯ 'j.ск. .)1.кРЬlToсT о rIсхo]lll l,l х нoсTьlol рa(LIlлряеNlостьIо' стов'
кaчcстtsoм
п скс)pостьIo
эi\]у.'l'цlllI| ]|aлшчllсм
всTpoеннoГo оTJIадчxrrаи гri6кос,Гъюr1охаIlllзi1oврa6о. TЬ]соsllаP slrot,аNll{,Pассмo].рпllвсe э'гll пунк,i.ьllкlll0/l' робIlее'
зAщиЩЕннoстЬ зaпyсrtая аfPессrIвIlуIo пРоrpаi\l\ly ]la эпIy"цяToре'очe]r! с.цo'{tю oт/]ejlaться o-r мьIсЛrl' чтo в "rrюбoiiмollе]tт oпa t]o'tет вЬlPваl.ься из п.JIIelo кoнтрoЛЯ' oстав ляя зaсo6oii дЛи'rIlЬlil шJ1oriфPaзpуllellпli. ск кс]\lпp,lIю, э1l{оllасенxя rr]ю-lIIlе о6oсrrовarrы.Мпогlre rrз эlIyлятopoв (DoS BoХ,Viгtuаl Pс) содep'кат <(дьрь]'l i1oзвojlЯtoщиеэIlУл'IpyеNIo\lyксlду нaпpя!q4о с16Рaщaтьсяк пalrятrr саrloгo эrtуoт еIo ]ll1снIl jl с его пРrвuл€ r иЯrlll nPolrзBоjiьншr лятoрa (наilPиilеp' l]ЬтзЬlвa'Гь APi функцItx хoзяiiскoli oперационrroiIсl]стe]tьD' oднако <пpoбЛTь>эll)иятoр
418
глaвa 26. эMулиPy!оциe oтладчики и эмулятopь|
iI o]ксТтolъitо спeцлil]lrjньlм o6pазoili сlIрoсI{тIIрoвaппаяIlpoгрartмa,тaк что пpIr вссil TroретirчесIiOi'io5oснoв iIIoсТ11угpoзь1вePояTпoсTь сс пPaIrтIl.leсI(ойРea't]1зaцlIIr6Jiп3кa к rlу.{lo эi\!ynятopЬrнс нaсто.nькollоJt)'лЯpньI]чтo6ьI aгр€ с соРъI взялIlсl, lla нl1х вссPъrз. Cетевoс взaиlIoдеliствпе - ДPугocд€ л o. ЭпiiЦяция в11Pтуa.flънoй-toк:LrтьIloii сeTrt (t)хPанЯст все уязRимос,|и хозяilсi.оii оЛeрац]lоrxroii систеrv|ьI'п сеTеroй чеp!r'
| 1 ( , ' ' ' | ' : П o ' , o \ | , х n , , я | i]l , 'Ч l ' , , . ' г а t , , o , , . r с ' l . I l N l J l i J Ь | | P , | у . аЛьнoIi.nок:LпьlIоii ссT долxrrra6ытt, в о6язаl.сJlьнопI порядке псli'l!loчена, Естс. ств€ н но' таI(oе Pсшс]1пс сyrЦествelIIю 3атPуднЯет o6шепие впp,Ly:urьных пrашин с 9нсtllнпп{ пtl'шоNlj l.l l loэTоI1y пlr чaсTо прelle.rplrгaюT, I{стaти ска3ать' персонai6. lrЬrс 6ран].rNlayэРъl в 6()xLil]lll1lстве своеrl lIе кrlltTpoJll'lpyют BIlРтyalъпьIе сeTи t't lte Jаlцuцают oт llтоpжеJlItя, l | ' l , J , о Г , ' , , r l \ 1 , r | . ' г l |l,Ll | o o , | Я | o ,] , , . : | ' ! l l J ( l l ( , I d U в . ,сI Ls | l P Г у ' l , | , ч | \ t и[ l : i L , r . l]амu чсPcз i!'схnJi]lз]!l общlх ]IаlIoк' пpll эToiv llаll(а хoзяiiсiroii oпеРaцllorUIoй (llстсltьI Bllлx,]tя ка]( ЛoгI i чсс I{I]ii дllск lrJи сeTсвoli pссурс, ПPи всех llprи}1уlцe' ('п.\.n',1'|,,]IUJIo,|''с'''U|j(l,|||r.],сln\ ос06€пrlоii I|о|lу-('Рtl0О)I,
PAсшиPяEMoсть ll рo{)ссс l1о]lаJl ЬlIor]рисl l,j.'IPо вal l l l ьIii эrvyJ|яT(р lLоJDксll llo;iдeP}o] Baть возNio}lс. l,loс'Гъ iJo/(I{,1I()!le]]!1' вllсlL)'ll]х ]!1о]Lyr1eii' ll]til.,1'l'РуloIlt,lх tlcсTirпдirPтrlоe 06оPy/Lo. BalIlre (l];ulPIlмсP' [I^sР), oсо6ellIк):]Tо altTvaЛЬllo,ъп,l l'IссJlc]'loваlI!lяЗапlи'Г,гиrla s r ' . I l i г ' ' ' j I , | | . ' ,| l q \ | L | . ' |! | | \ | . ' , ' i i ' . r v . U , ] | | | х ( ' , | | | l i r ] ' : l ' у l 1 l l , , , d n : l , | в i | ' o U l l l х с'l к'l.c]!j осoбсlllloсT,llrt 0c lIoвol{сlIи'I' o кoторЬlх llrriITlIьlс эNlуJЯ'l.oPЬl ]loрoil дaЛ(c ll llс лo/LозРeJtitк)'Г. Llскoтoрьlе п:J )l"iуJЯTоPоп |aсIrиP'с,N{ьIj пеко'ГoРьlс llcT, Еl0да'rcy сaмых paсшIl. P,lсIlЬIхиз IIlп с1.eпcIIь l\lа|lсJ]Pouнoс'ПI!I I,ry6IuIa коtlфиrуpa6оIьlrос'r'rl дoво,lьно xсI]сЛиIL]1п l1o]JеРхlIo(l,lrю дolrvllcll1]lРoваIть] (eсЛll /.]oкумсIlTиpoвlulЬl во06щс)' HaпеРIк)e )r.o lIpollсхо,]llrГ oT Tol.o' чTо фaюор Рaсurиpяcмoсти peа:rьlro тро6yстся oчeнъ IJ oчellь |lеIllюгllr1,,, эму!яToръI !еДъ пипlут lle /,LJrЯхаксpoвI A )lrа.]rЬI
oткPЬlтoстьисхoдHЬIxтЕкстoв Hалll.tlrе l.rсхtЦпьrх тоlrсТов частIrч]lо кo]!!пеllсxpусТсвllнсrLoе ILaчес'ГвoдoкуilteIlтацпll i1хрСr1oвylo PaспlпРяer'ость э!уЛя,Г0Pа. ЕсnlI IIодопьIт]laя прoгрa\f}Ia oт. 1{азъIваетсяnъlпо.пJlяTr'с,l r lOд эIlyJIятopoмj п схo/]l rЬIетeксTll ]lоi\.loгyт pазo6pa.Гь. ся в сIlтуаЦjlи усTpаниlЬ дефеILт' К тоrтv яе iirьr lroхсм oснастпть эlIyЛятор nсеll Ileo6хoДиl1Ьlм напI иrrструl]ептaрlleм' I:Iаtlpипrсp' laмпсpoll пaмяти r'rли baсk tlaсеI'oм, позвo"'lяiощr'\f пpoкРvчuвaTЬ вr'1Ilo"']нcнxr пPогpаNмЬl в oliраTноN' Пop']r(с (llсл{дv про,lиIl, кЛaссIlая всщь Д'lя вз,roма' сrra'rу я вa]Ч]), A вoзlФх. ttoсTь oncPатlIвнoго дс)6aвЛеlIl'я r1eдoкуllснтIrPова]]ньIt lIaлlпlIllь]x !io]!'аIlд Ilли па6()Рoв 11нстРyкциil tloвьIх пропессoРoв?
К сolкa-'rснrrю, кolrrrер.lес]сиe эI{у"lrяТopьr Pаспpoстpaняются6ез исхoдньrхтeк. стoв' а opсn souтсe эll},лятoрьI всeсщr нc э]rInIJииз юпoпIeс!сoго вoзрaстaи д.llя
4L9
эMуляторсебе io рyкe!
этo спнo}lи\1 сЛol]а
репlенl1я ссP!езrпnх задaч ]rсllригоr.iпьI. Увы] <п{ЛР'
кAчЕстBo эtqyляции какoй пРoк oт эмуJJято|a ' l]с,llx ltil rtсr!1ltельзя запy(хaTь so |t.iсе? МожIlol l{онечIIo' l.Iспользoва1.1,ir дРyтI.Iе oт'llадч Llкli (rlaпРr{l1сp, o]]у DеЬLr вg€ f ), нo jlх в.)зuоxс lloсTп шaпllIoгo 6oJtсс оIРаlrllчсI1!ll к 1o]\fyхe rlа }1сl{aчссTвeII]iьIхэ]\JyЛятоPaх flс. I{oTopЬlе Л|l :rапlrпце}iнLlr lIрогрallll пРoсTo ltе илут] Для уtsс'lxчelIпя скoPoс1! эivу.nяllпll пшol.xс ]1J рnзРaбoтч кoв сL)3xа,l.сЛЬпоyсе кают }ta6op э]lly.nl]Py€ п rЬlх коi!1i1Лл'гlоi!:rrP,{llвnя 1'oJJьIiо riаи6o.!сс ак].уilllЬIl]]rе коNlall;.1aillзaцIlщсll. и3 пliх (u oсо6сIDlfi]l.I'J iтo o'Гнoсt11ся iL гlР]Iви.IIс1.llpoваIlIпn]!l r'|n(.п]'
l,',|',116,|.',\l.
|'111lг ,|,,,lrJ|iD
.I'\,
,|||rlс.''''.
lпrIе>' Л rlсIoю])Ьlr] peЛкозсi\lс.r]Ь llnм кo]!!апдal! Рсajlь]|ого Pс)tlтмa) сЛу}{с.rllЬlе j]м воЗlion(Iloс'ГI{ Чa!]с вссго РегrlстPьI' d)nilГLl ].рассliрoвки ll lLpугlIе лоlo6ttnle эllуляr.оPьI пpll].oдllЬI Ile Тсll lIо Nсtlсс' ТакI'lе остaют(,l l1сзiuLсiiствoDatlпr'|rll||. ьiк) Ira'Гь к:lIt
г|l|'|l|,l' |,l',
I]рoсIрaIr( пol.о illP!с|Il)гo , | о д Ь l { l ) с v I l ц ] с I n j I I j I ( ) y I l с j I I l t l | | l l i L с , |l ] P ( ) | l ] D О ] L l ' ' Г c i l Ь | l o с T Ь ,. l o l j i l l l ' | . ( ) ] ! ! ; r T l 1 t l с с l . l l ]lе дo6аlз;rя с,r. rrrlдttсРlrоtу всoх i ro l]o}t( )il I l Ьl х Nlу.! Ьтl l Nlc/(rtiiI l],lх кома |l]l (рillyNlсс1.с'l ' пpj,l yсЛoll]lll' Mсnr.llу
Tоv'
кeIlпlснаn1r]'),
Ч'Го l.|х ,lo]иеl],(I,Iваo'Г в 06рtl6l)
Dlllll 4)ll]]ll'Iсскl{i:l lIP()цс(:(оl))'
lс IIс](JIIо(|]'|(].l|ЬlIьIх сll,гlаll
н()з,,lci,l.твll'lх
к()]!l.Lll,ll IliL фxaгl!,
п (тil('(e
llr.'lr)пYстItl{ЬIх
пlзьIвllcNlЬlх сnoсo6aх
nэl(с. aДРесa-
з:tчaс1ylовeдyT ссбЯ совсс\] llс 1.aк'как llпп э]\'уJUfГоPьrQtlrхr дrIлrrмrr.rcr'кltеI) Brцо.tепt' сс;tl за. l()]L]\]о'{етвьurcrrrlтr,эr.r-rI насТoяlrlllii проlloСсoр' ll ]]аIltlгГl1Ьlii щlщс1l]llLя пPoграIlllil lrе 6}'Лст Pа6o,гaтьпо,l э:ttу,lя'IopON' э'r.0сl'l-!ьпо вoзrц,'r.иT нy'.. вьI llo]tяnIl куЛа.,' ЛегаJIЬllыхnоJЬз()пaToJlCiilI еe создатo,llЬoTrIPаRll1.ся,
встPoЕннЬlЙoтЛAдчик защ]] щеппьle nPofpаNlNiъl всЯчссш1 ]lр01'ltBoстoят oт.lrад.rиrtапl,Дlrзaсссlr6:lсpаrl ' ДaмllсPaN{ и 11Poчеуy хllкepскому opунrrю, Как пpавlrлo] дo нуJrсвoго кo:rьцадсjlo 1lе дoхoдltтl хoTя rrскlr1.OРъ]езаIцIiTы (lиflрttмeр' ехLIсnrc pгotесt()г) pа6oтаЮт там, сУllleстnуIoт дссЯTкll, ес-'ill ]]с сoTtlll спoсобoв сopвaтЬ oтЛaдчrпty крьIшу' oтпPaвJr]Jr е]]o в a]]ал' и nР0тивoстoять xll довoЛrrпо трyДflо, !rс()6сн110eсЛll вьI I l , | | ' | . (|1| i l ' d | | |\ r t г i т п n r 1 - L , N{ol.yшreствo эrlyЛ'Toрa как раз п заl{Jl]очaется в топl, чтo ol1l1oЛпoстью I{онтрo. rlprrсlrьr ttа пеrl не сра6a. ,rиPуст вьтпо,rпяel1ыji кoд п о6ьIuнъrс alтlотладoвrrыс pуеlloго пpoЦессoРa lIа са1I orранIrченlя эIlilл жe аппapaTllьте к l.o]v'у тьIвaют, эllyлятoP нe распростPa]]яIoгся' в частrroст ' кoЛичесTвo <аппаPaтlIьтх' тoчeк
420
rлава 25. эмyлиpyющиe oтладчики и эмyлЯтopЬ|
oстанoBafiе o6язaпо рirвнЯться чeтыPем' кaк па х86, При тrе06х0дип10сTи эNlyля. тop l{lr)ке'гпo]1держиватЬтьIсячуили ]lDкe I{иJlJlиoIlточеI(oсTaIIoваj]lричспlvс. lrоэия их сpа6атьrваrrия lroгyт 6ъrть скoль yroдIrlr rrзвpaщeпнI'tiurl(нaпpl]Nlеp' мonп]o вспЛь1ватЬна кa)кдой кoмаnде Jх' сJlсд)ю!\еir зaхoNlaндoi!-тЕsт ЕAх' ЕAx' сooTвeTсTвyющсйкоrrстРyкци,r jf (mу-funс())',,)' Е г , с ' . в г ' н о , д r я э , о г o ] N l у л яг U г д o Л } к P n6 ы | Ь o . | | i l ц с н и н | Р T и р . в i I l l . Ь l N |U т . ЛадчI1кoпt, Лю60Ii дРyгofl oтлaдultlt,запyщенньrlliпoд эмулятоpоll' наприпrеpsolt. iсе, нпItаких дoпoЛllитeЛЬньtх пPеимуп{есTв ]!е пo.lyчaет. вoзмо)кIloс1'и имсю. цllх.я
| | l | 1 e П l | | . ' о в i r l I l t Ь l хo l . I а д Ч , l ] t o в д o l ] o , l Ь | | n н l . Ь l ' ' | | | | ' и . 1 о 6 р с , l P , l l | в а l U Г l | | | ч ] | L
не Лyчпrylо фупкllиollаЛЬltoсTЬ, чrI'I debug'сomlа пepсдкo сyщeствeпllo yсTула. ютсмy| поэтом},I( пlll{ стoиT nри6crать ЛI'п]ьв кpаiiних с.пvчаях'кoГlLaL)6Ьвнo. вснIlъ]еoтЛaдчIllG с 3аIlIlt'Loиvкс нe спDавляIоTся'
Гл^B^27
oБ3oPэMyлятoPoB из всех сyЛLcстRyxЛ]lrlх cмуJlятopoll
Ilаl160Льпlci{ llollуJIяplloстЬlo
l]oJIь3у]oTс,I
I]мeDos-Box, Boсhs,мiсrosoft virtual.Pс x vм warc, кa'(дьIiiIt3кol.opьlх с-l.сBoll 0с06сlIlloстIi, свoи сlrЛьlIЬIс и с"llаrЛnсс-l.opollьI ll' кolIсчlIo '(с, cвoii кPуг пoкЛolIлlll(o8, сoвeplпe]l}Io l]с IlPCтсIllLуя llа 6есnpIlсТPасTlloo сPaвllelIие| автoP Pпс!t'Iул вЬlсl{азa'гЬ сt]olo 1.oчку зPсlIия' rlollчeР](,'вa' Tс хаPaI{,1'сРIlстики э)tIyJ!Я1 l j I j о в ,к o I o г L | l о l | у | | l' | у U l с , ' l l l Г t I о | , t ' n ! l П ' 1 i 1 , . ] L i | | ' I l t ' |B' ' к o r r . ' r l r o l r г ' I . т с ' л ' . 6oe oIIисal]иe су6ъскl.ивllo'',
DOS-BOX БесnлатIIЬIй эilryЛятoр, расltPос,грa]IЯloпtийсяв t'tсхoдilьIхTексTaх. ЭмуJ1!фуе'г единствснную ol1сPациоIlllylo сис.гоily _ Мs Dos 5.0' гЛaвllым o6PaзoNlпPl'Iме. няясьдл'зallу0кaстaPьIх игP, )I(сс1киедпсl(инсэl!]iЛrlPую,l.ся (эмyлЯцI{я jruс. кoвoгo ввoДa.вьIвoдaзакaнчивасTся I!a прeРЬlвaн и I Nт 21h)' и solt- Lссна нсNl пе Irдст.3атo сup386 (paспаковщиt{ исnoЛllяeп{ьiхфaliлов llnюс o1Лад.lик) pа6oTa. eт впoЛнс испPaвнo (pлс, 27'1). Tак,{с имeеTся }iеIlлоxoil иIl1.сфlJРoRal]ньIйoT. лaдчIiк (пPauда, дЛя этol^оэl'улятop дoЛхe]l бьlTь пeрrкoпlпил 11poBaпс от"!адoчоднal{oдост'\.пнoсть нc ItРeдусNloтрeна' BoзI'oжность PасlrrиpеIIllЯкo]IструItTIrвнo хoрoшo cTрyктypиPован}1ь]хtlсхo/цllыx тeitстoв ДоЛaетзTу ЛpоirJеlIу 11еаliTуi'.пь' нoii, и вьI в лIo6or:iп'oмонт IIoжеTeДо6авитЬtсэllyji,]1opy Лю6у1()фllч1.,кoroрУlo тoльI{oзaхoTиle (пaпРимеPl виpтyfutЬньlй )кесткиri диск), ПoДдepживaloTся три рeжuмa эмУЛяц]'rт пoJн:ull чзсTIlч]lая Ii дrlliallическа-.l, П o Л ч U I J " п U л | | o й ' ' \ l у j я ц и , н а l ' а М o M L P ] eд o в o , l | ,U' у ' , , 1 o в | I.'' o h , i с " t г ] r ь I l e
422
глава 27. o6зop эllyлятopoв
rцeтt), oДнa*oдля пoдавляrolrleгo6oЛьшинстBarrеизврarr{епtlьlх IIрoфaмМ с лиx. вoй хtsaTaсти чaстI.rчrroй.o6a эTих pе,ммa дoстатoчIloпaдФкI{ыlи въlрnaTьсязa прeдeЛыэпlynятopа ]repе:Йьпolправда|пPolrзвoiциTeльпoстьвиpтУallъlroй мaiпI,r. ilЬI oставляет)келaTьлyчшero_ PеlrtiumIII73з МГц oпyскaетсЯдo 13,17Мгц, зaмеl{ляясьбoЛeeЧсм в 50 pаз. MoдyЛь диIiaмичrскoй эмvляЦии (выпoЛriяющиii rсoдIIа Фкивoм> пpoцессoрe) всe eщe Iiаxoдrrтсяв стадии paзpa6oтки, и тerсyщая BеpсиясoдеP,rит мIrогooпи6olq ЛeкoтoРьIсиз кoтoрьIхфaтаJ1ьнъlпoэтoмy пoЛъзo. BaтьсЯим нe peкoмеIrдyeTся (xoтЯrгo пpoизвoдителънoстъ вчствеpовыше)' 06мr:нданньrмис вr.reruнIlм миpoм пpoисxoдI,rт ли6o чсpезпPяNtoйдoстyп к сDRoМ' ли6o нeрезмoптЛpoванискатaaoroвфIrзичeсIсoro дисta rrавI'rРryальIIьIe JюгиqeсIсис дIlскlI' дoстylшЬreи3.noд эмyляToРачepeзиIrтеPфeйс]Nт 21h,чтo oбссIeчивaeтдoс'гaтoчпoIIaДФсяyюзащиTyoт вpeдoнoс}rьrх пРoгрaмм'УIIич' т o ж и т L с N { o н| | | I ) n в i I l j l l y l о l ] и t l с к l о P / ю o н и . м o г у т . l l o в o Г o с е o с т а J ]Ь l | Ь l е _ | l е т t
Dos.вoх хoPошoгIoдхoдит c 60лъптиliствoм дляэкспepименToв Мs.Dos.ви. пФкaлyi:l' nи]пьтeхиз яих' чтoнyl(llaютс,ItsпPepывaнииINT 13 Рyсoв(исIQlloчаJl,
или пoр-Iахввoдa/вЬIвoдa)' a тaкжe взлoмa прoгРaмм' pа6oтaющиx т(аI(в рeаJIъ. IIoNilтa].и зaщltщенI{o]\lрежимах (pис' 27.1).
Pис.27'1.oтладчик сUpз86, запyщeнный пoдуправлeниeм эмyлятoPа Dos.вox (нeпoсpeдсrвeннo из-пoд Windows сpUз86 незапускa€ т ся)
Boснs Пoдлипlio хаIrrрский эмyЛятop' opиeнТ1rpoваllныйна прoфeссиoliа,]oв'пpoстl,Iе смepтIrъIe lrа.{oдят огo чepесчуp зallyтaннъrм и нelrрохoдиi|Io слo)IсIIьIм'здeсъ всr
42з 'тастPaивaетсячс'peзтerrстoвЬlекolrфirryРaЦиoнньlефaйЛЪi oт troЛичествапpo' пз всеx извeстпьi! п{rrсэмулятoРoв' цессoPoв((стa'ги' вoсhs сдиI!сTвerrвьtй llpoцeссоPа!) дo reoметpиивпртyалЬ. l1oзвoляющийэl{yЛиPoвaть6oneeoдrrогo l1oгoдисI€ (рис. 27,2).
эмyЛятopа пoдупpавлeнием в l.45.Dos.сeссии Pис.27.2. oтлaдчикsoft.iсelзапyцeнный из.лoдWTndoWs вoсhslзапyщенвoгo исхoдпьIN!итоl{стaми и вlleчaтляIo. прoдyктс oтt(PЬl'I,ьlп'Il Этo IIеIсoмNrePчeскuii и )кeстких IDЕ.дискoв эмyли. (aчeствoм ги6r.(их I{oнтpoЛЛоpш )МyлЯции' щиNl сoвп{естимоcть пpaкти' oбeспечивая Bвoда/вьlвoдa! yрoв]lе пoртoв рyются Ila t I е с к и с o B с е м и ] I и з l . o v p o в | l е в ш м ип P о Г P а м v з м и ' П o л l l o с т Ь Ю J м у , 1 и P y е т с q Bпoлlle Jа|Ilиu|eнный г P ж и v п | ) o Д с . ( o P зB' о в с я к о м с ' | ) ' l e еs o . l , i . с l а п у с r а ( т с я зaвelllивaя пeриoдичeсl(и неста6ильн0' (пpaвдa' нссl(oлькo yспсlrlrlo ра6oтaeт виртya,J]ьIryюклaBиатуpу)' иMeeTсЯ дoво"'lьrIoпPиЛичIlьIйинтeI}иPoвallIlъrи oт. виDryальных тoчeк oсTaповa и функ. лaд.,ик с пеo.paпи'",,ньIм lФJrt'!чествo]!t ций o6paтпoй трaссиpoвки, к со)кzЙeнию, нeвьiсокая сI(oPoсть эмyЛяции ile iioзвoЛяeт зaпусltать III{l(aкис эффективная тaктoвaя частoтa l{oегo гpафи.reскrrе систeмы, Cудllтe сaми
PЪniiurпIII733 МГц пaдaeтдo 1,49мгц. этo )кескoлькoчасoвWiпdows2000 6yДeтзагpу^cтЬ.'?|
P а 6 o т J . д и с | , o в ы r , и^ 6 p f u o \ l и| ' P а Jи J o в a l l r ч P p el т o v р с l o , l r y д a М а к i p r e л я т нe roняЛ. ПодДep)киваIoTсяToJlькo фиксиpoBaнньle Диски, a самrr o6paзъI сoз. пмe дaloтся виel!нrrмll сPeДствaмI{oт незавIlсимЬlх разpа6oтчикoв, К cчастью' е г . я в о J м o ) | ( н o . г Ь п р я ] \ ' o г o д o . 1 Jс|D, а lR o М г p и в o д v ' l I o в о г к ф и з и ч P с I . l I v
гибI(имдискaм прямoгo дoступa Irетlrr пoToмy' чтo6ьI вынес'Ги пapy файnoв из вt{рTуaЛьiroii llаши1{Ir],rтpиxo/lится наllpъIвaтъ зад]Iицy. BoзN!oХнoстЬ рa6отьI сo snаP.shoot'aми такжe oтсутствyeт (пoд sЬap shoot,oм Boсhs пoflrп'ает oт. IIюl1ъне сoсToя}1иевЛpTyаЛьной мaшиньI, а кoпию се экDа11а'кoтoDЬIli ttаi{ нa
фига?)'
эlry.{яTop хoPошo пoдхoдит дЛя иссЛeдoваtlllя виPyсoв и oTладки изврaпleпнь1х
rтрoГpа]!In{, в Мs-I)os илlrтepминanЬiroмDе,rЛмe Pa6oтaroщих LINIX/ъгeeBsD. a таю1(е экспeрlflliснтов
с pазJtичIrъrми фaйJroвьlмll систeмa]!Iи,
tvllсRosoFт VIRтUAL Pс нeплoхori кoмп'ePЧcсIс ri эiIyлятop' рaспРoсTpаняIolциiiся6ез I'IсхoдIrьIх тeксlDв' пo зaтo o6еспe.пtвaюп{иIi пpиличнyю скoрoстъ эilyляциlt' lIpсвParцaющyю Pеntiuп III733 Мгir s Pentjum III 187 Мгц (дllпаNxlЧrскиii г,n,u,l* nn'v,''о.l,.l u 6 c с п e ь и л l ' е тп o п д е 1 г к t (вvс л х м f , , | | и I l н ь I| х. o l I J r r д4 ' и . r r ' r . с к o г оп l ' . r r с с с o р n )
Pис. 27-з. }4iсrosoft virfuа]Pс эмvлиPyетвесЬкoмпьlотеp цeлиEoм, включаявIos sefup
425 кoнфrlrурировafitячсПoл]rосTЬIo эliyJrиpуетсяANII вIos (с вoзмoя!11oсTьio _ Prз setup Рliс. 27.3),чrшсeт Iпtсl 440Bх, звyкoвaякap,гaтипа сгеatjve LaЬs Sound B]аsteг16Isn.,сlrгевоiiаЛаптерDЕC 21140A 10/100и випсoкаpтаS3 Tгio I(oн. 32,u64PСI с 8 M6аliт паNlяTивa 6oPтy,B o6щer1lдoвoльIJoвнупitlтс.l]ьlIaя фпryPацltя'
семейства Wi
lloз3оляющая
зaпyскaть
сoврeмен11ьlе oпepацпoн]1ьlе
сIJстеltъ1
dowsNT x !.r€ e вsD с <иксaми>.
и oптичесIоrм дискa]u.)кест. Иirеетс'r во3i!ожlloсть ]tPяlrогo достyttа к гrr6кI.Iпt I.Ileдисrrl{э!уЛ'шy]отся lla уPoIrнедвvхкalIanьrroгo ]{oIпPoЛЛePaIDЕ (см, Дoкyмellтацr,lrона чItпсет 440Bх)' рa|rмenrаЯсьna вппчестсPс в вllДе /.lпIlaм]lчссI(ol.o ]Urи 4xlксиРoвtltllloго фaii',tа-о6рaзa'ПPj1 жеЛaIlпIr мо)кrro взаI1]!lo,lеiiствoвaт! BIlР.гyальньlми NlaIп]наlI11 с хo3яiiс(оii опсpацlIo!lпoil сис1'смоii п oст:LllЬI1lll]\1и nаlllоI п"!'I вllP'l.уilJlьпyloJIoкaIьl lylo .]€ т ь. o6a эТ].!хN1етoдa ч€ P сз Раз/lе-rтяeiuьIс с xаltсpсli()ii тoчIсlI зpсltuя lIе6сзоrrlсllьr, поэтoltу llРи иссrlедовaниl'i аГрессив. Ilьlх l1Рorpallil rr нll]!1rtуч|пеIrе llpIlбclaть, запvсхa so|t iсe эпrуля'гoра вариii IrозавсРIL|1lеT l{ с.'tiаЛ еIl l l lo. п PrIl Iolll,r-r'rre Pа6o. о'с,27.d)' BстPoся. в ь u ( а в а Я( J | c l l y l o l ц с с с ) ( ) 6 | l t e l п0l n I t а ! r | | | | Ь l ] тy вllР1уlU|ьIloii кnк оTсутс,rrryсTIl в03i\1oжIlостьсoхpill]с|]l.|,lсoсTo,lньlji o'Гnil/lчllпo IсYTс1.IlуеT'
l l l l я l } | l Р T ) , t l n ь l l o j i N | 1 l l п l l l l Ь Iс l I ( ) ( ' ц е ' ' l у l o l J l t l мl l o i l p a l J l с I J l I с N lк u e n I у . l J с с i J 1 o с у I ц ц r ' г I l с | l l ю о Г p i t I l | | ' I t I в a c от 6 l r а с r ь r r p и п r с u с r r l l яД a l l l I o г о э л l y Л я , I l ) р а 'Б у Д ъ o l I 6{:сl|-1lT||I,|пllIрoд\rкToNr' сr.o 6l'l'lrrl бьr i'rоrrоro сln!]o Pскo]\IolvкЛlа, J Л']]яilксilсР|l. с (|)liiJк'rЬll"tu Сllсl.с]\lа]\lltlla lIPсд.\ е'r o6pсTсlllU] llal}ьllФlr llo l)a]PуlI|сlIl,llо/ i"|(]IlTolJ i l о к T i l l ю l l Л 0 l t i t ю i l а l I | | Ь i х ' I l o э | о Я | ] I l ol I o с ' ] \ ' I I ' г с х l t o I r с | lк o , l . ( ) р ь liсl i l | | с f ( )l I P o О г | ' I j с ( l l n i t ' l . l l i )У l ' к r | { ) Y | ' l I v l . Ь T о n | ' к о д с \ 1 ( ) | с ' Ц ) a l l l l o I l I I y I' соP с l l t ( ] ' р a б ( ' l , а к ) l I l v юI l i r I l l n J , ' ' l ' ( с l I I I l l4 5 j L l l с i i ' | | ( ) ( l Л l.]r r : r . rтlp c 6 у r o r п v к t p с Г l l с , ] . Р i l l 0 1 I( il t I I Р o ч с N l 'B | | a l l I с i i с'l.l)illl0' Гl!с
Pис.27.4. PeaкцияMiсюsoftvirtuа|Pс Hапoпьlткyзaпускаsoft.iсe
VM WARE (lTкotп{уPсн1'овjleil Епiе oдин кl:)м[eрческиii эN!уляТор(pnс, 27,5)]r]oв отJrичI,Iе с'Гвп'гелЬнoсТoяпUiй своих ,цe]lет(0со6ен110в светЕ тoгo' чTo пol(yпат! его пI] сooтсчествeнпIrк всс РаrIlo Irесо6иРасT(я)' Cкa)ксN!сpаoдип здPaвo\1ьlсЛяпiиI:I зy _ JTo ej1llнствеfi]tЬIiiэl!lу".lятop,с1a6UJьнo пollдер)кrlвающnir sol|.]сe и }.lIеюЩиji Ра6отатj, сo sl1aр.shoоt'a и,
Lкoрoсть эмуЛяцrrи_ вьrirteвсякиx ltoхваЛ.Pоntiцm IlI73з MГц пDевDашaeT.
.1
в PрllIlJJn lIlЗ,}tj МГ|l
lTU.сГЬ
Jа\|P!jчl'|.я
| l I l и \ | Р р | | l bl д в o P . / ' I l o . F о . т L | o
D м y J I и р y I o T с ЯP h o е п i x B I O S 4 . 0 ' ч и п с e т т и I i a I п t e l 4 4 0 B х п L s I L o g i с R L S I 5 3 C l 0 х l U I l г а l 6 0 s С s | | o , к U н 1 1 o ' 1 , | . |p|,l l цL . P ) { и Ь а ю J , , Ь , lиi ]| l r y а 1 L н Ь e ) ! ) t . д и ' { и , n а J v e | , . | o ц / c с я в . i h f , ] \ t и ч e . к о м| | , 1 и | | t l o в " н н o мq ' " i ] л c n 6 . 4,||к' Paзe' ПPи )кeЛaниrтпto]rrнoрa6oтaтъ rr с IDЕ.дисltами, нo;Itи нeскoJl;кo мeшeе пpoизвoД TeЛь}lьl' Tщaтeльпo спpoeктиpoвa]l]]аJIвиРTуальная ссl Ь lIoзвoляетэкспеDимсl]тllDoватъ с (,с|rвЬ|\I|| ЧеPв,lMIl' нP oIJnl аясЬ' ч,|o odи ||JPазчт Ul''IoпlloIl '(o;пLю'
РD. тirlжс
||мсn]|сявоl]\lo)кlIU(.D|lI'я!lo|оЛо(T,.лiкГи6,rl'",ro.nр''r,n,дn.o"мnp."дс'r " v l , l Р л a пк и с д o с т o й н o i i] а ш l r , o й КopoЧе гoBoPя, VМ Waге пpqдстaвляст сo6oii мнoГoцеЛeвoii эмvЛяToр, пPиIoД. tIьiii для лю6шх экспeриNIeIпoвlзa пскЛючrппсм ,.p. вo u." кoм..,yu..e, дЬ6n'o" ся ltoрмaлъпoи]loд,'{еp)ккпзвукаиз.пoдMS.DOs мнr Так r,lrleуД:Lloсь'в,ro вpемя кaк y oстаJIЬнЬIхэмуJlятoРов с этlп ltc 6ьlлс)lIикaких ttро6лепr, ПРП всех дooтoпfiстяах V]\,IWагс оп пc orпr..lrяс.гoст:LпЬlJьrеэмyлЯтoрьIl oсo. 6ellнo те l]3 Iulх' чтo ooдeр'(ат интeгPиPoвilllltЬlс oтJlа/lчлir]tl PасlIPoсr.Р ltЯются в I'Iсхoд]тыхтeкстaх ll 11oзвoJI,пoт 11согpаI,тlllJеlllIo PaсruIlPя1'ьсвoil фylIкцпoII.LiI' Пoэтoму ltи лo6едитeлeй, rlи lrрolll'pав]rllIх r этo* сравпertпu нст' ilо6oц1o"т
P,с. 27.5' oтлёдчикsoft.ie, запущенный.oд Windоws20о0,пoдy.pавлeниeм эмyлятopа vll WаIе,зaпyценньlM подWindows2000'Heт.этo нe peкyрсия, это прoбo эМулятoPтакoЙхopoший
427
oснoBHЬlEXAPAктEPистикиHAиБoлЕЕ пoпyляPHЬlx эмyлятoPoB H . 6 л а , o l r P ' ' ; г r . e . в o ; . I B " ^ | v ' , о р о в в | , | j , | | | UBt Ь ' . , r | | Ь . р г ь v t d
Dos.вoх
эмyЛИpyrиыx1 кoличеств0
U1|
вo.hs
t,2,4,8
тaкгoваЯ 1 3 . 1 7 l . 4 г ц 1,49Р]гц эффектИвная
1
1
189lvlгц
зз6 l"lгц
н aP € п t U mt l l 7 з з Дa
эмyляции динaмиЧескoЙ IDЕ/фикси. IDЕ, Aинаl'1и.
всrроеrrвыЙ отЛaдЧик да, нo
IDЕ/sсsl'
Да дв
Paбoтасo shар.shootЪми
PAзHЬIEмEлoчи rrс зai\foРiu(IrBаeтoснol1!JуюсllсTe}1y' soft.iсe' зaпущснllЬIii гloll эNlу"]lЯтoрol]| paзРьlBая сосдlrн0ulUt с l1lr|сpllет(lNl,l]e зa\{oРaжlг с нс за,гьIкitяWinAnrР, i\IsDN вpcllсliи !l oсTanляя вая часы сrlс,1е]!{llого дoсTvlllЬl j']I вOiill] в вllРтvалъ Д"1явиpTуаIЬIlоii liашj{н!l с nai]еР]JогоДrlскl нс116х0д1111lr пьiй Blos sеtф (в чaсTнос]Tи,ts VN,IWarr это дcJIaстся на)l{[|Ilсli ll-та]]пuЛl r].rв0рхi F2 во время нaчiulЬlroli зaс,гавкll) ll в 11еllюЬoоt вЬIтЯн\.тьсD.ltoM (ll\r вlIрЧl oДиrr I'!тoT lrrедЛс]Loвьпio6paз мoхeт6ыть подIi"llrчсн к нссlto'rь что Nlolrrот6lrтr' rrсtrrlлъзовaпoд.liя передaчI1фaiir|on мe'L аjlь]]ЪtмNlаrlrrlllai!1' llу пиNIи lши сoвNIесTtIого11спojlьзoвaнxяlФnЛохеппIIi .
всс огIпсьlвaеItьiс эмулятopъl lroryт 6ьlтъ нaiiдс]lr'I в OсJe по 1tх IIllснI1,
ГлABA28
oБлAсти пPиtv|EнEHия
эMyЛятoPoB
эityJDrт0р кoNlJ|Ьк||срll - BonDкм в(xl(l,J l{сi!' бы Uьl IiJ1 6ьI,Цl| - lll'('il]1]IlvTl,l]!l ||oJ,Ьз('jа1.t]'{0nI.ilil]\ll,lll||с1.P?lluJх)]i]jIIpоl.РаI|мll(l ()м ItЛtt llа)lto ll()lll](t.l]vюlIlIlм хilltсроll' . )ItyrlяTоl) I]ilс lrЬIPуЧl.ll.t] IloNlo)(e].' lrссl вoлl)oс l],]\]iI' коl'/lа tt I(aк. Bот oб JToм lл,r lт сo6rrpaомсл paсскaзaтьI Э:ilулятoprn Ilрочлo no]|Ul|r в llaпlу }lоlзIlЬ и llo сo6Iiрilio,гОl 113llсL' llrп(у/lа vхoд|ттЬ, llirIrpoтt,ttl' uис:lсtпtrrcrl rrх rroго. JIовья illll('кl'Iтся с кil)к!LЬli!1/.illell, lvlы нс 6уllсNl PсклaмпPoв;lть кl]к]lх'т() кolш(. peтI|ьlх lIPсдсl.аlJIl,l.o'цcji эToго в|ulil лусть кaждый вь16rrpаeT эIlуЛ,rтор свorii мeч,гЬI самостoя,|сЛЬllo, Луч1lIе NЬl расскaиспll чтo с эт!tNt сaмыIr э]!!уляl.llpoit! ]\o){llo сдсЛа1}l Tо сстl, как пl)aвиJlъl1oеГо у110TРс6ить. Iloрy.rпки| l{rr с"това о том, что6ы кyдa.,ro зaс]уllутьI
пoлЬзoBAтEлям вoo6pазисс6екapтиlly,гЬIчитаeшьвI(oмIIЬioтсрнoNI)flyРнаЛeIlРoзаl'ечaтель. IrуIo llгРyпп(уj заlоpаelпься eю вссr{r,i4'l6Pами душlr п вдруг о6пaрyrкllвасIllъ' ч1.oна твoeii oсII oria lle идст, Прямo кaк о6yхoм llo гirлoвс| хvnie всеrо пpихoIl||.oп. ILJoвiГejяN|.пr BSD l | | р | o л | | ( с н ' . Л ( . l l l д, l P \ | . u, дln n. WiDdows пlссгa нe ,каЛl{o,но п€ p e3аLPу'(aтъся к кдьlii раз' что6ьl" ' запyстиTь иrРу' пе1.уж, yвоЛЬте| A cс".1иэтo rltpa пoд N4aсили soпу Plаystаtioп? Cовpe. менньIe апгIapатньIel'oli{ltoсти пoзпo"lrяютзaбьiTь o poд'loм <Eiejreзe)и эмy.nи. рoвать вeсЬ кolll]iьютep Це.lllкoN!' o'ГkРьlвая 6eзгрaнrlчнЬтймиP пpoIpaммlroгo
429 o6еспечeпI,я. TепrРъ вьI уrке irе пpllвЯза]IьIк l(aкoй.тo кoвкРеTlloй пЛaтфoPпle яезависимo ]lля какolo кol1rlъloTepaoн1{ Ir мo,r{стсзaпусI(aтьлю6ьle пpoгpаNrп{ьI, Х.Boх, Главпоe найти хopoший sп{уZХ или 6ьrли нaпlсatrьт SPЕСTRUМ (Pис, ,.lятoP 28,1)I oс||"п,]Яoп''PаUIlo||нJя.||с|гма(тa||nпи|сяrак6ы.l.уIlд.l\le,Гovд,lЯц(Лoгn зoолaрrta гoстоil, oдпy Irз клетoк этolo звePlrнцa мoжno (Il пyxoro|) вьIдеJIиTь .rli- п|н.oс'Uй||ик,и3вес,нo,Ч,oIlnиус,lJlов{enoвоЙпno I l ' д . в о e o 6 P а J н L |' й r.paм]!tът въ] всеl.liа рискуeтe уpoни.II oпеРaциoнrryю сис1еIltу_ I'з-зa кРиtsol.o инстir-цЛятоРa,rroнфЛuкTa6п6лиотск' Add-Wаre илtI пPoстo кaрllа y пeе такaя, Пpot.раI'r'Ьт'пo'ryченIlЬtеи3 tleIJaДeлtньlхисToчпиltoв!лyчrnе дrP)кать noд:Lпь1llе от вссх oс,l..UIЬпьп'ПPoстo tsьIдeлитеI'м oтдсЛЬIlуloBиpтy:Lnьllyloмaш!ну в эмy лятopеl п хPсtt ollи BьIPвyтся oттудaI
какoйу тeбяэмyлятоP| Pис. 28.1. He ваxнo,какаяу тe6яoсЬ|ва)кнo/
AдмиHистPAтoPA}t Для админrtсTpaтopoB эмy-цятoP _ этo B пepвyю oчсpе/lь ltoЛllгorr для всевo3Mо,кllых э]tсl1еPиlliеtlToв.Пoстaвьтс сс6e десятoI( различньlх UNIХ'oв и изде. вaйтесь llaД }rими пo пoJlнoй пporpaмме. УстaнaвливайTe систсl1y' снoситe ее rr снoвa YсTaflав.пивaйТе|сIIeгIraпoдкPyтив кoнфигypацirю' нa Pa6oTy ведь
4Зo
rлава 28. o6лaсlипpименeния эмyлятopoв
пPиr]ипraют Jie пo ДипЛol,y' a llo спrцпа.JlЬнoсTи,a сIIсциa'1ьнoсть пpиo6Pстaется ToлъIсoв 60ях' To )fiс сaмое от]]осIiтся 1I1{вoсс1аt1oвлeпll]сlданrlь]х' Бсз спeциaльноii поjl1.oтовки Disk Еd itoг fla сво ей pa6oчeli мaпiIrнe лyчшc всегo ]lе запyскa,rь| a Disk Doсtor теNi 6o.liеe'ЕIeT ниIraкoit t.aparrт[и, чтo oп деliiствIr Tсльно BшJlечIlт д]tсltl а не прeвPатIrT eгo в виrrегрст, I(oрoчс roворя' эI'Iyля 1oP Jтo всJ]иItоJeпilьlй тостовI,tй ст€ н Л' o l{oтoроNJPаIlьпIe rlс пPихo]tиJloсь B 6оЛьшпx оpгаrшзациях а]1}]и1lистраl.op всeгдa ДсPnr,rTIIa резерBпoМ кoпlпьIoтePe тoчrlую ltoпиIo ссpвrPаj rт всс запЛaTlrl снaчa]|ao6кa,гЬlва!Tirа IIеii' в конTopах помеl{ьшс oтлеJlьllоii ]\'aпIлl]r'lпoд Эl.()11сЛоrIпкl.o ]rе дa(1.'lt прlrхоilиTся пPи6егатЬrr эмyляToрУ, lln llei!1жс т€ с тtlРуloтсЯ l)азnlrчньIеJксl шlrlrтЬr' ЕсJlrI фaкт yязвимo(:ltl ]1oдтгlер)кдастсЯ'llpt1!п]\fаloTсЯoпсрaтuвrlыe ]\{еРrillo ее усrPане. o6щениe вrrpтyальпrlii luаllJиIlЬ](l ()сIlовIJоiiо]lеPaц]l()ttaoiiсtlс,l.сilrоilп lЦ)угl{пlп вrjp,гуаЛЬпьl]ЧIr п1anпiIlanlrI o6ьIqlft)осу lсстRJlяcтся vерcз .lroка:r ьttуto ссть' Bиp. туаЛьIlylo| Рa3уNlсстся, Пplr riа.]ичЛjl 512-1024 М6аjh. llапlяпr Nl(D(llo с()3/1аlЬ 11астoяulиi1(opпoРaTl tвн Ьiii ЛIl1.ранrт. с sQL- п WЕв.сeРвсPаIпI' DМZ.зoпoii, 6]]aliдмayilPoil l't II€ с кoЛьfillllи Pа6oЧ,I}пlс1.illlцltяrlц'слo6rцlto умепtaклдtr:iIIтся вIlу1.рlIдомalДtlсгo кol1,lЬloTcpа (Рис, 28,2)' J]учIxого |lo'l|r.,гolIa дJUI 06учсlll]'I сeтсЛьllllпpeмyl(poсlчIt л llс lцlltДYм:rcrrtь'Xo.telr(l' -. aтакуii, хo1lспl|' аllllrlll -
с'гplrрyit'
,192,16вз2.254
192,16в,32 '2
ceть ]92,198.з2 о
сeть 192.168'40'о ф,]ф'30,йr r9,@rm,
192'16в4a,з2
|*Е*
]
192.168.80.128 192.163.80.254 сeть 192,168,80,0
Pис.2a'2.виpryальная сeтьAндpeя 6eшкова
сeтЬ192,168.120'о
4з1
PAзPAБoтчикAlv| ЯдРo пe пpoщаrTOrrlll. Бo,]ьllre всero эп{уJlятopьr лю6яTpазpa6oтч1'Irllдрaiiвеpов, yllllчт.'I{ая всe )кестшrir дal]ньlсl ]Laкоплеtl и мстите,rьпo дисt{. 6oк разpyшaeT it кoто. в0.)6ще 06ьr.]llоеЛелo' и зaвпсalrия roдьr, lleрезarРyзrrrl rrнorие пьreза хе 6o.пьшuнс,|вo 1rлп шopoху llrrll. к'Гоп{y It стуку колес кair lIpивьji{ас]lrЬ' Pоltу отладчиков я]1еpнoгo урoвня тPс6yсr tlaЛjJчrlя riвyх r{oпrllЬю].ljрoll' соелIrrIенI]ь1х иЛилока.lЬноii сeTью, ilriя IlPофсr:сrюtt:rпьlкlго 1lазра6от.rrrка ;,t.o СoM-xIllуPlroм не рoскorlrь| нo,', кyда их сritBtlтъ? oкPvя{ишь сt]6я rvoпп].opalltt| a tIoТ0ll каIt - отRа'.lЛсь NIoя шсЯI дуРaк кPуTuulъ uo всC сToPопъI гoЛoloii C эп'уiя,|oPоп{ всо намItoго пРoIцс, 1l!r те6е пoтеpllла11ньlхl !]1L]lсpсraгpyзок' a всю Ест€ с твеннo, ч,|0 Рa6(JTу по от..тa]lкe N1o'(пo вьllloЛtlяТЬ ]la од]loпl ltoпlllЬlo'].ерe, llcРсjaгРy'{аетсЯ вllprу. сoв(сIl yж 6ез xсРсзaгР}зoк;rсltrl пе o6хoдIr'r.ся' ll0 rt()l(а aльпаЯ машиlIa' ]\ro'(!lo дc, aтъ чТo.|о tt().1с3llоеilа oснoвIlо]I (11аlll)пI1сР'пPа3llTЬ псхoiLIlый кoД ]rpаijlreРa), I( тоr\Iy жe Nпn пto'{сj!l зilс'Г:lllIIтъ э\Jy,llЯтlrP IIIlсil,|Ь ]i() ilаll/(ьl B Jloг l] п()1.оN{по]1с]\ю'Г!еть) чTo IlРlllerlо ]LРaiiueP к сl1сPтu (rlPа]t/La' nе всс эN1y]lятoРьl это yrveloт), lrl cсBSD oт',tадчItttii ttст' a о'lrllli(oчjlос ядРo !lJ()сl|,ГR сrlсTсllv B сЕNЕтlсjЛPс п 0 6 o ч | | Ь l с э d х i ] e к - r t ' l 'в н с м ] l Р a i i B o p ] \ l o ) I { o рт i l 6 ( r l ' l l ' Г Ьl J o l ) r ' a . 1 ь l l o 'r l о б р с х l l ' | Ь W i п d о $ , s . o l . J | а / l ч п l { l lr r с д Y l . с с б я . х o ) ( и l t l o 6 р a 3 o } r 'n o к ( ) | | ч ; l T e J Ь B GЕNЕт]с'с. ]toс Tсс,l.'lРoDa)1rIс]рaiillcPa/to.lDк1|o lЦюхо/Lr ь в a6с3lr()|l|.t/Ul()ii>кoJl(l)lIгуPlLци||' Ilirчllстo ЛlILllaя pазl]a60гчикд ltссх сРсi(сTl] ol]IдЛк]t Jt пю|li.гюI)llll|а' A ЧTo lrР I(ЛaдIlьle лDоl.pаN1N'Ilсlln? эмуJIя'Гop,)| lI()ilIlоjl,ll()1.lIsl llсl))l{1l'l.l,IIO.Lрv. к o i . i B o Л l l I l с i i к у o r l с p l l | { и o I | ] | Ь |схи с 1 ' 0 A' I l o l ( с ц ) n ] l 3 a яс B o l r ' l р o l . P i l N l N l уl I o Д o ( l l ) NT ]l|l !]х' 6eIlнoсT,r lIoвсДrlilDI ка)к/loii ltз Ilих' У Winсlo\s в(сго днc сllс'|c!ы r r a l r l к l г o 6 о Л е { r п д о ' I , а U N l Х y к р y г o м rl,1o Iiих тoJlовa PaзItoo6Pаilo]|] l{ol!аpсTвo 6aгoв в тoп{'.i'|'oolllt сl{Jlol]llЬl |loя aЛятЬс'l 1!Jl ЬIto R сTРoгo oxPсrLс,]]с|l. ()6еслсчсItIIJI. ttЬIх конфигyРaIllIях' УсТilIюllка /loIIо'цllиТeЛЬllol.о пPoгPаммll(ni lrцll-сI]lпцll, а у)к Tcм 6oЛеe псPoк()МпrtJrяцx'l я]Iрa ]\{o'(e1.rlхс]IуГ]lУTь' rl TогДa A этo зI|а'll1т, ч'l.o lLo Tех lloр, Iloкa 6ar lrс 6у:rст rrАiilеlI' rr сliстcNс flllчсго }ltпять нсnь]lя. Hа oсlloвпоli Nlаrn11Ileэто тPc6oвa]lrle Rыпo.nl]rt'гЬза'гPyдll,tlсльпо' пo зaТo ЛeIIсо на эI1yляToрс! B!1Ртуальна'l маl1|l'!lla, отключclrrlaЯ от сeтп (]l топl чи(Лe и вtrрTуальноji)' ]l зaшатах lIе rrylrДасTс,l, но ](ajr '(о то]Цil o6.uсllпваться даlr. пь]ми? к вaU]иiV yслугам дискcтa rl СD-R, эмуляToРы пoзвo'lяют создatsаTlr <]сЛeпкп> сoсToяllnя d]стl] самoe гЛaвrroc мЬt ll вoзвPащiIг6ся l( ]]пм в 'lю6ое вpсlrя, lцlиче]vI пeоIpанllченt]oс l(о"rIlчсствo с6оя (Тo есTЬ опредс Paз- ЭT.] знaчи.l.е,'rьпo },пPoцаeт задaчу восlIPоlrзвеДеIllrя чеI!'гаItoil сxсl lо lt о |l,lliчaется oTдilIl. еr.o вoзниi{новеrtrtя), .reнrтя o6сr.oятe,.rьств слеДует пз сr.() llaзпarп]я. пPи с6ос? Кa]. rl сrlс'|еr!к)ri с6pасываeмoгo пa пaмяти' _ сl |сте\lьI це a <сЛexoк' всe копlпollcнтьl тo"!ъttо пaмять' сe6я дal{rl вкЛючаcтв ,г' п кoнтpoЛneрoll д. паillятьl лI.кoNJ:дисIt' регrIсTpЪI РaзPa6oтчики сeTeвьп пPиJlo)кепIrIi от эllyJl,lToPoв вообпIе Ir поjlнorr вОстoI]ге, Раньlпе вeдь l(аIс: сTавип1ь втoрoil ]toпlпьютeр, сa'(аепIlr зll нсlo )liепу ]l дo.пго и нуДпo o6ъясняeпrь, кaкис к"'lавпппl eil нa'{llla'l)'' TепeРЪ '(с oтJа.:rка сe.Гeвъlх I]риJlо'tении упpoстIIлась дo пpелeЛа,
4з2
rлaва 2a. 06ласгипpимeнения эмyлятoрoв
xAкEPAм Эмулиpyroщиeoтлад,тllкипoявилI'Iсъ eщeвo apeмя Мs-Dos и срaзy )кезавoе. вали 6eшeнyюIloпyляpпoсть.нeyдивитсльноlPядouьreзuщ,tтпы"'"xaнизмьl примel{яютдвe oснoвньIxпleТoдикrtд,]я 6opъ6ьtс oт;tадvикaмrr - пассlIвпoe obнаpу)lreriиe oтлaдчикaи aктивrrъIйзaх!ат оТлaдoчтrыхрeсyPсoв'lIелающий oтлаДкylleвoзмo]i(нoй'нaэмyлиpуIoций oтлaДчик9ти дeйствIrя икак ]iе - oll ]Iaхoдитсяllшкe виPтylllь}rorюпрoцоссopа(a пoтoмyРaс. IIРoстрnIIяются для oтлаживаeмогoпрlIлo)кeниясoвeРшefiнorтевиДим)и не испoльзvrт никarrих РeсyРcoвэмyЛиРyемol.oI1рoцессoPа'
Pис. 2a.з. oтладoЧная вepсияWiпdows 2000s китайском ислoлнении слeпки оистсмы oчeнь пoмoгают вo взлoI1о llpoгpaмM с o.pаIil.tчсrrriъIм срoкoNr испoльзoвaния (pис.28,З). ставим прorрaмму' делаем слerloк, пePeвоДиl{дaтy' Де.Дaeмeще одиtl слепoк. CМoтpиM' чтo измeнилoсъ. делаeм вьrвoдъIи oтЛavъг вaeм oт пpoгpaммъr ЛиIrIIие запчастЙ (PI{с' 28'4). B лаМepской Pедакции эТa метoдика вlrIIлядит тarс: yстaнавлI{вaем защl'lцeннyю прoIPаNrп,ry на oтдeльяvю виpтyаЛьtryю машиtly. ДeЛаем <сЛeпoк>.Bсe! зaщrrTe xaнa! Скoлъкo 6ьI I"rьIпe заIтyсIсали(сЛrпoк'' oнa 6yдeт lraивнo пoлaraть' чтo залускается в пepвый pаз.
4зз
эвoтические эмулЯтopьl
lle сl{o)кетопa пPлвязЬIвaтьсяп к o6oРудouан1rю о6opудoBаtlие эмvлятoPa н€ за!llсxL 0T lL]lларaтI]oГoоJrрvжeнпяj прелостaвляя пall ]lеoц)a]lичellпуIo свo6o лу вьr6opa rttlс.'tеiiпeго' Пoп]-тaо эм!rlЯтoP oсв06о]lqtaer.oтпeoбхoДиrloсTп сTавl1TьЛot1аetIyloпpoграп' llv rrа свою oсfloвн}tо Ilашltl]y, вo-первьIх' rlеxoтоPыe lIPоrPaммьl' oбнаPy,{ив' чтo пx jlo]\laют'пьl,rаl()lОJliilli.lo I|аllа]tосГuтьI]a Bиj1тс,A ссЛи да]кс и не ltaлa. кo.]тят'
тo l{аti ]ltI'Гь ]1а1'll (l!'l|or]iiT' 1:ll( llусl.ь
jlyчI]]с LltIoчиT нa эlly'ltяTopе
_ этol
l':r:tLt il
t'
'",: ;'
o(
l
сgd
Pис. 2a.4. ща мЬ ee хак|lем] кAк нAстpoить soFт.IсE пoд VмWARЕ soft.iсeпoдWindows 2000/запyщенsoй из.подvМWаre, нa. пpи пonЬткеиспoлЬзованил soft.iсepа6oтаeт тоЛькoизteхt.mоde.pexима, развeplутo гo HaвeсЬэкPaвGaходимв FAR'жмеMALт+ЕNтЕR. затeмстRL+D),a вo всeхoФальных peжимахнаглухозaвeшиваeт систeмy,Ехаяньй6а6ай!кбатиl пoдW]ndows 98 oн чyв сгвуeтсебявioлне нopмaлЬнo' нo пeрeхoднa Windows98 _ не вариaHт' N!Meqaи yсгpаNеtнЬй лишьв Dlivelstudiовеp. этo извe-нЬй глюкайса'пpизнанный этoимевуeтФ(поддеPхкoй VMWARЕ})'noдpoб' сии З'1(вофициальной фopмyлировкe ngsоftlсЕ'рdf' !oсrи Moжнонайтив докYМeвта ции(см' \ФmрUWalе\Dr]velst!dio\вoolG\L]s прилoжeHиe Е _ <sottlсеапdVMWаrе'' при этoмв кoнфигypациoннЬ й файлвиpnаль. iой машины (имя aиpтyaльнaЙ'мaшины.Vmх)нeaбу'oA|'1$a дoбавитЬ стpокY * 2 и vi}тOuse.pгеsent * гАLsЕ'мышЬбудет]тoлЬкoона svgа,maХFu]] sсгeelrRefгeshтiсk пeоeсгаHeт 6ытЬвиDrvалЬнoй'.'
эк3oтиЧЕскиЕ эt"tyлятoPЬl ПoмtlNlo эпiулятop.Jв РС' с1,ц".6191,9161,.',,.e кoЛllчeсТtso эnlУлятopoв саI1ьlх (pис, 28.5)' нaxPиI'сP' сoтoвъIх тсЛсфoнoв, кapl'ан. Pазноо6pазнь]x устРoйсTв
4з4 ttьix iомпъюTеpoвl кottтPoЛлеPoвлифтa !{'г.д' Bо3ьмеN1сотoвЪrйTеЛефoп'ott tlс сoдep)rqт сpедсTв pазрa6oтки' а знaчI'T' зaпpolрa]llмиpoвaTь егo| llавя rlа кJrави. rr'rlприiiципиallьнo lrевoзмo,.нo (а сРeдy paзра6oтки ,r.апI пoпtешIаTъ пpoсTo IIе. кyдa тrехвaтaeт ни 6ЬrстPoдействия пpoцeссорa,lпl llамяти)' Boтп llpихolll{т. ся iтpи6eгаTь к эlt1yлятoPаll. эTo дa,ке rIе вo]lPoс yдo6стBаl _ эTo вoпpoс въIxиваниЯI
Pис' 28"5.эмyлягopz80 для Есlр8иваемь|x усгрoйсrв
ГЛABA29
ЯдEPHo.HyКлoHHAя сМEсЬ,
или чEMoтличAEтсяxP oт 9x сo:цаЛ Wiпdolvs 98 -саl!'аяvДачllaя oпepal(иоlllIaя сIIстсIli]lIз всех кс]г/la.JIlrбo ч 1 ' o 3 i l T Р у / l I I и Л п a р o д R п)I(eлttс пЬIх Miсгosoit' oнa пастoлько у/.(аЧllаl /tа){e _ llil сс lloдДсР)кI{а rlPекРаlцсl|а l'eрехo]l WiIrdows 2000 п Wiodows хP. УвьI' ссJI't ^1ьl:JTofo Ilе хo'Гrlм, гollоря'Г, в пoследWjlldows хP/200з пellз6ФксIr,да'(с пиe мII{oвенlIЯ пeред сl1сртЬlo чсnoвсl{ всIIoмпllaeт RсIo сIJoе IiРoпIлоe _ свoll 'ДoбРыeи пЛoхиe дсJia. llo oпcPацtrolllla.'i.исTемa Лe пa,lе,ella создaпl'е]v!].IN{о '(eT )l{иTь тoлькo в пanrих ссPдцaх, Bот l1 Дaлаiiтс срaB||'Iпl ее я/lро с я/'lрoII WiDdоws NT' что6ьI знaть' чтo ]\{ЬlroPясIll а ч l.o lloJ]учilем I'allеll, Пoкa пoклoннишr Wiпсloi,s 98 размЬlшJlяlот _ сToЛт ли им пeрeхoдпTь пa хP ]'tJlllпрo/цoЛ'(aтьиl.пoрпровaтЬ eе сy]цсствoванIIси вIlpcl{ь'дсвс'цollсPЬl в0всl.) шTaiurlУroтo6oЛoчкI,I'рa]укрaпти]laюnlIlеI{птерфейсWiDdоWs 98 на Jю6oii }]а. чем хP). PассY}кДаяo ДO. нсp (jlкстаТrl' зачасТу]oпап{lIоIo6oлeе сиNIпaтI{чIrЬIй' . I o y р . Г в 1 ч | | н n ] o с | а с ' х г i ' l , l | ,I l , ] \U | r | ' i l , | | l ' ' | | | | ь l х . | l с I а \ | . 6 n ] Ьl с, l|п| ои - ) 6 ликац'JIi нaIlирaeт на пoльзoвaтcЛЬскиil ]1нTсpфейс' кoмrlnсlrт]1oсTь штатlloil пoстaвI(и l.l llРylпe непpIrнцЛпиaлЬньIlr хаpактсpпстjl]tи| Jrсгкo усТpalluIl6le ус06еспечо]]ия, вoт тoJlЬxo oди}l rlp'i. Talloв(oй дoпoлпитe.llьIloго прoгPаllllнoгo
мсp:wiпdowsХP ш1.aTпо пoддержппaeт NTЕs' Whdows 98
Еет,oднакoэтo
сще не oзнaчaeT' чTo Рa6o,гaс NтFs поД Willdows 98 irевoзможнa в пPliнцrrпс, oтнloдЬl сущесTвУIoт pelцIrзацt{иNTFS и под Whdows 98' xo,гя 6ЬItrзвсстньlli дPайвсP МaPка Рyссиlloвичa, нaи6oльший интePсс вьIзъIваюТиi{сttнo ядPа систеIll 1loскo.Ilь!у з&lo)кeн]]ь]e в tiих сRoЙсTвaнe пepe(Pываются пpIrRпадньllIуРoвl]см и во jtjноrоr1oпPедслЯ-
rлава 29. 'дepнo rуMоrloq.Yесь,
/Л'4-еv о-л/чаe G xD oI q'
ют хаPаitтер всeii oпeрациoнки в целоl{. насttoЛЬкo I11lс изв€ с т]loj н e н и c д U I 6 r l e ^ ll l l l 0 г o в o д и Л o ' L , Bo из6eжапиe пеурядицьl дoговoPип{ся пoI{имать пoд Wiпdo}.s
тaкolo сPaв-
NT всю лиllei,I.
кy NТ-]10до6пьlхсисTеil, a пl{cllнo: сап{vWjndolvs NT' Wjndоws 2000' Wirг dol's хP и Windo\'s 200з, Cоoтветствe]ilto' пoд Windows gх пollиllается Wiп. dotl's95' Wiпdorvs 98' Wiлdorr.sМe'
пЕPЕнoсиМocть,у|лу|мEPтBEЕBсЕx
)|(ивЬlx
oпcPацlrirIlIlая сt|сTeмa Wiпdows NТ прoектиpoва"!ась с Pазl'Iахопlи oп'|.llNlllс'l.llчяo'1 всPoй I] свeт"пoe6удущсс, Toгдa в кollцe вoсЬlrидeсятых 6yлуIllее вt,lдсЛосьв,tесткoii кollкуpеllц]lи, сЧит:Lnoсь'чтo пpoцсссopoв с кan(дь,]\! кo/]oNl бyдс]тстаllовПr'ься всс бoльшс rr 6oльшe, поэтому 1uавIrЬiillкPитcРllсlll вri6opа опеpацrrorлroiiсttсr'cмьlстnнетеe I]еРeIloсl'Iмoсть, ФoнoмeltzLпь]li]я]Iolту'l,Ц]floсть UNIХ oбЪясltяЛ.lсь oтIl]o/lь llе llРoгpаNl]llистскиillикaчeстraми (с тeхнlFiескоii 'l.oчкttзPсlIIIя аРхlГrектyРa сис'гсNlЬl6ьtла Bесьп1av6oга и яoвUзIIoii пДeii сов(см l|с б"llllо1.алill да II€ Зallи|laют мellя ес пoклollпики _ lIo этo ltстоPичсски ii ll)ак,ll)' а кoJIllчcствoпlпoдjlсР)киB^сI1Ьlх lIЛаT4)орпl, UNIX pа6oтыlаrrpaкr.lvrсItrl лeздс ()1'кс)|l гРo.n.llсрoвЛп4)'Г?l /lо кoсмичсс](их кoрд6лeй' ПPoIPампla' IIa11исallIla'дJlя olLlIoii lUlaTd)oРNlьl'I1РoсToii сPскoмпиЛяциcй псРelloсиЛась iIа дeсяToк.дpyг()ii oстilЛЬltЬtx (l!a сa^1oм/lс.Jlе]кoIiсчlIo|-l.ребoвa"r]oсЬ l]сilтo бoJ]ьцIee,чсNt пioстaя пl]PLlItoуIIll,]1яIl1lяj lIo э,to y'(3 пс суTь вanolo)' РасIUlатoii за Ueperloсll]voсTЬсl.а|loвиTсяIiддсtIrtепDoизвoдrlтс.lьнoстIl (пo/lчас oчс|lЬсvщссTвc!lноe)' Wiл(lows NT пpa]стичесI(иЦеlшIкoмнап'rсанa lIaязьtке Сu, Ассс:rr6-lсрньreстpoкlt с16lIаPy,rиваютсяЛиIIIьв,гotlкoм сJIоe a6стрaгrц)овaltп'l oт o6oрyДoвaxlrя| сol{oP}l{ащсl.oпeрвrгIIпnе ДРайвlrРьIи aпгIaРal]lo-зав]1симЬlс фyпкпши, L],пагoдaPяэтolrу о6стoятельству Windolvs NT 6ЬIJlапopпrpoванa IIа DЕС Al;lhа и нссltо,лькoдpугrIхплатфоPм, нoдoлгoе Bрeмя и.нoPиPoвa]raсь прогрa]v]vrlс,l.с]rоlioбщeсTвeIIllосTьlo'l toскl]лькy :LцeI.ватпьlхtsЬlчисJIитслън ЬIхмо пг Iкх]Tеii в Тo вpе\'IяпpoсTo ]le сyщсствoвano r' Windо',vs NT aссoцrrиpoв;r-lraсь пo меIlЬ!rсй меPe с
76,з2, 64 и |28 _ или миt1усЬ u]ирокoй рaзряднoстИ
4з7
L6, З2, 64 у| L2ц или миHyсЬl
l.llи Poкoи PA3PядHoсти
^ r . P с с с | l в l l а , l P с ] ( j | . t l ] l J a я к а r 1 J I l t | | | l , |l'I l ! ) x o n | | l \ l i l ' l 4 ) t l P l l ( r i i п , I i с г o s o l t . D Ь l д а c Г p 1 [ r | n ) j ( а с с , r J Л I J o ] J ; ' l l с j | | | | n ) 0 r | | x ) Ц ) r [ ! N l l | с , Г с l i ( х ] д o О . l | } I { о п r | eTjo з a I J I a в l l о е P'лllInrь ]lo(1()jl||с|Пo (il{)]]х оJ|.рIlllII()lIl|Ь|\ сll.тсII, (ll!а' llуl()])|Iolill|рa]l,ljчT()\\/i]l(|(^\'sl]\ l),]1r]r'
с y j l Л т ( ] с a l I l l , с l l а ч a Л а I l : l 1 1] L o n Г ( ) ч'Г(,Illl I]a (.n' lюл|loсrI]lо 32-Pll:r.
( ) | | { ] l ) i l | ( l l о | l I l r я( | | ( r l \ j l l , : ] l l | . I | l r I , | я u J I l J | ( ) с ЬЧl 1 r r < | l | r o с l | | l ( ! ] | l p с N l ' | з J l а ч с '
| | r x 'с l l I ] \ (i j y Г r i l r 1 о n ( ' l] ( ( х . | | | | l l 1ч|с|T Ь r i ) L ] х|'|.W i п t l r l w sN . j .с r l r cr r a м r к l г r6l о л o с : J 2 . ] ) i l : ] ] , u l |Ч| саj' \W J i r l ( l l ^ \ .9s \ , ' Л ( L 1 ) \l\)'\s( о j l С l ) ) { | |6LО Л Ь l I x )l cn ) , n l t Ч { х , r1l ]6o. p , l ' } p ЯI l l( ) l .I0{ 0 r L ' r ' , l l с i i с ' l . I i l U сЬ.l l ( , W r r r ' , r , ' ' r r r r' , ,r r r т ' ' ' ' 1 ] ' , ' ' j , ' ' \ | l || |l | | ' | | | , | ' U , ] i к { ) | | l l 6 J l x | ( ) ' 1 ] ' ( l l I l с , l ' l l . L r l J | , lItl|Ii ( j | | | ) ( ) l L ( \ t ( ) l ) 0 ^ 1 . ' | о p N l o з я r J l П 1 1 1 ( ; i , i l ] р Я д l ( ) l r )I l { ) / L i l . 6rЬ| | l o i l l ( ' j . с я l ) ! | l (i 1 | l l rP 1 . l ( ) 'l | с к О l ) ( l п t o J l ь i ] ( ) П а в l u l I i i с6яо J I l , l l J ( ) i ri | ' ) l l у j | , l p l l О ( r r ' |v( )| | р ( ) l l : r B ( ) ] l | П . с с, rс|рСвi сi | х Л rl I в | ) l с o I Ф п р o r . l : ! n o , 1 ( l l , г е n Ь ( lIкl )ь I х r . \ l l Ц ) ( , ! c r i l l l ] ) P i l i ] ( ) ч l | х( ' | a ] l I ( l I i i ' С o I l P . i l с l l I ] ь J c l | р o i l . с с о P I , l ( x P е l r t i l i l n l v ' , l | с l , ] 2 ' , ' l l | . | | i ' , U | | l ' : || l | ' . l. ',||||,:,l,''|.'ii''|.,'
l t . . :t t . . . П ,
llясT(Я дa}(| 6ы(]llrссI l{ то]\1v,lLoоtl зaIJrlмiloт \!сl]l,пIе ]!1е(|1.а lla ди(xс x в ]IаII,Il.ll, /1Pvroс ,'Lс"'Io'ч1 о 32 PазPял lIЬlj i t()]1с! nц]с l !сl lIlо vl IPощаc'Г пpoгPal{мI] PогraIl rIе. rlo IIoсrФлькv ] 6-])ll:]р}lдlltiс d)PаГl!сtlTьI tloдa ljy6oкo заPьr,ГЫ П Windonls 9х.ltrl. l(llкrii l)iL:!llllцI,lrЧе'iду WiIr':loNs NT ll Windo\1,s 9I с по,ГРе6ltlе"lrьсl{oii Т()чкll3Pсllll)l xсT (IlРIl!rспt l{ потPl]6IIтс.lяi\I п in oтпосIiII IIе тoЛt'кo xo'1ьзоватс.!ей' }Io ll пpп liJlаr1tlЬIх/сi]стeпппn\ п])orl)aI1I1l]сToя) но прогрeсс ]lе ст(Лг|'lJx ]\1L{L1].l1 pаJря/lIrOсTь xoда нспPсPЬtrrнo yвe.flпчItrrxется' Cеihaс актl]nпo р ра6а'Гъlваk'|с,t х86.сoв]\]сст мъIo пPоцессoрьIj поЛлeрж]lвa' Iоп],те 6.l. lt t28.Ра:]ряilul,lс рс,кlll1ьl, 16. ri З2.pазРяднЬIй ре)кI]Nlьl сoхРаIlя1.ся тоjlь'о в вllд.A эIl\lJяll'lU ll6удуT r{ут]{о тоPмoзrITЪ. Ес'Гествеlllкr' саsl Ilо се6е 64 разряДrIьIii рe'кl{\l l|е увеJlrIчxвасT сt{oPостlr o6Pa6откli дaппъlх' Il п.r б0-!ь. Il]оli}'счe'Г'v, ]T|) Iф0с,ю хllTPЬlii \1аРк!]тпнrlrвьrri трrок' Ho trам.r.o, rrонсчньrlr по.]'J0ва|с.ll'Il, oТ эToго но "'lсгчс] Windows 9х 6удеr кpaiiне нсэффе]LтI1вна н:l Tаl{uх -!lашllltах) а еe пеPeнoс потрeбу."T чудOвt1щllЬlх тPудoзатрitт' в 'ioтopьlх
438
rлава29.Ядеpнo.нуиoн!ая смeс' илиЧeмoтлиЧа€ т ся xP oт9x
никакolo смьlфв }1еT, пеpelrестиWiпdows Nт тopаздoпPoщe,и ведьМiсгosoft L с й ( , в и | с л | , , ] o с " . | е Л c н o l и т ( н } , 1 , | ив o в с я r ' Ъ ' r с . r у l а ' п L l " . | . ч
э o гдe. а|L),
сpaзy ,се вoзникаeтвoпрoс_ кaкoй прoцен132.paзpяд]roгo кoдa сoxpaниТсЯ в 64/12B.PаэрядньIх вeрсияхWindows Nт?
пoлнoтA пoддЕP)tки WINз2 API' v|лу|сBoи сPEди чy)киx y6or. Windows 3.16ьlлнeвеРoятIlo ПPoгPaммтrьIй иtIтеРфeйс и взatrмlroпPoтивoречиl}'поэтoмy гРyппe Рaзpа6oтuикoв Wiпdows 9x 6ьIлсlпорy'rerтоpазpa6отaтьпpиIrципrrалЬI{o IroвьIйAРI,учитЬшaющийгoPъкийoпьiтпредьIдylцeгo и пpизвalпrьlйликвlrД,г poвaтьelo слa6ыeмсстa. oт paзрa6oтчикoвWiлdows NT тpе6oвалосьo6еспе. чить o6рaтнyю сoвмсстtlмoсTьс winз2 API (имcннo такoe rlазвaнпeпoлу'Iил нoвЬIйинтcpфсйс)нa урoвнс oДнoйиз noдсистcмврeмetl вЬIпoлнeния. Пoна. чаJIуэтo ниI(oгooco6cннoltс взвoлнoвaflo| noскoлЬкyWindows Nт oриrllтиpo. вaласьпРeимуществeннoнa os/2.пpилo)кeния,и Win32дoЛror вРeмяoстasaл. ся пoбoчпЬIмпPоetтoм. oДIlaкo сo cillePтЬIoos/2 и фсePичeским взлeToм с WiIкloWs9х (a в сr ус. Windows 3'1 все измerlилoсьи зaдaчaсoвN1ес'ГиNloс'Ги пexeу)кeI{иI(тoнe сoмlleвaЛcя)вьlпIлaIla пeРe/Il!иiiплaп' всeхс!]ятьIх' I,Iрol{ЛиIlaя БиJ|лaгeii'гсaи ancЛjlиPyя Дикoмaтeрясьи вспoмI.Iпaя l( свoсмy с06с'гвеI l IIoмyaвтoDитeту(кo1оPыii6ыJIп()6оЛЬ'Uс' чсNty т|poнr1'иРoв. lциt(oвwin32 API)' Iсoмallдapa.зPa6oтчlllФR WiпdorvsNТ сyrцсс'гвеrtrto rtеpеpa. 6oтaJIaпрoфaммIIъIi1 иIIтeDq)eйо' к lleму мIlо'(eс.ГBo кo1oРьIx дo6aвип 4}уllкциii' ltе 6ь1Лoи пе мoглo 6ьIтьв paмкaх Wi (hws 9х. Ка)roе.тoвPемя рaзpa6()тчи(и пoслед]ieiiпыTar']исъ пaйти кoмпрoNiпсс,по поToмпоIlяJll,l, ч,Loэтo бeсno.Лeзtlo' (DуIII(IIий' pyкoйl IIa мeстoTeх ]сoтoрьlo ollrt tlс смоruи Ре. и, мaхнyв устaпoвиЛи <заt]лyшки'l BoзвPaщaющие а.lIизoва'tЬl сsoеo6раз]tlJIe BссIда oши6ку вЬIлoлliе. ния' To eстЬ фoрмaльrroфyнкция естЬ,нo тoЛку oт ltee Д ке меt!ьulelчеп!oт нaрисoванвoгooчaг^(пoмнитeБyратllнo?)' нo этo ецe чтoI lle'.отoрЬleфyнкциI,tB windows 9х ведyт себя иIrаче,чеlll в Wiпdo$,s NT. нaпри}'eр, в WindowsNT Фупкция сreаteFi]e Nlol(eтoTкpь']]aтъ пe тoльIсо4)aiiЛ'пo и уоTроiiствo (скФкeм'ф,Iзическr,iй диск)' чтo делaeтеe сплънoлoхo)Reй]lа UNIх' К сo)калeнa нeй не. нию, Wiпdows 9х таIrихrn}"тoкнe пolrимаeт|l1пoлo6ныепpoтpaмI'rьl llo пPorpaммистьIнe мoryTпoзвoлитьсe6еРoсIФпJЬсoздaвa,гъ рa6oтoспoсoбпьI. пpoгрaммьl'рa6oтaюпIиетoЛЬкoтla Windоws NT, и пoтoмy всe преимупIествa пoслeдIteйдo сиx пoр oсTaloтcя]lевострeбoвaIlIIЬIlliиI Мaссовъrйпеpо:roдна Wirrdorvs ХP ao,'ttкенpазpеши,rЬэту сиТyацию'и кoгда,нaко. нeц, Windows 9х умpeг' пpolpамlt,исты nсетo lllrтрaвз/{oхrryтс бoлъIlIимoблег]e. пиeм' Я IIeипleloпичeгo прoтив Wjndows 9х' flo пoдгoпятЬсвo]tlrрollук,гыnol{двe лиfieйки пpинципиa{ьIlo раaпичtIЬIхoпеpaциo]lllьIхсиcTeм ниI(oNiуrte B Iсай4). BъeДЛивьIечитaTeЛимoI}'тспpoситъ:a пpп чeм Tут ядpo? Be,цьAPI _ этo )кe приклaдIIoйиrпеpфейсIAтa,щaс,paзбe)к.Lциоь| этo всeгoлиIшьo6еpTкaвoкpуг ядрa' имelr]ro ядрo зaпpавЛяeТ памя'Гью, прoцeссaми'фaйЛaмии пoфуtrкций
пoддерхм
4З9
o6opудовани9i ипи сапе
,1oкаNrli,ип{еннo ялрo oграПиquваст вoзllоnoloс1ll ]1Pик.rIа,]I]lоIо lrllтeрlDeriса И э r r r o r o r r ' r r . , t и ч ' . '|t| | . l | . | | , | ' я | l , : r , 1 , | ' , l | Р ' в
MHoгoпPoцEссoPнoстЬ, у|I|v| H^XPEHA кoзЕ БAяH
Bо вPепlснa сoзданrтя Windов,s gх lllnrтo пoд\'пlaтъrle lloгj чТo lfнoтoпрoЦeс соРllьlе кoп1llьloтсPъIпPIlЛyтrlа раrn).u1iiсТojl, - tl пoтolty сксl''tьrю 6ьr пpоueссtl poв lrc 6ыrrо усlтанoвлеlIo'WindoNs gх вссц1 эа]lеilствveTJllll]rь oдI1IJиз ппх.ITу ]]e IIoддсp'orвaет оIla Nпol.о]lРоцсссoРнoстп' хоTь 'ГьI1р0сIrл] A вoт в WindоWs NT лoДLсP,!t{al\'ногопPoileсс()l)lt()сl'u 6ьпа 3а.!оnrell)|1i}|lilЧаJIr'. нo, PaздejrerrlIeпPоrlсссoptrЬIхPссyPсoв aРorlсходllr lIа уPonlIе пoToкоrr.с{]PllсР. ньIе пРплo)I(eппЯ,обра6а,t.l'tваlопlrlе Iraлrдоесcl'свoс lIolotЛloчепxe П о,l',цс.Цt,lк]}l пoтoкr' лllIleihю vBс.l]]1Ч]IвaIo'г rlDoпз'olLllTenЬ|lo(LЬс]lстеI"lЬl]] зilIlllс]1Nlo(],гjl 01. I { o л ] l ч r с т в а| | l ) ( ' l 0 с с ( ) P o(rIr' у п o ч T J lJ ' п l | е i i l | ( ) | l c o 6 х о i L ri 'o у ] l c с T Ь| | ; l к J r д l I l , l ! взаl'i\|одCii(rrЛ|'l).or]lttсtп'rсжс rl тепrбо:rr:сrrr.1хг PaсхoдьI пa rvic)roIР()ЦeссoрlIЬlс l'1'|'| |l'i'',''''.
]||
'|'|l''
'',
|с'|,|,||l' |,-
,|,|',|
',\',I
в 1 ! l i l o г o l ] р o l l е с ( . ( ) l ' J ( хI'(1T. |( r) ,r unу r c P с n 1 i u m. 1( l l I y P 0 I . , ] . l l Г с ; l i 1 ]Iпl ogr I I I o | ( | r i r l l , | [ 1 Illх'lзl]о;llf
|!l\l , J'''|,'| гс]lьll()сГII'
|',о.''., '',.Р,,''
\'||i,l'
,,,,||
]'.
llo,,l'+|!|{l(\''|'']1,,\lir,'|'ll,\||l'|'','l']r,''l|,,]' JпiIпЬ o6ОЛD2lIlollIiьI. PoI{rlaNoii 'lYjL;l|(1l,:ill6L 'l.оJI бьl llас1. Ьк() в 11ЬIцtс'J|оDксl
'l1t) 6.Цl,r|аr||Ь|i1 (Ь]|]
пoддЕPжкA oБoPyдoвAHу|я,v|I|ИсAпЕP,
otJlиБшиЙся двA)кдЬl
ядРo Windоlvs 9х trс]IOсРсдсTвoнноflе PепIieт вolцl)сoв| связaппьIх с поД(eIЙi т(оii o6oPyдoвalrЛя, i't псрeкЛа/lьIвaeT]'|у задirчY нa vстaпaпnuваеl{ЬIсдPaiiвсPЬI' lIаlrpотrrв' в Wiлdows ХP пер]rIt'il1ьlсдрaliвсPЬl llстрoепlll в сan]o,lдPoj ilвтопlа Тl1чсскu иnи вpvчнylo выrnЦ)аeilioсна сTаДlIll riIlст:lrrЛяцrrr1 O]tсpaЦIIонI].Лi сllс 'ГспlIn'Пр]гIеп{кФкд0eЯдpo ]]сllo.IIЬзyет спori 4!l]]NltlTдсPсва устроilсTB, пo]'|l)rIY o полп.)Il (Jвмсс,Irl]\1oсTII Nlo,tнo толъко Ilеч1.аТЬ, Aппарa1llа"чxo]lфиГvPaцIrяWiпdot,s 9х NюжсT 6ыть шзllепelrа в.lrlo6oii ;rюllснт, B хy:tшcм слу.rаc это пoтре6ует пepоalpузкrr Qшorдa нeск()"'1ьхlхllсpeзагpr'зоIl)' llo нt]6onсс тolo' WiIdоrr,s ХР в rroдo6ньп слyv:rя)iзaчасTуlo пpПхoд]1тсяпePеl'с 1анаts.Iirtвать цe"IиiLоl''I{ i)T()вонсс rrсдсdr0ктiLPllвЬrxруrj каx ]]скотоpЬIr<спеIlrrа лисTЬl' авTоPитeтнo гоllорят. Этoдсd]сшв NloзrаxпрoектIlрoвщl1]roвсrlстc]tЬll Чaстая спrcна o6opудoвallшЯ lIа rxадс'lьцсв \'Viпdо\\s NT дсiiствYcт vrliетаIоJil." (ltoпIупоrrPaвится пeре}.сl.аllавjIxватьoперaцпol!Ityю сxстсмv]ro Irеско':rькoРnз нaдню?)' ri потo]\{уN1]lo1.ис из н!r]i пPeдпoчиTaЮTWindo\\'s gI' I{ сo'i;urеllllrо, сс
440
смeсь/иличeмФличатся хP от9x глава 29. ядеPвo.нy@oнная
IIoддср,{кa уже дaвlIo пpекрalцена' идалeко не все сoвP€ м еJrlroс o6oРyдoвaнис иltеeт дPайвсpьl, прrДназrlaчenllьIeдля Wi0dows 9х. с Teчениeм вРеifeни сптyсц||я 6\ дс1 |oЛLhо)\}Jш,ilьlq'пр}.'lPIlj|l(.кoйнJдe,кЛol,rIoвдi,loрiiUрч
W | | ' d n ц , N T o 6 p а . . N | | | . }I, l ( P / н , ] лв v Ч ш и е ' l е г | ь сl я o ( й n n д ( т в e | | | l ] ' ])l o| || ,] . ]reT,в Wilrdolvs NT 4.0 Рlu8 & P]aу.NIенсд,rеPпpедстав'llяст сo6011o6Ьl(t{oве]г ньIii дpайвер' Лo пачIlllая с Windоws 2000 о]r встРoсIr в ядРo, 1riIъi въr]ryждсньI hlJ4oи(/l\lU
o,l Ioгo. хo|им
]Гnгo,ljи
llе|' \Io)'(lIn
ll'||прсГ||
и дpуt.ие llprrмeрьI' 1Ioи 6ез этoгo яснo, vтo ядPо Wiпdows NT пoстcпсннo llPс. врaЦастся в сваjII{у,l{y]rapaзPа6oтчlllot вд-.]ятвсякуIо xp€ п ь' сЛстe a ,I€ г paд / ) l | п P я I l о d . | ,| ! а ! х , p . J в : ' | | l R ] , " Ьп о д . о 6 ' , в P , r , r o i1i q я P с Г Ь | o , ,
гlлAHиPoBкA пoтoкoB изBHE у|v|зHутPу| I(ажльIii п poцосс иl!1сс1. no Nlclll'uсi'i меPeo/urп лотoкl а ка)кдоe пРlrлo)кепIIrсoз' Л.i€ T пoмrllьlxeij rцсPсoдtlllltрoцeсс' I] NfliоroзaДачпЬп систellax потoкп uьIIlynЁ jtсllЬI 6()Ро'Гьсяза пPоцlrссoРrloс gpсм,l' си1уtlц!tя' кolДa oДиll гto'Гокoтllll]\fnеT
o |, | г Р а J I l o н | l h ' ( | | ' . с м h l l ( | . o Л | | ! | ' ' . , |j ,, .' l ' г , o ] J | , у , , U IU , l | : 'l | | | , , | |r с " | ' , ' Г n с | | c . ' , , 1 . N г,llавIIoгo pilсlloрniцl IL'nя' кooР.IllllIl]Pylоlцrло Dьlilачy пoРциll пPоцrссopltol.o врс. мсllи (ЛlЛ ||;lзьx]aк[сЯ l(вitl11niцц)Tclt ]loToкаNrll((IГoРые 6oJьlllс всcГo u IIrNl IlYл{. /xnк'гс,l' иlIaчс :)'Гоlia3l'l]аc1.ся IlJlilIlItрoваll!lс]\{' B сгo з:urачy вхrlдIlт rlьI6оР lraп6 O J с с o l l ] r ] N i a Л ь I I ( ) iсi ' l р а l . c г ' t , l I I J l n I l п Р о t l а I l и Я 'o 6 с с l I с ч и в а I o , l L с i : 'l ' < ' и ' r Ь I с | l I у l o Ь}]о(:1.Ь оI lс'Рal llnЛ l l Iotl сl]с,].сп!l)I, п Pо иil ноjtLl'l.с"'I пока к{rJll|\.с|Ilо |l()11)кoвl]спсJlикo, lIлаIlиPoвllull{у l(ос,ГаTotllto сOl.lrа'l.ьI!х B о/г I!v oЧерсЛl,' о6lrll6tl,|ЬlвaсмуЮ |] <кirJllftin,]стltttcсlсolr> пoря/{кe (в псpвуrо очo. pL,Lr,rl6ра6a,гьrвiuоr.ся rrаLr6oлсo 6oгатьrс _тьr|ly' t1риopп1.еTlIЬIсj_ л.Л.oки )' l(ilк с'llс,'lс,гI1llс_ ссJlrI nравll,r0''lьсTllo lle lIре/lпрllIlимaeT пI{кaких кoоPд],lIllтpyкЛцllх l]ср _ ( Tcllсllrte]\{в pсNlсill I 6с)гатьlс все бo,1ьше 6огаТelo'г, (),|'|lиlllаярeсуl)сЬl у ос1а-lIьl1ЬIх'.r rIllзкolIpll0pпTeTпьIе пoтolсll !loгу-г lI вовсс ]lс lloJlyчlть yлрав-'Iс|olс, 9х исlloJIь3ус,| /1oвoЛъllo пPoсTьle .LцгoPrпll ьI Pаспpcдс. t ] ] i N | о | ' | |o' ' l р а в д | i в : | o l ц r r ' г r ' 6 я , o . r ь к о | l ' | | | | L . ' ] ь , | | ' ' i j ||U,otud,,||Л'||IIlU|,'п ' l pN||| o P | | ' о | o vс, 0 6 с | в с | | н U U в o г я , П ' , 1 | . | | i I (х1)llсl|ьlii пoЛъзовaтсль Pа6oтaсT бoЛeе Чем с ДRумя-тPe]\{я прllлo'(rнIlя11r] oднo. сисTс]\lы Iсaчсст!о лЛaIlлровaппя вpci\lcнllol IloЭl,oпly llа произвoдитсльIJoсть llpa(Тuчrсxи llпJсaк lle Rлияст. B pcаЛьнoй жизllи рaзPьlв Ntе}кlry Windows 9х lt Wiпdо$'s NТ yдaсlся зап{eTI,lтьто-'iько на сrpвсРltых пPиЛo,'{с11иях, пnаllIlровlIlпк
WiDdоws
3AщищEHHoсть'v|лv| дoБPoвoлЬtlЬlи 3AКЛюЧЕнHЬlи
главнoс пpсимуrцесTвoW]ndo\'s NT над Windows 9х - этo, 6ссспopнo'еe щrтщсннoсть, сисTсмa
пoJ'IlIoстъkr контPоЛиpует
дoстyп кo всcм с11стеNIн!l11pе-
]этoпPяммlpОтlвoЛоro*jк,сть..оциalиспчeсюii}oчePeдu'rдeвсeочePeдн!кuимcФtравjш'e
441
сpавнитeлЬвaя хаp.пepиоикаядерWindows9x иWindowsNт
сypсaмl ч t.o пPи пPaвI.lлъ1toи пo.nптrпie адllllнllстРrlpoIrаl IrtЯ суl]Iеств'дl п ю vI{с]]!L , ' , в . D o l ] Г | | о ( т D \ , ' r | , и l . o n ф , , . р | | U l I i Lь | \Ь.|, , | | ] | ь |lх| , , | | \ l , ' l J | . l ' | |О| наxo 6о"lьпIlttlсTвy дoilаI]ппlх jl oфис}iьIt пользogaтс,псlli пр.rс1! lI.чсгo rr IIе о, Irогo заtцищaTr', Да и o кal(oй ,ащI1те rlo)кет ]lllтx pсчь' ес,]JllбOxьшо пo.nовlrпьl устaI loв11вl]rЛхWin dolvs NT l]oстoяaIIo вхoдя1.g с] lстеri)' пo.1 а:rlnIн IIстРaтoРoII ? | C o6ывaтс,.lьскoй
точкl1 зPснItЯ, \\rjrrdоws 9х flaпrяогo 6()Jlсс дpуя{c.nю6ша l| де.
ru(niрaтпчнa'чем Windo$,s NT' кoтoрая 6Jloк11pvстпpяr\foiiдoстrл lr о6оl)}'rLовilxlrюl нapy lая ра6oToсll0с06нlrсть мlIoгrlх N{s-DoS проl.pамм (да rr rrc ю.rькo nх), I{ oгpoмIloii ptцoстx l.сiiпIеPoв'Il Windo\.s ХP появллtтl эlrу.rятор 6''LасLс. 'li,rl раj rсplrув Illil к nal3lUl illfloгlrc старъlе IlгР\lшxи 0I DoOI,1 2 t] тоll чllс'ie)' \|l| . л
Wiкlolvs Il IIЛкакоl.l Ilо1.' л
|l eit ||г '"dUii ,]
| | , | , 1 , | о| , | , ] | | l I i i , ' ' | ' L n ' , ^ l l , | ] j ! ' ' I l I l , "|фоl,\|nIi все 'lгPьl в l l('pвуlo oчrРедь 1.с( I] lрvlотся ] I \](lI LII0 l loд псe'
9E' пoскo'lькy гаPаuти1Il
ч'Гo llгРvlпка
ке eс'llll сс сoздаTeJlIl
]t Tо\Jу )ft] с.llcдуcT
lla соп\'сс'11lNloсl
хP'
у nl.
',
]loi\IIlIiтЬ' чT() всс за,Illl,ГI,J (1)i'lаr
чlrстiIьIх J|к),1lii, УвидЛ1 ll оl.oiiд.T
11оPма,lЪIlо i|аl)aб()l.nсT II,r \\iiIj(Lo\уs
прсTсllrvют
д,rlЯ Гaкoii ||а двсpll iNi6a!l|Ьli.i зilIl!IL, ]l(),1с,)Га(r!|l()Лс|]га.'l
l l l ц о " l i l . о з a / l с р ) r а T ь T l l ' l | i l l l 1 ' " l l I I в о гJoJ з " ' l о l r r r 1 r r к(ar r ' l l l 6 o з д a р r r r l r r l в l l l o r l .
lIlllJtlrсol.l)()\1IlьlN1JJoNloп1)llиоl(ltI]i]aмокIlссrJо'rс1]|I])llПo,{c,liссПnl1.J'Ll|,arЬ ( 1 ' ( ) , JI l с с х p l l д o с l . и ' { l l : ] l J и ] v с г а I | а D j | | l Л i l я v l I l j l x l , l o р с l I I о , L ' к и| I i |( ) j n l l l х l 1 | L a т Я r r l r ] r ' J|()BсPхзtl0o|)r к()JrФ|уk) |IPoво,!окv,
сPABHитЕлЬнAя XAPAктEPисти кA ядЕP
WINDoWS 9x и WINDoWS Nт хаpапePиФика/ядрo
16'и з2-разрЯдный код
пoлнота пoддерxки w]nз2
З2'paзрЯдвыйкод, в лeрсnективе
поддеpживается Чапично пoддeрживaeтсяпoлнопЬlo
Mloгoпрoцессoрнoои качесrвoпланиpoвaния пoддерxкао6opyдoвания
чаoЬ дpaйsерOввоpoена в яApo и требyeт nepeуФeвOвки сисrемЬ для свoeй замень
oт непредуMЬ|шленlого взnома
гЛABA30
PA3гoH и тoPlvloжЕHиЕ WINDoWS Nт i486C-' apц rnх:в яшpепся'.. PазPабoTчltl(и 'lД)a j tсr|о"!!ttIтсЛЬll o ii flJсTеIll)l гoвop'l-r| ч1.oоtlo /цеT пиrцу aссlry ос,гa'nЬnollу. И )'|() отпlодl' llс IQеу|lcJlxilсп],tсI lla lIrюхоNl (l)уllдallel{тс пI,lчсl.o хорoшol.о l]с lloсTропIlllI lr кaчсс'l.в(' ядpa в зrlачl,|с.]tьIIoи мeре oпрe/{eJlяoТ llPo. liзвo/llJTojll,Ilос'rЬ Bсeil ollcPaциol111oй с,rсTeмы в цсJ]ONi' B кoi{плект пoс'r.aвк W i!rdоWs NT вхoД]r,г6oльlltос кo,lllIчсс1 вo рд]п.)o6Разн],Iх ядoP ( в тoN! числе I,Iнa. шyIк]лllIеr Ялlro I486с,Ilо сЛухаlll' знаЧrrTсnьlю yI]eЛI.IчIrвaloщсе6ьIстpoдеiiствlIс сxсTсl]Ьr), каl( oцeниr! Лх llроllзвсlдитс'llЬн()с'16? o6ьгlrlые тссTLlPуlolJIIle пaке Tы дJl'l э1ol.о пe пoдхоl1яTl и aДекватIry1о lllrToДnкy Лзмeрeпlтй прихoдlll..я ра.з. рa6а'Гыва1Ь саNюстоятельнo с учe1.о]!{аpхllTeк,ГvPьl яДpд Windows rl спrЦифЛ. чeсIсorl на]lPав]leппoсти
вoз]Io)](еllllь]х пa нсгo задaч.
Бо-1ЪшllнсТвo пoЛь3oватслоii и сl]сTеNlliЬIх адl1и]r[сTраToРoB 'g,IrrуT с 'IдPoмl naзпачeIJньIl{ o]lcPaЦ!]oппoli сr1сто!oii nРIl еe иlIстaпnяцnи] совсрше]lпo rle задyllЬг вaясь о тol!I, чтo сl.o ]!jo)кп.r зallс}lrlTь дpугпl!f' в пIтатrrыli кoмпЛект пoстaвки вtoдIrT 6o,]lee дeсятI(а PазЛичнЬlx ядepl и eIце 6oлыI]eс xх lсoЛичe WindowsNT сTвo l1o){сT 6ЬIть ]IайДенo нa ]ЧroсToРaх иптеPнета' l{скоToPьIе прoизвlrдитrjnЛ allпаРaт]l{lго о6еспсчс}1ия oгlтli]\Ilrзируют ЯдPa l1од сRоI{ l{aпшньI, и зaчасTyIо эTа o1lтимil''lЬIIoстъ сoxpаt1ЯсTся fia 6oлЬilпrIiство ос'rirjlЬl lrnх' суп:{ествует п{нсние' чTo дPсвtlиеядРa (BсeепIс совNIесТllN!ь]eс ]loвoNloднЬшr! версия]\и wiпdows) наl!I1о. го пPoIIзводlTеJlьIIеe совPеllсн}iЬlх' хoTя и yсryпaют шl flo фylllсцrlонLnънoсти, o'гдeЛшolю
pазгoвopa засJlyж]1вaсТ ].lс'|оpl1яс ядРом I486C, oл'ГимизиPoвaнньlм
пoд 80486.машliпьI,oнo вхoдиJювo rrсeвеРспиWiпdows вплоТьдo NТ4,0, пo
qly/r}pа cдра
44з
за.IспI Iiеo)кIlДа]Ilt.J11счeзrrо'п \\rilldolvs 2000 въrш'rа улrе 6eз негo, oднaкo . W i ' | { \ х P в ' , п P ' ' \ , 1 4 , Id | | o в L , | . q . | ' Ч | , , , o o н o - л n г U d o v в r , r| t|:|( , | | г o . пзtroДrtTс'IlьностьсIlсте]vlь], АвтoP,знaкоN!ыriс нпмепIе сo вpсNI€ I rWj0dоlvs NT 4,0' подтвср}кдaет:дn' увertllч]llaет' осоrrеtllо на мeлЛепllьlх пIапт']Л i, l{ЛЯ тсoРетIr Чссrroгoо6осl!oва]]l' данноrо qJaкта116ъr.r]а ]rаlтисанаЭта г-laвa. Pазупleется' саrvo лo сe6е яЛIro 1486с нe пасToлько интepеснo, нто6ьr улelrять сllly свьппe 15 сTptнlrц, llaваii,l.с пlьrслпть 6одсс гЛo6aльllo, ядеP ]\II{oгo, а и]]стрyllelI1.oI]д.дЯollе]lr(rl ltх 1lроизвo,1llтеЛtl]toсти flе сylц""ствyет(вo RФкolI с.nyчaej n о'ГкPЬrтoпtдoстvпe llет нII oдноro)' l.еi!l нc п'ellee Tаxoii ппстРуNtсят при ,{eлаlппlпк]ж]]o PазPa.]оIаTЬи сa;\loстoятeJL'нo,o нelr мьI' со6ствeппo' rr сo6иpа' rltся I)aсскnзат!
стPyкryPA ядPA Ядpо \Vinсlоivs N1.tlllсlojl,| Ilз дBух l(.rlкЦсRьlx кoIJ l lонсrjтo l]| ||1.('сllLiIJе sцstanl _ (]1(],.]\lЬl (Лаnсс lrо Тскстy кljltNЕL), lrc|lo.r|ttI]Tс.пЬJJl)lj РсаЛl,lзouаIпюii в (l)aii.лс ntoskln|'eхе' ll 6ll6Jii0тск|| ;lIlLlаPат|lьJх 6с,фilк]'\|1i\ IIа].(]К)ае АЬsl,nс|iaпLaцaI (с()кP^Iцс|llrо 1,,,11-)'llРсЛ(l|аBj|сJt]|oii(l)niinoм HAL'DLL, l-Iа саNl()ll дс,rlс lINlеll:l ()aii. r | о U M о г у r 6 ь i . П )Л Ю 6 Ь I м I l jJ i l l l ] i t I l l l ( | | l i \ к ) с (' Г) |1|1' . l l l l aЯ / l P a ( ) ] | ив a p Ь I | Р у ] ( ) r ( , 8 l ,lo. I l o Л Ь I i оl п I l l х ) ( х l r | х ] д с J | а х , l,,lсхoдl tirrtlкltrrtсrlrtrlя rroс1pосl||lЯ Wiпdows Nl' l IPсlЦl oJ.]itгiUIасoсpс]io1tjl|пТЬ вc(Ь сllстelll!o'3а1]l]сl.lt{ьlii кoд D IJAL,с' r'с|Iojj'3vя .гo кiu{ (l)уlu(ilNIс|l'г/LЛ'IlJo3/1ви)(lIl.U|сllсltil]l().Iltlзil|]l|(!Iм()iil|сllо-ц]IIl].сxi'||(JiiсllсTevь|,'Iоu(а]l-'lяlIoPснoсaя/lрa I I a I l о ] ] v | 0l l ] l l T 4 ю P N l v 6 J , | ц o6 Ы , . l l ) ( l | а 1 1 ) . l Iпl сol l с l J l 1 с t l - гоь/ t . l I l 1 I A L ' п c т р о г а л l l П . ч с l . ( l о с ] ' a n I i l I l ) | 1( l ю l t p . l i i l l с i i r \ l o P 0T с о P с T | l ч o с к l t ) в д 0 i i с , г n I . I T с J Ь l l o с т l i' { с э т о Т Р с б о в а | l o T a к l l I l с 6 ь l L r oл r ' r r l o " ' l l r с r l r .l ,r6 o : r ь r l ю е к o . 1 I л ч с с т ) ](ol 1 с T с l l п o . 3 a ] J I l с j 4 . ]\'oгol{oдaIIpoсolIlr.llосьвllспOЛl]11lс.ll],]lvlо(]lк:l.o]\{v,itнАLlQсврaтпnсяв(llJour lIor]ItагроNlо,{l{е||llсjIlс|спxft:l1(|)j1цIIPy0NI|,iх()уlrкЦIrii,тссuoJlерeпnеTсrtньiхсIlс. п о л l J ] ] T с , r l l l l о i ' lс l l с | с I ] o i i ' , г : l l ( l l , L o , ] l в у х y р o в l { с в а Я с х e N l t l o P r . а п t l з i l ц l l я д Р l l
в п.|с1.oящсс IrрeIrя IrllItrlялri1' .,(oвo,]r LrIo vс-цоtsuoii.
Ис]lo"']нIrтеJlЬ||a,I систеrrа Wirrdоrr.s N'l. рсаjlI.Iзveт вllсокоyP()вllсвЬlc фуlllilIlIи управJснlrя oспoвll Ьl^ЛrPесYlr(ilм] l ( ILаIс1.olla\lятьlo' (laiixаN{lt' пl)oцес]сalIlJ lI пo. Tокаlll)] B ollPсдеJ.rеl{IloIl сNlЬlс-liеяIUl,l,Iсъ опeрац]lоннoli]J сllсTсIloi,I rr ]\п.lпI]а1rOPс, БoJrьIl] ll tlсTвo эT]l \ фyl j кЦl tii с"ца6.rсвязlurы с копсцryктивпьrlrrr осo6енпостя rr и ко]]]tPеТнoii iLппePiu.vPьr' oпrl nрактrIческr.] ]rс\]енЯloтся oт одllоi }tсrlоnнlIте-rь. нol] сIlс|сIlьI к друr.oll ll l]дlтljaltок) пPornв()дxтс"tЬIjЬl (иJlи непроизвoДl1тс.']ь
пЬ0вo всехя/(рах, o6осo6.лснная чаtr.ьrrспo.nпTе.IIьноir спсTeмъr, peалттзyкlщая наи6oлeе низrto
уPoв]rевЬle oпi]рaциr] п тeснo взаI,II!одеiiсTвуюп{ая с 6и6'{!Ioтекl:)й аllпаPaтньIхa6. с'гpa]rциji' нaзЬIваe'Гс'l ядpoпl (КЕRNЕL). БоЛьlx]J]rс,ГвoядеРных пpoцeдуp ]lpсд. пазttансньr лля сугy6o внутРelll]сl.o пспоtrrЬзoванLIя lr пe экспoртIlруlоTся (хoтя npисy'Гствуtот в oT-lта.цоЧньIхсI.l^Iвo.шх)' a те' чTo эl{спoртЛрУютсяl 116ЪIч]10]Iа. .trлtаlотся с пpеt]lиttса Кe (пoдxPоrраl!мьr ядpa) пли Кi (о6pa6отка пpеpьrвaний
444
WindowsNт rлава з0. Dазгoни тoDмoжениe
r"""".;;ll
os/2 POSTX
Ntdц.dll
ди0пgтчoPоисEмнЬ|xс6pвиоoв (вьLoыва6мЬlэ иtпoрф€ й сь| pфм!]а ядpa)
дра
*=Е "g ёg.* E нq йE Е5
Е9
Ё€
Ea ёЁч
gA
l=,
5 Е
9а'6.t
вх!
9ъ ч
:
УpoвэнЬ а6oтPвlиpoв6tlия oт oбoPyдo84ия (HAL)
ядpаWlndоwsNт Pис. з0.1. AрхиlЕктyЕlа этo yя(е]peтьeyпoминal1иeяДpa'котoPoeмы встpечаeм|чтo сo3дaeтoпP{-'ДeЛенЕyю nyтаIiицу' Давайte пoпрo6yемPазЛo)китъo6pазoвавшийсятеpминoЛolичeский кавaрдalспo пoлoчкам,lla сar'{oмвеPхпемyровнс a6стpaкцийяд. poм пpиIlятo нaзьIвaтъсoвoкУIтiloс'гъкoмпoнeнToвoпrPаЦиollнoЙсистемьI' кoльUеtiулeвогоyPoвIlя'спу.1 ившисЬ pа6oтаюшихl]д лpивиnсгиpoв]нl{оl\{ пoltи,сel l(ьi увидим'
чтo яДРo oтilюДь Ilе мoнoлитнo
и сoстoит как МиIlимум
из
ЯдPo Windows NTpеa. Дв}твaстeй:сo6ствeнвoядрaи зaгpркaeмьtхдpaйвeрoB' (пo сyTидeлаяв. aппapaтныxa6сTPaкций Лизoваtloз двyх фaйлaх:6и6лиoтeкe сис'гeмс и испoлнитrJlЬтIoй нa6opoм пеpвичньIх ляющейся дрaйвepoв) (pис. 30.1).вы6opoм исполнитeльнoйсистемыpукoвoдtrткJlloчКЕRNЕL фaйee c ядpом|хoтЯ эTo и,re сoвсеMверлa boot.ini,пoэтoмv мrror.иеaссoцI,rирyют нo, вo rre6удeм дoкапыватьсяДo стoл6а'вeДьфyндaMeнтиспoлнnтeЛьIloйси. стer,{ы- тoжe ядpo. и это ещe далeконe всоl IIoдсисTемыol.Py,(eния(wiпЗ2, в пpиклaдньIx Poslх' os/2 ) имeют своt сo6ственньrсядpа,сoсредoтoчснrIъre
445 6и6.rrиoтеriaxпeпpиви'.rеIиPoвaннoгоPеЦIl]v!aTрстьeгoкoльцa, и общaroтся с яд Polt Windows NT чеpeз спeЦ[аЛь]ryю <пPослoIiку', реalизовапЛу1o в фаil".tе NтDLL'DLL, яДРa iтoДсисTеп1 o кPy)кe]IияItpсдстaвляloт сo6oil сквoзньrс пeрeходrlпки к ядPy Windows NT п прaктп.lескtr пoлlloсt.ьro a6стpагиpoвaньr от r16oPудoванпя. прaюnчсски' Iro lIe сoвссмl llекoTopaя пoPцltя сl,lстerI}loЗаl]Ilс11iloгoкol]a пРисутствyети з/I€ с Ь. МнoгoпРоlIeссoрньlе в еРсиr] 4raйлoв NТDLL.DLL и KЕRNЕLз2.DLLД'1ясинхPorI]lзaЦиrr потoI(oв rlсtloJrьзyJотпlаl]ruннyю комаrlдy LoСK' в oдIIoпpoЦсссoрнъlх I]eрсияхirнaтepяет сlrьrсл и замсняeтся 6о.'r".с6ьг стpoдеi]iствvx)цсr1 кoп{андoiiNo P, l1aвер1lяI{aсущcстBуlо1.ll дpуrlie рлr| tlчllЯ ' 1loя тaкпe сil€ ] lиаЛъ11o не искaл| пooкoльiсy их lJJrlянuc rlа пРon]вoДllтe.nъlrcсIl с'i(1.сIrьIIlезпaчl1тeЛЬно, ]4з ]rссгo этогo 3oolIаPкa }raсIr пeрвуlо oчеPель 6уlyт интеpссoвать ядро lrсlto.lr' нliтc.lьпoй (llстспlьI lI l{AL.
типЬlядЕP .Гt.tп
вьt6t'tpаеlroгo ядрa olIРс]tсJIяo].ся как aРх|lTсI{TYP||Ьlмu оф6cllll()с|'lNlll кoIJ. I { P с 1 r | ( ) i l' il I I r а p a T U o i iЛ Л а 1 . ( ) o Р м ь I1' . а к п . Л l , t ч I l l , l м lllI Р с д п o ч т с I l I I Я ^ I ji IJ ( ) n | , ] o п а T с ' Ля сrкj1.сN1l,l' o6yUlo!-,|eJ ll |ЬlNil|с]lсцl кl]nкоii PсU]асiЧьlхJадa'|. суlцс(lЛlvсT |к) \lсIlI'. JlIci]iiljсl)с lIя-l'ь oсl|овIlьrx кPlToPlIсu кnaссIl(hxкaIuIll Я,1сl)i
.
(IntсlPcЛtiuDr/IntсlltаnjUIn, Tr1Il пnaT4юPNllJ сolrlPаqsystcпlPГo' ^s.ГlvIаЛ haLlrn);
.
к о J l l l t l с с T в o I I P о ц с ( l с o Р o в( o д l I o i l P o I l c с с o P п l , I eи } ] l ] о l o I l Р o l L с с с o p l | Ь ]Лo / l P а ) i
. .
коJЛ]lleс.вo yстallовJlellllоii паrvя-ГII(]]о l г6tliiГ' сi]ЬIшс ,1 г6аiiD; -|и|l кollтpoЛ].]ePа tIPсPЬIванIIii (APlси PIс я;1l]а)i
.
1 ] ' j I к o P | l с 3 o г o п e Р e l r l 1 с Л 1 1 т с л(ЯA с ] ) I . l l l l с ^ с P ] . ' Д P t l ) .
o.rctrtlдrю, .rтo ядpо дo.ll)rllo 6ЬlTь сonNieсl ]!1Ос llc';lcвьl\l l]poцoссoрorl llilуPоl}. l l с ] 1 l ] o l t ч l l с t г oк o д а r I Р a ( ю T a T ь в н а I l 6 o J l е е с с т с с т в е l l I l ( ) I ] д , l t ' я L a Г o l)l])(иN|с (6l-l)aзPядIlьIri пPorlесс0р' IloддсP)кIIвакЛllиii apхIIтеILтyРI 1A:]2' сlloЛ(c,Г рLl6o. тaTЬ 11сo с'rандартl'ьIl!1 32.PазP,IдньIrl я,lР(Jм' ilo PазyNппnI1 1.аl{ooРсЛlr,IIIе ]lс llil. зoвс]xь)' ДаIl'Iaя гЛaвa о6сvж/.]aет вolpoсьl oЦепк]l сPавIlrlте-.lьпоii пPoltзвoдIt Т с J I ь н o с т п я д e p в P a I l к a х o / . ] f l o й a r l l l a P а т н о i i п . ! а T ф o P r v I ь I 't l т с l I a в ъ r 6 o р a пр.rпeссoрa 3llссь нe зaтpaгивaеTсяМнorопpoцессоpltьIе ядPа oтлriчaются oт j\lонoпрoпессopнЬIх преlкде всcГo 1.с\tl чTo oнII <видят' всe yстаI{oвJreнпьlе IlPoцeссoPьt п vN]сlol.с Лпlfll взe]1lloд.iiстBo вaтЬj noзлaгaЯ эrу зaдачу IIa специaльньIй Дpа]iвср, всгроeIllrЬr]i в нAL Tак'ке в пlDi карlll,Iнаlьнo пeрeра60тaнr'I мехaflиз]\{ш синхPонПзaцl!l, Есj1l в \1oIlоЛРOцессoP]tых ядpаt /]-ця пРeдoTвpaщения пpеpьIва]]rrя критичноIo yчас'ГIiа I.oдa досTатoЧ tlo всrlo лrflrть пoдTяlryть IRQLк веpхпспrу уponlno rrлп зa6лoкпрова'г;, прePьIваnu,] комaliДнoI:i CLI,то в мнoroпрoцeссoрнь1хядрахTaliaя стpатeГxя !жс пe срa6aTьшaeт ведь пa всех oстfu.Iьtlьlх пpоцессopaх прeРывa]rпя РазРeп]сl1ьl Ir пр].iхollится прп6eгатЬ || с|1uLl\o\|aм (oI aЫл, spirr loсk _ взaпllo6"rокrrpoвка).
I
I
Nт rлава 30. рaзrонитоpмoxениеW]ndоWs
446
вBоitитспец11альпьrй ll.,Lя 3arциTы учaстI{a кoдa oт 9}lепIaтеnьстпa пзвнс сис'гема в сllеци:LпЪнyю oчеPедЪ, ЕсTeственtlo' зaltрoсьI постyпаlolltrr€ сr{"!:LцьIвая фЛаI. это тpе6уст пекотopoго кoJIичестBа прoцессoPнoгo вpем€ н rr' ч1.о IiегатиtsIlo скано дPyroro вЬ]хoда .}-нас rrеT, Значи'Ге"1Ьнo зъrвaет(я llа пPoизвoлптсJlЬlloспr, пpеpЬrванrl]it' веДь тeпсPЬ пpпxoдиl.ся lt сх€ l lа llj.tспетчсprr3ilциl1 усЛo]кjrяeтс'l пIc,кду lIескo,пЬкlr]\i пpoцсссopalпl, а тa6лицьr o6рa6oт oдrпr нa6op IRQлслить ч кoв аllrlаРaтl{ьlх/l1рoгPaпlIlIIьIх IIpсрь]]]аriIlй rl()ДдеР)Itliвa1ll B сoг.]iaсogаш]lоNl саlloи сTpaте. состoяllltll' I,Iзмснeп'Iя l{oсIlулrrсь и 1lла]1иРовщикa' а тoчl1се I{ак пo сl'lN{Nlет. гl!l'1 ]ULаiпrpoва}1l1я пoтoкoя' кoтоpая No'{eт 6r,l,].ь|еaлпзoвa]la Cl1l!NleTpпчньlс яДрa(aиx6L)ЛьIIпrнствo) P!Iчноii' тaк ll llо aспrчмс,ц't.Iнoii схeп{е' свo6oД]]oru пPoцессoPe' дunу.no.,'. вn.no,.t"lш,е ка,кl1()Гo rrз xoТокoв нa 11106оп{ зa oдtlllN{ llз пPo. nоТ()кп 'l{ссТl(o заltPсlLJlяloт сl'l01.е]!l1lыс асrlмN1стplrчнЬlс )ке AсIrмn1сTpич. rrа Bссх осTaЛЬrrьrх' rlессopoR' вьlIюJIrJяя ItoJlъЗoвaTеЛьСк]Ie пoL(]кl'l \vjrrdоws NT П о6ьIчн() lIoстaвки к()\{плеx.t. o ,'n'" o,pn u" u,ul,' "тaIilLаРтIrЬ]й AсlrпIме'гpи.t. о6оp1.довatl шя' сoоTвс l.с,гByroщсr.o llPс/()стaвЛ'ЛoTся rIос'Гaвциrrа \1и (oдl1l! l,lз пPo. сlllIмстpllчllьrе errьIlьI' чсill ||ЬIеядPa liесi{onЬко Niенсс ]|рсЛ]звoди] сЛo}lt' o/lIlаlto их llaпilIol.o pеNtс l lt1 l IPостaивaсT свoс1.o l] ' ) цс((l)I)oв 6()ЛЬllJyIо ча(|-|.ь зaгJyстll.rl 3Jlo6lIьlii пoтoкoв !lи 6ьI lI;lrlтrоpлпвr'х ,..пo,rькo .'"" *"u..ц'"'n",iu,, х:u(сPl аilillиlrlro,|pa1'оP вссгДa Nio'(сT o6еЗoРуxnfП] пх' всдЬ сrlст€ I tlяыe пoтокl1 вьJIloJlIlяiотс,t llа о]./lсjlЬllolli Iфоце(|сорс| N{Ircl.oпРоцсс(x)plIьIс Ядра слeдyст l'lс. 'Гo]lЬl(() Ila ]!1lIогоlIPoIlrссoPIlьlх cи('Гсмах' в гlро'Гrlr]пoм Фlyчa€ мьl l|()JlЬi'ol]ll'].Ь
з l l i l ч l 1 1 ' с n ь l i о 1 l P o и г р a с N t | ]п P о l l . j I l o i L и ' | . c j l ь l l ( ) с ] .l пl р' и ч с i \ { N l l t o l . o I I p о ц e с с o Р l l ь ] e t1аTс|)i'llIскl1!]пЛa1.Ьlс о/LliIlNlllpoцсссoрoIl IJа 60P1'у тРr6ylоT сll0I цrа]D' lolо упп lr. pollc;соР|lого я.цpа (Ul1iргoссssor.kспlс|)' a pабrl'кlспoсо6rrсlс'rr' одлoлРоЦессoРirьrх ядсP в таrкlii кorкllrlГуРaIlliI.| Il1'lксl\1llc l'llPа|IтrlрotlаIla (хo,г' o6Ьl.lllo ollt'r Dсe. T l l к l l р 1 6 с l т а ( ) , r_ Р с , 3 0 . 2 ) ' симмвтpиЧнаяoбрaбoтка
AсИмMeтрич|'аяобрaботка
\r-!g!!/
Pис' з0.2. сиvмe-р/r dЯ иаси"м" piч]aя о6р"бo,ка
447
почeмунепpИгoднЬ тeсгoвЬе па(eтЬ Pa3Pяднoсть
внеI1lней aдpeс]loii
ш,llIьI ]!]J]адш}lх jlloДe.Iеii пpoцессoPoв
Intеl
Pепtium сoстаn.riяет32 6rlта' lt пoтопlv oпи нс пloryт aдpeсoвaTь 60Лсс 4 f6aiiт 4Лrзичссl{oiiпarити' ПoсtroлькyдЛя сeрnезнЬrхссpвсpoвп;rrолпtъIхpа6oвrrхстан циii эTol.o оказarтoсьtlеЛoстато,t]lо'пauttttitяс Pсnlium Pro rlrll]'iпa шиItш 6ьIла y!сЛllчсна дo 36 6Iiт. в pезyлЬтaтe чегo 11ь]t1oJtvчи./п1 возi!lо)кlIoстьадpcсoвать впJloтЬ дo 64 Г6аirт физ!Iческoй пaN!яти' llрl1 рa6oтс в о6ъlчп.)r\rpФк!]!1с стРa }tич]toii адрссaцrrrtч€ т ьIpe стaРппrх 6llтa аДPeсtкlii шиньr o6нуляlотlя' и uтo6ьr rJх ijaдс|iсTвoвать, нeo6хoдrrrro пepеueстп пpоцeссoР в peжuхt PАЕ (PhцsiсаL Аddrcss Ёat,еn;io|1s' ' aI 'пп.lаloщlrirсястpуктvрori тa6"lп ц стpaнпчнoii пеРeа"цресa. циx и пoддеp'кliваloпli{ii 2 N'16aiil с,гpаllrl]rriпамятlr, РAЕ ядPа lleсl{o.пькoпpo rrзпоДtI,гc.льrlес o6ьrчньlх ядеp' ЛосlФ.IlЬl(у:lаСовьrнaютстaplrrие 2 NI6аiiт aдpсс. нoго rrр.)с1.l)аllсI!аnpL)цсссав одI{vстРанIrцy' со кpa]цая'].сiilсallьII lrзДeР)ккиlla ilеРеlоI()]1сtlltсlrоll.сl{сТa\Iс,{д},пPоцессаlfll' BьJ lю)кеTеисnоЛьзоватъPAЕ-ядpа, да)I{€ ес.rl]]v |jа(:vс1.illю']rсllо }Iсxсс 4 г6айт фпзпчесlФii ltамлтl1,oдrrаIroBъIиl.|Ц)|l',|()Il 6\,цсTrlс oчсIlь сylllествсIllIЬlii' PЬIЛ]в пPоIrзволIt'ГеJ|Ьlloс'Г'' ts 3tLgIIсxlIoстIJoт Tllflа коrl'Цю.пJleра1ц)сpЬrваllllii,YстаUorrJIеrll|оГo ttа пlатсPиtl. i,t()ii ILlrатс.(l.]IсдvстnЬl6lЦraTЬЛl|бtl I)]с ' JIи6o АPlс'lдpo, PIс.коIl'ГроЛJlсPЬl п o l l l / l € l ) ) { l l r ] a | ol 5' Jl R . Q и в с Ц с ч t l к ' г с Яl . o . l J ь к o I J a N l о l l ( ) l l р o ц с с с o P н ь]I\х{ a т е Р l r l I с к l l х Л j l а T a хА' I , l с к ( ) l r Ц ю r l , r t с p Ь l I I o ] 1 l l с p ) i l r в a ю L д o 2 5 6 I R Q л l r r l о l , o l l P o I t е с с o P llуlо o.]l)aбoTкv.I]l пРo|.1lамлttкllt 1tpовttсР1C. tl APlС.I{оIl Цх,l"1сРl,lвзaliN1Iloсo. lrмс(.rиNIьl'lю']oмvРIс+J/lрoдоЛ,{||оPа6оT:ITЬЛсr\[)lс.кoIГЦ]о"ЧЛеlroNj'оЛ|l1lкO, i ] o . J r с l ) ] r Ь |l r|iii) l Э I T ( ) I(l ) | l 0y ] ] j ] д l rвl .с c | о J l | | | l l Ь1 5 I ] t Q ' . l D o П T { ) Р Ь l1х.' " l к a tя( о I | ( l r I i гYPaЦll'l llс'Гссl.Ilроt][rIaсьNIjсгosolt. ll Iю].oNlvIill(ilкjix l.ilPaI!'lltii,ч1.oсrlстlJi{a Jк]i]tlII]l(l||cT lll)l1il:'гl)vi]к0lv lIil(l ||oТ'
N'lаlсpjnlск|1с lUlll1r,Io l lo,'ulс'Pno{oii'l.L'х|I()".ioг|ll l AСРJ lroгy pa6o'raгь кaк с ACPl., Tаli l| с lIс 1\сPl,'rPaNlll' IЦl l]l0м IIс AсPI я/(l)il са]!()с1o'rT!].llьl1oPlСlrрс/lс'Jlя]o| LlI]с1.с\lIilllеi)ц:Yp(ьl lt()I{J]ькrrсрa ll 8lill!мoltсr!с't'l]vloт с уol.]nЛ1с]rJllNlиnallРЯlIvroj a ,\сPI яliРa во вссм rl()]lilГi1l.Л.(]r Iltl АСРI-к(ЛITPonЛcP фaк'Гll'rес](l.l'яIrJlяюшluiiся l{oрl1oвЬIм llсP.чllс-ЦII'Гс.цеi\I'Tо сс,гIlсn]tюii гJ|aвIloii IJIиlIoii ItомIIьlо,гeрa' к кoT()Р{)ii гI(,]к.r]]0чo]Illвсс oс'].а"'l II vс,Грol:lсTlrа, и х(),]}rэ|а ]rll1!l|l вxPтуnЛЬlIil' про]r]lIl()д l rГс.lIL Il(хlГЬ (l.lс1'сll Ьl Jl IllчIt1'(''ц Ьllо 11адaст'пoсrLо.Jlь|{у AСPI {o нтPо"!,rсp иNlсoт т.rЦeпllIlIо веlIiа lЬ в.e I)(]I.]r(T(,ikr нtl lllr olLIlo IlPсРЬrвallпе сo lrссI1ll вЬl1.o. ]й[)rцlrnшl оTсloда посJrедствlIя\]rl. |1oдpo6rrcс о6о lсспI этoУ ]l пlllогоNi /1руг{)]!llllrl рассl{ажl]ll пo х.r/{v ylЛy6jleltия lllly,l.lъ f'ilil вl]r)a lloliа соL]polloToчIlм своо впlI]\'a]пle lIa яцPс Iiак тaкoвo\Ij пРnо |к. рьlв чсPl1Ьlii ящJ{]t'
пoчЕl4y HEпPигoдHЬl тЕстoBЬlE пAкEтЬl CPeдrl иэo6rrлия тсстoвьIx пPoгPaпllI' IlPедставЛе]llIьlх Irа рь]}i]r€ ' llo)liнo нaljTи lпlo'{есTI]o уTиxиT дЛ'I сlцснкrl6ыстPoдеriствпя цеliтраiьlroгo Лpоцсссoраj oпеllамяTrll видсo]rаPTьI Irли пotспстeN{ъl ввоiIa/вь]goда' но !нe rrеrrзвeст. рат]Iв]iо'1 пьI rп]с1pYIlсl1:гьl l пpIrгoдIrЬie дjrя oпPeДeЛеп,lя I]рol13водитeJrьIroстIl ядрa опера. rIиo]]]]ой с]]сTсntъI
448
WindowsNт rлaвa з0. разгони тоpмoxeниe
WlNsToNЕ А пoчeмy6ы не вoспoльзoвaтъся
ll,rtl SPЕСwеьgti? Пepвъili r1ми.
второli - вс6.ссрвеРа, Pазве шх тlPуeт заIlуск РемъtlЪlх oфисньlх llp!tj1o)tiе1шй, o6ъeI(тивiloе вЛияI1]1е ltoнкРeT]loгo ядPa на Ilpoи3. пoказaния IIe6vДyт отpа,сaТь системьlв цсЛoм? }IeТ' Ile бyдyт,l,1вoт rloчe. вoДительl]oсть всeй oпeрaциolrlroй (кaк ero сol1JlеNlсяltик0в) Ilрoгorrяет ТссТr,I и 6oльutинствo Nfy. WINsТoNЕ пoэтoпly yслoвllях lllи1l]lмаль]loп1 кoJIlчесTвe лотокoв] пp'l в иДezu1изирoваrrlrых Ч r о l t у I l а ' ( л i " l н ы е г ' c с I o д Ь | d d п с p e к Л n ч р | | и Р к o | | Р , t с ' ' ' н c ) ч n I L | в o | ' '^ г с. я' с . (пoдсoзllaтeльIlo aссoциllРуемaЯ с eе пpoti3вo. пeль
q)онoвЬlх
пo1'oкoв
сисLс]!Iьl'
,'|о, |1о !.'''Jtl:| ''i'н j' ]|n l''l? Bano]Ь]e aспскlъl, как зlloiL]lllЛt.
4llувствrlт€ л ъпoсть'
rt 1IРсPl,l9illlияll
ll T, д,
oдIloялро,Lo.тU'iIlо()6|)J6ill'|Ь:u'Tl,,IirнllJl\11|||'',,lпоlnl||nпп'r\l'1lIl(ll,|'|.l'Р. Г o м , a Д P у г l ' е : к ) т l . U , ] , o P I | o r l l | ,] ' n n г | l г ! ! | | | r | , , ' , к i г Г | l (Ч 1 , , , l ' ] ' , ( | , l ' |Л| , | . l , ] , U , . l ' ( , ,
pll6оTil'Гt'?l\ вс/lЬ1.сстlIPуl()rrLcii сeкУl{д,lly и с кaклм uз IIIIхвnN{6удe1.пРI,lЯ,tllсc лрoгрaммe всe равllo.,' ,loстоI|o03:r/'(alIliс mстol]'r !|з сq)llI.l jIoв1.o. зaй,цeм с дРyгой стopoUьI, o6ыrll]о j].rr.,|'t' ' '' .' rГ я l o l U и х . ! J 4 N { . P o п ,l l г l ' ] v я } j L | | | о , l I l ц j l |I Iк o 1 1 ' г | | х у L | { | ] | ч ' . . ч , . 6 г i | ' ' ' | l l I L Л l , P | , | ! {o иr l ' Л o l l . l I I ' ч ! l и, l , l р с ] I | l с | l f , | l ' | , | ' ' | l | | | | |r l . ч
(llуNr,lonи,\lо'(('-,вJIov\loNlс'lгtIJ'Il1tri1n|r,|,v:t'.J|\,'||,,''t,]tI'.{)l1',,llIl,l\n лoЛIфтельrюстъ oдt{olo 3lll'cl)a сoстaв,Jl,tс'Г Ilс 6оЛее 20 ^jс (цсJaЛ l]oЧ|lоfl],Л,tJr прoцсссoPаl)' за этo вpс]\lя lt{о)R€ т в()()6цс ]Iс l|рoязoйTIl пrl oдl1oГo llерcкJrючl]' 'Io будст 6сз)к.lЛoсrrlo ('юpа|lо!alIo llия кollTeкстa' а есЛlI ollо п IlPоIjаoйде1' при o6Рa6oTке pсзуЛьTaToR' в pезyЛьTаl.с Чef.J ]!i]nlloЛyчlt\l <чl.tс'l.yю'' llРоrtзвo. сllстеNlы' I\4o)кlto ЛЛ ]lllтельнoсть ]\taшIlны зa выrlетo[' вклaла oпсPацlOflнoii УвьI! в пpoТивllo}i сЛyчaс резy.liътаTьl тrс,гxl)oваrlll,l oуjlll,l. этoгo из6rxа'rь? oT пpoгoнa к l1Pol.ollу' и пoЛьзоватeль Рас'Гср,|eTсЯi кalLoc ntс вaрьиpoвaться з н а ч n | | и е е м y в L | 6 p а | L ? B е л ь н э к o p o r r . " ' l r I u ' r l Р , | , v| | . р r р . \ | . | | | | ( n о | j q Л | , ' Il 0 20 мс) издер)ккll oт пir6()чlIь!х эффектoв кPаi,irlе ]leпoсTояп]{ьI Il нсo]lIl()рo.llIlЬI' пoэтo11у вьIдaвaTь неочипIeнньIЙ РсзyJIЬ'Гaт Ile.]Iьзя'
Win.]ows зal{ePапРсвш1rrаеT 20 Nlс'пЛаниpoвщrlrr Если жс пpoдoл}китеnьнoсTь aвтоllaтичесIttt пеPерасriредeЛяeт прoцcссоPное вPсNrя Taк' ч'Го6ьI IIсpеl.JIoiIе ]lиe кoнтrкста oсtloвнoro ltoToкa (I' 3тиl{ пoтoкoм 6yдсT TестоRЪrI,iпoтo]tI!lро' исхoдl,lЛo кaк j!1oжIlo реже' a еIo ]Iaклaдlп]Iе Paсхo]lьI стPсмrtJI]Iсь I. пyлIо' l]сTе. aск, рaooтaя сажаIo,гся пa loлoдньI1r ственнo' oстальные l1oTolill сист€ м ы сIIстсl1ьl пiL yвидI1пi при 3aгРy3ке (Й, как,!lьl Дaлеe' дa'(е умеPсннoи рьIвкамli <плохих' яДpax пoтoк]t пoлучaют yпpaвлefiltе нс чaщс чс]!l одЛп рitз.,' в llссятIr секyпд, }lе <тr1кoв>,a rтмe}rнo сеltуIIДl l,f хотя lllrтегPar1ьнaя ]lpo uзво/цlтeJrьнос r.ь с | | ( I e м ь |н e . o л L к o | | е Y l \ l P н ЬаUс с я . d о д J - \ r P о r l ъ l I r e l ' P а [ , o Г а ' ьс . e i i . | а | o . вится tlевoзмo'dro.)'
о6су.кдeниеметoдиктепирoвания
449
To же саltoс отнoсится и к иlrитатopy вc6.ссpвеpа. flопyстлм' oднo ядpo o6pа6атыnает сто тьlсяч запPосoв за пIпнут},'адPymе стo пяTьдeсят' кaкoe из ниx пPоизвoДитeлЬIlеe? А есл1r пeP8oe o6слyкивaет всех свoих кJlиеIt a вTopoe oтДаeT иI!фopмаllllio
itlсllTl)l.,'
oБсy)l(дEH иE 1vlЕтoдик тEсти PoBAн ия скмtI1те' кaкylо фr'зичeск\llo вeJrпчпlIyIlзпtеряeT06r'IrcloвеннЬIйPтyTнЬIй иJrIl слиllтoво ii термo11етр,TеNllIеpаTyP!2AIсT,116Ъcм. кa}кдьIйтесT по-свoeilty06ъe(. IiID.
ll |1о'IoиJ\'.P'lI
U р n J ' , | | | : l " | | | v Р р р | ' | | i ]п ' , , | J ч | | | e , , | L P o j . N { ' ' l . U , | p . ' l ' .
iяlrтся сго интrPпРетaЦllеiI. o6ъеlI ртутп.rгo пIaрU].aпряlllollРо]ropЦloнfurс]l cгo тeN]пеРатуpe,этo topollrо. но пpolrзпо/ltтелъпoс,|ь,_ 11етcA{пcPатyPа'Этo кolг плекснaя вeлtiчпlial li в t]llдeксахпpoиl]вoilиl.сIlьнoсLисTо'rтЪкo же сrtьIсJ-Iа' сItоJ!ь. ]tо и R l(оэфф]iциelтTe tlTe.цЛeкtу.LllЬlloсТ oтдс.1ьнoгo индllвIrд}Tl'a, ктo yrг нee геI1зен6еPIllЛl1 гanya? кTo сиЛьllее _ ки-г или с.noн? какoе из всех ядеp сапIoeпPoизводительrIое? N'Iо)кпоспopи,rьД0 хPЙrlоrы' нo в такoiI фoPмyлI]Рoв I(евoпpoс rlе ll]\leeтoтвeтa, кat( lillltимум, мь] дoлжньI вьrявriТъфaктoрьI' в liaи. 6ojiьпleii стeпelIlI вЛия]oщlte lla совокy]Ilroс 6шстpoдсi,lствI]eсI{стеN!ьт' п pазрa.
450 ooтать адeквaтные lleTolltlки тeстиpова}iия, pазлагaющ].rс!сктoРнoe пorrятиe пpoизвo,{и,гeЛьпoсTlIпa осыrярныс вeлIrчиIrьt. никакaя rueToдиI.aTeсlиpoвaния нс 6eзy]тpeчнаи oтрir,кaст лиrllь часть Ре:LnьIroй деi.tствителЪIIoсTи, лoэтo[1у I{пoлyченньIIrрeзyльl.arам сЛсдvет oт осIrTЬся с 6oльlпой oстopoжпoсTь]o' Еоnl <ФoPпIyла 1' езДит 6l,lстpсе, чeN I(аNAз' oтсIolIаеrцe пe слеДye?l чтo oliа сoхpаlrrrт сuoе пpetтllylllествo llPи пepeвoзкедвухсoт тoнн киpпиrleи' М""тoдикa тестирoвания тесIlo сBязаЛа сo сгIeцифиlroirвo3Лагае[JьIхнa систсruу заДач (y aвтогoн]llикa свoll Tpеr]oвания к мaшине, y дальllо6oirщика свoи), lloэтoп{y нrlкaкиx ltollltpeтпых peшсн]lи здссь не пPиIloдltTся _ нaпPoтив, эта rлавa пol(aзывaет|кaк paЗpа6aтыиTl] тсстoвь1еметoлlllФ сaAloстoятсльнo п кaкие пРoбл€ п {ъI пolDкиДаlo1вaо tla э l.oм пyти, ,{ пРo6лeм 6yДет illнoго,',
PAз}loстЬ тAймEPoв Coвpeпlслtlьtс ьtатсpинскltе lпaтЬl tlcсут lla 6oР,Гy IlосlсоJIьl{o llсзаI]llсll]llьIх тaiiпleрoBl l{отoРЬlс никro llс кaлибров;rll п кaл(дllli'i ll3 кoторЬIх вpс'l. сJIоI.IФllo'свoе. пly, РазJичllьlс'l,цPa исIIoЛьзyroт рa3ЛurnlЬIeтaймерьlll./tя 11одсчоr.аврс]!lсII!l ]t си. (iГемllогo пЛaниРoвa]rия, пoэтoмy oттaл](ивa].ьс'I oT API'фvнItЦий Tипa
Getтjсkсount ЛиQL]eгуPerfomаnсeсоUnteг ядер дЛясрaп]ielпtя прoизrroд!,r€ J rьнoсти IraтсгoPI{ЧeсI(r! пeдoпyсTи]llol ну' Bo всяI(oмсJlyчaс'6сз их пpeдBAptlте.JIьlIoй кa. Ли6рoвки, пeрвЬti!
(а нa IBМ
хT
сще I'I€ д lIrrствe!II{ьт]!I) вoзпик l1PoгPal{l{пPуeiljьll:i тай-
мrр интepвaлов_ PrоgrаmmaЬle Iпtеrvаl Tirпсr, плr,rсoкpaп1еппoРIT' 6ази. РyющеItсяlla миIсpoсхeмеIrltel8254 (ссйчас 82с54) и тaшиpусl'tьJйчaстo. т o й 1 ' 1 9 3 1 8М г Ц ( с о й ч a с Л и 6 o 1 , 1 9 3 1 BЛ, I r 6 o1 4 ' З 1 8 1 8N ' l Г ц 'п p l , ! ч е м пoслel!няЯвстрсчаетсянaмнoгo чaще)' что oбeсlтечllrraлo ellу превoсхoднуIo Лo тепilPentенаl{тoчнoстъизмepeний пoрядкa 0'84 мс (.1 l!с с vчr'ГомпaкладньItрaсxoдoв)' в Windows лpoДo.лrкl'lтсльнoсTь o/{IloгoтиI(aтaiiNiсpасoставляeт 10 мс' кФкдьlе 10 NIсTаймсрдеPrаетпрeрьIвallием'и 3акPсплснньIй зa пим oбpa6oTчикувe.]lriчи!аeтсистel{Iroевpeмя пa эTу )ке всЛичинv' Если o6Pa6oтчI'rк пo кaкиNi-ЛI'Iбо причиlIaмnPoмоРгаеттaймeрпoe]трepьIвatlие (an. пaрaT]lшеnPеPrnваниязaпPeщrньIиIlсTpyкциейсLI или rтePeпPorрaN'миpoBA.
IIиеNIP]с{toнТрoллеРa), системпoe вpеivя lIачIiет oтстaвaть oт реа-цьlloгo' су. щeственtio сни'(aя тotlIIoстЬи3меpснпй- Xy)ке Tоro, paзмеpeннoсть хoДа РIТ'a дa,!екo ]ic lдeалЪlra и ваpьIrpуется в ДoвoЛьrro шиPoкrff пpe]IeЛaх' Windows исr1oЛь]ryeтPIС.'гаIiмеP в oсlioв'loм д.JlяпланrrPoвarrия llo'ГoкoBl aДЛя измеPе.
451
o6сy'(дeвие метoдиктeФИpoвaниЯ
rrlrЯ вP€ п lсни с].Рe]\Iптся11спonьзoвaтьдpyr]rе' 60лсе тoчнric тaймeрьl, I'lп€ P с. ]toтдаЕи oдин Dз IIих пе /loс'Гyпeн. хoдит па PIT тoльrro 'r.ol.Дa. TайNf€ Р чaсoв pеаЛьr]оrо вреNIсни (Rеal Tnne сloсk' и.tlr сoщaщer]нo RTс)' tsпePвьIеrioявIrвlrlйся в IBМ AT, 06ьIчrroтarсиpуeтсЯ частoтoй 32'768 кгц, aв. тoмaт tIесIt]{о6rroвnяя счeT'l'Iк вP€ N I.rни ! сN'loS'.tтo не тре6yст нalи,lия пpo трамirнoгo o6pa6oтнrrкa ЛРepыванIrli, чaстoта oбlIoвленI.Iяпo уNloЛчаlIlrrосo 6ьiть п€ P eпрoграi!1NЛryouaн' ставляст 100 ].lt' но пPи ]{cnaпиli RTC.таiiмср r!1о)кет il тorдa чaсЫ 6уДyт I]дти и,lrLNlедле]llr€ r , и, 1I6ысTрее' Tоч1]oсть пoказalIий зa в!lсит ]tак oт )с'Гояll11япllтаlolJIeii 6атaPсйкП (коTор]]LяBoo6Iцe.тo tl'Il{акnя Ilе llo этo ужe нс ва)кIlo)' rак l] от 6атаPсiiка' а lIастoящllii ЛиIпeвЬПi aккylrYJr't-t.oр' ,1o6РоTrloсTиpеaJr1зaцlll,lllUкРoсхe ьI RTссo всеlJr{o6слy,l{ивaюци]!1пее кoNf. пoн€ н TaNxr, Пo заllepeнrlя]\lпРoизвoдитсЛс]i| сPедпее I]Pe\fя yxoдa ira /lФп] с.). y l!eня IlаTсрr'Ilскпe пr]aтьl вPyт нavяoгo сTaIlЛясT 1-2 оl одIIaкo lt]\1сюшLIlcся зlIачпТельпьIr <.6 снllя> сrrльнссi к Т0l!1у'{e пскотоPЬrс n:l ппх о6l{аPy}l{]tвaloт сскуrIДlJl'ч1'оотпIoдь 11ссll()' Itar]Pеll€ н Ilьtх иttTеl)nаЛaхпoP'l]l]lа]Leся,1.ь1х!(oЛсIi 'югo, IlelroтoРltс всpсии windо\Is lIсРи сo6(TjJyет тOчнoс1]1],tзlleРеlIпii, l{PоNlе ч1! c|це o/1l]чc(к,lсIjrrхрotшl3yкЛ.сl{стс]il!lосrrРеIlяс часai\lи рcаJtЬIlo].оDPеNtclJrI' 6o''Iьurс пo/lРьIвас,r.дoвrРlrcк сu(lсnIlloN]y l]Рспlснll' исtto'цllilyя eгo дЛя rtJ]tlc llo.llyrlll'LЬ oчel|ь Pсrtllя I]p()]toJI)l{IJтс.]]l,ll0(:'ги 1.сх и'цll иtIЬlх |IРoltессoв' вьt lllo)ксTс (lTPаIlllЬ|й РозyJIь1.а1., tia.]ь| рсаJt]'l]оГо I}l)€ l \ с|Jl.l 11l]lloJ|Ьilуlo,j'NtIlоIrtс тссToj]ЬIo tIРol.РамuЬI, 1l п0PoIIРoГpnNlIll1PoIr1lJli]cRTс.таймсla
Iю3|lonяст ()il"1ЬсL,I(l)]Illli-
-к)Jlькo /UlяlIepuoiLlIЧcскoi.i Рo,rn'гЬ D c з у J l Ь T a 1W' .i n d о w s 2 0 0 0 l r с J I o n Ь 3 У ФR . Г с си|lхl]оII|,llraцllи
с сllс1.cl\1llЬlмl|
LIilс?l]\]ll.
У с o в с P l с l l с T в o в : U l l l Ь I i i l t о l l , ф o " 1 . Ц с Pl l Р c P ь l B i l l l l l i i ( А d v a r r с e d P r o g r a п m а Ь l е [ n t е f i u P t с o n t r o l l с r , 1 l ' ц l rс d ( l ] а ] l L е I I l , (A) P I с ) , в о с л o в t t о r r t I l с l I O J j Ь : t Y l ( ) I l l l . l , ] i l : ' l Ilp0чсii ()спaсT(и BкrII()часr в сeбя lt Ilс. Il Nlll oгоl l Poцсссoр llьlх с цс,Гомnх ]ю]\lLl]!1o кОTopуlo llаpoдlilo l Iil Tаiilк]p' l|рс'lп.rзllач(.l||]yi()/lлЯ п"r]aЛЛрo!аl||)яllо'|oILoв и llс. OД|lаlto пpllгoll]lyк) lЛ] дЛя как|lх lIirllepсflltii ввIJду споей нсвЬlсокоii'Гoчпoст,l. осIr качcс-rвe APlС'гai;iмeр ядpll ЛСlloJьзyrот пo Irопо!lя'ГI|ьII1пPr]чlnlaм АPIс 'raiiмсpa о/tпoГo <тlrка' сос1,вЛяст этo]!] всJxrчllla спстспЛnl Лрl] l loвtlогo у)(e IIс ll.lсl)t IlЛalIl]. скоPостr']ol llo nо'цlr,ГIlкa IIдут с ltPс)кllеil 10' a 15 мс, ЕсTес,гвrннol с увеЛl lllеlIltе\l кваI iтa сoкрапnloтся l ]a](лar.l. РоваIrIrЯ сy (ес'Гвенно l13Ilсj]яrTсл ILонтcJtстов| lrc уxудIlraс'r.сЯ lljl.lвllость ltolll]утal]ыe pасriоjlЬl ]Ia пеРellllloчеllпe ЦЛlI illе)кдy нj1l!1]l,испoJlЬзotsa,Гь пoкaзrнrя счеTчпка спсTr]\{tloгo вРe]!1.н1tд,'lя apyIIl]\{Il я]lpallп нсдolIyстllмo' тaк сpirвIleIrIrя пpox]вoдjlтlr"lънoстrr AI,IC.ялсpс lrаIr lloJ]учепньrl"i рсзyJlьтaT буlIе'r зaвсдOп'o л.rжньlNl,
п'taтeрrlнсIrис r1'laTь]'поддсP,сивaknцие AСPI (Аdvanсеd сoпfigi]rаtion aпd ltенeджсPower Intстfaсе), rrNeюT спсци;iiЬпьrji тai!мсp, ()6ычlIoyпPaв.]iясruьIi.i poм элe'{тРoпитaнl1я ш пoтolly ]lазывa]olциriсЯРower мanagсmепt Тimеr' ltЛll сокРaщсtlllo PM' ЕЦс егo IIaзЬiваютAсPI'тailNIePом, шl.аT]].] oн тa(1l|руe'Гся rlaчетыPс)] ч,t.oo6ес частoii З'579545 N,IГц(так1.oB,ячaс'roтаPl.l''а, Рaздeлct{11аJl .0'з PМ.тaiiмeР в Iia исnoЛь3уlo,Г NIс, АСPI.яДра IlзllеРепlili печиnаеTl.oч]]ос'гь oт \rIA' sls' н€ ЧипсeтьI Че]!ly сal{II r.аiijllерa сllстеnjы, чествe oс]кlвпoтo PадьI' к oбвaJь тайшсp, чтo прпводl1т PМ кoрРет{тIro ALI' RCС 1le впojr]rr Рe:шизу]oT сrrп'кению llaдФi( систе11Ь] и ollсРaциоrпloй пpoизвoДr]тe'nьiroст11 нoNIуnФlc]Ilftl
452
rлава 30' раэгонитормoжение WindowsNт
нoсти еe рa6oтъr' Прo6Лсi!lа llечlшся усTaнoвкoii сooiветстgую lего лакеTa 06нoвЛенI'я' подрo6нес o lroтoрorl ]\loжIlo прoчlrтaть в тсх]rrIческоit 3аruсTке Q266344' Разylreется, испPавпть аплapa'rнyю пPo6"1er!y(а в дalrrrоN с]IvЧаспlьI ип{eeNI дeJo llltеннo с нсri) лPorРaмltl]]illи сP€ д стRallIl нсвoзlll]Лoloj rl еc мo'к]1o ЛIr1пьoбoI:iтlr,1.loдa)ficнa пРавll-{ьIloN1чxпсете пРи Bьlсoкoli загpvзlrе p СI.ш]r}iъI PN'I.таiii]ер rlе \.спсвaетсвoевpe]\lenttо ]rсpедaватьсвo]1тrкII|Л xо'Гяotlrl ]lp1'lэтопI нe пPопа]lаIoT'o6нoвлснUс счетчика вPcм€ I rп проltсхoдllт <РьrrrкaNar}l для пРе oдoлепltя (oтopьIx Мiстosсllt рскоlrендует свеpяTЬ пoказa]lия рNI с пoка3аllrlямt1 PIС'а/-^РIс'a и''lи RТс, и ссли P]\4 дсожидaшrкl opыI]rет впеРед (jumР forwaгd)' o6oгnав св01tхсollilеlIеllIillков| этol зaпjcР /rorl)ксн a}IнyлиPовaТ'сЯ каIi нсдсIiствlt'Ге.rlь]lr'lii, Сoвpемепllьlе чrIlrсстlI (!l' в ч:tсп|oст11'intеl 845) (0ДсP,raт спeцllirJlьньпi lrьrсo кoтoчilЬlii Т.liilloP (IIi8h Pfесision Еvспt Tiпl€ r s, ],Ull'lсoкPаlllellltо tIРЕT)' Tак TиpycNlЬIii часToТoiiш 10 МгЦ, пРl l lio l.()РoйвPеNiя.'п ro1oтIпraсо. rllii,lст oT 0' 1 ]\rс ]tри тoчпoстп поРядкa10'2% Ila l l Irгсp|*]"llltх oт 1 мс/(() ]00 мс, Это rLoji(,ГвlrтсЛъno рекордI]овьIсокiя ToЧ|lосrь'Лo lQ:liilIсii !сPс' a 1Iоpя/(('.nPс]]ЬIIпarо|i(;rя 1очljoсть всех oстurьпьlх таiirцlog' одЛlкo liPI]'l. r](('сUlс остac'ГОIзаrrl'/rl|оiiЭкi!)]]ll{oй' п IIl.||l(01.Ь|с € г o
Ло/l]:lер)ккoLl Iюltil llо oчсI|Ь lIll,ll)oко Раq|рoс,фаlIсllьl'
11oмrrlIo э.l.oгo rrа lrатсрlltlскoji rJ,r:r1.с м()я{llо ЛаiiтlJ м l|()x(сстLro'Гаiiruсl)oв, нtllIPIi. } t с Р ' P с I L а t e n с y T i n c r ' 1 I . D 'ILl c ( ' r к п T а i i r \ ] 0 р o Io] 6 ' с J l y ) к l l l r i u o п l l | хЧ r l ] l с с ' l .l ,| , l I l r ы ' 1lа]\l,lTЬ|l rDol||{с сис l0NlIlЬlc уfl?oiiс Iril, Nllюгl|с Ili] lllIх 1nlffl,Pvю'I(я цllс].оTill\Jи Р O I ' и , J I tAr G P - r r r r l l l ь r , ' l , | о о б e с c ч j l I ] i t 0 Tr : 1 o с l a T o l l I JI(l)Ь l с o к Y l oT o ' t I I i ) с , l 'l | ,3 A l o P t ] . | | ! l i i ( п i t , I { o ,ч o м у J l l ) ] j T ) l i o с у l I l ! ( ' Г l 1 с | l , l oa Ь п | l o 'ч o N Iv Р i \ ' 1 ) ' т ( с o ) t ( i l Л с l п ' l o o' l I l I l ' ' , l , - ' L. ]. | , | | | , l I l I l ' , | , I. ,I | ' i ' | . ' | " I, U i i\ | ' , l ! | j , ' | , ' ' i i , l : г ( | " ' . , , \ 'oTся l(l(]|lОсi\tY' с(Jllt l]oобIllc pсilrtl1зуlo,ГсJl,
з0.з. тesttiгner зa
45з
06сР<дениeмeтoдикт€ с lирoвания
lle]rотopьtе исттoльзyютg качeстве тar,iN{epaкo!aнду RDтsс, счиTъiвaющyю l1oканa зaния внy1PеI{lIeгo счетчIillia npoцeссoра, Itаждь1й та(T yвelllrIиaаюIцегoсЯ r{aпп{tlнoro посТoяlilryю всJ1ичjrЛy (как ]1PавиЛo, еДUrIицy). д,rя проф1lЛпPoвк ,oгoxc'P 'нwN., | , o , о o | | 3п o Л \ о д , / j н а ] , l a , l I n в о | " r P o ] l 6 е . п l j | | с - | j " . , у ) к д| ' е тянс1, IlеI(отopьIе АPсI-кo]tтl)o".lлеPы !] нaмr1qески из\1еtlяют частoТу 11рoIIес соРа иЛrr усьlпЛяiот его в llaузaх ]\Ie}кдyPa6отoii дЛя Лучшe1.o oxjia,iцсltflя. кaк сJrедствпr _ нeпoсРe/(ствсrtнoс тlреo6Paзo9а!]1с llрOllессopньIх тактoв в llстиrlIloе вPеNIЯ o(aзьltsaется нl]вoзNlo)кIlьI]\I' УTl]JIrrтy длЯ oцellки РазI{остп хoДa ll€ с кoльI{их тa|lNtеРoя l!lo)к]lo сl{aчaть' tla. гlР'IмeР. oтсloДa: http]//!,vWи].оvеrс|Oсkeгs'ru/сg].biп/fi|еs/doWп|oаd'сgi?fiIe=з20& fr|enаme=tlгnertest.гаl, и ссJIll вьlясIJ!lTся] чтo ваши TaЙlIePЬl I1дуT нсo]lltllaкoвo' ,:IлясPавнснll'l пPоlJзI]oдltl.сjln|11)ст|lРаз,lII]чtlЬlх 'lдeр r)yдеl. lIeo6хoi(lti1o oгpalпr ч l lться ЛrIшЬ Lllll lи]vi I{з l{пх Фис.з0'3). Еl:!цел{нсс вссгo Лсl1oльзoвать дJl}l сl{яTl1я пoказанIIй свoji сo6ствеtllrый драiiBеР' поскoль1tу {]тPаTo].!lяBьr6оРa тaiiNlсpo9 lк])ксТ oTJl]iчa].ься oт Pаltcс ядрoм сlrстe}!r'I ! oбtlle\! сJIyчaс jlсlDl,(скa3yеп'a 'l.с(lП) |]ыNrIrпPо гра Nl]\Iаl\lи Pl(]\1oтРl ll{ пскoToPЬ] с AP I. фуl l кц и l l' nс пoЛ ьзуспlьlс д'1я u3меРеllrlя I.tlIтсрR:l.noIrRрсil(lL11i
GetТiсkсount.
саi!аЯ IIollуjlяр|Iа,rфyпкlol,r' вo]вl)itiIlа€ т кoJ]rlчесl.ltопlrlлЛrr
oт сскуlul' Iро|IIe/IПiliх со tlPс11сllи llo(jlсдllсгo !l].;lPTirсистсltlы, ]] 3аЛ,1сltltl0с-l.]{ тlIIlayстalIoвлeliIюl.o я]Фа l к] по"1ь3усT'l !l6o I]IT-',1n60 APIс.LlliirvеРьI' D соoT. IJе'|с,l)j|]|| с чсIl cс раilpсluсlJиe сo(1.ав"1ясTJl,16o]0' J|D6o 15 lrc' llPll.lсN1 llcl(o'гo. 'ГaiiNlоРx NloГу,г6Ь|rr' |ЦхЛlупll)l|,j (To ссIl, за 30 Nlс NlожcТ llс ПPo}iзoii P],lc т,I кrI 1.ll llll оlllIoгo уl]с,1l{чсlIIl,]сЧ(r'Fljlка)' ]'1c pеl{o}lсI't),с,|с'l ( ytloTpобЛсIIиlo, .Io ссть (lyIIкrLttя дуltaо'' .tтo Bo3j]PalцAс1. IIсTl.||lll()сЛl)с]\lя Gсtsystemтimе. oпo исT|]l|||()e'l R дсiiс'I.l]п'IсJ.ll,lIoс,LIlоllo lIlo|,lзl]оillloе ()1.сисIсNllloгo счстчи. 'гикoв ка, rпlIrPсмeIl,].l{Pусllоt! ка'{дl,lе 10 llЛll 15 11сзlL пьlЦстоlll <сlсдс l l Ilt'lх' таiiruoРoв, Пepиoдll'rсс' rt вPoЛiдсlllloii rIсравIlомeрlloсr'и хo/ra PlT. rl APlс кп сr,rнхpоllшзyет сс6я с чilс'L]lllr pсаJlьllof.) Irре]vtеIJu,а ссJll зallylцeпa сIlсцrг ,к) e]цe lI с aтolllltnNJ'l llaс^Nlи тo ссТЬ сl iс'Гrl']]оe BPс' aльrraя lrr rтep rrет.слуrк6а' .',,,ынutо ''tttt,,.,,'n.\Uln|4,]l'л(llP',сU.н||o|| l,я||lо|l||| lr.}r ]'аt'|,|,t|'l| N'cсTl1oс1rl, lInя пзllоPс1ltlii nрс\!с11нЬlх lIрo11е)l(уTIioвнспPЛroДllа,
тimеGсtTime' To л{r сalюcl чгo rt Getтjсkсount, /цокуl"lсн.Гацияуrвер,(даrт' ЧтoразрсшaюцiLяспoсс16нoсТЬэToiiфylrкци!lсoсТaвЛяетlмс'Bдсiiствпте,.iь r1oсти)кe 10 11с-сllпxрoнныс xзNlепеllI{яtiпrс Gс|1.jтneIl GerTiсkсouпt пoдтвеPжДаr0,гlчто oни заrlt]l.allЬ]от о]lнor.o11с1.очJlпка, slесP. УсьтплЯeт пoтol{ нa укaзaпнor коJlllчествo l'IrлЛпсскуllll, з:LleP)r lваJt llсllо"!ьзonа'гЪсядnя кaЛпбрoвкп lla вPlrпlяyrфав'rlеrпrс,Tсoре1.шIeскпl,!o'{{с1 пеpeвoдa тактoв0ll частoтЬI кoэффIlщ{сн'ra дPуIиx таli\lсPoв п вЬrllисIснrtя вpeNЯ о}r!дa]lия принyllltтельпo ПPашически )кe'.' пPоцeссора в сскyxl1ь]' gcnпчпньl] <тrllry' oс]]oвI1о1.o сIiстеifнolo тallnlepa' I{PaTпoli оrrРУгnяeTся дo l1oтoк из сr1a дon}кеп нахoдиться в саlfoll l]pllчeм fia Nlolrе]tтвъixoдa Дa]lпьп"I lbч.tlеo'ррnд||
|Uт^кoq,o)
ltpиl1е'Гся пoДorflдать.
,4fuur|lхпt,|о,1н,ч||,|'Ьl||jn|||вlо\|.,,}ЧаeP\l}'
]\{oжет 6штj,lдoЛIJ
секy]rдш. a l1о,1rеТ' lleско"r]ькo Nlиllyт
454
WindowsNт главa 30. pазroнитoPMoхение
всe завrrси1 o,r разIleРoв oчeредп] a orr]']тlепостоя]]ньI'т]a xоPоIro зaгpужeпвздpeltflутЬ 100 N!с.рис(\'eт flpoснутьс,!,,' тloli систеNIепol.ott' llЛAп|.lрукЛцI,lii чеpeз пtIr]ryтуI o
QuеI} Реrfопапсе Coirntet. вoзвРаrIIаeткoJliчествo тIrIioвrrаI]6oлсстoчtloгo 'rаI"]l1eра, пpol]Iс]lшиt с пloillептa стаPтa спстeмы и.IlI'.. еe aoсjIеднсго псРс. pоа. кеQuerуPeгfomаnсeсоunter' полrrеIJия,явЛяется ]1ерсхoj1I]It]{oll к фyrп(ll],II'l лизoваннoй в lIAL'e, Windows XP поддeрш'rвaeт нPЕT' 6олое Pа]rнlIосис. по']l,llеp)IrrтваeTся' теNьI пeт' Ес.nи нPЕT аlttrаPaTнolloсTУпeIi]I пpOIра]vl)fIIo он; в пPoтивнoпt слyчас AсPl.ядpa 6уДyт rlсllо'ЦЬзoва1'ь PМ' ltспоjlь:lуe'Гся Jи6o вoзвратят rrоЛь) сиrtlaлrrзrlрvя o6 ошu6хс, a tIс AсР1 илir PIT' llлrt оtt. oДпоro тt{rtа l'o,{нo Ilспoльзовать 4rу]1кцик) Рсдс.]lс]tияIlpoДоJ-I)кrlтeЛьlIoстп вo3ПPanlaюnryloего частотy в rePllах' этo сап'oс QueгyPeгformаnсеFгequenсу, лyчшсо сPсдстlo дЛ'I llp(хриJljlРo|lк]l ]l хp.,llоl{eтPan(аllз всех пп{e]olrп.Iхсяl oднаI{ol l{aк у)кс f0ljoрlr,1ось.]]l4 тaiiмеPьI мoгyт пЛтIr rlеточпo ]'IJrисoвсp. ш l i t т ь l l с ( ) ) 1 ( и i L : l I l I | Ь i el I Р ь r } x к l l в п е Р е Л '
пoэтоIlу
lioI{aзalllIЯ, uoзвРnlllснньIс
тPе6yютIrеxoтoPоiio6ра6откп] QueгуPeгfоmanсeСounteг'
синxPoнизAция нa маullннопl уpoв11еN]e)клрoцессoi)lIая сипхPопlfialIrIя()6cсnеЧлвaеTсяпРeфrпс . n v 0 0 ( , - Р r l о . I i в , 1 , | ю | и v | | |' , д | r |, . | | , , ' и \ | { ' \ | ' | | . . l 'v, ' 0 | U , | , I l | , l i Li o с l Jn rt пal{яTи' всепосягатсльсT!а со с-rоPollьIOсТaЛЬньlхllРоцcссopoв (ссxn оuи сстl') 6лoкпрyrотся' o6ьIчно L00КиспoJъзyeтс'] сoвNlcсTttос кol{aнДаNiи]yсTi11ав.!ива. 1(rl]1и]!1ll l.lЛttсIl].IмaloпIиlшli флarlr' сигнaЛизЛpую]дIreo топl,чтo vкaзaнЕаЯ l]тPуIi пPoцессopoм и пoтoN{у.]rvч. туPa Данll6lх в I]aстoяIIIиriмoмент \'!одIrфицIiРye'гсЯ ше ee н€ TI0гaTь' МнoloflPоцeссoрньIe ядpa содepхaт мпo)кество LooK'oв, \|Ь|\ |noх
дdI
L' ,l,UL,r
встречаloщrтхсЯв са-
B|lJ.|н' UU)|ичLЙ||PUц'
|
|г',JdU.
дlrтель11ости'пoэтoмy oни вссгдa мсдrrL.ннсс,B ollнo]lpoцeссoPньrх яl1Рах ЧасTь LooK'ов у6paнa пoлнoстью вNIlэст€ с iтРlIмъIкающими к нIrпtфлаIами, a частъ зaNtенellaбoЛee oьIстpoДеiiствующIrмIrNoР'мIr. o6щая же сТруктyрa ядра сo хрalle]la в болеe ПЛll ilепrе посTоянпo}l виде (pliс' з0.a)'
455
o6с91(q€ние метoдикт€сrирoвания
Pис. 3o'4. AсPI кaккooнeвойпeDeЧислитeлЬ
AсPI и IRQ пРepЬIваllия
п мифпчeскaя
рaзRoдI(а
_ пеиссякaeмьIй
истoqпllк
сJIУхoвl сIтЛе.
TeII'Легerlди суeвeрий,Полpo6yelrс пими paзo6рaться? все х86.пPоцeссoрьl(3aискЛ]oчеlIl,leill стaDllIихмодeЛейhlte] Pentiun4) УllpaR.
J1Jllo1, lIPсPЬlваlIl,lями чеpe3 спeц!l.LцЬIlЬxjиIlтeрфeйсllый вьIвoд' L)6ьIчxoo6oзllа. чaемьlii как lN'l.ll' выс{'{'lii УpoBelп, сrIгIIi Ia IlакoToрoм свидеТеЛlсTвyеТo lloс. ,|уI|.,lеllиllзапрoсa tla прeРь]вalше. пpoЦeссор пРеIq)aщar,r тсl{yщyю рa6оTy. въrрa6д1ЬlваеTсиl.fiaЛ пol1твеp}кдeI!llяпpepьIвaIIl,я (Intетгupt Aсlrпowlеdgе) и считьlваст с l]rипьl даlirl]'х 8.6lt11lЬtйlloмeР векroрa fiсpскрЫвaнnя (lNT п)' 1IсРсдaнIrыйItOнl.PoлJlеРol!1 прepываний| o6ыtIrloреаJlизyrмьlм }1аЛРавl1учaTых племяннI{(aх l{икРoсхеNtьIi8259 и TсppитoPиа.rьнo нахoДящимся в юя(нolf l1o. сTу чиIlсeта. Зaвшчстoм 32 nPсpЬlgанийl 3apeзeрвпрoва1rньIх PазPa6olчикalrи IlpoцессoPа,!tЬl пмeем 224 пРсPьIваниЯ, пPигoдньlхдля o6pа6oTки сигнanoв oт пеPифcPиiltlьIх yстРoйств. oзiiачаeтли этo' чтo верt]iеe ограtrичeниeмаксимLlтЪ]ioгoкoличeст вa oДпoвpeмeппo пoддеp'(ивaeмьIх yсTройств paэнo 224? tieт| Heкoтopьtе из ]]pевпиxпPoцессoPoв lliliели всelo .riиrnьoдин вeI{ToPпpePЬвaния, нo этo ничyTь iтемеIIiafloимупрaвлятьдесяткoмyстрoliстn otilовpeмeн]ro. кait? Дa oчerrьпpoс,гo' чTo тaкoe пpepъвaниe? Bсrгo лиI!ь сп0со6 yстpoйствa o6paтитъ нa се6я внимaниe' Пp налlrчиIr ДoстатoчiтогoкoлllчесТвa свс16одньIхвеIrтopoвзa кalк
из yстpoйств !Io)кеT6ьtть sакрeпJ.Iснoсвoe псрсoна,.lь]1oепpеpъlваli]re,oд/]ьl]t1 нoзначrro yK1зьIвающeе на истoч]tик с]'тtlа'l;L'Этo сyщественнo упрoщaeт кaк пpoектирoвaнI{eса!Irцустрor:iсTвlтaк II Paзрa6oтitv o6с.qvno{ваIоlцlIх ихдрaiiв€ ровl o]]Ilакo oт]rюдь шe является неo6хoди;itьtм'ПoЛучllв сигIIыI пP€ р ьIвания' xрoцeссop Nlo,flетoпрoсить всe усTporiствa ]1ooчеpeдl],вьlяс]iяя' ктo llз Ilпх 3a. тpс6oваlr внrrмания, ЕстсствеII'Iо' этoдоста1oчнo пleдJ'IсннаяoпсPaцI.lяiвьInI,Iва' IoщaЯся в дeсЯткп ]Iojlojrнитeльпых oпeРaцrlй ввoдzy'вьtвoдal' к Tojuy)ке пoTсн. нe6сзoпаспа}I'тaк кaт{[Iа'rеlirпаяoшrl6rtа p;вРа6oтчrlка о6oРaчrIвастся ЦI,Iaлъ}lo сepьeз]]ьtI{Ir кo1l()Лшrтarur''кoрoчe говоpя,дляr]loсTи,rеrllI,tна1rвЬrслJeli ста61т'l]ьrroстии лPoЛзвoдителъIloсTuсrlстeпlьIl(а]1{дoe пРeрЬIванLIеjloЛ)l(нo tlсxoJ.IьзоIlaй. ся пe 6onее чeM oдниrv уoтpoflствo]ш' Кottтрoллеp rrреpьтвапl'tii'lrсЛoлЬзyсrцьпiв Iв]u хT, пoддеP'orваJ восепlь аll]la. РaTн'Ix лРeрыван]'Iй' o6oзнaчеlllIЬjх IRQ (TлtсгruPt Rсqn€ s t) и llpolrумePовtlн. Ilьlх oт 0 до 7. lloмеp IRQ сooтвeтствуст пprro1,итстyrlpсpьлtalrrlя:velI 6i,.,lьшс нo]\reр|Tом Irи)кeпpxoPIrГe1.'tsoлРе\!я о6Pa6oтки 6oxre IIPJ]oPI'lтеTrlr,tх пpeРьlвa. нIrй гeясPаrIия мeltсс пP op|'t1.сTlrЬrх |jol(авJlяe'.",л' "nnтo"'..,n"'rlru,,,nu6upu,г' мeIreе llPлoPrlTс'ГltЬlепРeРЬlнa]lия I]I,ll.ссll,lIоTся бoлсc пр|loplJтсTIl,,]iiи,С.IlП.n. стся ' uтtl всм 6oльttrересуPсoIJтPс6yсT устPo iiс1rlo' |с]\lB],Llrlсдo..]л{сl l 6Ь11r,п Рl г oРитeт сю IRg эTo IJсuсPilo,Bь160Р llpсдпoчтllTсЛЬIкл! lRQ оllр0l(!lя€ ' к]я о,|. rЛollь нe <пPo)кoPnпвoс-l,ьlo'устP()]iсTдa'n крll,l.лIIlIос,l.ЬIо пo1'(]рипРcРI,l|lаllпЯ, ДolIустим' сc,гсDaяlraPTа' вIl]lя' ч'Го вхoдIt()ii6уrрnp rrpaкrи.rесrrlr;rnлoll' a дaIrпЬIeIl0 витои пaDeтак ,r i|рУ,rjсгсllсрlJРoпiUInnрсрЬJIIAIlIle' кo'ГoРoс6ыJк) |lЬt].l]с. lleЛо лрepь]вапиeм зnyкo8oЙ каРTш' nмскJulс'ii .х)j|ссвьlсoкцii lцnloPll,ГсT |l сlll.. нaЛ зиРуlolцсй ()6 oпyсTolllсIlLlll пьrrодlкlгo 6yr|lсpа. ]](JIt nl)lli'iЛoP3lrуш)lюii картьl псяаРoкоNJзаI{eIlllсаor.с'l I] уjlсР)i(llr.o6Plr6oJч 1tк l|Р0Рnlri]]|l.U| пoдo.IlI,JI|с J!o,(eIl!lоIo,вхollll0й 6yфcРсс,|своii кnP'Гl,Illс|)с|J()xIl|lт(jЯ . |'lllасTЬ Ililксl.о]]oкa )кeтся 6сз8oзl]ра1rrоутcряlIаl даIrlrьJe||pидс1'сяlrcl)с/lLatrlть в|JoBъ!чrU Iюскolllькo с!lI'lзит6ЬIсrРo/{eйсТвисссT}l,япЛяс'l.сяJlи э'Г2сиTуtULияIюр11а,1ьноii? lljlя I(or(). тo дa, a дJlя l(oгo.тo и ]lет| IIoтсP'IIльlх lIaNcTовlкоlloчно' ,ltiljlь, llo есJIlt xo]vlе. ll'tTъ приoPllтетъl Nlt]с'гartlп' звуl{ollа,lкaРТаoтPeilгl lPуст пa оrlyсTопJcI]и e вхо,)lll()' гo буфеPа сypoвЬINIисIra'(сlll1ol' вoспpoЛзЛoilt.lNlol.о спLllaJir' чеГO в llскol.oPlrlх сигУациях пи зa Чтo пeЛЬз,IдопускаTь, никaкoго /ll)угoго в'rlия]II.1я ll:l llрol1зво. дитlrЛьнoсTЬвы6oP прrloP!Iтeт.]rrllc olL:Lзьll]ас'Г' [Iе:lавrrслrкl oт ноlreра iRQ о6. r]a6oткaпрePь]ваппязаниl{aeт oдI1oи то,rc вprмя' oг o6рaбoтrсrостаilьпьrх преpшвaний o]rа таю(e нс 0свo6о)кдаст, Пpл yс.'roвIrl' чтo aпIlaPатнЬre усТPoйств;l и o6слyлlивarощие пхдРaйвeРЬl Pс:lrlrзoва}iьIправI1Jlьнo(To ос'rъ6oJlro II.lrп\''е. rrсе 6eз6orrсзнеrпtotrсpе'Lивaют пo.ГeрIoiRQ li
457
oбсyждeвиеметoдиктюирoвaния
oднa11звoсьlllfiЛlIн]lirпpсpьIваr,иr1 6ьIлапзРасxoдoванaна каскaдIrpoвa]JrleсДPy. ' | | \ l : o , P о , 1 .\ l ) o \ | : l I . . o I o Р с ' . I o , r , l Ч ( . , " o | Р ' P | в : i , " P r J o U . | U l J , o ' | | . I P x l ы \ | у , l о ч . | в ,\ | ,| е кoToрoe 6ьI]1овъ]дeЛ€ н o r!шIe isA _ тоrlaшнeпlv иIlдустPиaJ]ъ]]oI{yстarrдapту, Гe]lepaцItяпpepъ]ваllиii oсущесТ!ЛяJ]aсьи3мeI]епIteNlypo!1lя с11l.l{а.1а Ita 'l!ин]tи сoo].вeTсTвук'дегoIRQ' МoryTЛLIr]ва rIли 6oЛеeус1рoiств виссть rtаoд]rоl11RQ? Hy, вoo6ще-то lIoгтт' нo сс'lIЛoни однoвPеменнo сг€ н еPrlруIoт с1lгна.1прeрьlва нltяl To l1o конTpo"Ч'llсраДоijДсTЛuшь oiulн из rlих' a oстальньIс 6yдтт пoтсpяньr, но tlи lсoltTрсlЛnеP'ItrtyсTрoiiсTlra 06 этonl lIeдolадаloTся, Таl{ая сl1туацrв lloJ]y. чr]лa назвaниc кoнфЛIJfiтal л ес пoсnсДств]rЯэссl1 хopoшо извсстflьI, BпPoчrпI, есЛIIлРepь|вa]lия вoJпrп{а]oтllе сJ1lпII(o]\1частo' тo oбaусTРоiiсTва впoJI]jеy)к],l ваlотсялРyг с дРyroм (Irсвoe вРепя aвтop дep)Itалlra oдноili ЛрePьIвaIl!ll.lll ]\tInпJь' ]tIпIla РCI' пPllшe/IIllaяпaсп{снy Is^, Pa6oтa€ т всегo с чrтьl PьIiя JI,{IЛlя\J].t раr]llo I1p]Jopxтстных IlpсpЬrвallIiiI Yсno!нo 06Lrзl!irчасNlЬlхttак lNT^.' Ir\.Тв' ]NTС ]I INТD IIa кilя{/]ЬI й сioт ]lo]lвсдс}lьlвсс чст!Ц]ol IPсрЬIrlанlIяll l устPоii с гв0 l!Io,кст l|з ]||lх,х('J.я06Ьl.IrIooгРaxиЧиBirtoTся1о''l'() l tсttо'цЬзоllаTЬ.Цю6()с ll()ЛnIIк'кoс].Ix) одlr}lм,ЛlIlllIЛ пPсPыBaIIllii o'rнol.{)сJlотil сoсдlrr Tоlr (a B }IскoтoPЬIхдсlxсlrых nnillllх !(с [NTA' lNl.ts' lN,]'C Il lN.ГD всtrrarorсяяа сllillУ J, l] к) ||РеРЬ|ПаllllЛ)' ДJя PаRJк)УсРI'oгo PаспpсЛ.,ItoIl!I,l пP€ Р ЬiIlIlr|]lЯ |Iо усT. Рoiiстrrnll llr l(Dк](oм с.ll0'Гс t|РoLlсхorllгr pо,Гlllll,lя ||PсPьIl].lllI!i'i(p||с,1]0'5), /l()|lvс 'гиltlj y Ilaс ссTь двa с.lIо1.а:I] |lсРlrolt (rloTс flрсpl)lва,ll{c INTA (сo сl оP(ЛIьLvсгPoii01'l]il)сoо1'l]сTсTllусT lIр.PЬ|llltlI||ю ]NTA (сo с1'oР U,|IIJIIllьr),пPсPЬrslr|,lrс IN'Гв 'э lN.Гв lr'Г. д' Bo lr'|oрoN1сJi('гс lIрсilЬIsal|пю INTА ((o сторolIьl ус1F)ik]тl]а) сooT. llо].с1lry.r'г|Ц)сPЬillаlI|lc INTв (сo сtll]ollln !lцl||l'')' ]NTts -J lN'гс, IN"I.с + INTD п IN'гD-э JN.г^' в PсзуJl Ь1..rтсчсгo усТP()iiс'Гllll' t lLxl()]lЬ3vl(nl(l]0 пРсPI,llral It tс IN.ГAl oка:jЬIва1оTС,]Paзвс[|aIll,l Лo tDсPЬlваIl|lям INTA tI IN.I.B,
Pсlslot1
PIRQв#
PIRQD#
lNтв#
INтD#
Pс|s|ot2
]Nтв#
lNтс#
P с ] s l o tз
Nтс#
INтD#
Pс]slot4
]NтD#
NтD#
]Nтв# lNтвf
lNтс#
Pис.з0.5.Poтация aппаpатных прерЬвaHий PсI'шиl]ы P]RQ3 ЛпнпI] пt]epьIвaпиiiINT^ INTв сo.дIrняютсяс вь'вoдawr РIRQo кollТPoЛ"цePа РсI.rrтrпьI'a oтTуllaчеpезрoyтep (PсI Intеrruрt Tlorrteг)попaдают в конTPo.ц.JlеРaрерывalп'iй' TеМ илIJ иllьI}t I'a]lерoi!1oтo6Рa,.к!ясЬtta че]]nРс Jrи]It.lI]I RQ, l lе заl rятьтенlrтtaкимЛIsA.усTpoйствам1l' ПоскoЛькv i{о-I]r.Iес'Гвo vста]IoвЛelIlIt,lхPс1 усTРoйств o6ьIчнorltнoroбoль1пeче,гыРеx(itьI счr1'Гаeltтaк'ке Jl вЛу,ryerl]rиeyстРorlсTва' 'гaкие' напPиlleр' каlt IrнтегриpL'Еaritlыllкot]троллеp USB,'t' tueвсeгo |овeшc , |й на I\ТD) нр.кojь rо ).Гpoi|., s 0ын!,':!"нь|дe
454
lлава з0. рaзгonи тooмо)кениe W]пdоws Nт
лить o/llloпpepьIваниeме)кдyс060й'в отличпeoT IsA, в PCI.птинeсoпN]eстпoe исlloЛьзoвание преPываний является еe l{oрtlаЛъllьlпlсoс'Гояr0тяNl.гeнерацl{Я пpepъrвaниЙ oсyществляется нe пo пеpeхoдуl a лo сoсmaянuщ 11ус1,paflc-|tsa Мo)кeт yдePjl.rrвать".1инllюпPepь]ваIII'IЯ в сooтветствую]цey сoс1oяl1l1идo тeх пoР, пolсa elo зaпрoс rre 6yДeт o6pa6oтан' Tеopстичeс(и этo Лeгкo' llрaкт]rческ лrе''. ffa,кe пoвepхнoстнoeтeстиpoваниe 06наPy]rrиваeт6oЛъilroe(o'1ичсствo yстpojiсТl} и дРaйвсpoв' Irе впoлIre сooтвeтствyющиx сIlсцификaЦияNrи нс ]rreлaющ х ле. литъсвoеРIRQс Дрyrим].!(иJlидслающrfi этo tlaстoлькo нсумrЛо' чтo прoизвo. дитeлЬпocTь lIаliaeт в РазьI). слеДoвaIIие спeЦифиxaцияN' прeдOTвращаст кoн. флиIстьl, нo oставлЯrт пPо6лel')" паДeнIr,l ttPoизвoдительlloс1.lr в сlrJIс, ПРп сoвмcсTltoм исlloЛьзовaIrии прepьlвallиiI драl:lвсрьIfloлyчаloT cI]r.нaJlьIllс толЬ. кo oT сBoихl нo и от чy)ких yстРoiiсTв' зaс'1ав'lЯяIrх .)6PaщаIЬс'як свосп{у vс'г. po[tству зa IIoдтвеP)кдe}lи€ м , и eсЛI'Iвьl,lсн11тся,чтo пРeРЬIIlа]l11с сгсfiоpIrровaло lie oнo'за]lPoс псpедaеTсясr!eдyloЛlеrvy'1Раj.iвcpу в цlrпoчi{e'A тeпeРЬllpL!сТaвьте' чтo пpoизoЙДrт' rсл,r на oдIlо]ijпРepьIвAJl,lиtsиситдссятoк yс]'рoйсrr! и дРайвсp rIaиooJIеr<6сспoк0йн0го' Irз Irих пoпаl1еTв самr'й хвост oчерe/(иI сЛсllуeт' вo{lrPвьIх, oII1rl]\lалl. Для дoсTruкеIlиянаивЬ]сшсйгIpои3вoдитеЛI,li(rс'Г',l пo рaспрeдeлить PCl-каpTЬl пoслoтаNf (Ilаl]РI.IrveР' ссЛи у вaс llа lneсть Pсl-сJtoтoв пpихoДяTся двс Po1.каpтьt' з.о'втьпrая усцlоiiсl.r]a R пeРBь]йп llя'Гl,lii сJ]()1Ьl' вы вeluаeTeих I{ao,ДttoPIRQ)' lю soзмo,кIloс'l.исoвмсruaя пa oдrюпr J)lIlQ,кl'rlь. кo пaимellec тeмпeрамellтпьte yсTРoiiсТЛа,1.oссТЬ ,гаIr'Ielкo'ГoPьlс гсl'oPllPуlol пpсрь]ваtIиярФкс всeгo, вo.3тoРьlх' Itа)кдoсPIRQдoлrкrlо o,гo6pаrrtатьсrr l lа свoс IRQ' кaкoe _ Ile сyTь вa'(Ilo (вoдЬ llPцoр'{теT PсI.riРсpЬl|]^llиЙ o/{иllilкor) llo тoлъкo свoc' сoвмeстlloе исIloJIьзoвaп!tсoJLIlol.oIl1Q ncскольклми IiIRQо6ьl.r. !тolIе пpr!вol(и,l.к ltollфJIикТaм|llo нemтпRIIo ска:iьju'leTсяIlil I|рol,{:l вo/{'Jl.с.JlI' Iо , сти, вeДЬдPaiiD€ Р ы Pабoтatoт пс с РIRQ' а с IRQl
Aс PI.ядрa' ра6oтaюпц,leс Р сI.l l{rloii чеPсз Aс РI.Iro}IтроЛ]lер' Jlиlxс]11ь| вoзмo'c Iloсти yrlpавлять отo6р кeппeм РIllQIla 1RQ lro св()cljy усr{o,гРe1Iию, llс мo)ко1. yгIPaвЛять этим и BIoS (вo всякoliI слу.rас, лcга,!ънЬIми среlLсTtsl]и), Сaм,rс ACPI стPе]t'иTcя пoвесltть всс PIRQ нa однo IRQ (06ычllo IRQg), п пon'еlllaп. eмy oчепь тpуДIto (Рис, з0'6). Ес,rЛ кoлIlчeсTBo yсl.аlroвJIснIrьIхPсI-усTрoiiс,|rl пaM]toгo 60ЛЬIl]очстыPсх' тo pазпrпla в лрoизвollllтсJlьlroст],т]vlе)кдyAСPl. и }1с ACPI'ядpами несушествеl{]la' пoскoЛьку]да}ltсoткaзaвIпrIсьoT AсPl] въIвсс P;lnrro 6удeте въIriy)кдe]lьIpa3,цеЛя-l.Ь одIro PlRQ ме)кдy нескonЬxими УстройствalЛ'I, Дpугoeдeлo' еслI'IколичeсTвo Pсl.yсTPoIiств невелпкo и ltarI6o:rсотспrпеpaмент ньlе из них висяT ]la своих прepьI!а}1иях' тoгДa прI,Iпеpеxo;lc с ACРl нa Irе AсРI-ядрo рa.зIlицaв 6ЬtстPoДействIrIrсистeмьl ]\{o'iel.olсaзaт!сЯ oчeнъ зIIaчителъпoй (To )ке сalvoe o'fнoси'гся и к }rеyдачrloспРoeкTЛPoваннь1ltус'ГPoйстRaп!, HeyмеlorцимдеЛlrIL.Ipt't]!|вcнилсдру|иvиrlIlе||]\l.'|oU,,\|дo.Ioi]l,o,lJ]\|е.] I{апримepдoPoгo]!{увидсoyскopитeлю' RAID.кoнTPoллерy и т' Д,) К сo:lса.:lонию'прoсто взять и oTкЛtoqiть AСPI неЛьзя, пoскonЬку irlr является нrTоЛькo меI{eджeроll питaIIия|pасПP€ д еjlителе]u рeсуpсовt I1oсще и ILoРнeвь]м пepечисЛl{тeлем' AсPl. и нc AсРI-ядрa rlспoльзytoт РазЛIrчIrьIe/{epевЬяуст. рoйсTв и xoтопly вtaимнo нeсoвllrесTиl{ьr'сменa Ядpа в o6язaтeЛЬllol1xoрЯдкr тpeбуeT пeреусTаl1oвкисистемьI'в lтрoтив]toll сЛyчaс та oтка.зьвaеTсязal.pужатъ
06ф,кдeниe Методик тес.ирoваrrия ся, эTo сущeствe]lllо затруr.iняeтсравне}rие6ьiстpoдrйствIrя АСPI- п не AсPl. , | д . г , l | U . ' U , 1 |l , у l | r г c ) .
рtrД| r',, o ы!I || нP lрe l 'kJ)evь
Il об.
Pa3o]t1 1tзп1еняе1 еe 11рollзвoдlITeЛъl]остъ.
lvlрaкl Pис. з0.6. все PсI-yстройства Hаoднoмnpеpьlвании, I l l ' o r в l r l r v r , ь , r ! j , I l , г I ' I h , 1 / с | | . | ' l 1 l ' , n . п o , | | ' , l v |vo(Io d u г ш с l . с Т п J Ь 1 I l I ] L | i / ч i , , l г | I ' , ,
Л e P n p e р ь I в а ! l l l i i( A d v a n с с d Р 1 С ' l l J J l ]с o к Р а l ц е l т l t oA Р I с ) ' п o д л c p ) ( и в i t | ( ) l I l I l i i сIсTeмaх, otlllztItо в lvкl 256 1RQ п спoсo6llЬlii lrа6oта-lь в шrrrrrrrлrРollссс0рЛЬlх Iю|,|Рoцeсс0Рlпnхкоl.lqnlГyPацll'lх oII l|с ()бoсl|с.lt'anст|{Lп(nкllхДonоЛlLlТеЛьIlьlх |г''Ilч)||B
| | t , l t , l \ I . : l . ,к o , l ] l ' I n l t t , " ' t ' , j " - t
' , ' х ' | | . l ' | ' l I l ' . | | | | | ti , , | ' J I l l I i | | | г J е - с 1 t I ' '
коrrтpсr-'lLropoлl' а РCI.ttIIrlloii' It'|одjу Лiс ^Plс,,lдPа llе вllo]lllc корРе]{тll.)рабo'Гaю1,с ,raiiмеРоNl'что сполцт нa псT I]ссllх lIPсllмуulссТва,
пEPЕключЕниЕ кoнтEкстA П о л v r . о г o' ' , д' ч , о . r ь r ' 6 ' , ,| |U / | с| | l ' п n l | '' ^ n ,г р 1 c й. l o д l j i " у \ l ,в , ' что6ЬI в фolroвoм pс,к}l. пaPlп,leлъIloгo вьIl1оjlllo]lияIк]сIto'nьiolхпр]тЛo,{еIrtILi: ме иrрал WinADrР' скачl{вiulся rЦ)3 иJ ИllтeРпeта| пpип'Iм.Llтaсьпoчта,pсдаXтn. -rа6'цицa ll т, ]l, Nlllпимa,rьнoй eдинпцeй lIспоЛIrcния рoвалаl]ь элcктPoнна,I B щ)aцессьL'a лpo.\ес.Ь1 в Wjlldo\i,s яв,'iЯется иom,o]{,llo'|aкп o6ЪeДл||я1o.|cя в з.J,ar,я (iobs), кал{Дьl,i пoтoli o6Ла.цacтсо6сrвснrrьrм стcком rr rrа6opoм рeгистPoв' нo всc nоToк]1oдlloг.JпрoЦессaRьlпоЛtlяlотсяв е,цl1номq(рeснoм пPoстPаш. сTвe и o6ЛадаIoTидентич]iыNIи(вoТll1!1]], вЬltlolлLяться ToJькo B IIo6oй NloNiептвPеменrl на дан]]oм nРoцсссoPс ]!1O)кe1 j,стаIloвЛе''. oди11потoк, и ссnи (o'llичествo потoков прев ньirr пpoцeссoPoв, llo-roки вьII]y)к]lепьlсpa)кaTьсязa пpoцессoPнoe вPeмЯ. Рас. пределeнисNIпPoцессoPllor.о nРеN!епrrмe)т(дyпoтокaми зalrимастсЯ яДPo, B!t. Teсняющaя мнoгoзадaч]loсTь' peaЛизоBa]l]laяв Windows NT' yстPoснa пpи6лrrзитcлънo тaк:кa]кдомi пoтoку !rьIДаетсяопpеделeIiIraяпоPциямашин-
460
глава з0. DазгoнитooMoxевие WindowsNт
тroго вреiIс}i!l, нaзьlвae]!'aя ad,/rлoл (quantum), лo истeчeнri]т кoтopoй7?'aн'. poB?4?l]r (disPаtсheг) llРинyдrrтe"IьIro перекЛюча€ т прoцессoP на Дpуroii пoтoIс, Уч€ т проjlессoPlloгo вPеleпи o6еспсчIrвaетсЯ зa счст тайlfеpa, пеpиоДически (рaз в 10 или 15 llс) Taliмl.P г€ r reрllpуеT аl1паРатнoе пpeръIванпе' пpl{кaзЬrвaю. щес пРoцессoру вpсмс]lLlo пPI.loсTа]]овитъ вЬiЛoЛ]]eпиa текyпIeГo гtoToltа и пe Рeдaть 6pаздьl пpaвлeIlIrя дlIспетчepy' дI1сllеTчсP упrеlIЬшаст квaнT пoтоl(а 11а tlекoTopylо в€ ' rичипv (()6Ьlчн0 равflyro Двуп1) r{ л116() вoзo6нoв.riяeт вьI]IоJ.rнс. ние потoкal ]t]rбo (ссЛ],l i{вarlT 06РатIrЛся в IIyЛь) сoхPа]tяeт pсгI{стръ] поTo].a в спeцllальIlоl:l 06ЛасTи памятп, I]aзь]васlroil xoнmeксmом (сontехt)' нaхoдит пoтoк' r]о'ЦЬшr всегo IIу)кдающlriIся в пpoцсссoPIJом врcNlcнIri восстаnавJ]l1ва. 11 сгo кoнтeксT !]!lсстe с xoIlтеl.с1ol\r пРoцeсса (eс"ци этoт пoToк lIpr]нa,]ле,кltт Дрyro]liу пPoцессу) и псPсдает е]\fу упраrЛсн]Ie. Пoтoкп o6рa6irгывaются ]lo oчеРсдll! сoотBетсTви]lс r.IхпРriopитlr'1ом 1r пpп|Iятoй сTрaтсгrIсiI llЛа||пl)oваrl]I,], П'1aIol]x'rщип сno'(trым ()6paзoi{ мart1iпуnt'lруeт с oчсPсдьIol пol1ЬlJllая llplloplIтсTьI l|()'|ol{oв' I{отoPьle с-'1пIIrкonIлonгo )кдут lтpo цeссоРI]()I! вpl'llспll' тor1ькo ч,гo lloJrvчп,'r]J (Dо(у( угJPaв"!сull,l IIJI дo)rq(алIlсЬ завеРп|сllи'l oпcрaJlltи |nn)да/вЬl]]oда, AJ|гoP111.}1 II'raJl,lpoваl1llЯ ]rепpeРьIвllo сo. вepшс] lствyется ' .'1I ]а](o l Iс nс{: vф ПсI)!rcЛс'Глl)в:l ll l1'I oка3ЬII]ают 6,lIiLt.о] l PIтятIкre gJII1'lllиc llil пPol1llвoдI.l'ГсnЬlloс'ГЬ. B o6цcм сly'IJLс ilt]tofolloT.ЛJIlьlс lIpЙJIo,{eIlIIя ,(oл,{пЬt tlсlloлпяTЬс'l lIn Тсх Я;lPах' пo/L с|рil].сгiпo пIallt]Рoвa]lIlя lсoToрЬlх oпи olLгим зrц)ов;ljlllс!' l] IlpoT ПIiоill сj|учnс мо)tlio llilPBaтЬся |ia ]lсo,({/lаnlloе ||ltд е I l и i ] l Q о I ' : ] в o , | lT e Л Ь | | ( ) ( ' Г l | . [lptr ]lc6oJ|ьllIolrt кoJlI.l,lсстI]с ]J('кЛloв ll;lкЛil/.l!IlnсраoхoдЬI lla Лх llсpск.JIюt|сl]lt'l llоl]tl'lьIlo I]cllсЛllкll и }livlll lr1oжUo IJpс|lс6PoЧЬ' Il(J Iк) \]сPс |'|ilсь|lllе|lия сuс1'сtvlЬl oill,l сTРеМЛте.ЦЬllo Рlt.,Гyт] ]:Iа ЧT()x(c Pil(j\oдYс](я IцroЦоссoрIlоo лрсIl'? ]-[]]c)J{/iс вссl'o l]a (l{уnrсбrtЬIс lIу'{|Jь] сillloГo ]lJlаlIl,|1r()RЛlltка(апaЛIIз oчcPсдп' lloTallиIo 11р oPи'rсr.oв ]l 1.'д,)' rс\l Ilа сoхРtlrIcllI1o/вoсс,I.аllo|].]lсlllIе llolrгскс'l'a lloToкo]] I l l p o ц c с с o R ' п ( ) . : м oф L ш l , I t а к в с e э l o у с т p o с r I o и : r r r у т р и ! llЛзaссем6Jl,lРolrаlnrс пolLaзъlRilc1.l чTo a-lrarltцювrrцrrl кaк 6ьr <размазаlr> пo вtlсNlу яЛllу, tlo'r' IlРяп{()I'Лп l{oсвсtll1o спязаlIIlЬl.i с tl'llaппPoвa]]ис11j рассPедorочoн llo Десяткaпl qrункциil' б.]-rlьLutl]tс'l'вolIз коToрl,lх нс ДlrкyN1еn1]1poваllьl ll llс эirс} пoР1!rРyIоTся, этo сvщссl.всlrrlo зitтPyllняст сраsЛе1tllс PaзЛЛllllЬlх 'IдсP дllyl сДpvгoм, нo не Дrлaeт сIO llcвoзNlo,lоlьlпl, rlyть пoз)кe мьI пoкail{eiii ltaк N!oл(пo !ЬIдeлиTь пoДnPoгpailJliьl п poqЛlJr]lplr вl цI псr l.lirЯдрal покa )fiс сoсPед{lTorJrtмсЯ нa перс]tJIючeIпlll,t с.)хpaI]снпп/rl0ссTal{oвЛснпи ]tоl11оltсTа. -Ipoueсс^ ' ь , с г r , . r ' г r ч ' х 8 6 | | U J . p 1 | , / п : | " j | | ] | d o Jч ь | i i ч ' х а н | | J v }rl\:'d,.н||л lФпTеltс l'aмиj авToм a].ичсск11 сoхpапяя/вoссTаI'авЛI'Iвa,I sсe РeгисTрЬl ltP!i пеpeключеrrпll Ilадpугую зaдачу' нo Windorvs I]е испoльзует el.o, nрсДпочrtтaя o6Pa 6aтывать ка;,пдьпi из pcr.llсTРoв врYчr lvlо ' lfuкoе тo Bрeмя автop Дyмir] l' чTo ]486с. ядрo' нIllle].o ]]сзнаюrцeе o I!'1Мх/ssЕ.pегr.lсTpах сlrвPеI|еlIllшхЛРоцeссоРoв и l]с вкJIttFlающеe пх в кollTскст' 6уДет вьllll.PшвaTь n скopoсти' ollllaкo IlаPаллеЛьная pабoта jtвvх и 6oJee lIv]lьTl!!eдriihlьlх ]1pи,ro,(errиli olraжется пeвoзмo)nIroй. B Дeйствителъшoстrr :кс oказалосЬj чl.o зa соxpаllellие/вoсстаIloвJ]сниe PегllсT. poв сoxPoц€ с соPa (eс!и сro можтrо так iraзвaтЬ) оTвечают lltашI,Illньle кol аIlдьI
r-xsAVЕ/FхsтoR' о6Pа6атьIвaюrшle rl |lХ/ssЕ тorке'вo.rтo6ш вьтяснитьэтo' Pегистpьr
пpиrnioсь пеРeръlть всс Ядpo
о1 liAL'адо
llспoJ1яитe.nьпoiiсисТоп{ьII
обсу}(дeниеметодиктeбЙрoваниЯ Пеpcплю.lеtltrс loнтетtс1а oсvщестIlJястся сJ}')fiс6нoil .]]Ун(llиеii SWaрсоnteхt, реfulпзоваIJIloii в ntoskarl.eхe, этo чuсТo впyтр..нняя фупкцпя, п ядPo се нe эк<: ,l''p'tl1l"t,1",|'р\|P|,,''UнlI ' ' , . п : l - l | ' ' . Л , | n , - | J j ( ' l | , ' ' l ' , ' p ro , \ l ' l Г rrrr.r' ' 'r'r ',| ,'.'lltrl:l! ".o]| поpядпa 150 Nl6aiiг rr rJепoдъсlllio тя'кс'{ д].iя \1одс-\1ногoскачпBaп].]я, Pяд yтп. nrllj т:riirlхj Iln]tр]]rlе|l каx syпЬо| liсLrjеvеr ()I Nuме8a' noзBоrяloT вьI6оpoЧнo с(aчIrBa.Гr) l1еo6xoлпl\ ьlс сиilвnJrьllьlс фajjrьj нP\'чIr\rо| эпarlптс.llЬнo сокParцaЯ
}rРс\fя пеp!к:rчILll' oilнако по ЛсlxЛrятrr]jlll nрIJчlпlам orlll 1.o pa6oтalrlr, ro нет ( N,In]rosоft6jтоro ц,усT д.,ступ?) uoэтоrI). Iк'o6IoЛJ l[к) vnlсть ||ilхoirlтЬ 1'()1Лr}' вхоr.ia в sWарсontext сaм()(],к]яте,1ъЛo :'To .!огко s!аpсonteхt . eдJtllсТвгlпlaяj ктo пl.) ,iсT пР]rн()дJ]1.r] к |||cnlу эILPаlIv (ljср] п с |Illдгрo6l il)'i ll ilдп]r (:llo АпЕl'lPГЕD sl']Iсн .R0|. DPс,|',U|o|| , B , o ] р \ , ' , в c r , , { , | ' , , , ' , , l | о , . r n l , e \ e Р| | . ( | | , J ] ] . r 6 o i iд 1 ) у t о й д | l з а ( ( с r I 6 n с ] ) ) ' r r с ] l " x i с , l I I N IB ( с r ] c Р L ' ( Р с с 1 ] l ъ l ( , ( ! l r | . п к Ixlql , r y щ l I е L((!уЛIiлЛя\l КeBugсheсk Il КевugсheсkЕx, в кll|i()ii'lo iIз |lllх \Jь] ||аiiдспi PUs|] в8h/ с А L L K е в u g с h e с k] l , l ] i ч к } Т о в : r ' Г о N lP О , I L оL,) r r a - r o l r 6 . ' i l с r ( J ) у l L l i l ц l с i is l , J а р С о n t e х , ] l p o к l ) I Ч J L t ] а ' э к Р а | | . l r l i r а с с с \ l . ' l I i l ) iUl D t . р х . l l r ' v] D l I д l l i r ! r ' l ] l o I lH a l R e q u e s t s o f t w d г e . I n t e г г u р t ; o l l . ] о ' С ( , 6 ( ] Г B с I J J r|o|' l | ( ) . ] \ ' l l k ) Ч r с | к ) | r l . с к f T l a | ] I l l l o г o I l p ( ) l l . с с o р J к ) j i J ] с | ) с l | | | я д Pсr i I L сl ' \ l i ' l J l l | | l l i \ . ' l (t Ц ) l i l l r ' l v F Х S A V ЕJ.{ ( ' | l ) l ) r 1 я v Г ( ) ! ( с N l l i J J| i Ч . N l у ] l к 1 ) I o P i l я ( ) ' с v П r ] l \ . т | ]r i l ( ) l J ( l r l l ! ) l к х с ' ) | r l l l )|jci р с l l l | , l i l ( ) r | v , ( с l l l l o г ( ) l l p ( ) ц ( . с с o р I l J , l с D с р ( | ! l l ' l N | | ( ) | 1r)I l с l j 0| | l . ' i I , l r ц(' )l l l l t r ' , l l с J r i ( D ( l l r ] ) l хi t r l l ' I l ] i х l ] о | | |l|l r I L l l I ll ' I r ( )| ( ^ 1 у o J i l l : ] Ь ] J l l l l ( ) , l||сс, с| l ( ) ' t Ь l i o r J 0 l | с ( . I l l l ) l l ] l П t ) ' l l l l ' ' J ь r l ] , | ] \ l | | . q)уi]l{ц||' Ha]Requеst5оftWdгеIntоl^ruрt, ] ) . r r r l l ] k ) | ] l l r r r r rПЯ l l ^ I - ' ' l I P | l ] | i ( ) р о | l ( r 1 i i l l i | ] ) \ l i х ) I { . ( ) ( ] , ц r t|]с|Яя с. ( l ) y l l ] ( | ( l U l \ l |||| а l ф 1 s р а t с h l n t e г г u р t /н а ] р D i s p а t с h I n t e г п r p t . с()х|)illlяl()|IllIrJi1/Irосс'ГilllnПЦlL]1l'x)lIl]lllllр0|lJ(1.])|!I|jсli)llIjlо](rr||||lЬlх|l!|x'N|сrl||ЬIx ( r l с J l l { o l J | с к ( l Г ! | l 0 1 ( ) r . j l l ) I l r a ( , l J I ] с l L с ' r l . l I J ] )( 1, ii l l r с | l . l ) { ' ( a l l ) ] I l l I I l | | v I i p i l l ] j l C l r l l с | | i l К i D i s p а t с h ] n t е г r u р t ' I l J J O I ]IЬ( ) ] | ] l i l l I L l l | l ) l I l ! l]r(x). l ] n t o s k n l | , е х r] l p o к \ , ] х l i 1 Л | l]o] Ь l ] l Ь l . I r l l | 0 l | \ y lsоW . p с о n t e х t l ( T o ) l ( ' , t ) Г д l l . ( ) \ l ) t l l ' с 1 ' , , , s o . . I i l l l l l l ] ' ] | l I r ] i l с | l i . ] r | | ( , ] ( i r , r ? О ( t l " i ' L ' l ' с T . ] ,-l . l l l I Л n р a l r I l , | 0o . l ) r 6 ( r . . ] l 1 r n l ( ] l r r к ( ' i Y l i l l : r l l 1 0 ' l | 0liL] i l I l р L j д y с T i l l | ( ] в ' l 1 е ] l . l l Ь l c ( ) 6 l ) i l 6 . T ч l J I L |l I| a х o / ' l I I т сlя] n t O s k г n l ' e x е | | L ] ( ) л с l ) , i l | Г . 'B l l с P с N I . l | | | o i iI D T ( l I C t t y т а t ь с l D T т ; r 6 , l r l l ц о ilil i n , i l c с С o P l l ) ' к ) 1 ! l ' l ' ' | 1 i l кl | с J c ; 1 l ) в i l ' l о( ) ' t J 1 д l l T ьl jl ( ] j | i с л о р , | l l P y C ' Г с яя д P ' ) i l ! н о i l ] ) l l с v r с T в у с г | ]с l J м l l о - l r l , l r Ь ' х 4,:ljiЛllхПр]l l|х oтсl'1.с1B]Ill н l i i | | l L x ' р с r 1 e r r l ll!0 I D T \ J I ' | {lIl J . Г . r l ]r | ] ! ) с r l а , Г P l l в l lт' . ] 6 ] l I I r oп' Р c р ы ] r l l н r l i - l r ю 6 o l . o п з x / l { с р l I Ь Jo) T i n i l д ч x к o l r ( s ( , l ( . I с c . \ { i с Г о s о l t K I ] l | r | ]D r Ь x g н с Г ) ' o ] | P с д c л l l т е а , l Р с с a l l ( , с 1 { o . l ъ ] L l tl хt о п о p e l l а з l t a u о п l п ; l o 6 P а 6 O T ч r 1 к o вп 1 l e Р Ь ] в a l l l I i i( T o с с ' Г ь T а к I l х ' кoт0рl'lс YказьlвiLloT }ra лtosкrn 'eхe' а l|с rla др;lij|rсp) I'' зaФyзllЕ ntoskrni,ехe ]r дlг зассe]\t6"lllrP'ГrоссTlL]{оnпTellсрскРк.1.]lЬIc с.l,l,rll]l. Beду]дxс I.llrtll, Это rr 6уlот
с1рvпт},iх)1i1DТ.
l{pvгпе q)уILl{цI]lJтaюкс i'oгv] сo-\Parlятl'/вoсстalInв,rll]в:l1.l гсxyrцltii l{oнтеxст (этo' п 1lа(Тfloстll, ]1с"'Iасткeiз86Еoiнe]peг' PаспоtОя{cнIrая в ntoskrn.eхe)' п()з1.o. lfv lIilкnaдньI!ё рaс]хoдьr rта 11ерсх-!IоЧфЛlс \]е}кд\' tloтo]iам!l oIiаilь]gаloтся лO Ео-i ь Ilо вс.цикIl п nЬLIlиваIo,Г(Ltв тьIсяч]1 tITЬiслчl' riollаllд ilaшllr llоro ]iоЛа. ]lp]lче\1 r(a'кд.Jс ядрo Ir11сстсвolr rlсо6онпоr:тrl pоа.ппзаrI!ПI,i{aк oцclrri'ГЬ. 11асl(о'.iьln)oдно I,з ltrIх пРol.l3I]oд!lтс"'iЬIIеедpvroго!] Лоrичнo' ес..rи ]"r!l yroвoРllj\1ядPo ЛеРсl{.1rоча'Гl]]rоrlтelс|!] т:Lr(6ьrстpoj ral. ToJъ itо этo вoзl1о'dl()j . ТoIда l{onrlчeств() IlсpeкjтIочснIfIi в eдlш1пц\I вРсrlеI'п lI Oпрr
462
глaва 30' paзгoнитopмоxениeWindowsNт
деЛиг вIшаД пaкЛадньlх PaсхoДoв в ()6п]ееoъiсTpoдеi{ствIl€ ядРa, скa3а]to сде NleресTo лaнo (ЛистшIг з0.1). сoздасм 6o.1ьшoljltoJllJче.твoпoтoкoв (пlr п1сI1ьlxеii q)упкцию Bь1зьlвa'1ь Irли дa,{lr тРисTa) rr ка]iцы]i ]1зних застaвляeМ l{иrсj1ичеспи seep(0)' nривoДящylo к oTдачскваl1ToввРeMeп (lr' rLакслeдств]llr'кнсNleДлeппo' п{yпePеключениlo lia лРуroй пoток), кoJtIrчесTвoпeРerсIlючеIrиliконтексTa ]\{on( отo нo oflplrдсЛrrгЬflo сo/Iерхlinlo]ilyсlIсциа]lЬlюгосчeтчпкапpo1'lзвoдl4теrrrrt1осТп' 6paжaсмoгo сrтстelтнъrпrпtoни1оPом, yтиЛll,гой СPUМоп NIаPка Pyссиllo8пчa' отладчrпtoll Nfjсrosoft KerLlel DеЬug8er Il Dl]loгш rlr ]rрyгиltll прorPапlNlамIl, |{oHтeкста скoр0стипеPешюченИе листинr 3о.1. ИзмеpитeлЬ {
вр / / о т д а е xп р 0 Q e с с о P н оe е фвяб e с l D t c]ч0 au и l Л e ' t r j l e ( ] )s l е e р ( 0 )
) #iefrnе dеiN|h. 300 # d е l ] n rdэг g N t h Г( ( а . 9 с> l ) l i ] t r r , l ( d г g v [ 1 ] ) : d e 1 ' l . ] t h r ) m a i n ( lt a Г ! с с h 0 Гi * а 1 9 v ) { p г l n t | ( . ' с г е а t i nъqd L l r г e a d,s ' ' а г ! N t i r r ) // со3ДасflаГqNtlrr п0т0[ов i О Y ( а . 0 : a < а Г 9 N L h r :а + + )C | e а i e г h г е а . ( 00' ргrntl( 0к\n.) |h|cаd()
( V O i t ] * ) | h г € а d0, , 0 & z z z )
l C P а в н o п и е A С Р I - я д р а с l 4 B 6 с . я . I t р o N Iн а м a ш r t l l c a в l o р а ( i n t е l P с D t i u I n . ,.,]ьl,.. с\o1к. 1|I7ЗЗt\4|ц'2jсМ6,i.IsDR.RА]\4.|з,l)o6',1v'к'"а'|,',|4,||| |,j кoIt1.с1rс1. llaм поro 6ьI. llеппe в I'IхllPоlt3вo/lllтеЛънoстrl,I486с.ядpо переIr.nючаeт (TPcе' oсо6eiiно пPи Pa6oтe с 6о".rьrпrrlrlо.,lи.lестЛOli пoтокoв' B 116щсмс'Dyчaе I{orrI{чесTвo пePеI(ЛIoчсниiiкоl l1.екстаo6paтнo xPo11оPцrк'l.UпnroкоJrпч0с'1вyпo. тl]Itов,так кaк кoнтcкс]ш ltaДoгде'тo хparrltтЬ,а кЭш.]lаNtяTьпе резIrнoвая,Ес.lи я/:IрoдсЛaеT мlloгo Лиrnll]lх сoхрaпeппI:i(o rtотoPЬIхмЬl у,ке гoвoрилll)' oao супIественнo rrpоrIIрывaетв скoPосTl], Tе]\'пе lleнеe вссЯдРа сjцюeкTпРовarrьIдопo]lвI,r)кrtoс]Tъ .jтaтoчttoгрanlотпo lI сoxPаняю1 oTЛllч]]},rо дaж". пРи рабoTe с тЬllIepeкJiючeнис rlPoцeссoв трe6yот лоlroлплтeльпЬrх нaкладнllх paсхoдoB ,I пo тpс6rtяeт нaмнoro 6orrъшe пa\rятt{'поflyшо !ЬIзЬIваяс6рoс 6уфеPa ассoциатllв. нoir TpапсЛяЦrrli' пoскoxьку кaтr,,{ыirIrз iтPoЦссс(lв o6r1аДaeтсRо]1luадPсснr'rnl пРoсTpaнсTвo}J'вьцелить кoд, oTвеTстaенEьп:iза псрокJIюче]l]leIсoптеl(с'гов'1lс. с'цo)к]lo oн въrдaeт сe6я o6Pащеяисм к peгпсTрy CRЗ' загPyжа-qn I]егo }arаза Tеllъ rla каталoг стPаllllц (Pа8е Dir€ с toгr, Phуsiсal Addтеss).
oбсy)l(qени!Mетoдиктeсlиpoвания
46з
lrarxу тсстoвyю прol.Раммy' заменив пoToки .цавайтe пемнoгo мo]1ер}il,lзиPyеtd пРoцессaми. OдIrrr Irз ваРиантoв pе;LlIизацииl{01кетвыI]:IядеTь тaк' кaк покaза]Io в листинIe З0,2. листинr з0.2' ИзмеpитeлЬ скopoсrипepeклюЧениЯ пpoцeссoв {
' l r r l е ( 1 s) l € e р ( 0 ) ]
# d е l ] n €a г g l . l ! h(.( а . 9 с> 1 ) ? а t o(]d г q V t 1 ] d) e f N t h г ) # d е f i n eа г g р г o с . 6 6 6 i r а ] n ( ] nаt г ! с ' с l r a r* * d Г 9 v ) { с l r d .b L ] i | 1 0 0|0 ] sтАRтLJP]NЕ0 st PR0сЕss.Il!lj0RЦAт]0N p пеmsDi(80 5 ,t ,s ] z e o 5 f t)r 5t сb- зrzeol(st) ] i ( ( а r a с> 1 ) & E ] s r r с m p ( а r g v t la]г' ! P r O с ) |) h Г € а d ( ) ] s р | i n t f ( D u fl s } 5 а . g v | 0 ] a . g P . O с ) p Г o с, , , а г g N t h г ) р . ] n ] : | с( г е а t l n 9 : ] d f O г ( a - 0 l а < a . g N r h гa: + + ) с г е а | e P r o с € s 5 ( 0D L ] f 0 , , 0 ' 0 N O R М PАR L .] 0 п i 1 Y - с L A s s0' 0, '& s t ' & р r ) р Г j n 1 , f ( ' 0 K \) il ' t h . е а i ( ) :
l lla'{е пРи tlе6oЛЬшolI кoЛичrrствелропeссoв систeма 3!iaчитeльIIo(пPoсeдaeт' пoд ]tагрyзкoЙ t{ нaч]tIlae,гoщуТимo приTоPмaжllвa,].ьlа коЛичeствo пеpeклloчe. lrиii кoптекстoв сокрatlIaeтся пPIr6лrtзительнoRдвoe' I486с.ядрo пo.пРФкпему дeP'oi].ся в]lсPеДIrjчтl.)пе lloхет пе ра/Lовaтьjк тolllу ]t{ес Ilим систсма пaNlIIoгo 6о,reeохив',lспнo pеaгируеT]lа внешпшеpaздPaЛ(иTеЛи(в частПoстиl клaвпaтуP. ньтй ввoД)- Б]'стpoДеilс1вIlс пoдсисТе]\rЬlввoдa/вьIвoДаспециаxьнo не тeстирo. ваJtoсь,ilo' пo сy6ЪcктrlвпьIп'оЩущеIrlrямl 1486С и с эTим спрaвЛяeтся t1амнoгo
6ьrстpеe'
)I{слаloщt1c поЛкрепи,l.ЬэксперимetIтаnьньIе даlп{ьIе дo6рoii пoрциeй дизас' сeмб.]lеPt1ьiх "чпсTиlllов1Iloгyт сaпloсToятeльlloпpoаfiализ]rрoвaтъфyпкции ллаrlЙрoвщикa (ЛисTинг30.3)' есЛrr'конечflo' УхитPяTся вь!дратъlrx и3ЯДpа!Да,1eI(o нс всем l{ссnеДoват€ л ям neдP WiDdows yдaioсь этo сде"1ать.,. Зaдуlrаriтeсь: ес;rи ядpолЬsиllуlo /loлю пpoцeссopнoro вРемсни трaтпт нa переклloчr11иекоIlTеltстoв,tlе oзпaчaе'f Ли это' что нaи6oлee интeliсивllo вызьIвaeN{ъ]lliиol{ая{yтся фyttкцli]Jl пРиllaДJlсJкal]lиeплaниPoвщику? Зaпускаeм нaпiу
rлава з0. pазГoHи тормo)r€ н иeWindowsNт
464
тестoвуюnPoryalп1ylaoдкЛючaспlМiсгosoft кernelPгofilrr (и,1IrЛюбoйДругoй где-ToдесЯтьсe' tlpoфилnPo!цllк ядрa пo вкyсу) и' дaBe 'y на с6oP статист!1к1r изучим поЛ)лrеIrныиpeзyлЪтaт, l{УI]l1lвIlIrNIатсJlЬIIo
кпланирoванию oтнoсящиеся листинr 3o'з. Фyнкцииядpa,iрямo иЛикoсвeннo 4362 43З3 2908 2815 з00 13
nIOsk.n]ехe Еxltel."аsепesOurсе|.oГтlrГеad п t о s k . n le х еK i D rs p a L с h ] n t e Г г u р t ntо5kгn]ete s€ т OtenImрeгз0nаtrопLеye ntоsk.nl ехе (eOelayЕxeсutiоn1h.еаd n t O s k . ne] х e K i I p ] s е Г v i с e l i о u t r n e пtоsk.nl,ехеRtlр|0fеLсhМеmoГ}NOrrТempo.аl n t o s k г n e] Х e( с D i 5 c o n n e с t i r f е г . u p ! ntos[гnl ехе EхГгeеPcоll']]thта9
длитЕЛЬнoстЬкBAнтoв tIас'iьlс пеpскll ю.r онrrя tс('IГIeкстoв (],j.l) |{цaтс]'IЬl to скai]ъIваloтся l la п Рoизвoltllтель. Ill](iгx с,1сTс]\lъl' поэToI'y WiDdows NT rloдfulp.tет пPодoЛ)кlгr'eЛЬrloс,гь 0,]lпol-o ]Фаlггa с тi:lкl']\t Paс.lr] o]!l' .lтo6Ьt oliл лРoи(хo]l1'Лrl каj{ ]!1o)о'o рсжc| TeРяЯ nPи i)1'oi\lпоllвll)olос11, x 6lnстPoту рcакцlll{,
100 Nlс /цoI|усTlr]v, у llaс имсoтся 100 Лor.окoв' кa)v()N{у из кoTopьIх вьuiоЛяo1.с, ()'l,8с/LсllIloс ]]Рсji]я иl\l пPoцсссoplrol.о вреМсlllI' пРl]чспj вс0lloтo|(ll llсЛojlЬilyloт 'Ibцa IIl)()]l. 'tс l]o'l.ol(а I()l|еI! !Iя N1Ilolll ю гo 11тo гo м (-)l./LУ]LвупIя l IL'рсI{JI n oJIIioсTЬ lo, ),Гo Iкtr]апlci!1у' ]rсT ]0 сI вor rе6с,6l6yllп(а, |1Nlll()Гозаllачl|ЬIй ДсtlЬ..' CкшкIlTc| ссЬl(о чсрc]] 10 lloPi\{.l]lъIlоl t(outil tlil)t(llтirя клaвлLlа o'гo6palкaeTся ll.t 3]rPillкj ToJl A всдь cсJll'l куiuL.l Itоца сстeвьrс кn'tсllты IюJ]учaют в чaс пo Чaii}toй ЛФкк0? кa)I{!(oгo llз кЛиен]ов lJ oтltсJlьяolt пoтокс (ч-к) яBnястс' ссpпeр o6pa6aтьrист Т1'Iitичнoii сТр.lтсгl'сii пРоГp.lNtIlиDoванu' ]] Wiodows NT)' olrдoJI)(еIt уrv'сЛo Pас. xрeДеnятЬ rlрol{rссоРJrce вPсi\lя ]иФццу r ысячaN{rl lloТOIсо!| IIе pади дснcг' а B с'lJIy llсTоричссltоn lJNlх, пРoгpaммllрyloщllс Разl)a6oтчик tсвa]{тa'гак, чTo6ъI ссРвср lте,ГеРяЛ вeлIrurrItу нсlз6Фкнос'1ll, стрerll'l'Гся вьt6r'rpа,t.ь j1!IкoвoiI windows N.1., пaпРo. Pазpд6oтчI{кl1 I{aгpузкс' oтзЬrtsчивoстll дФке пР1'l пPo11звo/lIlTе.rlьlloстъ' ltoд NIaксимаJlьIlyIo TIlв' oпTиNtlI3]]poв'Lll! cвoю систе]!{y мelIяя всJl'lqину квaILГa oт вcpсltll к веPсl'llt тaIс, чт06ы сoвокyпнoe коЛи.1ссTвo о6ра6отaнпьтх зaпрoсоB в едиllllцу вpс|!1еllи 6ьIл0 l1акс ]!lа-пьнЬll1,вeдь llPoltз- ]!oпяTtrя Pас'ГяжIrl{Ь1с. водиTель]loстЬ - этoсllлa,а кorirQюрта6еlьнoсTь и yют всзДе лeжат интсplleTy пo Пoднимитe xoмпъютсpньle )l{урнальI, пoлазаii,гe о'гI]oшellllе вPсIlигде 1lo тonЬкo сpавниТeJьrrыс ТесTъI l1poизвoдrrте"rlънoсTji' II xерeйдel{ (о pa6oтьi' остaвиNr ЛlЦикy Лaдяo, вpеlie}rи менrl llрoсToя к-lиeнтa
к дe.iу (,|абл.З0,1). Windows NТ пoддeрхиваст двa тппа кваптoв д-.l ltliъIе и ttoрoTtс,iе.нсзaвп' .гaк и пeРeмсн]]o':i сll]uo oт свoelо типa I{вантымory'г 6ьIтЬ IсaкфиксиpoBапIroli, BеЛичинa lЦиIIьl (кваliTьI пePеNIefiвoйД.ципъ]e]цr назъIвaют]1инаN1шческими), quапtl]llr ltaзЬIвaeniьIl oф eДиItицах' цItаЛьllo квaнтa BыPаnGeтся в услoвIrьIx таrlN{ePa' oДrtoN'у тrrкy o6ыuнo rlnits,.l.Ри квaнтoяъI' единиr{ы равньr
465
oбсРкдeние метoдиктeоиPoваниq
УпРaвJreпиетипolr и прoДoЛяrиTельпoсr.l,ю кваптаoсyществЛяетсячеРeз сЛс. дyIoUlии naPaмeTp pссстPаj нКLN,l\sYsтЕlч\сurrеntсontrolset\сoпtro|\Prioгity. сontro1\WinЗ2Pгioгitуsepаrаtion, Если 4.й и 5 ii 6итьI,счIrт:rяor нvjrяjраB]]ьl10' с,iстeiuaиспользуеTкoPoтrdle tсва]rтьI. To '(e самor пpoIrсхoдитпрrroпTI.tпtизацпIr паpаlIeтрoв6ыстPoдеiсTви' пoltllсtlo.пнеlrr'IепprlJloжснlil:i(панелЬУпpавлeния|сисre}4а'ДoпoлнителЬнo'па. 6ысгрoдeйствиe). 01 указьIваетпа дЛинl{ъIе кваll1.ьI(oн хе пс]tоЛьзvется рaMeтры
пp'l oптll}lllзaЦIlrr спстеNlьI Itoд вьIпo.nпel1исL{Ркб в фoнoм Peя(имс), Лrо6ое лPyroc значениe Irы6и]]астпPoЛоJIжитсr1ьнoсl'Ъквaнта по умоЛчаrl11ro(rФPот. lфс _ в $/jndо\\,s 2000 Pгofеssbnаl. ДЛиIrIrые- в Windo\L's 2000 sеt"ver)'
Ес]|n2-hLIЗ i]i6итьr pавньr 10 .ilJu]tlaквarl'Гot]фиксllpoваtlа; 01 пo3!о''lяст lIЛаниPoвlIIикy]1llнапIIJческl] варl,xРoвaть Iцx]дo.x,{lIтеJlЬltoсть квall'ra ]r заPаlJее оIoвopеннЬIх llPс]1сJ1аx. J.lю6.]е/{руrос знaчеlIllс вь16;цr:rе,l тrrrl riваптоrl rlo умoл. ЧанlIю (пepeivеltltl,lс. в Windоlvs 2000 Prolъssionа], 4,Ill{с]lРoвa]lпЬle-. в Wiпdows 2000 sег\.сr)' Прu llсlloЛЬзoвaппtlдtttlаNIIlI]есItпх квaIlтоa п'llallllрol]lIIllкlIЬl. Taeтс,I авToiilaтпчeскll YgсJпчлRal.Ь llpoдor.I)о|TсЛЬl{oсT.ь 1{ваllтoB llеlФ'].opьIх lloтoкoв l тeх| кo,гoPьlп{пРопессоP!loс пРеIrя l ly)кll сс llсeг(J.Bo uся к()л|(:',rY час, IJrra.
IlиРoвцrtк дY]\'aет' чтo o]lo l,ll\l IIу)lLllсеl а дуIlaeT ()|| llpll6JIllJПTсJlьj{о такi есJlli пoToк 06слуЛ(lп]аcT GUI-oкlIо л эт
пepeменtыe 6 Фиксиpoвaнныe 18
tz 18
18 18
12 З6
24 з6
э6 з6
fiля эIсспeprrr,rентoв с кBaпTaпlи с'lсп(a llloдеPtll.tзпpуe]!f rllшy тестовylo уТxJI]lту' 3aстaвЛяя поTоI(и (]lРoцсссьI) t1спoJtьзоват],отneДeнньIl; I'}I кваltТвPeI'erlп IleлIl. кo]u. A в пepвичныr; поTolс всrРoиlt счeTчrп( вpoll€ н ,l' lЬIrtt1с,1,lюЛllll:lпр(Цox,ltll тельIIoс'1'ьинTер!aпa Nieжду двylя
сoсеДrllrlIIl пeРelс1roчснпяNltl (j!x(TинIз0.4),
лисrинr з0'4. измерит€ л Ь пpoдoлxительнoсгиквантoв
466
WindowsNт rлавa 30. разгoнитoрмoжeние
лвсrnнr 3o'4 (пpaДoл{ениe) r l r lre ( i L =2 ) w h i l e )( l {
iO| (а = 1i d<100 d++)b-b+(b1a)i
) #defrпedefNtlrг 300 # d e f ] паег 9 N t t r(г( а . 9 с> 1 ) ? a t о l ( а г q v t ] ] ) : d e l N t h r ) п а i i ( r r r tа r g с с t r а г* * a r ! V ) { ]пt sYsтLi.l] I|]Е sti р . r n t f ( с г e а t r n gl d t h г е i i s ' . ' d . q N t h г ) : iоr (a = 0: а < a.lNtlrг dl1) с . с a t € т h г e o . ( 0 0, , ( y 0 r d * ) t h r ' . а0i ., 0 & z z z ) f '1
р r j n I f (0 ( \ п ' )
s l е e p ( 0f) i= 2 : rlr Ie(l) { G0Lsrst€ f ll.rmе(&5L) st'!l.1inUt€5t,!l5€ , с Оnd)| st,!t]rrUг рrritf( * i02t]102d:102i\l s]с]€ p (0) l ) Пoд Wiпdows 2000 P|оtessioпаLv'(с пPи 100llo-|ol.aхвpelliяпDoгoпaoчeре]lll скa'(у состaвляет10 сl а lloд WiI\dоws2000 sсlvсrи тоIo60rlr'шс,BЬlгnлдЛ,IэTo' я вailJ'оtlerп]y/lPyчaroщсlrl Pа6o,|irtЬв тaкпх усЛoвlJяхстalrовптсякPайнс Дllс. tuе 6utее 6ыtlц юdейспвухщe,onpoцессapа1lе кoмфoPTlro-I7рuueмnpuо1pеmеl olepeЭa, ведь пoтoки rro.llpе)кllемУисllo:lЬзуloтoтвeден o6pо6amкg ускоряеm yспевaют псрсРа60'rаTЬ нirм]roгo6oЛьпreДaпньтх' flьIеI]I{ква}1Tъl и хоTя Це.JnlI{oм yправЛенше lrз нпx, rra]r l1 по]]yчаеT к&кдъril раэ в дeсятьсcкyuд, llеpе. PанЬшe' отзьrвнивoсть сr'rстeltш лри6.,rизlr. мaшиlly IIовь] пlаeт хoд IIaДRyхпрoЦeссoPную oчеpeдr' в,цвa в 1'3 (два IrpоцессoPа ].еJъl|о длинy У]!'ellьIl]aют Pаза,но зa рaза yвеЛIIчиваеrся ol1]]oro п{кaтaймеPа нa APIC IlPoдo.!,{llLe-l]ьI]осTь счeTпеpехо/.iа ' l 0 J U | 5 r \ l . и, - о l o 2 I i , 0 . l , , l ) ,О , LI d l" ' . т л | |Л | ^ | 4 i ,! P | , e P д o P o , o о' я ш | | й 6oлeе lr trirмпогo радrrкaлънъrilспoсо6 pеtttetlияпpо6".lеl'IЬi'oдиrr щeЛчoк llыI]lrl сrlсте!1ьlв пятъ,a то и 6oлeе рaз. неuеРLIте? нутaк УвеЛшчиT6ьlс'ГРoTyрeаI{Ци]1 paбoчelliy oкно наlrсIo тeстoвoгo прlIло)кепия пoте стoJy, чт116Ъr щсJrкнитс llo гдe oтражсriьi вPеNIсl1l1ъIе зaмePьI'кoтopьle рялo фoI{ус,B3Dlя]]и,1eпaтa6..l.30.2' yдaJось If1rе пo'Цучить,
467
oбq7)(qerrие пoЛyч€ Н нЬхрезyЛЬтатoв та6лица 30.2. вpeмя06раб0тки oчepeдИиз 100лотoков пpи Испoлнeнии и вфoнoвоMрехимeна WindоWs вр€ м я 06Pа60тки пPи испoлнении
вPeмя o6Pа6oтки в фoнoвоi' pежимe
00r14r48 00r15r02 00r15r16 00:15:з0 00:15:46 00r15r59 0о:16:11 OOtt6t27 00:16r41 00:16;55
00i2з|10 00:2з|12 00r23r14 00:2З:16 00:2з:18 00r23r20 оa|2з|22 aa|2з|24 aa|2з.27 aО23:29
tlТo tlрoи3oшJ]o? 1loToкlt a вrлrIllrпIа Itвап' ушЛtl r (!1rll' I1хxрt,Iopllтст]to11изl'lJ.Iся, Ta сoкPатrlJlaсьдo пltIниNlуNlа, и хoт' ltaк'ltaднь]с paсхoдЪ] rla п€ P rкJ]oчeJJI'i€ lФIг тeкстa вo3PослЛ| вРlэMя o6Pа6on{I1 oчcРсдl'l сoкРатI'iЛoсЬДо 2 с] с кoтopьIi!пr впoJlle A,].eпepъ зa]rpoйтo всс ol(нir с llссохpa!Iеlllll)lNltl /to]ryмeIгraм!i' ко'ГoPьIе |lall )I{аJI!(oпoтерятЬ, 'l yI]сJ]l,lчьтc l|рll(JplITсT 'гесTовoгo пРrlЛол(€ I Ij'l,l хoTя 6ы Ila oдtly стyпeIlь' Bисиi!!? A тoI псl1'ок[| тсстoвoгo пpl.lлo}IteIilt'l от6'фаIо1. rЦ)oц е с с o р } I o e в D е M я у в с е х o с T а J I ь l l ъ l х п o ] о к o B ( в к Л ю l l a я и l l с к о 1 . o Р Ь ] сс l ' I с , г c м ] i ь I e ) l п o I l ' I о к a 3 ь l в a l o т с Я п e ф y l l к п l l o ' l а ' 1 ъ I i Ь I ' Т о e с т Ь 4 ) y l I к I o l o l l a л Ь | l ь J ]l | о Р а 3 I r 1 0 с ' ч e | о ] L J я o 6 л A 6 o , г к l , lк l | а т l и a l у Р l l o ] . ( )l . |i l ь ] | I l l I l I o l . oв ] j о д a 6 o J r с 0 ч с I l l l o д о . сTaTo.Jllo, з.16авl]o' llo I486с.,ULРO llPll эToIl nl)oдo.цжaсТ pa6o,l'агь бo"цсc I1,пlI меx€е ll(JPмaЛь''о,
oБсyждEHи Е пoлyчEHHЬlx PE3yлЬтAтoB PезультaтьI тестирoвaнI'я I486с лдPа' пoлyчснrrьIе Irа Nаnlиrlе aBтора' пPI{вe. teньI t'].Dке(тa6]r, 30'з з0.6), Itак вIIднo' этo ядPo rt}{еетмrlo'{ес'Гво препrly ществ пepед стандаpтнЬIl' ^СРI ядpoм,Ihl.ос из нlш Irспoльзовать ка'цьIiI дoJIжeн р€ l xать сам, 1486С.'дpo lrо IloДДсPживaст AСPl Ir пoэтoмy не спс,со6 lIo в пoлIrolliI!еPeyпPавЛять эI]ергoпптaниeil кollпьютеpaj одIrак{lo,Гpпцатьеro L и Л ь ] | Ь ] е г' o l ' ^ , l Ь ] , п l i ] л 4 а ( е , l j " с т 4 . ' Г ' ( ] | | n Л " , , с , l B | | , l е , 1 ь | , Ul у| |dв. J' l,е' I, , л ] ' , ' l I l . вollите.]llrllосTl сисTемь]' и ]]!чеfo lolфиqесtro1.o в эToll Pазrонс нст, llс зсРx. те? испьIтaйтесгo саlx1, Дnя эToго в пpoцeссr yстaнlrвки (пеPеyстaнoвк]') oпе рациoIlнo]i систe]!tьl /цo)кl1llтeсъ' кoгДa пa 5крaпе пoяBится сooбщe]lllе Press F6 ]f
you needtoinsiа||athird pагtуsсsl or RAIDdriver(нФ}i]t1llTе F6,ес'цI{ ваr' Ле06х()дll. Nloзarpyзить sсSI иЛIrRAID дPaйверстopонriеrопрол3вor:Iитeля),IlкNЛlтe F5 и BыбepЛтeизсlтllскaиllelопIихсяя/{еpstаndaгtPс W]thс'step i486(сTапдapTyстalloвl.y в ()6ьlч. ньIйкoмпьlотеp1486с'Геппинг.C)'Пoсле чегo пpоr.lо-lr)к]fle
468
глaвa 30. раз.oнитоpмФкениe W]ndоws Nт
та6лица з0.3. скoросгьпеpе@юч€ H иякoнтекста пoтокoвн. Windows2000PюfessiоnаL (пoтокиисnoльзy|от с отдачейквaнтоввремеHи l]ичтoхнУю чабЬ отвeдeннoгo и,,lпрoцeссopного вPeмени) кoличёствo пoтoкoв
+50 +З00
кoличeсгвo пеPеuючeний кoнreкстoвза 10 с I486с.ядPo 7 141 161 8 0о2734 2 464 962 4 a2в 72з
та6лица зo.4. скoросlЬпepeклюЧениЯ ковтeкФаПрoцессoв na Wiпdows2000Pfofessiona| с отдaчейквантoввремeни(пoтoкиисnoлЬзуloт ничтохнyючасгЬ отвeденнoгo им пpoцeссорнoго вPемe|rи) кoличeствo пepемючeний aoнтrксгoв за 10 с
+50 +з00
z 92З7I9 1 945529
9 6з865r 5 0З88з7
тa6лицa 30'4. скoрoсrЬпeрeключенИя кo|rтекста пoтoковна W ndows2000Professionа| (пoтoкиисnолЬзyют бeзoтдaчиквантoввpемe|rи oтведrнное им пpoцeссoptroe вpемяцеликoм) кoличeствo лoтoкoв кoличeФвo пeDeключенийкoнтекстoвза 10 с
+50 +з00
з03з 2086
6481 4166
та6лица з0.5' времяoбрабoтки оЧeрeдина W]ndоWs 2000Profеss]onаi 6eз oтдачикваHтoв врeмeни(пoтo(иисnоЛЬзyют oтвeдeннoе и]Чnроцессopнoе вpeмяцeликoм) кoличесвo
пoтoкoв
вpeия o6pа6oтки oчepeдиt с
1486с.ядpo
+5о +з00
I 15
},,'ttz'b+/ t:э !
гЛABA31
WINз2 3ABoЕBЬIBAЕтUNIX, иЛи
пoPтили,пoPтили и спoPтили na'\!nьanеPа, xе]xx'|о с0. ,,3аlа'ш, pсutае'lл'tес no-lx)ul,|,lo мl|Л xa пua]nч1оj| u nolюllсdоloпu]. Пoлгрэм в пoсЛеднсc вPeмя мIloго roвoPяTо )lel)спосс1]Nlх'lЦx)l'рамru lla Windows,.гo.lькo тaк, и lппсarсно наo6oрoт' нo всдЬ сylцеoвуeт 60Лъ!1()скo"ruчсс1.воWiпdows. пeт(преЛцс вссr.oэ,l,()вanIп IФтоPЬIхпадpуГIlх Il"!аTq)()рri1iх пРoIрaNIм'a!Ii]-пoгoв сo6ствcнньlе прогpalrмьr)- Стопт ли пх пeрснoси'l'l,lla UNIХ' и ссли Дa, 10 кaк? A6сoлloтнo псpeяoсимoгo пpoгpaпtlпtoro o6сшrсчс}lrlяIlе суlllестnуeт, r.аlrIIс су. сце lle о3]iачаcт' чTo ществyет a6соnюТil(]гo пу".rя'Пoня1]le <.пePеIroсl1NlосTu) lloрTирoвaниc свo/{и,гсяк пPoсгoii ]|eРекollпrпЯцrlrt, BсеrlLa Tре6уIoтся дoll()rl. значrlTе.]l ьtIllTелъ]lьIеуси'llиЯпо его адапTaцлrl.иtroгЛа тPyдoзaТpal.ьl1laсToльI{o llell гоняТЬ сс ме]кДi,плaтфoPмаrlьI,чTo прoщс xсPеписaть пPoгРаNlIlу с nУЛя, ми, сисТeмнo.oРI.rснтиI]onанньic паксTLl (FAR' soft.iсс) псPсtloсllTь вoo6щс 6ессNtьlсЛeIlпo''. B лю6oм сrryuае вьr долхньr пoлпoстьlо paзo6pатьс' в исхoДIIьlх тertстах' ]{oтoPьlе llерerloсtrтe' Пp Дol!шниpующсIl стrUIе кoД poвания !.Iнтсp(Deiiспpограll мьl ItepeltеlIIaнс (вычrlсЛитeльrroй' чaстью (спаси6o визуaлЬныr\{исредаlt paзра60ткиI)' и pаздr'qиTЬих llе пpoще чеIl сиaмскrп 6лизнецoв (но p;вдeлять всc 're пPrЦеTсЯ' пoтoму чтo иllтepфeйс в UNlХ oчerlь сиЛьнo дPyl.oii), ти]тичяый вмсссисГeIJrlо зависиrjъп фуlll{цпii код нaшnrrговaIrбoльll]иIт I(oл].lчествoNI п N1FC, Ак. въrзoвьl AРl то стaIЦaртньIх 6и6JrиoтечньIxфункцl1ii пpeо6ладaют
470
rлава з1' W,nз2зёвoевываq.\iХ, иЛипoртyли,noр.илиl сroF'тилi
тивIIoисIiользyloTсяaсссм6леprтьIe встаslrrrи пoвсeместtlo_ умo,IlчатlиЯ кoMпиЛятopa,Этo в БaгДадeсhar пo yмor'rчаниIo liпsi8nеd,нo в дpyгиx IсoNlпиJrятo. кpaтнoстьвьIрaвниваrtия Paх oн вeдeтсе6я сoвсeм}ieтa(! прo <уМoлчaннyю> стpyктyря и вoвсeмoЛчy'xуЖе этoгo тo.]rькo ]rесTaнДаpтIrьIе paсшиpeнияI(oм. пIrлятopаI,lспецифичeскиe oсoбенносTи eIoпoвeдeния, БoльUlиtlcтвoпрoгpаN'м' сoздaнньIxсоврeмеIIItЬlми <пPoгРa]!1мистaми'' нe кoмnиЛирyloтсяМs Vсl есЛи I'аписaнЬIЕaBCC и' сooтветствеIlнo' наo6opoт'flo пеpенoсапa UNlХ им тaк xe д;!цeкo'как их aвтopаМдo зва}rия<пpolPамilIистa> (нс o6язатeльнoдаrке<пo. чeTнolo пporРаMмистa,lмoжIroпPoстo (ста)керa''пyтaющeгoязы]rсo срeдoй Рaзрa6oтки). C.rитaeтся,vтo пepeнoссо]сРaIцaеT издсРЯки пa paзвитIreи coгtpoвo'rДetlиe пpo. cктa,иveя llеJав,сиv"|ёвePсии д.пяWiп.lowsиlJN|Х.вшвшну,клerlu внoсиrь испPaвлеlIияи гolrятъ6aгoвв oбeЙхпРог!аммaхoдfiовРc$lсннo, ПopTa6eJrьньrй кoд этих пeДoс:t aткoвлиrlleн'Як06Ьl,Cкa)киTс|lсoгда.Ilи6yДь въi пpо6oваЛипи. сaтьпРoгpаI{мy'кoмrтилпРусмyюбoлeечe11oднимт(oмпиJIятopoм? МатeриjrисЬ гlpиэтoм? и ]IpaвильIiolя6ы ToжellIатeриЛcя' o.Рaпичсliияl ]lа"1aгаeмЬlс ,тepe. нoсIlмьlмltо]loм'JIишaюT]iaсмнoгих (вкyсlloстcй}язьп(аI{знaЧитeЛьllo yвcли. ч и в a I o т , l ) ) l o с ' М к oЬс р| l з р : ' 6 o т к иД' о п у ( T и м ,в ь l uа6лoнl,I " lIа с t I o л ь з y т(oп{IlI,IJrятoP e]" (Lcmplates)u lla Ms Vс всe pa6oтаeтlllo пPи Ilсpeхoде дpyгojt пpoфамма рaзвыlивaeтсяк чeРтy' A нeкoтopыeкoмпиляToрынe иниЦиыlизи. _ и всe'гут|зa. Pyют cтaтиqескиeэкзcмпляpЬlкJIaссa,lIy нe иПициirпизиpyroT будЬтeo стaпдартах.Itoмпи'ilя-l.oPъ] paвпo всe их нe придeРЯсивaloтся' чeм )Re тoгдaрукoвoдствoвaтьсЯ? A ничe$Ilэтo y)к мI( пoвФeT/нeпoвeзст' при lo)кдoмвнeсelтииизмeнeпийв прoгрaммупPolonяйтeeeчePеэвсe целeвьIe I(oмпиJrятoрьт' кoд, спсцифичIrьIii д"1rдa]{нoйплaтфоРмът' 3a6oтJtиso oкpyкaйтe *lfdеfиЛи вьп{oситев oтдeлЬньтй ну ит'д. B кoнevпoм сvетeвы пoлyvите фaй''l| всете х{r двa }leзaвисllмъIх пpoeктa'IIoтeснoпeрсII"r]еTeннЬтe дpyгс дРyгollt,пPи. чeм внесеI{иe измeнel!иЙв oдиIlиз llиx даrт нeпpeдскaзyeмь!й эффектв дрyгoпl' }Ieт.нeт'нe пoдyмaйTelЯ вoзсенe прoтl,tвник переtloсимoгo lсoдa'прoстoнe лo. _ Цсль|a нe сpeдсTвo.нпктo нe спорит'чтo lIимаIoтех|Дця кoгo пepснoсиll1ocTь тalФe пРoеltтьтlIсaкApaсhе иЛIrGcс' дoлжtlы изнаrlа"tтьнo рaзpa6aтьIвaтьсякaIс пeprнoсимьIе(пpoцeнтсистeмнoIo.нeзaвисимoгo кoдав них oчeньвелик),ioвoт мeл(yю утвapьтипa пoчToвoгoкЛиентaлyчшeзатaчивaтьпoд иtlllивидyaЛьJ{Ую IIлaтфoрму| a пPи пeрeхoдeнa UNIх пeрeписЬtвaть зaнoвo.
47L
всeлица] Фoи а6сrDагиDoвания' или6а!знакомЬtе
слoи AБстPAгиPoBAния,
или БA! 3HAкoMЬ1EBсE лицA! вoсllользyйтесь WINЕ lIЛи Willows' ЕсЛи нy{]ro 6ь]стрo п€ Р rнссти 11poграN{N{y' это 6eсплаTнo paспPoстРaняrпrьlс миТаторъIWiпdorvs, o6opa,rивaюшltе UN lХ. фyпItции тoлстьlN!сЛoеN!пePеxoднol.о1(oда'peaЛпзующеro wiDЗ2 APl, и рабoTa ющ'1еIrаWindows 9X/NIT/2000/XP' Lirruх,lrтce tssD' sо]аris (а Wi]]owsсщеи llа pсaltQNХ _ ес,l.ьTaкoli rr,roнUN1х' упРавЛяroщиli истpсfttTeJ]яMrl'aТoп{IrьIпlи тopaмп и 1lрoчими missioп.сrit]са!спстепlaruиl rrстаTlrtoвoря' 6eсIiлатньrй п с. п o 6 o д " о у м ' ' щ i , , " t ш t i с я н J o . r н U i i J | | ., - ( р ) o6рaтl'rте вншI'tаlIrrеlн€ эмyЛя,l.oрnI,a ппleннo иппrтатopьr (WINЕ ипreннo тaк и PасшифрoBьiвaется: <wnе I5 Nо|:Еnulаtоr, - эmo t]а.l|не э'i|цляmop),т1011т и Р у с l ! 1 а яj | р о г Р а l 1 м аx с l l o . Ц l l я e т с я] l a с к r I в o N l Dl l P o ц r с ф ] ) e ' п P а к т и ч с с ' { и ' J с теря' в сt(oРос'гп, Bo всЯкo]\1с.llучarl PеliJlаlla I0rоPl|'Г Il]vrllllo тaк, A чтo pсa.irьнaЯ,(rtз11Ь?IlРп псеi:iсхo)ксС1'I UNIх и Wiкlows NT (IIх Я,lцlаllaсJrодylo.l. с16Iцпй п а 6 o P к r - l l L l l е r l I l п io{н) и в o ^ j l ю г о i vP а З л l r ч н ь It,s U N I Х с с т ь з a l t е ч а т с л ь . Ilaя фyIlкцl'я fork, рiL(!lerJляюIllая Ilpoцссс Ilапопojtаi!I.B NТ 0o r|е'Г.сгeаte. Proсess/сrеateтhreаd_ эTo фyфЛo, 14 вo,l.tloч0,!у' lIаItлa,цпьreРасхoды Ila р^с. ц с l l J l с l I l ' l е п Р о ц о с с a l o г k , o l I l r I ч T o ] l ( l ] ' lч' с l ' o l i e Л ь з я с п a 3 a , ] . Io) 0 о i ] ] i i L I l l ' l l l I I D o ц c ( с a / Л o т o l { са l l у J l я ' к с , г a т п г о в o р я ' с п o Т o к a м r l в L i п t l х c u Л o l I l l l o j i н a . n р я г ( в I l у ' Г P с l l l l l ' с п o Т o к l , tl I P с / l с ' I a в J l я ( ' l ' ( t ) б o тi iс ' ( c l 1 р 0 ц с с с Ь I]l l o l . ( ' ' l ь l ( o с <.I'IзвDaulel'иями'). Boсг,l!a' кoгlLа это l.oлtnro воапlo]i('Io,зaNlcllяi]l'ГcСreate' тhreаd !rа fork (IlрoI{ессЬl' B o].Лl,lЧllс()1.llo'l'oкoв| l]сlloЛЛяIoTся I] Рi]iJ]Illtll!l)Iх а д p e с I l Ь l хl I Р o с т Р A l I с ' Г в arхr м o г у r . o 6 ь l с r r I I в a т ь с/яL а I l I l Ь I I tтиo J l ь к о t J с р е 3I Р с l пalIPI'lмеР llPoeцrtРуcldьIс в flarvЯть фaji''IЬI)'l{ тoму )I(cсрсдс'Iвa сиlIхРон,iз.r. l { и и п o T о к o ! ]в W i n d o r v s л U N I Х Р a з J I l ч u ь I |A в L I N U х с u t l х р o l l l ] 3 a ц и я I l с Iloддсl )'(||d:( |ся пnв.n l| р.:l,1||'vl,l. J в| с|U|,'l\'Il lI'6-llo,nкiI'
,, B.e
nn Лl 1Jn,
и вь16rrр пDeдпоч oто6pаnrсrlисWin32API па UNIх.фуlrкц]lи псo]rпoзIlaчflъIм, кol i кpс'Гнoii] сJIytlae ДoJl)I(спoIlPс/tсJlяTь. TитeЛЬlIoIo сLIсТсNll1olo в ЬIЗoвa в ка,]t/1oNI ся индивL!дуaлЬнo, ЧeЛoвекoм, I,I]!1llтaтoрнa это нс сlloсо6etl' fi падe]lия пPоl13вoдиTeЛьIloстп не из6e'(aтъ (дpyloе деJ.lo| чтo при сoвРeмеЛIlъIх aппаPaтIIьlх Nloщнoстях п:r прorввo]цlтeльнoсть jlto) lo пo].Лaсть)' l{oнстРyктиsнo
I
6oJIьшиllствo пNIl1 aтoрoв сoстoят r1з Двух oсlIoвньIх кolrl1oIIеll-
тoвi 6инaРнolo интepфeйсa(Binaгу Intе[fасе)IJ6иблиoтeкиРазPa6oтчllxa ( нaпpиlliеpI Willоws) вкJlючaютeщr и yРoвеll ь ( LiЬraгy).некoтоPыеиN{итатoРы (Piа|forn.aЬstгaсtion Laуeг),qToyпPоIдаcтllх oт плa1фopмьr a6с'гpaгиpoвапия пeреIloс 11аllРyIие систеNlьI, ]]o этo у)кe ДетaЛи Pеа-r1и3ации'
PЕ. <псPевapпвaющIii; в с€ 6 я winз2-загрузвик, БиEaPнъIйrп]TерфrйсвK.т]oчaет нItх oкРyже пРивьг]fioe точностЬIo вoссoздающlrЙ д,'lя и с мaксиN{i]-цьпoй 4)aiiЛьI
ниe' }leобхoдимoстьts neрекоlшIrлЯцrш гIриэтoNloтпадаеTloд]lакo совNIссти}loсть сlстаеTся]ЕyPoвне сЛа6oro под06]шЛевoii pyки. Pralrь]1oу]raeTсязапустить ''r}iDIъ нe6ольшoe rсoлl,lчествooфисriьIх пРилo)rrcниii типа offiсе, АсгоЬаi' Phогoshoр и т, д, Сис|. чн,,r угy-,|| |,.hoр, заrojroвoчньle 6и6-1иоTекa
P,' n o ] | J N | n | | , Ь ' р | l х oL | | , " п].n, пЛюс 1jЬ-фаli.fl, Адаl]T]1poвав ]lрило)lrcние' NlьJ
Ч.Р o o|,.J фaйльl
472
rлава з1. WлЗ2 зёвoевЬ|вае' UryIх,ц n гop aлv, 1oЙvлl ислop|V"4
illo)ксNl кoNiпиJ1I]Poвa,lь eго кaк в ЕLF (тог/'IаIieo6хoдиN1осTь иIIeтъ а пIапlиIIe vс' ].нoqJleЬлo|Й . r I l и ' а | o гo I ] | а J 'e I \ . | а { / в P L , к . . о | а : в (Раiiнеil случaс i\foж}lo вoспoJtьзoвaTься iIоJIнoцепным э]t{у-Iятоpoi\l Рс VNIWаге илri Wiп4l-inj oдIlако IloлeзIloсTь этotю рeшeния сoпIнитeJ'Iьнa, деЛо да)кe но в аппаpатllьlх тре60ваниях (я впoлнс yспеr]Iно Ioняю VМWaгe нa P IlI 733)' a в-].д06с'Гвс исiтоЛшoвaппя (тoчIrес, в еГo oтсуTсIвии)' достаточнo сказаTь! чтo o6мснивa].ъся даIJl]ьllllи с эI{yляTopo]tf пPиlI€ т ся Чсpез виpтyа-tъltyю лoltаlьIjylо сcтьl гoIIя,l lIх в 06с стoРoнЬr в xвoст и l] гpиву,
yстAвшим oт пAсЬянсA гIoсвящAEтся ИгpидрyГИхграфических для Пeрeнoса пpиЛoltений луЧшeвсегоподxoдитWinex' в на. ooяцеeвpемяпepeи[leнoванвыЙ всеdе9а/*кoммеpчeская версияимитатоpa WlNЕoт кoмпаниитаnsфming/opиeятиpoваннaЯ Na Dirесй/DirrсtзDoреn cL и прoЧиeтеiн; .o.n/ э|oгovрoв]q,PaбO.ае'в L,1.\,Мaс,P'd!srё!iо12, \воr и \;tt Gег,хoтy,е, rоква {а-Ь гoleмl.тo (Wо 0
лoo
сroвo на
l о
в l 1J^?
' (лoDool4атЬ' нетлpoблeм|А еL]rе мo){но иЛипoгolrЯтьв лeеa.oьspеeс' спиЬi пой;
живаeмыxигр oЧeнь вeликl и сЧет ид$ Ha тЬФчи !аимeнoваний,
пЕPЕtloспPилo)|GHиЙ, сoздлнньlx B MIсRosoFтvIsuALsтUDIo I ( O | ' ] l ' l , | ^ М , ' i n s nl т| :, r' ' ' : r v ' . лt, к n , , l l , i i ( I l l , , , ' | | v J ,]|' с| х l | , , | | ] 'J.L| . ' , 1 | w ' ,i ) . ' | 't \ \ . zчU { | ( |l)t l ' , l \' , , | | | . , : ! , Ь \ , ( .'I' ,iI|l,, l | | , |'i|i | , a Л v l I V i s u а l М а i l r W i п , r r ' " r з ', r . | r . ' r п ' r t lпlсn'Гь ко/l в Мiсl'osоIL Visu.l1 studio lI Tу,l,,кc кl)]\!lIrl'пrlPoвaTЬ сl.o пoд DазIlьlс п л а т t p o р м ь(l W i п t l o r v s 'L ] N l ] х ' l т P . U P ' A х I ' s o l a г i s ) ,l r p r r . l е пкro - , l и . I с с т i o пrvr Лeр}к]lваrNIьIх лIllтфOpм Л"'Iаuol'cl)rюрaс'roT(pllс, 31'1)' тач€ д eвелоп€ p а (комлЬютeр разpабoтrика)
:i"dlt;:jJi3iт:,"
пoд visuа] Wintчain, интeгpирoваннЬй "pилоxений
перенос прилo)кениЙ, созданных в l.4iсrosoft Visuа| studio
47з
Pи.. з1.2. иеPаpхия0ассов Windows Пaкeт сoсToиT lt3 пескoЛЬкпх чaсTeii _ эTo ll и]lспе]сoр rroдa,]toзвonяющllii o6-
l l l р v } к | | | L . | | . , n \ l н o . . J в | | . и М Ь | . ) U а г 1.trl уl . к а й г p о - р з v v t t с - г l t t t p " ш l t с t t l r t n l l 6 у Л е I I l х и . п l j . | 1 Л Я т Ь . ) , и l p c ' l l j n | | P . с . l , ' п n Л | o I J B 1 и в i l | U ш l | | i] | l х ' l I l Ь | i t | i ^L к пoсЛeдyroщей тpаllсЛяЦии GсC (IrЛп.1кJ5ьlN1ДPугlrм UNlХ{roNllllUl,1ToPoll)'
и кoнeчно )l(е(16пшрIrая6иблпoтека фупкциri' рeалIrзуIoщaя:a) W]ndows-при. Nlитивьl (SЕн, DLL, nPoцсссьl/пoТoки' сPсlrства их синхрoяизаuпи, peсстр,6у' фсP о6п{снaи пoДдсpжку нaциoнil|Iьнrnхюrnкoв); 6) грaфичесшlli п пo".lьзoвa.
(GDI32'UsЕR32);в) сoМ мoдеЛь (Aсtivех'oLЕ' МIDL' lrнтePфeйс тeлъск1п:i (ALT' МГC, C RuпtiтnеliЬтатy), DсoМ)j I) 6lr6лuoTeкy вpeпlеllи ис]loлДeпия П o i l ! ь l й t l е p е ч e l l ь n o ] Ц е р я ( l ! в a e м ь I х4 J l I ч ] l a W W W ' m а i n s o f t . с o m / s o | u t i o n s /
vmws_wp.html.
474
rлaвa з1. W]n32завoeвываeт UNlх, илипopтили,пopт|4лV' ислopтИли
Pис. з1.3. иeDаDxия Kпассов WхWindows ЭTо кol!]v'epческиil прoдy1с' пPиqем oчснъ с]rльrroкo]\!мeРчeсIrи]i(.]rицснзия ira оДнoгo Рaзрa6oтчиlс?rсTorIr свЬIшlrдвyх тьIсяч дoЛлapoв); nPавjrа]дoступirа 30 дневн:|я пoЛпoфупкциoнiulЬнiu] дcilto-вepспяl тaI(чтo,,,pешaflTе сaми:имеTь МаiпWin, кotlечнo' мoп{ная rпryкa| Iro иrrorЦaTpc6yeтся сoфTипa пoмeльче, oс. нoвной камeнь пPеткнoвеIllJя этo кolIeqнoжс МгС, в М]сгosoft visua] studio всe визyа-l6нЬ1осPсдства Pазра6oTки пoстрoellьI ]tмeнно нa нем, и xo'Гя исхollньrе TeксTЬIМFс дoстУпнш' llсPснссти elo нa UNIХ пaмнoro слoxнеe, .rеlr сoзд , lГ o с | l v J l я с, o х Р a . l и ви r p а P I , /о | , а . с o в и l p о |n l , r п ы ф у н l ц | | " , , vхwiпdows этo6eсплатпая6и6лиoтrкa,пРaктI'Iчeски пoлtloс1ьюсonмrсTи. маяс N'IFси рa6oТaющaя rta Bсeх UNIх.плaтфopмаt' IдeесTь GTк+' Моtifили
в l4iсФsоftV]sUа! studio сoздаHныx
475
'гol{ чтo !Nlеl eтo 6есшлaтньтiiклoн Lеsst]l ЕдинсTвснtIoе oтJичt]е зal{Jll0чаеTсяв pеэy'llь,l.аTe пPrЕpацaе,г<1fх>, в чelo сl'/nd сто l1peфикса <С' здесь испojiьзуеТс9 сЯ вWxwnd,llекoToРьle к-.laссЬIеrце rre PсaлизoваIтьj (IraпPI{мср' o1сутствyeт 11сизвесTпo(рис- З1,2, 31,З)' эTо' кoнечIto' сЕditvieн), и кorда oни l]oявятся нrnDия,г]]о']]oи 1l€ смеDTeЛЬпо.N1о}к]lorr0e.1Йкir6oйтись 6сз tlеДoстаloп{lтхItлас. сoв, эаi1elIивсЕdi tVIe}rнa Wхтеxtсtгl; onсpaцию <пеpe6ивки>llpeфиксoв зaтнaть в IlPепг]oцессoP иЛи 11oвесIl'гънa макрoс Фис. З1,4 u З1,5), Cамое главнoc _ l1poеI(тrrе Pасnа. wхWinсlows пpеrсpаснo рaбoтaeт нa Windows' a зrrачи.l.|0/1и11 l"la сai'iте IBМ ес1.ьз:tмeчaтс.lll,llaястатья пo llсPе]toсy МЕC.пpи,.lorкеttлii пa wхWirn]оws, a нa саiiте самoil wхW]I)do\\,s€ l це нсrvlнot.ollаTеРliалoв на эту 1.еIlу' кoпIпaнии судя Il()бalrн€ P aпI, ttpoекTyпокPoв!тсnьстBy]oт вссьпlаtsJ]llя,lелl,lIь]е rre вoлнoBaTЬся, сyд!6y lloжll() за сro lеiiiпylo и неlРWaгс' llo')тollly vMWаrе дtlrlы
N4Fс.лрилoжениe Pис. з1.4' oригиHальноe }rа11prti!1еp МEoжeстBo пo,tезных6I'6ЛиoTек мo]t(lloпaйтlr нa WWW.sourсeioгge'net, ' p " i ] J | , , l 1 | | J | | р o в q I t ' ^ е е e . 'lo!,o'L,,UБlI а N l ' l | ' ' i l | | 6u61иo1(.,ул|чр.601Lr. _ ll ЛеI paслрoстраняютсяв ltсхoдtlьIхТеItсТах всс oнlr бесплатны' зoнаI) l]bini.|ib' нl1какoiт ]rе 6рoсaiiTeсь писaть ]:lикoгДa к лю6olty пpoектy, кo пoдклIочаIoTся кoД' пPсliваРителЪlro Ес noискав в ссти, Сi(oрe€ всегot oн нaписaн дo вас, LаIt зaчем )кe изо6Рeтать вeЛoсипeДlIФгдa есТь loToвъ1rчеpTежи7
476
rлава з1. Win]2зaво€ в ываeтUNiЬ илипoртиЛи, пopтилии спopтили
Pис. з1.5..' то )кеприЛo}
сooтBEтстBиЕoсHoвHЬlx кJtAссoB тaблицa з1'1. соoтветс|вие основнЬхклассOв мeх{дv l.4Fси WхWпdows
ЕdtveW
сЕditv eW
lчDIсhiIdfгаmе
сМDlсhidWnd
wхDосмDIРаrcntFrаmе
DELPHI+ BUILDER+ + LINUX = KYLIX БaгдaД ве.Цимя фпрмa! Это oна сoздалаTrrrЬo Pasсal r.iTuгЬo DсЬu88ег('Гочпee'нс сoзда-.тa' a }'к,., Тo{rстЬкyпri]ra),этo oliа сoз/.iшa.ГuгЬo Vision ll oгI. pеДелиЛa06лик пI'тегpиpoваttнoil сpeдьrpaзpабoт. кIr,ск t{yчссT1ro. Я пe сЧитаюBог]andс++ xoРо шl1м 1{oI!IпиляTopo-!1 (он кaк тo страlrнoтpактyеT
DЕLPHI+ BUlLDЕR+ +LlNt]x= lсLIХ
477
]]eoчerlь)'Би"r]дep я 06х0rкустoРoнoй,a o1. ANsI.стaнДaPт'дa Ir oптrlN{изиpуeт _ Мori nю6и. rrатуPа.Iъrrо тol1lнит' [Io этo Личныe впечaтлerrия' iцelш .цeЛьфи мьIй Мs Vс нa UNIх'е oкaзьIваетсяв гnу6oкоli дьIPе(пеPeнoстpе6yет 60,rь. a пa Бaгдaде' прoстoпеpеI(oмпп. влo)к€ н r1йи тeЛoдвDкеflиri), ших Денe)кllьIx ЛиpуeтльrrаKyliх'e и всr! К у 1 i х ( " t , I I л и . r ( t p e . ' К ; L . х ) L' Г " в h e | Г с ч с L I , rлt Л i i l l ] l c н ч й n, е } t er , р - i l | , I l Il r ( , t ,' , . o . сyд l{ля питья виIlа: лJ-IoскaJIчaша на lto:lставке с Двylllя гoРIlзoнта.пьflьlillи Pучка. N'и> . вьIп]lска изэIlцlп{лoпeдпчeсI{огo слoвaPя) _ эTo Dе]phi lI Builderд"Iя Liпuх, нах&llяву) и вкЛIoчaюпIпIYIв сeраспPoстРaняю1цпriся пo JrrтпenзUп GPL(тo€ с ть 6я иптегрирoваннуlo срely рaзра6отки (экpaннЬlй рellактоp' пllтeрaктI{вrrЪ]ri oт. J.]alчllк''' fl)-l в o6щепIt ктo lte лoня.n' тoт в БarДадс нe бЬlвa"l) 0о всeNIи r]eo6хoдIF
на6oP,Ly(Pис'3] '6),ПРи услoвIrп I.rсЛoямrtа6с'ryarllРoвaнIrя lrьrмл6п6лrтoтeItalrп нr t1спoJlьзуeT пРяlfьlх вЪlзoвoвwin32 API' nсpL'Ilос]lе прeдстau. чTo пРoграi\{rla ляeт lппraкoli пpo6лeпrы (ll^ сlпloм деle всо нaмttoгo с'1oжl1сс' и ес"llи этo нe чUстo BьIt]1rсл]rтeЛьн.lJlз.! lnча 'гппа 6vхг:штерrIrr' 6сз IIP'мЬlх вl,lзoBов еij ]пfiaк пе 06011.
3irхoTeTЬ пPoчптaтьсeктoPс сD.RoМ.ди(кa), тttсь'достa'гoчнo
_ на китайсKоM (япoнамaтЬl) Pис' з1.6. ку|iхв pазгарpа6oчегo дNЯ'для рaзнooбpазия
тa( этo Fгсс Раsсal (oп )ке A вoт чтo дсiiсТвителъномсня вoз6уж/]аeT, _ кoмпиJiЯто!I1ас(J.nя(с I.lс FPк Pаsса]) 6есплaтньrйкрoсс.l aTфоРNlertньIй lntс]х86' N4Otоrоlа 680-\0'Po\\сrРС l1 patютaю пoддeр)кивающIrii хoднIrкаNIи!)' Linrrх'ГгсеBsD' NetBsD' плaTфoРмe: ]цийпPактичесtotпaлю6oйoпсpацuoн}toй
rлава з1. Winз2завoевьвает UNl& илипoртилиl
МaсoSХ/Daгwin,Маcos сlassiс,Dos' Win32,os/2, Beos, Solaгis,QNХ
и Amiga. синтaксичecки и сeмaнтическиFI€ e Pasсаl пoлнoстью сoвмесiим с TP 7.0 и пpакTичecкипoлвoстъю_ с Delphi вeрсий 2 и 3 (pис. 31,7).в дaльнeЙlпeм IUIaпиpyeтся пoд/Iep]ккаfleрeкpьrтия фyнIщий и oпеpaтopoв. BъI eщe нe6ьeтесьвоpгaзмe?Kуliхи pядoмliе валялся.на плaтqopмJlinux oн кopoлъ' a зa еe прeдeлами Iсo? nдинствeпнoe'vегоEeдoстaeтFтее Pascal,_ тaIсэToнopмa,Iънoгo IDЕ' хoтя. нa мoй мdrцЬх.ьJйвзгляд,тoт |DЕ. кoтopь|йестЬ.гopаJдot|oPMалЬIlеe Мs Vс и Delphi вмeстевзятьIх'oдяослoвo _ Iсoнсoльlпpи 6люкай leм рассмoтрeнии выя(ня€ l тся Дpyгаязаl\lечaтeлЬная вeць' FГеe Pаsсalнесoвсeмкoмпилятo;.тoч. нee' LoвсeA{нe l(otr1пилятopl этo тpaнслягopПaскaля s си, Фopмэ.пьiroегo мo)кIloсчитaтькoмllилятoPoмпeрeднeгoплaна (Fгont*Еnd сomPilel)' сoстьг кoвaпfloгoс Gсс' oтсюдa и приЛичнoeкaчеoTвoollтимизации'и l(Doсс.плaтфooмеlrнoстъ'
Pис. з1.7. интeгриpoванная сpeдаpазpа6oтки Flеe Pаsса|; мoйдoм,мoянopа|<нopа', я сy€зaл, а не (дь|ра'l ylюю этиx GUI,шникos,6лин
Pyчнoй пEPEнoс,у|лу|oДv|H}lAoдиH
сAм с сoБoк)
Uмeльчак:lм,oтвФкизIпимся I{aсaмoстoЯтелъIlыйпepеIroсWiпdows.пPlrnф(eпий' нe 060йтисъ 6eз тa6Лиц сooTветствrй АPI.фyrкций систeмrrым выйвам, кoтo.
рvчнoйпереHoqилиoдиrrна oдинсамссoбoЮ
479
pъIeпpивoдяTсяда-nеe(тa6л, з1.2_зl'4). Paзyм€ е тся! эТo нe всe фy]](ции' а тoлькo самьIeпoпyляp}lьIеиз Ilих (пoлныl.tсписoк зaнял 6ы riес(oлько yвесистrnx1oмoв' для тpанспoртиpoвrrи кoтoРьlх пPишЛoсь 6ьl o6зaвестIrсьтРузoвl1lto]!l), та6лriцa 31.2. ФункциидлЯраб0тысnpoцeffaми
winз2 EхltProсеss() кi тimer setЕnvirоnmeпtvаriаЬle e GetЕпvironmеntvarаb
iork()/ехесv() КiIL еxц) аl9vt] аarm(0)
та6лица зl..з. Фyнкциидля pабoтьс пoтoками
W.nз2 pthr€аd.аttr-init Pthreаd-аtil-setstасksizе
Gеtсurrentтh€ a dId *) теrп]inаteТhrcаd((HANDLЕ 0); threadld, (); WаitFоlsing|еobjeсt -endthrcаd(); 5|еeр(50)
(threadId); рthreаd_саiсe рthrеаdjoin(); pthlеаd-eхit(0); struсtt]mеspeс t meout,гemаiпs; timеout'w-sес= 0; = 500000000j timeout.tv_nseс /* 50 mi iseсоnds*/ &rепraIns); папоslеeр(&timеoUt,
(0l0) s|eерЕх в пaмятЬ тa6лица 31.4. ФVнкции для pa6отысфайлaми,проeцирyемьми Winз2 opеnFielчaрpin9 сrеatег]IеМаPin9
l.4mаp shmget
Мmаpshmаt > oсat]on); осationltoken.>пsi2e); muпrnар(tоkeл-> UnmapviеWof Fi|е(tоken j remove(tоkеn->pFi eNаnre); Fi|еDеs) с|оseHаnd|€ ( tоken.>hЕi|еМаpping); с osе(token.>fl frеe(tokеn'>рЕileNаmе); перeEoс Windows.приЛo]кerrий нa UNlх нatrllior.oпропle' чe}13'Гoка)кется пo' н а ч a ? | ук. в а ш l | м у с л ) г ' м n 6 U и P н Ь | i i, l . 1 P ) У ' н | i l p y и и o г | , n \ l | | ^кдо , 1 | ' ч P . | в о 6и6лиотек (6oльrпей uaстьIo 6eспЛатнЬiх)' сoсpeдoтoчьтссь нa прoграIII'l]оNl пусть иlш зaнимастсЯ j!Еt]Iинa (см, эпигpaф)' но кoде и зa6yдьте o пуcтякaх
480
глава з1. Win32завoeвыва€гUNI& Г илипopгили,пopтилии спoElгили
ire oтклaдьIвайтeэтo делo в дoлrий ящик и пPeкpатите' нaкoнeцt игвopиpoвaTъ UNtx-п,1aтфopмy.Ее лoпyляpllостЬ_ свеprдившийсяфaкт' Tiк затev i"рять pьIнot? Teм 6oлеeчTo кoнIсyРиpoвaть здeсЬпoка нe с кeм. B UNIX дo сиiпoo нег !]lloжeствапpивЬlчныхWindows.пpилoжeнийи утилит 1системpaспoзна. вaния тeкстa'шeстЕaдцатеPичвыхредaктoPoви т' д.), ттoэтoмyдФке плoхoнъ. кая пpoтpапdмa пpoглaтыaаeтсяпy6Ликoйс энтyзиаэмoм'BьI всe eще ищетe,зo ilтo вoнtить когти?
интEPEс}IЬ|E ссЬIлки wINЕ _ пoпyляpl1ыйиMитaтoрWi{rdows'noддepхиваюций 6oльrпoeкoлиuес,гвo UNIХ-пЛaтфoРм. БeспЛaтetr. http://www.winehq.org WinХ.oнжcCedegа кoAaмepч'.скийвaриaнJ WlNЕ'opиeHтиpoванншй на игpы и PaбoTающий fPеиl"fyu{eствeиro на LINUx.плaтфoDI,{е' http://WWWtrаnsgаming.сom сodеWeaveгs _ кoMмeрчeскийиr,fитaтopWindows' Pa6oтaroщийтoлькo на LlNUх и oриeнтиРoвaнвъIй нa эаnyскoФисIrьIхпpилФкени!i. http://WWW'сodеWeаveгs.сom VisuаIMаiлWiп _ плаги|lк lЙiсгoqoft VisUа|sludio'yпPoUlaloщий .oздallиепe. peносиМolo Iсoдa и пoзвoляющlrй кoмпилиpoзaтъ wiпdows-прr,rлo)l{el,Iияпoд
pуЧнoйпepeнoс/ иЛиодиHна oAинсaмс с060ю
481
рaзлич}tьIеплaTфoр}lьI' 3tесъ же лежит паpа статеr1пo пеpe}roсy кpиTIlqeсIшх 6 и l н < . п р и , , ] o ж ejнl й httpi//WlryWгnаiпsoft 'сom/pФduсts/mа]nwln'htmI _ wxwindows крoсс-пЛатфoРvеtlная 6и6Лиoтr[at 6oлeе иЛи пleнсe сoв]!lссти. мая с МFc, исхoдI,IьIeTeкстьIдoстyпrlьIl де1rегнe пpoсит. http://WWW,WхWiпdows.oгg LIBINT - 6есплaтнaя 6и6ЛиoTe(aдля
рабoтьI с INI-фaliлaпlи на UNIх.
httpi//|]bini'sourсefor9е'net Free Pаsсal бeсплaтнъпi кpoсс.плaтфoPмснньIii кoмпилятоP Пaсltа"lя с oгРa. IIичeIIIloйпoдДeр)ккой Dефhi. reeраsса|.org httр,/wr,,vw.f
Portiпg МFс аppliсatioпs tо Liпuх _ ,IorIкo!ая сTa1r'ялРo Ilсpеяос Мгс.ltр'lЛoх€ н Irй в UNIх пPl1rloilorци WхWjndou.s' ibrаry/|.mfс httр://\ry\мru-106.ibm'сom/devе|opеrworks/ lпlIкapIlaя кaРта РIIфoв и oтпier-Iеii с++ portаbilitу gцidс с oтN|eт]саNlll aсех пe Ьl ujl,lTо D сoвIrсс I имос1.сli'I IL х l{o\1ll ра:J-ll11ч Pо http://WWW.mozi||а.org/hасking/portabIe.сpp'htmI lIl!tкаPrl()сРvк()llo^(rl.]n) ll() Nllt]l)аll|'lllJ'а UNlх АРpliсаtion Migп0fun Gu e IЦxll{сpaNill' [Ioдl)oбlю olll.|сirll|'|'сс рilз Wiкhrvs отUNlх IIlloгoчl|(.JlсllI|Ьl]\!lt '|1lк'|к) ])-к'Г11arrускplrrr,г .]IlltIt'lЯ ]\''с,к/lуc1.l.iмl.l dILl|c]\1аI1ll' ра6oтaст ll o6с ст
0211sWагt2'htmI мigrаtiпg wiп32 с/с++ aРpliсatioлsto Linux on РowЕR l , | : , | | ' , | ' I {l ' Ь , | Ц ' r Ц n U " P ) l | | U l ) '
r'г'
IUl'vl|Г|l.J)l.' |||l',
http://WWW.128.]bm-сom/deve|operworks/eseгve'аrtiсles/ es.Мi9rаtin9Winз2toLinux'htmI Usiпg сoDI teсhпоlogies oп Uniх Platforms - как UереIlссTIr сoNI.пpи.Io'{с llЛe IIaUNlх с пrшlrtNiа-l]ъlrоfi гonoвпoii6оль10. http://WWW.128.ibrл.сom/dеvе|operworks/]inuХ/|]brаry/|.сoпr'htг'rl Pеализация Win32 в срeдe Oс рeалЬIloгoвремeнистандapтаРoslх псPе ]roсWindolvs{lPxJloltеnиii на QNх' зrrесьяtс нахoдrtтся]\fнo'{ествo llpylих ип-
I e | ' " с I , Ь r . | а - P i i ' п o . в l ] U l l ч н Ь | \ J I o " в р , 1 | | | . o , ljр^|й , н o ] \ l a ] " | | J в . ,н, U l ii U|'(р".
httр,/lrywwrts-ukrаine.соm/QNxArtiс|es/Wi |оцrsWinз2.htrn A tаsteofwine: TrаflsitiоnfromWindоwstо Linux WlNЕ как сpслствo п.:рeнoсaпr]иЛo)кепий иЗWjndorvsв UNIХ, httр://l^./ww.128,ibm'сoпl/dеvelоpeгWorks/|inUх/librаry/l.W]nе/indеХ'htm
482
гЛава з1' w1з2 зёвоевываeU.{lx,iли ropтyп,l.I oрaли l сropтил/
opeпNT _ пyтьк
ГЛABA32
гoHки HA вЬI]v|иPAниЕ, дEBянoсTo пятЬlE BЬDкиBAют paт om?oвФu.''ll Оepнgllэюеменяuеpп.'' хomяпе|n'ofu1cсnc oa].,'я mozaa|cк!cсmвен||ъ|мuн|nеI]elc|noм вom увле1cаJ|cя' u caзDалнa свсl|ozoлoвu'.' 1сoмnu]яmooG сc. из оаeкoтечeствeнньrx пpoгpамliисгoв сPeди кoмпилятoрoв_ хopoшиxи рaзпьlх* кarсвьt6рaтъeдинствeппoпрaвиль. r.ьrйсsoй? lIe вeрьтeни сoseтaмдPyзeй'пи рeкJaмtIьIмJtиФ'кaм'lrи Дaxе э'гой гЛaвe'llo всe.тaки eе пpoчитайтe'тaк вьI узнaeтeсиJtьпьtеи сла6ьreстopoвы пoпyляpllъlхlсoмпилятopoв и пaй'Дете сpaв]rитоrъньrетесты их 6ьтстpoдействия' сpaвнeпиeкoмлиля1Dрoв_ дoхлoeделo.PелигиoзEыeвoйтIьI. Фaпaпl3м. БeII.г мapки' o6ъrктивrrьtхкPитеРиeвoцeЕIФ llи y кoгo нeт, дa и нe мo'(ет 6ы't.Ьfio (ЧгoPJсскoмуxopoшо',')Bсeгдалiйд}тсяyслoвия.пa кoToPых onPедeлeнию ваш кoмпиляГоP удeJlЬrвaeтвсрч ос.альньtх' Кo^{пЛексltьlе1,rсть| |oJ|Ьtсoзaп}. тъiвaюT дeЛo' oтo6Рал(аeмая ими <сpeднeгoдoвая}тeMперaТyPане имeeT ilичегo o6щегo ни с щoпинeсKoй )каpoй' ни с aрктическими мopoзами. мoжеT, чeлoв e к у ц е л o ч и с Л е } J t l o еп p и л o ) к е t i l | ек o М п и Л и P o в а , ] LH а д o , а o с н o в н o й в к , 1 a Д в кoмпЛeксllыЙ тeст Дaют плaваюцие oпeрaции. Адeпты мaксимаЛънoй oптимизaцпи, сo6йрaIoщиe все пакeTы вpyчнyю' испьI' тывают 6oльiциe TPyднoсти с въIбoрoм <еДилствeннoпPавилънoro> кo}tпилятopa. Mнoгoo6paзиe вepсий Gсс их yпIelaeт' a 1ут eще мoщный кotlкУpeнT в лицe Intel пapисoвa"lся. oсIioввым системtlым компилятopoм 6oльшинствo дистри6yтивoв Лиfiyхa шaзпачaloт GсC 2.95- B пopтах Лe)к'lT GСcз,2/
444
глава з2' гoнl,инa вымирaн девянoсго пqтЬе вь *иeают
в инTeprrетесaltoстоя. Gсс з'3. Бo'цeeсве'.11евepс],tипРиxoдиTсяд{06ьIваTъ вoпPос:oпpaвдь!вaет BoзникаeтесTeственнь]й "1исeбя пePехoдс Gсс 2.95 нa нa дpУгoirкol{п['1ятoр?ЕсJrи эIllrlpиpoвaть 6ыTь|Лyч1IIе Gсс 3'x иЛи' мor*(ет _ тoваPищerl пет. Gсс 2'95 _ этo мaксиi{aль. гoвoр]1тькpаткo IIaвttyс и цвет _ нaIrвьrсшая пpoизвoдиIсC 8'х п 6ьIстР0Tакoi!{пI,ляции, нaя сoвIlteстиNIостъ TeЛь1loсть oткoмп]lЛllрoвaflнoгo
кoда' GCс
3.х
р€ I ioрДс]\lеIl пo oптиN{изациIr
под AтJ.roнrt др},rисnpoцeссoРЬr вектopньIхпplr-]rоже]tllй фиpмьтAMD, A'г€ п срь 060 всeпIэтоNlи llrroгo[lдpyгolrпoдрo(шее'
дBA лAгEPя _ пoлЬзoBAтЕли и пPoгPAММистЬl 1 oРу' сoвссI\l lleте'чтo Tpс6с'вaппя, пpсilьяп,rясNl1,lс l|Роrра]i1nlllсl.aNiп lс Iio]\1ll 11.Ця y п o л ь з o в а T с Л о й , Л o r у l l г < в P с r r ' t 1 р а t l с J r ' ц и l l I l i \ ' € с т з I { а ч с | l I t е l >o т в с P | а c T с я , пе тpс6уюUlllii с)61,ЯсllсIi!iя, B сaпo.:lьзoв.'r e:rьскrrм сoo6lllсс'гtro\l кaI{ ]\InPiL3N моN{ дсJIс' i(акOй iIРolrс||-r сI]oсlo l]Pc]\{е||nTpil,ГIfГ r|а r|сРсlсol1lll]JяI(I1lо Pядollol.| .nIlIlyксoи/l? ^ lIрorрnмNlu(]'|? ] Iо.'JьзоxаTcn к) [.,rу6oкo ltа'tхаLь' laс l|'цl| /lira oflo , l,|' , r ' v | . . . , l ' У , l l , | и l ,' d ' , l | ' , , ' ,l . r ' ' r . ' " ' , ' l r ' , 4 . ' l. | ' ' v ' | ] ' . | ) 'х " | " ' | , | | | i\i| ' l | | , ' | | . I l |к' n Bсс oсталЬlloс l|есуlпс(-t.вclrIкl, Проl1l;iьrпlrrстьl }кс lliL IIсРBoс ]!1ссю DьIдвIlгnlo-l' uмelпюскoP()с1.ьr.1)illlс''rяIuIrI'rrк6ьlсl'|хl;tсiir:'t.RtlI()с()6сП]с|IljoiillР()llуi{lUlllo|'u в o 6 п { с l l ' г o P а в l r о д у l r r r ы ( д i l , ( с с с J l Л l t 1 1 } ( сI I a l l с i i l l P а 6 0 т а , П , | ) чуTЬ j{oс1.oпlIсTвo Gсс 2.95 B сrOбЬ|с'ЦnIIс всрсllu3,хкоrllпIlЛIlpylo,ГIlРоrPaljI{ьI Il сPьlIi всeх lIo )'].() Ilе'Il'IЬкO iL l]сilЬ Ir]]сNtя дсlIllГll' J.Iпнс в двa р и ntolLjlсllItсс' 'Гаli r la сlNюIl llo мI(Л.llе l.l кo\!llL,ютср? сpоIсов разpа6o,r.кrl. С)6lIoвlITь Pl16o1.an),]. мoпIноl{ )lrcJlезс, lio'|OPое тоJIьIro jL()сTупноl дa lI IIе бyдcT Лlктo пPoсTo 1.ilх lrъI IспaдьIвaтЬ J1епЬl.n тоJ.lькo за'Lеlr'.lтo6ьr rrcpсriпl }la nolrуlо nеpс11Ю GСC' кoгдa
и с'гapаясrцеlrепЛo\оpa6o,Гaст. агрсссrl3llolioпТrj. aJl.oрnTмaп{ It нoBoмо'iньIм(t!зпачrrт'trrLeпс о6кaтаrttlьrlr)
пстЬl OTlIoсятс,]всс Ь]!l llaс]оРO'iel IlIo' ]!lox{lloд l(с сказаTь _ l1иJaцпIl п Poгpi!]!r]\ скeптltчссrrи, BeДr, зa м и3epIrocу яеЛпчснIIсllpoпзвоlt]lтejlЬн0сTизачастy]OпрIl. хoдIrTся рaсп-!ачlltsaтьсЯпoTереii ра6оToсrl{)со6нoстиrIpoгрaмпtьl'РассN{o'ГPrlм с Л с д y ] o п I п йк o д : f o г ( а = 0 ] а < f u n с ( ) i а фo) ,ч е в I r Д н o 'ч , l . O ф У I I к ц Л яf u n с ( ) и r l в a p и .1Ilаlevaтпчсскоji' тoчкIl зPr]lllя lio)кет бьITЬ aнтЛa пo.lтнoшeппIo к цl.tкJ.Iуи с дoJIжсЛпPoанаJIиз]1. вьI]тeсеназа еt.oпрtrдс"lьr,OДrrакo xеI]eдэтrlм ox'ГI1NIЛ3aTop !ффeIiтьI тЙl1aвьiзoвa pri ntf' по6oнlьle pовaть ее тс,]o вдpуl. Tапrпрпсу'гс1.в1,lот к пoРтаlit пвoо6paшIeнпя llодифиI(aЦиIr сTатичесILоii/гЛo6L'iЬнoliIlсрeiuеlтноir' чToтраrrсЛятоp и Т,ll,' и IIе фактl да/вьIвoдa' псPсДa.пrуIipавЛеIlliяпoуliajaTeJю испoлъ:roва]lriе ollтlt]!l']зации ! Gсс 3.х напoillrlaeт хo)кдсниe этo <<зal{етrrт'' в кo}lп]1Ля,гoре' пo j!пlппolry по'цlо тal.oс (о-rтичествo0lrп{6опсI{pьtвае1.ся кoN!пиля'гоpIсс совмсщaет в с16с вьtсoкyю сl{оpoсTьTPa'rсляции с х{lрolпIilfrta. чествоlr peзуnЬ'Гliрующсгoко/ia'oднal{oo]]]rео6xo/lиTся6eз пeдoсTаTкoв.Э,гокoNг rlеpЧе.киi'IPUl}к,с,||,D|1|ll|р|с|с\,/,'luJl6p,^
вrЮJll]l1o,1Ь|,о
вавилoнскaя баr.!ня языкaсиlс++
пЛатфopNry х86,зaтoченнЬrй IтолпрoцeссoРыhtel, Дaт.Toмv)кеецe и пe 6eс]lJ1aт.
Ь | й ( 6 P с п | а , н o с o . l , | яP д к . ] \ l ] \l]Ч/ l \ к o | o | Г ' / \ i e | | е | | |нl ' в . l р , ' , l - n в \ | U , | o Д o r llьi ]Ilа]llкu нaгoлo Il аilДa, пo пo }1сpс yг'{v6ле]lия ! Jtсс все 6oЛь]Ue хочстсЯ xy. шaть). к тоNlу 'rс }iIrlrакoй увeрe]ifloсти, чтoзaв'Гра Iсс не коl'if€ p циаll]зllpуются ol{опчатеJl'нol y нас Ilет (сIiорес вссIо, ип'еIIIlo Tаквсс и пропзoйr.rеT), T€ l l нeNiеllес pЯдьI пoк"1oнпикoв lсCrnиPяlся с кa,{дllпt ДIl€ l I' Il па1.0 rсTьсвo1l прrrчиllьl, этo ЛyчlUиI"r кoN!пrшяToP для пЛaтфopмЬl Iпtеl (а пo]l llPуги€ плaт. фopмы 6oльlIп1r jствy fl'lЧс1.o кoIl пrтлпРoвa1ъ и ]leнyж]Io)' o н oTлnчrro лoкyмсt{.
TиРoванl слy,(бa Tсхнuчсскoil пoдlleр)кfiи Pа6oтаe'Г чeсl.I1o и oпеPатЛвnо (GсС, nо сvтIrl Ilе ]]oдllср]flI1вaeтся поо6lцс, paзPa6oтчl.lкli сoвеPшеIJствyIoT t(olrllrlJ]ятoP в свoе yДl)ts0J1ьствиel а этп пpoтllвнЬIe п.]лъзов;ITUIи IJll тoJll,l.о мсшaют), BпIeстeс Iсс ]Ioставляlотся lla6oр 9rilсoкoliрои3lJодl1тсльIlь]х 6и6Лиoтсl{ с загo. тoвкarJи Ila всс сJlучаlr )к!lзЛп l! ollтrlllизaтop VTuпc (хoтя lloсJI€ l (Ilr'ii мo,]{ст Pа6oтaть !i с ЛРyгиiии кollпЛлятoPaNllll свяЗI{a Iсс + VTulle пaш6orlес уд()6на и эффсItп.IuIIa)' эTо nс llсpссxaэ peIUlnNlllot.o liPoспек1,ll а ЛUчIIьIе BJJeчlTnе]]rl,],
IIeдrrpolttprrplraQNХ вь16pалaIСC оr:rtoвльIм rloпrлu.ll,]l.oPo}j д.lя сBo{-'iios
эТ0 llсс..r.аJrr'Лх вЬI6oP, oJl Ile /loЛ1(с|l Pe:Uunlolo вРcllellltl ollltilкo их uьIбоl) 6ытьortoРoiiltлявашсt.oсo6ствсrrrltlгtlмrtсяля,BкоIlЦcкoIlJ()R'IпIILl.()ltс.JаjlРс. щnст псI,oJlь3овil'Гr,оr]n lro]!1п JIя1'()pаIl0лсpспrel ||rrl' rI ttрo6л ешra
вABилoнскAя БAшHя я3ЬlкA
cИlc++
l{ачeстBo lIPoскTol] o])сЛ sопг(t (ч1.()бl'l Tаi! Itlt l'oвoPl],,lи Itх пoILJlooIlliк ), Jro o6пlе |.()Ix)ря'oчснь r Iene.]ll] ко, l(olдa flРo Ц)all пIIl I{оIlпlIJIlIPyсTся э1.оv)(с хoр{). lUоl a еслll Ilрl{ э,гoll oIra сtцс и рaбo-r.aст..' всяl{irя Uo]rЬr1r{а()lГ|}lNlизацI'llt (l'Лlr IIсPсход IIа /LpуГoii ТPаlJсJlяTоР) Pазвtljl]rвaeт хрvllкoс прorрaммllс'r'скoс сTрo{j. lrис oкoпчaтс"цьлo' Ли6о I]poгPаммa псpес,l!еT ltollпилt,tjroвa'l.r,ся сопсеrt'.rr16о в нeй 3aвollllTся г.nючпl,lii 6lI. Ра6o1.акnцис lla гo,ro:"rзптvзrrазмe pазрa6оr.rrrrtrl прoстlj ]lс в сoстoяпIltI olIробoвать всe Bсpсии Irссх коlvfnr"llятороnj il нeдЬ PазJrи чия llе)кдy ниl'и oче|iЬзllaчIr'гсJrьпЬ], BoT Tо-1Ькоо/]llll пP]lмePiв Gсс З,х llз kinaс'
са std::fstгеаm пзъяJиконс,гРуктOр fstгеаm(jnt) rt мсroдаttасh(int)'в PсзуJъTitTсчclo объят]Леl (fd) пeрeс'r ll{явrIдаfstгeаm*Fs = ne fst гea|lr :шr и paбoтать'Епle
оnllil ,{сpтвa зaяI]JlеIl]]oй сoвrvlестимoс]'u со стапДaPтo]!] I Bпpочe11,llс]tPIlЯтIJостъ э1у lfo'{но об()iiти: ]laпilсaть своii ]{Лllсс'гIporl3вoдньr]ioт std: istrеаmbuf' созЛilющxй st геаmЬLrf lloток (нтодoлr.o, затo пopтa6е-1ьrlo)'п-.lIIllсnojlьзoвaтЬ гп},сllr)е pасrrll{Реflпe_gnu.схx: istdjo-filebuf (
446
rлава з2. .o|rкина вьlмирaние, дeвЯнoФопятьeвыхивaют
новьiе версиI{ Gсс гeIIepируюT6oxсс гPoNIoздкийи УelIee эф(!ек,|иrlыii коjr, а чaс'ГЪкoIкjTpУкцrlй нс l{oj!1]I]]лируется вoобrцеl OбъeNI I1рo].РампI, IroNIпилиPy€ п !ьiх тo:rько теNlи всpси'llrr (oNIпI'лятoрoIr'под кoтoPьiпlи oни pазРа6атьII]aaись'очепЬ3нaчll'Lсlсн Ql не вa;rоrо'тде зaрьrтаоши6кa в лпс'гиllге пpolpaNlNlъlиJr]lв l{o]ilпи.!ятoреjпoлЬзoваTеJjЯм.)1.эloгo I]с стa. нoви'гся ,1eгчe)./црeвlrlri'iGCС 2.95 поддерл{иваeтся6ольш11нс1rro}l 11potlзвoirи. в .. , . " | o . ' | " ] , | ч I U | , ' | r l 1 | ' г . , о I e д i . l и | e | | e ' ' l i , ' v е , l J o l , . . , l U , | н U l , а ч сI.i|i л \ || " Пoэтoмy.To сoс1.авитlriи нoрпrальньrхлпстprr6Y,Гrlв()в11устaнilЕЛивaют оIo oс' Iloвilьll{
сllсTеMнЬ]]!1 кo11llиЛяТopoll
пo ylloлчапIrюj
o'Г'Iе(tl'l,l
вссх
l{oнl{vрсtlтoB
Пo yтuеP'(дell1lю(l)иРмЬIhrtсl' lСC пPактlrчесIrIr полlrос-rью сoвlrсстrr;u с GСC,
oн ilоpм:Lllь|lo кoмllllЛ!]Pyст ".ll1ljvхoвoeядPо I]eРсltu 2'4, oдitaкo' спoтьIкaется lla 2.6' тРe6уя сIlсци.UlЬнЬrхзап-.lатoк,oдIla прав|1Tllсходньlri код я]lРа' ,.iIy.aя сaпl кoмIllrЛятop, ПРикл&1но€ пPогРаNlмltoс o6r:сnснсяrrе6eз lrапrr'lьttика ш pl. ,|уа-'IьнЬптallЦeв с 6yFЛlоl{l'аI(rl(е]tс о6ход]lTся, B o6щсм, сlа6oнсPвн ьrп{тoвaРIJIIlaм |lа !(хDскT11в] loсTь лvчпIе 3:L6lJТLoсTilвr,-t,с GCC 2.95 oснoвньlм спстei{rlъlп{ко\{]|rr"l]я1.oрo]\l 11lllткvдn с l|сг()lIt]сх()Л|lTC'
кAчЕстBo oптиМизAции,
иЛи ]vlЕгAгЕPцы, спPEссoBAHHЬlЕ B стPEлy вPЕMEHи l(oмrlиxпPoвilтъ llaдo I(o\J]1ltJIя]!]юNl]а olI'ГItlll,lзItpоlraTь _ rоJIовoii, OIl1rlмLlзI,t p у I o щ l l i i r t o l ' п и J Я T o p y в е ] I l l ( I I l R i L c T с к o р o с ГпЬP o г p а l l v ъ r r л а в r l l ' r мr l 6 p r r з r l мз a с н с т |'U'.||'IL6yв'.-l|J |с n(.|'.||iL,Ч'\l l , . i о - , 1 | l ' ,l ', ' ' - . . ( \ L I | t x rllии выlIrPьII]I даeт оптllпollaтoР' кoroрoNlу oсТllcl.ся всеlo "l1иllIьitаNlсlI,l1.Ь/1C'Цl] llие умlro)кснIrем (a сдмo yмIlо)l(е|lис _ xoгичсскll]'пt сдвlrгаI!|l) t| IUI|lIlиPoвlr-гь пo1.шtи ]{оi!lанд. зrlствсркIi' Ii пepвЬtе lюдсrlrr Пнcli пljrJи /.lов()]lЬI]oi]а|lv,гаllпьlii рrl1,уа.ll спаPиванlIЯ, rl ДJrя ДосTll)сellllя flallвьIсшсri пРо}lзI]()i.IЛl,c.]lьlюсTll ]\]aши]{ньlо l{нстPyкцrпJ прихo/lиЛoсn pадlrкilxЬнo псpryпоРядо!llltsaТ!l llpxчcNI -.l,|eдoв:'Ir,||,нU.l' r р ' 1 ' , ' , в - 2| . ' 6 ' , ' J ' ' | , l | а , I p | ' в l I а-itьlryюзадaчy' 6лагoДaря чему качссTвo опт}Ii!{изaцпIi DaзIш1Лoсъотoднoгo кo]!г
пилятoрaк дpуrollу, lIо с пoявленIreII Penliu
Pгo/AN{D к5 эта прo6Лei1aсpa.
зy стаЛа liеaктyальпoи пpoцессoPш noy\{неЛI{ насTo"l]Ькl:)!чТо научпЛllсь lleрсупopядoчиnатЬ ]\faU]l]IпIь]ек(]11aндшсаllloстояTеJ]ъilo| и l1l1тс.IIr!оliтyarтЪriосTь o п 1 | | n | || ] p } | , ] | i | l х| \ n \ l I l | | .||UЯp o вo , о U , | а ' ' P , n l j n | || , , | а | , нe с,гo!fl' npавo rflс, гнаться зa нoвЪlми версl{я!1и oxтимI.Iза,гoPов, эTa Teх]ro,lоIия достигЛa свoсгo t1асьIщения у)i{е в сeрeд]illс дсвЯнoстьIхl и r]'lт.at(их tlPоplr вoв с тeх пop IIе пpoисходиЛo, Пoддер)кita i!J},J.Iь,|tIIк]д]rriных SSЕ,/зDNowL'ш]. п{анд вoздeпсTвуeТ ToJlькo нa мyЛьтliveДпиIlьIe II' oTчaстIll l{атel aтичeскиe l,,к,nl,UIl||rUЛоl||oкp||в\n^тл'',Ь|r. пpилo)кel,l|я.авсL\loс| ния проIрaп!I!!у oп1иillизатop всr равlio пe rlспрaвит (oll ведь нe боI), a гpaNioтнo
кaчеово oптимизации,или меГаreрцЬ|l спpессованнЬев Фрeлу времeни
487
спрoeк'ГиpoвallпЬIЙ кol1 pагlпоi\lepllо распрeДеляет IIаIРузI.J, пo всеNl фУlll.цltо. на'1ьтrЬпI yзлаNI' и 6ез остpоli liеoбrio,]ппfoсти "iyчrllе € г o пе yскорять. BoзЬlfеl{
сетeвoе llpи'ltoхrсrtие, o lIтиIr1{зaцllЯ l]Pоl.Рallj!r]lor o кojrа увeличx!аст I{ox]]чссТвo o6pa6атъIваеilьIx запpoсoв' чтo в свoю очcPсдь yвсjтичllвaeт rrагpузIу rrа сеть' l] oбЦаul llрoиэвoдlTeЛЬlloсTЬ
llе L0Jlь].о llе вOзpас,|е,|' tlo мс|,кетдiжс
уrlас1.r' Агpссс11внъ1с fu.lгoPитмьI .JптlINolзaции (за кoтоpъIс ir6ьrчнo oтвечает xjтюч 0з) llлjIl пРавиJ'IьIIе.Aскa3aть' <лeссиMlI3ацlIlI'tililЧ:1с1'уюдaloT llPЯll{r lIРотrlвоIIojlo]]{. нъпi оnоr/]aei!1o]v{y PезyЛЬTат' УRлечеI]IIьIе <прl]дРaзвepст]roiiD цrlкnoв ll ф1.]rк. цrti1' oяи oцут]1мо yвсл11ЧиваюТ o6ъсl1 пPoгpа]\{]!lнoro кoда' чтo в кoпeчrlоп сче те тoлькo спrDкаeт IJрo]i3Iloj(итe"!ЬII()сTA l,' fnюки olITипIrIзциIr? BxPoчс . о llпоI{ах lilъr yже гoвoPиrrп, Hе гонпт€ с ъ за пpoгРессolJ (а то пeдЬ jloГo]l|l,J'е)' llo li rrс nрсвPацaiiTс всPrloс|Ь T Г , ] | | | U I l я N l D Г l , , ' ' , | | U , , ' | | i i , j ' | | | |t|||. ., I, lо o | | 1 | | , d ' ' | . . c 1 Г , . | | | | , , I F j '| , ' ]1', /:lllТсЛЬнoсти, ссJlIl кoIrI l1IЛЯTOPдnс'Г сс /LaPo]\I,сoздатслIJ GСс говоPят о lJO пpо цеllтпoil пРевoсхоliстпe веРсlJlt з,0 lIаЛ 2.95' одItако i{:Ulскo ]1с ясс PазPа6oТчllкIi с i'l.I,lм !юl'.illсllln. [jrшьtlttrlкlr.нrl воo6лrс нс о6наpylIсrrвaст ппкartогo увеr]пчоII]I'r
l ц)оltз]]oill,lTслl'яoсT11';t tlскoтоpЬIс /1а'(с oтп'счаIот замсЛJIсIl |{с.II l t.Ic11)vдl1]rLП1].1|, п о г о ] А л г o P и ' Г п { ыo i ] T } | м и 3 а I ц l l8i G с с з х I l Р с т 0 р r t с л r6l о л ь r п l r ол з п r e r r c п r r ro, д r r l l .iъ.т IIoявиn lIсц 'lpугиc llсЧ eзЛl ll тaк чm D J(!|ОI{ сl I rу;ll ul,l ()(l1aJ ()сr,l lсlrзNIсttllоii, l,к) в o т l l Р o I I o . I ( / l с p , t кlyю l n ' х l I P o i L с C с o P o l }l | с l l a ] к ) ' r ? ( ] | l n i u l n р o в a i l п с i ' к o ] L а ( Л | | l
'' (-''(|" "n' rr
L ' r r r rrr' r ' . ' " ' i ' i r '
I ц х n l с l r Г l r lI T ( ) | | з I ] o / ( l l T с . l I ь l l o сЛ1 i]lIl l| 1 ! l I l l ч l I с 1 , (l)] Ь l ' I l | с r r l сП- l I l ] | l ь lзха д а ' I i l х ) !i L r | ( ! r l Ь l o в o к , | o P l l ь I с P с г l ' l с l P Ь l l . l l i ( ) ^ 1 i L l l j L I| l' pl о с ' | o | . ; l к l j c : r I t д с i ' ] с Г в v с l Ь . O j l I l o i ] пrрeкоNll|IlJlJIl\l.llI:rдссЬ||'rдoс.|tlТo'l|l(),LlPо|l)ltl|j}1lll)ll|кoЛOjI1(j!l!с]к'lьз(!]1]ь,/|l| Ir()3мonoiL)с:1.''t ,Iвl ю. эф(irсI{| l Iвl Iо вс ктop 0]oIrtlTl,коiL l lе I t\ск'Г дilЛ{Cсvl lс])l()r\rIl l)|() 1'!rPIlЬloкollш'Ilят(]ръl. Bo всrIltorr слу.raс rшlllа, lI-.rrr,то.rrrсo' уltо' ^ что пасчет сРа8llell ,| 32тlrзрЯдIioгo lloдll с 64.PазP'дпьrNi./ Пo.nьirоx.l1.сJЬ /l\,. мaeт] 64 llirNl]loгo lrРyчс, чс\1 З2' l сJсдoвaTе"lьlIо, п 6ыс1']х.сI 1IaчIlIlаl{Jlцllii ll])l) грaм]!Il,!стi] ly, пloI(eTl jI Ilе 6ы с1'pсс ( всс Pllвнo !сlr тoPllозит п)ro//rrыlr(),il)l l r() ч]( ) l tс Nl0д.lсннсс этo тoчно | A вoт хPeI t па]\{l БЬl м.'I r'с llPоrPаIlNл tстьI нn'1 э,ГtJl\{ l.оJь li) пoс]VtеиI]aк'|ся, мe]LJlсl il]cе | Ещс к.lк Nlсд,]cннсс | З2 paзрядl l ьrii кoд rro сpа в rrсlrr.rкl с 16.рaзpЯДrrьI]vlв срeДпеrviпотре6Ля еT в 2 - 2'5 Pаза 60''rЬше паN]я-гII' 64 фaзряjulьlii кolL _ э1'o tsot)6щс IIoнстрl рaзв:шrlrrаюЦийся пoД с06сгвcrшоi] Tя'{oсTЬIo, ^ водъ ptlзllеP Itэ1!-6уфcPоB I,IпpoпvскIraя спос(]6Л()сTь сl|сlсмtloii шпньI нс 6сзrрalпlII ны l
чсских пPиЛoхенlJli (5о"!ьlIleй чaсTьJo IlnyчrlЬlх), Ск'.а'{Irтr' вaN чaстo пprlхOДrjтся сталкивaтЬся с чtlсJlaiиlt l1oр,lдкa 18 446 744 07З 709 55l 615? Tог,цa с как()ii сl alll
Тоnу BoLlrkес ш1^rw.osnews'сom (рис 32.1)'этo пo,1н.rстьlo Даппьlе,xo]lучснi1ь]с пo]]ТвержДaiот (http://WWW'osneWs'сom/storу'phр?nеWs*id= 58з0&раge=1), GсC 2,95,3гснePиpуeтчvть чyтъ боЛеeбьlсTpЬlliкoд, чсм Gсс з'3.2' а 61 6иTнaя uеpсrlяGсс з,3,2нахoдI1Tся глу6oxoв за,lrrrrтle lI кotlt{PсTt]o тopNIoзIrт, са нoвский l.oltпилятоppyлl.iтв обoпх сЛyЧaях'l1o 64.pазPяДIrЬrй lioД все рaвIlo
rлава з2. гoнки нa выMиpаниеtдeвянoоo пять|€ вЬDlивают
488
600 550 500 450 400
М 9сс 2,95,3
E gсо з,з,2 ш E gсс з,з,2(646ит) в
з50
* a 6
зoo 2so 200 150 100 50 0
zP
UпziP
o6Pа6oткagziP.oмфайла624lvбайт pазлиЧнЬ|х Pяс. 32'1. сpавнelиекаЧeсlвакoдoг€ я epaции компилятopов нa пpимrре}.гиЛиты GZIP(лyчш€ м yрезyлЬтаry сooтветствyет
900 800 700
600 500 400
з00 200 100 оз'iashаlh/lPo
в gссз.2
8 gcсз,2.3 П gсcз.3
oз'iаst.mаlh/|Po' IDмUPGo
Ж iсс7'O
ffi iф7.1
P}rс.32.2. срaвнениe качeсrва кодoгенepации поданнЬм теФаRooт (имитатop прилoxeниЙ)' БoЛЬu]еe зNaЧениe финансoвЬ|х
кач€сгвo oптиl4изации, илиМегагepцЬ]l спрессoвaннЬ|е в стpелyврeмe|]и
489
ТoЛъrсo не rrадoloвopитъlчтo мъlвьI6pали
120 100 80 60 40
20 03' fаslflаt,h/|Po
@ 9с63.2
E gсс3.2.з
E gссз,3
& iсс7.0
IDмUPGo 8в iсс7'1
Pис. з2.з. сpавнeниекаЧ€.тва кoдoгeнepациипo даннымтесга GЕANт4 (мoделиpoвание двиxeния элeмeнтаpяь|xчастиц)'Бoльшeeзначениe* л}чшийperyльтат
490
rлава32.гoнкинавЬ|ми
вь|хивaют д€ в ЯнoсroпЯть|е
oт то1.o'чтo y lсс ПРиплюсtlутьlеnporРамп!ыI]'IавньшO6Раз0мвьIигPь1вaIoT 11oднуpст тhreаdin8,oдпакoна кЛaсси. 6oЛеeпloщнaяSTL' oпTимизирoванlrая Cи эта ль.oTа нe рaспPостPaпяется| и TaIФIе пPиJlo)кеIlия Лучlliе всеlo кoмпилиpoвaть стaрЬIм дo6pыNI Gсс 2,95' исклюqeниеt пoжallyii, сoстaвЛяIoт lсCсo. flрoгрaNlмЬll и,lтенс1lв]1о взаимoдeйствуloщиe с fiаNIятьIo' oптимизатoР 1lсскoЛькo еN{у выхвaTить ДопoЛДсРкпT специ;LпьIrьrй eцгoритпl, пoзвo".1яющиli
ческиil
нI''гелъ11ЬlхпpoцсtIToa IiPоизвol]итсJtьIIoсти зa счeтllехaнизпIa
пpедварriTелънoи
пeРвoгoи втoPoгoУPoвrreи(ttoд1rэrrr.!(oнтРoлЛepа вьr6оpкпIr yЧeтaпo.]rитик1r ' эффективнoe pо6нoсти пroюlo пaйтrrв моeii шiите <Технrtкaoпти!ll,1запIrи испoJ1ьзoвaнис xa]!Iяти')'
линyс и кoмпилятoPь| l{ак lliьl вЪIяlсЛилI.l'нoвьIе Rеpс!и Gсс пrДаIoT l Мкat{их ltPeпп'ущсcTв пPrl псрe. коп{п ляци,l Ядpаl lliLпЛсaI1вoгo t]а ltjlассичесI{oiu сu и оптиiuизlЦoпalriroIo вру.l. ную' ПоэтoNlyЛи1lyс (как rr 6oльurипство oстaльяых IrPoГРar'INtIlсTojl.я/!еPнllкoB) qсм и вьIзыBaloт пeдoпo сItсLililт pxсс.aвaться сo свollпl JI,о6п]\lЬ]NlGсс 2,95' yNlelJi'lс IlоЛЬзoваТсJ,eй, Bo,г лep€ R oД фpагмe1пa IIсрспllсl(Il' вllJloвлeннoи
]laдa-
локoм зa6угopпoпldхрyпlеl скипнyт0] тl]гvа]ds 0т]LjnUs t[ЬЛо стаpых (0[n л,lтоp0в TефaiRe: Lоr]деряка D a t e : в I o р i и 1 4, н O l б p д2 0 0 41 1 з B 4 7 . 0 8 0 0( P s т ) l исал] к a 1 т O в O в т o р в и ( '4 н o я б р ,2 0 0 4 А d а mн е а L t п > Я se OтpиЦaю pа3л[cи' nO скopOсти[el{дусlаpыiи 11ll0в!ми к0яaLiлятopаии > l ] o п O ч ey э т a п p о б л € м as с т а e т и l е н н oп р l к 0 п и л я ц и яи A p а ? > как чaстo eL пep€ к oвпилирy€ т e свoa ядpO? чaсrЬ в кOтOроM oни l]poводятбOлЬшую Bo.rreрsыя'ядрOдЛя нногих люд€ Й o € м е H и B o - в т O p Ь хд e л он е т o Л ь к 0и н е c т 0 л Ь к 0в т 0 l 1 'ч т 0 к 0 l п и л ' т 0 р ь с в о e f o а ш l 1 H н о3г p едленнеe истоpичeски1OsЬlеверсииgсс гe|еpЙрtютхудшшЙкoдi gсс бЬла пОддep)'{{а си++ лриЧивOЙ OонOsлeBия иногих лет eAияственнoЙ нd протя)rr.^}rLlи кeгo и хуяe пp sсeм всe хt{е разрабOтчика' увахeниЙ клdссичeскиЙси пoддeрнивaeтся qсс y, 3'3 всe До пояBлeн' в пoследнееspe я ситyaциясЛe.ка иefleкиласЬялyчшe с,], вoвoввeдеHия сeри gсс З,х нe стOltЛиухудшeн[яflOддеря([клaсс[Чeскoro
чЕм HAPoд кoмпилиPyЕтядPo компилирyIoTядPo нo6oЛre80%пoлъзoвателеЙ WWW'kеrne|traр.org' Пo Дaн}tьINl 2,95 Л 10%нe пepeкомпи. GсC отдaют преl]почтениe веpсияIll.Gсс, B% вЬlrvtи nrнепиe rоспoдствуIoщеe чTo llс всяIroe этo дoказыtsaеt' nирyiотядрo вo(16щс, пPав'Iльнoe(Pис' 32.4),
49L
EщE тEстЬl нapис,32'5 лp]1вeдer]ы сpaвrlитe-!ЬньIе тсстЬ]Iсс 8,1и З,3,1пa ЕЕмBс 1,16еrlч. I]аркr (ЕЕ14вс РасlлllфpoвьlвастсякаrrImЬeddеd \4iсIoprосcsslrгBсnсЬlпагlr сonsort]1rln),A мep!ст этa lrтyrrа yсреднe]lltуIo пРollзвоДuтеЛьпoсTь на pепpe
зс}iтaтIlвjlоiI вьI6opI{сllз сеTсвьIх'oфис]lЬIх! вЬlч11сЛитеJ]ь11ых тecтoв' Аdvаnсed oplim izat]onпо,]РазуilеваeТ сJrcдYIoщиrклIoчи: I ntе,l с+ сompi]eг: .0з .ipo -хl,,l 4 s s e. m s s e 2- m п l п .xf u n r o ] ] ' J o o D s G C C3 ' 3 ' 1 l ' 0 3 . л а r с h = р e r t i u m.4m с p u = p e n t i L п. m .Ггd5-.гатn,.On.t..гd.e.O 1 lOe г . . 1 . O п а t . . s |sпеo l ] p о 6l ' ' , о 6 , ' г ' N |N l n xн o п о ч x . татЬ пa WWW.qnx' сorn/down|oаd/downIOаd/ 10028/Intе|-сompiIeг.Prod!сt.вrief' pdf)'
ffi 40
зО
2о 1
I
10
ж
l
1
xx 12
Gcо cсс Gсс Gcс Gсc Gсс Gсс
сс 6,х
1
cс 7х
2,х 2 95.х 3'0,х з 1,х з'2х з.3'х з,4х Pи..32.4. Какoйхoмпилятор вь исполЬзyете для перекoМлиляции Ядра (п0даннЬ||l www'kelnetrар'olgнa 21 anpеля2004гOдa)? bсегoвгoлосoва!иипринЯло yчас.иeз696чeлoвeк
10
ll
сpавrrer]rteкaчeствакодoleнсpaЦпIrподaнньrМ Tестаstrеam(пpoизвoдитсльIloс]Ь наoпеoэLияx.]|с\'яlЬ|o,М6]jiГ.)лo],аlihoIldр.32h']Jlr;|6о]е.а|РeссIIвнo вьIpавIlIlвастстpyктyPьI даt]]]Ъlх].tyчllтьIваеTapхитei{туpy liэш.кo]lтрoлЛeрal зa счeт чеIo въiигPь]вaeTнескoЛЬi.o прoцснтов rlPоtтзвoдитeЛь]lости' A пa pпс, З2.7 срaвпивaются качествa кoДot.е]]ерaЦrш пo ДанEьINIтестa wiпstoпe (i{оNlп"!еrcньIЙ'TсI{ст с в]tjlIочe]1иеl'ili}'.!ъти]ttед]4ririых пPи'пo,{ений, веРTикil-nь fl'q|||. l\||Ps) Ь,,o,ов"96,''..o"no,,\o!"-вUi.; , P " J ) ч , l d | | ; | o ,U - o B J l l l | Я\ ] L . o ' l | с г ' U в ,o к n o р ы v g ' с 2 9 5 н | |l " 1 ' , ' J ' 1 F -
rлава з2. гoнкина вь|миЕЕниe, девянoсrопятЬeвыxивают
492
4 PФсessor ЕЕlv1вс1.1lnte|Penl]Um
$a% '120% 1 0 0% 8о% 60% 40 уo 2A% 0
-02
Advаnсedoptim]zаtiоn
тeсlы Iсс 8'1 и з.з.1на ЕEМвс1'16eнчмаpкe Pис.32.5. сpавнитeльныe
400 35о 3о0 250 204 150 100 5о 0 @ icсs
E 9со2.95
49з 25AA 2000 1500 1000 500
|т$шi*;xп
0
gcc 2.95 icс 5,0 icо5,0.wp_рo Pис' 32.7. сpавнeниeкaЧedвакoдOгенерации пOданHЬмтесгаwinstonе(кoмплeксtый тeкст с вкл|оче!ием мулЬтимедийныx приЛoжe|lийl вeртикалЬHая шкaлa_ 14iPs)
3AкЛюЧEHиЕ и Gсс' lt lсс _ BсJl,ll(oJlellIlыe It()NlIll]Jl)tTopЬII l]обрiL|]ll]I'с в с16я псe Дoс'гlDкe. .ГcУ ]Iия lлюгРcссa' ||r ]\1еIlcoILаJIско Ilс всc lJl)j|()6pсTспrIЯ lior|I'lll, rIм нA лoЛЬзy, и IЦol.pill!1]!lисTЬl l] сl]осii Nlасс0 oсTaIотся |lсPll,n дрclrllci{у Gсс 2,95'.l.aхorо л{r ll,teIlrIя лрrlilсР)l{lllralor'ся сoс1aвиTc'llи дисTpll6у,I]II]oR It oIlьlTllЬIс nдiиIllIистPa. r.lrpьI' пoJlь3oПаrtjllr' lIPaвдil' lle Pil3lLсЛдlol.сгус,].ltв|llr]t.Oс,lдухa коI|сcl)вaтlrзi]а lI вoвсIo пoЛi,зуl()T GСс 3.2/3,n lI ос()6ololo Gсс з,:J' лI,lIlу)кlLаЯ Рaзра6or.Чtlкoв IIоJ!цср)IoilrаTь |lol]ьIo llсРсl!It l!сзавll(l{]!1o o']'Toгoj хoтяT ollи irToгo LIЛrtпeт' nрo. tlаl.aliда Iсс покaтoJ'JьIк) Ilачlxill]Toя' tlо' YчиTlnBая вJl]tяIllre4Л{pмьI IпLсl' а Taк'{е r]ьlш)кoc I{ачестIlo кoNllltl,rяToPa| \{отolо ] lе с()мнсIlilтъсяj ч,l.oв lioкoторыхсфe. пpило)кепиi'i Рaх РьIIrr.а eгo o)кrrДaс'г усlIсх, Чтo хc касlас'r.ся паyкoсIlких ]{ въIчисл]ITеЛЬI1Ьlх цсltтPoв скоl)ее вссr.oj оIlll сохраlul-| своIо Rер]Iсl(lть llРoцессoрaм AMD (llнrвьie кЛaстера сl,o,l,t нa}пIoгo llopo,nс) п кoN'пиЛяTopу Gсс' B o6щс]V1,пonrпвeп{ _yвидl1м- Будс\] нa/ieятьс'l' чтo в 6yдущcм trоllпилятoрьl lle
pазжrrPenrт оrtопчa1.еJlЬllo j1здpавьIlil сlllьlс'll вoстoP'(eствуе-r над РазyllloN{, пorca яtс 6ссспoрньlх пo6eдrtTcЛсit нст, п муДpьlе jtllнуксои/lьl вЫнyriДеньI пспо].IЬ3o. !aтъ цельIl1 зоoпаpк l{Orfiпшя,гoPoв,
ГЛABAз3 тEXHикA oптиMи3Aции
пoд лиHyкс
Lhпо tlахоlu пся n оd ччlxoй 1|pь|1ц t|ой оnnшмu3u]1!J1a1l)r?o I]ем aп apу2azo? оau]l uз lLux omлuцас||ц:я колnuляnaра? а сa\ cСC atr|11о2o хp!це GсC, чmo Inta| с++ IIРa|Aa r|l, хo|п1'nе llю6oЙ'1]|ittlous'кoм|1l1ля1nop? 6ьеrл !3xа|nъ1Кaк j ) o ь 6 o L е е Э с Zr 1 1 е в а|n ь an t uз а1 l\op ]1o:\'01! nu,\ Pup 4 ф еr muвнъ|Й !| aвцI 1lаL16оnее u(I:лёаaваluе'1| J,tьl з.1iiмеj|tся коd? сеi1час G C СЗ'З,4 L i п u r к o , l t n t u t я m о p o в : 11о|1!J]|яР11ьlJ. ' uх е,I| J|oщ1lос1|lu + + La сР1|]1|е1Lu a конкpеll.l u Inu.I с 8,a, |з сnuсa]| эlnо1n na]1к)1l1Ь| К(ц)пu1L1]1 anmuмuзапapoв, ,Ц.lя oduн 3 n!!чшu:t вк:tltluен Мiсrosоft Visuаl С++ 6,a |s oв aaм1 l lj я|noр wind o
oБщиE сooБPA)l(Eнияпo oптиMи3Aции копlпrrrrятopol o6ъlч]]0 oцеllll]]аtоT llo результатaI! l{ачсс,Гвo oптIми3ирующrrх коldпЛсxсnьDi тeстoв (}'YльтlalrедrтriнЪ]х' <06щeспсTeпlньIх' иЛlт l]aтrNIaТиЧeсlоlx), oстается нeясЕьlN1, oсшовнoli <и]]Teллект' чтo IrNlенIIoоптиNlЛзrrруется и кaк n |||\', ,J]n1ов ,U',Ijc,IoIo | ||в пч|.o iо. гUв||дпoV ID IpULJессоPр свU.о6i'"'нol rIсм качес'Гвеrr. <.n I{видаToре' нaи6oJее oчсвидпЪiх пPol.PаN'N'l{стских оДrи6oк' , o l l а е . | ' \ | | | , a t , , и , . [ ' 1 ь | < oв.дU ',чo| | ',1 д , , o | ' . р' ,,.]i'l.1нЬ'Iho:,тP\,\),.n'ol, ствсtlllЬlN' lrоДоIll Dа6отаTъ rliцоl Мнolo,зIlaTЬ II o)ксс1oЧetlllo дyмать, Лoi!{аJIка.
oбщиесooбрахевияno oптИмизaции
495
Р a l l Д a ш и Л и в r p Ь l : ] а я с ьв к . п а в и a т у p у , I t o ] \ f yT o э т о в p а д o с Т ъ l a l { т i r T o лррЛo l '',,,л | '|Ь,(,'.,^ BтP1в| ятоp'o,,l|\|и'Ilp).|| )ltсланпe пepе6рoсптЬ чaстъ ра60,r.ьl]]атpaнс.nяTop впoJlllе естсствefi]loeи I{оp. Nli'lЬнoc (дnя твoРчtсTla бoлЬпIевpeмсни остaпeTся)' нo пРи э,t.омнynrlro зaPа. I{еeзпaTьjчтo l.lп'еlпIoorr оrlТимlIзIIруeTlа чтoтoJ.iЬкonr)Iта€ т ся' llo кaкэтo l'oжно yз]iaть? на фoне ao"!Ireii!]еI]iтсPllпIlo.nol.rlчсскoli пeраз6сplrхи' кolда одни и Tс ,{e пPrlеllьI о]lтllInrзацrш в кмцoм сjryчaена3ьlваются ]lo.Pазнo]\fyjпp.ячaсь зaничего IIеIoвoРяпlIlj\tI.ll]l'].a11паlп1 тппa <<(oPv кoрГoPаgаtion>(Рa3NItiort!сниe пrrr:r ) lтли <.геduпdаrrсyе]iпrinаLiоп} ().стрaпeнисиз6ьттovнoсти), тpебустся oнепь кaчествеппа't llo]tvмеllтaпrIя нa l{o]!lпиrrятoр'нo онa yвьt o6ьгпlo or.pаниvи вnстся тупЬI]\l11сPсчI{слеlпrеNl otlт]liIиз] шyl()Щ11х клIочеii с кPaткoiI поrvlеTкoй'зa что oтвсчner. ка)кдЬlii llз r]riх. какl1с кoпи1I ра3мнo,raет ].оNxlиЛятоPи с како]i 1lеIью? I(акvю ll!6l||0.]нoстъ oli ус,|PilнЯeтп 3alсlr? Hе являе,гся'lпl paзппкlжс. II],IсвI]сссн]]сNiЛЗrЛn1оч]1oстпl кот(DуЮ сaмorшyn(е ollтllми3aToРу l1 l1pIIxo'1l.l1.с'l j]зЯть хoтя 6Ll r1ol{уllсrlтацlпoIlа коillп,lлятop inlс] с++ 7.0/8.0, Этo пpoсTo Лсl)счrnL кЛIoчсi'iк0rмltlUllюiiстpoкlI' Рa|l6aвЛспlrьiiiс'(oвссrrъlпlrцусoром, в кoтo. Poп{IIеТlIlкaкoii xollкPс'ГIiки, сl{lчаiiтe д.Цясрав}l€ l lпя дoI(y]!Jспl'allиx)на ]rоп{' l tI'JIЯтоР() |рNrЬl I lс\\|ott-Рnс kai.d]http://doсs, hp,сorл/en/86056'96002/86056-96002' рdi floход.lиllое ortлсаttrtсaРх]lтскTvpl'l IфollсссoРilj совс'ГьIIlо t{o]lllpoваIlrпo]1'aк. ' Г и к l rи с т Р i l T с , i r шо п T l l N l | | i ] I ' l ) y I о | J l c l l T р i l ! l с , п я I L IIll!аt l ( o н I ( Р c T l l Ь lIlхP и м c l ] а x ,] l a . с T о я I ц t uб ] l 6 J | я l | р o г р a У \ l l l с | a l oсTaЛ,nIl'lс коNllIпЛ'l,1ol')IonTllNl з|{Pvк'Гп рl I11сplкl 'r.aкrrпl хс о6paзопl,пoll'гoпry Т а к a я6 I l 6 n l l ' н l x ) Л | | Iol р I t c ] \ j ' l I clill дl а. r l ЯI l l I х '< э 4 х l ) o к ' Г I t I r l ( ( )осI]l T . Ьl l l t l . | з i ц I}r l l 3 tl6с1'рllкTllьIхll 4)р IIl)сl]Ptlпl.tl]l(]я |]ссl)lrlo lцmсTЬlх Tсстоrr'l(ll)Ii/LInii из котoрьIх ]vlo)tIlo ]|l)oГнa rЬ чсllсl ,r.l]a |](.lIЯ'r oр II llо l рoга1],Рук.t\'tlt' jllrзассcl'6"1иPo BаIl ис от
l{oIJlIIt,lll'polrailIlЬlх (l)lli'jIoв 11oзI]oJ]ясI ()днoзIlаtllIo устaxoвrlт]ll сlll)авllJIся ли oll. Tltlnlзa'Гoр сo свoсii зn,llaЧеii lUllt tlст'
3Дссъ сPaвtltrвarотсlя д|lit па]i60Jlcс пoпyЛярllЬIх LiDLlх.к()NluIIJIя'ГоРa: Gсс з,3.'.1 (стa6rl,1Ьiltlя BсPсllЯ, проI]eреlllIaя вpcleпеr\1| r]х0дяп]ая тr 6()'ЦьшltlrсT8о сoвРcllс!I
ньlх/.jltо.Pи6утпвоll) rr Iпtсl C++ 8,0 (дtllloo ]lo тскстy iсl), пoзl,l1{иоItxpуc: ъli! кaк сaN{ыii эффolil]Iпrlыii к{JмrlIJJIятор всeхвPСмсIrеl{ п llaPOДов' з0.дlleвIlая oзIraкo. \Iитe)Ьr]ая' а таюке бесrlцаTнaя /llЛя lIcкolY!nlсрчeск()lt] ]lPи]!]епe]Irl' IIоЛнoфvIIк. ц и о п a . r l Ь 1 1 i l ' lL i n L l х . l e р с и я
кoтороro
Л с ) I { а ' Гн a f г р - с e p в е p e 4 l и P I l ы ] i t p | / /
down оаd.in|e' сom/softwаre/рrOduсts/сompiLеr'dOWnIOаd5/ .сс_p_8.0'055,tа[ 9z' JЛlцсн зr1ю нa кo'Гоpьriillоя{нo по"!учuТЬ]rrIrIrIЬзапoЛlllв РсгпсTpациoнlry]o фоl)Nlv нa вс6.саIiTе (6ез Лrtцснзtlп pa6oTаTЬнe 6yЛeт),дЛЯ пoлtlolr,l каpтxнЬI rr это1.спrI с o к в I { л ю ч e п / l Р с в r r x i i ' н o в с e е щ с I i с п o Л ь з v е l { Ь r i iW i l d o w s . к o l I п и " ' т я , r . r l p NIiсrosolt Visual с++ tj,0,для кpапrrюl rr o6означaeN1ьr]i кaк n]svс, Ес"ти нr: oговоperrоo6paтнoej прIiведcнньlе пpl.l]\{eРы д0Л)к]lьlкo]!1I]]1,пrровaTься сo сjleдvюЩll]lflJ Ii-пIо.rallrl].0з -mагсh=pеntiUm3 (gсс)' .03 .mсpu=pentjum4 (iс]) rr /0х 0ns\.с), Paзнtlllа в пrtaтфopпtaхобьясняотся теNl'чтo GСс з'3 4 ещс нe поЛ/]ep)киваетреx{иN1аoIlTxм]]зацIrпдЛ' РспLium 4' а InLсl с++B,0 не имеeT спецIr. альнor.ок.]rючаДЛя Pспtiurn II]' в РсзyЛьтaтe llегo llc,l{дy illlt1ll вoзни]tае'Г]]eкo. 'Гора9<нсстъIlLовкa',Од]]аxo нapезуЛ'татъI IrашttхэкспePи]!1епToв oнaникaк Eе
пoдлинyl(с rлaва зз. тeхникаoптимизации
496 BЛияетl пoскoЛЬкy l1llкaкlr€
спецI!фичIrьIе llЛя Pеntium 4 вoзNloжt1oсT'l здесь Irе
кoHстAHтЬI l]ачIrспl с самoroпpoсTогoи фyпдaпlспTanьнoгo'с кo1IсTант,Toестьс llепoсPсд. .1: 0x666h; сTвеil]lъtхчисЛoвьIx t1'lltlстРol{ol]ьlх3Лa,lенI!ii'Tnкихl нaпp пrср'кaк 'гyт кoмOднако гЬ? оптим llзпрoвa 0 '96;
свEPткA кoHстAHт .а,'lllltкоrvппJl'lцип(ofloже <Рaзпlllо)rcпlrс'Irлп {св{:РтBьппlс;rсltr'reкolr:таrrтна _ Ita' кoпс'l.аll'r,сollstапt сlimilratioll/li)|din8/РroРа8аtjon' пЛtl шЛ{Pаlцсllло сP) oт нсоf]хoдIl]i() пPIlсм опTltмизaцIrrr.из6авляклциii llPoГpaNIп{rtста ltoI|у..lярIlЬ|й I{aлькулятоprкuLРyкoй. Bсс кouстаllтtll,tе вьlPа,ксllия (как сII] l|()с'гoяIlllопN1с-Lь lI0Jlotl11слсItIlьle' тa( ll IlеIllссl''jсlЛiьlс) ()6Рa6ll'|Ьп]aю'гс' TPаlIс"lI'шoPоNI сitMостoкo/L пе пotlа/Lаltlг' 'ITcJlъIlo и в o-|.l{o]!1I]l.lJlиporrа|llIЬIii * с / 2 , l { o r v l t l l J l я T o P Ь l '| | о д . а =2* 2;ь.4 l l P l l l l c Р i PассмoTDиM с]I.]д\,I()пlпй ' IIl'i| ,l||'' ' . ' , I t , l , l ' п i ' l n , I I | | ' ,Г : ' | . у n
U , , l , | | \ ' | | , l J , L l I l l '| , | \ | , р , I l ' l , ,
.irl
т'l|'la
= 4,
'',,.I.|| l I l l | l , ' l t , r ' . i ' x | | и | . ] , r I l ( ' , | j l r ' v r ' | | 'l ( - ' . ' | | | | ' l \ : . l ' t ( к | , , ] l : 4 } с / 2 L12*., j )rаJIсllтlю 2*a' Iк)To]\ly чr.()пРIt ylljl(Dксltllrl lIа ]\lo)(0T llilсTyllrr|Ь lIсPcпoJlIlclillcl i L I l p l r д с J | с | 0 l п r r а 2 - v ж о r r r , l o c т l l ] l c I l a с ' Г у l I l t ' I ЬCI к a ж с т с ' ч r . о э т о I l a l , t Г P а l l l l ь l i i ,,|''||o/!:.,Iз|rг'i'ж'|.'l. l , n | | \ l ' ] ' ,\ ' i ' , l l | | | ' | ] П l ' l ' l ' : ' ; ' n . . t ] r r ' ' r . ' ' . l r , ' r r ' rl.ч t t l'. t i . i г r ' ' с l o l ' с r ' ' l r - l ' r . r r . . ' 6 t ' n .' г т ' l n | | ' I ' \ ( ' ] ' | . ' . | | n p n| \| t| ,| , ' l ' а . l l хi | l l . 1 , l 1 ) кaк ||aд пoсnс'П)гo I]o rцllNi сдвuIом IrпPаtsо ll:t задaI]]lос кoJlllчeствo l|oзllцnii' пPoгр;Llil{oi.i lloра6oтаc'Г tlllтл]!lи3aтoР' э,t.оTэqхDсItT Tсряс-rсяl с вcшLeствснiloii aрпфмсTикoii cце ху'(с, зпa.IoIUlс dоub]e (4*а/2) вlloЛlle мo,ке'г 'l1Il] сoI]пасть с 2*i даx{e безo r]сякoгo ЛсрeпoлпсIlия1 в doub]e нaчIltlает пгpa'Гь роЛь кolleчнаЯ _ Toчlloсть. ЕсЛи 4/2 точнo paвпo 2'-rо doub]e(4)/doub]e(2) эТo 2 llЛrос'llrlllyс так: чтo-'1.(]очень Nlil,lеIlькoe, в rrаучItoм п{лPе ]To пpавrtЛo частo фoрrvулирyloт
497 !Iх яeп.lсpeдсTвeli1rып{l'знaqeflиями' ПaпpиlleP| а = 2; b = 2 * а; с = b . а; лрсвpацаeтсgвс=2' кoir свepткy кoliстalrт в пс'лной NIсPеnoДleр)кивaloт Bсе тpи paссмaтpr,rвaеNlьIx I l l l J l я т o р аm : "\.' jсl, 8сг,
oБъEдиHЕниE кot|стAt|т сollеpжиt.lЬtl{ДlIя экollolllиlt пaNя llсскoльlсo сTpoкoвьIхкoнстант с идeнт]1чнЬ1п1 Tll Nloгyт 6ьi'Гь06ъrд]'1нсньl(<merge>)в oдпy' To ,{е самoe oтнoсится Il Iс всцс. ствепlIьINIзпачеtIиЯм, цслoчисЛen]]ьIе32-6птlrьle констан'гьIo6ъeдин,тЬ нrв!I. гoдllo' looкoJtькy ссьlлкa пa rroпстанту зан]'lMаетбoЛьДreмeсTa B 32тaзpяДiroм РФкиме. ссь;лIФ зaнrt[!асT.З26итaпJюс oT oднoгo дo I!€ с пr 6aйтoв на пoЛя aдРе. :]fu1аIoщес спoсо6 aдРссaцrш и вы6иpаIolцeе сaцип (oдпп 6aliт <сbс/rаel>l{оdR/l,1' peтистPьI|дРyгofl6аih rlpllхo,lLj]'кяl]а(I)alryльтaпJвноcпoле sIв _ sсаlе{пdeх.ваsr, испоJlъзуe]!{oe д21ямaсштa6rцDBnllI]я,]I еrllc чeтЬrPе6aйта tla яс]loсpсдствel]I{oc с]t'еlцепиeко}Iстa,tтЬIB lrаrшTи)' lloэтoмy ссьlлкп тoлъкo тlaчtlная с 64/80.6иT0' вЬlх кoIlсTаI]тста1loвятсявъIl.o]lнcc,чеNlI'аllпlп]lая коIratlllа с кoпие ]toliстаfiтЬI бЬ!сTPoдeiiсTвиIo' в oбцc^{.Tо,llеспo. вltутpll'дa и BЬI6opкaкotlстalJтьi llз гIa]\l,tти
сo6ствyст.
Пorсalteм тeхпrrкy o6ъel(пtlсIlия Ilа слсдylolцrпt IЧ''Ii{ePe(листltll[ зз't). нa о6ъeд кандидaт листинr 3з.1. нeoптимизиpoванный рг,]ntf(,ire]]о'\!oЛdl\n.)] //0днастpoкоuаякOrcrанта / / Д р у r а л к о ] с т а ниr!аe' ! т L ! q н а я п е p в о Й рГlntf1.he]]o'llo.ld|\n.)] р n ] n t г ( . r5 а yh е ] l O 'W о г . ] d L \ n ' ) ] / / 3 O l с т а н rсаL i д € н т и . | нпооЙд с т p o к o Й кoмгIиЛятoP msvс <ЧсстlIo} гellopирyет псе TPЛ сTPоItoвьIс l(oflстallтьll il gсс U i с l _ т o Л Ь r . o ; l Dl lcl l l x х i < h e ] ] o ' ш o г ] d l \ n ) l I { i 5 а y h e ] ] о , w o r ] d ! \ n > ' l l a т o ' Ч т о с коlIцoм вTорoii,Ilи oдин lrз кo^1пи,lяTopоsпooбP:rirlj'Il пеPвaJiстрolrа сoвl tа,Дaс'г l]allPяr.а,I'ься ll писаTьЛ|lсTllllгз3.2, вIlимaпия, прихo/lитс'l вaриaнт лис1,нr зз.2. ЧасгиЧноoптимизиpФar]ный с h a г s t ] = i s а y h е ] ] о ,W о г ] d | \ r l ' : pгiitf(&sl6]) pгintf(&s[6]) pгintf(s)i
// // // //
p а э l i е Ц асeтЦp O к в} п а [ l т ' 1 в ы в о д ипl01д с т p о к у 3 ы в о A 'пr O д с ] l ) о к y B ь ! a o 0висфoс r р o { yl , ] е л и к о м
нo ведЬпозицtllo lloДстРокll в стрoкe придeтся oпPсдсЛяTЬвРyчнуIo' тyпьIl{ пoll' счeтoп{бyкв! илп испoльзoвa'гь illа]сpoсъt'oпPe/Ieляядл1lllу сТрoкrr с пol1ощьlo sjzeof' тoлькo''' этo же скoJькo кoдитЬ llаl]oI Пo'.тIloстъIоoптI{мI'IзиРosанIx,тli вaриaнl пpпвeдeп в лllст],.]rre33.3' вapиант листинг 3з.з. полtloсгЬю 0лтимизир0ванныЙ .hd. ' t
o]'е..о,,o'.d
,,
'|: // hellO'loгld]\n' с h а г* s 2 = s 1 +] s a y P' "t'Z p . -l t " t ' 2 pГiпtf(s1)
494
.лавазз, тeхника omимизации подлиrryкс
ПPичсr']' в oTлu,Jпe oт ситyациli с o6ъоД]l]1]1e!1 двух ]loJlнoстью тo)кllестBеIIIlьlх с,Грoк'прaктI.lчес]rаяцс]lt1oстr,кo,|oрoй сoNlllитeЛь]la,задaчa oбъелинe]rия пirд. с,ГPокIiсo с'ГРоrLоriвстPечастсЯ дoвoль]]o час'|o,
кot|стAHтHAяпoAстAнoвкAв yслoвияx ПсрсNlснI1Ьrс, испo.Ць3укЛц1]еся лля <пРи1rЯтnя PeIIсния' o ветвлснxrtj в xа]чдoii из вето1t пllсtот lxo'rlttс llpeдсIia3уе]цьrе 3flaченllяl зaчастyiо явЛяюnlиeся кotl. с , г а I r T а п { I i 'I { o д в I r д а i f ( а = = 4 ) ь = 2 * а ; N I o ) к е ] . 6 ы т ь п р e o 6 p а з o в a н rr if (а : 4) b= 8' что кoмпи"'lятopl,l msYс/gсс ll oоуLцествЛ9loт' uз6авJIяясЬ oт ]IltuUlей опеpацliп yп IIoЛ{еIrия'a вот iс] этoго сдс"цаTЬ нс дol'аllьlваeТс,t.
кoнстAнтнAяпoдстAнoвкAв Фyнкцияx кotlстаtITьI Il oна не имеет никaких пo6oчньlх Ёс.lи всс аргушrеrп'r'l r|lуlll{IUlп ьr п,rх/стaтtIч€ с iLих пepеNiе rlirых (п пе завII. эффсtt'l.o! Trl1lа r\кЦI1{''iкarlии г.;ro6.L:п сl.l-гoт их зtlа.'еItliЯ), вoзвPa;rraс оо знaчсtlxс 1.акжс 6уДс1.к.)нс,l.а]tТoi'i. oДIIaкo l.оN{lll'lj|'l'|.('PЬlll ||o/lalrлякrlпerr 6ольпuпIство сllучасв o6 этoll rrс дoгадьrваloтся' oIIтrIIlпЗnlт4lа oгPaнrI.iсt'oтслоп{ фvlшцlln, <сквoзrlая' пoдс1аlrorка ] I('lеJP€ | lия аP].упlсlr,юв (<сgrР'lкa 4)vlrкlп.Iй') осуIII€ с тп],Iма Л l1Iь rr сJlyчаr uстPaиваемь]х (illlilrс) фYllкцl,lii llJIIr |.Ц06а.цЬllоГo pс)|(шN{aoIГГItмrlЗаll]ll'. к o м I l и . r l , | ' Г о iрс ] и N I с ! T( ] | l с l ( а r l ъ п ъ l i i I l а 6 о P к . п l o . | с i .]i p / . i p о , ( ] ] ( ) p с ] t p y | о l | i Iгl i' li l o . 6аjЬllyю olI11'Nll,li}аI0lIoll TсJ(vЛlcм фaiiJlt, x всcх I'lсхoдIlInх т0ltстnх сooтвстс'ГB0tl. Irc' ЧTо ]lо3l|oJЯeT с]\lу |rЬIIIo]|IlЯTЬкoIlс,r.а|l1]IyIoIio/lстarloBкy в filе](yJoпle кo/lс ( j I и с т l t l J г3 3 . 4 ) , лиdинrзз.4.
каNдидатяа кOнсrантнYюnoдстанов(y
f 1 ( ] n Lа , r n t Ь )
{ )
t2o reilrn г1(0х690х96)| 0x666i poзv.llЬтаTa Jш]Лъзa счет тoго' чтo tlа кo\{пилятор8сс toстlrгaс-гarrаJlогIrчIlоro ypoвlIeoпT1I}1] aтичесr.ri tзацrти-0зoн aBToru встPаивaе,Г всeмeлкпефупкцпи в Tе. Jio llPoгpаNIмЬtl в To врсп1,I как msvс встPaивaeТЛш]lrЬ нс(oтopьl€
из них. И д
{е
есnrl фу]п{цияo6ъявЛепaкак <.ilrliЛе''oптlli{изаTopoстaвЛяет3а с06ой прaвo PrшаTь: oсyщeсTвJ]ятЬ Ли всTрallваIlие в даllllo]i1 с"lтyчaeиilи llеT.
кoд и пEPЕlv|ЕнHЬlЕ УдAлЕниЕ ltlEPтвoгo кoдA <MePтвь!п{ кoДoм' (deadcodе)назьtваeтся Iсoд|пиI{oг]Ia не поЛучa]oщий управ. лeниеIl впyстуIoтPaн'кирЯIrIиЙ дискoвoeпрoсTpaпствoи oпePaтивнyloпaп!ятъ,
499 B пpoстeiiпlrм слyча€ oн llpедсTавляeт со6oli yсjlrвисl jlожt1oсть rсoToporooчевиднa eщe ]встадиIr тРансляци11'иЛи I.oЛ,paспoлоnrеЕlrьIйпoсJlс 6езусЛ.)в]1lrго возtsрa]aиз фупкцIrи' в o l ' | | : ' , , г и l l ё г : i .( 0 ) 1 ф : e I s е 1 . . э - o | | e . , I n ) . (n ' rJ а Л а ч эс Ь o | о Г U , l у . п e | | | l спPаlJlяloТся всe тpи РассмaтPивасмltх коN!пllлятoрa. ^.вoт в сjlсдуlo1цеivсЛ]лlaе6eспo,!eзность !ыpФкelпIя n+ y,кe lI€ стoЛь очсвиllпа|for (a =0; а < 6i а++)if (а < 0)ft+'Услoвис(а < 0) всеlДa 'lo)кпo' пoскoльку цl,tlсJtltачи]Iaeтсяс 0 и пpoдonжaстся дo 6, и3 Rсeх тPех pассмaтpIваeI{ьIх кoм riиЛЯтoPoв эTo llo зy6aм тoЛъ]rоiс],
yдA,lEHиЕHEиспoлЬзyЕрrыxФyнкций O6Ь,1вJlellпыe' пo п,I Paзy нс tsr'lзl]lllIllЫe фyrlкilr{lt iroмпилятopу lI€ , гnк.тсl пpo. 'l.ехllo.floгllЯ сTo уl1аЛt'lTь, PаздсJllttoi,i кol{пllJlяцпIr (oдtlЙ фaiil ltсхoдlloгo тeк. ста _ ollttIl o6ъектпъIй i\loду"ц],)llPe'цполaгaeт] чтo фyrшция' rre исllo,/п,зyloцaяпз oсTа-.rьпЬrx,Pсa?IЬ!]Ьtii Рaсiоl:!1 ся в тскуlrlепl Nlo/lуJlr' впoЛнс ]!lo)llс,LtsЬlзЬits2L,(.ься Bь]яl]лЯс,гс,l ]111l1lьlIa с].lvlии ко]!Iпolroвки, BЬtхoll!IT, lIeиспользуемьIс функциl Лoлnrе]] y/lanllTЬ ./lInlкeP? IJо <вЬIllnPаlIаTЬ' lllopl.вylо фy]пrrlиro irз 06ъс(тlroll) фаiixа сrцe сJ]onolеoI дЛ' эTot.о лrlltl(eРу lleoбходпN{o nмсть ]!lolllшЬ]ЙJ(изaссrм. вlry Лaчy' 6лep и нохилr,ti'i иtlrrусс'rnеlIlIьlfl ]rI]'Гс'ЦЛeк,l. (ЛrГим't3al(пl,l (ключ -jpо) o,гсJIсж лаc1. B г]JooaJIьIIoii I(oмnlr''IяToP id Pс)кIтмe l l Л o 6 ъ e к , г l , I Ь lм i ' io ' ц у Л Ьо I п i с l ц е J l a ) т а I I с T р а | I с Л ' I l и u ' I I e и с l l o J l Ь t y с м Ь I сф у l l к | l ц п Ilс llo|taдают, oсTаЛl,пыe кONtl.lилятoръI lпlilciv ТaкиN' IюхI]aстaTъся пe Nlol.уT. пoi)Toiиy кaTегoричeскLt l{с'Рcкoi\lсlUlуеl.ся дcl'кaTЬ вeсЬ l1рoск,Г lt o/l]lом ФaЙJe (oсo6ellrlo 0сrlи вЬl l|иrlle1.e6п6ЛlrоTcку), о(,1и 'гоЛьI(o вЬI ].lcхoтиTсl ЧTo6ы посЛс к(J]!{пoнol.]к]lвi.lIIlкo,1 кlllшe.J]}tc xу)кIllnllи r|Р,IJloл(еI]икj фyнкцпЯNlll (Paзl'яflIe. IIеJlипл'IIlм). IloruсlцaiiTo lj фai,iJl To'.lькo <Рollс'IвeIl]lьlе' ппe, по'пloслry,6улет фу]lкциLt' кoТoPыс trссцa пспoлЬзуIотсЛ в llаPс и Iю о'LДeJ.]Ьlloстllле llмctoT IIи. lсtкol.o с]!tьтсЛa'oдxа q)yl 1](rll,Iяпaо61,скTн]'ii фli]Ul - э1.oвlIоЛI]e lIoРlц:Lnьнo' Двс. тpI4 cщс 'r.oРцll!io' a вoт 6oльпrc уltс rrере6oр, ПPисNioтритcсь' как yсТpoeЛьl 6I16Jx1oTскl't я3ь]кa си' rl вatrll'l пPoгPаNlllЬI сPазУ Лoхy/1еIoT' с,|alutaрпlьIe
yдA,lEниЕнEиспoль3УЕМЬIx пЕPEМEннЬIx 1leРeNlerr!IьIе o6ъяв.лепuьte' пo rrеr,IспoJ]ьзyсл1lnе удaЛяIoтся всс11ttсoBрeN'eнньI ]t кoтoI1I'iкoУ л I'lлятoраlllп.ДPeDние oлти]\изaтoрьl удаiIяЛи Jlишь fleрепle}Iнь]е' pьIl{]lе I1poпсхo/ll1.lro ниоднol.o o6рeЩeп!тя'сeйчaс '{е oпти11!rзaтopстрoит свoе' o6Paзнoe (aбсTрaктнoе дoPcвo'' Il Rетви, ведyщIrе в никyдаl пoЛнoсTьIo o6ру6aюTся, B лPивeдer{lloМпримерe (лисTriнгзз 5) msvс' iсlи 8сс уlIаЛяют всe тPu пepeп'eн' tlьIх ,' b и.. с нeиспoлЬзyeмЬ ми перемeн3ь|ми ли.тинrз3.5' примеPпроГpаl'lмы m a r n ( i i |] r ' с h а г* * v )
I
лpaАaп|*Иe 9
500 л'сrnнr
пoдЛинyкс rлава зз. техHикаoптимизации зЗ,5 (npaДoлжeние)
d з н 4 r и т . п € p е l l с l r } ь eа и i п r U н и е с = 6 * b : / / п r э р е и е в нса 'B е и с п O Л ь э y е i с я
)
yдlAЛЕниЕнEисt|oлЬзyEмЬlx вЬ|PA)кЕний непсlrojlЬiryеlfьI€ вьIPа,'ксl||rя уда.!яются всrл111'DеrIярассltaтРrltsаe]!п'l'lIl{ош пrl-.1'rloPaмr{'Boт1 }lаIlpltl1ер'r1псГпIlг 3з,6, вырaжениями с Heиспользyeмыfrи лисгин.зз.6' пpимepпpoгpаммьL m а ] n ( ] nnt. с i a . * * v ) { а - i]0х666: b - n.0х999] d * 2*i:
/ / l е и C . O Л Ь з у е т сллe, p e 1 р ь в a с l с('2 * n ) / / 1 с р л 0 r с я' p и 3 Ь l o Л eи з ф y в к ц [ L l Bьr'irяе[иe // сд[lrсr3e]юе iсг0Ль]ryеф00
l B ЬЦra't{:l l !lс n+0x666Ilс ltсl lo]|t,l]ус,I.ся']loс l(oJIЬI(y j |сРсl{|]l)l,]llстс,]о.]IсlLуlo |цсl'l 0j Iс. я * n ' l 3 ь Ц a , { o l l t l с n . 0 Х 9 9 9 1 с Р я с 1 . с , |l ф t t в Ь l х o ] L e з 4 ) у l l I { | 1 l l l l ' рaIlUeii IIРисBoс|l112 сЛ0/(оBaтeЛъllo, llцш lrolL )|(вllв&lтсЛTсll| гeturn (n .0х999)' llo tsссl.l!Aтакая oп'Гl llI l1зац ll n fl р0хo'Ll]т 6сэ6ojl сз t lс l{по I{oNrlI цJlJгl oPt,l <Jitбы8ato].} о 1.o1!l ' чTo lIoкo1.ор],|еl]lllrIl|сJ|сr'Il,1иN{(llоl.||o6oч|lЬlii l4]oк'| rr Dllд! IrЬl6рoс, }lск.]IIочelпr,' i(oд в!ll(a а = Ь/сi а = d rюж]l() lЛfl.jlIti]зJIPот]а,гЬв'Iо]\L ll L()J|Ьlil]R Toм ('l}лlас' ссЛll IlсPеllIeIЛIaЯ с за|]сr1o\l()||o pillllla llуЛl(), Еlо fl!I од!lrt j1J,Ipeх Рaс. смaTI']вaс]\tЬlх кoмnlUtяr.орoв тaкoii lIPonсPкl] I|с вьIпо'!liясT! 3а6авrro' ltо в сo. кралIе пII аP]ltDllсTrlЧeскrIх вьlРаnrc|lЛii (о кoT.,рых рсчЬ с]lllc ЛrleрrJ1и) ll1lкто lil ljих ]lе рl'lсllyет oпTиNlt,]зaтoPЬl всду,Г сeбя Ilамнol.o 60,llсс о(lгоро)кlIо перe}!сlrнaя а завe/{oMо пe сoкpaцать вьlРажсl]l]е (а/а) /]o сдиnицЬl) lLа)кe "Aс'IIJl pавlla пулюl Бapдirlr' }r()6tlleiu.
yдA,lЕниE лиlllHиx
oБPAщEHиЙк пA1{яти персменнLnсв Рeг!lсTрaх' из6егaя (дopoгOкoмfiилятс]рьI сTPсмятся Pa]]!!enIаTь Ii пaмяти, Bзят6 хoЦ (',I Taкоri код; i =*P|с] стoящих,' oпePaцlril o6paщeпия *p . ttTo с)6ращrнис к *p лиltпIее, It кoмпri яToрЬl пo. вTopoe b d' oчсвидIio' = =*р. = эToпI нeявнo no'laгaeTся' чтo сi]дсpяtи. i t+сi b t.d' при стуlaloт таlс t xp l{оilolfl в пPoTивпo}t сjiyчae ol1. мoс ячe'llol нe пзl{е1lя€ т сЯ нl'll(акt!мвнешнI{lI
501
удалениeлишних oбращенийк паMяти
тимизация 6yДeт iтoс],l'гьдIrвepсиoннo.PазРyIIlите'nЬнъIйхаPaктсP, Чтo eслIl пepспlсннaя испoЛьзуe,гся для o6мепa дalr1rьIми/сиtlхpoнизациir нескoльк'1х п o . o | r U в ?п p и ! l е p . к о | | е ч ] | nг ., 1 у п Ь | |si .:e J н ] , o | ' ч , o д Л я. и н \ P o ' , ' з а J и , 1и ( | l о л L . зуютсЯ сclllаq)opы l'IмьIoTeксьI.нo зaтo пaIлядньIй. чтo eс]rи aкoiгтo драi!веp вoзвPaцarт Чеpeзнeepeзyjlьтaт свoеilPa6oтьI? наIrоEeц' чTo сслIr мьI roтпN1пo. лгlить IlсI{лючеl1иеtlo o6раЩellиIo к с'ГРапrп!епaмятIr? .цля yс]\i}lPeнияoпти. мизaтoРа во всeх этих сJryчаях нco6хoДиN1ooбъявЛять пeреп'ejl]IyюкаI( vo]аti]e (6укв:t.'lьпo:<измепзrrвьiir}' <нoyЛоtsиr]ый))'ToЦа пpи кDкlloм oбpaщениu oнa 6yдеT tlcрeчи1.ЬlваTЬсЯ rlз пai!lяти. Указатс.JIu_ нaстoя!Lu ii бпч oптIlмll3ацпIr.KoNпЛлятoР rl1коrдa Ireпlo)fteт6Ытъ yвrpeн, aдРcсуto'г Ли двi-']IсрeмellIlьlхpазлIllЛп]Icо6,rасти паNIЯ'гппли o6pаIдa. ютсЯ ( oднoli и тоii )кe,!чеiiкe tlамяTlt. Bo,л'llaпPllN1еР,лисTllllГ 33.7' листинr 3з.7. пpимеpслишнимиoбpацeниями K пам'ти,oт кoтoрьx нельзяизбавитЬсЯ { х . *d + *b *b = 0lб9: х + Ё* а ,
// сЛояеEиe с0лepц[и0r0 цвyхяч€ r l / / и з D eL с r ' l еi . е Й ( [ * b а л | ) eксо т 0 p 0н] ei и з s e с r exно i n и л я l о р y / / н е l r а p a в r и q т 0з а r r и с3ья ч e й ( y* b i l e и з [ e н и л' аr ч e Й кt yа
l I(oмпи,IяToP Ilc i!t0)(eTР^i]мeс'IllTьсolLepлrимo0*а l]o вDeмclllloii ]Iср0iv€ r lнolt, l!1oд!г пoскoлЬlсy,есЛи Ячciil{u *a I *b часTпчlIo tlJIи IIor'lпoс'mloЛeРeIсрЬIвAIoгcЯ' *аl *b ЛРtrводиTк |loo}l(llдаIlпo]\ly изlicllcltl,tIo ячeiiI(Il 'l.Iсйкu фикaци'l To 'l(с сaNlосoTlloсrlTсЯ Il к сJIeдук)t|leMупрllмерy ("1исTIrlпз3.B)' ли6яяr зз.a. приMеpс лиL!ними o6рацeнияl'1и к памятиlor кoтoрЬlx мo)lнo из6авитЬся вpyqнyю f ( с t r а г* х ] n L * d s L ' r L n ) {
rnt r: f o г ( i = 0 : ] < n ] + + )* d s t + - r t i ] .
) КoмIlrUlятop !tе мo}кеT (]]e l{l1еeтпРaва) вьlнoспТь пеpеNiепlтYIodst за пpодсЛЬl цЙк.,Iа(a вдPуг dst и Х пeресекаlотся? языIr.тo этoго не зaпрещаетI), и о6paшr. ния к памяти 61цyт пpo!lсхoД]]ть па кax(/.loliитеPaции. что6ьI этогo из6с}кaть, пpoгРаI1мист доJIжсн пеРсnисaTь кoД тaк 0ЛrсТппгзз.9), ваpиант листинг 3з.9. oптимизиpoванньiй f ( с h а г* x , i n t * d s t ] n t i ) { fо
-0
*dst+.t| )
1
.
'.1l
O'po Auё
,J\h| 0o вp6'р, Oi 16рр"ё,,O;
// записЬ к 0 R е ч н 0pг 0е з y л ь r a т3aп a | я r ь
502
rлава зз. тe\ви!аоптимизации пoд линyrс
yдAлЕHиЕ кoпиЙ пЕPEMЕHнЬlx
о6ыrпIо сoкPaщaют кo-IичeсTвo]rспoлъзye l]jrя экoilомпи пaiияТи кoNn1иЛЯтoPЬr ]vьIхпepeмсннl,Iх|въIпoJ.ltlяя :L1re6рaичесl{oс РазвеpтьrвaпIte!ыРarкrнlrйrr yд:L{яя B alrгЛoяЗъгl]LоiiЛитеPатype зa даnltoй техtlпкoi] опт]ii!tl{зации зal{Рeп]ierrтepiIиIl <]сoр\'Рropa8atjoп>,су'Гь 1(oToрolonоясI{яется B сЛeДующсм пРпruеPе(лrтсTипl.33' 10)' Л и с r и н r з 3 . 1 0 'п е p е м e н н Ь eиаb _ л и ш в и e п i ] n ( ] n tn ' с h a . * *V )
l
b = l d: г e i l i г nd ] ] :
/ / и 3 о i r s , j r 0 rocr! п е р e ! е н нiоr Й ] (1. {n } 1)) / / п э O а в r i e i соят п е D e { ]' + Oib j] ((n ' 1] (l
(n + 1))):
ovr:ltr/lttо, .rтo сгo rIожIIo пrРеrlilсать кirк 2*n+1'из6авпвIrrисьt1lllзу oт двух пс' l()IllIItnяТopаjlмоI]lI01nк ll пo(:Tуllак,г.(С l)сNlс|n|ых'ts(с'|pll Ра(с11атPlll]ас\1ь|х
1.eхI t l l! I((t(o l'i '].o\кl I зрсllrl,r'
ДаlпlЬIii
||Р||сNj оttTl]]!lи3iLllI'
я|lЛяеTся
tlilсTlllrl]!t Оly.
. I а c м6 о л c с r l 6 t ц r : r 'мoс х a I i l ' з l l i аа J r г с 6 Р а l ] ч ! с J ( ) l . o у r l ; r о ш с r r п яп ь l p a l к с r r л iri r р а с . пPсЛoЛclJll,lРсt]1(t.П)|tIlФ l.oPьlii бу,1lстPдссI'oTРcIi ll,lж0.)
PA3MHoжЕHиEгlEPЕМЕHньlx Ila llpoцcссорaх ( кoIlвейср|ll)j] lрхll,rск1.уpoij },/{аЛelпle<(JlllrnIiIIх' кoпl'li'i пoро)(. дает ло)IoIуlo i]al]пс||]l{oстЬlIl) дa|ЛlьrNll lIpl]вод'Iltl!ю ( lIa/lortиro ЛPo}lзпoДrtтeльlloсTll,lr пeрei{епlII,lе lцl11хoдl'1'Гс'l10 ToЛькo <]сnоРаilиl]аTь'] но и разп Iю)(aгьI PассrvoTРим ilриrlеp (.Дl1(Тинг зз.1 1)' лисrинг з3.11. Лo)r<ная зависимооЬ пo дaннЬ|м
i; 1i oпepации Х + у i . j мorvт 6ьIть вьrполllelIъl oДrroвРсмеrrIJо' нo чтo6ьL сOхPa. пиTЬ резУ.lrьТaT вьг]ис'qениiI'часть проЦeссoрнЬlхмoдyлeй вьпlpкдetla llpoстаIr. ваLЬ в o)к11даrlии'пoка Ilе осloбод].tTся]lеpсNlсннаяd' Что6ьr yстрaпlтъ этv зaвиси]\loсTь'кoд нео6х011и]!lо llеPспrrсaтъ тaк (лпстипr.
ЗЗ'|2),
листивг з3.12' Pазмнoжениe пeрeмeнной а yстраHяeт зависиl.loсгь пo даннь|м b=а1 +1:
перемeннЬх пoрeгисгpaм распрeделениe c=a2
I
//.
503
з а 0 и с и r0 т а 2 ' н o н e з a в и с и lо т a l
Пpостelhlш€ зависulvloсти rto ДarпrъIlfпPoцсссoрЬl oT Рeпtjum Prо r' въrше усT. pапяkrт сaп{oстoЯте'llЬ]]r),PучI'oе PазI1ножс11ие ]lePei!!епllьix з]1есь тoлькo и коl{пIlлятo. вpeДI{т l(oлич€ с твo prгrtс,|pов o6nlerо rrазнaчснrDtoгPанt1чeIтO' lтpoцессoнo это тoльI{o снaру,tt!t, tsпуTРIr кaтaс'гPoфичссI{Il rlе хвaтает. РaNIIJх pn'o.\l,)ки|lс|дopoЬt',ip''гllс|,'oгl|||i-iii,авo\|а,/ч.',',.г'u,tl](л|я|.||,':'} perисTРьl tlo меРe IIео6xo]1иNIoсти, сЛo}к1rъIrзависилlос,t.ltl1o ДallпьIllftlа пtlЛ{Poуpoвнeу)]{enepaзPеI]Ir'мьr'и чтo6Ьl ,|еt(сl.ylцroгpaмI{rn иr!Jе,ГЬ с]ц)ави1r,сяс lilrпrlr' нсl:16ходиN{o дoстyп 1tисхoд]loпrу зависIrмoстoйl oсTaJr!нr'lежe остaBля. кoМ1lиЛятoР iсl yстPан'cт 6oJ]ьtrlиIlс'ГRo
PAспPEдЕЛEниE пЕPE]vlEHHЬlx гlo PEгистPAм Pct.l'lс'ГPoв oбIцeгo Ilnзяllч0lll])1 l]сcг0 сl]NJь'a Ilаnlс 'l Тогo Nlсlll,шс, Pсt.ис'].p ввP llсIюJ]lii|уc1,с'L i(JIя o])гаrlllilацl,lл фрciiмoB ( rаt()I(с lla3ывaci\lЬIх с].el(t)l]Ьlnl11l{il/,lР n м 1 1 ) ,р с г l r с Ц ) ] ] A х ' п o o б i l l e ] l P l l l l я T o п l y с o г J l i l l I I c I ] l . | I пo сl п o j l Ь з y o т с я ; L J l ' I J o 3 . P а l l l c l l l t } l з I l l r ч с t l и я 4 ) у , l к J ( l , l t 'F, ] с ( o 1 . o Р Ь l t к o i ! ] i l l u ц n( с Ц ) o к o в Ь I c O п е р a ц ш ' l , y п 1 lIo)((|]l'tc/lLc.llсIJltс) p.l6отaкlт с (lIllсспpoBaIluЬlм llабoрol,! РeГtlсTроlt, ] l P п х o / ( j l T с я l l а I l р o - t . Я ) к с l t и иr J с с i i ф y l т к ц } I r l / l 0 p , и T Ь с г o 4 r I o д с у к I l o м > и Л и l | ( ) ( l I ( ) я | l ] tгoo l l я T L Д a н н Ь l o о 1 ' о Л l l o | o р е l . l l с т p а к Д p у l o r u y ' ч 1 . oT а к ) к с I l с r l o 6 l в . nЯ е1' lЦх)lIз3o/Irl,гсJlЬlloс,гllс T р а T e г и , o Л T l l м а Л Ь | I ( ) Г ( l)) a с п P l ] ' l с J с f l j l ' l l l o P o м o I I I l l l l х l r o р c г п с т р а м ( g L o Ь a l rеgisteгs а]lосаtion) _ сЛo)l(llaя зqtaча, коToPylo сlце lIPс/lсToиT репIIlть' Пусть сЛoBo
,1зьlIoJ си/с++ пoддcPжl1ваioT сlIецllаjlьlloе l{лrочевoе с.noвo reg ister' ynPавJ1я10. nli]c Pазмсще]]иeI!I перeменllь]х' oднакo oнo нoсri1 хaPаI(TeP рeкоNIeпдацlIи' a не IlмпеDaтива' и всeтPи PaссмаTР'lвeеN{ЬIх I{ollпirЛятoPa егo IrгнlrPиPуют1 llpсдl]o. чt1Ta' и]lTeЛ.r]еI{ryпрoгpa Nиста свoii сo6сTвеlIlIь]й ]\аIl]иIl1тыr:iинтe.flлект, ПPедсTaв.liЯст интеPeс сpiLвIli.lтъ paспpeдeЛeнис ]lсPсмснншx llo peПIстpal{ в Iлy 6oкo влolrенньrxцrrкlах, xоскoJl rуегo втrл4ц! о6щ}цr прorввoдителъt1oсTЬ весьiuа зпaчптe.fleri' PассNIoтриju сJlедyIоxlпii пРимер (лI'lстинI 33,1З ).
504
подлинyкс глава з3' тeхникёoлтиМизации
лиdинг зз.1з. глу6ок0вЛoхeнный к качес.вyраспpeдeления циклчyвствителeн переменнЬ х пo рeDоpам п d ] n ( ] n nt , с l r a г* * v ) { lnt I.j lnt sum=0: fOг(i=0 ]
кoltпjIлят(Ц)y lllsvс РеlrlсTРoв o6lцеIo llllз]raчснxя y'r€ aе хватиЛo' ll тpx llсрсNtell1IьIх' o6Р,6aTInBa€ N lьlх впeЛпlпм цtIкr1orI'(вьrлетолrl>п стеlt' тtоmrrurятор iсl <уJtсl'oljк|я>B 14 (l) с1.скОвьIхпеРcr]eirlJъlх'5 (]) Л3 коToрЬiх о.Рa6aтыRакrTсЯ Bo ]]юt.о nIO)toюl.oB()рllTl,?l вну.t.pсl]!lспt Iк)!:'.lс цl]к'!сl o каl(oi.iIlpоl1зroд]lTеЛьII0(,гll Bтoрoо место зlнял gсс _ rrз 10 сrсковьlх trсpсlrсItl1Ьlх5 рaсllololксrrЬl во вfiУ,г. Peп]Iсl1цl]rtло,A Irы спlс N'IiсIosoIt]Pvl.астс,,.зl сЧс,гЧсlо тiu(о]i вLll)грr,lшд0с'l.uгaется? oбl,I.Ilю дJI,]РaсIlрФlс.лсlllrЯрсгuсl.Рoв Ilсtlo.'l|,зvютсяJ.pафЬi'l.д(|в зaв]I.
l O с ] . r l l l с l j o j l l ) l ] ( ) t r i l I l l |р, lс ] r l ( Т P o | ] o l I l l P n с к l ) a ш ' , П i l | o ] . О l 8 Р a з n I l t l ] | l , l сц l } c L a _ о l . х o ' ] | o i ( I l и r ]' ' L oг o ] ' l l J l ' г o ( t l о . ) l . ( ) } l )YТ a т с х | 1 l t к i Lч r с | o l ] а . 3 Ь J 8 a с т с я с d ( ) Ё п l a P ) ' ( ) д l I i l l Ф ) , l . ( ) x ' | . о | ) | | l t ' Е l n I l Р l l ( | l 1 ] ( lл' 'Ф 1 [ ц ' l] 1 о с , l ' l D к с | l l j ' | l l р и с ' N l j l с N о l . Oк а ' | с с ' Г l l i l P а с ] I P с j L с j | с | l t | яi r р l r х o д l ] Т ( я | ' P ' l 6 с Г а T Ь к | l с к o ' | ( ) l ю У у l l а б 0 P у i ) Л Р x с ' Г ! l . l c с ] ( j Ilхl l i L 6 J l о I l о r ]д' с Л i l i ( ) J l l l | х< i I l l f ] v l . l ' Г l ' l J | | l ' lлl э] ') e д I ю J l o ' { с | j l | я ] ,у l L ' | | o B с с ' м y .x o r v I I j l . o p o i U I Ь l l o i i < 3 а Г р у ) { U r l l l o 0| | ' ' Г ( ) i l' il J I l II i l l ( ) j i| | t . P l r м с | | l l o i C ]lЯ'|.oрnlsvс j,IсfloJl l,l]yс].бo.дьшкlс кo:rпчссr.вo эвPllс1rlЧ0сl(l1х lIla6ЛoflоП' lloэ-l.oNlv с 6oJIьlllllrt o'l.l]ы,юм I1 ]]обo,tqut(r. oс га'! Ьн l,lх,
PЕгистPoвЬlЕ PE.AссoцvI^Ци|4 lIехвirтк]l peгпс,ГРоB пскоTopl,lе r(оi!|]1llля/lля пPеодо-l]eппя кaтастрoфпчeскoii тоpьl сTрr}1ятся с{lR\{еlllaть счeтчпl{ цIjк"та с vкl!зrтe.nell lli ()6рit6аTыnaeмьleilirll] l ы e , к o д в l { / l a f o г ( i _ 0 ] i < n i i + | ) n + = a t i ] i п р e в Р а l ц a е l с я l l A l r 1н f o г ( p = a ; р < &аtn]i РЁ|) nЁ*p, экоllorl]lя ll.ullц()] tsllсpвьlс ( l IаскonЬ кo It '1o l'звсстriФ эTa
qx1PllЬr1]с\4.tt Рaсkагd'гtс oнa фи техrrrrкаtir,шra rrprrrrеrrеrla в кoulluJlЯToPtlх пнoм rеgistUrеаssoсiаtioп. A что )кeкoпк\'репTъI? I Bo'lьмеN' ryPпPoвалaпoд геP]\! сЛeдyIоrцrlji ]ro'ц_ ксTaTи| вьl/.IраlI1lьI'iIlз llоltуNlеIlr а ци11на нP.копlпиJrятL)Р
стlшr 33,14),
лис'инr 33.14. HеoптимИзиpoваH!ый кандидaт iа рeгисгpовую РЕ aссoциaцию rnt а|10]|20]L30]li rnt i. j. tl flrг (k = 0i k < 10 t+.) foг(j.0: j<1c'J++)
(Jxl'
f о r ( ] = 0 i r < 1 0 :i + ) а t i ] t j ] t k ]= i I iloл)кerrпеРспЙсaTьегo таrr ('цистинг зз.15). грaltoтнъrй oптI,lNII'Iзaтop листингзз'15. oт,ф/з/poвач'ыn вао/аrт_.LeNик.lиaла сoвмецeн нa массив с yказатeлeм r n t а I 1 0 ] l 2 0 ] I Зi0 ]
I
l
гe9ist0l it (*р)t20]l30]i for(k=0 k<10: k++) f o г ( j = 0 : j < 1 0 ij 1 } ) f O г ( P . ( i n t ( * ) t ? 0 ] t з 0&] )а t 0 ] ] : J ] t rk ]= 0 ] i < 1 0 r + + ) *(p++t0lt0 _ l 1) :
эксflePиNellт пoкaзЬIваеT,что яи l]rsYс1ltl.lgсс пе вЬlтloJr]]яro,I рсгистРoвьlх Pсас. слyцaях' с I'pлвсд€ I lнЬl]ll lrPrг сoцlациi.i пir n слo)]оlЬIх1|пr /la'(c в !Iрос'].ei]llJIих МeDoм сllРавиЛся oдl.tll ЛиUIь jс]; r]гJРoчcм'i,To eгo все РaвIIo l{с сItaсает!и msvс paсrlPc/lcЛяc,ГPсгllстPъ1JlамlюГo J]yчllle'
* BЬIPA)|(EHия yпPoщEt|иЕ BЬ|PA)кEниЙ вЬiflолI]ятЬ a,llгo.)РilllчсO(иe уIlPоuloЛl|,1 оliтLlvизаToPьl lIayчl'lЛllсЬ ЛиUrЬ l|сlLаIr. Ло' Ilo эффскT, каIL lotroPиTс,il lIРcвзoLlIlj Ir0с orlo,taIlllя, Рс/ц(иii прol.pilмNlIк|1' скlrii к('L Ilе сoдePж,l'Г вЬц)a,rеI]IIii' кo'j'()Pыс 6ьI'llо 6ьт яс-1ьз'l сoкPaTlrTь, oткРoii
Tс дoкумc] tтaцlllo пo NILl.с lla рa3/te,1с<сhаn8in]gthе stуles ofа Wjrnlolv сreatеd Ьу МFс' и пoучи1есI'' кaк rtуя(нo Ilиса,].ьпрогрa\'NlЬI(лuсTI4Irг33,16), лисrингз3.16. этo так l4iсmsoftнасучитписaтьпpoгpаl'lмЬ| сs) BcOLсl,lainГГаriе:]Prесгеаtel.]rndO!(сRЕАтЕSlRUСт8 { blt|Ons оГ s]zdb]еbогiег // сгeatе а Wind0!lithout m]n/mах ls-sYs ЕNU| П5 вORDLR: сs style = I,,]S-0VЕRLАPPЕD ,
.е,,е{|dOJIOlr.'6q
oаn.
.,'е'
/ з| сs сy = : :GеtsуsiemM.|гiсs(sM-сrsсRЕЕN) / зi сХsсtЕЕN) сs сх = : :GеtsуstеmМеLriсs(s с 5 r = ( ( с s ' с *y з ) с s с y )/ 2 : с 5 ' х- ( ( с s ' с *х з ) с 5 с х )/ 2 : veгsiоn // сd]]|hebаsе'с].s5 |etuгnсгramеNnd::Pгесгeаtеl^indOW(сs);
506
глава зз. техникёoптИмизацИи пoдЛинукс
l{еyд]rвшe.nьIro, чтo Wiлdorvs тaк тoрпtoзитlЧто6ъl пoн'lТьoчcвидrro€ ,пaрнЯпi из Мiсrosolt пoTpeбовaлoсЬ Двeoflеpац{иуM]ro)ксн!rЯ] две дeJrенияп двe сЛo,сeния,итoro: шес,f],ol1epациii. |IpoBеРим,сi1o)кeт лп oптиtoт3aтоp из6аrlIться oт пlусoРнЬпoпсPаций'пРсдвaРIrтелЪlrо пеРеппсaвкоД тaк (JltlсTинIЗ3,17)' л'q'B.
зз'17 ' неof,rиМЙзЙpaвaннь|й кaчдЙАaт Йa aл.ё6раичeскoe yлрoцeвиё
sLruсi сs{]nt х jnt yi]
t ( r n ln ,)
st.uсtсs сs: у=((сsy*3) i - ((сs Х * 3)
с5}) / 2l сs'Х) / 2l
l Kоп{п]]ЛятoРпsvсuЬi6Р
ся rQl't 'тoм 'llе|1olIятrlo. oптllNirlзal!Р Л€ г ко рaскРьIвaе,r скoбки (сs 'у*3) _сs.yl llo /lа, ыllс ],Toгo ОIl пe идer, пoсЛynlпo вьi'].'JJlяя бе(спll,tс.ltсllltуlo oJlсpдциIo сs.yi,2/2. и TуТ)](c' с],()Bliо oдyl''а|llЦ|lсl,l llpllllудlt,|сJlЬ]lo o6}]YЛяcT pсгrlсP ЕAX' lloзвра|lliul к()l|с1.аll1||ьlй ||()J|Ь.су/lя ||1)в(!lиу' Pсзу.l]ь1.1l,г ]r}lра'кclllI,l вЬ]ЧItсл'г с T с я к o ] \ t п x Л я ' Г о Р o Nс|| ц с l l A с ' Г i u L l | т P ; L J l с J я I L | | l l.I o о | l с Л o L ] 1 к l)l с р с l t l i l o l ( , I l l N l вoспoJlЬЗо3а.ll,ся (JIllсTrпl| 3З'18), листинr зз'18. 3aгaдo.]нЬй кOд/сгеHepирoваH!ыйкоMnиЛятoром vс mоv eal, Icsр.aг!_0:]
2
( б0з yчстa3 ака)
п p е 0 о р а з 0 в nа вт Ь О Й я оз eн а ( о в 0сел 0 в 0
:nl=21
кoмrrиlЯToP iс] вьr6pасьrвaст пlусoрньrli Irод пoлIтостьIo' геIIeРиР}Я чс(Тный х0R ЕАх' ЕAх.a вoт 8сс вoo6rrlене вьrполпяeт пшraкпх ynрощсниiiI oднаIiо lforv Iцествo 1сl о.reпъпере;rrепчllRо.вoзьNiеNlTаIroйrrprrпrсp(lпстIтнr 33'19). листиtlг зз.19. Ецe oдинкандидат HааЛгeбpаиЧeское упрoцение {
507
'
х_n.n y=n+n rеturiх+y-2*n+(n/n); ) казаJtoсь 6ьt, ч-t,oв нe}l слoжI{oгo? кoмIlIl.цяToРьImsvс 118сс вLlкидьlваio| всe' крoI1сn/n]oстaв]lяя сго нaТоT сJ]учaи'есJ]l.I tlеРеilleПпaяn oxа,{l]тсяРавltoll11уЛIo' llopазЛтe.rlьrlo,Ito iсl вьIпOJ'I]1яeт все въГIl'сЛеltия це.I]l1ltoill' Iiе l1poи3воllя t1llt{аких ynPoщсни', Т i ( ' l м o 6 p : r з о rлl ,ь , | о , | н Р | l ,]P. | | , 6 р i | | Ч р . r nv\л l , n | | . e | | | | icIe ' ч r , 1 , , , п l , ' , J j] Пeпpe/цскaзyе]!1ая oлеРaцIiя' не }l&1ейтесъ'что к()]vlп],lll'lToP вьп1oJIl1и1 rеза вaсI
УпPoщEниE A,IгoPитlvlA наи6oЛъ1xий пP,lPoст пpoи3вoдUТcЛьнoстrIдaст иilсrrIiо a.flгoРптrj!шсскnяoп. I l N l I l J|"| l Яr n J | ' o | | N'| . | J ^ l ' | |.'Il J , L | p t i | , o d' o iр]' ' I P o o | . ' j | | : r ' ' р ' , ' P o 0 | . y в . , : l L . lсап{rl).гIIша(oй коiJ]luJlятop с .',|lllll IРaBuтЬс,Iнсts сoстoЯппп'Irо lrсякo}lсЛy. paспoз]laют Час. lIoка' Ilо llср9Ьlii ]rrаl.уrrс o/Lе]]Ut.сoBPсNк]Ilxrnскo}1пrJЛЯтoPьr (l,l'rи' lю кpaiirtсii мсрс' llln,|^lol.с'lpilсlrc3]1iLTЬ) сIrысnoвy]o н arpYз(y тРa нсл trpу. с]!lofо кoдa l'l Лрrl llс06х()llll\юс,гIlзаN1сяяIoLllсхо,цllЬIiiilлroPlП.rl дРyгlj}1'IlаNirlo' гo 6oncс э(|)q)ск,l.I.Iв!tЬl$l. BоT' наllрlIl,lср,ЛllсТIlllг 33,20, лxбихгзз.20'
кaндидaтlэ упрoщeниe алг0ритма * * v ) п r аn ( ] i t ] r , с l r { r . { nljа=0i ntb-0 i O | ( i . 0 ] < n 1 +)r а . + / / в | o г 0 { n i r т !сOnсо я 0 l и.0 ) т 0 t и l 0 м l 1и]1 ] гO|(J.0 jq]: jt+) lr|+ ) l1Ля .lеnoвскa очсвидIlоl чTo эTш lto/l мoЛnro заlЛ.|oаTьTак: n*n Моii Jю6xl'лnii лlsvс Ilм1-'ннотак IJ xoсTупaеT' а вoт icl I,J8сс llaк])учIiвaюTцtlt{jlЬI}IarrаPдаll,
испoлЬзoвAниEnoдвЬ|PфкEний хoрolrпre oп,ГllмизaтoръI I]I'пtoI/цaIlе пЬгпlсЛяloт 3llачrl]ие о,ll1ol.o I'1'ГOГo)ко вЬl. _ ()6рaжения tвая(дьI. Paссl{oтриlt сJrедyloпlllii прпN'e]) (поllвl,lpа}кеllrrc (х*У) !tee)l b - х*t
п
чToбьI LIзбaвиться // t = х*у: а = t + ni // //
/ / в ь p a l е н и е( х * у ) y я e в с т р е ч а л о с ьЙLх , у с т е х п O pв e l e н ' Л и с ь ] от лпl]Jfleгo у]!л]о)кel]ияl эToT l{ol1lLеo6ходIINlo ]1ePсписа гь тaI{i в ! ч i с Л и r 5в l p а t е н ' 1 (еr * } ] [ 3 а п O l | и l ь p L . з y л Ь т d т Лодстaioвt(а!)r1евьjчисле lнO|r]з laчеlия л О д . r e i o 8 к laf i е 0 L ц и l ] лl .е i э Й ч . м я
AмсPиl{aнцы ]rазj,Iвaют эю цaaIенuеl|uЗ6ьl]]1oц1ю.'и, (rеd Ur]dаrrсу e]jшjoatjon) иJot
(Shа|eсoл]Лrоn нur'vо6щuIвыpaжеxufr sLЬехрress]оns),
508
глaвa зз. техHикаоптимизациипoд линyкс
Пo',rнoе yla'rсrrис lrз6ьrтaзнoстtl (Full Rеdundапс! Ehminаtiо1\' coКpaп\еНнa FRD пPедпo.]iaraет' чтo сoвпlе в осPaжeпия пpoшсхoдитTo].lъ].o новrъIx iryтях Фath) rrьlпoлIlеrпiяпРoгРa livlь].Bетвлепltя ]lРrt этo}1IrгI]opllPyют. ся' чaстичltоe yдi],]еtlt{€||з6\||aчяoс,|u, (Pаtl,hl l(!dundаl1с!еliminаtiоn, с]КP|I|1\еII' нoPлt.|о\в | | s t r P IB , L п р o l l , x \ | | Ь i i . n ' к , l { - ' ' v l t ' . Ь ' l , B 1 'н , ' i | , I а , . Л сrrарynol.To eс,ъ чaсrЛ.Itloеyдajlerr1rei13бьпo'пкх:,r'll Yд:r-qястиз6ьrтoчпостьrrа. rry1.Ь.чуть rufloroлгIIпe' чем поJIrrоe'Ioтя пРl{ пoлЛoNlI|p.)I.РaNlI]a к()i{ll11JIирус'Гся 6ысц)ee' Bо,I Ti1каяUoT,гeр}llllюJ]огичeсlilu] II!Tаttlrца,Bся закавьrкaв тoriI'что вьг рtl'(еlllrе
с ЛРI'll.AДеirIIЬIN11I)tl]!xjроIlollll u]plLв'ЦЛl0l.с'l Jlс].l{o,нo ДaBайте за/]aчу' пp"дilJlo).llв 11м кoд ttolLсtlсLа суrI}lЬI сoсeлппх элcl{епTоя п{aс услоnolllм сивn Ql!с'|rlliг ЗЗ.21), лисrинг33.21.
nример снeoЧеsид|roЙpaзбивкoйнa пoдвыpa'(ения
/ * s L ] пn с i 0 i ] r o . sO г i J * / 4 o v r n - o [ ( r i ) * i ]1 J I . J.Lli loit " аt]'п * ill Гr!.t iiii*i = ! p r d o ' | l' l о f t , . ] n h t i sш ,tIаlк: для чс,повска rrс ln'L,I)lа O'Ioв||,ц|lo|Ч1о сГ1) Nlо)к||o IЦ)еnI](а1.I) rl'llс/llvк)IllI.|N( o 6 p a з o м ' с o r 1 l l r , L r l rl Lr r ' . ' r r t t l l ) l ] тoBl iI)с l ] а ц l I i iу } 1 I l { ) , ( ] | I l |ся l l с 1 ] , J р с х/ ] o ( ) j l l | ( ) Г o ('l||'lс. Iи11| з:\,22)' листин.зз.22'
лoлHoсrЬюоПтиМизирOваlt'й вариант(рyч|lаяOптиMизаqиЯ)
]nj. i*n + j // Vаlt]nj n]: // uр = do'п - valtrгj + n]: // ] е t ' L- v d ] t ] n j 1 ] // .iglrt . vаlt]nj + l] // sum = uр + do!п + ]еfL | Гr9lr."
O]LrOili]тнO п tач и с п c l [ 1l .]l 1 0 ! r l d я е П Й я Й 3 б i L t Л е ПLиrе и з б а в л е в и! яr О д в о г ос D 0 и е н иияl Ц П O я eL l я и з о a M е в и еr r т о д н O г oс Л 0 я е н иия, ф t O в 0 l и j ] и з o d в л е в и e . тО д l r о г n l - i о ц e ! ии!! п l о п e l u
I(oмпriлятоР
DsvсуспеIlI'Iо JЦitлII.п.IIIlluпeс вLnPaжcultс i*n' llз6авпв'lIись oт ol1l n Р | | р o в , r o н o , | Ь н o| \ V J н | | Ьl l | | N | е J Л r l , , | | |ri li j l , с U | | . l,U|.o у \ | | | o ^ ' ' | | | |,n с' 1 PавдьIвaюпlIni вoз"llаIaеl'ьIх нa r]егo ]lа]1е'кд, Ana'1ol.]Iч]lы 06Разlrм пoступил ll8сс. Егo oсlloпl]оii r.оlпryРelIT - iсl _ хо1.ь ll сo]rPaTиJllto-цIlчl]с'гвo yrJно)Ireппli | а п ' I n в l l | | \ , l | i | | r ] ' и t ] U Ь i t ' U | . I l , I t , \ | U . , r l l i i , о Д , , n о , I q l l | | || :| i | | e тв е ' ь в ь | и Г . Г L ' | U ' , | ' ] | | | | \ | | | J а L , , | | , к U | on' в' o | ч . l r r л o , l n | Ь ' \ п Р | | l ' ' l , U \ D | , l , , | | l ov ,' p . j | ( , , | | l 'Ь | | , , ' ' я / , i o , I l L , I n t o . | | | . ' ' , , l , a ' ' B | , . t ] . i I l . ' I i ' ] l ' l ' , I ь , | ' Ц , '| , Г w . гpам]!!]1с,гlюJDке] l вьltlo.lrrlять все rrpсo6разoвaнпя саlloсTоятenьlIо' Пo l(pаii]1еii NIеpe']lе()6хoДrllloдoбиTъся, чтo6ы всосoвltсстнo испoJьзyеi!{ъIe въIра]]сell,lя]l ltсходпоN{ тeI(сTе l1рисутсTвoв;Llll1 в яtsrrоr1вt'дс,
509 Aкак o6стoят дe.naс улaцellие'l частllчiloli ]rз6ьIт0чн0сти?Boт' нaпpиl{ep: п i f ( n )а = х * l + n е l s e а . / 3 I(oNIпI]IЯтoPпlsfс уя(e lte спРаRJ.rяется генePиPYст две oпсPации уtrttlLl}ке|l11я вмeстo од}тоii, A вoт l.oмп],InЯтoРъliсl rl 8сс пoстуflaloт пpав]т'llЬнo'вьIчllсляя вьrpая{errиcx'y Bсcгo oдЛlt раз.
oптиlvrи3AЦиявEтвлEниЙ/вRANсн Beпвnrм,в (hlnnсh' o11И,кe!слadbrc/6езцCloв1Iъ1r nсРехoaьl) o7t|ocя1cЯ к |bу|II\a' мlэ11таЛьttьIпl oснoвaNi Л](J6оIo язьlка' 6ез котopъIх н€ о6хoдится нu oдна llрoгparvг пra,,rаrкс <.hсI]о,rvoгlrll>|tsеДь rrьIхoд lIЗ фyllкцllп mаin э,Гoтoжe вeтвneltис ' пус. кail п неявнoе (нo uсдь 1lpotl".с(loрсиtIтакс]tс()lll язbп(alle лрoпедеlIIЬ|). A сколъIrо uепrлeIrиil сoдсP)кl1т сaNIaфуякцuя ргjrtf? A 6и6Juo1.еl(a вРеi$еlIП испoлrlrния? CyпсPсxaЛяРltЬlс NlикрoIrlоlк]сс()1)ьl' |loс-tрoепllьiс lro кo]JлeilrPпoiI aРхIIтсIiтуPc (а всс сoврсNrсIlIll'c NIl]](poпРоlIeссoРьI |iNlellпo тalt ]l устРоellii)' 6ьlсгPеc вссlю вьtпoл}lя]0I ЛUIlсiil|ьIй lФ]t l] |leJlаП!l/LяTIIL'тrrJс|rlш, B Лy.|пlсм слyчаe ouI,I дс:]o. Pисtlтl]pyl('Г lIрol(\x|(I)' сneгкa ilрlIoсTallllrлшвaя вь'пол||сilис пPol.Р;tNl^lЬl|в хуlL. шc]!] )кс _ tюJllюстl)ю oчиlllilloт ю|llrеiiеР' A lln послс,1ll,lх Рcntirlп]'ах oll oчcIIь дJlия|ll,lii (]l o к tqloii ](х]JlсдуloU{еii Nl(,lс.rJЬI()с1'аlIo|lиTся l]сc дJlиlIIlсе ll lullпlнec)' ];ыcтpo сt]c l'lc зllflo.JIlll.lI|IЬ-'l]а эT() Il())к0T уjilll nc oлlla с01.Ilя'j.iLIс'Гoв'ч'ro вЬlзoI]0,гo6ва]lьllоc IlitlLсllIlо tlрol'lзRojll] l(JlЬlюс1.tL' oIl'IllNllJз!l]( я l]оРсхo,'loIJ дAс,].зIlnЧll |.c'llьIlЬIjiЛl,llл.|)l'Jl],осо6сIIl{o ссJlll ollll рi]с. lloJl0}l{сlJьl ]]|ly,r'Риlllllсl()3 (I{с'rа1.'1юl]oPJl| ]LllкЛr)I_ ),I.0'гс ,iс сa]!т!nеIlоPeх0дЬi)' ||()этoItу каlrCсTl]o кoм|IIl'llяT(Ц)il lll] ll Il()с'llсlltIl{)lоо'lсРC/lЬ оlЦ)c/leЛяrT(я el'о у]tjcя о1. Ilс-ll}Jlсllll ii Il исм l Iо'llIl()с'гьIо l,ljil | Ч i]с,L.l.I ч Ilо 11збal1,'lя'!.In]
вЬIPAвниBAHиE пEPЕxoдoв llpoцессopЬl, oсltoB^l!llьIeIla '/1рaх ]n!e| Р6 ll АМD K6, пc тpe6yют вьЦаBrlиBa. l1ия l1сPсxодol]'зa l.lск.1lloЧсllltеllt Tof()сiуЧilяl It()tДllцc'ltс]raяllllстPукцItя ]'tJI1l сaN1a
| , o ч i r | | д]]. P n \ U l , р J . | ] '| . | | l r ' , | | P l | | | | | 'l .l | , ' | |. , l l ] | ' l i к | | | . I U J : l \ | ' в P l ] y J L J l . lllэгo Ila6люДaeтся зrI1ч|lTс"1ь}1oc Ila,]снlс IlPoиз1]oдптe-l]ь}!oсти. нalI6oJьIl]иii УпIеРб пРпшl IяIoT пeрeходьI, rlaxo',tяпlrt{rсяп цt lt,]Iахс l{otfпактп ь]м TеJIоN|],I6.)ль.
ш Nl уpoвlleпl в']lo)кeIl'tя, 1Iт()6ы llадсlll,l,i llрoI1:lвoil TeJIЬlIoсTп пe llроllсхoдl.l'no' l]е]lоToрьiе коNiпllлятоРьl Ilpи6сlа1оТ l{ вшрaв]Ll1вitlll'llo' РaспоЛaгiя llIlсTрукцlIIl ]lеpeхol]a пo кРaTlII,тм aIIpесам, и запoлпяют o6pазуюrциеся дь]рЬl ltезl1aч.lщrlIrи и11сTрукциямll' таXrlми кaк xснG EAх,ЕAX (oбмсн сoдсp,кllllоl.o PсгисTpoв ЕAх ilссTаllи) lrxи |40v ЕAх' ЕAх (IiePесьIлlta сoдеp}кUпloro ЕAx в ЕАх), этo yвсxичиваоT paзllсP к..oдaи нескoJIькo сни)кaeт eтo пPol'lзвoДителънoсть, пoэтorry 6eздyl'нoе (o]rо )ке ) вьlравtllttsаlIие Toлькo вpед1lт, Лrrкo поj{азать' чТo juаlrиrrншr кolrандa тpс6yсT вьtpавнива1lия в тсх и тo.пьlro Теx сл}чаяx, Itoгда yсЛoвис ((addr я сасhe']en + sizeоf(oрs)) > сасhe ]en) стaнo. pазмер л rlеI:iньiй аДpeс ипс'ГРyкцllи, сасhe ]en в'1тся llстIт]lпьll!, ' здeсь аddr
oт тппa прoцессоPapавrlьIiiз2, 64 irли 1286aй кэ '.лиllеih(и (в завпсrrмoс,ги
510
глава 3з] тeхникаoптиМизации подЛинукс
тап!)' oрs - сarIa мarllип]lаЯ иliстрyкция, I(o.nпче(твo вЬIpаlrп{ваIоnпrх6аilтon ,len (аddг: сaсhe ]en), PaссЧI,Iтывaстсяiтo фoPмyл€ сасhe ],I1'е+Iнo тaк поступа1OTвсе пPоlраlrilllстъIl в)адеюпlие язьп{ol1Aсссм6лер' A(сeм6jеpl1lиlo1' н() To.пъкoпе кoмflllJтятoрЬlI NIsvс и iс1вoo6щe не вьц]аB]l]r!aют перeходoв| а 8сс вьЦaвнивaeт цеЛeвую lltlстрyкцию на ф]1кспРoвa]]]1yюв€ " ]]и. чи]]y' крaт}ryloстепени двoI;ки (тo сстъ 2' 4' B,,.),что яв.]lЯстсякра'1rrо]rеэффеr(. тIlвнoli стратeIиeil вьIРавril]вaIl]1я; oдн:lIФда,rе ]т.noхаJI стрaтегl.lявсе )itеJ.lучшс) ,I,r\lсoв."\l|,lIl.а^ol,T{flcгj,l,Еopс,||]\,;l,,о,о,IO,|,ol|l',',еьо\||
| | ,ч | ' ' J L п | . t .
x lсl гelreР[Iрyют неyстoiiчпвъпi код' Toчнсе кoд с <(пJraвaющril> пРoизвoди 1ельнoстьIo' б!rстрo,1ritствt{с котoрolo гJraвIrьIIf обpaзolj ijaвlrс]lт oт тot.о! рirс щеrIляются 'lи 1."tу6oко влo)кс]lньIe пeРсхoдъI пJ],I IIе1,^ эт()l в своro очeрrдъl за tsис'f oт ]\flJо)кесl.ваTрудlю llPo]]lозирyсп{ЬIх о6С rФ]ТсЛьств' вкntоч:tя {)азу.[уlJъr j1 I{o.llичес1.lo осaдI{oп'
Уuитьrвaя' v,t.осрeдпяя д''r'нa х3G.иIl(тPvILщ]ii сoсTau.lяс,|:]'5баi'iTа'цс'псс()о6. Il€ P eхolLьl пo гРа1]]']IeчетьiPсх 6aiiТ (x-'JIоч-fа,ljgn Разпeе вссгo вьlРав]]].lвa1I] j U m р s * 4l i o l п l , Л я Т о p a 8 с с ) . I { Л ю ч ' f n o . а , lj g n . j u m p s( l ' l Л п : r к в x l a Л е l l 1 l l r n iсi i l у f а ] j g n . j u m p s = 1o)1 т ' l l ] o ч а евт l , l р n в I l l l l l а | L l rI { ]Л' i о ч . f а l i g n . j u n r p s =з0а , . ( ( ] i ] с 1 ц . c ; nьЦnIJltиJrаlrrIe l|о у}к)ЛчаJпlJo'illJ1o]!JxT||L].сInJ ]]ьi6lrрrсj\Jo€ к(Б1lll'ЛЛ-r(]ln)i}l Л За lJ]lсlli!кх]т!I
o'J. Tl'llIil llpoцесСoРn.
Фo1)l{Улa ра(чс'Iа ol||llNlll'1!Jloii ]iРr
l о с Т I l l l | ' l p ; l l r , l l l п a J ] l l , ]д ] | Я | l Р o I l ( ' с с о р l ) l l o ' |
I l l L с ]P e ] l t i u l цI [ ) l i r п l c : i г ( ( а d d . l с i r с r с -е n l s r / e О | ( O D s>) )с i ] с ] ] c - ] с r oI,
чAстичHoЕBЬlчислЕt|иЕyслoвиЙ зJIсTя1..,(вll rL1)OкoдIl'llа oЛпlI l{nlnPlrTIiJllii' ЛрvIoii lо'l{с Il.l с.]Bсp,t' rrоl хopо LJlllii ЛР}'i1сР Tirхllrl]tJ16t,п:пpolо 6ц'lевоzo u,t,ttlt:ltе]1lr'l(ц (|t1lц1|оеoьlц1Й1(nш, цс' ]o|зui ' Рafl,iа | е|)аll|||iЙ] оl l rst ф nl j|,iоns IIJ|| 5h|,7 l]nсln'?8 ' O )6с1rrс]п l(,' rlr 1Чс ) г o t r 6 ь l ( | 1 . P O r o 'в п e м r l o T . l ] ( j ' l l l l l I o Р в o е l I J l l 0 с к о j l ь к x х усiоlltliil свя:lаllньIх опeРаTopoN АND' Jl()'{rlo (Где вlU(с'lIlr kЛа,црtl1rjI,Iхкlrо|(oдIr",l()i]?)'oстxnInlшo !'iс tIс ]lьltlUсJ']Ioтся, Lo()1.вcтс].llеl|||oj oс.nп lre])!oс ,tз llк'кoJЬJtllх vс.]]оnllii] связаlI. ньrх о]|еpll,гоРolJ 0Rl ]lс,гIlнrI.]' trь]чrlс"!лть ()сTaxЬЛl,lе liсТ ]iY'r/(Ьl, I,I э.Го ()||lloдЪ Irc своисTв0 о]lтIIlrп]laToPit (кaIi у rвсP'{дax Л. IIсl{oторьlе Pсrurir\l IIЬIс 6\ц-пеl.ьr)1a тре.
6oваrtисязьatz,6ез кoтоpоroBсTвЛerrrIя вuдаj f (х && (y/x))6ыJoi6ы ]tсвоз\'';lr{.
IrьI' пoскotrrькy вьIrluсjIЯть зllaчснIrс пьЦ)iDflснпя у/х Iloлnlo Тolда rl ToJr,ILo,Гогда, кoIда x=10' тo есrь вЬlрахеrxlс x пстrlllнo' в пpOTllвно[I с.llучае пpoцссс.rр вri6рo сI]т исItJlючениe и вьIIioлIreIIиe Jlрoгра]vllЬl 6уДeT ос'Iанoв.l]снo. ПoэToмy тa]Q' сTpaтеr.ия повеl{сния сoЦ)altястсядахe lIPи oткЛtoчсн1rоп! oпт]1NiIlзal.opе.Bсс ТPIr Irасс]!fа'гривaепIъIх к{lNiп]1ЛЯторa пoддсp,кIlвa1oт 6ьтстpос 61.лeвo вьiilIlсЛсtIl]е, ЁсЛU Rь]р {еJiиe (a : b) пстиtпlo. вьiрФкенпe (с : d) у)кe Ir€ пpoвeрЯcтся] (с '. d))'' i l ( ( а = =b )
yдA,lЕниE и3БЬlтoчнь|х пPoвEPoк Heбрeжнoe кoдирoвaнIrе чaстo пPrIвoДит к пoявnенIrro из6ьIтoчнъlх LI-Iи.цфI{е зaвeдoмo Jroх(ньIхI]PoвePoкlполIlостЬrol]ли час,Гr1qнoдуб.]1иРvIo1цI1х дРvг/]рvга,
511 наxP]rп{сp:jf(а > 9) ,,.if (а , 6),.,,o чсвиднo'чтo втoраяпрoв..pкалlтrпняя,и iсl 6лaгoпoлy.rпo еeудivlясT,oс1a'1!нъIe коNIпиjIятоРЪr тaкоii спoPnссl'aтрllBaeмьIе собносTьIolIe o6JlaдaюТ. пoслушrrоIеI]еpпpyясJLедylOщи1i кoд 0reоптпrv!иlJиPoвaяlIьIii варlaнт): r f ( п > l 0 ) d + + ,е l 5 е Г е t u . n 0 i i f ( n > 5 ) d + + е l s е . е t u Г n0 if (п < 2) d*+ else геtum 0
|| | | з a в e д o плo o 3 н а яп р 0 0 € р к а
и oптIlN!изирoвaнньtивариaнтi i f ( n > l 0 ) а + - 2 ;о l s € r € | u г п 0
yдAлEниЕ пPoвЕPoк нyлEвьIx yкA:!AтЕлЕЙ ПpolpаNiпlltсTъ] Дo сих пoP нe Nioгут oпРеДeJtrlт'сЯ' ктoдo0кe]] oсуществЛЯть IIРо вepкy aplyпIс]1тoв. вьrзъIвaJoпIaя ЛjItr вЬIзывaсмая фyпкt1ия' Nlrroгис стандaртьl кoдир()вaltn' пpсдпrIсъIвaIoт вь]поjlIlя'Iь 1.акуlo ]IРoв€ Р кy o.)с11M(nи(l.11нг ЗЗ,23)' Листивг 3з.2з' HeoптиMизИpOванный вариаHт f] (int *р) / / п p о s е D кldi , 2 ! о ) { с rб l т ! l д а Л € н a к o i D и л я r r r р O ( , / / r a 1 3 . к l r Й r p 0 д ш е с i в 0 3 а зr rааr l и С ьп Oy к а з i ] r e n t r r i ( p ) Г е f u п r * p + 1 :с ] s ' " г 0 t u г n , ]
i
/ / n р o 3 0 p l а! 1 / з а п и сrь0 y ( а з i ] i с Л o ] f ( р ) * p - 0 1 6 9 e ] s e . r | U . n. l :
l Лишflltс прoBeркп уBеrnlLrI{ваlo.Г pаз]!tерI('lll,l iraмсД,IIяrоT (oс(). eI() l]lnll(),rll1cflи. 6снIIо eсJIл ]lаходя1.сяl.лy6oкo п цпкле)' rrоэтoIIY к.rNlпlrr|'1.()p 8сс лоЛле!){ll. вaeTспе цЛа-llЬIrыi] t{'цloч fde,]ete.пrll.рointrг.сheсks, <вЬIчlnцalolllrlй>rtх llз llPr). г р а i l l l ь I , в с я с о J r ъв ' Г о м ' ч т ( ]х 8 6 . l l P о ц с с с о p ь r( к : r кr r 6 о л ь л п r l r с r в rдl р r г r r х ) н a аIInаPатноNlурoвпlj о1.с'llсживаюTo6l)arIIelпxl к llvJс!ъI]\ yкil:lir|сjl'i\lj авTоN{а' 'r.ическшвъI6рilсьIвая eсЛllTaкoсо6paп1elrrrеl(сilсTвитеЛъпо пРoизoш-'io, ПoэTоNIyrсЛ!Inрoверitе пa <.Леги.гllмнoсTь> \II!aза,|еJяrl Pсд]rJестnv. eт oперацIlя Чтellия/записи пo этоMу vкaзаTe.lю' э,Гу lIрOвсPltv ]\{o)кнопе вь]. полпять. Paссмo1P!rl! Jrrfст]lнг 3з,2з, сначаJа пpoхоДuт llPoверILа ука3атeJ1я (пPoверкa 1)l ]]oтol1 в него запilсьJвaеTсЯ чllсJio 0x69' rr yказатeлъ пepeдаеTся фyrп{Ции fl' вЬtпoJ1няюrцeйпoвl.oPную пPoвеPку (прoвrPкa 2). кoNIпиЛятоP видuтl что втoрaя пpовepкa oсyщестI]ляeтся yже naсле o6pащенuя к указаlnе,IJo (eстeсTвеппo' чтo6ь] сlfу этo yвидet.Ь' фyнкцxя fl дo"'rn{на6Ьi'гЬ вcTpoeна илLl дoЛ)кеп бьtTь задсйствoватr ре'кfi[] rjl06 ЬIroй oптимизaции). кonlпиlя. тop paссy)кl{ает тaк: eсли олерaция t1Pисвоенrrя*p = 0х69 проходrш yслешIro и пpоцессop не вьт6рaсьIваетrlсItлюче]lияj тo vкaзаТеlЪ р lapaнтиРoвarrrrо нe рaвен }lyлю Л в пporrерке нет llиI{axоi1rry)кдьl,Ес'.Iи ?xс укa3aтеJ]Ьравсн нy,.Iю'
подЛинyкс глава зз' тeхникaoптиМизации
572
Тot.дапpп o6РащeIIи' к нсму пpoцeссop вь16Росr]тискnючеfl]тe и дo lrpовeрки дслo всe Рaвнo нс дoilДет' Taк 3arlell niе тоrда еe вЬтполнятъ? кolпиnяToрьI ]nsl.с ll iсiтa].оIi т.rхнrtш!oпти[пIзаI1llll]te пoJl]1еР,к!iвaloт'Прaв. ,xa'в pс:кrtlIeгло6altьrtойoптиllllзaци и iс] ]\loжетyДa-!ять]reс]ioJlькопoдpя'1ll/lу. ДоBоnьIroчастo)' пo. пlйх пpoвcрок (прп встрапRaнпи фy ]{цuii этo I1Ро11схoд]1T poвeРокi l l J tя llз6ыточнъrх Tех|IпI{lудil'rсI скo-llъlrуэToяIlJiяетс,lчаояъl]\f сjlyчaс]!1 с'{.указnтеjю/ oдяaкo спryацrtю
сoвlt|EщЕllиЕ пPoвEPoк сoвNIеlценIlс лPo!epoк oчo}Iь Iк)хo}кe lIа пol]Тop1loе пспoльзоваtlие поr'lвьIPa'tс. пIrй: ссlrt oдllit rI1a )flс rlPoвсРка IIPllсyгствуeт в ДIrух llnl| 6олеe iuесTaх I.toтсyтст!УloT IтaРазит]1ьlс 3аl]IiсIlпIoсTll ll0 il;l]lllъl]\I' всс IlрoRеРl{п ]\]o'rнo o6ьeлин11ть r r o Л I J y ( Л I I с т l I l I г п3 3 ' 2 4 и : ] з ' 2 5 ) ' либингз3'24.
неоптимизиpoванiыйваpиаiт' две пpoверки
*. АМ0) rf (сPt],-тY|,|. x . A ц D - l 1)( } х - . I N г Е- |г 1 ( t ) i ] г ( с p U - l Y P.t. A Ц D ) n = дl']]-l2iD) i а _ ] l l lL L l ? ( b ) тoлЬк0oднaпpoв€ р кa ваPиaHт, ли.тинr 33.25. oптимизиPованньЙ -(сPU-тYPЕ '(О // rОr OлHirпPoв.Plа 1l Al]l)) {
х = А | ] Df ] ( y ) ] a =АMD-fZ(b)]
l {
х = INтILf1(!) d = I N т Е L| 2 ( b )
l из Bсех ,грсх кoмjlилятoров
сoвi{сщаTь прo!еPl(lr yllест ToJlьl(о |сl' да l11() ше
сoкPAщЕниЕ AлинЬ| МAPшPyтA Если oдиll yс-'ioвtlьIlir1Лll6flyслoвньIй псpсr(одуl€ з ьiвaет на дРуl.oii безvс.noЕ. тo всс Tри рaссl{aтривaсNlых t(oNlлплятopаaвтojilаTичeсIшпоРе. ньI]i 11ерехo,ц' iraпPaвляloT ]lеpвЬiй цсЛсвoii aдрес I1апoсЛсдl1rlii' чтo Ir дeмoIrстPирУет сЛедyю' щr]ii llРЛмep (rистиIrг]1 Зз.26 И ЗЗ.27),
51з лисгnнг з3.26. Рeoл'/ч/з/Poванrь;вdola п E]tO lаb 1
: // пeprхOдкieт{е ]db-1 а бeзусЛoвныЙ пeрeходкПеrке]ab-z
gOtOlаb 2
lаb-1
( heтке]аb 2 : // пеpeхOд
iuь-z. листинr зз.27. oптиМизиpoвatный вёриант goto ]db-2
; // срaзупеpexсди'l к rтке ]аb.2' Dинyя]db-l
gоto ]ab-Z
]ab.1:
i // neр€ х одк шв'кеlаb-2
1uь-z. PазyмеeTся' oпсpaтop gоto lle o6Язат€ л ьllo дolDкrн IIPис]rтcтвoватьв пpoгрaмм. tloм l(oдe B явtloill видe, а впo.ltнс моrrtет 6ьrr.ь <PaсTsopен' в цикле (листинI
3З'28).
лис'инr 3з.28. Heoптимизиpoваяный ваpиaнт / / l a b - l i f ( l a ) g o t о] а b - 4
{
|| 1ab-2,i|\ h) goto]ab.3
\,лi]e(b) {
'/ /* пeр€ x oдна оeзyсЛoBн6Й пеpехoд
/* (0д ци(ла */
]
'//
gоto lаb.2 gotlr ]аb-l // ]аh-з t/ 1aa-4
)
Лoс'лe oптпмпзaци и :'lтoтtсoд6yдот вьtглядeтьr.aк (лиcтиllг 33'29)' лисrинг 3з'29. oптиMизиpoванньLй вaриант
// ]ab-l {
] }
*/ |/ 1ab-2| jг (]b)9OL0 lаD-1 /* oлrии3ироsaно
rhiIe(b) { /-
' r (|a)gotоlаb-4
l]0д ц'lкла
x/
q о t оl а b 2 // / / ] d b - з : g o t o] а b - 1 // 1ab_4
Aналoглчньrм спoсoбoпr oсущeсTвляcтся и оптI]мизаuия услoвньry'6eзуслoвrrьIx пepeхoдoв| yIQ3ьIвaющIIх нa Другoil yсЛoвпьIй пеPехoд. вoт, пoсмoтpиTe нe. oтттип{изиpoваtlпьlиBаPиaнT: j m pl а b l ; // лrpeхOдва усЛoвнЬй reрехoд lаb-l: jiz l db_2 И oптимизиpoвaнньIй: jn, l аb-2 l а b - 1 :j ' r 2 ] а b - 2
514
rлавa з3' тeхникаoлтиМизации пoдЛинyкс
ЗаметIrru' чтoв сиnу oгPaничeтrнoIi <дaлънo6oйнoсти} (с]\{, paздeЛ(Tpансляция i{poTltихусЛ0в11ь1х yсЛoвнrnхпеPсхoдoвв пeкoToрI'1х пеPехoдoв>) случаяxдЛи. ]ly цепoчки r1Pиходится нетoJ.lькoуN1енъrxать| Ilo Il yBелиЧиlaтьl
дyющeпlyтРюкyI
пpи6е.аЯ lс сЛe-
УсЛoвtIьIй и"1и6rзyс'roвньI!'iпеpeхoд| укaзьIвaioщпй нaвьlхoд из фуIJкции, всe. митрепи кoмпиJrятopaми зaN!eнясTсЯна tlепoсрellствeнньrйвьIxo]1изфyн]сции! при yсЛoвии что кoд'эlтилoгдoсTатoчI1oмаЛ и наl(ЛаllпьIepaсхoдьi нa егo;1y6JIи. PоваIlие пeвeЛики (Листи1lги 3З'з0 п зз'31), листинг 3з.з0. HeonтимизиPованный ваpиант f(iпi a, ]ntb) { {
l
] i ( а - * b ) b r € а k | / / у с Л о в н !пЙс N l о д ' а r е L u г nа
l листинг3з.31.oптиl'iизиpoвaнный вapиа!т { l l
r. (a.. b) гetuгna] //нrпoср€ A сraеннiЙ |oIUгn d
)
ytt.lЕнЬulEниEкoличЕствA вEтвлЕниЙ Bсe трtl кoмпrrлятoрa прoсмаrPl{Baют rrо]1вI]o1lскaxyслoв1IЬlхIlсPсходов' пе. рeпрьIгиваtoщl,It чel}e3 6е3усxовньIe (соnditjona] Ьгаnсhes ovет urrсоnd]t]ona] Ьгаnсhes)' и oптшlлrзщ)уlo'г их: инвrpTиру Iol. yОroв н ьIii пеРеход| псренаце'llи. вaя его нa адPeс 6eзyсЛoв}ior.oпrреtoДal а сaм 6сзусл08шЬlii ]lсреxoЛ удаЛяIoT' yменьrnая теNIсаn ,]м ксlлпчeсTвo вeTвлен]fй I]a eДиницy' llеoпТиl"i'1зl.lPoвaн. i f ( х ) d = а * 2e l s e g о t о ] а b - 1/ / д 3 O й в овee т в л е н и ] fе - . . ] s e lab'll с-a*10 И oптимизирoвaнвьrй вариантl ] f ( ] х ) g o t ol а b 1 | | | o д и н а р нвоeeт в Л Е н и e а=a*2i
515 oпеpaтop goto нe о6язaте"ць]1о дoЛ}i(епгlpисyтствoвать в Тrl{стeявIlol ol1впoлIlе Nloжст6ьпЬ частьIodo/While/breаk/сontjлue, вoт' iвпpимсP|листrтlIгиз3,З2 IrЗ3'3з' ли.тинr 33'з2. HеoлтиМИзИрOваннЬLй вариант, два ветвлeниЯ llri lе{1)
{
]f (а==0х66) bГeаk; || скPыъЙr]eзyслO8ш|i] пeрехoд l]а lrачалoцикла
)|
листинr 33'зз. oптиМизиpoвaHный вариaHт, (ветвЛениe oд|roветвлeниe nepедначалoм так ка( испoлняeтсЯ ци@а нe сЧитаетсяl всeгoлишЬра'
if (а]=0166)
//
=0х66) htr]]е(а
/ / и i в e p т и р у е мп с p е х о д r о л ь к o O д l r O3 e т в л e н и e
''сr]lDанис
OднOЙитеpdlLliи цL!кла
сoкPAЩEниEкoличЕствA сPAвнЕниЙ Ilpoцсссoрьr сештс1il:l.lllLх86 ((ак I{ r\lfloгlrr /tРупre) o6ладaroт oднoй oч€ I lь иl1. TсРссl1oii (ollпс|lrlпсii| l(oтoPоii llс,l.lIll в oдllol 'зЬ]кo IlьIсокol.o yPoвпя' оxc. рnциI, вti/lа if (a>b) в),llto'llnЯIоTс'l в lвa этaпа. сItaчaлa I'IзчltсЛa а выrIиTAеTсЯ lпtсJюbl tl fi)сTo,I l j.lс lJътll]lсЛлToЛЬ11oгоyсTPo ii(Tвa сoхРal иc'.сЯ в Р€ г IrстPe (Jлa. IoI]' Pa3JIllI]I]Ьtс ко]!т6r|Ilaц}'lj фiAl.оп сooтвe1ствyю-l'РaзЛЛtIтlьIN{ o'].нoIllelrIlJi]\l чllс0]ll tt зilI(lDl0ll'|ii ll Il|]х о'гвсIIilсT <сI]ой,' y(,loIrllЬIii пepсxoД. ЁIaпрI,l]!tcРlJILI-
< r . t r I t3г3 , 3 4 '
листияr 33.34, срашreние двyхчИсeлнa язь|кеассeм6лерa с m рc а х ' r 0 х / / с p a u r и в а r м а х с с l r i , з а п o ! и н аp'0r з у Л Ь т ва от ф Л a l а х / / п е p е i о / cr с r и e а х< 0 b х J l ] а L l1 j9 lab 2 // пеDeхол . с л и е а х> r b Х lab з] / / р а 3м ыз л е с ь 'r ] а r- = е h i Ha язl,trсaхвьtсоltогo у1)oBIU]l]сс lIе Tаx] u orlсPaЦию сPaвllеIll,l,l]lpихоДиTфl llo B].ol)я1'Ь нcсILoлькopаз ]loiцrяД,ч1! llo сlIoсo6сTвуo'Гни тФмllaктностиl нu ]IPоизводl{Teльlloс'|и,l1о ' моn{eт6ъrть'ситуaци ю uu rрапll1.oIl'l.иl!'изa,].oP? PассNlt]трl,lм l l ( a < 0 х 6 9 р) f i | i ( b ' ) : i f ( d > 0 х 6 9 р) Г r n t f !( ' ) i ] f ( d = =c х 6 9 )р г ] n t f (€ ' ) пoкaзывает' чтo кol{пllлятoру nsvс пoтpе6овалoсь цельrх .цIrзaссe]!16JlиРовaнпe ]]васpaвнеIrия. a вoт iсl 6ЬlЛ0дoстaToчнo Ir oДпolo, кoмпиЛятoР 8сс ]le зatIетил пoдвoхa и честIlо вьп1oлтrилвсe Tpи сPавпeпия,
изБAвлEHиЕoт вЕтвлEний Teoрия yтвepхдaет, нтo Л106oйвьiчисЛиTe.цъriьIйanгoРиTNIпloяснopaзвepl{yть в ЛинeйI]уIolroнстP},irциlo,зal{eнllв всe вrтвле1lия п{aтel{aтпчесI{имl! oпeрaц]ш ми (кaк прaви.llo'за]Iyтaпньlми и Iрollioздкиlrп)'
516
глава зз, т*ника omимизaции пoдл;нyкс
РaссNtoтpпll фyllкцlпo lloисlia NlаrrспNlyrlaсpеn]{]1в!.(цеЛЬ]x чисслi ( ( а>b) ?а :b) ' дJя наГ-qядпoс].ltзitпltсаннуIo та(: if (a.b) а+. как uз6aвиться oт ветвnelrия? B этoпl пам пoNlо7ке1машrlнIrаЯl{ollаIrДasвB'pеiLJ] ll:]уIoщaявьIчlIтаtllIес 3aеIIO}i' нaЯзъкe aссеll6Jlсpa этo lIоIло 6ьi 8ьIгляДетЬ'паlIprшlrp''гaк (лllсTIIlIг зз,35), листивгз3'з5' ГloискмаксиМyма срeдидвyхцелЬxчисeл6ез испoлЬзoвания ветвлеHий s u Bb . d .ir'' о т в я r Ь0 r с с l ] e D н и и оbг .0 з н а ч е н l е 3 а п L l . арaе з y л ь r аsт' b . > yстаяOdит € с ли а b тo проЦeссOр ФлаГзаeиaв eдишl(Y
sввс' с
: o т н я т Ьo т с O д . с p п Л l 1 l ] г O с y ч е т O !ф л i ] l aз a e | а ' : з а п l с а в р е 3 y Л ь т аОl б р а т i oв с , ( , с в D e 4 с ш а яn с p 0 { e в н a я ) ,с i Е с л и а < =D . т O ф л а r з a с x а с O 0 o ш ! lн б } д е r p а s н О0 Е с л и a > b т o ф Л а rз i r е h аr с ] а П 0 3 Л 0и. с ' б y д e тр d в к 0 l A N Dс , b a ы п o irи т Ь б и т о в y ю o п € р d ц и ю( с 8 b ) , з а п . . 1 с ра r33 у л ь т a rв ' . , Е с л иа < - b ' r . ф л а гз a € f l а r а ! с l L ! Л ю ' с р а s П о0 . з н а . и т ' с = ( с & b ) = =0 0 п р 0 ] L i 8 l r o с п[ t r а . .с = . b а
ADOа с слодenre со]lcDпиloг0
D ro c..!
. i ] l e _ 0 + ( D . а ): - L )
I(oпl l l и'rrлтop ш s vс l t o,'ц1ср)Illlllllст i}iш1||ly Dс1'lj,I|оI l l t1i ]\lа,rсiм ilTич сс кl,lм !I o IIсраj'lltя. ]tlI.tlo/l||aкo ],lсnoJlЬ3Yc Г llсск()Лl,I() Лl)у|}ro 'lr!хвllIiI' oli(nвая jIPcilIloч'l.с|l1.l0ll]lcт. |]l0ii Хxx в ./II l IlllI lуl сс.ll]'lуОl oвl Ic сс lJс1.lllll Io, l{nI( рyкl ll l]r sЕтсс xхх' Yс,гдllaвЛ 11в;rI() IloкаэЬltsасT IIPal(ГtlJ.a' llls\( ()|l1rII!lIзlrPyсT тo'п]lI(()lroTl],llсllIl,l кoII(тnIlTшofo 1.l.lJ|а, T o с с т l ) j f ( n > m ) а = 6 6 ; е . l s e a = 9 9 i с u { с o л 1 ' | l м l l l r l i P v с 1 ' с Я ' a1 f ( n > m ) а = х ; else а = у: _ у,.е l|с'|, I(oмIIп"'Iя1.о])gсс, l.iсIloJlьзvlolцrlii llllстpукцIllo vслoв]fulг(J ll]rисвoсllия сli0vсс' oптll]!{иill,lPyсT всс коtlстрvI{l(lljl Гlilla m.in' naх' set flа9s, аbs L! г.д', что суnleсTвсl]нo yвir-tt'lчI,Iгlaстl|роllзL]oдlrTo,IIЬнoсть' oдпaкrl трс6уст rсак плппrмупl Ре]ltjuln PIo (llнстPукцпя SЕ'tсс Pa6oTaст ll IIа lпte] 80З86). За э,Гo отвeчаloT кЛю.ll1 - fi f. сonveгsion Il - fj f.сonversion2' котоРьlе lIа ]lЛатфоpl!e Iпtе] э(впвa. леrIтнЬl дPуr другy. (вooбЛlе IoвоP,l,8сс пo/.lllер)ij'васT Nlноnrсстпo кЛючеi.il oтвсчающrl!за лllliвllllацlilo всTв.rIсrппj' о/.lпаIсona x"цаrфoрN'е IпtelolIп 'цu!rс]iы сN{Ь]слal поскo.IlЬку в ЛciLспкoЛе х86.llPоцсссlopoв прoсTo llcT сooтв€ т ствy. КLlшlилятоp iсi еlIпIIствсtшЬrii rв всеx трeхl ктo ]lс заn!еI{яеTветвЛеlltiя Nlа. ТсNIатIlческип1lI o]]еРацlrяпfri (чтo B св".Тe aкТивноiI аIитailЛл 3a кOмaндЬI sвв/ сl]OVсс' Pа3вер vToil кoмпarrfiей Int{'' вrnгл'дит дoво.llъЛ() сl.pаIr]rо), Bo вся кoNrсnучаe' кoмllrtJl,1ToP нcдеЛirет э'Гoгo явl1o и в IiачrстBe кo]v леrrсaцrIи Iтpед ЛагaeT испoльзoват! x]lтPи]rсrlк]i (oт аItIn, ' буквaJrЬнo <внyтРен нl r> нeсTаllдapтньlс oпePaтоPЬI яз ЬII.а' 11еlloсPeдствеIr Iю Tрallс.1upуюЦиeся в мaIIин]rьlй koд; 3a 6oЛсе пoдpобньIli их oписаtlисil o6paпIaiiтесь к Pукoвoд.
ству на lto]\l]lиJIятop)tr фyllкцl{и llуJrьтиlfeДиiiнoй 6и6лиoTeки sIМD. в чaс. ТпoстLl' цlIкл видa 5 l r o . ta l 4 ] ' b [ 4 ] с t 4 ] i 'o / 0 .r. .. с t i ] . i r t i ]> b t i ] ? a t i ] b | i ] : lllt)я(ст6ъIтЬ]tсpсIl'кjairтак (устpанеll]1свeтвJlсE!пi путсм исtloльзoвания фyнк. цllli selесt gt 6и6лиoтскU к"']ас(oвIntс]sIМD) с - 5 е l е с Lg t ( d , b . a . b ) ' ] / ф ] ' l к ц ивяe { r 0 p ноOr l О и с к!аа l { с и B y O i аe зв е т B л с н и й .ral{oii Естeствeнпo' кoд 'IeIIсрснoси11ll пa ДРугllх ttoN'пиЛЯтopaх рa6oтать ]re oудет' пoэTon,v прс,кдечеl\l lioдсlDк]1вaтъсяfla IotcL' слеДуeтвсе взвеспTь и тrцa. ТсльIю обдyl'aTЬ, тсп! 6onссчтo il.цЬтеРltаТиIrIII'суyльтимеДийt{ь]е 6и6лиотеки иNlсIo1'сяIt на лруrllх кoм]lIr-lIят()Рах,
oптимизAция SWIтсH ollеPilтoР Мuo,{есTвс]lllоП) Bы6орn s!.]itсh oчellь ПoпyJlяpeн сРeди прolpaммистoB (oсобеIilro РазрtlбoтlпrкоB wilкl(Nvs-I]l)l,',o,J(сllиI1)' B пeкoтьрьIх (хoT,; pед. и ких) сJlyчаях oпoРаl.oРЬl Ialoniсс1,Ilс!l]loго ,'l5оPа сoдoр)кal сoT;и (; To и т;сЯчи) Ilабoр()в зJllчс,liIii, Il сс'ltl l ) с l I l а ' Г Ьз a / L a ч y uв лo6,, время "pавrIenия вьlлol|||сIjtUl o|'lс'рa,|оl)аsl4itсh ока)t(]ljя с,llIlIJ]кoM 6oЛьlflим' чтo llе 'Ilучl]]и]!106. рllзo]\] скlu{сl'с' Ilrt o.Лцсi,l iIlюll3l]одЛ'l.с'llЬ|io(тll ]IРolрaммIlr| пoэToNlу пРснe6рe. гil1ъ сгo оIl1.lINi113inl||сЙ ll || IJ l()сilJ с,rlvllа0 l{С-цl,3я,
БAлAнсиPoвк.AлoгичЕскoгo дPEвA
ЕсJllt o.IпJ|c.l|,с'oт YсГояl]Il]сiiс,IIlЛ or1ы <{)Ilсpirl.oР sW]tсhЛaeт спeцпaЛьпьlii сuосo6 BьIбоPtlollllог() lll] I|l|()ГIlхllrрlIilIIГoLlllloтоРый :ralrЛючaе,ГсЯ в прoвePкe сoвIrФ"telllDlз|laЧ(rп{, Лl,lp,rn('Jr||я ](аlIl]ol.(r с oJL]tоiiI,lззадalltlЫх кoIlстaпт в сooт. aсTсТвylol{сlll веТllJll)lI]|l>.jllj.|{l)llolixзl1.ь|чro sl,/itсhЛPeдставляeтс060й зaвyaJlиPoвaIlЛЬIIlоllеPаTol) lIouскa (()o'Лrсl.сГвY]olцсгo сitsс'зrlaчсния' lIoсЛ1эдoвlTe'lЬньIйпч)e6oр вссх IlaРll.ll]Тoв|сoo,гвсTсTвyIо ]иii тPивиaпЬнoп!y -цпIIе}rноNry ]Iоl,lску'. заlIя'Гие Il()РoчI10еll крайrre пеэффeIсrrrвнoЪ, !oпустим' паш oлePa'foр swltсh DьJlrI,]дUтTаIi (Л,tс1'иrlгзЗ'36), ли.тинr зз,з6. нeoптимизированнЬ й ваpиантoпeрэтора мно)кесгвеннoгo вь60ра {
lарo8
сasе 4 саse з са5е9 саsе ?2 саse 0 сasе 1t
..Olоорoо0
: /* : /* /* : /* ] /x : /*
/
к O л0 б р а о O т ч и *[ а/ кодоoраiol{rш */ { O дo о p а б . в и s a* / кoд обрdб.iчика */ r]0добрабoви(а */ i/ кoд oб!абoтч[(a
,,o,
b.eаk' bгеа[ !гeаl.; bгeаr| bгеdk b.еаk|
518
rлава зз. тех|икaоптимизации пoдЛиHукс
л'cIинr зз.з6 (npoАaDкe|]ие) 666: 96:
*/ 0браоOтчикa o о P d o о т ч и к*d/ o б p d о о т ч и к*а/ O б p а б о r ч и (*а/
bгeаk: bгеа[: bгеаtI bгеаk:
TоrЛa соoтвeтствуюrJreеrпry неоптtпIизиРовaннoe Joг]'lческоеЛeРево 6улeт дo стLIгaTьв ]]ьIсoTyoдиIIIIа]lцатilГпe3Д(!пс' 33,1' .]), ПPrlllei!]'xа Левой вelке кoI) tlевoг0 l.l1езl{аoIQ)кeTсяа,( десяTь tФугих гltезll' а IJагlраgoii _ в0()6цс нl'l одЛo. I о , Ч т 0 6 ы u с п P а в п т ь < л e р е к о с ' ' 'р a 3 p e ) к e Nol д x ! в e | к у н a д в с и I I p и ц е п I t м соДePжar|к]мyvс.]t()в]1el о6Р8овaвIлиrся fu)Jо!]rпкlr к lювo}lу гIleз/'1у' onре!(еЛя. J()lц.Aе' в какoii lтз вe.ГoкслеДveт tiскaтЬ сРaвlil.l|]aeмуюперсNlеllliyl().I.Ilпри]\{eр' левaя l]€ т кa пюя(е'Г сo/.leP'{a'ГЬ гпе3дa с tIеTIjь]ми 3llаllе]lttяl'1и| а ]lрiLt]а' с I]e. четt]ьIl{и' но эTo rlлохoli xРитеpпI:li чсTlIьrх и Ileч€ T lIьrх |}l]ачclJllii Редкo 6ЬlваеT пoРoulry n ulк,въ о6Рaэуe].ся п€ Р eкос. гopаз/lо J]]]LllсnarcL'Il()с,|уllrll't'lnкi 6срсi!1 ]IаItNIellьшec и3 l](сх зllaчс,ttt'lii и брoсaL'Il сr.o r кучу A, затеNI 6сpспl нar]6олЬltlсе ]lз l]ссх зtlaчсIlIlii и 6poсасIl с1.o в кyчy B,.].a]{noв'IoPяспI /lо тсх ]loР' пol{a нr Paс. (oртIrрусN1 всс l,ltiсIo1rll,tсс' зtlаЧсtlltя (PIlс, з3,1' 6), П o с к o i n к у o п с P A т о P s я i t с h T Р c 6 y с т y I l } l к a л ь п o с т l i к а n { / l l o Г (l ]) l l a l I c I l l . l яT] ( ) с с ' Г l ) ](а,tдос чl'сло ]!toт(e'гпстРсчaтЬся '(l]lllЬ oirriаж/lЬ|t Легкo IloкilllilT,,l ч1\)|а) l, ol)сrlх ку чirх 6удст (oцc P,(атЬся рlLвllo0l{o.]]Ilчес.jJx]чlt(сЛ (Il хy',(lJIcNlсJlучао. R ()д. ] l o ] i к у ч с o l ( а ) ( с т o я l l a ч I r с j l i J6 ( ) , л Ь L U с 6 ) i) l r с с ч } к : ' ц l кl y ч l l А N l e I l ] n ] | lсl a Л п | с l l Ь n I o . Г o r l 3 ч и с с ' 1 l ( у t l I l B , с j | с l ( o l ] 1 l T с J l Ь l l о ' ] 1 ( ] с ' l . а ' t ( ) I l iRI oъ l I i o . l l i l ' l ' l ь T ( ) j l Ь к о о , l l l о (lрilвl'lсlJис' ч1.oбЬ(оIIрсll0nuTЬ' я l(l|кoii rl:l 'Irrух llvЧ с.J]e/(v01. lIс(il,|.ll сРill]IIl,|l]illj.
1. "/"
"=1 .=1, 1.. "-7u*''' .=!n" 1
I
I
а>]0 tу/\ , а>5
/\/\ а==0
/ >/ ////
а==з
-a>97
'vt
a==T a==9в a==1T7
а==9
а==22
>/
a==666
I
"r1u-)
"l'' >
Pис. 33.1. switсh/саsе.дeревo| a_ Hесбалaнсирoваннoе; 6 с€ а лансирoваннoе
519 Bьrсoта внoвъ o6рaзoвапноr.oдepевa 6удeт рaвнa ((N+ 1)/2 + 1)' Iдe N_ i{o,и. Чсствo гI'eз'l сTдpol.oДrpева' fieiiствитсlтъно, мьI же 11слимветвь l1еpеваiiадвoе и дo6aвляЪNiшoвoе rнозДo oтсroДaи 6еPrTся Q + 1' а (N+ 1) нeo6ходIrNIoltля oкPyl"tепия резvЛьтата деJreIiIrяв 6oЛь1nyю cToрoнy, Тo eсть есЛи вьIсотa пeoптпмизпрoва1]ноIo деpeвa дoсТI1гала100 гпeзД' тo т€ п еpъ oнa умсньriJиласъ дo 51' Чтo? lЪвopитe' 51 всe равно Nlнoro? нo ктo нам меrпаeTpаз6ить кDкдy]o ltз двух вel.Bеji сщс нaдвe? этo умсньnnrт uьlсоTу /tсрeвалo 27 гнезд1Aнaлoгич]lo' пoсЛеДyroщсcyплoтllепиeд сT 16 э 12.+ 11 -э 9 э 8.'' 1IвcеI БoЛеeiтЛотпaя уlla. кoвка дlrpсва v)itе ilевoзмo;кна, Hoсогласитссьl вoсeNlьl.}1сзд. эTс]lle стoloптIrj\Iи3llPоlaннЬIIJRaРпa!]r.oпсpатоРa s\'/itсh 9 хyДrJleмс,Iу'rаепoтPeбyeTЛи!Iь пят11 сpавнcниil' llо jI эТ0 сщо Irе предeЛ] УчI.Iтъlnilя'чтo х86.пРoцессopЬr всr тРи oIIеPациЛ срaвнения (<' =' >) сoвitс. ]IIаю'rн i]Дrloй п{аnп]IllIoi'iкoпraнде'/'{вoич]]oс .пoгиuесtсoсдсpево пlоlоlo ttpoо6. Разorra,|ьв l.Polrчrloеl тоЩа t{oвьIх гlrез/l llJI,] сгo 6aлaltсиpoвкп дo6aвlять не нужllo' IIPoстсйпI'lli nЛ[оprtтпI,I{aзъIпас]llltfl ''rcпodaм ompезкotз'pa&lтaeТ l'aк: соpтrlpУcll lсс чIrсЛa по вoзрастаrll'lю п /tсJljl]\lпoлyчпвlrllйся oтРезoк |IolIo. naII' lillсJl(),\l rlдхoдяпiсеся l|осoPедlЛJе(s Ilaш0i{ случae ] 1)' o6ъЯвляеrviReP. ]!rIнoil деРeDа' a чnсла] РaсIl('lo)ксrtнЬle сЛeDaоT ]lсгol - eгo JlcвЬlмп !eтI]ям|.| !l lIод'стI]япl|| (в наlшcrЧсЛyч^e i)'|o 0' 3' 4 и 7). oстaльrп,rс чI,lсЛа(22' 96,98, 0 6 6 ' 7 7 7 ) r ' ( у T l J l l l l р l l ' o 'I . I о в т о р я с iэu, г уo п e p а r l п l oP с к у Р с l ' I l l | оl l o T с х п o Р l i I о к i l д]ljlllir llодт]еTuсii llc сo(рaтIJ'Гс,']lo сдпIirlllы' JJ кOясчlюiu счсT0 в'Iрilстсl.сnс. ц у ю l ц c с Л c р o | ] 1( р ) ис,3З,2).
I //
,/l_\a > = 7
а<=з
/t -L
\".='n"
,/l\
a<=96
l\
/t
а>=666
1\
ll
I
Pис' зз,2. трoиЧнoeдepево?часlиЧнос6алансиpoвaннoe oчeвlД]tо' чTo этo lIе сaNloслyчrllеe Дерово Irз всeх, N1aксппfuaЬItoекojrriчестBo сPa}пe]]l1'l(тo естъ кoJtичссTвoсраRllt*]иli в хy'rшeм с,'1учаe)сокpaTи.]ioсьс пя. 'Г]т чe1ъlрсх' а lioлlFlесl.вo вствлепий Дo loзрoсЛo вl1вoс'в peзyль,rаТсч0гoвремя вьlпoЛllс]rrul oперaтopа slvitсh ,ГольI.oвoзpoслo' к-ГоNIy же стрУкTyРa пoсTрoe. ]tt]я]lсрсва яllio ]к: o111.]'1маль1ra, гпезда а<=з'а>=7, а<=96' a>=666 иNIcютсвo6oДrrыс ne1]l]1| чтo уnе-rlПчllrrаствъIсотуДeреla }rаe]рпIицу, Hо' мoясeт6ьrтъ'коltпллятop сyNlсст это опTпrllизrlрoвaть? .циэассем6ЛиP1rваниeпoi.aзьlBaeт,чтo I(омIlIljятoр ltlsvс leнepиpyеT тPoичпoе дeрeRo' с6.r!ансироiаш]]oе пo vлyчnlеЛнolfy аJiгopитмy oтрeзI(orj сoдeP,GпIеe
пoд глава зз. тeхникаоптИмизации
s20
IIеРrходoвнa lu эЛе 9 всTв.tснцйl1та6ЛI'пIу вс€ г o ли1lIь7 опсparlийсPавнснl'Iяl B хyдIlIсмсnучaеgьlflоЛ iй* iй, p""o"', "с.здaшпс та6ллuыпePсхoдolr>), , ' r д.r влerrrrii Т' ' j,'ч |nр .. |,сdo' < г ' -l т J , , r , в ' A ' ' ' ' ' ' , tсh
, sil | ;.,:' l | | | l n / , , ч ol n { 1 : r . . | |' e . I o I ' \ а o г | ' I r \ l у ,;;;,;^;;";.']''',''' ,|'!j'о\|Б' '.oi Ii, ' . , , J'.,п ' , v с 1 - l . l | р в D l| o I п Р . ||',|, ь|, n||it . '';: "rrrrrr,Br)'lt ,,,l(''lt' "'. "'.'...'.''',,,.. ' | , | " |' ' | |с l | в | F , , ,'""',,'".'" '"]..'' '. ' ''.".' '' ' '', i"PiP'|"' 'lЯ стpollT двo1lчllo€ де. rrо пPuнцxЛу tlРос'го].o Л1IнсijЛoIо пoItска, iс]' pа6oiirюцпli yзлЬllтеPепa
;'";':ъ
i."oo'*u.'.'o ц""uno,',
сoздAниE тAБлицЬl пEPExoдoB
сo6оi1 aР!к!i!lетljче(куIo IDоl.pес. Ес]tli зlrачсяlrЯ BeтЕсi,lЕl,l6оPa пpeЛс'Iаlrляl()т л?dti,i]4, ??.Т]lr. з,зz ' зl]'38)' кoмпll''rятop мoжст с()оPNlllPовlть с.l'. i',i'.',''''' сoдrPжirпo1ii l ] t !яlur ),кil3iLтеnрunu'LсксlРоI]l ппniiсаse зnil.Iсrrl 'nаou 6ьl oпсРатор скoлЪк0 "n..'o' )Tом слyЧilе lrьl сrrse'о6pa6oтнIrкиB ;;;;;".,;;;;;;йi'.''" - оll ]rьilюЛ!!яeтся3aоцJly иTe* ('пtv п.]Illi!п,IЛЛ]Jott, ветвcii switсh tlП сoДеP)каx Рaцпю, кpaсотаI ыi |опo/|,/| . лиоинr зз.з7' l сon-/"r'rlo.ва'l ь; ч^rс5,оOl"ч/]oвd.| -рoгpeссии }гoooдоче|ror'oolфv" /чe.loй { ./ с а s r l ] / * ( O дO 1 ] р . i о r . и ( а D . . ё K i r/ Dгei][ 0oраijO]!и(ir юЛ сasс 2 : /* /* loll Orjрd0or]i(a "/ 0.rr;l| с sа з r/ с а s е4 : / . r o r LO б ) i ] . э r ч i l d h i i k / * 1 о лО U ! . r l r o ] ч ", к/ d0 Г 0 i ] ( : саs€ 5 r/ lrr!"irk с i s о 6 ] / * ( о п o о р а . 0. п G с а 5 е7 ] / * ( 1 l ]о б ! t 0 . ] ч ш к а , / . г o a ( : */ b..a( /* к0]]OоPабoгrи{а сasе в с a 5 e9 ] / * 1 . ' l. 6 р a 0 o i ч [ l "d/ D г e а r : r/ с a s е 1 0 / * ( о д о 6 р а о o т ч и к aD . о а к 1/ 0lсlk: саsе 11 : /* кo'] Oбрaоотчitа
l л и с т и н r 3 з ' з 8 .д и з a с с e м 6 л e р н ь й л и с l и н г o п т и м и з и р о в a н i o г o в а р и a l т а sWtсn оnеpатoра сiр
jd
eах,0вh
s h o г i l 0 с - 8 0 4 8 з Г 5| d с f d Ц l L e с Л иd > 1 1 ' 0 ь x о ц и tП j i r п с p e т о p5a' r . с n
ds .fi 80t857сledr*4:]i slitсlr .]um! . . * щ д u * у u р u . " ' . с О . т в e i с т 9 } ю [ L eс ан sуё . O о р a б O r ч и ( у O t н oс р а а н e н и e ] rаки[ L.брaз.!'
jmр
саsе 0брaбOr+r(ов // тaолицaспсLrreн[Й
521 off-80485/с dd Offsrt ]ос'8048З|.5 DАтA)(iЕг] mаin+11^г id 0ffset l0с 8048зЕ8 ; jlmp tabl€ foг sw]iсh stаialL€ n t dd оfisa| lOс 8048з19 d. offsеt lOс 8048402 dd оffset l0с.804840в dd offser 10с-804841,1 dd Offset ]oс 80484jD nd ollsеt lос в0.18425 dd oifsеt lоl.804r]42Г dd Offsеt ]ос,'80.18438 d. Oiiset ]ос-8048441 d. Of|s€ t loс-8048.|4Г Cоз,]авa'гьla6'ullцьIпсPех()/.lоll yмсltt'гвсс тpIt])n(сnlа,|рlIвnеi\| Ь]хкоIIln'rятоPal /]:l)l{с 0с!'ilтэJrellc]]TЬ]xpоrpсссIrrIt teкo,L.oрьrпr o6pазопIlrсpсlrспl:rпr,r(.urlстингЗЗ З9), лис'инr зз.з9. г]eoaтимизирOванньй sWtсh,организoвaнный yпopядoЧеt]ной rroпpИнциnу аPифметичeскoй пpoгрeссии
{
о о р { r i o r c и 1*i/ O б р а о o l ч и к*i / .оJ]iоо чИ{а */ r r б D i l 0 0 l ч [ (l a/ 0 0 р d 0 O r \(иа * / o r j р а о o l . и к*d/ oбpa6cl ф1а */ o б D a б O l ч ф ic/ о b р а o l r т ч и (r a/ 0 t l р а 0 l r r rчdЙa / oорaооrчи(ir*/
Dr.а|i b.еаk Dг""r[] bIoаk: bГoаki brсаk h.еi]k !гDot: bгoаk: bГеаki tr..dt
) ЕслI'I oДпll
Лll нсскoлькo эЛol'1снтов пРоfPoСс]Ill отсуТс1.вуIoTl сoотвсTсTвvlо IlIие 11NIзначеl{IIя дol lOjlн'пoтся 4п к lj tвнЬIl{l l пeрехoдншка:ir ш к dс[аulr о6ра6oт. utlкy' Ta6ллцa lrсрсroдов oT эToгo, I.oпeq IIot
oдпакo rrprrдoстпrltettIrllнскo.ГоРоii noptlroвoй в""лlвиньI <1aзpеrкснrrя> та6лиЦa llсPcxoдoп вnеза]lн.] тpallfil)oPмиPyстсЯ B двorrvное/цlоrr.rнoe дерeвo, Коl п]1лЯтopпrsvс. сдIlrrс,гвellrt!tjiIlз всеx Tpcх' с]Iосo6rll,liixoм6I'IпироваTl,Ta6.liп ц ь l п е p е х o д o в с л l ] г 1 I l ! e с к ] 1 мдl Iс Р e в ь ' м и ' Р а з р e ' ( е l J t ] ь I ey l l а с T ш и с д a J r е к о oтс,гoящиIlи ДPугoт дРугaзI]ачerr].lямIl11()]]тlIрy]oтс,l в виде дeрeва]a rусTоrlасе. лe]шr']€ o6-'IaсTПуxакosъIвx]отся в,lа6"1ицьItlcPсходоB' Bepнсмся к листuнrу З 6' З aче1\11я9' |1' 22',t 4' 666' 777 vlloPЯдoчIilraтоTсяв ви дe Дсpeвa' a 0l 3, 4' 7' 9 ЛoжaтсЯ в та6nиц1' пеpeхoдoв' 6лaгoдаpя не:шy дoстliгaeТсЯ лPeдeльlIo вlrlсoкая скoрoсTь вьlпoJ.т1Iеrt]1Я' 'IaЛeкo o11cPеj{rarощая сitоpосTи кoнпypеII'Г0в'
подЛ rлaвa 3з. тeхникаоптимизации
сBoдHAя тAБлицA visuаIс++6
упpoщ€ H иевЬ|pа'€ н ий улрoщeниe aЛгoритlia
InteIс++8'o
Gсс з.з'4
52з мiсrosoft IпtеIс++ 8'0 visuа| с-+ 6 Pаспoзнает Явныe PасПoзнaeт всe пoдвЬpахеiия тoлЬкoв oснoвнOй пoдвЬpахения
Gсс 3.з.4
вырaвнивaние лeреходoв
He выравнивает
нeвьpавнивaет
Быпрoе6yлeво
лoдд€ P цивает
пoддeрживает
вЬpавHивaет no фаницeсrеnени двоИки пOддepживает
удалевиеИзбЬтoчнЬ х
не yдаляeт
yдёлЯет
Hе yдаЛяет
yдаЛ€ H иeпpoверoк
|.lеудалЯет
нe yдаляeт
Удаляет
совМeцe|rие прoвepoк ilе совмeщаeт сокpаU]еlие сокраU]аeт длинь
сoвмещает со(paщает
He сoвмeщает сoкрацает
УMeHьшeние кoлиЧествayмeнЬшaeт
yMeнЬUrает
yме!ьшаeт
сoкрaщetlиe
сoкращаeт
часrичto сoкpaщаeт
|']eсокрaцaeт
Избaвлeниe oт вeт8лeниЙ
из6авлЯетсЯ oт вeтвлеHий
|lиr(огда не из6аM'eтся
Из6авляется всегда, когдазтo вoзможнo
БалаHсирoвкa лoгическoгoдeрева
тpoичвoедepeво, сбаnансирoваHloе yлyЧшeняЬм метoдoмотpeзков сoздаeт
трOЙчнoe ДвоиЧнOе, дерево, нсс6алaвсирOванное сбалансиpoвaнloe мeтOдoм oтрезков дeрeво
дeЙсrвиe кoмпилятoPа Использoвaниe подвЬLрахений
сoзданиетаблицЬ
Pаспoзвaет явнь|е пoдвЬpахеHиЯ
сoзAаeт
сOздаeт
поддеPжкаразpeжeннOЙ Лoддeрхиваeт
пoддеp)киваeт
пoддepживаeт
сoвмeщeние таблицЬ
не сoвмeщaет
Hе сoвt4ецаeт
сoвмещaeт
BьIBoдЬl спpапеr.l".lпвlх1.l1 !адl, Ilа"!ь]l первeпстllа lla эT(]T рaз }lе j1ос,Гaпется 1]]lкoI1у вс0 тр]r кoNiппtя1l)Ра lloказЬ]вaют од1]пак0 вo gxсчатjrяю Ilrе резy"llьr.а'|ьl!l1o пPoкa JIьтnaюTся в Ilе-1очаr, fIrrз]]ц1rя iсl въlгnядит дoстaтoчfiо сиЛьllо]i) оДнaкo нa 6e зус.Jrовнoс госпo:1ство lill].al( нс Tянст, I{ак lltт]ll'Ni!м. сIly пPедстoит llavчиTься выравнимть пeре\!:rri. заIlснЯтъ вeтRлeI Iия l]а |сl1aт]тчесlill]!Iи oпеpацияlfll и перeвариваTЬl)пepаIOp 5l1Jitсh,
524
rлава зз. техНикаoптимизации пoдЛинукс
кoмпилятoр gсс, с yчетoм eгo 6eсЛlаTI]ости' пo'пpеnrн€ N Iу остaeIся tlаи'llучurиlI вьI6lrpoм' oн peа-1изуeтl{llolиe нoвoмoднь]с сп0со6ьI orITrlIIЛзaЦIrиветвЛениir (в час'гlloсти, ис]Io.,lьзуeTиIiсTpукцlrю сH0vсс)|oднаrro пo Ряllу ]loз!цrlй пpопг' Рывaeт насквoзъ l(омNleрчeскollу msvсl nПI]rнlJl:iPаз подIвеp}iДaя oсIroвнoй,ro. зyflr МiсIoso1t:
сoBEтЬl избer.айтe испoЛЬзoванlтя гЛо6aJ|ьlIьJx и с1,r1,llчссlolх IlсРcNlo||||ьJх Itepc11rII Ьlе компиll,lтoPv l]аNlIl()llr Iфoшlс oIfгlirп{зlЦюJ]iггь' Ile испoльзyiiте
Jlo](illl]irlьIс
rrepeмcIllit,l0 Til]\1']дс ]\ю,aк) l'с|rr),l|Ьi()tJiгl1, IФtJстаJITьI,
Beздe' гдc этo тoлЬкo во3мo'rlI()l !lс||orЬз!iiJrr 6фllllill(ol}ь](] Il0Рсnl()lIlьlc _ olJI] Ilа!lltoI.о Легче oIтти]\1i,lзl'IРyn1'с'|l(х1)t)сlll|0 в'l'(]х с'llуIla'|х' ]{l]l)(il коN{Лllля'],ol) llЬtтile,гся из6авиться от вс1]lJlс|Iиii. з а п l Ф l я й т с i n t а ; i f ( ( а > =0 ) & & ( а < | A х ) ) l l а i f ( ( u n s , i g n е di n t ) а < ] , 1 А х_) | l o с J l с . /lIl'l'l кoнстрyкцIlЯ Ila o]lilo вс1]]JIoЛllс кoPo!!. B с ' r ] ] Л e н и ес п р o B e р к о i i I l a l l y n ь o I r 1 1 1 I l l l : l r l p " v с |rсIяa ] \ J l ] o гl oI Р o I ц с jч с l ' с п ] ) o в e l ) . ](oй на лIo6oe дpугoе зllaЧolиr, КorIсTPyкциитппaХ.(f]аg?sin:сos)(y)lIсlrз6ав-ltяtо,t.o'l,всr.в"'rсниii'посoкРitщaют o6ъе]\! кol1Ilрoшllия' He прeпe6реraйтс oпсра-гороl' goto _:li1чаcl.yк) oII r loзвоJ]яе1.l Ц)0err'lrlPоBirтЬ6о Леe кoмlralсTньй lI элегaнтньri] кoд'
тPAнсляция кoPoткиx yслoвHЬlx пEPExoдoB o,1нaиз непpиятньrхoсо6etrпoсTеii х86-IrPоЦсссoРoв ttгParlичснная <дaпъно. 6r)йн0сть'кoNiaндусцoвIIorox€ p схoдa, PaзРa6отч]tl.rtiш]rРопр.rЦессopaв с,tPем.
лeниидo6итЬсявшсoкoli ]toмпaкTIIoсT].l l{одaOlвс.Ц!!l l LеJlевox:цpcс вс€ г o o]1иll 6айт' oтpанинив тем сaмьrм дЛипу IIpЬDt{кa ]t]тepвaлопl в 255 6аliт, Этo тaк пa. ' ' ь . в i е N ь | i l ^ o p o , , / . , i ( с , n / 7 , л e !, 'iе, Il U p ' . ) \ | Ь l i n | . , n . ,l . , | " , ] | l v| н J к o B Ь | t с ] \ l е . lцeнием, oтсчиTЪIвael!ьт]t1oт нaчar]а слeдyloпIeii за инстPукцией ттeРeхода кoмандoй (pис. 3з.З)' Tакая схe}rаадpссaцrЕIогpаrrrtIlrlвастдлIllryпръDкк:i<впe. рeд' (тo естъ
525 _ 127I (Ilpмхoк вrlсpсд кopoнс пoтoму'.lто ему тре6уeтся ntеньl]lиNrчис.]1oj!1 <пeР€ с ечь >lt сaIry поNlaiiдyпеРeхoдa,)Этпх oгРa|пче|1|1i\]1vШe1| бjlxl .н|ld (.nео1) 6рзtсtoп
ыl
пP,'e^o1 ir,1e.re\||'Ii л'lьtч.i,'
г'li,ttIl LрiIl d.|rJl,,
Ь|lг',Lсjах
всегo сeIмetlтa.
9Щдв--
сMP A' в
Б
ycлoввЬlй
L--/
Eлижний бoзyслoвнЬ Й пePeхoддeЙствуgт в лpeдeлахвсeюоeгмelrта Pис' з3.з. Bнiтренlеепр€ д сrавлениекoрoткoгo пepехoда ItoPoTкпе пeРeходьl yсjlо]l{llяlo'ГTрiLllсJl'IIll1k) llсl'lrJlсllllii _ всД],]lc всЯ]{nйI(сJlе. вoi,iадPес rlaхo/IЛтсяo пРеЛrJaх 128 6nii'ГI(]у|ilесГl]y0'ГMtlo)l(ссTtso llyтcil ()6х0да
, ] o l о o | , r ' l 1 | |l|' |. , . l Я , ] { i l I r ' ' , | ' l . п \ , я ] , . | | ! , ' ' Ц | , I l | | i i | | Р | l ( r l :l ' с , l . j |, . , l \ : ' l h , J . я , . U г " вllдllт' чтo llcлoвoи nllPсс 0ьlxoли'Гза пpeлс"lЬI дtхj'lГаеN()с1'll усJlo!ltoго IIеl)0хoдal oll иi{вePTllPу0т yсnoн].lс срa6iтьll]llllIlЯ li соlJсРIIl:rсT кol)o'L,{Uii (shoгt) Il(pcхoд l i а } l с Т l ( у с o n t i n u e ' A l l a d o - i t l I с р с Д а c т y п Р a | l j | с J l l ' е6 . п J J ) к | | | |(Il!r с а I ) п е p с х o д o N t ' дсi]lствукЛцl|]\1в IЦ!)(rJ|aх оlt|l(Л.о ссl.MeIl'н (nlс. 33'4).
0000i
0002
в1
00ffir 0ф7:
аx'01
0d04i
000n1 Pис. з3.4' трансляция кopoтких nepeхoдов
llачп]laя с I tеlB03B6, в Лсl{с,ll{olICllPoцсссoрr lloявlt'ЦaсьпятЛ6a]iTIlъ]eiсоiliаl]. дь] yсllol]н!'lх ]lсpсхoдoв' <6Ьюш{ис'в lIPедe.{aхBсегo чeTыPсхl.игa6аii'гноr.oа'1 P . . н o l о ' l p o . т ' l l | с | R ] ' n Л | , : ] , . | , ' , ' , , d1 ,\' ' i i U r U 'l | - n , | | н |o| e з Ь , с n к nпili' n и | в o . дигeль]lостlI таlс lI oсTaвtшtleсяtrевoстpс5oвaнrrыlлl'
3AкЛючЕHиE сoвPе 1снньIсI!eтoдик]] oптимtlзaцип пoсяT ]loвo'nЬlIollpoтI1вopечивьrliхараI{. тrP. С однot"]стoрoнъI, онIr yЛvчil]aюT код' с ]1рУгoй_ сТPaдают I'eпPедскaзye. п1ьINxr п06oчньIrI]1эффеI{там ' oпытнЪlе прогрaпtlшlстьtлoдo6ньrх <вoльностеr1> пe oДo6pяют ll РrжIllloll аIpeссивflol:ioпTlll{tlзaциIrпoльзуroтся с6o,rьrшой ос. 1opoхнo.|ЬЮ,olчJIioпO,-l!1,,lLlUU|,|,:tILoJl|'чi]| \|а U||нh!iloлlиMItlациIl.:lа,ltt сaмьIе заl(оpe]le.lьIe
кoIlсеРвaтoPЬlуже
неРешаются'
Pгi]loe
<вьIЛltзllвание'
ltoДa
s26
главаз3' те^HИrа oптимиз.цИи пoдлиrrукс
(16чo!j1ся .Л||U|,o\l LoPlr|о . I Pаo]а, ,Io'.|. L ещедoрo)ке. нaPащивая пIoщъ oптимизaтoPовl Paзрa6oтчи]ol кoпIпIrлятоРoв Дo. пyскаiirт всe 6oльпIe 0ши60к' и в oтвстствснtiь1х шyчaяx проIpамMистaI пРи' \ n Д и | с я l ' д ' Й н а ' { o v | P o \ 1 | с| ' I o P v ч J o o | | 1 ,r \ l ,з а Г o P - Г o ' . о | ) " ' . Р " 6 0'о|' " B рe3yльтатe кoтoрoй ]\{oл{нo6ъIть пoлlrостьIo yBеРеIlпь]If (сBеРтIty l(оlIсTа]1т, rroнста}lTilуIo IIoДс.r'аIloвIq Ii T' /ц,)' с06ствснн0 roвoPя' нашс исо1сдoвaнис l{oмllПJlяTopoв сщ€ }1с заI{oнченo, lI 11с' peчислепliьie пpиeп{ЬI oптиillизацIrи - э'Гo да)irе невrрхyпlкa айс6eРгa' a нe6олЪ шoй eго кyсoчeк' кoгдa ]r!r6yдь мьl Paссl'oтPим тpariсфol]Nlaщrlo цrfк]loп ll liРo чие вIlдЬI вeтBлeппi'i. yвеРяio вaс, этo oчеIrь пIJ'г€ Р еспaя TeNlа' Здесь есть чeпlу пo}^lиTьсяl (lry Дoжи-liи..' тРаllс'liятоРъl учат пPoгРa]!lNlI.lсTоЛ.'.[6уРчalIие y,l:Lrтя l()I!еГoся t1ьпцъх'al).
кpuс кacлepcKu
кoмпьютepнЬteвиpyсЬ|изнyтpии с}|apyжи зoвeдуloщиn рeдaкцисй pедaктор Литeратyрныii
лиuеBПя ид }t!05734or 07.09,0l. пoд!и.!цoкпcsarBl9'|о,05,Фopмaт70xl00/l6.уФ.л.л42'57.тnpax4000,зaкa]93 ooo ldlпep прияD, 194014, фяп.пflефyрiЕ, сдм!сoнBcфкяяпр ' 29a. нuorовзяльrmа_о6цeptrснйсKкkклвсflФккдтopпpoДvкцнBoк00'9],тon2195з005 лц!рarypoyч.6ны'
oEcчlNo
c фщ l oAo (т.дяФcш д!цфшвoв 190фJ' сaФпфт6'?r, tъхrilлoвcмй лP'' '9
цпD
ш '||шl I sвN 5-469_00982_з
Recommend Documents
Sign In