5つめの応用情報技術者の科目A暗記用のブログです。
Ankiアプリのファイルをfirestorageにアップロードしているのですが、ここの仕様が変わるとのことなのでドキドキしています。他への乗り換えも考えたほうがいいのかなと思案中です。
となると、今までアップしたITパスポートのファイルもダウンロードして別のところへお引越ししないといけないので、量が…量が…。
ま、皆さんは気にせず、今日もいってみよー!
第5章 ソフトウェア
OSの構成と機能
| 単語 | 意味 |
|---|---|
| 広義のOS | 広義のOS(オペレーティングシステム) とは、コンピュータを「使いやすく・安全に・効率よく」動かすためのソフトウェア全体のことです。狭義のOS(たとえばWindowsやLinuxのカーネル)だけでなく、ファイル管理ツールやコマンドライン、デバイスドライバなども含みます。たとえば、スマホのAndroidは「カーネル+アプリ管理+UI+電源制御」などが一体となった広義のOSです。2026年現在、クラウドやIoT機器でも「軽量OS(例:Zephyr RTOS)」が広義のOSとして活用され、マイコン1個でもネット接続やセキュリティ機能を備えています。 |
| 制御プログラム | 制御プログラムとは、コンピュータのハードウェアを直接管理・調整するソフトウェアの総称で、OSの中核をなす部分です。たとえば「ハードディスクからデータを読み取るタイミングを決める」「CPUの使用を複数のアプリで公平に分ける」などを行います。現代ではリアルタイムOS(RTS)が工場ロボットや医療機器で使われ、ミリ秒単位の正確な制御が可能です。これは「制御プログラム」の高度な応用例です。 |
| カーネル | カーネルは、OSの「心臓部」にあたる最小限の制御プログラムです。CPU・メモリ・入出力装置(キーボード・ディスプレイなど)を直接扱い、他のソフトが安全にハードウェアを使えるように「仲介」します。例えると、学校の「事務室」:生徒(アプリ)は直接校長(ハードウェア)には会わず、事務室(カーネル)経由で許可を得る。2026年では、AI推論専用チップ(NPU)をカーネルが直接制御する仕組みも標準化されつつあります。 |
| スーパバイザプログラム | スーパバイザプログラムは、「OS自身を管理・監督するプログラム」で、カーネルよりさらに特権的な立場にあります。主に大型コンピュータ(メインフレーム)や仮想化環境(例:VMware, Hyper-V)で使われます。たとえば1台のサーバで「Windows」「Linux」「macOS風環境」を同時に動かすとき、各OS(ゲスト)がぶつからないよう、スーパバイザがCPUやメモリを公平に割り当てます。現代のクラウドは、この技術なしには成立しません。 |
| ジョブ管理 | ジョブ管理とは、コンピュータに「何を・いつ・どの順で」処理させるかを決める仕組みです。昔はパンチカードで「1.印刷 → 2.計算 → 3.保存」と一括指示(=ジョブ)し、OSが順番に実行。現代では、夜中のバッチ処理(例:銀行の日次集計)、AI学習ジョブのスケジューリングなどに使われます。クラウドでは「Kubernetes」がジョブ管理を自動化し、数千のタスクを最適なサーバに振り分けています(2026年主流)。 |
| JCL | JCLは、ジョブ管理のために書く「指示書」のような言語です。例:![]() これは「PRINTというプログラムを実行し、"Hello, World!"を印刷せよ」という命令。現代ではシェルスクリプト(bash)やPythonスクリプトに置き換わっていますが、金融・行政のメインフレームでは今もJCLが使われており、2026年も保守需要があります。 |
| スプーリング機能 | スプーリング(Spooling: Simultaneous Peripheral Operations On-Line)は、「低速デバイス(例:プリンタ)を待たずに、高速で処理を続ける」ための技術です。たとえば文書印刷時、アプリは「印刷データを一時ファイル(スプールファイル)に保存」→ 即座に次の作業に戻れる。プリンタはそのファイルをゆっくり読みながら出力。2026年では、ネットワークプリンタがクラウド経由でスプールを受け取る「クラウドスプーリング」が普及中。3Dプリンタでも同様の仕組みが使われています。 |
| タスク管理 | タスク管理(プロセス/スレッド管理)は、「複数の作業(例:ブラウザ・音楽再生・ウイルスチェック)を1つのCPUで同時進行に見せる」技術です。実際はCPUが1msごとに作業を切り替えていて(→マルチタスク)、人間には「同時に動いている」ように感じられます。2026年では、AIアシスタントが裏で常時起動していても、消費電力を最小限に抑える「低レイテンシ・スケジューラ」がLinux 6.10以降で採用されています。 |
| 記憶管理 | 記憶管理は、「限られたメモリ(RAM)をアプリどうしで公平・安全に分ける」仕組みです。各アプリに「仮想メモリアドレス」を与え、実際の物理メモリのどこに置かれるかはカーネルが管理。これにより、あるアプリがクラッシュしても他のアプリに影響しません。2026年では、メモリ安全性向上のため、Rust言語で書かれた新カーネル(例:Linuxの一部モジュール)が「解放済みメモリへの誤アクセス」を自動防止しています。 |
| デバイスドライバ | デバイスドライバは、「特定のハードウェア(例:マウス・カメラ・GPU)とOSをつなぐ通訳」です。同じUSBカメラでもメーカーが違えば制御方法が異なるため、ドライバが「OSの命令 → ハードの言葉」に翻訳します。2026年現在、Windows 11 IoTとLinuxでは「モジュール式ドライバ」が主流で、USB接続時に自動でドライバをダウンロード・適用(→PnP:Plug and Play)。ドライバのバグがブルースクリーンの主因だったが、近年はサンドボックス化で安全性が向上。 |
| カーネルモード | カーネルモードは、CPUが「OSのカーネル専用」として動作する特権モードです。ここではメモリ全領域・ハードウェア全機能に自由にアクセス可能。危険な操作もできるため、アプリはここに入ることができません。たとえば「CPUの周波数を変える」「メモリ保護を一時解除」などはカーネルモードでしかできません。2026年では、セキュリティ強化のため、カーネルモードで実行するコード量を極力減らす(→マイクロカーネル化)動きが加速中。 |
| ユーザモード | ユーザモードは、アプリが普通に動く制限付きモードです。ここでは「自分のメモリしか触れない」「ハード直アクセス禁止」など、安全のためのルールが厳格に適用されます。アプリが「ファイルを読みたい」と思ったら、OSにスーパバイザコールで許可を申請する必要があります。スマホで「位置情報の使用を許可しますか?」と聞かれるのも、ユーザモードの安全設計の一環です。 ユーザモード(安全・制限) ⇄ スーパバイザコール ⇄ カーネルモード(特権・危険) |
| スーパバイザコール | スーパバイザコール(Syscall)は、ユーザモードのアプリが「カーネルに助けを求める」唯一の正規ルートです。たとえばopen("file.txt")と書くと、内部でスーパバイザコールが発行され、「ファイルを開いて!」とカーネルに依頼。2026年現在、高速化のためeBPF(拡張BPF)を使って、一部のカーネル処理をユーザ空間で安全に実行できるように進化。例:ネットワーク監視ツールがカーネル侵入せず高速フィルタリング可能に。 |
| マイクロカーネル | マイクロカーネルは、「最小限の機能(プロセス管理・IPCなど)だけをカーネルモードで動かし、ファイル管理・ネットワーク・ドライバなどをユーザモードのサービスとして分離」する設計です。代表例:QNX(車載システム)、seL4(航空・防衛)。利点は「1サービスが落ちても全体がクラッシュしない」高信頼性。2026年、自動運転車のOSでseL4採用が拡大中――安全性証明(形式検証済み)が決め手。 |
| モノリシックカーネル | モノリシックカーネルは、ファイル管理・ネットワーク・ドライバなど多くの機能をカーネルモード内で一体化して動かす設計。代表例:Linux, Windows NTカーネル。利点は高速(モード切り替えが少ない)、欠点は「1カ所のバグで全体クラッシュ」のリスク。ただし2026年では、モジュール動的ロード+eBPF+Rustモジュールで安全性・拡張性を大幅改善。Linuxがスマホ(Android)・スーパーコンピュータ・宇宙探査機で使われる所以です。 マイクロ:小さく・安全に(信頼性重視) モノリシック:速く・柔軟に(パフォーマンス重視) → 現代OSは「ハイブリッド」(例:macOS XNU=マイクロ+モノリシック要素)が増加中 |
タスク(プロセス)管理
| 単語 | 意味 |
|---|---|
| タスク | タスクとは、コンピュータが「やるべき一つの仕事」のことです。たとえば、音楽を再生したり、ファイルを保存したりと、それぞれが独立したタスクと見なされます。プログラムが実行されると、それがタスクとしてOS(オペレーティングシステム)に認識されます。 |
| タスクの状態遷移 | タスクは、「実行可能」「実行中」「待ち」などの状態を移り変わります。これを「状態遷移」と呼びます。たとえば、キーボード入力を待っているタスクは「待ち」状態で、入力があると「実行可能」に戻ります。 |
| タスクの生成 | タスクは、プログラムが起動されたときにOSによって生成されます。たとえば、ブラウザを開くと、そのブラウザのタスクが新たに作られます。これは「プロセス生成」や「スレッド生成」とも関係しています。 |
| 実行可能状態 | 実行可能状態とは、すぐにでもCPUを使って処理できる状態のこと。たとえば、他のタスクが終わるのを待っているときも、この状態にあります。OSのスケジューラがいつ実行するかを決めます。 |
| 実行状態 | 実行状態は、タスクが実際にCPUを使って処理を行っている状態です。パソコンには通常1つのCPUしかないので、一度に1つのタスクしかこの状態にはなれません(マルチコアなら各コアごとに1つ)。 |
| 待ち状態 | 待ち状態は、タスクが何かの結果を待っている状態です。たとえば、ファイルの読み込みやネットワークの応答を待っているときが該当します。この間、CPUは他のタスクを実行できます。 |
| タスクの消滅 | タスクが終了すると、OSはそのタスクの情報をメモリから削除します。これを「タスクの消滅」と呼びます。終了する原因は、正常終了やエラー、ユーザーによる強制終了などがあります。 |
| タスク制御の方式 | タスク制御とは、複数のタスクをどのように実行・停止・再開させるかのルールです。たとえば、「イベントが起きるまで待つ」方式や、「一定時間だけ実行する」方式などがあります。 |
| タスク情報の保持 | OSは、各タスクの現在の状態・レジスタの内容・メモリ使用量などを「タスク制御ブロック(TCB)」と呼ばれるデータ構造で管理しています。これにより、タスクを中断・再開できます。 |
| コンテキストの切換え | コンテキストとは、タスクの実行に必要なすべての情報(レジスタの値など)のこと。タスクを切り替えるとき、現在のタスクのコンテキストを保存し、次のタスクのコンテキストを復元します。 |
| コンテキストスイッチング | コンテキストスイッチングは、CPUが一つのタスクから別のタスクに切り替わるときに行われる処理です。この切り替えが速ければ速いほど、複数のアプリが「同時に動いている」ように感じられます。 |
| イベントドリブン方式 | イベントドリブン方式は、「何かが起きる(イベント)までタスクを待たせる」方式です。たとえば、マウスをクリックするまで処理を進めないような仕組みで、省電力や効率向上に役立ちます。 |
| タイムスライス方式 | タイムスライス方式は、各タスクに一定時間(タイムスライス)だけCPUを割り当てる方式です。時間が終わると他のタスクに切り替わり、公平に処理が進みます。 |
| タスクスケジューリング方式 | スケジューリング方式とは、どのタスクをいつ実行するかを決めるルールのことで、OSの性能やユーザー体験に大きく影響します。代表的なものにラウンドロビンや優先度方式があります。 |
| スケジューリング方式の分類 | スケジューリング方式は、「プリエンプティブ(強制中断可)」と「ノンプリエンプティブ(自発的に譲る)」に大きく分けられます。現代のOSでは、ほとんどがプリエンプティブ方式です。 |
| 到着順方式 | 到着順(FIFO: First In First Out)方式は、タスクが来た順に処理するシンプルな方法です。公平ですが、長い処理が最初にあると、短いタスクがずっと待たされる欠点があります。 |
| 優先順方式 | 優先順位方式は、重要なタスクほど早く処理されるように、予め優先度を設定する方法です。たとえば、緊急アラートは通常のアプリより優先されます。 |
| スタベーション | スタベーションは、低優先度のタスクがいつまでも実行されない「飢餓状態」のこと。高優先タスクばかりが実行され続けると、低優先タスクが放置されてしまいます。 |
| エージング | エージングは、長く待たされているタスクの優先度を少しずつ上げて、スタベーションを防ぐ技術です。例えるなら、「ずっと待ってる人には列の前に入れよう」という配慮です。 |
| タイムクウォンタム | タイムクウォンタムは、ラウンドロビン方式で各タスクに割り当てる時間の単位です。大きすぎると反応が遅く、小さすぎると切り替えのオーバーヘッドが増えます。通常は数ミリ秒です。 |
| タイムシェアリングシステム | タイムシェアリングシステムは、複数のユーザーが1台のコンピュータを「同時に使っているように見せる」仕組みで、ラウンドロビン方式などが使われます。現代のクラウドOSにもその思想が活きています。 |
| フィードバック待ち行列方式 | この方式では、複数の待ち行列を用意し、長時間かかると判断されたタスクを徐々に低い優先度のキューに移します。短いタスクが素早く終わるように最適化されます。 |
| 処理時間順方式 | 処理時間順(SPT: Shortest Processing Time first)方式は、短いタスクを優先して処理する方法。全体の待ち時間を減らせる利点がありますが、長時間タスクが遅れるリスクもあります。 |
| RTOSのスケジューリング方式 | リアルタイムOS(RTOS)では、「期限付きタスク」や「優先度ベースのプリエンプティブ方式」が主流です。たとえば、自動車のブレーキ制御など、時間厳守が求められる場面で使われます。 |
| 同期制御 | 同期制御は、複数のタスクがデータや資源を安全に共有するための仕組みです。たとえば、2人が同じノートを同時に書き換えると内容が壊れるので、順番に使うように調整します。 |
| イベントフラグ | イベントフラグは、タスク間で「何か起こった」ことを伝えるための1ビット(または複数ビット)の目印です。たとえば、センサーが動作を検出するとフラグを立て(1に)、別のタスクがそれを見て処理を開始します。複数のイベントを各ビットで管理でき、WAITで「フラグ待ち」、POSTで「フラグ設定」として使われ、リアルタイムOSでよく用いられます。 |
| WAIT/POST命令 | WAIT命令は、特定のイベントが起きるまでタスクを待たせる命令。POST命令は、イベントが起きたことを通知し、WAIT中のタスクを起こします。これらで同期が実現されます。 |
| タスク間の通信手段 | タスク同士は、共有メモリ、メッセージパッシング、パイプ、キューなどで情報をやり取りします。たとえば、アプリAが「データ完成!」とメッセージを送ると、アプリBがそれを受け取れます。 |
| 排他制御 | 排他制御は、「ある資源(例:ファイル)を一度に1つのタスクだけが使えるようにする」仕組みです。これがないと、データが壊れたり、計算結果がおかしくなったりします。 |
| クリティカルセクション | クリティカルセクションとは、共有資源にアクセスする「危険な部分」のコードのこと。この部分は、同時に複数のタスクが実行してはいけません。排他制御で保護されます。 |
| セマフォ | セマフォは、資源の使用状況を数値(カウンタ)で管理する同期機構です。たとえば、トイレの空き個数を表すと思ってください。空いていれば入室(カウンタ減)、出れば解放(カウンタ増)。 |
| P操作 | P操作(「待つ」操作)は、セマフォのカウンタを減らす命令です。カウンタが0なら、他のタスクが解放するまで待ちます。入室したいが満員なら、ドアの前で待つイメージです。 |
| V操作 | V操作(「通知」操作)は、セマフォのカウンタを増やす命令です。資源を使い終わったらV操作で解放し、他のタスクが使えるようになります。トイレを出て「空きました!」と知らせるようなものです。 |
| セマフォを使った同期制御 | セマフォを使えば、複数タスクが順番に資源を使えるように制御できます。P操作で入り、V操作で出る。これにより、データの破壊や競合状態(レースコンディション)を防げます。 |
| デッドロック | デッドロックは、「AがBの資源を待ち、BがAの資源を待つ」という状態で、どちらも動けなくなる現象です。例:2人が互いの傘を借りたまま返さず、雨が降っても出かけられない状態。 |
| デッドロックの検出方法 | デッドロックは「リソース割当グラフ」で検出できます。グラフにループ(循環)があればデッドロックが発生しています。ただし、リアルタイムで検出するには計算コストがかかります。 |
| プロセス | プロセスは、「実行中のプログラム」そのもので、独立したメモリ空間を持ちます。たとえば、ブラウザやワードはそれぞれ別のプロセスとして動いています。 |
| スレッド | スレッドは、プロセスの中の「軽量な実行単位」です。1つのプロセス内に複数のスレッドがあり、メモリを共有しながら並列処理できます。ゲームで「描画」と「音声」を別スレッドで処理する例があります。 |
| 並行処理におけるプロセスとスレッド | プロセスは独立性が高いが重い。スレッドは軽いが、同じメモリを使うためバグが起きやすい。現代のアプリでは、スレッドを多用して効率的に並行処理を行います。 |
| 軽量プロセス | 軽量プロセス(LWP: Light-Weight Process)は、カーネルが直接管理するスレッドのような存在です。ユーザースレッドより高速で、現代のLinuxやWindowsではほぼスレッドと同義で使われます。 |
記憶管理
| 単語 | 意味 |
|---|---|
| 実記憶管理 | 実記憶管理とは、コンピュータの物理メモリ(RAM)を効率よく複数のプログラムに割り当てる仕組みです。OSがどのプログラムにどのメモリ領域を使うかを管理し、メモリの無駄や衝突を防ぎます。これにより、複数のアプリが同時に動いても安全に動作します。 |
| 実アドレス空間 | 実アドレス空間とは、コンピュータの物理メモリ全体(例:0〜16GB)を指すアドレス範囲です。CPUが直接アクセスできる「本物のメモリ」の場所で、各プログラムはOSを通じてこの空間の一部を割り当てられます。仮想アドレスとは異なり、重複や隠蔽はありません。 |
| 単一連続割当て方式 | 単一連続割当て方式は、メモリを1つの大きな領域として、1つのプログラムにまとめて割り当てる古い方式です。OSが下部に常駐し、残りを1つのタスクに使うため、マルチタスクには向かず、現代のOSでは使われていません。 |
| 固定区画方式 | 固定区画方式(パーティション方式)は、メモリをあらかじめいくつかの固定サイズの区画(パーティション)に分けておき、各タスクに1区画ずつ割り当てる方法です。シンプルですが、タスクの大きさに合わない区画が無駄になりやすく、内部フラグメンテーションが発生します。 |
| 内部フラグメンテーション | 内部フラグメンテーションは、割り当てられたメモリ領域の一部が使われずに無駄になる現象です。たとえば、100KBの区画に80KBのタスクを割り当てると、残り20KBが使われず「内部」に空きができます。固定区画方式でよく起こります。 |
| 可変区画方式 | 可変区画方式(可変分割方式)は、タスクの大きさに応じてメモリを柔軟に割り当てる方法です。大きなタスクには大きな領域、小さなタスクには小さな領域を割り当てるため、内部フラグメンテーションは減りますが、外部フラグメンテーションが問題になります。 |
| メモリコンパクション | メモリコンパクションは、断片化した空きメモリをまとめて大きな連続領域を作る技術です。使用中のメモリを一箇所に寄せて、空きを一か所に集めることで、大きなタスクを割り当て可能にします。ただし、処理負荷が高く、リアルタイム性が損なわれるため、現代ではあまり使われません。 |
| 動的再配置 | 動的再配置は、プログラムが実行中にアドレスを自動的に変更する仕組みです。メモリコンパクション時などに、プログラムの位置が変わるため、ハードウェア(ベースレジスタなど)が実行時のアドレスを動的に変換します。これにより、プログラムは再コンパイルなしに移動できます。 |
| 記憶域管理アルゴリズム | 記憶域管理アルゴリズムは、空きメモリのリストをどう管理し、どの空き領域にタスクを割り当てるかを決めるルールです。代表的なものに「最初適合」「最適適合」「最悪適合」があり、それぞれ速度とメモリ効率のトレードオフがあります。 |
| リスト方式 | リスト方式は、空きメモリ領域(空き区画)を連結リストで管理する方法です。各空き領域が「次はどこが空きか」を指すポインタを持ち、OSはこのリストをたどって空きを探す。メモリの増減に柔軟に対応でき、可変区画方式でよく使われます。 |
| 最初適合アルゴリズム | 最初適合(First Fit)アルゴリズムは、空きリストの先頭から順に探して、最初に見つかった「十分な大きさの空き領域」に割り当てる方法です。処理が高速で実装が簡単ですが、メモリの前の方に小さな断片が残りやすくなります。 |
| 最適適合アルゴリズム | 最適適合(Best Fit)アルゴリズムは、要求サイズに「最もぴったりな」空き領域を選ぶ方法です。無駄を最小限にできますが、すべての空き領域を調べる必要があり、処理が遅く、小さな断片が多数残るという欠点があります。 |
| 最悪適合アルゴリズム | 最悪適合(Worst Fit)アルゴリズムは、最も「大きい」空き領域に割り当てる方法です。大きな空きを残すことで、将来の大きなタスクに備えます。しかし、実際には断片化が進みやすく、現在ではほとんど使われていません。 |
| オーバレイ方式 | オーバレイ方式は、メモリが少ない時代に使われた技術で、プログラムの一部だけをメモリに載せ、必要に応じて他の部分と入れ替える方法です。現代のストレージや仮想記憶の前身とも言えますが、プログラマが手動で管理する必要があり、今は使われていません。 |
| スワッピング | スワッピングは、一時的に使わないプロセス全体をメモリからディスク(スワップ領域)に退避(スワップアウト)し、必要になったら再びメモリに戻す(スワップイン)仕組みです。これにより、物理メモリ以上のタスクを動かせます。 |
| スワップアウト | スワップアウトは、メモリが不足したときなどに、現在使われていないプロセスをディスクに退避する操作です。メモリを空けることで、新しいタスクを実行可能にします。ただし、ディスクへの書き込みは遅く、システム全体の速度が一時的に低下します。 |
| スワップイン | スワップインは、スワップアウトされたプロセスを再度メモリに読み込む操作です。プロセスが再び実行可能になると、OSがディスクからメモリへ戻します。スワップインが頻繁に起こると、システムが「もっさり」する原因になります。 |
| メモリプール | メモリプールは、あらかじめ固定サイズのメモリブロックをまとめて確保し、必要に応じて高速に割り当てる方式です。リアルタイムシステムや組み込みOSでよく使われ、断片化や割り当ての遅延を防ぎます。ただし、可変サイズの要求には不向きです。 |
| 可変長方式 | 可変長方式は、メモリ領域をタスクのサイズに応じて可変長で割り当てる方法で、可変区画方式と同義です。柔軟でメモリ効率は良いですが、外部フラグメンテーション(空きがバラバラ)が起こりやすく、管理が複雑になります。 |
| 固定長方式 | 固定長方式は、すべてのメモリ割り当てを同じサイズ(例:4KB)のブロックで行う方法です。管理が簡単で高速ですが、小さなデータでも1ブロックを使うため、内部フラグメンテーションが発生し、メモリの無駄が生じます。 |
| 仮想記憶管理 | 仮想記憶管理は、プログラムに「大きな連続メモリがあるように見せかけ」、実際には物理メモリとディスクを組み合わせて使う仕組みです。これにより、物理メモリより大きなプログラムも実行可能になり、各プログラムのメモリ空間が独立して安全になります。 |
| 仮想記憶方式 | 仮想記憶方式には主に「ページング」と「セグメンテーション」の2種類があります。現代のOS(Windows、Linux、macOS)では、ほとんどがページング方式を採用しており、セグメンテーションは過去のアーキテクチャ(例:Intel 8086)で使われていました。 |
| 動的アドレス変換 | 動的アドレス変換は、プログラムが使う仮想アドレスを、実行時に物理アドレスに自動的に変換する仕組みです。これにより、プログラムは自分のアドレス空間を自由に使え、OSやハードウェアが裏で正しい物理メモリにアクセスします。 |
| MMU | MMU(Memory Management Unit)は、CPUの一部または専用回路で、仮想アドレスを物理アドレスに変換する役割を果たします。ページテーブルを参照して変換し、アクセス権のチェックも行うため、システムの安全性と効率性を支えています。 |
| ページング方式 | ページング方式は、仮想メモリと物理メモリを「固定サイズのページ(例:4KB)」に区切り、ページ単位で対応付ける方法です。連続していない物理メモリでも、プログラムからは連続した空間に見えます。断片化が起きにくく、現代の標準です。 |
| セグメンテーション方式 | セグメンテーション方式は、プログラムを「コード」「データ」「スタック」などの意味のある単位(セグメント)ごとに分けて管理する方法です。柔軟ですが、可変長のため断片化が起きやすく、現在のOSではほとんど使われていません。 |
| アドレス変換 | アドレス変換は、プログラムが使う仮想アドレスを、MMUが物理アドレスに変換するプロセスです。ページテーブルを使い、「ページ番号 → フレーム番号」の対応を調べ、オフセットを加えて実アドレスを算出します。これにより、仮想記憶が実現されます。 |
| ページング | ページングは、仮想記憶を実現するための基本技術で、メモリを固定サイズの「ページ」に分割し、物理メモリの「フレーム」に対応付けます。これにより、プログラムは大きな連続空間を使っているように見え、メモリの管理が簡単になります。 |
| デマンドページング | デマンドページングは、「実際にアクセスされたページだけをメモリに読み込む」方式です。プログラム全体を読み込む必要がなく、起動が速く、メモリ使用量も節約できます。ページフォールトが発生するたびに必要なページを読み込みます。 |
| プリページング | プリページングは、将来使われる可能性が高いページをあらかじめメモリに読み込んでおく手法です。たとえば、連続するページを一度に読み込むことで、ページフォールトの回数を減らし、パフォーマンスを向上させます。予測が外れると無駄になります。 |
| LRU,FIFOの基本的な考え方 | ページ置換アルゴリズムでは、メモリが足りないとき古いページを捨てる必要があります。FIFO(First-In First-Out)は「最も古くに入ったページ」を捨てる。LRU(Least Recently Used)は「最も最近使われていないページ」を捨てる。LRUの方が性能が良いが、実装が複雑です。 |
| スラッシング | スラッシングは、ページフォールトが多発し、ページの読み込み・書き込みにCPUが追われて、実際の処理がほとんど進まなくなる状態です。メモリ不足やタスク過多が原因で、システムが極端に遅くなります。ワーキングセットの確保で防げます。 |
| ワーキングセット | ワーキングセットは、あるタスクが「短期間で頻繁に使うページの集合」を指します。このセットをメモリに常駐させれば、ページフォールトが減り、スラッシングを防げます。OSはこれを推定し、メモリ割り当ての最適化に活用します。 |
| 局所参照性 | 局所参照性(Locality of Reference)とは、プログラムが「近い場所のデータ」や「最近使ったデータ」を繰り返し使う傾向のことです。これにより、限られたメモリでも効率よく動作可能になり、キャッシュや仮想記憶の設計の根幹をなす原理です。 |
言語処理ツール
| 単語 | 意味 |
|---|---|
| 言語プロセッサ | 言語プロセッサは、人間が書いたプログラム(高級言語)をコンピュータが実行できる機械語に変換するソフトウェアの総称です。代表的なものに「コンパイラ」「インタプリタ」「アセンブラ」があります。これらは、開発効率や実行速度、デバッグのしやすさなど、目的に応じて使い分けられます。 |
| アセンブラ | アセンブラは、人間に近い「アセンブリ言語」(例:MOV AX, 5)を機械語(0と1の列)に変換する言語プロセッサです。1命令がほぼ1対1で機械語に対応するため、実行速度は速いですが、プログラミングは複雑です。ハードウェア制御や組み込みシステムで今も使われています。 |
| コンパイラ | コンパイラは、高級言語(例:C、Rust)で書かれたプログラム全体を一度に機械語に変換し、実行ファイル(.exeなど)を生成するツールです。一度コンパイルすれば高速に実行でき、スマートフォンアプリやゲームなどパフォーマンスが重要な場面で広く使われています。 |
| インタプリタ | インタプリタは、プログラムを1行ずつ読みながらその場で実行する言語プロセッサです。PythonやJavaScriptが該当します。実行ファイルは生成されませんが、エラー箇所がすぐわかるため、学習やWeb開発に適しています。ただし、実行速度はコンパイラより遅い傾向があります。 |
| プリプロセッサ | プリプロセッサは、コンパイルの前段階でソースコードを加工するツールです。C言語の#includeや#defineがこれに該当します。たとえば、#include <stdio.h>はヘッダファイルをソースに挿入し、コンパイラが扱いやすい形に整えます。現代のビルドツールでも同様の前処理が行われます。 |
| ジェネレータ | ジェネレータ(生成系)は、設計情報(例:UML図、DSL)から自動的にソースコードを生成するツールです。たとえば、データベース定義からCRUDコードを生成するORMツールもその一種。開発の生産性を劇的に高め、2026年現在ではAIによるコード生成(GitHub Copilotなど)もこの延長にあります。 |
| シミュレータ | シミュレータ(実行系)は、実際のハードウェアを使わずにプログラムの動作を再現するソフトウェアです。たとえば、スマホアプリをPC上でテストするエミュレータや、組み込みチップの動作を模擬するツールが該当します。開発・検証を安全・低コストで行えるため、IoTや自動運転で不可欠です。 |
| コンパイル技法 | コンパイル技法とは、コンパイラがプログラムを効率よく正確に変換するための技術の集まりです。字句解析、構文解析、意味解析、最適化、コード生成といった段階に分かれており、各段階でエラー検出や性能向上が図られます。近年では、中間表現(IR)を使った最適化が主流です。 |
| コンパイラの処理 | コンパイラの処理は、以下の5段階で進みます。 ①字句解析:プログラムを単語(トークン)に分割。 ②構文解析:文法に従って構文木を生成。 ③意味解析:変数の型や宣言の有無をチェック。 ④最適化:効率の良いコードに変形。 ⑤コード生成:機械語や中間コードを出力。 この流れにより、安全で高速な実行ファイルが作られます。 |
| コンパイラの最適化手法 | 最適化手法には、定数畳み込み(2 + 3を5に置き換え)、ループの不変式の移動(ループ内で変わらない計算を外に出す)、デッドコード削除(使われないコードを削除)などがあります。これらの手法により、実行速度が向上し、メモリ使用量も削減されます。現代のLLVMやGCCは高度な最適化を自動で行います。 |
| リンク | リンクとは、複数のオブジェクトファイル(.o)やライブラリをまとめて、一つの実行可能ファイル(ロードモジュール)を作る処理です。たとえば、main.oとutils.oを結合し、printfなどの外部関数のアドレスを埋め込みます。この工程により、モジュール単位の開発が可能になります。 |
| ロードモジュール | ロードモジュールは、OSがメモリに読み込んで実行できる完全なプログラムファイル(例:Windowsの.exe、LinuxのELF)です。リンク後に生成され、すべての関数やデータのアドレスが確定しています。ユーザーが直接実行する形態であり、アプリケーションの完成形と言えます。 |
| リンカ | リンカ(リンカー)は、リンク処理を行うプログラムです。オブジェクトファイル同士の参照を解決し、ライブラリから必要なコードを追加し、最終的な実行ファイルを作成します。静的リンク(コードを内蔵)と動的リンク(実行時に読み込み)の2種類があり、2026年では動的リンクが主流です。 |
| ライブラリ | ライブラリは、よく使う機能(例:数学計算、ネットワーク通信)を再利用可能な形でまとめたプログラムの集まりです。静的ライブラリ(.a)は実行ファイルに組み込まれ、動的ライブラリ(.so/.dll)は実行時にメモリに読み込まれます。これにより、コードの重複を避け、開発効率が向上します。 |
| make | makeは、ソースコードの変更に応じて自動的に再コンパイル・リンクを行うビルドツールです。Makefileに「どのファイルがどのファイルに依存するか」を記述し、変更された部分だけを再構築します。これにより、大規模プロジェクトのビルド時間が大幅に短縮され、2026年でもCI/CDパイプラインの基盤技術として使われています。 |
開発ツール
| 単語 | 意味 |
|---|---|
| プログラミング・テスト支援 | プログラミング・テスト支援とは、ソフトウェアの品質を高めるために、テストの設計・実行・分析を自動的または半自動的に行う仕組みやツール群のことです。バグの早期発見やカバレージ向上に役立ち、現代の開発では必須です。静的・動的解析、カバレージ測定、プロファイリングなどが含まれます。 |
| 静的テストツール | 静的テストツールは、プログラムを実行せずにソースコードを解析し、バグやセキュリティ脆弱性、コーディング規約違反を検出するツールです。代表例にSonarQubeやESLintがあります。実行せずに問題を発見できるため、開発初期段階で効果的です。 |
| 構文チェッカ | 構文チェッカは、プログラムが言語の文法に従っているかをチェックするツールで、コンパイラの字句・構文解析部の機能を独立させたものと見なせます。たとえば、閉じ括弧の不足やセミコロンの抜けを検出します。IDEのリアルタイムエラー表示にも使われ、2026年ではAI補完と連携して精度が向上しています。 |
| コードオーディタ | コードオーディタは、ソースコードを品質基準やセキュリティガイドラインに基づいて「監査(audit)」するツールです。静的解析の結果をもとに、改善すべき箇所を指摘します。チーム開発ではコードレビューの補助として活用され、SonarQubeやCheckmarxなどが代表的です。 |
| モジュールインタフェースチェックツール | このツールは、モジュール同士のインターフェース(関数の引数や戻り値の型など)が正しく合致しているかを検証します。たとえば、C言語でヘッダファイルと実装が一致しない場合に警告を出します。大規模システムでは、モジュール間の整合性確保に不可欠です。 |
| 動的テストツール | 動的テストツールは、プログラムを実際に実行しながら動作を監視し、メモリリークやバッファオーバーフロー、競合状態などを検出します。代表例にValgrind(Linux)やAddressSanitizerがあります。静的解析では見つけにくい「実行時だけ現れるバグ」を捉えられます。 |
| アサーションチェッカ | アサーションチェッカは、プログラム内に埋め込まれた「アサーション(検査文)」が実行時に成り立つかを確認するツールです。たとえば「この変数は負ではないはず」という条件が破られたら、即座にエラーを報告します。開発中のデバッグに非常に有効です。 |
| アサーション | アサーションとは、「ある条件が必ず真であるはず」という開発者の想定をコード中に明示する仕組みです。Pythonならassert x > 0のように書きます。テスト中は有効にし、リリース時には無効にすることが多いです。論理的なバグを早期に発見するための強力な手段です。 |
| トレーサ | トレーサ(追跡プログラム)は、プログラムの実行経路や関数呼び出しの流れを記録するツールです。どの関数がいつ、どこから呼ばれたかを可視化し、複雑なバグの原因特定に役立ちます。2026年では、分散システム向けのトレーサ(例:Jaeger、OpenTelemetry)が主流です。 |
| テストカバレージツール | テストカバレージツール(カバレージモニタ)は、テストがソースコードのどの程度を実行したかを計測するツールです。行カバレージ(何行実行されたか)、分岐カバレージ(ifの両方を通ったか)などが指標として使われ、品質保証の目安になります。代表例にJaCoCo(Java)、Coverage.py(Python)があります。 |
| プロファイラ | プロファイラは、プログラムの実行中にCPU時間やメモリ使用量、関数呼び出し頻度などを計測し、「どこが遅いのか」を可視化するツールです。最適化の優先順位を決めるのに欠かせません。2026年では、Flame Graph(炎グラフ)を使った視覚的分析が一般的です。 |
| ICE | ICE(In-Circuit Emulator:インサーキットエミュレータ)は、組み込みシステムのデバッグに使われるハードウェアデバッガで、実際のCPUをエミュレートしながら内部状態を観測します。2026年ではJTAGインタフェース経由のソフトウェアベースICEが主流で、ハードICEは高価なため特定分野に限られます。 |
| スナップショット | スナップショットは、プログラム実行中のメモリや変数の状態を一時的に保存する機能です。デバッガで「この時点の状態に戻りたい」ときに使われます。近年では、仮想マシン(VM)やDockerの状態保存にも使われ、開発環境の再現性確保に貢献しています。 |
| インスペクタ | インスペクタは、プログラム実行中に変数やオブジェクトの中身をリアルタイムで観察・操作できるツールで、デバッガの一部として提供されます。Web開発ではブラウザの「Elementsインスペクタ」が有名で、DOM構造を即座に確認・編集できます。 |
| テストデータ生成ツール | このツールは、テストに必要な大量・多様な入力データを自動生成します。境界値(例:最大値・最小値)やランダムデータ、個人情報を含まないフェイクデータなどを作成し、テストの網羅性を高めます。2026年ではAIがリアルなユーザーデータを模倣して生成する技術も登場しています。 |
| テストベッドツール | テストベッドツールは、ソフトウェアをテストするための一連の環境(ハード・ソフト・ネットワーク構成)を整備・管理するツールです。特にIoTや自動車ソフトウェアでは、実機に近い環境でテストする必要があり、DockerやKubernetesを活用した仮想テストベッドが主流です。 |
| 開発を支援するツール | 開発支援ツール(CASEツール)は、設計・コーディング・テスト・保守の各工程を自動化・効率化するソフトウェア群です。UMLモデリングツール、CI/CDパイプライン、静的解析ツールなどが含まれ、現代のアジャイル開発ではDevOpsツールチェーンとして統合されています。 |
| IDE | IDE(Integrated Development Environment:統合開発環境)は、エディタ・コンパイラ・デバッガ・ビルドツールを一つにまとめた開発支援ソフトです。Visual Studio、IntelliJ IDEA、VS Codeなどが代表的で、2026年ではAIコード補完(GitHub Copilot連携)が標準機能となっています。 |
| リポジトリ | リポジトリは、ソフトウェアのソースコードやドキュメント、設定ファイルなどを一元管理する「保管庫」です。ローカル(開発者PC)とリモート(GitHubなど)があり、チーム開発の基盤となります。2026年では、コードだけでなくCI設定やセキュリティポリシーも含む「モノレポ」が注目されています。 |
| メタデータ | メタデータは、「データに関するデータ」で、ファイルの作成日、作者、型情報、依存関係などを指します。データベースではカラムの型、ソースコードでは関数のコメントやアノテーションが該当します。ソフトウェアの自動生成・分析・再利用を可能にする重要な情報です。 |
| データディクショナリ | データディクショナリは、システムで使われるすべてのデータ項目(変数・カラム)の定義・意味・型・制約を一覧化した辞書です。データの一貫性や保守性を高め、大規模システムや官公庁システムで必須とされます。2026年では、メタデータ管理ツールと連携して自動生成されるケースが増えています。 |
| バージョン管理ツール | バージョン管理ツール(ソースコード管理ツール)は、ソースコードの変更履歴を記録・管理し、複数人での協働開発を可能にするソフトです。過去の状態に戻せたり、ブランチで並行開発できたりします。現代ではGitが事実上の標準で、Subversionはレガシー案件に限られます。 |
| Subversion | Subversion(SVN)は、2000年代に広く使われた集中型バージョン管理ツールです。リポジトリが1箇所にあり、全操作がサーバと通信する必要がありました。Gitの分散型モデルに比べて柔軟性に劣るため、2026年現在は新しいプロジェクトではほぼ使われていません。 |
| Git | Gitは、Linus Torvaldsが開発した分散型バージョン管理ツールで、現在のソフトウェア開発の基盤です。各開発者がローカルに完全な履歴を持ち、ブランチ・マージ・プルリクエストによる協働が可能。GitHubやGitLabと連携し、CI/CDやコードレビューも一体化されています。 |
| Chainer | Chainerは、日本発のディープラーニングフレームワークで、「Define-by-Run」方式(実行時に計算グラフを構築)を先駆的に採用しました。しかし、2026年現在では開発が終了し、後継のPyTorch(Chainerの思想を継承)が主流となっており、新規プロジェクトでの使用は推奨されません。 |
| OpenCV | OpenCV(Open Source Computer Vision Library)は、画像・動画処理や物体検出、顔認識などの機能を提供するオープンソースライブラリです。PythonやC++で広く使われ、ドローン・監視カメラ・ARアプリなどで活用されています。2026年でもリアルタイム画像処理のデファクトスタンダードです。 |
| R | Rは、統計解析やデータ可視化に特化したプログラミング言語で、研究者やデータサイエンティストに人気があります。ggplot2などの強力なグラフライブラリを持ち、医療・社会科学分野で広く使われています。2026年では、Pythonとの連携(reticulateパッケージ)により実用性がさらに高まっています。 |
UNIX系OS
| 単語 | 意味 |
|---|---|
| UNIX系OS | UNIX系OSは、1970年代に開発されたUNIXを起源とするオペレーティングシステムの一群で、Linux、macOS、BSDなどが該当します。安定性が高く、サーバや組み込み機器、スマートフォン(AndroidはLinuxベース)で広く使われています。ファイルもデバイスも「すべてファイル」として扱う設計思想が特徴です。 |
| ファイルシステムの構造 | ファイルシステムは、ファイルやディレクトリをディスク上にどう保存・管理するかを定めた仕組みです。UNIX系ではツリー構造(木構造)で、ルートディレクトリを起点に階層的にファイルを配置します。代表的な形式にext4(Linux)、APFS(macOS)、ZFS(高性能・信頼性重視)があります。 |
| ルートディレクトリ | ルートディレクトリ(/)は、UNIX系ファイルシステムの最上位にある唯一の親ディレクトリで、すべてのファイルやディレクトリはここから枝分かれしています。たとえば、/home/user や /etc などは、すべて / の下にあります。Windowsの「C:\」に似た概念ですが、ドライブ単位ではなく1つのツリーです。 |
| 絶対パス名 | 絶対パス名は、ルートディレクトリ(/)から目的のファイル・ディレクトリまでの完全な道順を示す記法です。例:/home/taro/document.txt。どの場所からでも同じように指定でき、場所に依存しないため、スクリプトやプログラムでよく使われます。 |
| 相対パス名 | 相対パス名は、現在いるディレクトリ(カレントディレクトリ)からの相対的な位置を示すパスです。例:./report.pdf(現在のフォルダ内)や ../backup/(1つ上のフォルダ)。.. は親ディレクトリ、. は現在地を意味します。柔軟ですが、実行場所によって意味が変わります。 |
| カレントディレクトリ | カレントディレクトリは、現在作業しているフォルダのことで、シェルでは pwd コマンドで確認できます。相対パスはこの位置を起点に解釈されます。たとえば、cd projects と打てば、カレントディレクトリが projects フォルダに移動します。 |
| ファイルの種類 | UNIX系OSでは、ファイルには「通常ファイル」「ディレクトリ」「特殊ファイル」「シンボリックリンク」などの種類があります。これらは見た目が似ていても、内部構造や用途が異なります。ls -l コマンドの先頭1文字(例:-、d、c)で種類が判別できます。 |
| 通常ファイル | 通常ファイル(ノーマルファイル)は、テキストや画像、実行プログラムなど、中身に「データ」が入っている一般的なファイルです。ls -l で先頭が - で始まります。これが最もよく使うファイルタイプで、他の種類との区別はOS内部で厳密に行われます。 |
| ディレクトリファイル | ディレクトリファイル(単にディレクトリ)は、他のファイルやディレクトリの一覧を保持する特殊なファイルです。ls -l では d で始まります。中身は「ファイル名 → iノード番号」の対応表で、これによりファイル検索が可能になります。 |
| iノード | iノード(inode)は、ファイルのメタデータ(所有者・サイズ・更新日時・アクセス権など)とデータブロックの場所を記録した構造体です。ファイル名はディレクトリに保存され、iノードはその実体を管理します。これにより、同じファイルに複数の名前(ハードリンク)を付けられます。 |
| 特殊ファイル | 特殊ファイル(スペシャルファイル)は、ハードウェアデバイス(例:キーボード、プリンタ)を「ファイルのように扱う」ための仕組みです。/dev ディレクトリ以下にあり、/dev/null(データを捨てる)や /dev/sda(ディスク)などが該当。ls -l では c(キャラクタ)または b(ブロック)で始まります。 |
| シェル | シェルは、ユーザーのコマンドをOSに伝える「通訳役」で、UNIX系ではbash、zsh、fishなどが使われます。コマンドを打つと、シェルがそれを解釈してプログラムを起動します。スクリプト言語としても使われ、自動化に欠かせません。 |
| ログインシェル | ログインシェルは、ユーザーがシステムにログインしたときに自動で起動されるシェルです。各ユーザーの設定(/etc/passwd や chsh コマンドで変更可能)で決まります。たとえば、/bin/zsh に設定すれば、ログイン時にzshが起動します。 |
| リダイレクション | リダイレクションは、コマンドの入出力をファイルや他のプログラムに「向き先を変える」機能です。例:ls > list.txt(出力をファイルへ)、cat < input.txt(ファイルから入力)。これにより、データの流れを自由に制御でき、シェルスクリプトの基本です。 |
| パイプ | パイプ(|)は、あるコマンドの出力をそのまま次のコマンドの入力に渡す機能です。例:ps aux | grep nginx(プロセス一覧からnginxを絞り込む)。複数の小さなコマンドを組み合わせて複雑な処理を実現でき、「UNIXの哲学」の体現です。 |
| ソケット | ソケットは、ネットワーク通信やプロセス間通信(IPC)のための仮想的な「通信ポート」です。ファイルシステム上に /tmp/socket のように見えることもあり、ls -l では s で始まります。Webサーバとブラウザの通信など、現代のITインフラの基盤技術です。 |
| デーモン | デーモン(デーモンプロセス)は、バックグラウンドで常駐してサービスを提供するプロセスで、sshd(SSHサーバ)、httpd(Webサーバ)などが該当します。名前は「d」で終わることが多く、ユーザーのログインに依存せず、システム起動時に自動で起動されます。 |
| OSS | OSS(Open Source Software:オープンソースソフトウェア)は、ソースコードを自由に利用・改変・再配布できるソフトウェアのことで、Linux、Apache、Gitなどが代表です。商業利用も可能なため、2026年現在、クラウド・AI・IoTのほぼすべての基盤を支えています。 |
| Web-DB連携システム | Web-DB連携システムは、Webアプリケーションがデータベースと連携して動く仕組みで、ユーザーの入力(例:ログイン)をDBに保存・照合します。典型的な構成は「Webサーバ(Nginx)+アプリ(Python)+DB(PostgreSQL)」で、LAPPやLAMPと呼ばれます。 |
| ソフトウェアバンドル | ソフトウェアバンドルは、関連する複数のOSSをまとめて提供するパッケージで、インストールや設定を簡単にします。例:XAMPP(Apache+MySQL+PHPを1つに)、Anaconda(Python+データサイエンスライブラリ)。2026年ではDockerイメージが主流のバンドル形式になっています。 |
| LAPP | LAPPは、Linux(OS)+Apache(Webサーバ)+PostgreSQL(DB)+PHP/Python/Perl(言語)の組み合わせで、Webアプリを構築するためのOSSスタックです。MySQLを使うLAMPに対して、PostgreSQLを使う点が特徴で、データ整合性を重視するシステムで使われます。 |
| OSSの定義 | OSSの正式定義は、「Open Source Initiative(OSI)」が定めた10項目の基準に基づきます。主な条件は①自由な再配布、②ソースコードの公開、③派生作品の許可、④作者の同一性保護、⑤技術的中立性など。これらを満たすことで「真のOSS」と認められます。2026年では、クラウドネイティブやAI開発の90%以上がOSSに依存しており、企業も積極的に貢献しています。 |
| レンダリング | レンダリングは、3Dモデルやコード(HTML/CSS)を最終的な画像や画面表示に変換する処理です。ゲームや映画では、光・影・質感を計算してリアルな映像を生成します。2026年ではGPUによるリアルタイムレンダリング(例:Unreal Engine 5)が標準です。 |
| アンチエイリアシング | アンチエイリアシングは、画像のギザギザ(ジャギー)を滑らかにする技術です。斜め線や曲線の境界をぼかす(例:2×2ピクセルで平均化)ことで、人間の目には自然に見えます。ゲームでは「MSAA」「FXAA」、グラフィックソフトでは自動適用が普通です。 |
| ディザリング | ディザリングは、少ない色数で多くの色を表現するため、パターンやノイズを加えて「見かけの色数を増やす」技術です。例:256色GIFで写真を表示するとき、細かい点の配置で中間色を再現します。プリンタや古いディスプレイで広く使われてきました。 |
| シェーディング | シェーディングは、3Dオブジェクトの表面に光と影を計算して、立体感や質感を表現する技術です。代表的アルゴリズムに「フラットシェーディング」(面ごと均一)、「Gouraudシェーディング」(頂点間補間)、「Phongシェーディング」(ピクセル単位で滑らか)があります。現代のGPUはリアルタイムPhong相当を実現しています。 |
| テクスチャマッピング | テクスチャマッピングは、3Dモデルの表面に2D画像(テクスチャ)を貼り付けて、リアルな見た目にする技術です。例:木目画像を箱に貼れば木箱に見える。UV座標を使って、どの部分にどの画像を貼るかを指定します。ゲームやVRの基本技術です。 |
| ブレンディング | ブレンディングは、複数の画像や色を重ね合わせて新しい色を作る処理で、「透明度(アルファ値)」を使って混ぜます。例:半透明のウィンドウを背景に重ねる。式で表すと C = α·C₁ + (1−α)·C₂(Cは結果色、αは透明度)。UIやエフェクトに不可欠です。 |
| モーフィング | モーフィングは、ある形状(例:顔A)を時間とともに別の形状(顔B)に滑らかに変形させるアニメーション技術です。頂点の対応を取って中間フレームを補間します。1990年代のミュージックビデオで有名になり、現在はARフィルターやAI生成動画で進化しています。 |
| メタボール | メタボールは、球体のような「影響力を持つ点」を組み合わせて、有機的で液体のような形状を生成するモデリング手法です。近づくと融合し、離すと分離する特性を持ち、特殊効果や医療画像処理で使われます。2026年ではリアルタイムGPU計算でインタラクティブに操作可能です。 |
| サーフェスモデル | サーフェスモデルは、物体を「表面(サーフェス)」だけで表現する3Dモデルで、内部は空(中身なし)です。ポリゴンメッシュやNURBS曲面が該当し、ゲームやCADで主流です。内部構造まで表現する「ソリッドモデル」と対比され、軽量で描画が高速なのが利点です。 |
みんなで使おう!Ankiアプリで暗記しよう
Ankiアプリの記事と、現時点までに作成されたAnkiアプリのデータへのリンクを掲載しております。どうぞご利用ください。
本日分までのAnkiアプリデータはこちら。
firestorageダウンロード
パスワードは「shirakawa」です。お間違えのないように。
参考図書
応用情報技術者の資格勉強をするにあたり、科目A対策として以下の教科書を使用しています。できれば、こちらもAnkiアプリと併用しながらご利用いただければと思います。暗記した内容とのつながりが理解できるようになるのでオススメですよ。
合わせて読みたい
最後に
いかがでしたでしょうか?
Qwennのプロンプトを微調整しながら、ほぼほぼこれで行けるというところまで仕上がりました。
1章につき3日で作成の予定を組んでいたのですが、2日かからず1章をこなせそうです。
というわけで、作成したAnki用データをAnkiアプリを使って活用していただければと思います。
すべての章を書き終えた後に、調整したプロンプトを用いて第1章と第2章の説明文の書き直しも考えております。
まだまだ応用情報技術者の勉強は始まったばかりです。皆さん一緒に頑張りましょう!

白川秋
ではでは、参考までに






コメント