锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲婷婷国产精品电影人久久,亚洲一区二区毛片,久久久精品日韩欧美http://www.shnenglu.com/xieshuo/You will never walk alone!zh-cnWed, 24 Sep 2025 05:10:21 GMTWed, 24 Sep 2025 05:10:21 GMT60綆楁硶瀵艱璇諱功絎旇.http://www.shnenglu.com/xieshuo/archive/2014/07/08/207577.html Torres TorresTue, 08 Jul 2014 12:11:00 GMThttp://www.shnenglu.com/xieshuo/archive/2014/07/08/207577.htmlhttp://www.shnenglu.com/xieshuo/comments/207577.htmlhttp://www.shnenglu.com/xieshuo/archive/2014/07/08/207577.html#Feedback0http://www.shnenglu.com/xieshuo/comments/commentRss/207577.htmlhttp://www.shnenglu.com/xieshuo/services/trackbacks/207577.htmlPushing yourself when no one else is around.

Torres 2014-07-08 20:11 鍙戣〃璇勮
]]>
Linux memory summaryhttp://www.shnenglu.com/xieshuo/archive/2013/12/09/204679.html Torres TorresMon, 09 Dec 2013 09:42:00 GMThttp://www.shnenglu.com/xieshuo/archive/2013/12/09/204679.htmlhttp://www.shnenglu.com/xieshuo/comments/204679.htmlhttp://www.shnenglu.com/xieshuo/archive/2013/12/09/204679.html#Feedback0http://www.shnenglu.com/xieshuo/comments/commentRss/204679.htmlhttp://www.shnenglu.com/xieshuo/services/trackbacks/204679.htmlFrom Unix鏌愯鍧涳紝蹇樿鍚嶅瓧浜?..浣嗚繖孌墊枃瀛椾粠瀹忚涓婅娓呮浜哃inux Memory鐨勬瀯鏋躲?br />1. 鍐呮牳鍒濆鍖栵細

    *
鍐呮牳寤虹珛濂藉唴鏍擱〉鐩綍欏佃〃鏁版嵁搴擄紝鍋囪鐗╃悊鍐呭瓨澶у皬涓?/span>len錛屽垯寤虹珛浜?/span>[3G--3G+len]::[0--len]榪欐牱鐨勮櫄鍦板潃vaddr鍜岀墿鐞嗗湴鍧paddr鐨勭嚎鎬у搴斿叧緋伙紱
    *
鍐呮牳寤虹珛涓涓?/span>page鏁扮粍錛?/span>page鏁扮粍鍜岀墿鐞嗛〉闈㈢郴鍒楀畬鍏ㄦ槸綰挎у搴旓紝page鐢ㄦ潵綆$悊璇ョ墿鐞嗛〉闈㈢姸鎬侊紝姣忎釜鐗╃悊欏甸潰鐨勮櫄鍦板潃淇濆瓨鍦?/span>page->virtual涓紱
    *
鍐呮牳寤虹珛濂戒竴涓?/span>free_list錛屽皢娌℃湁浣跨敤鐨勭墿鐞嗛〉闈㈠搴旂殑page鏀懼叆鍏朵腑錛屽凡緇忎嬌鐢ㄧ殑灝變笉鐢ㄦ斁鍏ヤ簡錛?/span>

2.
鍐呮牳妯″潡鐢寵鍐呭瓨vaddr = get_free_pages(mask,order)錛?/span>

    *
鍐呭瓨綆$悊妯″潡浠?/span>free_list鎵懼埌涓涓?/span>page錛屽皢page->virtual浣滀負榪斿洖鍊鹼紝璇ヨ繑鍥炲煎氨鏄搴旂墿鐞嗛〉闈㈢殑铏氬湴鍧錛?/span>
    *
灝?/span>page浠?/span>free_list涓劚紱伙紱
    *
妯″潡浣跨敤璇ヨ櫄鎷熷湴鍧鎿嶄綔瀵瑰簲鐨勭墿鐞嗗唴瀛橈紱

3.
鍐呮牳妯″潡浣跨敤vaddr錛屼緥濡傛墽琛屾寚浠?/span>mov(eax, vaddr)錛?/span>

    * CPU
鑾峰緱vaddr榪欎釜铏氬湴鍧錛屽埄鐢ㄥ緩绔嬪ソ鐨勯〉鐩綍欏佃〃鏁版嵁搴擄紝鎵懼埌鍏跺搴旂殑鐗╃悊鍐呭瓨鍦板潃錛?/span>
    *
灝?/span>eax鐨勫唴瀹瑰啓鍏?/span>vaddr瀵瑰簲鐨勭墿鐞嗗唴瀛樺湴鍧鍐咃紱

4.
鍐呮牳妯″潡閲婃斁鍐呭瓨free_pages(vaddr,order)錛?/span>

    *
渚濇嵁vaddr鎵懼埌瀵瑰簲鐨?/span>page錛?/span>
    *
灝嗚page鍔犲叆鍒?/span>free_list涓紱

5.
鐢ㄦ埛榪涚▼鐢寵鍐呭瓨vaddr = malloc(size)錛?/span>

    *
鍐呭瓨綆$悊妯″潡浠庣敤鎴瘋繘紼嬪唴瀛樼┖闂?/span>(0--3G)涓壘鍒頒竴鍧楄繕娌′嬌鐢ㄧ殑絀洪棿vm_area_struct(start--end)錛?/span>
    *
闅忓悗灝嗗叾鎻掑叆鍒?/span>task->mm->mmap閾捐〃涓紱

6.
鐢ㄦ埛榪涚▼鍐欏叆vaddr(0-3G)錛屼緥濡傛墽琛屾寚浠?/span>mov(eax, vaddr)錛?/span>

    * CPU
鑾峰緱vaddr榪欎釜铏氬湴鍧錛岃铏氬湴鍧搴旇宸茬粡鐢?/span>glibc搴撹緗ソ浜嗭紝涓瀹氬湪3G涓涓嬬殑鏌愪釜鍖哄煙錛屾牴鎹?/span>CR3瀵勫瓨鍣ㄦ寚鍚戠殑current->pgd鏌ュ綋鍓嶈繘紼嬬殑欏電洰褰曢〉琛ㄦ暟鎹簱錛屽彂鐜拌vaddr瀵瑰簲鐨勯〉鐩綍琛ㄩ」涓?/span>0錛屾晠浜х敓寮傚父錛?/span>
    *
鍦ㄥ紓甯稿鐞嗕腑錛屽彂鐜拌vaddr瀵瑰簲鐨?/span>vm_area_struct宸茬粡瀛樺湪錛屼負vaddr瀵瑰簲鐨勯〉鐩綍琛ㄩ」鍒嗛厤涓涓〉琛紱
    *
闅忓悗浠?/span>free_list鎵懼埌涓涓?/span>page錛屽皢璇?/span>page瀵瑰簲鐨勭墿鐞嗛〉闈㈢墿鐞嗛鍦板潃璧嬬粰vaddr瀵瑰簲鐨勯〉琛ㄨ〃欏癸紝寰堟槑鏄撅紝姝ゆ椂鐨?/span>vaddr鍜?/span>paddr涓嶆槸綰挎у搴斿叧緋諱簡錛?/span>
    *
灝?/span>page浠?/span>free_list涓劚紱伙紱
    *
寮傚父澶勭悊榪斿洖錛?/span>
    * CPU
閲嶆柊鎵ц鍒氬垰鍙戠敓寮傚父鐨勬寚浠?/span>mov(eax, vaddr)錛?/span>
    * CPU
鑾峰緱vaddr榪欎釜铏氬湴鍧錛屾牴鎹?/span>CR3瀵勫瓨鍣ㄦ寚鍚戠殑current->pgd錛屽埄鐢ㄥ緩绔嬪ソ鐨勯〉鐩綍欏佃〃鏁版嵁搴擄紝鎵懼埌鍏跺搴旂殑鐗╃悊鍐呭瓨鍦板潃錛?/span>
    *
灝?/span>eax鐨勫唴瀹瑰啓鍏?/span>vaddr瀵瑰簲鐨勭墿鐞嗗唴瀛樺湴鍧鍐咃紱  

7.
鐢ㄦ埛榪涚▼閲婃斁鍐呭瓨vaddr錛?/span>free(vaddr)錛?/span>

    *
鎵懼埌璇?/span>vaddr鎵鍦ㄧ殑vm_area_struct錛?/span>
    *
鎵懼埌vm_area_struct:start--end瀵瑰簲鐨勬墍鏈夐〉鐩綍欏佃〃欏癸紝娓呯┖瀵瑰簲鐨勬墍鏈夐〉琛ㄩ」錛?/span>
    *
閲婃斁榪欎簺欏佃〃欏規寚鍚戠墿鐞嗛〉闈㈡墍瀵瑰簲鐨?/span>page錛屽茍灝嗚繖浜?/span>page鍔犲叆鍒?/span>free_list闃熷垪涓紱
    *
