ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

スレッド (コンピュータ)

索引 スレッド (コンピュータ)

レッド(thread)とは、CPU利用の単位。プロセスに比べて、プログラムを実行するときのコンテキスト情報が最小で済むので切り替えが速くなる。スレッドは、thread of execution(実行の脈絡)という言葉を省略したものである。 プログラミングの観点からみると、アプリケーションの処理の「実行の脈絡」は1つでないことが多い。これをシングルスレッドで実現しようとするとシグナルやタイマーを駆使してコーディングすることになる。また、複数のプロセスに分割してプロセス間通信で協調動作させるという方法もある。しかし、いずれの場合もそれらの機能を使うための余分な、本来のアルゴリズムと関係ないコーディングが必要となる。スレッドを使用したプログラミングは本来のアルゴリズムに集中しやすくなり、プログラムの構造が改善されるという効果がある。.

45 関係: 同時マルチスレッディング並行計算主記憶装置マルチプロセッシングマルチタスクマイクロスレッドハードウェアマルチスレッディングバレルプロセッサユーザーインターフェイススレッドライブラリリアルタイムオペレーティングシステムリエントラントプログラミング (コンピュータ)プログラム (コンピュータ)プロセスプロセス制御ブロックプロセス管理プロセス間通信ファイバー (コンピュータ)アルゴリズムアプリケーションソフトウェアオペレーティングシステムカーネルクリティカルセクショングラフィカルユーザインタフェースグリーンスレッドコルーチンコンテキストスイッチコンテクストシグナル (Unix)システムコールスレッド局所記憶スレッドセーフタイマーCPU要素計算資源軽量カーネルスレッド集合Native POSIX Thread LibraryPOSIXスレッドSolarisUNIX System V排他制御.NET Framework

同時マルチスレッディング

同時マルチスレッディング(どうじマルチスレッディング、Simultaneous Multithreading、SMT)とは、単一CPUにより複数の実行スレッドを同時に実行するプロセッサの機能。.

新しい!!: スレッド (コンピュータ)と同時マルチスレッディング · 続きを見る »

並行計算

並行計算(へいこうけいさん、concurrent computing)とは、コンピュータプログラムにおいて複数の相互作用を及ぼす計算タスクの(同時)並行的実行を指す。.

新しい!!: スレッド (コンピュータ)と並行計算 · 続きを見る »

主記憶装置

主記憶装置(しゅきおくそうち)は、記憶装置の分類で、「補助記憶装置」が一般に外部バスなど比較的CPUから離れていて大容量だが遅い記憶装置を指すのに対し、コンピュータのメインバスなどに直接接続されている記憶装置で、レイテンシやスループットは速いが比較すると小容量である。特に、CPUが入出力命令によって外部のインタフェースを操作するのではなく、「ロード・ストア命令」や、さらには通常の加算などの命令において直接読み書きできる対象であるものを指す。メインメモリ、一次記憶装置とも。.

新しい!!: スレッド (コンピュータ)と主記憶装置 · 続きを見る »

マルチプロセッシング

マルチプロセッシング(multi processing)とは、(本来は)ひとつのプロセスだけではなく複数の並行プロセスを同一システム内で使用することを意味する。 マルチタスクと同様ひとつのCPUを複数のプロセスが共有することも示すが、ひとつのシステム内の複数のCPUが複数のスレッドを動作させることも意味する。マルチプロセッサと言う場合は一般に後者のみを指す。.

新しい!!: スレッド (コンピュータ)とマルチプロセッシング · 続きを見る »

マルチタスク

マルチタスク (multi tasking) は、コンピュータにおいて複数のタスク(プロセス)を切り替えて実行できるシステムのことである。Unixなど「プロセス」という用語を使うシステムではマルチプロセスともいう(ほぼ同じものを別のシステムでは別の名で呼んでいることもあれば、違うものを同じ名で呼んでいることもあれば、何らかの理由で呼び分けていることもある)。マルチプログラミングという語は複数のプログラムを動かすという点に着目した語である(一般に、「タスク」とか「プロセス」は、プログラムの活動実体、といったようなものを指す語である)。逆に、同時に一つのタスクしか実行できない方式をシングルタスクという。.

新しい!!: スレッド (コンピュータ)とマルチタスク · 続きを見る »

マイクロスレッド

マイクロスレッド(microthread)は、マイクロプロセッサ内部の並列機構である。スレッドとは異なり、タスクのスケジュールが単純であり、OSのカーネルではなくプロセッサが担当するためオーバヘッドが少なく、より細かい粒度での並行計算が実現できる。.

