関係非同期、マルチスレッドアーキテクチャベースのコンピュータ

コンセプトおよび非同期およびマルチスレッドの参照を見て、「お勧めの違いC#の非同期およびマルチスレッドの違いを」記事

この記事は、に基づいてコンピュータ・アーキテクチャとの関係についてお話したいと思います

まず、LETの張Pingshiアーキテクチャ図

 

他の周辺(すなわち、外部IO)とみなすことができるながら風水コンピュータ、CPUは、コアです。図にはメモリを持っていないメモリを反映していないか、メモリも周辺機器に起因する、初期のコンピュータによるものとすることができます。個人的に私は、外部IOとみなさ他、今日のコンピュータのメモリとCPUに全体として見ることができると思います。

目的は、非同期周辺機器と一致していないCPU速度の出現に対処するためであるが、二つの解決策があります

まず、その上のハードディスク、グラフィックカード、ネットワークカード、およびハードウェア・レベルのサポートDMA機能。DOSオペレーティングシステムなど、この1つのプロセスがまた開始することができるよう、非同期DMA動作。DMAはもはや操作を完了するために開始指示後にCPU周辺を待つことができますが、次のステップになります

第二に、マルチプロセス及びマルチスレッドオペレーティングシステムを提供するソフトウェア・レベル。プロセスは、アプリケーションの隔離および保護効果を有するように設計リソース割当部とヘビー級であり、スケジューリング処理との間の通信は、プロセス間のクロススケジュールの方法により、典型的には複雑で高価な、プロセス間通信IPCなりますオペレーティングシステムの責任。プロセスは、リソース割当システムの基本的な単位であり、スレッドは、CPUスケジューリングの基本単位です。現代のオペレーティングシステムが非同期で直接ハードウェア呼び出しをサポートしていない下したがって、ソフトウェアレベルの非同期簡単な方法は、マルチスレッドプログラミングです。

プロセスが複数のスレッドを含めることができ、スレッドを使用すると、リソースを作成することができ、リソースを共有することができます。実際には、CPUのために、プロセスおよびスレッドとの差は大きくありません。対処すべきアクセス非同期プログラミングの問題は、コーディネートによって引き起こされる制御プログラムフローの問題に同時に資源の共有と非同期不確実性が含まれます。

マルチスレッドを非同期実際のプログラミングで行うことができる、それは人為的に制御し、順次実行されてもよいです。または非同期プログラミング機能に沿ったアプリケーションシナリオの後に次のステップに、我々はまだ、このような長距離通話を開始し、結果を得るために必要として、同期プログラミングを使用します。

スレッドスケジューリングは、軽量ユニットであるが、そしていくつかのシーンは、例えば、CPU集約型操作などのマルチスレッドプログラミングに適していない、まだいくつかのオーバーヘッドが存在することになります。

近代的なマルチコアCPUは、多くのコアを同時に利用することができるように取得するために、CPUの利用率を向上させることができるマルチスレッド、構造を有しています。OS間のマルチコアCPUの平等およびマルチコア・スケジューリング・スイッチに割り当てられたスレッドは、開発者にとっての関心事であるべきであるかどうかについては、ハードウェアが透明でなければなりません。

 

参考文献:

C#の非同期およびマルチスレッドとの間の差

おすすめ

転載: www.cnblogs.com/JianY/p/12035505.html