青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

T9的空間

You will never walk alone!

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  69 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks

13章在講Daemon Process,沒什么特別好寫的。
14 ->高級IO

低速系統調用,也就是有信號發生會返回 errno 為 EINTR的

磁盤文件IO雖然有延時,但是這個不能算是低速系統調用

APUE介紹的低速系統調用
PIPE,終端設備,網絡設備 讀寫
讀無數據/寫無空間(例如TCP卡Congestion window)

打開某些特殊文件
加記錄鎖的文件讀寫
ioctl,IPC


文件鎖又叫做 byte-range locking,針對特定的文件區域,適合數據庫文件
Posix標準
int fcntl(int fd, int cmd, .../* struct flock* flockptr */)
cmd -> F_GETLK,F_SETLK,F_SETLKW
F_SETLKW是F_SETLK的Blocking版本 W means wait

重要數據結構是struct 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的兩類lock
F_RDLCK,F_WRLCK這兩種鎖的特性很像rw lock

不過與讀寫鎖不一樣的是或者這樣講
Posix.1沒有規定下面這種情況: process A在某文件區間上設置了一把讀鎖;process B嘗試在這個文件區間加上寫鎖的時候suspend;process C再嘗試獲取讀鎖,如果允許

process C拿到讀鎖,那么process B將會可能永遠拿不到寫鎖,活活餓死

pthread里面的rw lock的實現會在這種情況下suspend掉process C的讀鎖請求;但是目前文件區域鎖的實現我不太確定

這里看文件區域鎖還是比較容易帶來deadlock的
例如process A鎖住F1的某個區域,然后去鎖F2的一個區域,這時候F2的這個區域被process B鎖住,那么process A就會suspend,如果這個時候process B過來要鎖F1的這個區域
就會發生deadlock


關于文件區域鎖的繼承和釋放
1.fork后,文件區域鎖并不繼承,繼承了就完了,不同的process就有可能同時干同一件事情,把數據搞壞
2.close(fd)后 fd對應的文件鎖就被釋放了,文件鎖掛在inode上,close的時候kernel會去掃描對應的inode上與這個PID相關的lock,釋放掉,而并不去關心是哪個文件描述符或

者是哪個文件表,這很重要,因為lockf中并不記錄fd,他們只是弱關聯關系,這個很重要。
3.exec后,文件鎖會繼承原來執行程序的鎖(fork之后拿到的lock),如果fd帶有close-on-exec那么根據第二條,這個fd對應的file上的鎖都會被釋放。


后面講了STREAMS,感覺linux上用到的不多,需要在編譯kernel時動態加載

IO多路轉接,主要是為了實現polling既所謂的輪詢
主要函數有select,pselect,poll,epoll
select也會算是低速系統調用,那么就有可能被信號打斷
pselect有參數可以設定信號屏蔽集,也提供更高精度的timer

poll的方式與select有不太一樣的地方,但是功能相同,epoll更適合大數據量。

readv和writev
記住下面兩條就夠了
一個稱為scatter read(散步讀);另外一個稱為gather write(聚集寫)
這兩個函數會面對一個buffer鏈表。


readn和writen
這個比較像現在Android里面socket的read和write方式,保證能read/write n byte數據,在內部做循環
我比較好奇這兩個是否會處理signal,想來應該是會處理的,遇到EINTR幫忙重啟就好了

我沒有找到Bionic庫的實現


存儲映射IO
這個很重要,mmap用的很多,映射到process空間的位置在 stack以下,heap以上的部分,map完后返回低地址。

#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指定的對映射存儲區的保護不能超過文件的open權限

在 flag為 MAP_FIXED的時候OS會保證分配的memory起始地址為addr,否則只是給OS一個建議。
一般建議addr給0,讓OS來決定。

MAP_SHARED是說對映射區域的存儲(write)會導致修改該文件。
MAP_PRIVATE則是對映射區域的操作會常見一個映射文件的副本。


后面有個例子用了lseek
使用lseek增加文件長度的方式,先lseek一個值,如果這個值大于文件本身的長度,那么下一次寫就會加長該文件,并且在文件
中形成一個空洞,未寫過的內容全部讀為0。
mmap只能map文件的最大長度,超過的地方沒辦法同步到文件。