鏈夊繀瑕佽繕浼氭竻絀轟竴浜涢〉鐩綍琛ㄩ」錛屽茍閲婃斁榪欎簺欏電洰褰曡〃欏規寚鍚戠殑欏佃〃錛?/span>
    *
浠?/span>task->mm->mmap閾句腑鍒犻櫎璇?/span>vm_area_struct騫墮噴鏀炬帀錛?/span>

緇煎悎璇存槑錛?/span>

    *
鍙敤鐗╃悊鍐呭瓨灝辨槸free_list涓悇page瀵瑰簲鐨勭墿鐞嗗唴瀛橈紱
    *
欏電洰褰曢〉琛ㄦ暟鎹簱鐨勪富瑕佺洰鐨勬槸涓?/span>CPU璁塊棶鐗╃悊鍐呭瓨鏃惰漿鎹?/span>vaddr-->paddr浣跨敤錛屽垎閰嶄互鍙婇噴鏀懼唴瀛樻椂涓嶄細鐢ㄥ埌錛屼絾鏄渶瑕佸唴鏍稿唴瀛樼鐞嗙郴緇熷湪鍚堥傛椂鏈轟負CPU寤虹珛濂借搴擄紱
    *
瀵逛簬鐢ㄦ埛榪涚▼鍦?/span>6涓幏寰楃殑鐗╃悊欏甸潰錛屾湁涓や釜欏佃〃欏瑰搴旓紝涓涓氨鏄唴鏍擱〉鐩綍欏佃〃鏁版嵁搴撶殑鏌愪釜pte[i ]錛屼竴涓氨鏄綋鍓嶈繘紼嬪唴鏍擱〉鐩綍欏佃〃鏁版嵁搴撶殑鏌愪釜 pte[j]錛屼絾鏄彧鏈変竴涓?/span>page鍜屽叾瀵瑰簲銆傚鏋滄鏃惰皟搴﹀埌鍏朵粬榪涚▼錛屽叾浠栬繘紼嬬敵璇峰茍璁塊棶鏌愪釜鍐呭瓨錛屽垯涓嶄細娑夊強鍒拌鐗╃悊欏甸潰錛屽洜涓哄叾鍒嗛厤鏃墮鍏堣浠?/span> free_list涓壘涓涓?/span>page錛岃岃鐗╃悊欏甸潰瀵瑰簲鐨?/span>page宸茬粡浠?/span>free_list涓劚紱誨嚭鏉ヤ簡錛屽洜姝や笉瀛樺湪璇ョ墿鐞嗛〉闈㈣鍏朵粬榪涚▼鏀瑰啓鎿嶄綔鐨勬儏鍐點傚唴鏍鎬腑閫氳繃get_free_pages絳夋柟寮忚幏鍙栧唴瀛樻椂錛屼篃涓嶄細娑夊強鍒拌鐗╃悊欏甸潰錛屽師鐞嗗悓鍓嶆墍榪般?/span>

Torres 2013-12-09 17:42 鍙戣〃璇勮
]]>
楂樻ц兘JNIhttp://www.shnenglu.com/xieshuo/archive/2013/12/09/204678.html Torres TorresMon, 09 Dec 2013 09:40:00 GMThttp://www.shnenglu.com/xieshuo/archive/2013/12/09/204678.htmlhttp://www.shnenglu.com/xieshuo/comments/204678.htmlhttp://www.shnenglu.com/xieshuo/archive/2013/12/09/204678.html#Feedback0http://www.shnenglu.com/xieshuo/comments/commentRss/204678.htmlhttp://www.shnenglu.com/xieshuo/services/trackbacks/204678.htmlfrom: http://www.cnblogs.com/whjiang/articles/1387364.html

1. 灝藉彲鑳戒笉瑕佸垱寤篻lobal reference鍜実lobal weak reference. 鍒涘緩榪欎袱綾誨紩鐢ㄧ殑JNI鎺ュ彛NewGlobalReference鍜孨ewGlobalWeakReference鍐呴儴瀹炵幇

鏈変竴涓攣銆傝繖涓攣浣垮緱鍦ㄥ澶勭悊鍣ㄤ笂鐨勫彲鎵╁睍鎬ч潪甯稿樊錛屽洜涓哄悇涓嚎紼嬮兘鍦ㄧ瓑寰呰繖涓攣銆傛墍浠ュ敖閲忎笉瑕佸湪native淇濆瓨java 瀵硅薄鐨勫紩鐢紝鎯呮効鍦ㄦ瘡嬈?/span>
JNI call鏃墮兘甯︾偣鍙傛暟銆傚綋鐒訛紝鍦╪ative淇濇寔java瀵硅薄鐨刲ocal reference鏄潪甯稿嵄闄╃殑錛岀粷瀵逛笉鑳介偅鏍峰共銆?/span>

2. 灝介噺涓嶈浣跨敤GetPrimitiveArrayCritical/ReleasePrimitiveArrayCritical鏉in浣廕ava鍐呭瓨銆侸VM鏈韓娌℃湁鎻愪緵浠諱綍鍙猵in浣忎竴鍧桱ava鍐呭瓨鑰屼笉褰?/span>
鍝岹C鐨勬搷浣滐紝鎵浠ヨ繖涓搷浣滄槸浼氶樆姝C榪涜鐨勩備綔涓鴻ˉ鍋匡紝ReleasePrimitiveArrayCritical浼氫駭鐢熶竴嬈¢殣寮忕殑GC璋冪敤銆傝繖鏍峰氨鍙兘鍑虹幇鍦ㄩ渶瑕丟C鐨勬椂
鍊欐棤娉旼C錛岃屽湪涓嶉渶瑕丟C鏃惰繘琛屾棤鎰忎箟GC鐨勬儏鍐點傚彟澶栵紝榪欎袱涓搷浣滅殑瀹炵幇涓湪鏌愪簺鎯呭喌涓嬩篃鍙兘瑙﹀彂閿併傝В鍐蟲柟娉曪細濡傛灉鏄皬鍧楀唴瀛樼殑璇濓紝鎯呮効浣?/span>
鐢℅et<Type>ArrayRegion鍜孲et<Type>ArrayRegion鏉ュ湪native鍜孞ava涔嬮棿澶嶅埗鍐呭瓨銆?/span>

3. 鍦↗ava appliation涓敖閲忎笉瑕佸垱寤簆hantom reference鎴栬卻oft reference銆傝繖浜況eference浼氭瀬澶х殑褰卞搷GC銆?/span>
鎴戜滑鍏堟潵璋堣皥JVM鐨凣C銆侴C鍒嗕負minor GC鍜宖ull GC銆侸ava鍐呭瓨鍒嗕負young鍜宱ld涓や唬銆傚湪young memory涓紝姣忎釜綰跨▼閮芥湁鑷繁鐨勫唴瀛樺垎閰嶅潡錛堜笉鍜屽叾瀹?/span>
綰跨▼鍏變韓錛夛紝鑰宱ld memory鏄敱鎵鏈夌嚎紼嬪叡浜殑銆俶inor GC鍙young memory浣淕C錛岃宖ull GC瀵規墍鏈夊唴瀛橀兘鍋欸C銆俶inor GC鏄彲浠ュ綰跨▼騫惰榪涜鐨?/span>
錛岃宖ull GC榛樿鍙兘鍗曠嚎紼嬫墽琛屻傛墍浠ワ紝涓嬈ull GC闇瑕佺殑鏃墮棿鍙互鏄痬inor GC鏄?0鍊嶄互涓婏紙鍙互鐢?verbose:gc瑙傚療錛夈傛墍浠ュ湪涓鑸簲鐢ㄤ腑錛?/span>
minor GC鐨勬鏁板簲璇ユ槸full GC鐨?0鍊嶅乏鍙蟲槸姣旇緝鐞嗘兂鐨勩俶inor GC浼氬皢鏃犳硶鏀墮泦鐨勫璞$Щ鍔ㄥ埌old memory涓幓銆?/span>

minor GC涓嶄細瀵筽hantom reference鍜宻oft reference榪涜鏀墮泦錛屽彧鏈塮ull GC鎵嶄細銆傝繖鏍風殑闂灝辨槸澶ч噺鐨勮繖綾誨璞$Н鑱氳搗鏉ワ紝浜х敓璁稿鐨勫唴瀛樺鍒躲?/p>

榪欐牱姣忔minor GC鍙兘灝卞熀鏈笂娌℃湁閲婃斁澶氬皯鍐呭瓨錛屼嬌寰梖ull GC灝變細琚綣佽Е鍙戙傚彲鑳藉嚭鐜癿inor GC鍜宖ull GC嬈℃暟1錛?鐨勬儏鍐碉紝鐢氳嚦鍏ㄦ槸full GC銆?/p>

榪欐牱錛屾棤璁烘槸鎬ц兘榪樻槸鍙墿灞曟ч兘鏄潪甯稿樊鐨勩?br />

