技术研究论文集--共享内存_第1页
技术研究论文集--共享内存_第2页
技术研究论文集--共享内存_第3页
技术研究论文集--共享内存_第4页
技术研究论文集--共享内存_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

综合结算产品部技术专题研究功能规格说明书共享内存分册A1A0A2A3ZHJS_BASELIB_V10A4A5A6A7A8A9A10A11A8A9A12A13A14A15A16A1710A18A19A20A21A22A23A24A25A26A27A28A29A30A31A32A28A29A30A31A32A33A14A15A34A35A36A34A35A37A382010513A14A15A20A21A36A20A21A37A38A39A40FROMDATEPHONE/FAXTOACTIONDUEDATEPHONE/FAXACTIONTYPESAPPROVE,REVIEW,INFORM,FILE,ACTIONREQUIRED,ATTENDMEETING,OTHERPLEASESPECIFYA41A42A43A44A45A46A47A48A49A47A48A50A51A52A53A54A55A56A57A58012010513A59A60A61A62A63A61A62A64A65A66A67A68A69A70A71A72A63A47A73A74A75ALLRIGHTSRESERVEDNEITHERTHEWHOLENORANYPARTSOFTHISDOCUMENTMAYBEREPRODUCED,STOREDINANYRETRIEVALSYSTEMORTRANSMITTED,INANYFORMORBYANYMEANS,WITHOUTTHEPRIORWRITTENCONSENTOFTHECOPYRIGHTOWNERCOPYRIGHT2007BYA76A61A77A78A79A80A81A82A83A84A85ALLRIGHTSRESERVEDA86A87A88COPYRIGHT2007BYA76A61A77A78A79A80A81A82A83A84A8531A89A90A91A92511A89A90A93A94A95A96512A89A90A97A98A99A100513A101A102A103A104514A105A106A107A108A109515A110A111A89A90516A89A90A112A11352A114A115A116A117521A112A118522A119A120623A121A122A123A124A125724A126A127A128A129A130A1318241A132A133A134A135A136A128A129A130A13182411A137A138A139A140A141A142A143A114A115A116A117A12482412A144A145A142A143A114A115A116A117A12492413A146A14792414A148A145A146A147102414A149A150112415A146A147A124A151A152112416A153A154A114A115A116A117122417A155A156A114A115A116A117A157A158122418A159A127A160A16112242A134A162A134A163A164A165A166A119A12014243A134A162A134A163A164A165A166A128A129A130A131152431A167A140A141A139A137A138A142A168A114A115A116A117A124152432A114A115A116A117A169A170A171A172172433A114A115A116A117A173A174A171A172182434A144A145A114A115A116A117182435A159A127A160A1611925A126A175A176A17721251A178A135A136A179A180A181A182A183A184A96A176A17721252A185A132A186A187A136A188A189A190A191A192A193A190A96A194A19524253A99A149A142A114A115A116A117A96A196A170A129A197A15224254A134A198A199A183A200A201A180A202A203A179A96A180A181A182A204A184A205A12727255A180A181A182A206A184A199A128A129A96A207A208281文档介绍11文档编写目的随着结算系统和IDEP系统的发展,进程间通信越频繁,本文介绍了UNIX系统提供的进程间最快的通信方式共享内存的基本函数和原理。12文档阅读对象1UNIX学习者2系统维护人员3系统开发人员13涵盖范围14缩略语定义15参考文档1UNIX环境高级编程2LINUX常用C函数(中文版)16文档概要2共享内存21概念所谓共享内存就是多个进程间共同使用同一段物理内存空间,它是通过将同一段物理内存映射到不同进程的虚空间中来实现的。由于映射到不同进程的虚空间中,不同进程可以直接使用,不需要进行内存的复制,所以共享内存的效率很高。22原理在系统内核为一个进程分配内存地址时,通过分页机制可以让一个进程的物理地址不G17842G13505,同时G1075可以让一段内存同时分配G13485不同的进程。G3926G991G32822G161所G12046G726G3282G7262G161G17837G3371共享虚G6323内存的页G19766,G1998现在G8611一个共享G16825页G19766的进程的页G15932中。G1306是它不需要在所G7389进程的虚G6323内存中G18129G7389G11468同的虚G6323地址。G3926G991G32822G162所G12046G29G3282G7262G16223类型与区别共享内存分为G1016G12193G726PG50G54IX的共享内存和G86G92G86G87G72G80G57的共享内存。G1120者是用同一G12193机制G4448G6116的,G1306是存在着一G4462的G2318G2047。1G17不同的是用G6155接G2487G726PG50G54IX的共享内存,通过用G6155空间G6358G17745的G87G80G83G73G86文G1226系统实现的。G54G60G54G55EG48G57的共享内存,是由内核本G17535的G87G80G83G73G86实现的。2G17不同的G16855用接G2487G726PG50G54IX的共享内存机制实G19481G990在G5223过程中以G2462用G6155空间的G1866G1194G18108分G15999展G12046为G4448G1852的文G1226系统的G16855用过程,在G16855用G4448G86G75G80G66G82G83G72NG1055G2530,需要G16855用G80G80G68G83来将G87G80G83G73G86的文G1226映射到地址空间,接着就可以G6817G1328G17837个文G1226了,需要G8892G5859的是,G2047的进程G1075可以G6817G1328G17837个文G1226,G3252G8504G17837个文G1226G1866实就是共享内存。G54G60G54G55EG48G57的共享内存,内核直接实现了G86G75G80G74G72G87G18G68G87系统G16855用,G15441G9994最G13468G1075是G19764G87G80G83G73G86来实现的,G1306是接G2487G16786G16757G990和G83G82G86IXG4448G1852不同。PG50G54IXG7100在提供所G7389系统G18129一G14280的接G2487。G54G60G54G55EG48G57G2494在于实现G14270G5061的G17935G17765,共享内存G1866实G2494是G86G92G86G89中IG83G70的一G18108分,最G13468的G12661理数G6466结G7512G1075是IG83G70的G13792不是共享内存的3G17不同的G9052G17876方式G726不G12661是G54G60G54G55EG48G57的G17836是PG50G54IX的共享内存,在G1039机G18337G2563G1055G2530G18129不复存在,G3252为数G6466是G18129G1457存在物理存G1660G3132G990G6122G1144G6454分G2318中。G1194G1216不同的是G726PG50G54IX是以用G6155空间文G1226实现的,G5194G1000用G6155空间G6817G1328的是文G1226G6563G17860G12538,文G1226G6563G17860G12538是G4658于G87G68G86G78G66G86G87G85UG70G87的,G3252G8504进程G17876G1998G1055G2530共享内存将G17894G1955共享G16757数,G3926G7536为G19的时G1517G2029G19156G8597。G3252G8504PG50G54IX的共享内存G15441G9994使用G50PEN来G2031G5326G6122G6183开共享内存G5194G8821G7389用G70LG82G86G72G13792是用UNLING78来关闭的,G1328用就是在G16757数为G19的时G1517G19156G8597它。G54G60G54G55EG48G57的共享内存,G15441G9994G1075是由文G1226实现的,G1306是文G1226G5194G8821G7389加到进程的G6183开文G1226G15932,G13792是G1328为进程的一G12193内在G4658性G15999使用的,G3252G8504在进程G17876G1998时G5194不关闭文G1226,G2494要机G3132不G18337G2563G6122不显式G19156G8597,那么共享内存将一直存在,进程和文G1226G1866实是互不G11468关的G1016个概念,G2494是进程G6183开的文G1226才和进程G11468关,在进程结束的时G1517G2494是能G1457证与G1055G11468关的文G1226G15999关闭,G13792G2047的文G1226比G3926G54G60G54G55EG48G57的共享内存使用的文G1226结G7512G8821G7389和进程关联,G3252G8504不会G15999关闭。G1866实G70LG82G86G72G5194不G6817G1328什么,G13792是仅仅刷新缓冲G2318,G9994G2530G17894G1955文G1226的使用者G16757数。4不同的通用性G726G54G60G54G55EG48G57共享内存存在时间比较老,许多系统G18129支持,G1306是接G2487复杂G5194G1000可能各平台G990实现略G7389G2318G2047。PG50G54IX共享内存是新标准,现在多数UNIX已实现,语法简单,G5194G1000各平台G990实现G18129一样。5不同的大小限制G726PG50G54IX的大小可以在任何时刻通过G16855用G73G87G85UNG70G68G87G72修改,G13792G54G60G54G55EG48G57共享内存对象的大小是在G16855用G86G75G80G74G72G87G2031G5326时已经固G4462G991来的。PG50G54IX共享内存的大小、数量G2494受系统文G1226限制,G13792G54G60G54G55EG48G57共享内存对象的大小、数量受内核参数限制。24常用函数说明241POSIX函数说明PG50G54IX共享内存G2318涉G2462G1016个步骤G7261、指G4462一个名字参数G16855用G86G75G80G66G82G83G72N,以G2031G5326一个新的共享内存G2318对象G6122G6183开一个以存在的共享内存G2318对象。2、G16855用G80G80G68G83把G17837个共享内存G2318映射到G16855用进程的地址空间。传G17894G13485G86G75G80G66G82G83G72N的名字参数随G2530由希望共享G16825内存G2318的任何G1866G1194进程使用。2411打开或创建一个共享内存区函数介绍G726A209A210SHM_OPENA211A212G6183开G6122G2031G5326一个共享内存G2318A213A214A215INCLUDEA214A215A216A217INTSHM_OPENCONSTCHARNAME,INTOFLAG,MODE_TMODEA218A215NAME共享内存G2318的名字CFLAG标志位MODE权限位A219A220A221G6116功返回0,G1998错返回1参数详解G726G70G73LG68G74G726必须含G7389G50G66RDG50NLG60和G50G66RDWR标志,G17836可以指G4462G3926G991标志G726G50G66CREAG55,G50G66EXCLG6122G50G66G55RUNC。G80G82DG72G29指G4462权限位,它指G4462G50G66CREAG55标志的前提G991使用。返回值G726G86G75G80G66G82G83G72N的返回值是一个整数G6563G17860字,它随G2530用G1328G80G80G68G83的第五个参数。2412删除一个共享内存区函数介绍G726A222A223SHM_UNLINKA224A225删除一个共享内存G2318A226A227A228INCLUDEA227A228A229A230INTSHM_UNLINKCONSTCHARNAMEA231A228NAME共享内存G2318的名字A232A233A234G6116功返回0,G1998错返回1G8892G5859点G726G86G75G80G66UNLING78函数删除一个共享内存G2318对象的名字,删除一个名字仅仅防止G2530G13505的G82G83G72N,G80QG66G82G83G72NG6122G86G72G80G66G82G83G72NG16855用取得G6116功。2413映射函数介绍G726A235A236MMAPA237A238把I/O文G1226映射到一个存G1660G2318域中A239A240A241INCLUDEA240A241A242A243VOIDMMAPVOIDADDR,SIZE_TLEN,INTPROT,INTFLAG,INTFILEDES,OFF_TOFFA244A241ADDR指向映射存G1660G2318的起始地址LEN映射的字节PROT对映射存G1660G2318的G1457护要求FLAGFLAG标志位FILEDES要G15999映射文G1226的G6563G17860G12538OFF要映射字节在文G1226中的起始偏移量A245A246A247若G6116功G2029返回映射G2318的起始地址,若G1998错G2029返回MAP_FAILED参数详解G726G68DDG85G726用于指G4462映射存G1660G2318的起始地址。通常将G1866G16786置为NULL,G17837G15932G12046由系统选择G16825映射G2318的起始地址。G73ILG72DG72G86G726指要G15999映射文G1226的G6563G17860G12538。在映射G16825文G1226到一个地址空间G1055前,先要G6183开G16825文G1226。LG72N是映射的字节数。G82G73G73G29是要映射字节在文G1226中的起始偏移量。通常将G1866G16786置为G19。G83G85G82G87G29说明对映射存G1660G2318的G1457护要求。可将G83G85G82G87参数指G4462为PRG50G55G66NG50NE,G6122者是PRG50G55G66READ映射G2318可读,PRG50G55G66WRIG55E(映射G2318可写),PRG50G55G66EXEC(映射G2318可执行)任G5859组合的按位G6122,G1075可以是PRG50G55G66NG50NE映射G2318不可访问。对指G4462映射存G1660G2318的G1457护要求不能超过文G1226G82G83G72N模式访问权限。G73LG68G74G29影响映射G2318的多G12193G4658性G726G48APG66FIXED返回值必须G12573于G68DDG85G17G3252为G17837不G2045于可移G7905性,所以不G21735G2181使用G8504标志。G48APG66G54G43AREDG17837一标志说明了本进程对映射G2318所进行的存G1660G6817G1328的配置。G8504标志指G4462存G1660G6817G1328修改映射文G1226。G48APG66PRIG57AG55E本标志G4560G14280对映射G2318G5326G12447一个G16825映射文G1226的一个G12181G7389G2115本。所G7389G2530来对G16825映射G2318的G5353用G18129是G5353用G16825G2115本,G13792不是原始文G1226。G8892G5859点G726必须指G4462G48APG66FIXEDG6122G48APG66PRIG57AG55E标志G1866中的一个,指G4462前者是对存G1660映射文G1226本G17535的一个G6817G1328,G13792G2530者是对G1866G2115本进行G6817G1328。G80G80G68G83G6116功返回G2530,G73D参数可以关闭。G16825G6817G1328对于由G80G80G68G83G5326G12447的映射关系G8821G7389影响。2414解除映射函数介绍G726A248A249MUNMAPA250A251解除存G1660映射A252A253A254INCLUDEA253A254A255A88INTMUNMAPCADDR_TADDR,SIZE_TLENA72A254ADDR指向映射存G1660G2318的起始地址LEN映射的字节A164A0A1若G6116功G2029返回0,若G1998错G2029返回1参数详解G726G68DDG85参数是由G80G80G68G83返回的地址,LG72N是映射G2318的大小。G8892G5859点G726解除映射G2530,G1889G8437访问G17837G1135地址G4560G14280向G16855用进程G1147G10995一个G54IG42G54EG42G57信G2507。2414同步函数介绍G726A3A2MSYNCA32A4同步文G1226到存G1660G3132A163A5A6INCLUDEA5A6A7A8INTMSYNCVOIDADDR,SIZE_TLEN,INTFLAGSA9A6ADDR指向映射存G1660G2318的起始地址LEN映射的字节PROTFLAGSA10A11A12若G6116功G2029返回0,若G1998错G2029返回1参数详解G726G68DDG85和LG72NG726通常指G1207内存中的整个内存映射G2318,不过G1075可以指G4462G16825内存G2318的一个G4388G19610。G73LG68G74G86G726为G48G54G66AG54G60NC执行G5334步写,G48G54G66G54G60NC(执行同步写),G48G54G66ING57ALIDAG55E(使高G17907缓存的数G6466实效)。G1866中G48G54G66AG54G60NC和G48G54G66G54G60NCG17837G1016个常值中必须指G4462一个,G1306不能G18129指G4462。它G1216的G5058G2047是G726一G7098写G6817G1328已由内核G6502G1849G19443G2027,G48G54G66AG54G60NCG2375返回,G13792G48G54G66G54G60NCG2029要G12573到写G6817G1328G4448G6116G2530才返回。G3926G7536G17836指G4462了G48G54G66ING57ALIDAG55E,那么与G1866最G13468G6347G17137不一G14280的文G1226数G6466的所G7389内存中G6347G17137G18129G3845效,G2530G13505的G5353用将G1186文G1226取得数G64662415映射区复制函数介绍G726A13A14MEMCPYA15A16复制映射存G1660G2318A17A18A19INCLUDEA18A19A20A21VOIDMEMCPYVOIDDEST,CONSTVOIDSRC,SIZE_TNA22A19DEST复制G2530的映射存G1660G2318SRCG5465复制的映射存G1660G2318NG5465复制的映射存G1660G2318的大小A23A24A25返回DEST的G20330地址2416改变共享内存函数介绍G726A26A27FTRUNCATEA28A29G16855整文G1226G6122共享内存G2318大小A30A31A33INCLUDEA31A33A34A35INTFTRUNCATEINTFD,OFF_TLENGTHA36A33FDG6563G17860G12538LENGTH大小A37A38A39G6116功返回0,G1998错返回12417获得共享内存信息函数介绍G726A40A41FSTATA42A43G14731得文G1226G6122共享内存G2318的信G5699A44A45A46INCLUDEINCLUDEINCLUDEA45A46A47A48INTSTATCONSTCHARFILE_NAME,STRUCTSTATBUFA49A46FILE_NAME文G1226名BUFSTAT结G7512A50A51A52G6116功返回0,G1998错返回1G8892G5859点G726对于G7234通文G1226G86G87G68G87结G7512可以G14731得12个以G990的G6116员信G5699,G9994G13792G5415G73D指G1207一个共享内存G2318对象时,G2494G7389G3247个G6116员含G7389信G5699。G86G87G85UG70G87G86G87G68G87G94G80G82DG72G66G87G86G87G66G80G82DG72G30UIDG66G87G86G87G66UIDG30G74IDG66G87G86G87G66G74IDG30G82G73G73G66G87G86G87G66G86IG93G72G30G96G302418应用举例G6117G1216系统的G1375G4388G16G16G16G16G8981程G16855G5242A53A54A55A56A57A58A54A53A59A60A61A62A63A63A64A65A65A66A67A67A61A68A69A70A71A73A73A74A75A76A77A78A79A73A80A81A75A82A80A83A78A84A85A86A87A87A89A90A91A92A93A94A95A91A90A79A70A96A96A82A84A70A79A73A80A97A98A99A80A100A96A76A84A70A71A73A73A74A75A76A77A78A79A73A80A81A75A82A80A83A85A84A101A102A103A101A87A87A104A105A87A89A80A106A79A76A96A107A108A87A109A110A90A91A111A112A94A95A113A114A115A91A90A116A79A70A117A80A70A84A118A74A84A82A84A99A119A75A76A120A77A78A79A73A80A97A96A121A84A119A75A76A120A77A122A100A70A98A91A87A82A82A75A99A96A105A83A96A123A79A124A80A84A76A87A82A84A70A79A73A80A121A79A124A80A91A123A79A124A80A98A70A96A121A84A119A75A76A120A77A122A100A70A98A87A83A74A101A85A125A84A103A101A122A125A126A127A74A101A85A125A84A101A126A128A102A83A129A128A74A84A121A118A128A101A126A102A127A129A128A74A84A128A102A102A101A130A131A83A82A84A70A79A73A80A83A105A87A109A116A80A73A123A80A82A84A99A119A75A76A120A77A78A79A73A80A97A96A121A84A119A75A76A120A77A122A100A70A98A91A87A82A82A75A99A96A105A83A96A123A79A124A80A84A76A87A82A84A70A79A73A80A121A79A124A80A91A123A79A124A80A98A70A96A121A84A119A75A76A120A77A122A100A70A98A87A83A74A101A85A125A84A103A101A122A125A126A127A74A101A85A125A84A101A126A128A102A83A129A128A74A84A121A118A128A101A126A102A83A82A84A70A79A73A80A83A105A87A109A116A80A100A117A79A70A79A70A96A129A128A74A84A78A128A122A132A126A102A97A97A82A84A99A119A75A76A120A77A78A79A73A80A87A89A80A106A79A76A96A107A108A87A109A110A110A80A73A123A80A89A90A91A108A133A134A135A136A92A93A94A95A91A90A79A70A96A96A82A84A70A79A73A80A97A98A99A80A100A96A76A84A70A71A73A73A74A75A76A77A78A79A73A80A81A75A82A80A83A85A84A101A102A103A101A127A85A84A137A101A126A128A125A127A85A84A125A101A138A81A137A83A74A126A101A129A121A87A87A104A105A87A89A80A106A79A76A96A107A108A87A109A110A90A91A131A133A139A140A91A90A79A70A96A73A123A80A80A141A96A82A84A70A79A73A80A83A123A79A124A80A98A70A96A121A84A119A75A76A120A77A122A100A70A98A87A91A82A84A70A79A73A80A121A79A124A80A107A108A83A121A126A126A86A84A121A126A125A87A104A105A87A89A80A106A79A76A96A107A108A87A109A110A79A70A96A142A143A79A76A80A96A82A84A70A79A73A80A83A144A144A83A108A87A145A97A108A87A89A80A106A79A76A96A107A108A87A109A110A90A91A111A112A94A95A113A114A115A91A90A116A79A70A117A80A70A84A118A74A84A82A84A99A119A75A76A120A77A78A79A73A80A97A96A121A84A119A75A76A120A77A122A100A70A98A91A87A82A82A75A99A96A105A83A96A123A79A124A80A84A76A87A82A84A70A79A73A80A121A79A124A80A91A123A79A124A80A98A70A96A121A84A119A75A76A120A77A122A100A70A98A87A83A74A101A85A125A84A103A101A122A125A126A127A74A101A85A125A84A101A126A128A102A83A129A128A74A84A121A118A128A101A126A102A127A129A128A74A84A128A102A102A101A130A131A83A82A84A70A79A73A80A83A105A87A109A116A80A73A123A80A82A84A99A119A75A76A120A77A78A79A73A80A97A96A121A84A119A75A76A120A77A122A100A70A98A91A87A82A82A75A99A96A105A83A96A123A79A124A80A84A76A87A82A84A70A79A73A80A121A79A124A80A91A123A79A124A80A98A70A96A121A84A119A75A76A120A77A122A100A70A98A87A83A74A101A85A125A84A103A101A122A125A126A127A74A101A85A125A84A101A126A128A102A83A129A128A74A84A121A118A128A101A126A102A83A82A84A70A79A73A80A83A105A87A109A116A80A100A117A79A70A79A70A96A129A128A74A84A78A128A122A132A126A102A97A97A82A84A99A119A75A76A120A77A78A79A73A80A87A89A80A106A79A76A96A107A108A87A109A110A90A91A146A147A148A114A115A91A90A82A80A82A123A80A76A96A82A84A99A119A75A76A120A77A78A79A73A80A83A105A83A82A84A70A79A73A80A121A79A124A80A91A123A79A124A80A98A70A96A121A84A119A75A76A120A77A122A100A70A98A87A87A109A90A91A146A147A148A94A95A91A90A82A123A149A100A120A96A96A120A77A75A143A91A87A82A84A99A119A75A76A120A77A78A79A73A80A83A82A84A70A79A73A80A121A79A124A80A91A123A79A124A80A98A70A96A121A84A119A75A76A120A77A122A100A70A98A87A83A129A121A84A121A150A81A137A127A129A121A84A122A81A151A128A132A122A102A128A125A126A87A109A110在G8981程G16855G5242G18336G19766,G17837一G18108分G1039要用于共享内存中G6221G8437G19154G15932中的G6221G8437信G5699实时G14865地用的。242SYSTEMV原理系统G57共享内存通过G86G75G80G74G72G87G14731得G6122G2031G5326一个IPC共享内存G2318域,G5194返回G11468G5224的标G16794G12538。内核在G1457证G86G75G80G74G72G87G14731得G6122G2031G5326一个共享内存G2318,G2033始G2282G16825共享内存G2318G11468G5224的G86G75G80IDG66G78G72G85NG72L结G7512G8892同时,G17836将在G10317G8542文G1226系统G86G75G80中,G2031G5326G5194G6183开一个同名文G1226,G5194在内存中G5326G12447起G16825文G1226的G11468G5224DG72NG87G85G92G2462ING82DG72结G7512,新G6183开的文G1226不G4658于任何一个进程(任何进程G18129可以访问G16825共享内存G2318)。所G7389G17837一G2011G18129是系统G16855用G86G75G80G74G72G87G4448G6116的。G8611一个共享内存G2318G18129G7389一个G6523制结G7512G86G87G85UG70G87G86G75G80IDG66G78G72G85NG72L,G86G75G80IDG66G78G72G85NG72L是共享内存G2318域中G19762常G18337要的一个数G6466结G7512,它是存G1660G12661理和文G1226系统结合起来的G7737G7765,G4462G1053G3926G991G726G86G87G85UG70G87G86G75G80IDG66G78G72G85NG72LG94G86G87G85UG70G87G78G72G85NG66IG83G70G66G83G72G85G80G86G75G80G66G83G72G85G80G30G86G87G85UG70G87G73ILG72G13G86G75G80G66G73ILG72G30ING87IDG30UNG86IG74NG72DLG82NG74G86G75G80G66NG68G87G87G70G75G30UNG86IG74NG72DLG82NG74G86G75G80G66G86G72G74G86G93G30G87IG80G72G66G87G86G75G80G66G68G87IG80G72G30G87IG80G72G66G87G86G75G80G66DG87IG80G72G30G87IG80G72G66G87G86G75G80G66G70G87IG80G72G30G83IDG66G87G86G75G80G66G70G83G85IDG30G83IDG66G87G86G75G80G66LG83G85IDG30G96G30G86G75G80G66G83G72G85G80G6116员G1660存了共享内存对象的存取权限G2462G1866它一G1135信G5699。G86G75G80G66G86G72G74G86G93G6116员G4462G1053了共享的内存大小(以字节为单位)。G86G75G80G66G68G87IG80G72G6116员G1457存了最G17829一G8437进程G17842接共享内存的时间。G86G75G80G66DG87IG80G72G6116员G1457存了最G17829一G8437进程G7041开与共享内存的G17842接的时间。G86G75G80G66G70G87IG80G72G6116员G1457存了最G17829一G8437G86G75G80IDG66DG86结G7512内G4493改G2476的时G86G75G80G66G70G83IDG6116员G1457存了G2031G5326共享内存的进程的G83ID。G86G75G80G66LG83IDG6116员G1457存了最G17829一G8437G17842接共享内存的进程的G83ID。G86G75G80G66NG68G87G87G70G75G6116员G1457存了与共享内存G17842接的进程数G11458。G16825结G7512中最G18337要的一个域G5224G16825是G86G75G80G66G73ILG72,它存G1660了将G15999映射文G1226的地址。G8611个共享内存G2318对象G18129对G5224G10317G8542文G1226系统G86G75G80中的一个文G1226,一G14336G5785G1929G991,G10317G8542文G1226系统G86G75G80中的文G1226是不能用G85G72G68D、G90G85IG87G72G12573方法访问的,G5415G18331取共享内存的方式把G1866中的文G1226映射到进程地址空间G2530,可直接G18331用访问内存的方式对G1866访问。G17837G18336G6117G1216G18331用G621G64中的G3282G15932G13485G1998与系统G57共享内存G11468关数G6466结G7512G726内核通过数G6466结G7512G86G87G85UG70G87IG83G70G66IDG86G86G75G80G66IDG86维护系统中的所G7389共享内存G2318域。G990G3282中的G86G75G80G66IDG86G17G72NG87G85IG72G86G2476量指向一个IG83G70G66ID结G7512数组,G13792G8611个IG83G70G66ID结G7512数组中G7389个指向G78G72G85NG66IG83G70G66G83G72G85G80结G7512的指G19036。对于系统G57共享内存G2318来说,G78G72G85NG66IG83G70G66G83G72G85G80的G4499G1039是G86G75G80IDG66G78G72G85NG72L结G7512,G86G75G80IDG66G78G72G85NG72L是用来G6563G17860一个共享内存G2318域的,G17837样内核就能G3827G6523制系统中所G7389的共享G2318域。同时,在G86G75G80IDG66G78G72G85NG72L结G7512的G73ILG72G12879G3423指G19036G86G75G80G66G73ILG72指向文G1226系统G86G75G80中G11468G5224的文G1226,G17837样,共享内存G2318域就与G86G75G80文G1226系统中的文G1226对G5224起来。243SYSTEMV函数说明G54G60G54G55EG48G57共享内存G2318涉G2462以G991步骤G7261G17开G17779一G3371共享内存G86G75G80G74G72G872G17G1813许本进程使用共G7588G3371共享内存G86G75G80G68G873G17写G1849G18读G1998G23G17G12117止本进程使用G17837G3371共享内存G86G75G80DG87G24G17删除G17837G3371共享内存G86G75G80G70G87LG6122者G2641G1208行G991IG83G70G85G802431以创建或打开一块共享内存区函数介绍G726A152A153SHMGETA154A155G14731得文G1226G6122共享内存G2318的信G5699A156A157A158INCLUDEA157A158A159A160INTSHMGETKEY_TKEY,INTSIZE,INTSHMFLAGA161A162KEY共享内存的标G16794G12538SIZE大小SHMFLAG内存的模式MODE以G2462权限标G16794A165A166A167G6116功返回标G16794,G1998错返回1参数详解G726KEY在IPC的通信模式G991,不G12661是使用G9052G5699G19443G2027G17836是共享内存,G10990G14279是信G2507量,G8611个IPC的对象G82G69G77G72G70G87G18129G7389G2819一的名字,G12228为G256G19202G257G78G72G92。通过G256G19202G257,进程能G3827G16794G2047所用的对象。G256G19202G257与IPC对象的关系就G3926同文G1226名G12228G1055于文G1226,通过文G1226名,进程能G3827读写文G1226内的数G6466,G10990G14279多个进程能G3827共用一个文G1226。G13792在IPC的通G16771模式G991,通过G256G19202G257的使用G1075使得一个IPC对象能为多个进程所共用。LINUX系统中的所G7389G15932G12046G54G92G86G87G72G80G57中IPC对象的数G6466结G7512G18129G2265G6336一个IG83G70G66G83G72G85G80结G7512,G1866中G2265含G7389IPC对象的G19202值,G16825G19202用于G7609G6226G54G92G86G87G72G80G57中IPC对象的G5353用标G16794G12538。G3926G7536不使用G256G19202G257,进程将G7092法存取IPC对象,G3252为IPC对象G5194不存在于进程本G17535使用的内存中。G46G72G92使用者要显G12046G4462G1053。SIZEG86IG93G72是要G5326G12447共享内存的G19283G5242。所G7389的内存分配G6817G1328G18129是以页为单位的。所以G3926G7536一段进程G2494G11015G16843一G3371G2494G7389一个字节的内存,内存G1075会分配整整一页在I3G27G25机G3132中一页的G

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论