新しい!!: スレッド (コンピュータ)とマイクロスレッド · 続きを見る »

ハードウェアマルチスレッディング

ハードウェアマルチスレッディング(Hardware multithreading)は、プロセッサのマイクロアーキテクチャにおいて複数のスレッドの実行をハードウェアで提供することである。.

新しい!!: スレッド (コンピュータ)とハードウェアマルチスレッディング · 続きを見る »

バレルプロセッサ

バレルプロセッサ(Barrel processor)は、実行するスレッドをサイクルごとに切り替える、コンピュータのプロセッサである。同じ、あるいは似たような機構を指す語として、"インターリーブ(inerleaved)"や"細粒度(fine-grained)"あるいは一時マルチスレッディングなどといった語もある(観点の違いなどによる)。 現代のスーパースケーラアーキテクチャにおける同時マルチスレッディングとは異なり、1サイクルに複数の命令を実行できるものではない。 たとえば、CDC 社の Cyber コンピュータのあるものは、一つのスレッドに処理が戻る前に、20の異なるスレッドのそれぞれから1つずつ命令を実行した。また、Ubicom 社の IP3023 プロセッサは、一つのスレッドに処理が戻る前に、8つの異なるスレッドのそれぞれから1つずつ命令を実行した。 プリエンプティブ・マルチタスクのように、各実行スレッドは、プログラムカウンタやそれ以外のハードウェアレジスタ(各スレッドのarchitectural state)を割り当てられる。バレルプロセッサは、他のスレッドが順番を待っている間、一つのスレッドを通例数百から数千サイクル実行し続けるプリエンプティブ・マルチタスクマシンとは異なり、各スレッドが一つの命令を N サイクルごとに実行することを保証することができる。 C-slowing と呼ばれる技術により、通常のシングルタスクプロセッサの設計から、対応するバレルプロセッサの設計を自動的に生成することができる。この方法で生成された n-way のバレルプロセッサは、それぞれがオリジナルのおよそ 1/n のスピードで動作するオリジナルのシングルタスクプロセッサを n 個コピーしたマルチプロセッサのように動作する。.

新しい!!: スレッド (コンピュータ)とバレルプロセッサ · 続きを見る »

ユーザーインターフェイススレッド

ユーザーインターフェイススレッド (User interface thread) とは、グラフィカルユーザインタフェースでのメインスレッドのことを指す。UIスレッドと表記されることもある。本項では、GUIでのマルチスレッドに関するデザインパターンを記載する。ユーザーインターフェイススレッドは、Javaではイベントディスパッチスレッド、Adobe Flashではprimordial workerと呼ばれる。.

新しい!!: スレッド (コンピュータ)とユーザーインターフェイススレッド · 続きを見る »

ライブラリ

ライブラリ()は、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。ライブラリと呼ぶ時は、それ単体ではプログラムとして作動させることはできない実行ファイルではない場合がある。ライブラリは他のプログラムに何らかの機能を提供するコードの集まりと言うことができる。ソースコードの場合と、オブジェクトコード、あるいは専用の形式を用いる場合とがある。たとえば、UNIXのライブラリはオブジェクトコードをarと呼ばれるアーカイバでひとまとめにして利用する。図書館()と同様にプログラム(算譜)の書庫であるので、索引方法が重要である。 また、ソフトウェア以外の再利用可能なものの集合について使われることもある。.

新しい!!: スレッド (コンピュータ)とライブラリ · 続きを見る »

リアルタイムオペレーティングシステム

リアルタイムオペレーティングシステム(;RTOS)は、リアルタイムシステムのためのオペレーティングシステム (OS) である。組み込みオペレーティングシステムに多い。OSの主要な機能である資源管理において、時間資源の優先度に基づく配分と実行時間の予測可能性を提供することに特化している、ないし、そういった機能に力を入れている。 以下、ほとんどのRTOSが持つ、基本的な機能について述べる。 RTOSは、実行コンテキストを保持するオブジェクト(UNIXではスレッドと呼んでいるものに近いが、RTOSではもっぱらタスクと呼ぶ。以下タスクで統一する)と、タスク間の同期通信機構を提供する。同期通信機構により特定のタスクに待ち状態が発生したときのスケジューリングを行うのも、一般的なOSと同様RTOSの仕事であるが、このスケジューリング規則にRTOSの大きな特色がある。 RTOSへの要求には、以下のようなものが挙げられる。.

新しい!!: スレッド (コンピュータ)とリアルタイムオペレーティングシステム · 続きを見る »

リエントラント

