ソフトウェアの用語

全141語。

..(親ディレクトリ) どっとどっと

1つ上の階層のディレクトリを表す記号。
⚠ 「.」は今いる場所で、移動しない
ファイル・ディレクトリとシェル操作

8進数 はっしんすう

0〜7で表す数で、2進数3ビット分(4・2・1)をちょうど1桁で表せる。
ファイル・ディレクトリとシェル操作

API Application Program Interface

アプリケーションがOSやミドルウェアの機能を呼び出すための関数・コマンドなどの決まりごとの総称。
⚠ CGIはWebサーバと外部プログラムの連携、GUIは画面操作、MDIは複数文書のウィンドウ形式。
ソフトウェアの階層と OS の基本機能

BSDライセンス Berkeley Software Distribution License

著作権表示などを残せば改変・再配布が自由で、派生物を非公開にしてもよいライセンス。
⚠ コピーレフト:派生物にも同じ条件を強制する。
開発ツールと OSS のライセンス

CPU使用率 しーぴーゆーしようりつ

全体の経過時間のうち、CPUが実際に動いていた時間の割合。
⚠ 分母は各ジョブの処理時間の合計ではなく、最初から最後までの経過時間。
スケジューリングと排他制御の計算

Eclipse エクリプス

OSSの統合開発環境。
⚠ Perl・PHP・Rubyはプログラム言語で、開発環境ではない。
開発ツールと OSS のライセンス

FCFS First-Come First-Served(到着順)

到着した順に実行する方式。
⚠ いつか必ず順番が来るので飢餓は起きにくい。ただし応答時間の保証はできない。
タスクの状態とスケジューリング方式

FIFO First In First Out

主記憶に最も古くから存在しているページを追い出す置換え方式。
⚠ LRU は最後に参照した時刻で判断する。FIFO は入った時刻で判断し、その後の参照は見ない。
仮想記憶とページ置換え

GPL GNU General Public License

コピーレフト型の代表的なライセンスで、再配布するときはソースコードを提供する義務がある。
⚠ 社内利用だけなら、改変していても公開義務はない。
開発ツールと OSS のライセンス

LFU Least Frequently Used

参照回数が最も少ないページを追い出す置換え方式。
⚠ LRU は時刻、LFU は回数で判断する。
仮想記憶とページ置換え

LRU Least Recently Used

最後に参照されてから最も長い時間がたったページを追い出す置換え方式。
⚠ 判断基準は『最後に参照した時刻』。最初に参照した時刻なら FIFO、参照回数なら LFU。
仮想記憶とページ置換え

OS Operating System(オペレーティングシステム)

CPU・メモリ・入出力装置などのハードウェアを管理し、アプリケーションが使える形で提供する基本ソフトウェア。
⚠ ミドルウェアはOSの上でさらに高水準の共通機能を出すもの。ハードの基本的な利用ならOS。
ソフトウェアの階層と OS の基本機能

OSD The Open Source Definition

OSIが定めた、OSSであるための条件(自由な再配布、ソースコードの提供、派生物の許可、利用者や分野で差別しないことなど)。
開発ツールと OSS のライセンス

OSI Open Source Initiative

OSSの普及を進める団体で、OSSの定義(OSD)を定めている。
⚠ OSI参照モデル(ネットワークの7階層)とは別物。
開発ツールと OSS のライセンス

OSS Open Source Software(オープンソースソフトウェア)

ソースコードが公開され、一定の条件の下で誰でも利用・改変・再配布できるソフトウェア。
⚠ フリーウェア:無償なだけで、ソースの公開や改変の許可は約束されていない。OSSは有償販売もできる。
開発ツールと OSS のライセンス

Redmine / Subversion / GDB レッドマイン/サブバージョン/ジーディービー(GNU Debugger)

それぞれ課題管理、ソースコードの版管理、デバッグ(不具合の原因調査)を行うOSS。
⚠ Web画面の操作を自動化するのはSelenium。
開発ツールと OSS のライセンス

Selenium セレニウム

Webブラウザの画面操作を自動化して、テストを支援するOSS。
⚠ Redmine=課題管理、Subversion=版管理、GDB=デバッガ。
開発ツールと OSS のライセンス

SPT(処理時間順) Shortest Processing Time first

処理予定時間の短いタスクから順に実行する方式。
⚠ 長いタスクが後回しにされ続ける飢餓状態が起きやすい点が問われる。
タスクの状態とスケジューリング方式

SVC Supervisor Call(スーパバイザコール)

プログラムがOSの機能を呼び出すために、自ら割込みを起こす命令。
⚠ ソフトウェア割込みとも呼ばれ、内部割込みに分類される。
ソフトウェアの階層と OS の基本機能

アーカイバ あーかいば

複数のファイルを1つにまとめたり元に戻したりするユーティリティで、バックアップや配布に使う。
⚠ フォーマッタは領域作成、デフラグは再配置、ダンプは主記憶の書き出し、ミラーリングは二重化
ファイル・ディレクトリとシェル操作

アクセス権 あくせすけん

ファイルに対する読取り・書込み・実行の許可/不許可を、1ビットずつで表した設定。
⚠ UNIXの一般的な割当て(4=読取り)を前提にせず、問題の試行結果から割当てを推理する
ファイル・ディレクトリとシェル操作

アセンブラ アセンブラ(assembler)