weak reference鐨勫獎鍝嶅ソ鍍忓皬涓浜涳紝浣嗕篃搴旇灝介噺閬垮厤銆?/span>

 

鍦↗NI寮鍙戜腑錛屼嬌鐢ㄨ繖3縐峳eference鐨勪富瑕佺洰鐨勬槸淇濊瘉native璧勬簮鐨勯噴鏀俱傚洜涓簀ava瀵硅薄鐨刦inalize鏂規硶鏄笉淇濊瘉琚皟鐢ㄧ殑錛屾墍浠ュ繀欏葷敤榪欎簺

reference鏉ュ府鍔╁疄鐜皀ative璧勬簮閲婃斁銆備負浜嗛伩鍏嶄笂榪扮殑闂錛屼竴縐嶅彲琛岀殑鏂規硶鏄皢native璧勬簮serialize鎴愪竴鍧楀唴瀛橈紝鐒跺悗鏀懼埌java瀵硅薄涓繚瀛橈紝浠?/span>
鑰岄伩鍏嶄嬌鐢ㄨ繖浜況eference銆?/span>

4. NIO鏄笉閿欑殑Java鍜宯ative涔嬮棿share memory鐨勬柟娉曘備絾瑕佹敞鎰忓畠鐨勬ц兘銆傞鍏堜竴瀹氳璁劇疆瀵筨ig endian榪樻槸little endian錛岄槻姝VM鍋氶澶栫殑
endian杞崲鍔ㄤ綔銆傚叾嬈℃槸鍦ㄥ惎鍔↗VM鏃朵竴瀹氳鍔犱笂-server閫夐」錛屽惁鍒檔io鎬ц兘浼氶潪甯稿樊銆傚湪-server mode涓嬶紝nio鎬ц兘澶ф姣攋ava鏁扮粍鎱?0%~50%.鍦?
client mode涓嬶紝鎬ц兘宸?鍊嶄互涓娿?/span>

5. 灝介噺涓嶈鍦↗NI鍘籲ew Java String瀵硅薄銆傝繖涓瘮鍦╦ava灞俷ew鎱㈠緢澶氥?/span>

6. 瀵筳ava澶у璞★紙姣旀柟璇存暟緇勶級錛屼竴瀹氳浠旂粏鐨則une浠栫殑澶у皬銆備竴鑸潵璇達紝灝忓璞″GC姣旇緝鍙嬪ソ銆傚洜涓哄璞″垎閰嶆椂鍏堢湅姣忎釜綰跨▼鑷繁鐨剏oung memory
錛屽鏋滄壘鐨勫埌瓚沖澶х殑鍐呭瓨鐨勮瘽錛屽氨鍒嗛厤銆傚惁鍒欏湪old memory涓垎閰嶃傚洜涓簅ld memory鏄痵hared錛屾墍浠ュ彲鑳芥湁閿佸紑閿銆傝屼笖old memory涓殑瀵硅薄鍙湁
full GC鎵嶈兘閲婃斁瀹冦傛墍浠ュ璞℃瘮杈冨皬鏄瘮杈冨ソ鐨勩侸VM鐨勫唴瀛樺垎閰嶇畻娉曟槸涓哄皬瀵硅薄浼樺寲榪囩殑錛屽ぇ閲忓皬瀵硅薄鐨勫垎閰嶆槸寰堥珮鏁堢殑錛屾墍浠ヤ笉鐢ㄦ曟妸澶у璞℃媶灝忋?/span>
鍦ㄦ煇浜涙儏鍐典笅錛屽鏋滅煡閬撳璞′細媧葷殑寰堜箙鐨勮瘽錛屽氨璁╁畠澶т竴鐐癸紝澧炲姞瀹冪洿鎺ュ垎閰嶅湪old memory涓殑姒傜巼銆傝繖鏍峰彲浠ヨ妭綰oung GC鎷瘋礉榪欎釜瀵硅薄鍒皁ld 

memory涓殑寮閿銆?/p>