リエントラント(reentrant、再入可能)とは、プログラムやサブルーチンが実行中に割り込まれ、その実行が完了する前に再び呼び出され実行されても安全だという性質を指す。割り込みは分岐や呼び出しなどの内部的な動きによって生じる場合もあるし、ハードウェア割り込みやシグナルなどの外部の動きによって生じる場合もある。割り込んでの呼び出しが完了すれば、割り込まれた呼び出しが実行を継続できる。 この定義はシングルスレッドのプログラミング環境が起源であり、ハードウェア割り込みで割り込まれた制御の流れが割り込みサービスルーチン (ISR) に転送されることから生まれた。ISRが使用するサブルーチンは割り込みをきっかけとして実行される可能性があるため、リエントラントでなければならない。OSのカーネルが使用するサブルーチンの多くは、カーネルで確保済みのリソースを超えられない制限がありリエントラントではない。そのためISRでできることは限られている。例えば、一般にISRからファイルシステムにはアクセスできないし、場合によってはヒープ領域も確保できない。 直接または間接に再帰可能なサブルーチンはリエントラントである。しかし、グローバル変数が処理の流れの中でしか変化しないことを前提としているサブルーチンはリエントラントではない。グローバル変数を更新するサブルーチンが再帰的に呼び出されれば、1回のサブルーチン実行の中でグローバル変数は突然変化することになる。 リエントラント性の概念はシングルスレッドの環境に起源があり、マルチスレッド環境でのスレッドセーフという概念とは異なる。リエントラントなサブルーチンはスレッドセーフにすることもできるが、リエントラントだというだけであらゆる状況でスレッドセーフと言えるわけではない。逆にスレッドセーフなコードはリエントラントである必要はない(後述の例を参照)。.

新しい!!: スレッド (コンピュータ)とリエントラント · 続きを見る »

プログラミング (コンピュータ)

ンピュータのプログラミング(programming)とは、コンピュータプログラムを作成することにより、人間の意図した処理を行うようにコンピュータに指示を与える行為である。.

新しい!!: スレッド (コンピュータ)とプログラミング (コンピュータ) · 続きを見る »

プログラム (コンピュータ)

ンピュータプログラム(英:computer programs)とは、コンピュータに対する命令(処理)を記述したものである。コンピュータが機能を実現するためには、CPUで実行するプログラムの命令が必要である。 コンピュータが、高度な処理を人間の手によらず遂行できているように見える場合でも、コンピュータは設計者の意図であるプログラムに従い、忠実に処理を行っている。実際には、外部からの割り込み、ノイズなどにより、設計者の意図しない動作をすることがある。また設計者が、外部からの割り込みの種類を網羅的に確認していない場合もある。.

新しい!!: スレッド (コンピュータ)とプログラム (コンピュータ) · 続きを見る »

プロセス

プロセスとは、情報処理においてプログラムの動作中のインスタンスを意味し、プログラムのコードおよび全ての変数やその他の状態を含む。オペレーティングシステム (OS) によっては、プロセスが複数のスレッドで構成される場合があり、命令を同時並行して実行する。.

新しい!!: スレッド (コンピュータ)とプロセス · 続きを見る »

プロセス制御ブロック

プロセス制御ブロック(プロセスせいぎょブロック、Process Control Block、PCB)とは、オペレーティングシステムのカーネルにおいて対応するプロセスの状態を表すデータ構造。オペレーティングシステム (OS) によっては、保護された便利な配置としてプロセス毎のカーネルスタックの先頭部分にPCBが置かれる。 なお、OSによっては「プロセス」の代わりに「タスク」という用語を使う場合があり、その場合にはタスク制御ブロック (Task Control Block, TCB) と呼ばれるが、PCBと同じ物と考えてよい。.

新しい!!: スレッド (コンピュータ)とプロセス制御ブロック · 続きを見る »

プロセス管理

プロセス管理とは、オペレーティングシステムの主にカーネルの重要な機能の一つで、プロセスの生成・実行・消滅を管理することである。プロセス間通信や排他制御もプロセス管理の役割である。また、プロセスへのリソースの割り当てを制御する機構でもある。.

新しい!!: スレッド (コンピュータ)とプロセス管理 · 続きを見る »

プロセス間通信

プロセス間通信(IPC、interprocess communication)はコンピュータの動作において複数のプロセス間(の複数のスレッド間)でデータをやりとりするための仕組み。通信するプロセスは同一コンピュータ上にある場合と、ネットワークで接続された別のコンピュータ上にある場合がある。そのようなローカル内対リモート間といったような分類以外にも多くの観点から分類でき、また、スレッド間の通信の帯域幅とレイテンシは様々であり、やりとりされるデータの種類も様々である。メッセージパッシング、同期、共有メモリ、RPCなどといったメカニズムやプリミティブがある。 プロセス間通信の目的・理由には以下のようなものがある。.

