タグ

スレッドに関するakaneharaのブックマーク (9)

  • Acroquest

    ◆ 1.SolarisとJavaVMのスレッドモデル Solarisオペレーティングシステム(以下、Solaris)マルチスレッド・プロセス・アーキテクチャ とJavaVMスレッドモデルの基的な知識をおさらいします。 ◆ 2.ネイティブスレッドからJavaスレッドを見つける方法 特定のネイティブスレッドに対応するJavaスレッドを見つける方法を紹介します。 1.SolarisとJavaVMのスレッドモデル まずこの章では、Solarisのマルチスレッド・プロセス・アーキテクチャとJavaVMのスレッドモデルについておさらいします。 網羅的な説明はそのボリューム上不可能ですので、最低限知っていなければならないことにとどめていることに注意してください。 1-1.Solarisマルチスレッド・プロセス・アーキテクチャ Solarisのスレッドモデルはカーネルレベルとユーザレベルの2段階で構成さ

  • スレッドの排他制御

    第7章 スレッドの排他制御 章ではスレッド間の共有リソースにアクセスするための排他制御について説明します。GCで利用するスレッドはオブジェクトを共有リソースとして扱いますので、排他制御が必要になる場面が多々あります。 7.1 排他制御とは メモリ領域を共有するスレッドでは、同じアドレスにあるデータを複数のスレッドが同時に読み書きできてしまいます。ほかのスレッドから割り込みで変更される可能性があるデータに対し、割り込みを想定していないコードを書いてしまった場合は、思わぬところでメモリ破壊が生じてしまい、原因が特定しづらいエラーが発生してしまうかもしれません。 このように単一のリソースに対して、複数のスレッドから同時に処理が実行されるとまずい部分をクリティカルセクションと呼びます。 クリティカルセクションを扱う処理では、スレッド単体でアトミックに一連の処理を実行し、割り込みがないようにほかの

  • スレッドの実際 -- Pthread と Java

    オペレーティングシステム II 電子・情報工学系 新城 靖 (臨時代講) <yas@is.tsukuba.ac.jp> このページは、次の URL にあります。 http://www.hlla.is.tsukuba.ac.jp/~yas/coins/os2-2002/2003-02-28 あるいは、次のページから手繰っていくこともできます。 http://www.hlla.is.tsukuba.ac.jp/~yas/coins/ http://www.is.tsukuba.ac.jp/~yas/index-j.html ■スレッドの実際 C言語での利用 -- Pthread Java言語での利用 (言語組込み) ◆スレッドとは スレッド(thread) あるいは、 軽量プロセス(lightweight processes) とは、 1つの保護の単位としての プロセス(タスク,あるいは,アド

  • プロセスとスレッドの話

    1.プロセスとは? WindowsLinux等のOSでは、ワープロやブラウザなどのアプリケーションを実行するとプロセスというものを作ってその中でアプリケーションを動かします。 コンピュータの仕組みをざっくり話すと、CPU(処理実行)、メモリ(データ記憶)、I/O(外部入出力)の3つで出来ていますが、 このCPUとメモリの部分を仮想的に作ったものがプロセスです。 実際のCPUとメモリは、複数の仮想的なCPUとメモリを切り替えながら動作させることになります。この複数の仮想的なCPUとメモリはそれぞれは完全に分離されています。その事からプロセスには以下の利点があります。 分離された環境でプログラムを動かせば良いのでプログラミングが楽。 メモリが分離されているので、他のアプリケーションから干渉を受けず、セキュリティに強い。 最近はセキュリティが大きく取り上げられることも多く、Chromeなどのブ

    プロセスとスレッドの話
  • タダ飯を食わせろ

    CPUが複数あっても処理が早くならない。 これは、ソフトウェア側の都合があるからだ。 これが意外と厄介なのである。 複数のプロセッサを使って、並列処理をするためには、Windowsではプログラムをスレッドという実行単位に分割する必要がある。通常のプログラムでは、スレッド分割が意識されていない(スレッドを分けていない)ため、Windowsは並列に実行しようとしない。 なお、適時 DoEvents 命令を挟んでやることで、処理中に別の処理を割り込ませることはできる。しかし、残念ながら1プロセスあたりに割り当てられるCPUは同時に1つだけであり、CPU使用率の合計は常に1CPU分である。 DoEventsを実行したとき、他の処理が割り込むだけであって、並列には動かない。 ちなみに、Aの処理中にBの処理が割り込み、さらにその途中でCの処理が割り込んでくると、処理が終わる順番はC→B→Aとなる。割り

  • システムコールを経由する生のLinuxスレッド | POSTD

    Linuxのスレッドは、洗練された美しい設計です。スレッドは仮想アドレス空間とファイルディスクリプタテーブルを共有するプロセスに過ぎません。プロセスによって生成されたスレッドは、メイン”スレッドの”親プロセスに追加された子プロセスです。これらは同じプロセス管理のシステムコールを通して処理されるので、スレッドに関するシステムコールのセットを分ける必要性を取り除きます。これはファイルディスクリプタと同様に洗練された方法です。 一般的に、UNIX系のシステムではfork()を使ってプロセスを生成します。新しいプロセスは、オリジナルのコピーとして独自のアドレス空間とファイルディスクリプタテーブルを取得します。(Linuxではコピーオンライトを使用して、この部分を効率的に処理します。)しかし、これは非常に高度なスレッドの生成方法なので、Linuxでは別の clone() システムコールを使用します。

    システムコールを経由する生のLinuxスレッド | POSTD
  • Perlのithreads(iスレッド)に関するメモ

    Perlithreadsについて ithreadsに関する日語のサイトがあまりないので、何か適当にメモっておきます。 基 サンプル 留意点(重要な基事項) できるだけ最新のPerlで使おう スレッドのコンテキスト スレッドと値 オブジェクトの共有 オブジェクトは二度(以上)死ぬ Windows上でのdetach 特別なサブルーチンCLONEについて マルチスレッドにおけるrand()の使用 スレッドにおけるシグナル処理 関連情報 モジュール その他 forkによるthreadsのエミュレート cond_timedwait なぜかスレッドの生成に時間がかかる時があるのですが… Thread::Queueについて CLONEサブルーチン マルチスレッドにおける再現性のある乱数列 Thread::TieをWIN32 with activeperlで使う スレッドが生きているかどうかのチェ

  • プロセス、スレッド、ファイバ、タスク、ジョブ、違いを整理してみよう - Schi Heil と叫ぶために

    まずは分かりやすいプロセスとスレッドから。 WindowsLinux などの汎用 OS 上のアプリケーションは一般にプロセスとして動作している。プロセスはプログラムの実行単位である。プロセスは1つ以上のスレッドと、ファイル、ヒープメモリなどのリソースで構成される。一方、スレッドは CPU 利用の単位である。スレッドはそれぞれが専用のスタックと CPU レジスタのコピーを保持するが、ファイルやヒープメモリは同一プロセス内の全てのスレッドで共有する。 スレッドのさらにサブセットがファイバである。スレッドとの違いは切り替え動作にありファイバのほうが軽いというメリットがある。プロセス、スレッド、ファイバの関係はこちらの説明が分かりやすかった。 プロセスはプログラム実行のための固有のメモリ空間を持っており、最も独立性の高い実行単位である反面、起動や切り替えに時間がかかるという特性を持っています

    プロセス、スレッド、ファイバ、タスク、ジョブ、違いを整理してみよう - Schi Heil と叫ぶために
  • C++ マルチスレッド 入門

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami

    C++ マルチスレッド 入門
  • 1