Torres 2013-12-09 17:40 鍙戣〃璇勮
]]>
絎簩绔?緙栬瘧鍜岄摼鎺?/title><link>http://www.shnenglu.com/xieshuo/archive/2013/10/21/203851.html</link><dc:creator> Torres</dc:creator><author> Torres</author><pubDate>Mon, 21 Oct 2013 09:01:00 GMT</pubDate><guid>http://www.shnenglu.com/xieshuo/archive/2013/10/21/203851.html</guid><wfw:comment>http://www.shnenglu.com/xieshuo/comments/203851.html</wfw:comment><comments>http://www.shnenglu.com/xieshuo/archive/2013/10/21/203851.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/xieshuo/comments/commentRss/203851.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/xieshuo/services/trackbacks/203851.html</trackback:ping><description><![CDATA[<div>絎簩绔?/div><div>緙栬瘧鍜岄摼鎺?/div><div>榪欑珷姣旇緝絎肩粺錛岄兘鏄蹇碉紝鐔熸倝鍩烘湰嫻佺▼鐨勪漢錛屽緩璁笉鐪嬨?/div><div> </div><div>璁板綍涓浜涘熀鏈祦紼?/div><div> </div><div>鎷縂CC鏉ヨ</div><div>鐢℅CC緙栬瘧閾炬帴鐢熸垚鍙墽琛屾枃浠剁殑榪囩▼鍒嗕負涓嬮潰4涓楠?/div><div>Prepressing錛孋ompilation錛孉ssembly錛孡inking</div><div> </div><div>Prepressing 棰勫鐞?/div><div>浠?c -> .i (gcc -E)</div><div>涓昏鏄鐞嗭紝鍓嶇紑涓?#8216;#’鐨勮鍙?/div><div> </div><div>define鐨勭洿鎺ユ浛鎹?/div><div>瀵筪efine榪欑錛屼粠鎴戣瀵熷簲璇ユ槸榪欐牱</div><div>瀵規簮鏂囦歡綾諱技.c鐩存帴鎵弿 鐪嬪埌define鐨勭鍙風洿鎺ュ姞鍒拌〃涓?/div><div>鐒跺悗鍦ㄦ浛鎹㈢殑鏃跺欎細鍋氶掑綊媯鏌ワ紝鐩村埌絎﹀彿鏄渶緇堝畾涔夈?/div><div> </div><div>鎵浠ヨ繖涓笌define鐨勯『搴忔病鏈夊お澶у叧緋諱簡錛屽彧瑕佷笉寰幆宓屽</div><div> </div><div>綾諱技榪欑</div><div>#define M (N + 1)</div><div>#define N 2</div><div> </div><div>榪欑鍦ㄧ敤鍒癕鐨勬椂鍊欙紝浼氬厛鏇挎崲鎴?錛圢 + 1錛変絾鏄彂鐜版浛鎹㈢殑琛ㄨ揪寮忎腑榪樻湁鏈喅symbol錛岄偅涔?/div><div>灝卞啀榪涜鏇挎崲 錛? + 1錛?/div><div> </div><div>琛ㄤ腑騫朵笉浼氱洿鎺ュ啓鎴?M 錛? + 1錛夛紝鑷沖皯鎴戠湅鍒扮殑GCC琛屼負鏄繖鏍楓?/div><div> </div><div>include鐨勪篃鏄洿鎺ュ鍏?/div><div> </div><div>鍙﹀棰勭紪璇戦夐」 #ifdef 涔嬬被鐨勪細澶勭悊鎺夛紝鍒犳帀鎵鏈夋敞閲?/div><div> </div><div>#pragma鏄琚繚鐣欑粰緙栬瘧鍣ㄧ殑錛岃繖鏄紪璇戝櫒閫夐」錛屼緥濡?pragma pack鏄敤鏉ユ寚瀹氬瓧鑺傚榻愭爣鍑嗙殑</div><div> </div><div>Compilation 緙栬瘧</div><div>浠?.i -> .s (gcc -S)</div><div>鐜板湪鐨凣CC鐗堟湰閮芥妸棰勭紪璇戝拰緙栬瘧鍋氬埌浜嗕竴涓彲鎵ц紼嬪簭涓?-> ccl</div><div> </div><div>緙栬瘧鐨勪富瑕佽繃紼?/div><div>鎵弿錛岃娉曞垎鏋愶紝璇箟鍒嗘瀽錛屾簮浠g爜浼樺寲錛屼唬鐮佺敓鎴愶紝鐩爣浠g爜浼樺寲</div><div>Source code --Scanner--> Tokens --Parser--> Syntax Tree</div><div>--Semantic Analyzer--> Commented Syntax Tree --Source code Optimizer--> Intermediate Representation</div><div>--Code Generator--> Target Code --Code Optimizer-->Final Target Code<br /><div> </div><div>Assembly 姹囩紪</div><div>浠?.s -> .o (gcc -c) -->姹囩紪鍣╝s</div><div> </div><div>Linking 閾炬帴</div><div>ld鍋氱殑浜嬫儏</div><div>link鐨勬椂鍊欑敱浜庢瘡涓簮鏂囦歡閮芥槸鍗曠嫭緙栬瘧錛岄偅涔堝繀欏誨鐞嗕竴浜涘鏉ョ殑symbol</div><div>鍖呮嫭鍑芥暟鍜屽叏灞鍙橀噺</div></div><div></div><img src ="http://www.shnenglu.com/xieshuo/aggbug/203851.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/xieshuo/" target="_blank"> Torres</a> 2013-10-21 17:01 <a href="http://www.shnenglu.com/xieshuo/archive/2013/10/21/203851.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>絎竴绔?娓╂晠鑰岀煡鏂?/title><link>http://www.shnenglu.com/xieshuo/archive/2013/10/18/203804.html</link><dc:creator> Torres</dc:creator><author> Torres</author><pubDate>Fri, 18 Oct 2013 11:42:00 GMT</pubDate><guid>http://www.shnenglu.com/xieshuo/archive/2013/10/18/203804.html</guid><wfw:comment>http://www.shnenglu.com/xieshuo/comments/203804.html</wfw:comment><comments>http://www.shnenglu.com/xieshuo/archive/2013/10/18/203804.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/xieshuo/comments/commentRss/203804.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/xieshuo/services/trackbacks/203804.html</trackback:ping><description><![CDATA[<div>絎竴绔?/div> <div>鍗拌薄:</div> <div>紜歡PCI/ISA鐨勬灦鏋?/div> <div>North Bridge鐩稿綋浜庝漢鐨勫績鑴忥紝榪炴帴鎵鏈夐珮閫熻澶囷紝CPU ->澶ц剳</div> <div>鍗楁ˉ鑺墖鍒欒礋璐d綆閫熻澶囪繛鎺?br />  </div> <div></div> <div>SMP<br /> </div> <div></div> <div>涓棿灞?鏄В鍐沖緢澶氶棶棰樼殑澶ф柟鍚?/div> <div>Any problem in computer science can be resolved by another layer of indirection<br /> <br />CPU瀵嗛泦鍨?IO瀵嗛泦鍨?/div> <div>榪欎袱縐嶇被鍨嬬殑Process錛岀悊璁轟笂浼樺厛綰ч珮鐨勶紝涔熷氨鏄鏈搴旇鍏堝緱鍒癈PU鐨勬槸IO瀵嗛泦鍨?/div> <div></div> <div>閫氫織鐨勭悊瑙e簲璇ユ槸IO瀵嗛泦鍨嬪仛瀹屼簨鎯呰姳鐨凜PU鏃墮棿鏈灝戯紝鐒跺悗灝變細絳夊緟IO璁懼鐨勫弽搴旓紝榪欐牱鍙互璁╄澶囨ц兘鏈澶у寲<br /> </div> <div></div> <div>Memory</div> <div>鍒嗘鍒嗛〉 MMU<br /> </div> <div></div> <p>綰跨▼瀹夊叏鍜岀嚎紼嬫ā鍨?br /> </p> <div>鍏朵腑綰跨▼瀹夊叏鏈変袱浠朵簨鎯呰娉ㄦ剰</div> <div>Semaphore</div> <div>Mutex</div> <div>涓婇潰榪欎袱涓彲浠ュ仛鎴愬叏灞鐨勶紝騫朵笉涓瀹氭槸By Process鐨勶紝渚嬪POSIX pthread鍦?/div> <div>瀵筂utex鍋歛ttr璁懼畾鐨勬椂鍊欏氨鍙互鎸囧畾涓?shared process</div> <div>涔熷氨鏄涓涓狿rocess鍙互鍔犻攣錛屽彟澶栦竴涓彲浠ラ噴鏀句粬銆?/div> <div>鍙﹀榪欑Mutex蹇呴』澶勫湪鍏變韓鍐呭瓨涓紝鍚﹀垯娌″姙娉曡闂傛湁浜茬紭鍏崇郴鐨凱rocess鍙互閫氳繃mmap涓涓尶鍚嶆槧灝勫仛鍒?/div> <div>anyway鏈夊緢澶氭柟寮忎簡銆?br /> </div> <div></div> <div>Critical Section</div> <div>榪欎釜鏄疘nter Process鐨勪笢瑗褲?br /> </div> <div></div> <div>鍏充簬綰跨▼浜掓枼鐨刲ock鐨勯棶棰?/div> <div>RW lock灝辨槸瀵規櫘閫歭ock璁板綍涓や釜鐘舵佹潵渚況ead or write鎿嶄綔閫夋嫨<br /> <br />灞炰簬綰跨▼鏈韓鐨勪笢瑗?TLS/Stack/Register<br /> </div> <div>鏈夋椂鍊欑紪璇戝櫒浼氫負浜嗗仛浼樺寲</div> <div>鍐呭瓨鍜屽瘎瀛樺櫒鐨勬暟鎹細鍑虹幇涓峴ync鐨勭姸鎬併?/div> <div></div> <div>鍗充嬌浣犵敤lock鏉ュ仛淇濇姢,涔熶笉涓瀹氳兘OK銆傜劧鍚巚olatile灝卞嚭鐜頒簡銆?nbsp;<br /> </div> <div>volatile鏈涓昏鐨勪綔鐢ㄥ氨鏄痶hread鍐呬繚璇佺紪璇戝櫒涓嶈鍋氫紭鍖栵紝闃叉榪欑涓峴ync甯︽潵鐨勯棶棰樸?/div> <div></div> <div>涓鑸槸榪欐牱渚嬪x鍙橀噺錛宼hread_1璇誨埌x鍙橀噺鏀懼埌浜嗗瘎瀛樺櫒涓紝鍥犱負鍙兘椹笂浼氬啀璁塊棶瀹冿紝閭d箞瀵箈榪涜鎿嶄綔鍚庡氨涓嶄細鍐欏洖鍐呭瓨</div> <div>榪欐牱鍗充嬌浣犲姞浜唋ock錛岃繖涓椂鍊檒ock涔熻閲婃斁鎺変簡錛堟搷浣滃畬鎴愶級錛屼絾鏄粨鏋滄湭鑳絊ync錛岄偅涔坱hread 2鏉ヨ闂畑鐨勬椂鍊欙紝鍦ㄥ唴瀛?/div> <div>涓嬁鍒扮殑鍊煎氨鍙樻垚dirty鐘舵佷簡銆?br />  </div> <div></div> <div>鍙﹀涓縐嶈繃搴︿紭鍖栧氨鏄疌PU鍋氱殑浼樺寲錛屾湁浜涗笂涓嬭涔夋棤鍏崇殑鎸囦護錛孋PU鏈夊彲鑳戒細璋冩暣榪愯欏哄簭銆?/div> <div>涔︿腑鏈変釜緇忓吀鏍蜂緥</div> <div>涓孌?Singleton pattern鐨刣ouble-check鐨勪唬鐮?/div> <div></div> <div>volatile T* pInst = NULL;</div> <div>T* getInstance()</div> <div>{</div> <div><span style="white-space:pre"> </span>if (pInst == NULL)</div> <div><span style="white-space:pre"> </span>{</div> <div><span style="white-space:pre"> </span>lock();</div> <div><span style="white-space:pre"> </span>if (pInst == NULL)</div> <div><span style="white-space:pre"> </span>pInst = new T();</div> <div><span style="white-space:pre"> </span>unlock();</div> <div><span style="white-space:pre"> </span>}</div> <div><span style="white-space:pre"> </span>return pInst;</div> <div>}<br /><br /> </div> <div></div> <div>榪欓噷鏈変袱鐐?/div> <div>絎竴錛宒ouble-check 涔熷氨鏄弻if鑳介伩鍏嶈繃澶氱殑鏃犵敤鐨刧et lock錛岄檷浣庢秷鑰?/div> <div>瀵逛復鐣屽尯闇瑕佸仛淇濇姢鐨勮祫婧愶紝鍙互鎻愬墠鍘誨彇鐘舵侊紝濡傛灉絎﹀悎鑷繁鐨勯鏈燂紝鑰屼笖鐭椂闂翠笉浼氭湁鍙樺寲錛岄偅涔堝氨涓嶇敤鍘繪嬁閿佷簡</div> <div>涓嶇煡閬撲負鍟ユ垜鎯沖埌浜唘nlikely錛屼絾浠旂粏鎯充竴涓嬶紝鍔熻兘瀹屽叏涓嶅悓銆?br /> </div> <div></div> <div>絎簩鐐逛篃灝辨槸瑕佽鐨凜PU鐨勮繃搴︿紭鍖?/div> <div>榪欓噷宸茬粡鏄0鏄巚olatile浜嗭紝鎵浠ユ病鏈夊瘎瀛樺櫒鍜屽唴瀛樹笉sync鐨勯棶棰?/div> <div>浣嗘槸鐢變簬榪欓噷new闇瑕佸厛 malloc鍑虹┖闂達紝鐒跺悗call T鐨刢onstructor銆?/div> <div>鎵浠ユ湁鍙兘浼氬彂鐢熻繖縐嶆儏鍐碉紝malloc鍑虹┖闂村悗錛屾妸鍦板潃浠樼粰pInst錛岀劧鍚庡幓鍋氬垵濮嬪寲錛?/div> <div>榪欐牱灝辨湁鍙兘鍙﹀涓涓嚎紼嬪彇寰楃殑object鏄病鏈夎瀹屽叏鍒濆鍖栧ソ鐨勶紝鏄惁浼氬嚭闂depend on T鐨勫叿浣撳疄鐜頒簡銆?/div> <div></div> <div>璁稿CPU鎻愪緵浜哹arrier鎸囦護鐢ㄦ潵瑙e喅涓婇潰鎻愬埌鐨勯棶棰樸?br /> </div> <div></div> <div></div> <div>綰跨▼妯″瀷</div> <div>榪欎釜涓滆タ錛屾垜鐪嬩簡涓嬶紝寮濮嬫病鐪嬫槑鐧斤紝榪欒竟涔﹁繖涓笢瑗挎病璁叉竻妤氾紝鍚庢潵鍘葷綉涓婃壘浜嗕簺璧勬枡銆傜敤鎴風嚎紼嬪拰鍐呮牳綰跨▼鐨勫搴斿叧緋誨彇鍐充簬璋冨害鍗曚綅銆?/div> <div>涔熷氨鏄鍐呮牳鎶婁粈涔堜笢瑗垮綋鍋氫竴涓皟搴﹀崟浣?br /> </div> <div>鎷縇inux鏉ヨ鍚э紝Process鏄嚎紼嬮泦鍜岃祫婧愰泦<br /> </div> <div>璋冨害鐨勬椂鍊欙紝閭d簺鍏變韓璧勬簮鐨凾ask錛坱hread錛変箣闂寸殑璋冨害鑲畾姣旈偅浜涜法Process涓嶅叡浜祫婧愮殑thread鍋歝ontext switch娑堣楃殑璧勬簮</div> <div>澶氬緱澶氥?br /> </div> <div></div> <div>鍩轟簬璋冨害娑堣椾箣綾葷殑鑰冮噺</div> <div></div> <div>妯″瀷鍒嗕負涓嬮潰鍑犵<br /> </div> <div>涓瀵逛竴錛屼篃灝辨槸璇?user space create鍑烘潵鐨勭嚎紼嬪氨鏄拰kernel鐨勮皟搴﹀崟浣嶇浉鍚岋紝縐頒竴涓瀵瑰簲<br /> </div> <div>涓瀵瑰錛屽簲璇ユ槸榪欐牱涓縐嶆儏鍐碉紝kernel鐪嬪埌鐨勬槸Process錛寀serspace鑷繁瀹炵幇鍑烘潵鑷繁鐨則hread錛岃繖涓猼hread錛宬ernel鏄笉鐭ラ亾鐨?/div> <div>璋冨害鐨勬椂鍊檏ernel璐熻矗鍒嗘壒CPU緇欎粬鑳界湅鍒扮殑Process錛屼笂灞倁serspace鑷繁鏉ヨ皟搴﹀垎閰嶈繖涓狿rocess鑾峰緱鐨凜PU time緇欒繖涓猵rocess涓殑</div> <div>鍚勪釜綰跨▼銆?/div> <div>榪欐牱鐨勫垎閰嶅氨鍙互淇濊瘉鍦ㄤ竴瀹氱殑鏃墮棿鍐呭彧闇瑕佸仛涓浜況egister鍜宻tack鐨勫垏鎹紝涓嶄細鏈塵emory絳夌瓑鐨剆witch銆?/div> <div>鍧忓鏄笂闈㈢殑thread鍙涓涓suspend錛岄偅涔堣繖涓狿rocess閲岄潰鐨勫叾浠杢hread涔熷氨琚玸uspend浣忎簡錛屼竴鑸笂灞傝皟搴︾▼搴?/div> <div>涓嶄細鍋囧畾鍏朵粬鐨則hread鑳絩un錛屾墍浠ヤ竴鑸細鏄痥ernel鎶奀PU time緇欏叾浠杙rocess<br /> </div> <div></div> <div>澶氬澶氾紝灝辨槸涓縐嶆販鍚堢殑鎯呭喌浜嗭紝鎴戞兂鍒頒簡Android錛屼絾鏄疉ndroid鏄竴瀵逛竴妯″瀷錛宒alvik浼氫繚璇丣ava thread瀵瑰簲涓嬮潰涓涓?/div> <div>native thread錛屾兂璇寸殑鏄紝榪欑铏氭嫙鏈烘灦鏋勫彲浠ュ仛鎴愬瀵瑰鐨勬牱瀛愶紝涓涓猲ative thread run涓涓狫VM錛孞VM寮鍑烘潵寰堝Java Thread錛?/div> <div>JVM璐熻矗璋冨害榪欎簺Java Thread錛孨ative璐熻矗璋冨害JVM鎵鍦ㄧ殑Thread銆?/div> <div>涓嶇煡閬撴垜鏈夋病鏈夎閿欍?br /> <br /> </div> <div></div> <div></div><img src ="http://www.shnenglu.com/xieshuo/aggbug/203804.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/xieshuo/" target="_blank"> Torres</a> 2013-10-18 19:42 <a href="http://www.shnenglu.com/xieshuo/archive/2013/10/18/203804.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>紼嬪簭鍛樿嚜鎴戜慨鍏?璇諱功絎旇http://www.shnenglu.com/xieshuo/archive/2013/10/14/203710.html Torres TorresMon, 14 Oct 2013 09:07:00 GMThttp://www.shnenglu.com/xieshuo/archive/2013/10/14/203710.htmlhttp://www.shnenglu.com/xieshuo/comments/203710.htmlhttp://www.shnenglu.com/xieshuo/archive/2013/10/14/203710.html#Feedback0http://www.shnenglu.com/xieshuo/comments/commentRss/203710.htmlhttp://www.shnenglu.com/xieshuo/services/trackbacks/203710.html     榪欎釜涔︾殑鍚嶅瓧鎴戣嚜宸辮寰楁湁鐐瑰睂涓濋鏍間簡錛孫rz錛屾湡鏈涚紪鑰呭嬁鎬?img src ="http://www.shnenglu.com/xieshuo/aggbug/203710.html" width = "1" height = "1" />

