タグ

ブックマーク / wiki.bit-hive.com (3)

  • unixドメインソケット(STREAM/DATAGRAM) - Linuxの備忘録とか・・・(目次へ)

    STREAM型通信はconnectでサーバのsock->sk_receive_queueにクライアントソケットをpeerとするソケットを登録し、acceptで、このクライアントソケットの新規ソケットを作成したソケットをサーバ側のソケットとしてお互いの通信を行います。 DATAGRAM型通信のconnectは、サーバのsock->sk_receive_queueに登録されず、クライアントソケットのsock->peerにサーバソケットがセットされます。従ってサーバからクライアントに送信できません。また全てのクライアントはサーバ元ソケットにデータが送信されます。 ソケット送信は、送信先のsock->sk_receive_queueに送信データをリストし、受信は自ソケットのsock->sk_receive_queueからデータを取得します。 acceptシステムコールです。ソケット依存のsock-

    advblog
    advblog 2022/04/27
  • ゾンビプロセスを作成しない - Linuxの備忘録とか・・・(目次へ)

    親プロセスがwaitで子の終了ステータスを取得しない間、子プロセスはゾンビ状態となります。しかし処理によっては、いつ終了するか分からない子プロセスのために、親プロセスは毎回wait状態で待つわけにいかない場合もあります。そこで子の終了をシグナルで親プロセスに知らせるという手法があります。struct sigaction saに子プロセスからの終了シグナルをハンドルすることで実現しています。 親プロセスが子プロセスのそのシグナルを無視するか、ハンドラーにSIG_IGNを設定することで、子プロセスをゾンビ状態にしないことができ、子プロセスが呼び出したexit関数内からタスク構造体を解放することができるようです。 ・補足 waitで待つ場合、子のタスク構造体は親が呼び出したwait内から解放されます。 ゾンビ作成サンプル #include <sys/types.h> #include <unis

    advblog
    advblog 2021/10/05
  • FrontPage - Linuxカーネルメモ

    Linux Kernel(2.6)の実装に関するメモ書き 書き殴っているので書き方/内容にムラあり。 3.6系に関する記述は【3.6】と記載。 カーネル プロセス プロセスのBlockとWakeup プロセスの優先度 コンテキストスイッチ プリエンプション スケジューラ RunQueue WaitQueue WorkQueue 例外処理 割り込み処理 ページフォルト ページフォルト - 個々のハンドラ ソフト割り込み システムコール 排他制御関連 モジュール 64bit環境での32bitプロセスの動作 メモリ管理 アドレス空間 アドレス空間の管理 カーネル空間のメモリマップ 64bitでのアドレス空間 HighMemory kmalloc,vmalloc 物理ページ管理 スラブアロケータ Rmap proc/meminfo 空きページの確保 kswapd Swap Swap - Swap領

  • 1