posted on 2013-06-05 16:59 Torres 閱讀(344) 評論(0)  編輯 收藏 引用 所屬分類: APUE
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            99re8这里有精品热视频免费 | 久久综合色影院| 一区二区三区 在线观看视频| 亚洲国产精品123| 亚洲国产婷婷| 一区二区毛片| 午夜综合激情| 老牛嫩草一区二区三区日本 | 欧美精品免费在线观看| 欧美日韩国产经典色站一区二区三区| 欧美精品福利在线| 国产精品系列在线播放| 久久亚洲私人国产精品va媚药| 亚洲精品一区久久久久久| 亚洲麻豆一区| 久久国产福利国产秒拍| 一本大道久久a久久综合婷婷| 在线视频你懂得一区| 欧美在线免费播放| 欧美大香线蕉线伊人久久国产精品| 亚洲国产高清在线| 欧美成人免费在线视频| 9i看片成人免费高清| 欧美一区视频在线| 欧美日韩国产限制| 狠狠色丁香久久综合频道| 宅男精品视频| 欧美成人嫩草网站| 一区二区三区高清不卡| 久久视频一区| 国产欧美日韩在线观看| 亚洲精品一区二区三区樱花| 小处雏高清一区二区三区 | 午夜在线观看欧美| 国产精品美女在线| 午夜精品视频网站| 国产模特精品视频久久久久| 久久九九久精品国产免费直播| 久久久www成人免费精品| 欧美大片国产精品| 亚洲欧美国产日韩中文字幕| 欧美在线观看一区| 在线观看日韩专区| 亚洲欧美视频在线观看视频| 欧美成人激情视频| 韩国成人福利片在线播放| 永久久久久久| 91久久中文字幕| 国产精品xnxxcom| 国产午夜精品麻豆| 一区二区三区日韩欧美| 久久久亚洲国产天美传媒修理工| 国产精品色婷婷久久58| 91久久亚洲| 一区二区高清在线观看| 欧美激情精品久久久久久蜜臀| 午夜精品一区二区三区四区| 欧美日韩视频在线第一区| 亚洲精品在线观看免费| 欧美成人综合一区| 美女视频黄免费的久久| 在线日韩一区二区| 狼狼综合久久久久综合网| 久久精品视频在线播放| 国内精品久久久| 久久人人爽人人| 久久男人av资源网站| 国外精品视频| 裸体一区二区三区| 麻豆成人精品| 99riav久久精品riav| 亚洲另类一区二区| 欧美日韩视频在线| 欧美一区二区观看视频| 欧美一区二区三区播放老司机| 国产亚洲欧美色| 久久久午夜精品| 久久久久免费观看| 亚洲精品中文字幕有码专区| 亚洲精品乱码久久久久久日本蜜臀| 欧美国产在线电影| 亚洲女同在线| 欧美在线网站| 在线观看一区二区精品视频| 亚洲国产另类久久精品| 欧美日韩一级黄| 一本久久a久久精品亚洲| 中文一区字幕| 国产性色一区二区| 久久综合色播五月| 欧美国产精品专区| 午夜亚洲福利在线老司机| 欧美与黑人午夜性猛交久久久| 亚洲高清网站| 国产精品99久久久久久久女警| 国产一区二区三区日韩欧美| 国产丝袜一区二区| 可以看av的网站久久看| 欧美电影打屁股sp| 午夜老司机精品| 蜜桃久久av| 午夜精品福利电影| 裸体丰满少妇做受久久99精品| 亚洲网站在线| 麻豆亚洲精品| 久久精品日韩欧美| 欧美午夜电影在线| 欧美激情1区| 国产在线欧美日韩| 99伊人成综合| 亚洲美女视频在线观看| 久久精品99无色码中文字幕| 亚洲午夜小视频| 欧美成人午夜激情在线| 久久精品女人的天堂av| 欧美日韩在线视频首页| 久久综合一区| 国产一区二区成人久久免费影院| 日韩一级成人av| 亚洲激情视频在线观看| 久久国产精品久久久| 校园激情久久| 国产精品久久久久久久久久久久久| 亚洲第一搞黄网站| 亚洲成色www8888| 午夜欧美不卡精品aaaaa| 在线中文字幕一区| 欧美aⅴ99久久黑人专区| 久久婷婷国产综合国色天香| 国产欧美日韩精品在线| 亚洲一区二区视频在线观看| 日韩视频在线一区二区三区| 麻豆久久久9性大片| 欧美大胆a视频| 亚洲国产婷婷综合在线精品| 欧美一区二区三区免费视| 欧美一区二区三区的| 欧美午夜无遮挡| 一区二区三区精密机械公司| 日韩视频一区二区三区在线播放| 久久免费黄色| 免费观看不卡av| 亚洲电影一级黄| 男人的天堂亚洲| 最近中文字幕mv在线一区二区三区四区| 一色屋精品视频在线看| 久久久久九九视频| 欧美sm重口味系列视频在线观看| 激情五月婷婷综合| 久久久噜噜噜久久| 亚洲国产高清在线| 亚洲综合视频一区| 国产亚洲欧美中文| 久久深夜福利免费观看| 91久久久久久久久久久久久| 亚洲天堂av在线免费| 国产精品av免费在线观看| 亚洲一区二区久久| 久久九九久久九九| 亚洲黄色成人久久久| 欧美日韩美女| 欧美一区二区视频网站| 久久久99免费视频| 欧美在线高清视频| 国产精品国色综合久久| 午夜视频在线观看一区二区| 美女国产精品| 在线综合亚洲欧美在线视频| 国产无一区二区| 欧美国产日韩视频| 亚洲制服av| 亚洲国产乱码最新视频| 亚洲欧美三级在线| 在线播放日韩| 国产精品高潮久久| 欧美一区二区日韩一区二区| 在线观看视频一区| 国产精品草草| 免费成人av| 欧美一区二区三区精品电影| 亚洲国产日韩美| 欧美自拍偷拍| 一本色道久久综合精品竹菊| 国产一区在线免费观看| 欧美日韩 国产精品| 午夜日韩在线| 一区二区三区 在线观看视频| 另类综合日韩欧美亚洲| 亚洲一区在线免费观看| 亚洲黄色在线看| 国内精品国产成人| 国产女人精品视频| 欧美日韩在线精品| 欧美好吊妞视频| 榴莲视频成人在线观看| 欧美在线一级va免费观看| 夜夜嗨av一区二区三区网页| 欧美国产乱视频| 美玉足脚交一区二区三区图片| 欧美一区二区视频免费观看|