




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
外文原文11PROCESSESANDSIGNALSPROCESSESANDSIGNALSFORMAFUNDAMENTALPARTOFTHELINUXOPERATINGENVIRONMENTTHEYCONTROLALMOSTALLACTIVITIESPERFORMEDBYLINUXANDALLOTHERUNIXLIKECOMPUTERSYSTEMSANUNDERSTANDINGOFHOWLINUXANDUNIXMANAGEPROCESSESWILLHOLDANYSYSTEMSPROGRAMMER,APPLICATIONSPROGRAMMER,ORSYSTEMADMINISTRATORINGOODSTEADINTHISCHAPTER,WELLLOOKATHOWPROCESSESAREHANDLEDINTHELINUXENVIRONMENTANDHOWTOFINDOUTEXACTLYWHATTHECOMPUTERISDOINGATANYGIVENTIMEWELLALSOSEEHOWTOSTARTANDSTOPOTHERPROCESSESFROMWITHINOUROWNPROGRAMS,HOWTOMAKEPROCESSESSENDANDRECEIVEMESSAGES,ANDHOWTOAVOIDZOMBIESINPARTICULAR,WELLLEARNABOUTPROCESSSTRUCTURE,TYPE,ANDSCHEDULINGSTARTINGNEWPROCESSESINDIFFERENTWAYSPARENT,CHILD,ANDZOMBIEPROCESSESWHATSIGNALSAREANDHOWTOUSETHEMWHATISAPROCESSTHESINGLEUNIXSPECIFICATION,VERSION2UNIX98ANDITSPREDECESSORVERSION1UNIX95,DEFINESAPROCESSAS“ANADDRESSSPACEWITHONEORMORETHREADS”WEWILLLOOKATTHREADSINCHAPTER12FORNOW,WEWILLREGARDAPROCESSASJUSTAPROGRAMTHATISRUNNINGAMULTITASKINGOPERATINGSYSTEMSUCHASLINUXLETSMANYPROGRAMSRUNATONCEEACHINSTANCEOFARUNNINGPROGRAMCONSTITUTESAPROCESSTHISISESPECIALLYEVIDENTWITHAWINDOWINGSYSTEMSUCHASTHEXWINDOWSYSTEMOFTENSIMPLYCALLEDXLIKEWINDOWS,XPROVIDESAGRAPHICALUSERINTERFACETHATALLOWSMANYAPPLICATIONSTOBERUNATONCEEACHAPPLICATIONCANDISPLAYONEORMOREWINDOWSASAMULTIUSERSYSTEM,LINUXALLOWSMANYUSERSTOACCESSTHESYSTEMATTHESAMETIMEEACHUSERCANRUNMANYPROGRAMS,OREVENMANYINSTANCESOFTHESAMEPROGRAM,ATTHESAMETIMETHESYSTEMITSELFRUNSOTHERPROGRAMSTOMANAGESYSTEMRESOURCESANDCONTROLUSERACCESSASWESAWINCHAPTER4,APROGRAMORPROCESSTHATISRUNNINGCONSISTSOFPROGRAMCODE,DATA,VARIABLESOCCUPYINGSYSTEMMEMORY,OPENFILEFILEDESCRIPTORS,ANDANENVIRONMENTTYPICALLY,ALINUXSYSTEMWILLSHARECODEANDSYSTEMLIBRARIESAMONGPROCESSESSOTHATTHERESONLYONECOPYOFTHECODEINMEMORYATANYONETIMEPROCESSSTRUCTURELETSHAVEALOOKATHOWACOUPLEOFPROCESSESMIGHTBEARRANGEDWITHINTHEOPERATINGSYSTEMIFTWOUSERS,NEILANDRICK,BOTHRUNTHEGREPPROGRAMATTHESAMETIMETOLOOKFORDIFFERENTSTRINGSINDIFFERENTFILES,THEPROCESSEDBEINGUSEDMIGHTLOOKLIKEFIGURE111IFWERUNTHEPSCOMMAND,DESCRIBED,ASFOLLOWS,THEOUTPUTWILLLOOKSOMETHINGLIKETHISEACHPROCESSISALLOCATEDAUNIQUENUMBER,CALLEDAPROCESSIDENTIFIERORPIDTHISISUSUALLYAPOSITIVEINTEGERBETWEEN2AND32768WHENAPROCESSISSTARTED,THENEXTUNUSEDNUMBERINSEQUENCEISCHOSENANDTHENUMBERSRESTARTAT2SOTHATTHEYWRAPAROUNDTHENUMBER1ISTYPICALLYRESERVEDFORTHESPECIALINITPROCESS,WHICHMANAGESOTHERPROCESSESWEWILLCOMEBACKTOINITSHORTLYHEREWESEETHATTHETWOPROCESSESSTARTEDBYNEILANDRICKHAVEBEENALLOCATEDTHEIDENTIFIERS101AND102THEPROGRAMCODETHATWILLBEEXECUTEDBYTHEGREPCOMMANDISSTOREDINADISKFILENORMALY,ALINUXPROCESSCANTWRITETOTHEMEMORYAREAUSEDTOHOLETHEPROGRAMCODE,SOTHECODEISLOADEDINTOMEMORYASREADONLYWESAWINFIGURE111THAT,ALTHOUGHTHISAREACANTBEWRITTENTO,ITCANSAFELYBESHAREDTHESYSTEMLIBRARIESCANALSOBESHAREDTHUS,THERENEEDBEONLYONECOPYOFPRINTF,FOREXAMPLEINMEMORY,EVENIFMANYRUNNINGPROGRAMSCALLITTHISISAMORESOPHISTICATED,BUTSIMILAR,SCHEMETOTHEWAYDYNAMICLINKLIBRARIESDLLSWORKINWINDOWSASWECANSEEINTHEPRECEDINGDIAGRAM,ANADDITIONALBENEFITISTHATTHEDISKFILECONTAININGTHEEXECUTABLEPROGRAMGREPISSMALLERBECAUSEITDOESNTCONTAINSHAREDLIBRARYCODETHISMIGHTNOTSEEMMUCHFORASINGLEPROGRAM,BUTEXTRACTINGTHECOMMONROUTINESFORSAYTHESTANDARDCLIBRARYSAVESASIGNIFICANTAMOUNTOFSPACEOVERAWHOLEOPERATINGSYSTEMOFCOURSE,NOTEVERYTHINGTHATAPROGRAMNEEDSTORUNCANBESHAREDFOREXAMPLE,THEVARIABLESTHATITUSESAREDISTINCTFOREACHPROCESSINTHISEXAMPLE,WESEETHATTHESEARCHSTRINGPASSEDTOTHEGREPCOMMANDAPPEARSASAVARIABLE,S,INTHEDATASPACEOFEACHPROCESSTHESEARESEPARATEANDUSUALLYCANTBEREADBYOTHERPROCESSESTHEFILESTHATAREBEINGUSEDINTHETWOGREPCOMMANDSAREALSODIFFERENTTHEPROCESSESHAVETHEIROWNSETOFFILEDESCRIPTORSUSEDFORFILEACCESSADDITIONALLY,APROCESSHASITSOWNSTACKSPACE,USEDFORLOCALVARIABLESINFUNCTIONSANDFORCONTROLLINGFUNCTIONCALLSANDRETURNSITALSOHASITSOWNENVIRONMENTSPACE,CONTAININGENVIRONMENTVARIABLESTHATMAYBEESTABLISHEDSOLELYFORTHISPROCESSTOUSE,ASWESAWWHENWELOOKEDATPUTENVANDGETENVINCHAPTER4APROCESSMUSTALSOMAINTAINITSOWNPROGRAMCOUNTER,ARECORDOFWHEREITHASGOTTOINITSEXECUTION,WHICHISTHEEXECUTIONTHREADINTHENEXTCHAPTERWEWILLSEETHATWHENWEUSETHREADS,PROCESSESCANHAVEMORETHANONETHREADOFEXECUTIONONMANYLINUXSYSTEMS,ANDSOMEUNIXSYSTEMS,THEREISASPECIALSETOF“FILES”INADIRECTORYCALLED/PROCTHESEARESPECIALINTHATRATHERTHANBEINGTRUEFILESTHEYALLOWYOUTO“LOOKINSIDE”PROCESSESWHILETHEYARERUNNINGASIFTHEYWEREFILESINDIRECTORIESWETOOKABRIEFLOOKATTHE/PROCFILESYSTEMBACKINCHAPTER3FINALLY,BECAUSELINUX,LIKEUNIX,HASAVIRTUALMEMORYSYSTEMTHATPAGESCODEANDDATAOUTTOANAREAOFTHEHARDDISK,MANYMOREPROCESSESCANBEMANAGEDTHANWOULDFITINTOTHEPHYSICALMEMORYTHEPROCESSTABLETHELINUXPROCESSTABLEISLIKEADATASTRUCTUREDESCRIBINGALLOFTHEPROCESSESTHATARECURRENTLYLOADEDWITH,FOREXAMPLE,THEIRPID,STATUS,ANDCOMMANDSTRING,THESORTOFINFORMATIONOUTPUTBYPSTHEOPERATINGSYSTEMMANAGESPROCESSESUSINGTHEIRPIDS,ANDTHEYAREUSEDASANINDEXINTOTHEPROCESSTABLETHETABLEISOFLIMITEDSIZE,SOTHENUMBEROFPROCESSESASYSTEMWILLSUPPORTISLIMITEDEARLYUNIXSYSTEMSWERELIMITEDTO256PROCESSESMOREMODERNIMPLEMENTATIONSHAVERELAXEDTHISRESTRICTIONCONSIDERABLYANDMAYBELIMITEDONLYBYTHEMEMORYAVAILABLETOCONSTRUCTAPROCESSTABLEENTRYVIEWINGPROCESSESTHEPSCOMMANDSHOWSTHEPROCESSESWERERUNNING,THEPROCESSANOTHERUSERISRUNNING,ORALLTHEPROCESSESONTHESYSTEMHEREISSOMESAMPLEOUTPUTWHILEITISWAITINGFORSOMEINPUTFROMTHEUSER,THESYSTEMINCREASESITSPRIORITY,SOTHATWHENITSREADYTORESUME,ITHASAHIGHPRIORITYWECANSETTHEPROCESSNICEVALUEUSINGNICEANDADJUSTITUSINGRENICETHENICECOMMANDINCREASESTHENICEVALUEOFAPROCESSBY10,GIVINGITALOWERPRIORITYWECANVIEWTHENICEVALUESOFACTIVEPROCESSESUSINGTHE1ORFFORLONGOUTPUTOPTIONTOPSTHEVALUEWEAREINTERESTEDINISSHOWNINTHENINICECOLUMNHEREWECANSEETHATTHEOCLOCKPROGRAMISRUNNINGASPROCESS1362WITHADEFAULTNICEVALUEIFITHADBEENSTARTEDWITHTHECOMMANDNICEOCLOCKTHESYSTEMFUNCTIONRUNSTHECOMMANDPASSEDTOITASASTRINGANDWAITSFORITTOCOMPLETETHECOMMANDISEXECUTEDASIFTHECOMMANDSHCSTRINGHASBEENGIVENTOASHELLSYSTEMRETURNS127IFASHELLCANTBESTARTEDTORUNTHECOMMANDANDIIFANOTHERERROROCCURSOTHERWISE,SYSTEMRETURNSTHEEXITCODEOFTHECOMMANDTRYITOUTSYSTEMWECANUSESYSTEMTOWRITEAPROGRAMTORUNPSFORUSWHILETHISISNOTTREMENDOUSLYUSEFULINANDOFITSELF,WELLSEEHOWTODEVELOPTHISTECHNIQUEINLATEREXAMPLESWEALSODONTCHECKTHATTHESYSTEMCALLACTUALLYWORKEDFORTHESAKEOFSIMPLICITYINTHEEXAMPLEWHENWECOMPILEANDRUNTHISPROGRAM,SYSTEM1C,WEGETTHEFOLLOWINGBECAUSETHESYSTEMFUNCTIONUSESASHELLTOSTARTTHEDESIREDPROGRAM,WECOULDPUTITINTHEBACKGROUNDBYCHANGINGTHEFUNCTIONCALLINSYSTEM1C,CTOTHEFOLLOWINGSYSTEM“PSAXWHENWECOMPILEANDRUNTHISVERSIONOFTHEPROGRAM,WEGETHOWITWORKSINTHEFIRSTEXAMPLE,THEPROGRAMCALLSSYSTEMWITHTHESTRING”PSAX”,WHICHEXECUTESTHEPSPROGRAMOURPROGRAMRETURNSFROMTHECALLTOSYSTEMWHENTHEPSCOMMANDHASFINISHEDTHESYSTEMFUNCTIONCANBEQUITEUSEFULBUTISALSOLIMITEDBECAUSEOURPROGRAMHASTOWAITUNTILTHEPROCESSSTARTEDBYTHECALLTOSYSTEMFINISHES,WECANTGETONWITHOTHERTASKSINTHESECONDEXAMPLE,THECALLTOSYSTEMRETURNSASSOONASTHESHELLCOMMANDFINISHESBECAUSEITSAREQUESTTORUNAPROGRAMINTHEBACKGROUND,THESHELLRETURNSASSOONASTHEPSPROGRAMISSTARTED,JUSTASWOULDHAPPENIFWEHADTYPEDPSAXSYSTEM功能执行传递给它的命令并等待其完成。如果该命令SHCSTRING已经给了SHELL,其将被执行,如果SHELL不能启动SYSTEM,将返回127,而如果发生其他错误将返回1,否则SYSTEM将返回其命令的出口代码。尝试运行SYSTEM我们可以用SYSTEM来写个程序为我们运行PS,而这对它本身作用不大,我们会在后面的例子中弄清怎样发展这一技术,在该例子中为了简单性,我们也不用检测SYSTEM的实际工作。如果我们编译并运行SYSTEM1C,将会得到如下结果因为SYSTEM功能使用SHELL来启动目标程序,我们把SYSTEM1C功能变为如下后将其放入背景SYSTEM(“PSAX当我们编译和运行此类程序时将得到如下结果。它怎样工作在第一个例子中,用执行PS程序的PSAX呼叫SYSTEM,当PS命令停止时我们的程序返回到SYSTEM。SYSTEM功能非常有用也很有限。因为我们的程序必须等到SYSTEM命令停止时才能开始我们可以继续其他任务。第二个例子中,SYSTEM命令一等到SHELL命令结束就会返回,因为这是在背景中运行程序的要求,当PS程序开始时,SHELL便返回,如果我们输入PSAX便会发生SYSTEM1程序然后打印出DONE。这将会发生在PS命令有机会完成所有输出之前。当SYSTEM1存在后,PS继续输出,这种程序行为将迷惑使用者,为了更好的使用程序,我们需要更好的控制其行为,让我们看一下低水平程序创作EXEC。代替程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论