オペレーティングシステム

1. URL
2. 担当教員
3. 講義目的
4. 到達目標
5. 授業方法
6. 参考書
7. 成績評価
8. スケジュール
9. 大崎が担当する科目に共通の連絡事項・アドバイス
10. 1. オペレーティングシステムの概要
11. 2. CPU の原理
12. 3. プロセスとスレッド

1. オペレーティングシステムの概要

授業の流れ

1. 解説 (40 分)
2. グループワーク (40 分)
3. 確認テスト (10 分)
4. 採点・リフレクションシート記入 (10 分)

チーム分けの方針

- いろいろな人とチームになる
- チームの人数は自由に決めてよい

態度目標

- しゃべる
- 質問する
- 説明する
- 動く (立ち歩く)
- チームで協力する
- チームに貢献する

内容目標

- オペレーティングシステムとは何かを他人に説明できるようになる。

- シングルタスク型とマルチタスク型のオペレーティングシステムの違いを他人に説明できるようになる。

- オペレーティングシステムにおけるプリエンプティブ・マルチタスキングの概要を他人に説明できるようになる。

- パソコンやスマートフォンに搭載されているオペレーティングシステムの種別を確認できるようになる。

課題

注意: Wikipedia 日本語版およびブログ等を情報源として用いてはならない。

英語が苦手な人へ: 英語のトレーニングも兼ねて、 日頃から英語の文献を読むことをおすすめします。 英語を読み続けるのがつらい場合は、 日本語の文献を探すのではなく、 機械翻訳 (ChatGPT がおすすめ) を使いましょう。

課題 1

オペレーティングシステム (operating system) とは何かを説明せよ。

なぜ、 operation system ではないのか? なぜ、 (日本では「基本ソフトウェア」と呼ばれるのに) basic software ではないのか? なぜ、 operating software ではないのか?

課題 2

シングルタスク型 (single-tasking) とマルチタスク型 (multi-tasking) のオペレーティングシステムの違いを説明せよ。

課題 3

パソコンやスマートフォン等の上で、 複数のプログラムを同時に実行できる (ように見える) のはなぜかを説明せよ。

課題 4

自身が所有しているパソコンもしくはスマートフォンに搭載されているオペレーティングシステムの正確な名称およびバージョンを実際に確認せよ。 確認方法と、 確認によって判明したオペレーティングシステムの名称およびバージョンを答えよ。

略解

課題 1

---- JIS X0001 04.08
operating system:プログラムの実行を制御するソフトウェアであって,資源割振り,スケジューリ
ング,入出力制御,データ管理などのサービスを提供するもの.〈備考〉オペレーティングシステム
は,ソフトウェアが主体であるが,部分的にハードウェア化することも可能である.

---- エンカルタ'05: オペレーティング・システム [Operating System]
オペレーティング・システム Operating System コンピューターの基本ソフトウェア。OSと略され
ることが多い。本来は、コンピューターを動作させるために必要な最小限のソフトウェア。メモリー、
CPUの処理時間、ディスク、周辺機器などのハードウェアの割り当てや、その使用を管理する。ワー
ドプロセッサーやスプレッドシートのようなアプリケーションを建物とすると、オペレーティング・シ
ステムは、土台にあたるものである。

---- 広辞苑5: オペレーティング-システム【operating system】
コンピューターで、利用者とハードウェアの間にあって、利用者がコンピューター-システムをで
きるだけ容易に使うことができるようにするための基本的なソフトウェア。OS

Operating system
https://en.wikipedia.org/wiki/Operating_system

課題 2

参考資料

Types of operating systems
https://en.wikipedia.org/wiki/Operating_system#Types_of_operating_systems

課題 3

参考資料

Computer multitasking
https://en.wikipedia.org/wiki/Computer_multitasking

課題 4

参考資料

Check & update your Android version
https://support.google.com/android/answer/7680439?hl=en

Find the software version on your iPhone, iPad, or iPod
https://support.apple.com/en-us/HT201685

How do I determine the OS version at runtime in OS X or iOS (without using Gestalt)?
https://stackoverflow.com/questions/11072804/how-do-i-determine-the-os-version-at-runtime-in-os-x-or-ios-without-using-gesta

