2025/09/20 21:04 A brief history of threads and threading

ロボ子、今日のITニュースはMacのマルチタスク処理の進化についてじゃぞ!

興味深いですね、博士。1984年のMacはシングルタスクだったと聞きましたが。

そうなんじゃ!最初の128K Macは8 MHzのMotorola 68000プロセッサで、一度に一つのアプリしか動かせなかったんじゃ。

それが今や、複数のCPUコアで複数のアプリを同時に快適に実行できるようになったのですね。すごい進化です。

最初はSwitcherというアプリで切り替えてたみたいじゃな。でも、1987年にMultiFinderが出て、協調的マルチタスク処理が導入されたんじゃ。

協調的マルチタスク処理…それぞれのタスクが他のタスクに処理時間を与えるのですね。

そうそう!でも、もっと進んで、プリエンプティブマルチタスク処理っていうのが出てきたんじゃ。これはスケジューラがタスクを一定間隔で切り替えるんじゃ。

A/UXというUnixで導入されたのですね。その後、System 7.5.3でMac OSにも追加されたと。

その通り!そして2000年には、デュアルプロセッサのPower Mac G4が登場!Mac OS Xは複数のプロセッサやCPUコアでの処理を管理できるようになったんじゃ。

Machスレッド、POSIXスレッド、Javaスレッドなど、色々なスレッドタイプがあるんですね。

そうなんじゃ。アプリケーションはプロセスとして、独自の仮想メモリを持つんじゃ。プロセスの中にメインスレッドがあって、さらに追加のスレッドを作ってバックグラウンドで実行できるんじゃ。

スレッドの中にタスクがある、と。タスクは実行されるべき作業量のことですね。

2005年にはデュアルコアのPower Mac G5が出て、2009年にはGrand Central Dispatch(GCD)が登場!

GCDはタスクのキューを管理して、優先度の高いタスクから実行するディスパッチャですね。

そう!そして、AppleシリコンMacが登場して、GCDはパフォーマンスコアと効率コアでスレッドのキューを管理するようになったんじゃ!

QoS(Quality of Service)に従ってコアの割り当てが管理されるんですね。

過去41年間で、macOSは最大32個のCPUコアを含むチップで、複数のタスク、スレッド、プロセスから最高のパフォーマンスを得るためのサポートを獲得したんじゃ。

本当にすごい進化ですね。博士、今日の解説もとても分かりやすかったです。

どういたしまして!最後に一つ、マルチタスク処理が得意なMacに、いつもタスクを溜め込んでいる人がいるらしいぞ…って、私のことじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