Torres 2013-10-14 17:07 鍙戣〃璇勮
]]>
LTZ鐪嬩功涔婣PUE14http://www.shnenglu.com/xieshuo/archive/2013/06/07/200852.html Torres TorresFri, 07 Jun 2013 10:52:00 GMThttp://www.shnenglu.com/xieshuo/archive/2013/06/07/200852.htmlhttp://www.shnenglu.com/xieshuo/comments/200852.htmlhttp://www.shnenglu.com/xieshuo/archive/2013/06/07/200852.html#Feedback0http://www.shnenglu.com/xieshuo/comments/commentRss/200852.htmlhttp://www.shnenglu.com/xieshuo/services/trackbacks/200852.html

榪欎釜鏄疢uxd涓鐩寸敤鐨勪笢瑗?br />鐩稿綋浜庝竴涓弻鍚慞IPE
Process A open ptm寰楀埌fdm錛岀劧鍚巉ork鍑簆rocess B錛宲rocess B open pts寰楀埌fds錛岀劧鍚庡皢0,1,2閮絛up鍒癴ds涓?br />閭d箞fds灝卞彉鎴愪簡process B鐨勬帶鍒剁粓绔?br />鍚庨潰鍐峱rocess B涓仛鏍囧噯IO鎿嶄綔鐨勬椂鍊欏氨浼氬儚PIPE鐩存帴褰卞搷鍒癴dm
緇堢琛岃紼嬪湪pts涔嬩笂

娌′粈涔堢壒鍒璁板綍鐨勶紝鍦ㄧ綉涓妔earch浜嗕笅錛岃創涓摼鎺ワ紝閲岄潰浼氫粙緇嶄竴浜涘熀鏈蹇?
http://www.cnblogs.com/Anker/archive/2012/12/25/2832568.html



Torres 2013-06-07 18:52 鍙戣〃璇勮
]]>
LTZ鐪嬩功涔婣PUE13http://www.shnenglu.com/xieshuo/archive/2013/06/07/200842.html Torres TorresFri, 07 Jun 2013 06:40:00 GMThttp://www.shnenglu.com/xieshuo/archive/2013/06/07/200842.htmlhttp://www.shnenglu.com/xieshuo/comments/200842.htmlhttp://www.shnenglu.com/xieshuo/archive/2013/06/07/200842.html#Feedback0http://www.shnenglu.com/xieshuo/comments/commentRss/200842.htmlhttp://www.shnenglu.com/xieshuo/services/trackbacks/200842.html緇堢IO
姣忎釜緇堢閮芥湁杈撳叆杈撳嚭闃熷垪
闃熷垪閮芥湁闀垮害錛屽鏋滆緭鍏ヨ秴榪囪緭鍏ラ槦鍒桵AX_INPUT闀垮害錛屽ぇ澶氭暟unix緋葷粺浼氬洖鏄懼搷閾冩潵澶勭悊銆?br />浣嗘槸瀵逛簬杈撳嚭闃熷垪鏉ヨ錛岃櫧鐒惰緭鍑洪槦鍒椾篃鏈夐暱搴︼紝浣嗘槸涓鏃﹀啓涓嶈繘鍘葷殑鏃跺欙紝鍐欒繘紼嬩細suspend鎺?br />鐩磋嚦鏈夌┖闂茬┖闂?/p>