How can I check the system version of Android?
https://stackoverflow.com/questions/3093365/how-can-i-check-the-system-version-of-android

確認テスト

確認テストは持込み不可です。 回答用紙は、 持っている好きな用紙を使用してください。 ノートの 1 ページを使っても、 タブレット上に電子的に記入してもかまいません。 手持ちの紙がない人には A4 のコピー用紙を配布します。

回答後、 周囲の人と答案を交換して、 相互採点してください。 間違っている箇所があれば、再度解き直してください。 その後、周囲の人に再度採点を依頼してください。

100 点満点の答案になるまで上記を繰り返してください。

リフレクションシート記入

以下のページから、リフレクションシートを記入して送信してください。

[授業中に提出] リフレクションシート (パスワードが必要です)
https://lsnl.jp/app/lecture/refl/show/os

上記のフォームの上部にリフレクションシートのねらいや、 何を記入すべきかを説明しています。 これらをよく読んで、指示に従ってください。

リフレクションシートの提出期限は授業実施日の 23:59 です。

Wikipedia の説明

Computer multitasking https://en.wikipedia.org/wiki/Computer_multitasking

In computing, multitasking is the concurrent execution of multiple tasks
(also known as processes) over a certain period of time. New tasks can
interrupt already started ones before they finish, instead of waiting for
them to end. As a result, a computer executes segments of multiple tasks in
an interleaved manner, while the tasks share common processing resources
such as central processing units (CPUs) and main memory. Multitasking
automatically interrupts the running program, saving its state (partial
results, memory contents and computer register contents) and loading the
saved state of another program and transferring control to it. This "context
switch" may be initiated at fixed time intervals (pre-emptive multitasking),
or the running program may be coded to signal to the supervisory software
when it can be interrupted (cooperative multitasking).

ChatGTP による日本語訳

コンピューティングにおいて、マルチタスキングとは、一定期間に複数のタスク(プ
ロセスとも呼ばれる)を同時に実行することです。新しいタスクは、既に開始された
タスクが終了するのを待つのではなく、それらを中断することができます。その結果、
コンピュータは複数のタスクのセグメントを交互に実行しながら、中央処理装置
(CPU)やメインメモリなどの共通の処理リソースを共有します。マルチタスキング
は自動的に実行中のプログラムを中断し、その状態(部分的な結果、メモリ内容、コ
ンピュータレジスタの内容)を保存し、別のプログラムの保存された状態を読み込ん
で制御を移行します。この「コンテキストスイッチ」は、固定された時間間隔で開始
されることがあります(プリエンプティブマルチタスキング)、または、実行中のプ
ログラムが監視ソフトウェアに対して中断可能であることを通知するコードが組み込
まれている場合があります(協調マルチタスキング)。

マルチタスク https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%82%BF%E3%82%B9%E3%82%AF

マルチタスク (英: multi tasking) は、コンピュータにおいて複数のタスク(プロセ
ス)を切り替えて実行できるシステムのことである。Unix など「プロセス」という用
                       ============ システムではない
語を使うシステムではマルチプロセスともいう(ほぼ同じものを別のシステムでは別の
                  ============ task/tasking/process/processing を混同している
名で呼んでいることもあれば、違うものを同じ名で呼んでいることもあれば、何らかの

理由で呼び分けていることもある)。マルチプログラミングという語は複数のプログラ
============================ multitasking の本質と関係ない話
ムを動かすという点に着目した語である(一般に、「タスク」とか「プロセス」は、プ
ログラムの活動実体、といったようなものを指す語である)。逆に、同時に一つのタス
                                       ======= これは単なる task/process の話
クしか実行できない方式をシングルタスクという。
                === マルチタスクは「システム」で、シングルタスクは「方式」?

レポート課題 2025-04-11

授業終了後に自習を行い、 到達目標まで到達せよ。 疑問に思った点、 わからない点は各自で信頼できる文献を用いて調査せよ。

その後、 「今週の作業内容」、 「『内容目標』をどの程度達成できた/できなかったか」、 「質問・要望・コメント」、 「感想」を「レポート送信フォーム」から送信せよ。