アセンブリ言語(機械語と1対1に近い記号の言語)で書いたプログラムを機械語に変換する言語処理系。
⚠ 「他の処理系用の原始プログラムに変換」するのはトランスレータの説明で、アセンブラではない。
コンパイラとインタプリタ(言語処理系)

インタプリタ インタプリタ(interpreter)

原始プログラムを1命令ずつ解釈しながら実行する言語処理系で、読込み→解析→実行の順にくり返す。
⚠ エミュレータは他機種の命令をまねて実行するもの。「その都度解釈して実行」ならインタプリタ。
コンパイラとインタプリタ(言語処理系)

エージング aging

待ち時間が長いタスクほど優先度を徐々に上げ、待たされ続けるのを防ぐ工夫。
⚠ 飢餓が起きやすい方式を選ぶ問題で、待ち続けにくい側の選択肢として出る。
タスクの状態とスケジューリング方式

エミュレータ エミュレータ(emulator)

別の機種の命令をまねて実行し、他機種用のプログラムを動かす仕組み。
⚠ クロスコンパイラは他機種用のプログラムを「生成」する。
コンパイラとインタプリタ(言語処理系)

オーバフロー おーばふろー(overflow)

溜める量が容量を超えて、データがあふれること。
バッファとスプーリング

オーバヘッド オーバヘッド(overhead)

本来の処理とは別に、準備や管理のためにかかる余分な時間や資源。
⚠ 計算問題では行数に関係ない「固定時間」として扱い、足し忘れに注意する。
コンパイラとインタプリタ(言語処理系)

オーバレイ overlay

プログラム全体が入りきらないとき、必要になったモジュールだけを主記憶に取り込んで実行する手法。
⚠ メモリリークの4択の「必要になったモジュールを取り込む」はオーバレイの説明。
主記憶の割当てと断片化・解放

主記憶が小さいとき、プログラムを分割し、必要な部分を補助記憶から同じ領域に読み込みながら実行する手法。
⚠ 再入可能の誤答選択肢として「補助記憶から読み込みながら動作」の形で出る。
リンクとロード、プログラムの性質

カーネル かーねる

OSの中核で、タスク管理や記憶管理などの基本機能を担う部分。
ソフトウェアの階層と OS の基本機能

ガーベジコレクション garbage collection

どこからも参照されなくなった記憶領域を自動で回収し、再び使えるようにする機能。
⚠ ヒープ(領域そのもの)、スタック(後入れ先出しの領域)、フラグメンテーション(現象)は回収機能ではない。
主記憶の割当てと断片化・解放

カレントディレクトリ かれんとでぃれくとり

いま作業している位置のディレクトリで、「.」で表す。
⚠ ホームディレクトリ:固定された自分用の場所。カレントは移動すると変わる
ファイル・ディレクトリとシェル操作

クロスコンパイラ クロスコンパイラ(cross compiler)

あるコンピュータ上で動き、命令形式が異なる別のコンピュータ向けの目的プログラムを生成するコンパイラ。
⚠ エミュレータは他機種の命令をまねて「実行」し、目的プログラムは作らない。
コンパイラとインタプリタ(言語処理系)

コード生成 コードせいせい(目的コード生成)

コンパイラの最後の段階で、目的プログラム(機械語)を出力する処理。
コンパイラとインタプリタ(言語処理系)

コピーレフト copyleft

著作権を保持したまま改変・再配布を自由にし、派生物にも同じ配布条件を付けさせる考え方。
⚠ BSDライセンス:派生物に同じ条件を強制しない。
開発ツールと OSS のライセンス

コンテキスト context

中断したタスクを続きから再開するために必要な情報(レジスタの値など)。
⚠ 切替え時に退避・回復するものがこれ。ディスパッチそのものではない。
タスクの状態とスケジューリング方式

コンパイラ コンパイラ(compiler)

原始プログラム全体を解析し、目的プログラム(オブジェクトコード)を生成する言語処理系。
⚠ インタプリタは翻訳結果を残さず解釈しながら実行する。「生成」「翻訳」ならコンパイラ。
コンパイラとインタプリタ(言語処理系)

原始プログラムをまとめて機械語に翻訳し、目的プログラムを出力する言語処理プログラム。
⚠ インタプリタは1行ずつ解釈しながら実行し、目的プログラムを作らない。
リンクとロード、プログラムの性質

コンパクション compaction

使用中の領域を詰めて移動し、散らばった空き領域を1つの連続領域にまとめること。
⚠ フラグメンテーション(現象)の対策の名前。ガーベジコレクション(参照されない領域の回収)とも別物。
主記憶の割当てと断片化・解放

ジェネレータ ジェネレータ(generator/プログラムジェネレータ)

入力・処理・出力などの条件をパラメタで指定すると、目的に合ったプログラムを自動で生成する言語処理系。
⚠ 「パラメタで指示して生成」がキーワード。コンパイラは原始プログラムを入力にする。
コンパイラとインタプリタ(言語処理系)

シェル しぇる

利用者が入力したコマンドを解釈し、OSに実行を指示するプログラム(コマンドインタプリタ)。
⚠ ショートカット操作や排他制御の説明ではない
ファイル・ディレクトリとシェル操作

スケジューリング scheduling

どのタスクをどの順序で実行するかを決めること。
⚠ ディスパッチと対で出る。「順序を決定」とあればスケジューリング。
タスクの状態とスケジューリング方式