緇堢琛岃紼?terminal line discipline
浼氬府蹇欏仛瑙勮寖澶勭悊

緇堢璁懼灞炴?->termios

struct termios {
 tcflag_t c_iflag;
 tcflag_t c_oflag;
 tcflag_t c_cflag;
 tcflag_t c_lflag;
 cc_t c_line;
 cc_t c_cc[NCCS];
};

local flag褰卞搷椹卞姩紼嬪簭鍜岀敤鎴蜂箣闂寸殑鎺ュ彛
Android涓妕cflag_t->
typedef unsigned int tcflag_t;

cc_t
typedef unsigned char cc_t;

control flag涓緢澶氶夐」鏍囧織閮芥槸鐢ㄥ嚑浣嶆爣璇嗙劧鍚庣敤鎴栨潵鍋氶夋嫨

isatty鐨勫疄鐜幫紝鍊熷姪tcgetattr鐨勫嚭閿欐満鍒訛紝鎴愬姛榪斿洖0錛涘惁鍒欒繑鍥?1錛屽甫涓奅NOTTY

int
isatty (int  fd)
{
  struct termios term;

  return tcgetattr (fd, &term) == 0;
}

Anyway錛岀粓绔疘O寰堝鏉?..



Torres 2013-06-07 14:40 鍙戣〃璇勮
]]>
LTZ鐪嬩功涔婣PUE12http://www.shnenglu.com/xieshuo/archive/2013/06/06/200830.html Torres TorresThu, 06 Jun 2013 09:22:00 GMThttp://www.shnenglu.com/xieshuo/archive/2013/06/06/200830.htmlhttp://www.shnenglu.com/xieshuo/comments/200830.htmlhttp://www.shnenglu.com/xieshuo/archive/2013/06/06/200830.html#Feedback0http://www.shnenglu.com/xieshuo/comments/commentRss/200830.htmlhttp://www.shnenglu.com/xieshuo/services/trackbacks/200830.htmlIPC

棣栧厛璁插埌鐨勬槸PIPE錛岃繖涓茍涓嶉檶鐢燂紝鐩鎬簰閫氫俊鐨凱rocess蹇呴』鍏鋒湁鍏崇郴錛屼竴鑸槸鍚岀埗浜茬殑
鐒跺悗璁插埌浜嗗崗鍚岃繘紼?br />鍩烘湰鏄鏈変竴涓繘紼嬩笓闂ㄧ敤鏉ユ帴鏀惰緭鍏ワ紝鐒跺悗澶勭悊錛岀劧鍚庤繑鍥炵粨鏋?br />榪欎釜灝卞彲浠ョ敤PIPE鏉ュ疄鐜?/p>

鍒涘緩涓や釜PIPE錛屼竴涓敤浜庤緭鍏ョ粰鍗忓悓榪涚▼錛屽彟澶栦竴涓敤浜庢帴鏀跺崗鍚岃繘紼嬬殑杈撳嚭
fork涔嬪悗鍦ㄥ瓙榪涚▼涓皢鏍囧噯杈撳叆杈撳嚭閮絛up鍒扮閬撲笂

鑰屽崗鍚岃繘紼嬬殑鍐欐硶鍙互姣旇緝common錛屽彧鐢ㄥ叧蹇冩爣鍑嗚緭鍏ヨ緭鍑恒?br />PIPE鍦ㄥ啓鐨勬椂鍊欏鏋滄湁澶氫釜鍐欒繘紼嬶紝閭d箞鍐欑殑鏁版嵁灝忎簬 PIPE_BUF 鍒欎笉浼氫貢搴忥紝鍚﹀垯鑷繁搴旇灝遍渶瑕佸仛鍚屾浜嗐?/p>

鐒跺悗灝辨槸FIFO錛岃繖涓氨鏄敤mkfifo鍒涘緩涓涓猣ile錛屽ぇ瀹墮兘鍘葷敤銆?br />PIPE鍜孎IFO閮芥槸鍗婂弻宸ョ殑

XSI IPC ->鍗充箣鍓峉ystem V IPC
娑堟伅闃熷垪 淇″彿閲?鍏變韓瀛樺偍鍣?/p>

鍦ㄦ棤鍏寵繘紼嬩箣闂村叡浜瓨鍌ㄦ錛屼竴涓槸浣跨敤涓婇潰V緋葷粺shm錛涘彟澶栦竴涓槸浣跨敤mmap灝嗗悓涓鏂囦歡map鍒頒粬浠嚜宸辯殑榪涚▼絀洪棿銆?br />
鍙﹀灝辨槸緗戠粶IPC浜?br />綆楁槸澶嶄範涓嬪惂錛屼箣鍓嶈繖鍧楀効鐪嬬殑姣旇緝澶?br />int socket(int domain, int type, int protocol)
domain鏍囪瘑address family -> AF_INET, AF_INET6, AF_UNIX(AF_LOCAL), AF_UNSPEC
type鏍囪瘑socket綾誨瀷 -> SOCK_DGRAM(UDP), SOCK_RAW(IP), SOCK_SEQPACKET, SOCK_STREAM(TCP)

涓鑸琾rotocol閮借緗負0錛屼竴鑸琣ddress family鍜宼ype灝辮兘紜瑕佷嬌鐢ㄧ殑protocol

SOCK_SEQPACKET鍜孲OCK錛塖TREAM寰堝儚錛屽墠涓涓彁渚涢潰鍚戞暟鎹姤鏂囩殑鏈嶅姟錛岃屽悗闈㈣繖縐嶅垯鏄潰瀵規祦銆?br />SOCK_SEQPACKET浣跨敤鍦烘櫙SCTP錛岃創涓涓猄CTP鐨勭畝瑕佷粙緇嶃?br />http://www.cnblogs.com/qlee/archive/2011/07/13/2105717.html

娑夊強緗戠粶灝卞繀欏昏娓呮瀛楄妭搴忕殑闂錛屽瓧鑺傚簭涓庡瓧絎︾紪鐮佹槸涓や歡涓嶅悓鐨勪簨鎯咃紝閮借鎯蟲竻妤氱殑錛屼絾鏄鎻愪竴涓婾TF-8榪欐槸涓縐嶄笓闂ㄨ璁$敤鏉ュ仛緗戠粶浼犺緭鐨勫瓧絎︾紪鐮?br />鏃犻渶鍏沖績瀛楄妭搴忕殑闂錛屾墍浠ヤ紶杈撶殑涓婂眰鏁版嵁鍙互鐢║TF-8錛屽氨涓嶇敤鎷呭績local host鍜宺emote host鐨勪富鏈哄瓧鑺傚簭涓嶄竴鏍瘋屽鑷翠貢搴忎簡銆?br />
浣嗘槸寰堝鍗忚澶村繀欏誨仛絎﹀悎TCP/IP鍗忚鐨勫瓧鑺傚簭瑙勮寖錛孴CP/IP鏄痓ig endian
鍏充簬Big endian鍜孡itter endian鎴戞瘮杈冨鏄撳繕璁板叿浣撶殑鏍峰瓙錛屼絾鏄粬鐨勫嚭鍙戠偣鏄綆鍦板潃錛屼綆鍦板潃瑁呯殑鏄渶楂樻湁鏁堝瓧鑺傞偅涔堝氨鏄痓ig endian錛屽惁鍒欏氨鏄痩itter endian銆?br />
鍏充簬socket鏈夊嚑涓彲鑳芥瘮杈冩ā緋婄殑鍦版柟
connect鏃訛紝涔熷氨鏄痗lient绔紝濡傛灉fd娌℃湁緇戝畾鍒版煇涓湴鍧錛岄偅涔坘ernel浼氬府蹇欏皢鍏剁粦瀹氬埌榛樿鍦板潃; 鎵浠ind榪欎歡浜嬫儏鏄疌lient鍜孲erver閮介渶瑕佸仛鐨勪簨鎯咃紝璋冪敤listen涔嬪墠涔熶竴鏍?br />鐒跺悗accept鐨勬椂鍊欙紝濡傛灉浣犲叧蹇冨鏂圭殑鍦板潃錛岄偅涔堟彁渚沘ddr(瓚沖)鍜宭en錛岃繑鍥炵殑鏃跺欏氨鑳界煡閬撱?br />鍙﹀UDP(SOCK_DGRAM)涔熷彲浠all connect錛屼箣鍚庡氨鍙互鐩存帴call send/write錛岃屼笉蹇呮瘡嬈¢兘call sendto鎸囧畾瀵圭鍦板潃銆?br />
sendto涓璮lag涓鑸粰0錛屽鏋滄槸绱фユ暟鎹粰MSG_OOB