レポート課題の内容や書き方については、 レポート送信フォームに説明があるのでそちらを参照せよ。

提出方法: 「レポート送信フォーム」から送信せよ。 レポートが正しく提出されると、 レポートの控えが自身のメールアドレス宛に送信される。 レポートの控えは成績発表まで保存しておくこと。 レポートが再提出された場合は、 新しいほうを採点対象とする。

提出期限: 次回の授業開始の 48 時間前とする (例えば、 4/11(金) の課題であれば、 4/18(金) 5:05pm の 48 時間前である 4/16(水) 5:05pm)。 期限を過ぎたものは受理しない。

注意事項: 「質問・要望・コメント」は匿名にした上で公開する (講義ページに掲載する)。 公開されて困る内容は「質問・要望・コメント」等に含めないこと。 個人的な質問・相談等は「感想」の覧に記入せよ。

質問

- なぜコンピューターはハードウェアでマルチタスクを行わないのですか?

ハードウェアを使ってマルチタスキングを行うものもあります。単一の CPU で、な
ぜプリエンプティブでマルチタスキングを実現するのか、という意味なら、他に方法
がないからです。多重度 16 とか多重度 32 でよいなら専用ハードウェアでの実現も
可能ですが、専用ハードウェアでは任意の多重度に対応できません。

- 英語の文献を調べるコツを教えてほしいです。

英語の文献の探し方ですか? 読み方ですか? 探し方なら、できるだけ一次情報を見る
ことです。

- 自習するにあたって参考にしても良いサイトとそうでないサイトの基準があれば教えて欲しいです。文献や大学の教授が書いた資料以外は避けた方が良いのでしょうか。

参考にしも「良い」/「良くない」の二値ではないのが難しいところですね。この文
献は信頼度 78% で、あの文献は信頼度 34% という世界です。

基本は一次情報からの距離です。

著者: 考案者/発明者 → 考案者/発明者と同じグループの人 → その分野で超一流の
人 → その分野の専門家 → 一般エンジニア/大学院生、実名の人 → 匿名の人

文献の種別: 考案者/発明者が書いた原著論文 → 超一流の人が書いた論文 → 教科
書 → 専門書 → 一般書 → 集合知 (Wikipedia) → ネット上の情報 (ブログ、X、
YouTube)

例えば、Dijkstra 法について調べるのであれば、Dijkstra が書いた原著論文が最高
の文献です。よくわからない人が書いたブログ記事や、よくわからない人が発信して
いる YouTube のビデオが最低の文献(情報)です。

- iOSなどのモバイル向けOSがデスクトップ向けOSに比べて工夫されていることは何ですか?

いろいろありますが、一番大きいのは省電力を下げる工夫だと思います

- 1つ目の解答欄に「どのような自習を行いましたか? 」という質問がありますが、これは学習した内容を問うているのですか。それとも、自習の取り組み方を聞かれているのですか。今回は後者の方ととらえて解答させていただきました。

 両方です。何を勉強したのか(内容)、どんな方法で勉強したのか(手段・形式)、どん
 な目的で行ったのか(目的)を書いてください。
 

- 最近のOSにRustとC(C++)のどっちを使うか?どっちも使うか?みたいな話にどう思ってらっしゃいますか?

「さすがに今後も C や C++ で書き続けるのはしんどいけど、どっちの方向に行くの
だろう」と思ってます。

- この欄は、特に何もなければ今後空欄で提出しても問題ありませんか。

はい。

- 授業内で行った課題のような問題が定期テストで出る感じですか?

はい。

要望

- グループワークの時間もう少し増やしてほしいです。

説明の時間を取りすぎないようにします。

- 実際のスマホやPCでは、OSのアップデートでマルチタスクの性能はどれほど変わるのか気になりました。

コメント

- 初めての授業形態でしたが自分のためになる形式だと思いました。

- いい授業でした。

- 可能であれば教室を横長のものに変更してほしい。初回授業に苦しんだが、スクリーンが見えにくく感じる席に座ってしまった。

  前方の席が空いていますので、見やすい席を探してみてください。


[<9. 大崎が担当する科目に共通の連絡事項・アドバイス] [>11. 2. CPU の原理]