新しい!!: スレッド (コンピュータ)とプロセス間通信 · 続きを見る »

ファイバー (コンピュータ)

ファイバー(英: fiber)は、計算機科学の分野において、非常に軽量な実行スレッドを示す。 ファイバー同士はスレッドと同じくアドレス空間を共有するが、両者には区別が存在する。 ファイバーが協調マルチタスクを使用するのに対し、スレッドはプリエンプティブマルチタスクを用いる。スレッドでは、ビジーなスレッドに割り込み他のスレッドを復帰させるためにカーネルのスレッドスケジューラを用いることが多いが、ファイバーは他のスレッドを実行させるために自ら制御を譲る。.

新しい!!: スレッド (コンピュータ)とファイバー (コンピュータ) · 続きを見る »

アルゴリズム

フローチャートはアルゴリズムの視覚的表現としてよく使われる。これはランプがつかない時のフローチャート。 アルゴリズム(algorithm )とは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。算法と訳されることもある。 「問題」はその「解」を持っているが、アルゴリズムは正しくその解を得るための具体的手順および根拠を与える。さらに多くの場合において効率性が重要となる。 コンピュータにアルゴリズムをソフトウェア的に実装するものがコンピュータプログラムである。人間より速く大量に計算ができるのがコンピュータの強みであるが、その計算が正しく効率的であるためには、正しく効率的なアルゴリズムに基づいたものでなければならない。.

新しい!!: スレッド (コンピュータ)とアルゴリズム · 続きを見る »

アプリケーションソフトウェア

アプリケーションスイートである。 アプリケーションソフトウェア(application software, 応用ソフトウェア)は、アプリケーション(応用)プログラムともいい、ワープロや表計算などといった、コンピュータを「応用」する目的に応じた、コンピュータ・プログラムである。なお、それに対してシステムプログラムは、アプリケーションプログラムに対して処理実行のための計算機資源を抽象化して提供する、などのインフラとしての役割のプログラムであり、ユーザーが要求する情報処理を直接実行するものではなく、ユーザーが普段は意識することはない裏方的な存在がシステムプログラムである。.

新しい!!: スレッド (コンピュータ)とアプリケーションソフトウェア · 続きを見る »

オペレーティングシステム

ペレーティングシステム(Operating System、OS、オーエス)とは、コンピュータのオペレーション(操作・運用・運転)のために、ソフトウェアの中でも基本的、中核的位置づけのシステムソフトウェアである。通常、OSメーカーが組み上げたコンピュータプログラムの集合として、作成され提供されている。 オペレーティングシステムは通常、ユーザーやアプリケーションプログラムとハードウェアの中間に位置し、ユーザーやアプリケーションプログラムに対して標準的なインターフェースを提供すると同時に、ハードウェアなどの各リソースに対して効率的な管理を行う。現代のオペレーティングシステムの主な機能は、ファイルシステムなどの補助記憶装置管理、仮想記憶などのメモリ管理、マルチタスクなどのプロセス管理、更にはGUIなどのユーザインタフェース、TCP/IPなどのネットワーク、などがある。オペレーティングシステムは、パーソナルコンピュータからスーパーコンピュータまでの各種のコンピュータや、更にはスマートフォンやゲーム機などを含む各種の組み込みシステムで、内部的に使用されている。 製品としてのOSには、デスクトップ環境やウィンドウシステムなど、あるいはデータベース管理システム (DBMS) などのミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ、基本的なアプリケーションソフトウェア(ウェブブラウザや時計などのアクセサリ)が、マーケティング上の理由などから一緒に含められていることもある。 OSの中で、タスク管理やメモリ管理など特に中核的な機能の部分をカーネル、カーネル以外の部分(シェルなど)をユーザランドと呼ぶ事もある。 現代の主なOSには、Microsoft Windows、Windows Phone、IBM z/OS、Android、macOS(OS X)、iOS、Linux、FreeBSD などがある。.

新しい!!: スレッド (コンピュータ)とオペレーティングシステム · 続きを見る »

カーネル

