雑誌にせよWebにせよ,最近のWindowsプログラミングの記事のほとんどは .NET向けだ。マイクロソフトも,これまでネイティブ・コードでの開発が主流だったC/C++開発まで, .NETへの移行を促そうとしている。 ではネイティブ・アプリケーション開発用のプログラミング・インタフェースであるWin32 API(Application Programming Interface)の知識は不要になるのかというと,決してそうはならないと筆者は考えている。理由の一つは,OSが動作する仕組みを知ることが,今後も開発者にとって重要であり続けることだ。プロセス管理,メモリー管理,同期化といった概念は,.NETで開発する場合でも必要だ。こうした知識を得るのに一番いいのは,やはりOSのカーネルに近いAPIのレベルで学ぶことである。 将来どうなるかはともかく,現時点では .NET Frameworkの大部分
まずは分かりやすいプロセスとスレッドから。 Windows や Linux などの汎用 OS 上のアプリケーションは一般にプロセスとして動作している。プロセスはプログラムの実行単位である。プロセスは1つ以上のスレッドと、ファイル、ヒープメモリなどのリソースで構成される。一方、スレッドは CPU 利用の単位である。スレッドはそれぞれが専用のスタックと CPU レジスタのコピーを保持するが、ファイルやヒープメモリは同一プロセス内の全てのスレッドで共有する。 スレッドのさらにサブセットがファイバである。スレッドとの違いは切り替え動作にありファイバのほうが軽いというメリットがある。プロセス、スレッド、ファイバの関係はこちらの説明が分かりやすかった。 プロセスはプログラム実行のための固有のメモリ空間を持っており、最も独立性の高い実行単位である反面、起動や切り替えに時間がかかるという特性を持っています
プレイステーション 3で動作する世界最高速の密行列LU分解プログラムが公開される。これは、2008年Cellスピードチャレンジの規定課題部門で最優秀賞を受賞した東京工業大学小長谷研究室チーム(里城晴紀氏)プログラムを、6月11日から6月13日の期間中、つくば国際会議場にて開催される先進的計算基盤システムシンポジウムSACSIS2008で表彰するというもの。 今回で2回目となるマルチコアプログラミングコンテストCellスピードチャレンジでは、日本全国から88チームが参加。密行列のLU分解に基づく連立一次方程式の求解を規定課題部門のテーマとした。これはスーパーコンピュータの世界一を決めるHPL(High-Performance Linpack Benchmark)にも採用されており、今回、Cell Broadband Engineを搭載するプレイステーション 3でどこまで性能を引き出せるかが注
思いは言葉に。 はてなブログは、あなたの思いや考えを残したり、 さまざまな人が綴った多様な価値観に触れたりできる場所です。
This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Concurrent Affairs Implementing the CLR Asynchronous Programming Model Jeffrey Richter Code download available at: Concurrent Affairs 2007_03.exe(157 KB) Contents The Heart of the APM: IAsyncResult Implementing the APM Testing and Performance Conclusion
No.2で参照されているURLに記述されている通り、Win3.x/95/98/Me で使用されているのは、ノンプリエンプティブマルチタスク(疑似 マルチタスク)と呼ばれているもので、各アプリケーションがCPUを 使用しない「空き時間」を開放するのをOSが待つ事によって、他の アプリケーションと同時実行を行います。 これはマルチタスクOSとして単純でCPUへの負担も少なくて済みますが CPUをなかなか明け渡さないアプリケーションや無限ループに入った アプリケーションが有った場合には、動作が遅くなったりOSもろとも 全てのアプリケーションの動作が停止してしまいます。 Windows NT以降ではOSがCPUの処理時間を管理して各アプリケーション に配分するプリエンプティブマルチタスクが使用されているはずですが 場合によっては、OS毎アプリケーションが動作停止する事がWindows XP でも発
通常、非同期操作は、大きなサイズのファイルを開く、リモート コンピュータに接続する、データベースに問い合わせるなど、完了するまでに時間のかかる可能性があるタスクを実行するために使用します。非同期操作は、メイン アプリケーション スレッドとは別個のスレッドで実行されます。アプリケーションが非同期操作を実行するメソッドを呼び出した場合、アプリケーションは、非同期メソッドがタスクを実行している間も動作を継続できます。 .NET Framework には、非同期操作のデザイン パターンとして次の 2 つが用意されています。 IAsyncResult オブジェクトを使用する非同期操作 イベントを使用する非同期操作 IAsyncResult デザイン パターンでは、さまざまなプログラミング モデルを使用できますが、習得するのに手間がかかり、ほとんどのアプリケーションで必要とされる以上の柔軟性を提供しま
シングルスレッドアプリケーションは、レジ係が 1 人しかいないスーパーのようなものです。スーパーの経営者からすれば、レジ係が 1 人なら人件費節約になりますが、応対できる客数が制限されます。このため、大安売りの日などはレジ前に長蛇の列ができ、一部の客から不満が出ることになるでしょう。これは一般的なボトルネックです。つまり、多量のデータが流れているのにもかかわらず、その流れの幅が狭すぎるのです。もちろん、レジ係を増やす以外に解決策はありません。 スーパーとレジ係の関係は、アプリケーションとスレッドの関係と同じです。アプリケーション内で複数のスレッドを使用すれば、処理を分割し、相互に独立して行うことができます。これは、プロセッサとユーザータイムを最も効率的に活用することであり、作業効率が改善されます。しかし、これまでマルチスレッドプログラミングの経験がない場合、注意が必要です。マルチスレッドは
本稿では、VB.NETを利用し、簡単な機械語で動く仮想CPUを作ることでバイナリプログラミングを満喫します。実際の業務で直接使えるケースは少ないと思いますが、デバッグやプログラミングの地力向上に役立つでしょう。今回はINC命令とDEC命令の実装を通じて、長さが違う機械語の実装法を解説します。 Visual Studioには、標準でたくさんのコントロールが用意されていますが、 ComponentOne Studio(コンポーネントワンスタジオ)には、さらに便利なコントロールが多数収録されています。この連載ではこれらのコンポーネントを組み合わせて売上管理アプリケーションを作っていきます。まずは、売上データ一覧表の項目として、 ComponentOne Studioに収録されているFlexGridを使いながらアプリケーションの土台を作成します。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く