スタック すたっく

後から入れたデータを先に取り出す(LIFO)構造。関数呼出しの戻り番地や途中データの退避に使う。
⚠ キューは先入れ先出し(FIFO)。ヒープは割当て・解放の順序が決まっていない領域。
ソフトウェアの階層と OS の基本機能

最後に入れたものから先に取り出す(後入れ先出し)形で使う記憶領域。
⚠ ヒープ(自由な順で動的に割当て)と区別する。
主記憶の割当てと断片化・解放

スプーリング すぷーりんぐ(SPOOL:Simultaneous Peripheral Operation On-Line)

低速な入出力装置とのデータのやり取りを補助記憶装置経由で行い、CPU を待たせずにシステム全体のスループットを上げる方式。
⚠ スワッピングやページングも主記憶と補助記憶を使うが、低速な入出力装置は登場しない。「プリンタ」「低速の出力装置」とあればスプーリング。
バッファとスプーリング

スプールファイル すぷーるふぁいる(spool file)

スプーリングで、出力データを一時的に保存しておく補助記憶上のファイル。
バッファとスプーリング

スラッシング thrashing

主記憶が足りずページの入れ替え(ページング)ばかりが起き、スループットが極端に落ちる現象。
⚠ メモリリークの4択で「処理時間のほとんどがページング」とあればスラッシング。
主記憶の割当てと断片化・解放

仮想記憶で多重度を上げすぎ、ページの入れ替えが多発して処理がほとんど進まなくなる現象。
⚠ フラグメンテーション(空きの細切れ)、オーバレイ、ロールアウト、メモリコンパクションとは別物。実記憶方式では起きない。
仮想記憶とページ置換え

スループット するーぷっと

一定時間内に処理できる仕事の量。
⚠ ターンアラウンドタイムは1つの仕事を依頼してから結果が返るまでの時間。
ソフトウェアの階層と OS の基本機能

単位時間あたりにシステムが処理できる仕事の量。
⚠ 応答時間(1 件にかかる時間)とは別の指標。スプーリングで上がるのはスループット。
バッファとスプーリング

スワッピング すわっぴんぐ(swapping)

主記憶が足りないとき、プログラムを丸ごと補助記憶へ出し入れする仕組み。
⚠ ページングはページ単位で入れ替える。スワッピングはプログラム(プロセス)単位。
バッファとスプーリング

セクタ せくた

磁気ディスクを読み書きする物理的な最小単位。
⚠ 仮想記憶の用語ではない。選択肢に混ぜてあるだけ。
仮想記憶とページ置換え

ディスクを読み書きするときの最小単位の区画。
⚠ ブロック:複数のセクタを束ねた、ファイルに割り当てる単位
ファイル・ディレクトリとシェル操作

セグメント せぐめんと

プログラムやデータの論理的なまとまりごとに割り当てる、可変長の管理単位。
⚠ 固定長ならページ。『論理的な単位』『可変長』がセグメントの目印。
仮想記憶とページ置換え

セマフォ せまふぉ(Semaphore)

空いている資源の数をカウンタで管理し、共有資源の排他制御や同期を行う仕組み。
⚠ スラッシング(ページの入れ替えが多発して性能が落ちる現象)やスタック(後入れ先出しのデータ構造)とは無関係。
スケジューリングと排他制御の計算

ターンアラウンドタイム たーんあらうんどたいむ(Turnaround Time)

ジョブが到着してから処理が全部終わるまでの時間で、CPU時間・入出力時間・処理待ち時間の合計。
⚠ 応答時間:オンライン処理で、要求を出してから応答が返り始めるまで。TATはジョブ全体が終わるまで。
スケジューリングと排他制御の計算

タイムクウォンタム(タイムスライス) time quantum / time slice

ラウンドロビンで1回に与えるCPUの持ち時間。
⚠ 十分小さければ、全タスクがCPUを均等に分け合うと考えて計算できる。
タスクの状態とスケジューリング方式

タスク(プロセス) たすく(ぷろせす)

OSがCPUを割り当てて実行させる仕事の単位。
⚠ 試験ではタスクとプロセスがほぼ同じ意味で使われる。問題文の言い方に合わせて読めばよい。
タスクの状態とスケジューリング方式

タスク管理 たすくかんり

どのタスクにいつCPUを割り当てるかを制御し、CPUを有効に使うOSの機能。
⚠ 仮想記憶は記憶管理、装置の制御は入出力管理、装置に依存しないデータアクセスはファイル管理。
ソフトウェアの階層と OS の基本機能

ディストリビュータ distributor

OSSやアプリケーションを組み合わせて、パッケージとして提供する事業者。
⚠ OSSの開発者や、システムを提案・導入するSIerとは役割が違う。
開発ツールと OSS のライセンス

ディスパッチ dispatch

実行可能状態のタスクにCPUの使用権を割り当てること。
⚠ スケジューリングは実行順序を決めること、ディスパッチは決まったタスクに実際にCPUを渡すこと。
タスクの状態とスケジューリング方式

デバイスドライバ でばいすどらいば

OSやアプリの要求に従い、接続された周辺機器を直接制御するソフトウェア。
⚠ タスクを選ぶのはスケジューラ、コマンドを解釈するのはシェル、ウィンドウ管理はウィンドウマネージャ。
ソフトウェアの階層と OS の基本機能