ーネルはアプリケーションソフトウェアとコンピュータのハードウェアを結び付ける。 カーネル(kernel)は、階層型に設計されたオペレーティングシステム (OS) の中核となる部分である。アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋である。システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理する。 オペレーティングシステムの基本コンポーネントとして、カーネルはメモリ、CPU、入出力を中心としたハードウェアを抽象化し、ハードウェアとソフトウェアがやり取りできるようにする。また、ユーザープログラムのための機能として、プロセスの抽象化、プロセス間通信、システムコールなどを提供する。 これらのタスクはカーネルによって方式が異なり、設計も実装も異なる。モノリシックカーネルは全てを一つの仮想アドレス空間に格納されたコードで実行して性能を向上させようとする。マイクロカーネルはサービスの大部分をユーザー空間で実行し、コードの保守性とモジュール性を向上させようとする, by K.J.。多くのカーネルはこの二つのカテゴリのいずれか、あるいは中間である。.

新しい!!: スレッド (コンピュータ)とカーネル · 続きを見る »

クリティカルセクション

リティカルセクション(Critical section)とは、計算機上において、単一のリソースに対して、複数の処理が同時期に実行されると、破綻をきたす部分を指す。クリティカルセクションにおいては、排他制御を行うなどしてアトミック性を確保する必要がある。 リソースの同一性が保証されなくなる可能性がある場合は、クリティカルセクションでは常に排他制御を行う必要がある。 クリティカルセクションの排他制御ではデッドロックに注意する必要がある。.

新しい!!: スレッド (コンピュータ)とクリティカルセクション · 続きを見る »

グラフィカルユーザインタフェース

GUIを提供するソフトウェアの1つ、GNOME グラフィカルユーザインタフェース('''G'''raphical '''U'''ser '''I'''nterface、GUI)は、コンピュータグラフィックスとポインティングデバイスなどを用いる、グラフィカル(ビジュアル)であることを特徴とするユーザインタフェース。キャラクタユーザインタフェース (CUI) やテキストユーザインタフェース (TUI) と対比して語られることが多い。.

新しい!!: スレッド (コンピュータ)とグラフィカルユーザインタフェース · 続きを見る »

グリーンスレッド

リーンスレッド(英: green threads)とは、コンピュータプログラミングにおいて、オペレーティングシステムではなく仮想マシン (VM) によってスケジュールされるスレッドである。グリーンスレッドはネイティブのOSの機能に依存せずにマルチスレッド環境をエミュレートする。グリーンスレッドはカーネル空間ではなくユーザー空間で管理されるため、ネイティブスレッドがサポートされていない環境でも動作する。.

新しい!!: スレッド (コンピュータ)とグリーンスレッド · 続きを見る »

コルーチン

ルーチン(co-routine)とはプログラミングの構造の一種。サブルーチンがエントリーからリターンまでを一つの処理単位とするのに対し、コルーチンはいったん処理を中断した後、続きから処理を再開できる。接頭辞 co は協調を意味するが、複数のコルーチンが中断・継続により協調動作を行うことによる。 サブルーチンと異なり、状態管理を意識せずに行えるため、協調的処理、イテレータ、無限リスト、パイプなど、継続状況を持つプログラムが容易に記述できる。 コルーチンはサブルーチンを一般化したものと考えられる。コルーチンをサポートする言語には Modula-2、Simula、Icon、Lua、C#、Limbo などがある。マルチスレッドで原理的には同じことができるため、現在はそちらが使われるケースが多い。これはマルチスレッドであれば直接OSの支援を受けられることや、エントリー/リターンの構造を変えずにコードを多重化できるので、過去の言語との親和性が良いなどが理由である。ただし、マルチスレッドの場合プログラマが同期制御を行わなければならないので、コルーチンのような簡易さはない。 コルーチンという名称は、メルヴィン・コンウェイの1963年の論文が起源である。.

新しい!!: スレッド (コンピュータ)とコルーチン · 続きを見る »

コンテキストスイッチ

ンテキストスイッチ (context switch) とは、複数のプロセスが1つのCPUを共有できるように、CPUの状態(コンテキスト (情報工学))を保存したり復元したりする過程のことである。コンテキストスイッチはマルチタスクオペレーティングシステムに不可欠な機能である。通常コンテキストスイッチは多くの計算機処理を必要とするため、オペレーティングシステムの設計においてはコンテキストスイッチを最適化することが重要である。.

新しい!!: スレッド (コンピュータ)とコンテキストスイッチ · 続きを見る »

コンテクスト

ンテクスト(Context)あるいはコンテキストとは、文脈や背景となる分野によってさまざまな用例がある言葉であるが、一般的に文脈(ぶんみゃく)と訳されることが多い。文脈により「脈絡」、「状況」、「前後関係」、「背景」などとも訳される。.

