• 온라인 도구
  • - 계산기
    • 문자 수
  • - 다운로드
    • TikTok 다운로드
    • DouYin 다운로드
  • - 웹 도구
    • BASE64
    • Base64→이미지
    • 이미지→Base64
    • URL 인코딩
    • JavaScript
    • 타임스탬프
    • 유니코드 변환기
    • JSON 형식
    • 확장자 수정
    • 목록 만들기
    • CSS 최적화
  • - 암호화 도구
    • MD5 암호화
    • 랜덤 생성기
  • - 이미지 도구
    • 이미지 압축
    • QR 코드 생성기
    • QR 코드 리더
    • 배경 화면 미리보기
    • 이미지 EXIF
  • - 정보 시트
    • 혈액형 유전
    • 의류 사이즈
    • app.tool_clock
  • [email protected]
DopuBox
  • English
  • Español
  • Français
  • 日本語
  • 한국어
  • 简体中文
  • 繁體中文
全部 ニュース Meta Code 文化・アート
Linux pollメカニズムの詳細な説明
2022-01-29

すべてのシステム呼び出しは、その名前の前に「sys_」を付けることができることに基づいています。接頭辞。これがカーネルに対応する関数です。例えばopen、read、write、pollをシステムが呼び出し、それに対応するカーネル関数はsys_open、sys_read、sys_write、sys_poll。

一、カーネルフレームワーク:

システム呼び出しpollまたはselectの場合、対応するカーネル関数はsys_です。poll。解析sys_pollは、pollメカニズムを理解することができます。

1.

sys_Poll関数はfs/selectにある.cファイルでは、コードは以下の通りです。

< 0) or no (0) timeout */ timeout_jiffies = timeout_msecs; } return do_sys_poll(ufds, nfds, &timeout_jiffies); }タイムアウトパラメータを少し処理した後、do_を直接呼び出します。sys_poll。

2.

do_sys_Poll関数もfs/selectに位置する.cファイルでは、他のコードは無視されます。

poll_initwait関数は非常に簡単で、pollを初期化します。wqueues変数table:

int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds, s64 *timeout)
{
……
poll_initwait(&table);
……

fdcount = do_poll(nfds, head, &table, timeout);
……
}

poll_initwait > init_poll_funcptr(&pwq->pt, __pollwait); > pt->qproc = qproc;

すなわちtable->pt->qproc=pollwait,__pollwaitは駆動するpoll関数に使用されます。

3.

do_sys_Poll関数はfs/selectにある.cファイルでは、コードは以下の通りです。

= (s64)MAX_SCHEDULE_TIMEOUT-1)) {

< 0) { 16 /* Wait indefinitely */ 17 __timeout = MAX_SCHEDULE_TIMEOUT; 18 } else if (unlikely(*timeout >19

/*

20

* Wait for longer than MAX_SCHEDULE_TIMEOUT. Do it in

21

* a loop

22

*/

23

__timeout = MAX_SCHEDULE_TIMEOUT - 1;

static inline unsigned int do_pollfd(struct pollfd *pollfd, poll_table *pwait)

{

……

if (file->f_op && file->f_op->poll)

mask = file->f_op->poll(file, pwait);

……

}

24

*timeout -= __timeout;

25

static inline void poll_wait(struct file * filp, wait_queue_head_t * wait_address, poll_table *p)

{

if (p && wait_address)

p->qproc(filp, wait_address, p);

}

} else {

static void __pollwait(struct file *filp, wait_queue_head_t *wait_address,

poll_table *p)

{

struct poll_table_entry *entry = poll_get_entry(p);

if (!entry)

return;

get_file(filp);

entry->filp = filp;

entry->wait_address = wait_address;

init_waitqueue_entry(&entry->wait, current);

add_wait_queue(wait_address, &entry->wait);

}

26

__timeout = *timeout;

27

*timeout = 0;

28

}

29

30

__timeout = schedule_timeout(__timeout);

31


ソース元URL:https://dopubox.com/article/p/08ccc3846a4e07d7

기타 도구
  • 문자 수 TikTok 다운로드 DouYin 다운로드 BASE64 Base64→이미지 이미지→Base64 URL 인코딩 JavaScript 타임스탬프 유니코드 변환기 JSON 형식 확장자 수정 목록 만들기 CSS 최적화 MD5 암호화 랜덤 생성기 이미지 압축 QR 코드 생성기 QR 코드 리더 배경 화면 미리보기 이미지 EXIF 혈액형 유전 의류 사이즈 app.tool_clock
  • <司書のコレ絶対読んで>「王さまと九人のきょうだい」君島久子訳、赤羽末吉絵
    2024-05-29

    被害者「問題解決には程遠い」 旧ジャニーズ被害者らが会見
    2024-05-29

    『マッドマックス:フュリオサ』に登場する「ある絵画」は何を意味しているのか? ギリシア神話と「ファム・ファタル」から考察する
    2024-06-01

    鎌倉幕府の地頭から海の武士団・松浦党に…古文書群「青方文書」からみる中世の漁業や製塩事情
    2024-06-01

    現代詩の「中原中也賞」、俳句で培われた言語感覚…「新たな音やリズム」ジャンルを往来し追求
    2024-06-02

    河合隼雄賞に八木詠美さん「休館日の彼女たち」、湯澤規子さん「焼き芋とドーナツ」
    2024-06-02

    2025年春に「直島新美術館」が誕生。既存の活動から新しい価値創造を目指す
    2024-06-04

    建築家・白井晟一設計の個人住宅「桂花の舎」が江之浦測候所に移築へ
    2024-06-04

    太宰府天満宮で「Fukuoka Art Book Fair」が開催へ
    2024-06-04

    「犬派?猫派?」(山種美術館)開幕レポート。初公開から名作まで勢揃い
    2024-06-04

    「ART OSAKA 2024」が7月18日より開幕。近代建築と現代美術のコラボレーションにも注目
    2024-06-04

    「避難いただけるほうが一安心」珠洲で激しい揺れに耐えた仏像、奈良博で縁つなぐ
    2024-06-04

    「VOCA展」に関するハラスメント防止のためのガイドラインが制定
    2024-06-05

    週末見たい展覧会5選。今週はTRIO展、吉田克朗展、建築の構造デザインに焦点を当てた展覧会など。【2024年6月第2週】
    2024-06-05

    島左近の墓、京都の寺で発掘調査 三成の腹心、関ケ原後も生存?
    2024-06-05

    沙に囲まれた残酷な世界が私たちの社会を浮かび上がらせる。期待の作家が令和の世に送り出す、新たな青春のバイブル!
    2024-06-06

    岡田将生の初ブランド「IN MY DEN」始動、第1弾グッズの受注販売がスタート
    2024-06-06

    子供と行きたいおすすめ美術館【東京編】。子連れ、親子でアートを楽しもう!
    2024-06-06

    宗教2世のドラマが受賞 第50回放送文化基金賞
    2024-06-06

    藤井八冠、5連覇へ白星発進 将棋棋聖戦、山崎八段破る
    2024-06-06

    ©  Dopu Box
    💛