装置ごとの違いを吸収し、OS やアプリが装置固有の仕様を意識せずに使えるようにするソフトウェア。
⚠ 「階層を設ける」「固有の仕様を意識せず」はデバイスドライバ。バッファではない。
バッファとスプーリング

アプリケーションの要求に従い、周辺機器などのハードウェアを直接制御するOSの部品。
⚠ 次のタスクを決めるのはスケジューラ、コマンドを解釈するのはシェル、ウィンドウ表示を管理するのはウィンドウマネージャ。
リンクとロード、プログラムの性質

デバイスファイル でばいすふぁいる

UNIXで、入出力装置を普通のファイルと同じように扱うための特別なファイル。
ファイル・ディレクトリとシェル操作

デフラグ defragmentation

ディスク上で分断されたファイルや空き領域を連続した領域に置き直し、アクセス効率を戻すこと。
⚠ 主記憶ではなくファイル(ディスク)の断片化対策を指すことが多い。
主記憶の割当てと断片化・解放

デュアルライセンス dual license

同じソフトウェアを2種類のライセンスで提供し、利用者がどちらかを選べるようにする方式。
⚠ コピーレフト:配布条件の引き継ぎの話で、ライセンスを選ぶ話ではない。
開発ツールと OSS のライセンス

トランスレータ トランスレータ(translator)

ある言語や処理系向けのプログラムを、別の言語や処理系向けのプログラムに変換する言語処理系。
⚠ 「解釈しながら実行」はインタプリタの説明で、トランスレータではない。
コンパイラとインタプリタ(言語処理系)

ノンプリエンプティブ方式 non-preemptive

実行中のタスクが自ら待ち状態になるか終了するまで、他のタスクに切り替えない方式。
⚠ 「決められた時間内に待ち状態にならないと中断」はラウンドロビン、「優先度を比較して高い方を実行」はプリエンプティブ優先度方式。
タスクの状態とスケジューリング方式

ハードリアルタイムシステム はーどりあるたいむしすてむ

エンジン制御のように、処理が締切りに遅れることが許されないシステム。
⚠ 「定められた時間内に処理を完了」が正解の言い回し。
タスクの状態とスケジューリング方式

パイプ ぱいぷ

あるコマンドの標準出力を、別のコマンドの標準入力に直接つなぐ機能。
⚠ リダイレクト:つなぐ先がファイル
ファイル・ディレクトリとシェル操作

バッファ ばっふぁ(buffer)

速度の違う装置どうしのあいだに置き、データを一時的に溜めて速度差を吸収する記憶域。
⚠ バッファプールは、ディスクのデータを主記憶上で見つけやすくするための多数のバッファの集まり。目的は「アクセス時間の短縮」で、速度差の緩和とは言い方が違う。
バッファとスプーリング

バッファプール ばっふぁぷーる(buffer pool)

主記憶上にバッファをたくさん用意し、補助記憶へのアクセスを減らしてアクセス時間を短くする仕組み。
⚠ スプーリングの選択肢によく混ざる。「主記憶にあるバッファにアクセスする確率を上げる」はバッファプールの説明。
バッファとスプーリング

バッファリング ばっふぁりんぐ(buffering)

バッファにデータを先に溜めておくこと。動画や音声を途切れずに再生するために使う。
バッファとスプーリング

ヒープ ひーぷ

割当てと解放の順序に決まりのない動的データを置くための記憶領域。
⚠ スタックの予備領域ではなく、プッシュ・ポップで操作するものでもない。
ソフトウェアの階層と OS の基本機能

プログラムの実行中に、必要な大きさを動的に割り当てるための記憶領域。
⚠ スタックは後入れ先出しで自動的に積み下ろしする領域。ガーベジコレクションの対象になるのはヒープ側。
主記憶の割当てと断片化・解放

フラグメンテーション fragmentation(断片化)

割当てと解放を繰り返すうちに空き領域が細切れになり、合計は足りても連続領域が取れなくなる現象。
⚠ コンパクションは解消する手法、メモリリークは解放されない現象。フラグメンテーションは「現象」で、空きはちゃんと返されている。
主記憶の割当てと断片化・解放

プリエンプション preemption

実行中のタスクからOSが強制的にCPUを取り上げること。
⚠ 取り上げられたタスクは待ち状態ではなく実行可能状態に戻る。
タスクの状態とスケジューリング方式

実行中のタスクからOSがCPUを取り上げ、優先度の高いタスクに切り替えること。
⚠ 「CPU処理は中断されない」という条件の問題では横取りが起きない。条件文を必ず確認する。
スケジューリングと排他制御の計算

プリエンプティブ方式 preemptive

優先度や持ち時間に応じて、実行中のタスクを途中で止めて切り替える方式。
⚠ ノンプリエンプティブは途中で止めない。「奪い取る」「中断して」とあればプリエンプティブ。
タスクの状態とスケジューリング方式

ブロッキング ぶろっきんぐ(blocking)

複数の論理レコードを 1 つのブロックにまとめて、入出力の回数を減らすこと。
⚠ 名前は似ているがスプーリングとは無関係。「まとめる」がキーワード。
バッファとスプーリング

ブロック ぶろっく