鏂囦歡鎻忚堪絎︾殑浼犺緭錛岀洰鐨勬槸鎯寵涓嶅悓鐨刾rocess鍦ㄤ笉鍚岀殑鏂囦歡鎻忚堪絎︿腑鍏變韓鏂囦歡琛ㄣ?br />鎵浠ュ仛娉曚笂緋葷粺浼氳繖鏍鳳紝浼犺緭鏂囦歡琛ㄦ寚閽堢劧鍚庢斁鍒版帴鏀剁鐨勭涓涓彲鐢ㄧ殑鏂囦歡鎻忚堪絎︿笂銆?br />榪欎釜鎴戝湪linux涓婃病鎵懼埌瀹炵幇錛屽洜涓鴻繖涓姛鑳借繕鏄湁铔鏇夸唬鏂規鐨勩?br />



Torres 2013-06-06 17:22 鍙戣〃璇勮
]]>
LTZ鐪嬩功涔婣PUE11http://www.shnenglu.com/xieshuo/archive/2013/06/05/200818.html Torres TorresWed, 05 Jun 2013 08:59:00 GMThttp://www.shnenglu.com/xieshuo/archive/2013/06/05/200818.htmlhttp://www.shnenglu.com/xieshuo/comments/200818.htmlhttp://www.shnenglu.com/xieshuo/archive/2013/06/05/200818.html#Feedback0http://www.shnenglu.com/xieshuo/comments/commentRss/200818.htmlhttp://www.shnenglu.com/xieshuo/services/trackbacks/200818.html13绔犲湪璁睤aemon Process錛屾病浠涔堢壒鍒ソ鍐欑殑銆?br />14 ->楂樼駭IO

浣庨熺郴緇熻皟鐢紝涔熷氨鏄湁淇″彿鍙戠敓浼氳繑鍥?errno 涓?EINTR鐨?/p>

紓佺洏鏂囦歡IO铏界劧鏈夊歡鏃訛紝浣嗘槸榪欎釜涓嶈兘綆楁槸浣庨熺郴緇熻皟鐢?/p>

APUE浠嬬粛鐨勪綆閫熺郴緇熻皟鐢?br />PIPE錛岀粓绔澶囷紝緗戠粶璁懼 璇誨啓
璇繪棤鏁版嵁/鍐欐棤絀洪棿(渚嬪TCP鍗ongestion window)

鎵撳紑鏌愪簺鐗規畩鏂囦歡
鍔犺褰曢攣鐨勬枃浠惰鍐?br />ioctl錛孖PC


鏂囦歡閿佸張鍙仛 byte-range locking錛岄拡瀵圭壒瀹氱殑鏂囦歡鍖哄煙錛岄傚悎鏁版嵁搴撴枃浠?br />Posix鏍囧噯
int fcntl(int fd, int cmd, .../* struct flock* flockptr */)
cmd -> F_GETLK,F_SETLK,F_SETLKW
F_SETLKW鏄疐_SETLK鐨凚locking鐗堟湰 W means wait

閲嶈鏁版嵁緇撴瀯鏄痵truct flock ->
struct flock {
 short l_type;
 short l_whence;
 off_t l_start;
 off_t l_len;
 pid_t l_pid;
 __ARCH_FLOCK_PAD
};

閿佸畾鏁翠釜file鐨勬柟寮? l_whence = SEEK_SET, l_start = 0, l_len = 0

l_type鐨勪袱綾籰ock
F_RDLCK錛孎_WRLCK榪欎袱縐嶉攣鐨勭壒鎬у緢鍍弐w lock

涓嶈繃涓庤鍐欓攣涓嶄竴鏍風殑鏄垨鑰呰繖鏍瘋
Posix.1娌℃湁瑙勫畾涓嬮潰榪欑鎯呭喌: process A鍦ㄦ煇鏂囦歡鍖洪棿涓婅緗簡涓鎶婅閿侊紱process B灝濊瘯鍦ㄨ繖涓枃浠跺尯闂村姞涓婂啓閿佺殑鏃跺檚uspend錛沺rocess C鍐嶅皾璇曡幏鍙栬閿侊紝濡傛灉鍏佽

process C鎷垮埌璇婚攣錛岄偅涔坧rocess B灝嗕細鍙兘姘歌繙鎷夸笉鍒板啓閿侊紝媧繪椿楗挎

pthread閲岄潰鐨剅w lock鐨勫疄鐜頒細鍦ㄨ繖縐嶆儏鍐典笅suspend鎺塸rocess C鐨勮閿佽姹傦紱浣嗘槸鐩墠鏂囦歡鍖哄煙閿佺殑瀹炵幇鎴戜笉澶‘瀹?/p>

榪欓噷鐪嬫枃浠跺尯鍩熼攣榪樻槸姣旇緝瀹規槗甯︽潵deadlock鐨?br />渚嬪process A閿佷綇F1鐨勬煇涓尯鍩燂紝鐒跺悗鍘婚攣F2鐨勪竴涓尯鍩燂紝榪欐椂鍊橣2鐨勮繖涓尯鍩熻process B閿佷綇錛岄偅涔坧rocess A灝變細suspend錛屽鏋滆繖涓椂鍊檖rocess B榪囨潵瑕侀攣F1鐨勮繖涓尯鍩?br />灝變細鍙戠敓deadlock


鍏充簬鏂囦歡鍖哄煙閿佺殑緇ф壙鍜岄噴鏀?br />1.fork鍚庯紝鏂囦歡鍖哄煙閿佸茍涓嶇戶鎵匡紝緇ф壙浜嗗氨瀹屼簡錛屼笉鍚岀殑process灝辨湁鍙兘鍚屾椂騫插悓涓浠朵簨鎯咃紝鎶婃暟鎹悶鍧?br />2.close(fd)鍚?fd瀵瑰簲鐨勬枃浠墮攣灝辮閲婃斁浜嗭紝鏂囦歡閿佹寕鍦╥node涓婏紝close鐨勬椂鍊檏ernel浼氬幓鎵弿瀵瑰簲鐨刬node涓婁笌榪欎釜PID鐩稿叧鐨刲ock錛岄噴鏀炬帀錛岃屽茍涓嶅幓鍏沖績鏄摢涓枃浠舵弿榪扮鎴?/p>

鑰呮槸鍝釜鏂囦歡琛紝榪欏緢閲嶈錛屽洜涓簂ockf涓茍涓嶈褰昮d錛屼粬浠彧鏄急鍏寵仈鍏崇郴錛岃繖涓緢閲嶈銆?br />3.exec鍚庯紝鏂囦歡閿佷細緇ф壙鍘熸潵鎵ц紼嬪簭鐨勯攣(fork涔嬪悗鎷垮埌鐨刲ock)錛屽鏋渇d甯︽湁close-on-exec閭d箞鏍規嵁絎簩鏉★紝榪欎釜fd瀵瑰簲鐨刦ile涓婄殑閿侀兘浼氳閲婃斁銆?/p>


鍚庨潰璁蹭簡STREAMS錛屾劅瑙塴inux涓婄敤鍒扮殑涓嶅錛岄渶瑕佸湪緙栬瘧kernel鏃跺姩鎬佸姞杞?/p>

IO澶氳礬杞帴錛屼富瑕佹槸涓轟簡瀹炵幇polling鏃㈡墍璋撶殑杞
涓昏鍑芥暟鏈塻elect錛宲select錛宲oll錛宔poll
select涔熶細綆楁槸浣庨熺郴緇熻皟鐢紝閭d箞灝辨湁鍙兘琚俊鍙鋒墦鏂?br />pselect鏈夊弬鏁板彲浠ヨ瀹氫俊鍙峰睆钄介泦錛屼篃鎻愪緵鏇撮珮綺懼害鐨則imer

poll鐨勬柟寮忎笌select鏈変笉澶竴鏍風殑鍦版柟錛屼絾鏄姛鑳界浉鍚岋紝epoll鏇撮傚悎澶ф暟鎹噺銆?/p>

