タグ

Linuxとprocessに関するtyruのブックマーク (12)

  • マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー

    また Linux カーネルの話です。 Linux では fork によるマルチプロセスと、pthread によるマルチスレッドでの並行処理を比較した場合、後者の方がコストが低く高速と言われます。「スレッドはメモリ空間を共有するので、マルチプロセスとは異なりコンテキストスイッチ時にメモリ空間の切り替えを省略できる。切り替えに伴うオーバーヘッドが少ない。」というのが FAQ の答えかと思います。 が「オーバーヘッドが少ない」と一言にいわれても具体的にどういうことなのかがイメージできません。そこで Linux のスレッド周りの実装を見て見ようじゃないか、というのが今回のテーマです。 3分でわかる(?) マルチプロセスとマルチスレッド まずはうんちく。マルチプロセスとマルチスレッドの違いの図。以前に社内で勉強会をしたときに作った資料にちょうど良いのがあったので掲載します。Pthreadsプログラミ

    マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー
    tyru
    tyru 2015/03/03
    clone()システムコールおもしろい
  • fork()は失敗するんだぜ、覚えときな

    fork() can fail: this is important あー、fork()のことね。プロセスがもっとプロセス作るためのやつな。いや、他にもプロセス作る方法はあるけどな。ま、面白い話がもうひとつあるから聞かせてやるよ。 forkは失敗するんだぜ。分かってるか? マジで分かってるか? マジだぜ。forkは失敗するもんだ。mallocと同じさ。失敗することもある。そんなに頻繁にってわけじゃないけどさ、でも失敗したら、無視できっこないぜ。ちっとは脳みそ働かせなきゃならん。 forkが0を返したら、そいつは子プロセスで、親なら正数を返すってことは、みんな知ってるよな。その値は子のpidだ。こいつを保存しといて、あとで使うってわけだ。 失敗を確認しない場合どうなるか知ってるか? そうだよ。お前多分、"-1"(forkのエラー通知)をpidとして扱ってるんだろ。 さて、問題の始まりだ。

    tyru
    tyru 2014/08/22
    確か負値の場合は、マイナス取ったPIDの子プロセス全員に対してsignalを送るんだっけ。-1は1(init)の子プロセス全てだから全員虐殺。
  • How to get the process start date and time

    Initially a Linux command-line interface blog, it has evolved to cover increasingly more GUI app topics. Instead of just giving you information like some man page, I illustrate their usage in real-life scenarios. How can we determine when a running process was started? The venerable ps command deserves first consideration. Most Linux command-line users are familiar with either the standard UNIX no

    tyru
    tyru 2012/12/29
    プロセス開始時刻からの正確な経過時間が知りたい場合はps -eo etimeを見る
  • 特定のユーザが持つプロセス全てにシグナルを送る - 元RX-7乗りの適当な日々

    さっき、killコマンドのmanを読んでいて気付いた。 pid に -1 を指定した場合、 sig で指定したシグナルが、呼び出し元のプロセスがシグナルを送る許可を持つ全てのプロセスに送られる。但し、プロセス番号 1 (init) へはシグナルは送られない。 Man page of KILL ほほう。つまり、 $ kill -9 -1とかやると、自分が持つプロセス全てにシグナル(SIGKILL)を送信できるとな。 (上記例の"-9"の部分は任意のシグナルでお願いします。"kill -l"とかで確認できる。) 応用して、 # sudo -u username kill -9 -1とかやると、特定のユーザ(上記例だと"username")の所有するプロセス全てを抹殺することができるわけですね・・・。便利ですが、取り扱い注意。 参考 KILL(1) KILL(2) LinuxサーバHacks―プ

    tyru
    tyru 2012/04/15
    killのpidに-1を指定した場合、呼び出し元のプロセスがシグナルを送る許可を持つ全てのプロセスに送られる / sudo -u hoge kill -9 -1" でユーザhogeのプロセスを全部殺せる
  • Linux の nice / renice コマンドを覚えた

    毎月15日は自宅サーバのバックアップが実行される日です。バックアップには20時間ほどもかかってしまうわけで、実は15日は凄くレスポンスが低下する日です。ロードは通常時の約3倍の3〜5程度になり、Disk I/O のパフォーマンスが極端に劣化します。 もっともその原因はバックアップの手法が悪いのです。 小さい HDD にバックアップしているために、元々の HDD を tar cvfz 使って圧縮しながらバックアップしているので CPU も凄く喰うんです。こりゃ HDD を増設して差分でバックアップする rsync 方式に変えなきゃ・・・と思いつつ今月もいつもの日が来てしまいました。 さて、今日はいつもにもまして shell での応答が遅いのでプロセスの優先度を変更することにしました。コマンドは覚えてなかったけど優先度設定コマンドがあることは知っていたので調べてみました。 renice - 実

    tyru
    tyru 2011/05/04
    今日初めてreniceを使ったんだ、父さん
  • 仮想デバイスドライバを利用したプロセス間通信について : tutorialog

    仮想デバイスドライバを利用したプロセス間通信について September 11, 2006 Posted by butcher in : C, Operating System , trackback 仮想デバイスドライバを利用したプロセス間通信について説明します。といってもよくわからないと思うので、ちゃんと説明します。 Unixでプロセス間通信というと、ソケットを使ったもの、パイプを使ったもの、共有メモリを使ったもの等がありますが、それぞれ長所・短所があると思います。 ものすごく簡単に言うと、 ソケットでは、 複数マシン間での通信が可能 通信処理のオーバーヘッドが大きい(コネクション開始・終了処理も含め) パイプでは、 ソケットより通信処理のオーバーヘッドが少ない 親子関係のプロセスに限定される 共有メモリでは、 シンプルで高速 書き込み・読み取りの同期をとるのが難しい 等が

  • nohup と disown | 変なヤバいもんログ

    Posted on 2006年11月23日 Posted by ちゅう コメントする Posted in Development Tags: Linux ログアウトしたときもプロセスを継続するためには nohup か disown をしてあげれば良いみたいです。nohup は、コマンドを実行するときに nohup コマンド ってやればおk。disown は、一旦 Ctrl + z でプロセスを停止して、 disown %[ジョブ番号] とすれば、自分のもとからプロセスが離れるのでログアウトしても安心。Screen っていう、再ログイン後も続きからはじめられるらしい便利なものがあるけど、未だに試せていない(´・ω・`) 先ほど、卒研で90000行のデータが入ったMySQLのふたつのテーブルをJoinして処理しようとしたら、1時間たってもなんもおきなかった。同じDNAについて分析した二つの値が

    nohup と disown | 変なヤバいもんログ
    tyru
    tyru 2010/11/19
    disownしらんかった
  • 親プロセスが終了するとそのプロセスから呼ばれた子プロセスも停止する?

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます はじめまして。 親プロセスが終了するとそのプロセスから呼ばれた 子プロセスも停止するという認識は正しいでしょうか? というのも、あるシェルスクリプトを"kill -9"コマンドで強制終了させたのですが、そのシェルスクリプト内のコマンド(sleepコマンドです)は終了せずに残っていたので(psで確認しました)、??という感じでした。 さらにそのsleepコマンドの親プロセスが1(init?)になっていました。 色々とWEB上で調べてみたのですが、この動作について の記述を見つけることができませんでした。 どなたかご存知でしたら是非ご教授下さい。よろしくお願いします。 親プロセスが先に死ぬと子プロセスはinitプロセスの養子になるというのは

    親プロセスが終了するとそのプロセスから呼ばれた子プロセスも停止する?
  • プロセスのCPU利用率はpsだけだと正確に見れない - うまいぼうぶろぐ

    そういえば前に調べてすっかり忘れていた。 http://d.hatena.ne.jp/hogem/20090603/1243957927 man psにあるように 現在のところCPU使用率は、プロセスの生存期間中に実行に利用した時間のパーセンテージで表される。これは理想的ではなく、psが準拠すべき標準に準拠していない。CPU使用率は足し合わせても正確に100%になることは少ない だもんでpsで表示される%cpucpu利用時間 / プロセス生存時間 なので、psで表示される値は単位時間あたりの平均利用率。 top,sysstat,vmstat,mpstatあたりだとOS全体だけど、瞬間的なCPU利用率はわかる。 プロセスごとの瞬間的なCPU利用率は、どうやって調べるんだろう? 追記 http://d.hatena.ne.jp/ikeas/20091130/1259595249 この人も同

    プロセスのCPU利用率はpsだけだと正確に見れない - うまいぼうぶろぐ
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • linuxでバックグラウンド処理を便利にするコマンド+おまけ - 絶品ゆどうふのタレ

    追記2009/10/16: いくつか指摘を受けましたが、linuxでっていうかzshに結構依存してしまっています。 つい自分環境についてばっかり考える悪い感じw 書こうと思った発端。 "disownコマンド - Do You PHP はてな" ことコマンドラインのTIPSに関しては、予想外な人が予想外な事を知らないものだ!と驚く事があります。 disownを知らなかったってことは、このへんももしかしたら知られてないかも?というバックグラウンド処理に関する豆知識(+おまけ)をいくつか。 知ってたらごめんなさいだけど、こういうのが需要あるってわかったら口に出して言ってみておくのは大事だよね! 1. しょっぱなからdisownした状態でバックグラウンド処理にする「&|」 いちいちバックグラウンド処理にした後にdisownするって2度手間が嫌な人に。 disownについては上記の記事参照。 % p

    linuxでバックグラウンド処理を便利にするコマンド+おまけ - 絶品ゆどうふのタレ
  • UNIXシグナルによるプロセス制御について - 試験運用中なLinux備忘録・旧記事

    シグナルについて 操作例 プロセスの終了/強制終了 プロセスの一時停止(サスペンド) 一時停止しているプロセスの再開 関連:プログラム中におけるシグナルの処理とその対象外シグナル シグナルについて(UNIX系OSの用語としての)「シグナル」という通知をプロセスに送信することにより、対象プロセスの動作状態を変更することができる。*1 シグナルには色々な種類があり、一覧は「signal」のmanページなどを参照。 シグナルは プログラムが(メモリの不正な参照などで)異常終了した、いわゆる「落ちる」動作をしたときにSIGSEGVシグナルが発生 フォアグラウンドプロセスにCtrl+Cを実行するとSIGINTシグナル*2が発生して終了する フォアグラウンドプロセスにCtrl+Zを実行するとSIGTSTPシグナル*3が発生して一時停止(サスペンド)状態になる パイプで接続された複数のプロセス間において

    UNIXシグナルによるプロセス制御について - 試験運用中なLinux備忘録・旧記事
  • 1