複数のセクタをまとめた単位で、ファイル領域はこの単位で割り当てられる。
⚠ 計算はセクタ単位ではなく、ブロック単位で切り上げる
ファイル・ディレクトリとシェル操作

ページ ぺーじ

仮想アドレス空間を固定長で区切った単位。
⚠ 実記憶側の区画はページフレーム。可変長の単位はセグメント。
仮想記憶とページ置換え

ページアウト ぺーじあうと

置換え対象のページを主記憶から補助記憶へ書き出して、場所を空けること。
⚠ ページインより先に行う(空けてから入れる)。
仮想記憶とページ置換え

ページイン ぺーじいん

必要なページを補助記憶から主記憶へ読み込むこと。
⚠ ページアウトの後に行う。ページイン回数には、最初に空きへ読み込む分も入る。
仮想記憶とページ置換え

ページフォールト ぺーじふぉーると

仮想記憶で、主記憶に存在しないページにアクセスしたときに発生する割込み。
⚠ 仮想記憶の話なので外部に見えるが、アクセスした命令が原因なので内部割込み。
ソフトウェアの階層と OS の基本機能

アクセスしたページが主記憶に無いときに発生する割込み。
⚠ 主記憶にあるページへのアクセスでは起きない。更新されたページが多いかどうかとも関係ない。
仮想記憶とページ置換え

ページフレーム ぺーじふれーむ

実記憶(主記憶)を、ページと同じ固定長で区切った区画。
⚠ 仮想側を区切った単位はページ。問題文が『仮想アドレス空間を分割』ならページを選ぶ。
仮想記憶とページ置換え

ページング ぺーじんぐ(paging)

仮想記憶で、プログラムを固定長のページに分けて主記憶と補助記憶のあいだで入れ替える方式。
⚠ スワッピングはプログラム単位で入れ替える。
バッファとスプーリング

ページング方式 ぺーじんぐほうしき

仮想記憶と実記憶をそれぞれ固定長の区画に分けて対応づける方式。
⚠ 再配置(プログラムを別の場所で動かせるようにすること)、メモリインタリーブ(同時アクセスのために主記憶を分けること)、ブロッキング(レコードをまとめて読み書きすること)とは別物。
仮想記憶とページ置換え

ページ内変位 ぺーじないへんい

仮想アドレスのうち、ページの先頭から何バイト目かを表す部分。
⚠ ビット数はページサイズで決まる。仮想ページ番号のビット数は、アドレス全体から引いた残り。
仮想記憶とページ置換え

ホームディレクトリ ほーむでぃれくとり

利用者ごとに用意され、その人がファイルを保存する最上位のディレクトリ。
⚠ ルートはシステム全体の最上位、カレントは今いる場所
ファイル・ディレクトリとシェル操作

マイクロカーネル まいくろかーねる

必要最低限の機能だけをカーネルに入れ、カーネルを小さくする方式。
⚠ 全機能をカーネルに入れるのはモノリシックカーネル。マイクロカーネルはプロセス間通信のオーバヘッドが増える側。
ソフトウェアの階層と OS の基本機能

マルチプログラミング まるちぷろぐらみんぐ

主記憶に複数のタスクを置き、待ち時間に別のタスクへCPUを回して、CPU利用率とスループットを上げる方式。
⚠ 「CPU利用率が下がる」「仮想記憶領域が小さくなる」は誤り。
ソフトウェアの階層と OS の基本機能

あるタスクが入出力待ちで CPU が空いたら、別のタスクに CPU を割り当てて遊休時間を減らす方式。
⚠ スプーリングの選択肢に混ざる。「CPU が遊休状態になると他のタスクに割り当てる」はこちら。
バッファとスプーリング

ミドルウェア みどるうぇあ

OSの機能を利用して、多くの分野のアプリに共通する高水準の機能を提供するソフトウェア(DBMSなど)。
⚠ OS(ハードを使う基本機能)、ERP(経営資源の統合管理)、グループウェア(共同作業支援)と区別する。
ソフトウェアの階層と OS の基本機能

メモリプール memory pool

あらかじめ確保したメモリを、要求に応じて貸し出し・回収する管理の仕組み。
主記憶の割当てと断片化・解放

メモリリーク memory leak

バグなどで確保した主記憶が解放されず、利用できるメモリが減り続ける現象。
⚠ フラグメンテーションは空きが返されているのに細切れで使えない状態。リークはそもそも返されていない。
主記憶の割当てと断片化・解放

モノリシックカーネル ものりしっくかーねる

OSに必要な機能の全てをカーネル内に実装する方式。
⚠ マイクロカーネルとの取り違えに注意。「全部入り・不具合が広がりやすい」ならこちら。
ソフトウェアの階層と OS の基本機能

ライブラリアン ライブラリアン(librarian)

作成したプログラムをライブラリに登録・管理するプログラム。
⚠ リンカの誤答選択肢「ライブラリに登録する」の正体。
リンクとロード、プログラムの性質

ライブラリモジュール ライブラリモジュール

よく使う処理を再利用できるよう部品として保管したもので、リンカで目的プログラムと結合される。
⚠ 流れ図ではリンカへの『もう1つの入力』として横や上から入る。
リンクとロード、プログラムの性質

ラウンドロビン round robin

待ち行列の順に一定時間ずつ均等にCPUを割り当て、終わらなければ最後尾に回す方式。
⚠ 「均等」「最後尾につなぐ」が目印。優先度や処理時間に比例させる説明は別の方式。
タスクの状態とスケジューリング方式