新しい!!: スレッド (コンピュータ)とコンテクスト · 続きを見る »

シグナル (Unix)

ナル(signal)とは、Unix系(POSIX標準に類似の)OSにおける、限定的なプロセス間通信の形式を使って、プロセスに対し、非同期で、イベントの発生を伝える機構である。シグナルが送信された際、OSは宛先プロセスの正常な処理の流れに割り込む。どんな不可分でない処理の間でも割り込むことができる。受信プロセスが以前にシグナルハンドラを登録しておけば、シグナル受信時にそのルーチンが実行される。さもなくば、デフォルトのシグナル処理が行われる。(同様なものは他のTSSなどでも開発されてはいるが、UNIXのシグナルは)1970年ごろベル研究所でUNIXに実装された。後にPOSIXである程度は標準化されているが、標準化が諦められているような振舞などもいくつかあり、特に他の幾つかの要素(fork等)とマルチスレッドとシグナルが絡むと実装毎の対処にプログラミングが大変になることがある。.

新しい!!: スレッド (コンピュータ)とシグナル (Unix) · 続きを見る »

システムコール

テムコールとは、オペレーティングシステム (OS)(より明確に言えばOSのカーネル)の機能を呼び出すために使用される機構のこと。実際のプログラミングにおいては、OSの機能は関数 (API) 呼び出しによって実現されるので、OSの備える関数 (API) のことを指すこともある。なお、μITRONではサービスコールと呼ばれる。また、OSのことをスーパーバイザとも呼ぶため、スーパーバイザコールともいう。 例えば、C言語で使用できるfopen()やmalloc()などのライブラリ関数は、その関数内においてシステムコール(例えばPOSIX準拠のOSであればopen()やsbrk()など)を呼び出す。.

新しい!!: スレッド (コンピュータ)とシステムコール · 続きを見る »

スレッド局所記憶

レッド局所記憶(英: Thread local storage, TLS)は、静的もしくは大域的なメモリをスレッドごとに局所的に使用するためのコンピュータプログラミングの方法である。 プロセス内のスレッドはすべてアドレス空間を共有しており、同じプロセスのスレッドから参照する際、静的変数やグローバル変数は同じメモリ番地に配置される。 一方スタック上の変数はすべてのスレッドが自分のスタックを持つためスレッドに対して局所的であり、異なるメモリ番地に存在する。 同じ静的変数・グローバル変数を参照する二つのスレッドが(変数をスレッドに対して局所的にすることで)実際には異なるメモリ番地を参照できることが望ましい場合がある。たとえば典型的な例としてC言語のエラーコードを格納する変数 errno がある。 少なくともメモリアドレスを格納できるサイズの変数をスレッドに対して局所的にすることが可能なら、メモリブロックを確保し、そのメモリアドレスをスレッドローカルな変数に格納すれば、原理的には任意のサイズのメモリブロックをスレッド局所にすることが可能である。.

新しい!!: スレッド (コンピュータ)とスレッド局所記憶 · 続きを見る »

スレッドセーフ

レッドセーフ(Thread-safe)は、マルチスレッドプログラミングにおける概念である。あるコードがスレッドセーフであるという場合、そのコードを複数のスレッドが同時並行的に実行しても問題が発生しないことを意味する。特に、ある共有データへの複数のスレッドによるアクセスがあるとき、一度に1つのスレッドのみがその共有データにアクセスするようにして安全性を確保しなければならない。 スレッドセーフはマルチスレッドプログラミングにおける重要な要素である。それは従来、オペレーティングシステムの開発者だけが考慮しなければならない問題だったが、1990年代後半には一般的な問題となった。マルチスレッドプログラムでは、複数のスレッドが同じアドレス空間内で同時に実行される。各スレッドのアクセスするメモリ領域が特に制限されることはなく、全スレッドが全アドレス空間にアクセスできる。従って、プログラムを見たときに予測される制御の流れやデータアクセスの順序は実際に実行時に起きることとかけ離れたものとなることが多い。これは「驚き最小の原則」に反している。スレッドセーフは実際の処理の流れとプログラムのソースコードの関連性を強化し、予期しない動作を最小にすることを指向した特性である。.

新しい!!: スレッド (コンピュータ)とスレッドセーフ · 続きを見る »

タイマー

