Skip to content

shuhei-fujita/playground-linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

並行処理

Linux 概要

  • 並行性と並列性の違い:
    • 並行性(Multiprocessing):複数のタスクが交互に実行されること。物理的に同時に実行される必要はない。
    • 並列性(Parallelism):複数のタスクが物理的に同時に実行されること。
  • プロセスとスレッドの違い:
    • プロセス:OS から資源(メモリ空間、ファイル)を割り当てられ、独立して実行される単位。
    • スレッド:プロセス内で実行される、より軽量な実行単位。メモリ空間を共有する。
  • シンクロナス(同期)とアシンクロナス(非同期)の違い:
    • 同期:タスクが完了するのを待つ。
    • 非同期:タスクがバックグラウンドで実行され、完了を待たずに次のタスクに移動。

Linux のプロセス管理

  • ps, top, htop:プロセスの状態やリソース使用量を確認。
  • kill, bg, fg:プロセスの制御コマンド。

Linux のスレッド管理

  • POSIX スレッド(pthreads):POSIX 準拠のスレッドライブラリ。pthread_create(), pthread_join() などの関数があります。

IPC(Inter-Process Communication)

  • パイプライン、ソケット、共有メモリ、セマフォなどのメカニズム。データをプロセス間で交換。

Linux の同期処理

  • ミューテックス(Mutex):複数のスレッドが同時にリソースを利用するのを防ぐ。
  • デッドロック:2 つ以上のプロセス/スレッドが相手が放棄するリソースを永遠に待つ状態。

Linux のスケジューリング

  • nicerenice:プロセスの優先順位を変更。

高レベルな並行処理ツールとライブラリ

  • asyncio(Python):非同期 IO をサポートする Python のライブラリ。
  • OpenMP:C/C++や Fortran で並列計算を行うための API。

実践的なプロジェクト

  • 例:ウェブスクレイピング、大規模なデータ処理、シミュレーションなど、並行処理を活用するプロジェクト。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published