リアルタイムOS Real-Time Operating System(RTOS)

決められた応答時間内にタスクや割込みを処理する仕組みを持つOS。
⚠ スループット向上・メモリ保護・GUIなどは一般的なOSの利点で、RTOSを使う理由ではない。
タスクの状態とスケジューリング方式

リダイレクト りだいれくと

標準入力・標準出力の行き先をファイルに切り替える機能で、追記もできる。
⚠ パイプ:つなぐ先がファイルではなく、別のコマンド
ファイル・ディレクトリとシェル操作

リンカ リンカ(linker/連係編集プログラム)

複数の目的プログラムやライブラリを結合して、ロードモジュールを作るプログラム。
⚠ コンパイラの選択肢に「ロードモジュールを生成する」と出たらリンカの説明。
コンパイラとインタプリタ(言語処理系)

複数の目的モジュールやライブラリモジュールを結合し、相互参照を解決して1つのロードモジュールを作るプログラム。
⚠ ローダは主記憶に読み込む係。「生成・結合」ならリンカ、「主記憶にロード」ならローダ。
リンクとロード、プログラムの性質

ルートディレクトリ るーとでぃれくとり

ファイルシステム全体の最上位にある、すべてのディレクトリの根っこ。
⚠ ホームディレクトリ:利用者ごとの最上位。「一般の利用者が保存に使う最上位」ならホーム
ファイル・ディレクトリとシェル操作

ローコード開発 low-code

GUIで部品を組み合わせ、必要に応じて一部の処理だけソースコードを書く開発手法。
⚠ ノーコード:ソースコードをまったく書かない。RPA:操作手順を登録して作業を代行させるもので、開発手法ではない。
開発ツールと OSS のライセンス

ローダ ローダ(loader)

実行可能なプログラム(ロードモジュール)を主記憶に読み込むプログラム。
⚠ 「主記憶にロード」「メモリに格納」はローダ。コンパイラやインタプリタではない。
コンパイラとインタプリタ(言語処理系)

ロードモジュールを実行に先立って主記憶に読み込むプログラム。
⚠ リンカと混同しやすい。ローダはロードモジュールを作らない。
リンクとロード、プログラムの性質

ロードモジュール ロードモジュール

リンカが部品を結合して作った、実行可能な形式のプログラム。
⚠ 目的プログラムと取り違えやすい。ローダに渡す直前のものがロードモジュール。
リンクとロード、プログラムの性質

意味解析 いみかいせき

変数の宣言と使用を対応付け、演算のデータ型が整合しているかを調べる処理。
⚠ 構文解析は文法のチェックだけをする。
コンパイラとインタプリタ(言語処理系)

営業利益 えいぎょうりえき

売上高から売上原価と販売費及び一般管理費を引いた、本業でのもうけ。
⚠ 経常利益:営業利益に営業外収益を足し、営業外費用を引いたもの。
開発ツールと OSS のライセンス

応答時間 おうとうじかん(レスポンスタイム)

端末から要求を出してから応答が返ってくるまでの時間で、端末処理・回線伝送・サーバ処理の合計。
⚠ ターンアラウンドタイム:バッチ処理(まとめて処理する方式)のジョブ全体の所要時間を指すことが多い。
スケジューリングと排他制御の計算

仮想記憶 かそうきおく

主記憶より大きなアドレス空間があるように見せ、必要な部分だけを主記憶に置く仕組み。
⚠ 主記憶より速くなるわけではない。目的は主記憶を効率よく使うこと。
仮想記憶とページ置換え

可変区画方式 かへんくかくほうしき

プログラムの大きさに合わせて主記憶を区切って割り当てる方式。
⚠ 固定区画方式は区画の大きさが最初から決まっている。可変区画方式は外部断片化が起きやすい。
主記憶の割当てと断片化・解放

可変長方式(メモリプール) かへんちょうほうしき

要求された大きさぴったりで貸し出す方式で、メモリ効率は良いが獲得・返却が遅く処理時間が不定になる。
⚠ 「可変長なら断片化しない」は誤り。外部断片化は起きる。
主記憶の割当てと断片化・解放

外部割込み がいぶわりこみ

タイマ・入出力完了・電源異常・機械チェックなど、実行中のプログラムの外が原因で起きる割込み。
⚠ メモリパリティエラーはハード障害なので外部割込み(機械チェック割込み)。
ソフトウェアの階層と OS の基本機能

外部断片化 がいぶだんぺんか

使用中の領域の間に小さな空きが散らばり、大きな連続領域を確保できなくなること。
⚠ 内部断片化(割り当てたブロック内の余り)と区別する。
主記憶の割当てと断片化・解放

割込み わりこみ

実行中の処理を一時中断して、緊急の処理をCPUに先に行わせる仕組み。
ソフトウェアの階層と OS の基本機能

装置の状態変化などを CPU に知らせ、実行中の処理を一時中断して OS に制御を移す仕組み。
⚠ バッファの機能問題で「装置が使えるようになったことを処理装置に伝える」と出たら割込み。
バッファとスプーリング

飢餓状態(スタベーション) starvation

