マルチスレッドオペレーティングシステム
では、各システムの実装方法は異なります。ユーザレベルのスレッドはいくつかのシステムに実装され、カーネルレベルのスレッドはいくつかのシステムに実装されます。
1.カーネルレベルのスレッド:
(1)スレッドの作成、取り消し、切り替えなどどちらも直接のカーネル実装が必要です。つまり、カーネルはスケジュール可能なエンティティであるすべてのスレッドを認識しています。 (2)これらのスレッドはシステム全体のリソースをめぐって競合する可能性があります。 (3)カーネル空間内のカーネルサポートスレッド毎にスレッド制御ブロック(TCB)を設定し、カーネルはスレッドの存在を検知し、制御ブロックに従って制御する。ある程度、プロセスと似ていますが、作成およびスケジューリングのオーバーヘッドがプロセスよりも小さいという点が異なります。一部の統計は1:10です。
2.ユーザーレベルのスレッド:
(1)ユーザーレベルのスレッドはユーザー空間にのみ存在します。 ——> kernel(3)(2)kernelを比較してもユーザースレッドは見えません。 ——>重要な相違点(3)カーネルリソースの割り当ては依然としてプロセスに従って割り当てられ、各ユーザースレッドはプロセス内のリソースに対してのみ競合できます。
ユーザースレッドは中間システムで実行されます。現在、中間システムを実装する方法は2つあります。すなわち、ランタイムシステム(Runtime System)とカーネル制御スレッドです。 「ランタイムシステム」は、本質的にスレッドを管理および制御するために使用される機能の集まりです。作成、元に戻す、スレッドの同期と通信、およびスケジュールされた機能を含む機能。これらの関数は、ユーザースレッドとカーネル間のインターフェイスとしてユーザー空間に存在します。ユーザースレッドはシステムコールを使用できませんが、代わりにスレッドがシステムリソースを必要とするとき、要求はランタイムに渡され、ランタイムは対応するシステムコールを介してシステムリソースを取得します。カーネル制御スレッド:システムはプロセスにいくつかの軽いプロセス(LWP)を分配しますLWPはシステムコールを通してカーネルによって提供されるサービスを得ることができます、そして、プロセスのユーザスレッドはマルチプレクシングを通してLWPに関連付けられてカーネルのサービスを得ます。
カーネルスレッドの利点:(1)(2)複数のプロセッサがある場合、プロセスの複数のスレッドが同時に実行できます。(1)カーネルによってスケジュールされます。
ユーザープロセスの利点:(1)スレッドのスケジューリングはカーネルの直接参加を必要とせず制御が簡単デメリット:(1)リソーススケジューリングがプロセスに従って行われるマルチプロセッサでは、同じプロセス内のスレッドは同じプロセッサにしか分割できない。時間多重化
adbシェル端末で、電話の現在のすべてのプロセスステータスを表示するには、psと入力しますpsのフルネームはProcess Statusです。
1. psコマンドのパラメータ
Grep `; すべての一般的なアプリケーションを見るandroidはシングルユーザなので、通常のプロセスのユーザはu0 で始まり、googleはandroidをもっとサポートするようになること
NetBeansのダウンロード 例としてnetbeans-7.0beta2-ml-javaee-linux.shを入手します。#sh netbeans-7.0beta2-ml-javaee -li
RedisはオープンソースのANSI C言語で、ネットワークをサポートし、メモリベースの永続ログタイプ、Key-Valueデータベースを提供し、多言語APIを提供します。 2010年3月15日から、R
debianのインストールは最小インストールを使用するため、デフォルトは中国語でインストールされますが、カーネルは中国語フォントを持ちません。解決策:ロケールをリセットし、ROOTユーザーでログインし