readv鍜寃ritev
璁頒綇涓嬮潰涓ゆ潯灝卞浜?br />涓涓О涓簊catter read(鏁f璇?錛涘彟澶栦竴涓О涓篻ather write(鑱氶泦鍐?
榪欎袱涓嚱鏁頒細闈㈠涓涓猙uffer閾捐〃銆?br />


readn鍜寃riten
榪欎釜姣旇緝鍍忕幇鍦ˋndroid閲岄潰socket鐨剅ead鍜寃rite鏂瑰紡錛屼繚璇佽兘read/write n byte鏁版嵁錛屽湪鍐呴儴鍋氬驚鐜?br />鎴戞瘮杈冨ソ濂囪繖涓や釜鏄惁浼氬鐞唖ignal錛屾兂鏉ュ簲璇ユ槸浼氬鐞嗙殑錛岄亣鍒癊INTR甯繖閲嶅惎灝卞ソ浜?/p>

鎴戞病鏈夋壘鍒癇ionic搴撶殑瀹炵幇


瀛樺偍鏄犲皠IO
榪欎釜寰堥噸瑕侊紝mmap鐢ㄧ殑寰堝錛屾槧灝勫埌process絀洪棿鐨勪綅緗湪 stack浠ヤ笅錛宧eap浠ヤ笂鐨勯儴鍒嗭紝map瀹屽悗榪斿洖浣庡湴鍧銆?/p>

#include<sys/mman.h>
void* mmap(void* addr, size_t len, int prot, int flag, int filedes, off_t off)

prot -> PROT_READ,PROT_WRITE,PROT_EXEC,PROT_NONE
prot鎸囧畾鐨勫鏄犲皠瀛樺偍鍖虹殑淇濇姢涓嶈兘瓚呰繃鏂囦歡鐨刼pen鏉冮檺

鍦?flag涓?MAP_FIXED鐨勬椂鍊橭S浼氫繚璇佸垎閰嶇殑memory璧峰鍦板潃涓篴ddr錛屽惁鍒欏彧鏄粰OS涓涓緩璁?br />涓鑸緩璁產ddr緇?錛岃OS鏉ュ喅瀹氥?/p>

MAP_SHARED鏄瀵規槧灝勫尯鍩熺殑瀛樺偍(write)浼氬鑷翠慨鏀硅鏂囦歡銆?br />MAP_PRIVATE鍒欐槸瀵規槧灝勫尯鍩熺殑鎿嶄綔浼氬父瑙佷竴涓槧灝勬枃浠剁殑鍓湰銆?br />


鍚庨潰鏈変釜渚嬪瓙鐢ㄤ簡lseek
浣跨敤lseek澧炲姞鏂囦歡闀垮害鐨勬柟寮忥紝鍏坙seek涓涓鹼紝濡傛灉榪欎釜鍊煎ぇ浜庢枃浠舵湰韜殑闀垮害錛岄偅涔堜笅涓嬈″啓灝變細鍔犻暱璇ユ枃浠訛紝騫朵笖鍦ㄦ枃浠?br />涓艦鎴愪竴涓┖媧烇紝鏈啓榪囩殑鍐呭鍏ㄩ儴璇諱負0銆?br />mmap鍙兘map鏂囦歡鐨勬渶澶ч暱搴︼紝瓚呰繃鐨勫湴鏂規病鍔炴硶鍚屾鍒版枃浠躲?/p>

Torres 2013-06-05 16:59 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久国产精品一区二区| 99精品视频一区二区三区| 欧美亚洲综合久久| 狠狠综合久久av一区二区小说| 久久久久久久高潮| 久久九九电影| 亚洲精品在线观看免费| 亚洲毛片在线| 国产精品一区2区| 久久亚洲色图| 欧美激情91| 亚洲欧美精品在线观看| 欧美一区观看| 最新日韩精品| 亚洲欧美日韩精品在线| 在线国产精品一区| 99精品国产热久久91蜜凸| 国产一区二区电影在线观看| 嫩草影视亚洲| 欧美日韩免费精品| 猫咪成人在线观看| 欧美系列精品| 欧美.com| 国产精品任我爽爆在线播放 | 欧美日韩18| 欧美在线播放视频| 欧美电影免费| 欧美在线一二三区| 欧美日韩国产区一| 免费成人黄色| 国产精品亚洲欧美| 亚洲国产欧美一区二区三区久久 | 久久亚洲综合色一区二区三区| 99在线精品视频| 一区视频在线看| 亚洲夜晚福利在线观看| 亚洲激情专区| 久久不射中文字幕| 亚洲伊人久久综合| 久久亚洲精品欧美| 欧美日本韩国在线| 欧美性事免费在线观看| 新67194成人永久网站| 蜜臀99久久精品久久久久久软件| 午夜一级久久| 国产精品久久久久久超碰| 亚洲高清一二三区| 国产在线视频欧美| 亚洲欧美日韩中文在线制服| 日韩一级大片在线| 麻豆精品在线观看| 麻豆精品在线播放| 国产日韩欧美一区二区三区四区| 日韩亚洲欧美一区| 99国产麻豆精品| 欧美黄网免费在线观看| 欧美激情1区2区3区| 亚洲综合日韩在线| 亚洲一区影院| 欧美日韩在线免费| 日韩小视频在线观看| 99热在这里有精品免费| 欧美va天堂va视频va在线| 欧美va天堂| 亚洲国产精品视频一区| 久久久999国产| 久久亚洲精品一区二区| 一区二区视频免费完整版观看| 久久av免费一区| 久久综合九九| 影音先锋成人资源站| 久久视频精品在线| 亚洲国产一区二区在线| 一本大道久久a久久综合婷婷| 欧美激情亚洲综合一区| 日韩一级视频免费观看在线| 亚洲一级片在线观看| 国产精品激情av在线播放| 亚洲免费一在线| 久久久亚洲精品一区二区三区 | 国产精品国产三级国产普通话99| 日韩写真在线| 欧美在线免费观看视频| 在线成人激情黄色| 欧美激情一区二区在线| 一本色道久久综合亚洲二区三区| 午夜精品剧场| 狠狠色丁香久久综合频道 | 亚洲综合视频一区| 久久天天躁狠狠躁夜夜av| 亚洲国产精品尤物yw在线观看| 久久综合色综合88| 亚洲美女诱惑| 欧美在线一二三区| 亚洲伦理网站| 国产亚洲精品久久久久久| 欧美一区二区三区四区视频| 一区二区视频免费在线观看 | 另类欧美日韩国产在线| 在线亚洲一区| 亚洲国产精彩中文乱码av在线播放| 亚洲精品一区二区三区福利| 亚洲制服av| 亚洲破处大片| 久久天天综合| 亚洲高清在线精品| 欧美经典一区二区三区| 亚洲精品视频二区| 欧美一区二区私人影院日本| 亚洲国产婷婷| 国产日韩精品入口| 欧美精品一区二区在线观看| 欧美在线观看视频在线| 一本大道久久精品懂色aⅴ | 久久精品女人| 中文在线不卡视频| 亚洲国产日韩综合一区| 久久精品一区蜜桃臀影院| 艳妇臀荡乳欲伦亚洲一区| 激情久久五月天| 国产精品女主播一区二区三区| 久久综合伊人77777蜜臀| 亚洲综合成人婷婷小说| 亚洲理伦在线| 91久久久一线二线三线品牌| 另类激情亚洲| 欧美一区二区三区在线看| 亚洲午夜av电影| 一本色道精品久久一区二区三区| 一区二区在线视频| 国内外成人在线| 国产欧美精品| 国产三级精品在线不卡| 国产精品婷婷| 国产人成一区二区三区影院| 国产精品久久97| 欧美视频观看一区| 欧美日韩精品在线观看| 欧美另类极品videosbest最新版本| 久久久久久噜噜噜久久久精品 | 免费亚洲一区二区| 美乳少妇欧美精品| 欧美高清一区| 亚洲国产精品一区制服丝袜| 欧美国产成人在线| 欧美激情精品久久久久久蜜臀 | 久久综合狠狠综合久久激情| 亚洲第一成人在线| 久久一区激情| 亚洲福利视频二区| 91久久精品美女高潮| 亚洲美女性视频| 国产精品99久久久久久宅男| 亚洲欧美另类久久久精品2019| 亚洲制服av| 久久国产日本精品| 麻豆精品一区二区综合av| 欧美成人精品在线| 欧美天堂在线观看| 国产精品一区二区你懂的| 国产午夜精品一区二区三区视频 | 亚洲一区高清| 久久国产精品99国产| 久久免费视频一区| 亚洲第一福利在线观看| 亚洲久久一区| 欧美一区二区视频97| 免费一区视频| 国产精品久久77777| 国产一区二区三区av电影| 91久久黄色| 亚洲欧美国产视频| 蜜桃久久精品乱码一区二区| 亚洲国内自拍| 新67194成人永久网站| 老**午夜毛片一区二区三区| 欧美日韩在线一区二区| 国产日韩在线视频| 999在线观看精品免费不卡网站| 亚洲午夜精品久久| 久久夜色精品国产噜噜av| 亚洲国产另类 国产精品国产免费| 一区二区日韩| 免费在线亚洲欧美| 国产人久久人人人人爽| 日韩一二三区视频| 久久综合久色欧美综合狠狠 | 欧美专区日韩视频| 亚洲激情网站免费观看| 久久精品99无色码中文字幕| 欧美日本中文| 亚洲国产高清高潮精品美女| 亚洲欧美另类综合偷拍| 欧美国产另类| 欧美一级久久久| 国产精品欧美一区喷水| 99精品免费视频| 欧美大片免费看| 久久国产欧美精品| 国产欧美婷婷中文|