特定のタスクがいつまでもCPUなどの資源を割り当ててもらえない状態。
⚠ エージング(待つほど優先度を上げる工夫)は、これを防ぐ側の仕組み。
タスクの状態とスケジューリング方式

共有資源 きょうゆうしげん

複数のタスクやプロセスが共通して使う装置やデータ(プリンタ、ファイルなど)。
スケジューリングと排他制御の計算

原始プログラム げんしプログラム(ソースプログラム)

人がプログラム言語で書いた、翻訳する前のプログラム。
⚠ 目的プログラム(翻訳した後の機械語)と逆。「原始=元」と覚える。
コンパイラとインタプリタ(言語処理系)

人がプログラム言語で書いた、翻訳前のプログラム。
⚠ 目的プログラムは翻訳後のもの。「原始」は一番最初と覚える。
リンクとロード、プログラムの性質

言語処理系 げんごしょりけい(言語プロセッサ)

プログラム言語で書かれたプログラムを、コンピュータが実行できる形に翻訳または解釈する仕組みの総称。
コンパイラとインタプリタ(言語処理系)

固定長方式(メモリプール) こていちょうほうしき

決まった大きさのブロック単位で貸し出す方式で、メモリ効率は悪いが獲得・返却は速く一定の時間で済む。
⚠ 可変長方式は効率が良いが処理が遅く時間が不定。性質が全部反対になる。
主記憶の割当てと断片化・解放

構文解析 こうぶんかいせき

字句の並びが言語の文法に合っているかを調べ、文法誤りを見つける処理。
⚠ 意味解析は型や宣言の対応を調べる。「文法」なら構文、「型・宣言」なら意味。
コンパイラとインタプリタ(言語処理系)

再帰的 さいきてき(リカーシブ/recursive)

手続きの内部から自分自身を呼び出すことができる性質。
⚠ 「別のプログラムから再度呼ばれる」は再入可能。「自分自身を呼ぶ」が再帰的。
リンクとロード、プログラムの性質

再使用可能 さいしようかのう(リユーザブル/reusable)

一度実行した後、主記憶にロードし直さずに再び実行しても正しく動く性質。
⚠ 再入可能と混同しやすい。再使用可能は逐次(1つずつ)の使い回し。
リンクとロード、プログラムの性質

再入可能 さいにゅうかのう(リエントラント/reentrant)

複数のプロセスから同時に呼ばれても、互いに干渉せずそれぞれに正しい結果を返せる性質。
⚠ 再使用可能は『順番に』使い回せる性質で、同時実行は保証しない。「同時・並行」なら再入可能。
リンクとロード、プログラムの性質

再配置 さいはいち

プログラムを主記憶に読み込んだとき、置かれた位置に合わせてプログラム内のアドレスを補正すること。
⚠ 再コンパイル(ソースから作り直す)・リロード(読み込み直す)と語感が似ているが、アドレスの補正をするのは再配置だけ。
主記憶の割当てと断片化・解放

再配置可能 さいはいちかのう(リロケータブル/relocatable)

主記憶上のどのアドレスに配置しても実行できる性質。
⚠ 「アドレス・配置」が出たら再配置可能。
リンクとロード、プログラムの性質

最適化 さいてきか(optimization)

生成するプログラムの実行時間を短く(または容量を小さく)するために、不要な演算の省略やレジスタ割付けを行う処理。
⚠ 速くなるのは実行時であって、コンパイル時間やデバッグのしやすさではない。
コンパイラとインタプリタ(言語処理系)

字句解析 じくかいせき

コンパイラの最初の段階で、文字の並びを変数名・数値・記号などの意味を持つ最小単位(字句)に区切る処理。
⚠ 構文解析は区切った字句の並びが文法どおりかを調べる。順番は字句→構文。
コンパイラとインタプリタ(言語処理系)

実行可能状態 じっこうかのうじょうたい

いつでも動けるが、CPUが空くのを順番待ちしている状態。
⚠ 待ち状態とよく取り違えられる。実行可能が待っているのはCPU、待ち状態が待っているのは入出力。
タスクの状態とスケジューリング方式

CPUさえ割り当てられればすぐ動ける状態で、CPUの割当てを待っている。
⚠ 待ち状態:I/Oの完了を待っている状態。「実行可能状態の時間」にI/O中は含めない。
スケジューリングと排他制御の計算

実行状態 じっこうじょうたい

CPUを使って実際に処理している状態。
⚠ 実行可能状態と混同しやすい。実際にCPUを使っているのは実行状態だけ。
タスクの状態とスケジューリング方式

処理時間順方式 しょりじかんじゅんほうしき(SPT:Shortest Processing Time first)

ジョブが終わるたびに、その時点で到着済みのジョブのうち処理時間が最短のものを選んで実行する方式。
⚠ 到着順方式。また、まだ到着していないジョブは比較の対象にならない。
スケジューリングと排他制御の計算

処理待ち時間 しょりまちじかん

CPUなどの順番待ちで、何も処理されずに経過した時間。
⚠ 入出力時間:I/Oを使って実際に処理している時間であり、待ちではない。
スケジューリングと排他制御の計算

静的リンキング せいてきリンキング(static linking)

実行前にリンカが必要なライブラリモジュールを結合し、ロードモジュールに組み込んでおく方式。
⚠ 動的リンキングは実行時に結合する。
リンクとロード、プログラムの性質

絶対パス ぜったいぱす

