マスタースレーブ
マスタースレーブ(英: master-slave)は、複数の機器が協調して動作する際に、複数の機器の制御・操作を司る「マスター」機と、マスター機の一方的な制御下で動作する「スレーブ」機に役割を分担する方式のこと。
コンピュータにおけるマスタースレーブ
[編集]コンピュータにおけるマスタースレーブは、通信プロトコルのモデルの一種であり、1つのハードウェアやプロセスが他の1つまたは複数のデバイスやプロセスを一方的に制御することをいう。デバイスやプロセス群でマスタースレーブ関係が確立されると、制御は常にマスターからスレーブに対して行われる。一群の同等のデバイスからマスターを1つ選び、他がスレーブとなる場合もある[1][2][3]。マスター/スレーブという書き方もある。
- クライアントサーバモデルでは、クライアントがマスター、サーバがスレーブである。
- データベースレプリケーションでは、正式とされているマスターデータベースにスレーブデータベースを同期させる。
- コンピュータバスでは、一般にCPUがマスター、周辺機器がスレーブである。ただし、バス上のトランザクションを発行するものがその時点のマスターとなる方式もある。
- parallel ATAハードディスクドライブにはマスターとスレーブがあるが、マスターがスレーブを制御するわけではない。また、マスターがスレーブに何らかの意味で優先するわけでもない。マスターは単に0番のデバイスを意味し、スレーブは1番のデバイスを意味する。
- Macintosh においては、Macintosh をThunderbolt ハードディスクドライブとして(つまりディスクスレーブモードで)起動する Target Disk Mode がある。これ以前の Macintosh では同様のFireWireやSCSI Disk Mode が存在した。
ロボットにおけるマスタースレーブ
[編集]ロボットやマニピュレータが完全自律動作できる判断力をコンピュータに持たせるのは困難であるため、マニピュレータの遠隔操作では、人の手元にあるマスターアームを操作し、その動きを遠隔のスレーブアームがトレース(追尾)する、マスタースレーブ式の遠隔操作が行われる[4]。
動作量を拡大・縮小させることも可能であり、ロボット支援手術では外科医の手の動きを縮小することで、人間の手では不可能な細かさの手術を行うマイクロサージャリーが発展した。
その他の例
[編集]- ディーゼル機関車で非常に重い貨物を牽引する場合や急勾配を登る場合、複数台の機関車を連結する場合がある。このとき一台目の機関車をマスター、それ以外をスレーブと呼ぶ(スレーブの運転席は使用しない)。このスレーブの役割に特化した運転台のない補助専用機関車もあり、(マスターを務めることができる「Aユニット」に対し)Bユニットと呼ばれるこの種の機関車は、主にアメリカの鉄道で見られる。
- コンパクトカセットやコンパクトディスクなどのレコーダーを複数台使って同時に録音する場合、マスター側のレコーダーの操作でスレーブ側も同期して動作するように設定する。
論争
[編集]マスター(主人)とスレーブ(奴隷)という用語はしばしば論争の的となることがある。
2003年11月、ロサンゼルス郡は電子メールで出入り業者に対してこれらの用語を使った製品を納入しないよう要求した[5][6][7]。これに対してIT業界ではばかげた主張だとして取り合わない動きが大勢を占めた[8]。マスタースレーブという用語はデバイス内部で起きていることを正確に表した技術用語であり、かつて存在した奴隷制度とは何の関係もないというのがその理由であった(ポリティカル・コレクトネスも参照)。
一方で、こうした論争を避けるため、データベースの分野ではマスタースレーブの代替語として「プライマリー」や「レプリカ」といった語句を採用するケースもある。2018年には、プログラミング言語Pythonが論争の末、マスタースレーブを「ペアレント」や「ワーカー」「ヘルパー」といった語句に置き換えている[9]。
2020年6月より、ジョージ・フロイド抗議運動およびブラック・ライヴズ・マター運動の影響によりマスタースレーブの語句を取りやめる機運が起こり[10][11]、多数のIT企業・OSSコミュニティに急激に広がっている[12]。
脚注
[編集]- ^ master/slave - a searchNetworking definition
- ^ Description of the Microsoft Computer Browser Service from Microsoft KnowledgeBase
- ^ Information on Browser Operation from Microsoft KnowledgeBase
- ^ “SuperTAINS News No.19 [Page.3]”. 東北大学大学院工学研究科. 2013年10月15日閲覧。
- ^ Urban Legends Reference Pages: Inboxer Rebellion (Master/Slave) from www.snopes.com
- ^ L.A. County Bans Use Of "Master/Slave" Term from Slashdot
- ^ 'Master' and 'slave' computer labels unacceptable, officials say (Wednesday, November 26, 2003, CNN)
- ^ IDEの「マスター/スレーブ」という呼び方は差別的? CNET Japan、2003年11月27日
- ^ “‘Master/Slave’ Terminology Was Removed from Python Programming Language”. MOTHERBOARD (2018年9月14日). 2018年9月15日閲覧。
- ^ Katie Canales (2020年6月18日). “「マスター」「スレーブ」といったプログラミング用語の置き換えが加速”. ビジネスインサイダー. 2020年7月24日閲覧。 “オープンソース・ソフトウェアをホスティングする世界最大のサイトであるGitHubは、Black Lives Matter運動が広がる中、コードにおける「マスター」と「スレーブ」という用語の置き換えに取り組んでいる。”
- ^ “米ツイッター、プログラム用語の「マスター」「スレーブ」の利用停止”. CNN (2020年7月6日). 2020年7月24日閲覧。 “黒人男性のジョージ・フロイドさんが死亡した事件を受けて、使用している用語を変更する動きが出てきている。”
- ^ Catalin Cimpanu (2020年7月13日). “Linuxでも「ブラックリスト」「スレーブ」などの用語を変更へ”. ZDNet Japan. 2020年7月24日閲覧。 “これまでにTwitter、GitHub、Microsoft、LinkedIn、Ansible、Splunk、Android、Go、MySQL、PHPUnit、OpenZFS、Rust、JP Morganなどが、用語の変更を検討する動きをみせている。”