タイマー(timer)は、あらかじめ設定した時間までの残り時間を表示し(カウントダウン)、残り時間ゼロとなったときに、ブザーや発光で設定された時間が経過したことを知らせる装置のことを指す。その他にも計測開始時からの経過時間(カウントアップ)を行うストップウオッチや、定期的に電源をオンオフしたり、カウントダウンを意識せずにある時刻を設定しておいて知らせる(目覚まし時計)なども含めて、広い意味で時計(日本においてのクロック/ウォッチ)全般のことを指すこともある。計時機、計時器ともいう。タイマとも呼ばれる。 タイマーとしての単機能製品のほかに、通常の時計の一機能として時間経過を知らせる機能(正時ごとの時報音や、上記の目覚まし機能)、家電機器の動作予約機能、コンピュータ機器の動作上の内部機能として組み込まれている時間を計算する機能としてのタイマなどが上げられる。 コンピュータにおいては「クロック」とは時計機能そのものではなく、時刻の単位であり内部動作を同期する基準であり、そのクロックを数えることで一定時間の経過を知るタイマ機能が動作する。.

新しい!!: スレッド (コンピュータ)とタイマー · 続きを見る »

CPU

Intel Core 2 Duo E6600) CPU(シーピーユー、Central Processing Unit)、中央処理装置(ちゅうおうしょりそうち)は、コンピュータにおける中心的な処理装置(プロセッサ)。 「CPU」と「プロセッサ」と「マイクロプロセッサ」という語は、ほぼ同義語として使われる場合も多いが、厳密には以下に述べるように若干の範囲の違いがある。大規模集積回路(LSI)の発達により1個ないしごく少数のチップに全機能が集積されたマイクロプロセッサが誕生する以前は、多数の(小規模)集積回路(さらにそれ以前はディスクリート)から成る巨大な電子回路がプロセッサであり、CPUであった。大型汎用機を指す「メインフレーム」という語は、もともとは多数の架(フレーム)から成る大型汎用機システムにおいてCPUの収まる主要部(メイン)、という所から来ている。また、パーソナルコンピュータ全体をシステムとして見た時、例えば電源部が制御用に内蔵するワンチップマイコン(マイクロコントローラ)は、システム全体として見た場合には「CPU」ではない。.

新しい!!: スレッド (コンピュータ)とCPU · 続きを見る »

要素

要素(ようそ、element)とは、事項の成立やその効力に必要で不可欠な条件のことである。.

新しい!!: スレッド (コンピュータ)と要素 · 続きを見る »

計算資源

計算資源(けいさんしげん、英語: computational resource)とは、コンピュータ科学などで、計算機(具体的なコンピュータ、そこで動くプロセスやジョブ、あるいは抽象的な計算模型)が「計算量」のために費す、具体的あるいは抽象的な「資源」である。計算機資源と言うこともあるが、その場合はプロセッサ時間や記憶装置などコンピュータのハードウェアの占有量のような具体的なものを指していることが多い。 その他に、アプリケーションプログラムの設定データのような情報をデスクトップ環境などのシステムが保存しているものを「リソース」と呼ぶことがある。詳細は、最後の#その他の節のリンク先を参照のこと。.

新しい!!: スレッド (コンピュータ)と計算資源 · 続きを見る »

軽量カーネルスレッド

軽量カーネルスレッド (Light Weight Kernel Threads) あるいは LWKT とは、計算機科学の一般的な用語であり、カーネルスレッドの一種、また特にDragonFlyBSD固有の実装のことを指す。 LWKTは、カーネルスレッドをプリエンプトできるという点において、通常のカーネルスレッドとは異なる。 DragonFlyBSDの開発者Matt Dillonによれば、DragonFlyBSDのLWKTは以下のような特性を持つ。 "LWKTスケジューラはスレッドの実行に責任を持ち、固定優先度のスケジュール方法を採用しているが、固定優先度はユーザープロセスではなく主要なサブシステム間を優先度付けすることに注意してほしい。"たとえば、ハードウェアの割り込みスレッドは最も高い優先度を持っており、次がソフトウェア割り込み、カーネル内部のスレッド、最後がユーザースレッドになっている。ユーザースレッドはユーザー-カーネル優先度(カーネル内コードの実行、たとえばシステムコールの一部をユーザーランドで実行するような場合)あるいはユーザー優先度で動作する。 "DragonFlyはプリエンプトを行うが、特別な状況下でのみ非常に注意深く行う。LWKTの割り込みスレッドは他の大半のスレッドをプリエンプトすることができる。これはFreeBSD-4.xにおける割り込み優先レベル(SPL)/現在プロセスでの割り込み実行の動きを模倣したものだが、DragonFlyでは非割り込みカーネルスレッドが他の非割り込みカーネルスレッドをプリエンプトしない。.