ルートディレクトリを出発点にして、対象ファイルまでの道順を書いたもの。
⚠ 相対パス:カレントが出発点。「ホームから」「最短の」は絶対パスの説明ではない
ファイル・ディレクトリとシェル操作

相対パス そうたいぱす

カレントディレクトリを出発点にして、対象ファイルまでの道順を書いたもの。
⚠ 先頭が「¥」なら絶対パス。「.」「..」やディレクトリ名で始まれば相対パス
ファイル・ディレクトリとシェル操作

相対参照 そうたいさんしょう

式を複写すると、複写先の位置に合わせて参照するセルも同じだけずれる参照方法。
⚠ 絶対参照($B$2など):複写しても参照先が変わらない。
開発ツールと OSS のライセンス

多重度 たじゅうど

同時に実行できるジョブの数で、1なら一度に1つずつ順番に処理する。
スケジューリングと排他制御の計算

同時に並行して実行できるジョブ(プログラム)の数。
バッファとスプーリング

マルチプログラミングで、同時に並行して実行するプログラムの数。
⚠ 多重度が大きいほど主記憶が足りなくなり、スラッシングが起きやすい。
仮想記憶とページ置換え

待ち状態 まちじょうたい

入出力の完了などのイベントを待っていて、CPUをもらっても進めない状態。
⚠ 待ち状態から実行状態へ直接は戻らない。入出力が終わると、必ず実行可能状態を経由する。
タスクの状態とスケジューリング方式

入出力などの完了を待っていて、CPUを渡されても動けない状態。
⚠ 実行可能状態:CPUの割当てを待っているだけで、すぐ動ける。
スケジューリングと排他制御の計算

著作権(コピーライト) ちょさくけん

作品を作った人が持つ権利。OSSでも作者に残っていて、放棄されていない。
⚠ コピーレフト:著作権を土台にして、自由な利用を広げる考え方。
開発ツールと OSS のライセンス

統合開発環境(IDE) Integrated Development Environment

エディタ・コンパイラ・デバッガなどの開発ツールを一つにまとめたソフトウェア。代表例はEclipse。
⚠ Tomcat(アプリケーションサーバ)、GCC(コンパイラ)、Linux(OS)は開発環境ではない。
開発ツールと OSS のライセンス

到着順方式 とうちゃくじゅんほうしき(FCFS:First Come First Served)

先に到着したジョブから順に実行する方式。
⚠ 処理時間順方式:到着済みのジョブのうち、処理時間が短いものから実行する。
スケジューリングと排他制御の計算

動的リンキング どうてきリンキング(dynamic linking)

プログラムを構成するモジュールの結合を、実行時に行う方式。
⚠ オーバレイは主記憶の領域を使い回す手法で、結合の方式ではない。
リンクとロード、プログラムの性質

動的再配置 どうてきさいはいち

実行中にプログラムの領域を移動させ、それに合わせてアドレスを補正すること。
⚠ ロード時に一度だけ補正する(静的な)再配置との違いは「実行中に動かすかどうか」。
主記憶の割当てと断片化・解放

内部割込み ないぶわりこみ

ゼロ除算・オーバフロー・不正命令・ページフォールト・SVCなど、実行中の命令自身が原因で起きる割込み。
⚠ 外部割込みとの区別は「原因が実行中の命令か」で判定する。
ソフトウェアの階層と OS の基本機能

内部断片化 ないぶだんぺんか

割り当てた区画やブロックの中で、使われずに余る部分が生じること。
⚠ 外部断片化は区画と区画の間の空きが細切れになること。固定長方式は内部、可変長方式は外部が起きやすい。
主記憶の割当てと断片化・解放

割り当てたブロックのうち、ファイルが使わずに余って無駄になる部分。
⚠ フラグメンテーション(外部の断片化):ファイルが飛び飛びの領域に散らばること。デフラグで解消する
ファイル・ディレクトリとシェル操作

排他制御 はいたせいぎょ

共有資源を同時に1つのタスクしか使えないようにして、データの競合を防ぐ仕組み。
スケジューリングと排他制御の計算

頒布(再配布) はんぷ

ソフトウェアを外部の人に渡すこと。有償か無償かは問わない。
⚠ 社内利用や他社への改変の委託は頒布に当たらない。
開発ツールと OSS のライセンス

標準入力・標準出力 ひょうじゅんにゅうりょく・ひょうじゅんしゅつりょく

コマンドが既定で使う入力元(通常はキーボード)と出力先(通常は画面)。
ファイル・ディレクトリとシェル操作

目的プログラム もくてきプログラム(オブジェクトプログラム/オブジェクトコード)

コンパイラが原始プログラムを翻訳して作った機械語のプログラム。
⚠ ロードモジュールは、目的プログラムをリンカで結合して実行できる形にしたもの。
コンパイラとインタプリタ(言語処理系)

コンパイラが原始プログラムを機械語に翻訳した部品で、単体ではまだ実行できないもの。
⚠ ロードモジュールは結合済みで実行できる完成形。目的プログラム→リンカ→ロードモジュールの順。
リンクとロード、プログラムの性質

優先度順方式 ゆうせんどじゅんほうしき

実行可能なタスクのうち、優先度が最も高いものにCPUを割り当てる方式。
⚠ 到着順方式:優先度ではなく、先に来た順に動かす。
スケジューリングと排他制御の計算