新しい!!: スレッド (コンピュータ)と軽量カーネルスレッド · 続きを見る »

集合

数学における集合 (しゅうごう、set, ensemble, Menge) とは、大雑把に言えばいくつかの「もの」からなる「集まり」である。集合を構成する個々の「もの」のことを元 (げん、; 要素) という。 集合は、集合論のみならず現代数学全体における最も基本的な概念の一つであり、現代数学のほとんどが集合と写像の言葉で書かれていると言ってよい。 慣例的に、ある種の集合が系 (けい、) や族 (ぞく、) などと呼ばれることもある。実際には、これらの呼び名に本質的な違いはないが細かなニュアンスの違いを含むと考えられている。たとえば、方程式系(「相互に連立する」方程式の集合)、集合族(「一定の規則に基づく」集合の集合)、加法族(「加法的な性質を持つ」集合族)など。.

新しい!!: スレッド (コンピュータ)と集合 · 続きを見る »

Native POSIX Thread Library

Native POSIX Thread Library(NPTL)とは、POSIXスレッドを使ったプログラムをLinuxカーネル上で効率的に動作可能とするソフトウェア機能である。 評価結果によると、IA-32上で2秒間で10万スレッドを起動できる。同じ事を NPTL を使わないで行うと、約15分かかった。.

新しい!!: スレッド (コンピュータ)とNative POSIX Thread Library · 続きを見る »

POSIXスレッド

POSIXスレッド は、スレッドのPOSIX標準である。スレッド生成やスレッド操作の API を定義している。 POSIXスレッド標準を実装したライブラリは Pthreads と呼ばれることが多い。Pthreads は主にUnix系POSIXシステム(Linux や Solaris)で使われているが、Microsoft Windows 用実装も存在する。例えば、pthreads-w32 は Pthreads の API のサブセットをサポートしている。.

新しい!!: スレッド (コンピュータ)とPOSIXスレッド · 続きを見る »

Solaris

Solaris(ソラリス)はサン・マイクロシステムズ(サン)によって開発され、UNIXとして認証を受けたオペレーティングシステム (OS) である。2010年1月27日のオラクルによるサン買収に伴い、現在の開発は同社が担っている。 プロプライエタリ・ソフトウェアであるが、かつてコア部分(ONという:OS+NETの略)はOpenSolarisとしてオープンソース化されたが、2010年8月以降、ONのソースコードの公開はされていない。 なお、公開されていたONのソースコードは、有志の手によってIllumosプロジェクトとしてオープンソース化されたまま更新が続けられている。.

新しい!!: スレッド (コンピュータ)とSolaris · 続きを見る »

UNIX System V

System V(システムファイブ、SysV)は、初期の商用UNIXオペレーティングシステムの一種である。.

新しい!!: スレッド (コンピュータ)とUNIX System V · 続きを見る »

排他制御

排他制御せずに ''i'' と ''i+1'' という2つのノードを同時に連結リストから外す操作を行うと、結果として ''i+1'' のノードが外れないという状態になりうる。 排他制御(はいたせいぎょ)とは、コンピュータ・プログラムの実行において、複数のプロセスが利用出来る共有資源に対し、複数のプロセスからの同時アクセスにより競合が発生する場合に、あるプロセスに資源を独占的に利用させている間は、他のプロセスが利用できないようにする事で整合性を保つ処理の事をいう。相互排除または相互排他(mutual exclusion)ともいう。最大k個のプロセスが共有資源にアクセスして良い場合を k-相互排除という。 換言すれば1つのクリティカルセクションに複数のプロセス(またはスレッド)が同時に入ることを防ぐことである。クリティカルセクションとは、プロセスが共有メモリなどの共有資源にアクセスしている期間を指す。排他制御の問題は1965年、エドガー・ダイクストラが Solution of a problem in concurrent programming control(並行プログラミング制御における問題の解法)と題した論文で扱ったのが最初であるTaubenfeld.

新しい!!: スレッド (コンピュータ)と排他制御 · 続きを見る »

.NET Framework

Microsoft.NET Framework(マイクロソフト ドットネット フレームワーク)は、マイクロソフトが開発したアプリケーション開発・実行環境である。 Windowsアプリケーションだけでなく、XML WebサービスやウェブアプリケーションなどWebベースのアプリケーションなども包括した環境となっている。一般に.NETという場合、.NET全体の環境を指す。.

新しい!!: スレッド (コンピュータ)と.NET Framework · 続きを見る »

ここにリダイレクトされます:

ライトウェイトプロセスマルチスレッドシングルスレッド軽量プロセス

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »