<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FIFO LRU LFU | 基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</title>
	<atom:link href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/tag/fifo-lru-lfu/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi</link>
	<description>基本情報技術者試験を学習する人のためにつくられた専門メディア。250本以上の記事を掲載し、勉強方法や各分野のポイント、過去問解説など、試験に役立つ情報を発信。試験対策書籍を執筆する著者が、はじめて学ぶ人でもわかりやすく解説します。（2023年度からの新制度に対応済み）</description>
	<lastBuildDate>Wed, 17 Jun 2026 00:43:28 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.29</generator>
	<item>
		<title>IT初心者のための基本情報ではじめる OS 入門 ～コンピュータシステム分野 2</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/learn_tech/os4beginners/</link>
		<pubDate>Tue, 13 Sep 2022 02:26:41 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[FIFO LRU LFU]]></category>
		<category><![CDATA[ラウンドロビン方式]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[科目 A]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/?post_type=learn_tech&#038;p=7215</guid>
		<description><![CDATA[<p>この連載は、これから IT の勉強をはじめる人を対象としたものです。 基本情報技術者試験の出題分野ごとに、仕組み、主要な用語、および過去問題を紹介します。 受験対策としてだけでなく、 IT の基礎知識を幅広く得るために、 [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/learn_tech/os4beginners/">IT初心者のための基本情報ではじめる OS 入門 ～コンピュータシステム分野 2</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>この連載は、これから IT の勉強をはじめる人を対象としたものです。 基本情報技術者試験の出題分野ごとに、仕組み、主要な用語、および過去問題を紹介します。 受験対策としてだけでなく、 IT の基礎知識を幅広く得るために、ぜひお読みください。</p>
<p>今回は、<span class="bold">コンピュータシステム</span> 分野 その 2 として <span class="bold">OS</span> を取り上げます。</p>
<style>dl.inline dd{margin-left:2em;}.card-panel{box-shadow:0 4px 16px rgba(0,0,0,0.02),0 20px 46px rgba(0,0,0,0.08);}ol>li{margin-left:2em;}@media screen and (max-width:600px){ol{padding-left:0}dl:not(.inline)>dd{margin-left:1em}}</style>
<h2>OS が必要な理由</h2>
<p>「コンピュータ、ソフトなければ、ただの箱」という川柳があります。 これは、コンピュータを利用するには、ハードウェア（コンピュータ本体）とソフトウェア（プログラム）の両方が必要であることを示しています。 両者の関係は、ハードウェアの上にソフトウェアが乗っている、というイメージです（図 1 ）。</p>
<figure><figcaption>図 1　ハードウェアとソフトウェアの関係</figcaption><img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2022/09/hardware_software.jpg" loading="lazy"><br />
</figure>
<p>初期のコンピュータの時代には、目的に応じてその都度、プログラムのすべての機能をゼロから作っていました。 やがて、いくつかのプログラムを作っているうちに、キーボード入力やディスプレイ出力など、多くのプログラムに共通した部分があることがわかりました。 このような機能をまとめたものとして、初期の OS が誕生しました。</p>
<p>OS の機能を利用すれば、新たなプログラムを効率的に作れます。 OS の機能を利用して動作するプログラムのことを、アプリ（アプリケーションプログラム）と呼びます。 これらの関係は、ハードウェアの上に OS が乗っていて、 OS の上にアプリが乗っているという、イメージです（図 2 ）。</p>
<figure><figcaption>図 2　ハードウェア、 OS 、アプリの関係</figcaption><img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2022/09/hw_os_app.jpg" loading="lazy"><br />
</figure>
<p>OS は、 Operating System の略で、直訳すると「操作システム」という意味ですが、<span class="bold">「基本プログラム」</span>と呼ばれています。 アプリの application は、「応用」という意味です。 <span class="u">アプリは、 OS の機能を応用して動作</span>するのです。 OS がアプリに提供する機能のことを<span class="u">システムコール</span>と呼びます。 システムコールを利用してアプリを効率的に作れるようにすることが、 OS が必要な主な理由です。</p>
<h2>OS の機能</h2>
<p>その後、 OS は、どんどん進化していきました。 現在の OS の機能は、システムコールを提供するだけではありません。 ハードウェアとアプリの間に位置する OS は、コンピュータの管理者的な存在になっています。 <span class="u">OS が、ハードウェアとアプリを管理する</span>のです。</p>
<figure><figcaption>図 3　OS はコンピュータの管理者的な存在である</figcaption><figcaption><i class="material-icons indigo-text">looks_one</i>　タスクマネージャでハードウェアの稼働状況を確認する</figcaption><img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2022/09/monitoring_hw.jpg" loading="lazy"><br />
</figure>
<p>図 3 <i class="material-icons indigo-text">looks_one</i> は、 Windows（ Windows は OS の一種です）のタスクマネージャというツールで、ハードウェアの稼働状況を確認したところです。 CPU 、メモリ、ディスク、 GPU が、どの程度利用されているかがわかります。 このようなことができるのは、 OS がハードウェアを管理しているからです。</p>
<figure><figcaption><i class="material-icons indigo-text">looks_two</i>　タスクマネージャでアプリの稼働状況を確認する</figcaption><img class="materialboxed z-depth-5 responsive-width" src="../../wp-content/uploads/2022/09/monitoring_app.jpg" loading="lazy"><br />
</figure>
<p>図 3 <i class="material-icons indigo-text">looks_two</i> は、タスクマネージャで、アプリの稼働状況を確認したところです。 PowerPoint や Word などのアプリが動作していて、それらがハードウェアをどの程度利用しているかがわかります。 このようなことができるのは、 OS がアプリを管理しているからです。</p>
<h2>OS の主要な用語</h2>
<p>基本情報技術者試験のシラバス（情報処理技術者試験における知識・技能の細目）に示された OS の分野の項目を見ると、現在の OS の具体的な機能がわかります。</p>
<ul class="background c-round bold">
<li>タスク管理</li>
<li>入出力管理</li>
<li>記憶管理</li>
<li>運用の管理</li>
<li>ユーザー管理</li>
<li>障害管理</li>
</ul>
<p>などの機能があります。 「 ○○ 管理」という言葉からわかるように、 OS は、コンピュータの管理者的な存在なのです。</p>
<p>以下は、それぞれの項目における主要な用語です。 <span class="red-text">赤色で示した用語</span>は、後で紹介する過去問題のテーマになっています。</p>
<dl class="background c-round">
<dt class="chip">タスク管理</dt>
<dd><span class="red-text">タスクスケジューリング</span>、プリエンプティブ方式、ノンプリエンプティブ方式、タイムスライス方式、<span class="red-text">ラウンドロビン方式</span></dd>
<dt class="chip">入出力管理</dt>
<dd>チャネル、入出力割込み</dd>
<dt class="chip">記憶管理</dt>
<dd>実記憶、仮想記憶、セグメント方式、セグメントページング方式、 <span class="red-text">FIFO 、LRU 、LFU </span>、ページフォールト、スラッシング</dd>
<dt class="chip">運用の管理</dt>
<dd>プロファイル、ユーザーアカウント、システム利用権、<span class="red-text">ファイルアクセス権</span>、端末利用権</dd>
<dt class="chip">ユーザー管理</dt>
<dd>スーパーユーザー、 root 、 Administrator 、ゲスト、管理者権限</dd>
<dt class="chip">障害管理</dt>
<dd>ハードウェア障害、ソフトウェア障害、再構成、リスタート</dd>
</dl>
<h2>OS の過去問題</h2>
<p>OS の分野の過去問題を 3 問ほど紹介しましょう。</p>
<h3>ラウンドロビン方式に関する問題</h3>
<p>最初は、<span class="bold">ラウンドロビン方式</span>に関する問題です。</p>
<p>OS には、同時に複数のプログラムを実行する機能があります。 ただし、まったく同時に複数のプログラムを実行するのではなく、<span class="u">短い時間でプログラムを切り替えて実行している</span>のです。 切り替えの対象となるプログラムをタスクと呼び、 OS がタスクの実行順序を管理することを<span class="bold">タスクスケジューリング</span>と呼びます。</p>
<p>ラウンドロビン方式は、タスクスケジューリングにおける方式のひとつです。</p>
<div class="card-panel mag_h40">
<span class="bold">問 18</span>　平成 30 年度 秋期</p>
<p>スケジューリングに関する記述のうち，ラウンドロビン方式の説明として，適切なものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>各タスクに，均等に CPU 時間を割り当てて実行させる方式である。</dd>
<dt>イ</dt>
<dd>各タスクに，ターンアラウンドタイムに比例した CPU 時間を割り当てて実行させる方式である。</dd>
<dt>ウ</dt>
<dd>各タスクの実行イベント発生に応じて，リアルタイムに実行させる方式である。</dd>
<dt>エ</dt>
<dd>各タスクを，優先度の高い順に実行させる方式である。</dd>
</dl>
</div>
<p>ラウンドロビン（ round robin ）とは、「署名者の順序を隠すために円形に署名した嘆願書」のことです。 ラウンドロビン方式は、<span class="u">すべてのタスクを均等な順序で実行</span>します。 タスクを実行するとは、タスクに CPU を使用させることです。</p>
<p>したがって、選択肢アの</p>
<blockquote>
<p class="grey-text">「各タスクに、均等に CPU 時間を割り当てて実行させる方式である」</p>
</blockquote>
<p>が正解です。</p>
<h3>仮想メモリに関する問題</h3>
<p>次は、<span class="bold">仮想メモリ</span>に関する問題です。</p>
<p>OS には、<span class="u">メモリの容量不足を補うために、ハードディスクを仮想的にメモリとして使う</span>機能があり、これを<span class="bold">仮想記憶</span>と呼びます。 OS は、アプリが使用するメモリが不足したときに、メモリの中で今後使われる可能性が低いページ（プログラムの内容をいくつかに切り分けた部分）をハードディスクに一時的に追い出し、そのページ分の領域を開放します。</p>
<p>今後使われる可能性が低いページを判断する方法には、 <span class="bold">FIFO 、LRU 、LFU</span> があります。</p>
<div class="card-panel mag_h40">
<span class="bold">問 17</span>　平成 27 年度 秋期</p>
<p>仮想記憶管理のページ入替え方式のうち，最後に使われてからの経過時間が最も長いページを入れ替えるものはどれか。</p>
<p>ア　FIFO　　イ　LFU　　ウ　LIFO　　<br class="hide-on-med-and-up">エ　LRU
</div>
<dl class="background c-round">
<dt class="bold">FIFO</dt>
<dd>First In First Out （最初に入る、最初に出る）の略語です。<br />最初にメモリに入れた（ロードした）古いページは、今後使われる可能性が低いと判断するのです。</dd>
<dt class="bold">LRU</dt>
<dd>Least Recently Used （最も～でない、最近、使われる）の略語です。<br />最後に使ってから最も時間が経過しているページは、今後使われる可能性が低いと判断するのです。</dd>
<dt class="bold">LFU</dt>
<dd>Least Frequently Used （最も～でない、頻繁に、使われる）の略語です。<br />使われた回数が少ないページは、今後使われる可能性が低いと判断するのです。</dd>
</dl>
<p>この問題では、</p>
<blockquote>
<p class="grey-text">「最後に使われてからの経過時間が最も長いページを入れ替える」</p>
</blockquote>
<p>なので、選択肢エの LRU が正解です。</p>
<h3>ファイルアクセス権に関する問題</h3>
<p>最後は、ファイルアクセス権に関する問題です。</p>
<p>ディスク装置に格納するデータをファイルとして読み書きでき、ディスク装置の内部を階層的なディレクトリ構造で取り扱えるのは、 OS の機能です。 さらに OS は、ファイルにアクセスの権限を設定することができます。</p>
<p>この問題では、ファイルに読取り、書込み、実行の権限を設定できる OS があるとしています。</p>
<div class="card-panel mag_h40">
<span class="bold">問 44</span>　平成 27 年度 春期</p>
<p>ファイルの属性情報として，ファイルに対する読取り，書込み，実行の権限を独立に設定できる OS がある。 この 3 種類の権限は，それぞれに 1 ビットを使って許可，不許可を設定する。 この 3 ビットを 8 進数表現 0 ～ 7 の数字で設定するとき，次の試行結果から考えて，適切なものはどれか。</p>
<ol>
<p class="chip mag_h05">試行結果</p>
<li>0 を設定したら，読取り，書込み，実行ができなくなってしまった。</li>
<li>3 を設定したら，読取りと書込みはできたが，実行ができなかった。</li>
<li>7 を設定したら，読取り，書込み，実行ができるようになった。</li>
</ol>
<dl class="inline">
<dt>ア</dt>
<dd>2 を設定すると，読取りと実行ができる。</dd>
<dt>イ</dt>
<dd>4 を設定すると，実行だけができる。</dd>
<dt>ウ</dt>
<dd>5 を設定すると，書込みだけができる。</dd>
<dt>エ</dt>
<dd>6 を設定すると，読取りと書込みができる。</dd>
</dl>
</div>
<p>ファイルのアクセス件は、 3 ビットで指定します。 個々のビットが、読取り、書込み、実行のいずれかを表しているのです。 この問題では、どのビットが何の意味を持っているかを 1. 、 2. 、 3. の試行結果から判断します。</p>
<p><span class="u">2 進数の 3 ビットの 000 ～ 111 は、 8 進数の 1 桁の 0 ～ 7 に相当</span>します。 試行結果と選択肢では、 8 進数が使われています。</p>
<dl class="background c-round">
<dt>試行結果 1.</dt>
<dd>8 進数の 0 （ 2 進数の 000 ）を設定したら、読取り、書込み、実行ができなくなったのですから、 2 進数の 0 が禁止であり、 1 が許可を意味していることがわかります。</dd>
<dt>試行結果 2.</dt>
<dd>8 進数の 3 （ 2 進数の 011 ）を設定したら、読取りと書込みができて、実行ができなかったので、 3 ビットの 2 進数の最上位桁で実行の設定をすることがわかります。</dd>
<dt>試行結果 3.</dt>
<dd>8 進数の 7 （ 2 進数の 111 ）を設定したら、読取り、書込み、実行ができたのですから、これは既に試行結果の 1. でわかっているのですが、 2 進数の 0 が禁止であり、 1 が許可を意味していることがわかります。</dd>
</dl>
<p>何とも中途半端ですが、これで試行は終わりです。</p>
<p>わかったことは、<br />
「 2 進数の 0 が禁止、 1 が許可」<br />
「 2 進数の最上位桁が実行の設定」<br />
だけです。</p>
<p>選択肢を見てみましょう。</p>
<dl>
<dt>選択肢 ア</p>
<dd>8 進数の 2 （ 2 進数で 010 ）を設定すると、読取りまたは書込みのいずれかができます。</dd>
<dt>選択肢 イ</p>
<dd>8 進数の 4 （ 2 進数で 100 ）を設定すると、実行だけができます。</dd>
<dt>選択肢 ウ</p>
<dd>8 進数の 5 （ 2 進数で 101 ）を設定すると、実行と、読取りまたは書込みのいずれかができます。</dd>
<dt>選択肢 エ</p>
<dd>8 進数の 6 （ 2 進数の 110 ）を設定すると、実行と、読取りまたは書込みのいずれかができます。</dd>
</dt>
<p>したがって、選択肢イが正解です。</p>
<div class="divider mag_tp50 mag_bt30"></div>
<p>今回は「コンピュータシステム」その 2 として「 OS 」が必要な理由、機能、主要な用語、および過去問題を紹介しました。</p>
<p>次回は、「データベース」その 1 として「データベース全般」の分野を取り上げます。</p>
<p>それでは、またお会いしましょう！</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/learn_tech/os4beginners/">IT初心者のための基本情報ではじめる OS 入門 ～コンピュータシステム分野 2</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>基本情報でわかる FIFO LFU LRU 「略語の意味がわかればわかる」</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/mastering_tech/fifo_lfu_lru/</link>
		<pubDate>Thu, 15 Oct 2020 11:09:05 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[FIFO LRU LFU]]></category>
		<category><![CDATA[午前問題と午後問題の違い]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=mastering_tech&#038;p=4762</guid>
		<description><![CDATA[<p>この連載では、基本情報技術者試験によく出題されるテクノロジー関連の用語を、午前問題と午後問題のセットを使って解説します。 午前問題で用語の意味や概念を知り、午後問題で技術の活用方法を知ってください。それによって、単なる丸 [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/mastering_tech/fifo_lfu_lru/">基本情報でわかる FIFO LFU LRU 「略語の意味がわかればわかる」</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>この連載では、基本情報技術者試験によく出題されるテクノロジー関連の用語を、午前問題と午後問題のセットを使って解説します。</p>
<p>午前問題で用語の意味や概念を知り、午後問題で技術の活用方法を知ってください。それによって、単なる丸暗記では得られない明確さで、用語を理解できるようになります。</p>
<p>今回のテーマは、 <span class="bold">仮想メモリのページングアルゴリズム FIFO / LFU / LRU</span> です。</p>
<style>.comment{background:#f4ff81;position:absolute;padding:.25em;font-size:.7em;}dt{display:inline-block;}@media screen and(max-width:600px){dd{margin-left:1.5em;}}pre{font-family:'consolas','CourierNew',"HCoGothamSSm",Gotham,"ヒラギノ角ゴProW3","HiraginoKakuGothicProN","HiraginoSans","BIZUDPGothic",Meiryo,sans-serif!important;background:#fafafa;font-size:1em;line-height:1.8;padding:1em 2em}</style>
<h2>仮想メモリのページングアルゴリズム FIFO / LFU / LRU とは？</h2>
<p>はじめに、仮想メモリのページングアルゴリズムとは何かを説明しましょう。</p>
<p>現在の一般的なコンピュータには、大容量のメモリが搭載されていますが、同時に複数のプログラムを起動したり、巨大なプログラムを実行したりすると、メモリが足りなくなってしまうことがあります。</p>
<p>その場合に備えて、コンピュータの基本ソフトウェアである OS には、<span class="u">メモリの中で今後使われる可能性が少ないページを、ハードディスクに一時的に退避させることで、メモリを空けるという</span>という機能があり、これを<span class="bold">仮想メモリ</span>と呼びます。</p>
<p>ハードディスクを、仮想的にメモリとして使うからです。<span class="bold">ページ</span>とは、プログラム全体を固定サイズに区切った部分・部分のことであり、 Windows では 1 ページのサイズが 4K バイトです。</p>
<figure><figcaption class="grey-text center mag_h10">図　プログラム全体を固定サイズに区切った部分・部分をページと呼ぶ</figcaption><img class="materialboxed z-depth-5 responsive-width mag_h30 pad_10" src="../../wp-content/uploads/2020/10/figure_page.jpg" loading="lazy"><br />
</figure>
<p>仮想メモリのページングアルゴリズムとは、<span class="u">メモリの中で今後使われる可能性が少ないページを決める方法</span>のことであり、</p>
<ul class="bold background c-round">
<li>FIFO</li>
<li>LFU</li>
<li>LRU</li>
</ul>
<p>の 3 つがあります。</p>
<p>仮想メモリであるハードディスクから、実メモリである主記憶装置（これまでメモリと呼んでいたもの）にページを読み込むことを <span class="bold">ページイン</span> と呼び、実メモリから仮想メモリにページを退避させることを <span class="bold">ページアウト</span> と呼びます。</p>
<dl class="background c-round">
<dt>FIFO では</dt>
<dd>「最初にページインしたページ」</dd>
<dt>LFU では</dt>
<dd>「利用された回数が最も少ないページ」</dd>
<dt>LRU では</dt>
<dd>「最後に利用してから最も時間が経過しているページ」</dd>
</dl>
<p>それぞれ今後使われる可能性が少ないページとして、それを仮想メモリに退避させます。</p>
<figure><figcaption class="grey-text center">図　仮想メモリのページングアルゴリズムで、ページアウトするページを決める</figcaption><img class="materialboxed z-depth-5 responsive-width mag_h30" src="../../wp-content/uploads/2020/10/pagein_out.gif" loading="lazy"><br />
</figure>
<h2>FIFO、LFU、LRUの例</h2>
<p>FIFO, LFU, LRU の例を示しましょう。</p>
<p>ハードディスクの中に A, B, C, D という 4 つのページから構成されたプログラムがあり、それらを 3 つのページを持つ実メモリで実行するとします。</p>
<p>プログラムの内容が、</p>
<p class="post-title">A<i class="material-icons mag_w05">arrow_forward</i>B<i class="material-icons mag_w05">arrow_forward</i>B<i class="material-icons mag_w05">arrow_forward</i>C<i class="material-icons mag_w05">arrow_forward</i>A</p>
<p>という順に利用されたとすれば、この時点でメインメモリの 3 つのページは［ A ］［ B ］［ C ］で満杯になっています。</p>
<p>次に、 D を利用したい場合には、今後使われる可能性が少ないページを決めて、それを仮想メモリに退避させ、実メモリを空ける必要があります。退避させるページは、採用したページングアルゴリズムによって、以下のように異なります。</p>
<dl class="background c-round">
<dt><span class="u">ページングアルゴリズムに FIFO を採用した場合</span></dt>
<dd>A → B → B → C → A で最初にページインしたページは A なので、 A を仮想メモリに退避させます。</dd>
<dt><span class="u">ページングアルゴリズムに LFU を採用した場合</span></dt>
<dd>A → B → B → C → A において、 A は 2 回、 B は 2 回、 C は 1 回使われていて、利用された回数が最も少ないページは C なので、 C を仮想メモリに退避させます。</dd>
<dt><span class="u">ページングアルゴリズムに LRU を採用した場合</span></dt>
<dd>A → B → B → C → A で最後に利用してから最も時間が経過しているページは B なので、 B を仮想メモリに退避させます。</dd>
</dl>
<figure><figcaption class="grey-text">図　採用したページングアルゴリズムによって退避させるページが異なる</figcaption><p class="post-title pad_h30" style="position: relative; font-size: 1.3em;">A<i class="material-icons mag_w05">arrow_forward</i>B<i class="material-icons mag_w05">arrow_forward</i>B<i class="material-icons mag_w05">arrow_forward</i>C<i class="material-icons mag_w05">arrow_forward</i>A<span class="comment" style="top: 0em; left: 0em;">FIFO では A を退避</span><span class="comment" style="bottom: 0; left: 6em;">LRU では B を退避</span><span class="comment" style="top: 0em; left: 10em;">LFU では C を退避</span></p>
</figure>
<h2>どれがFIFO、LFU、LRUなのかを覚えるコツ</h2>
<p>これで、「最初にページインしたページ」「利用された回数が最も少ないページ」「最後に利用してから最も時間が経過しているページ」の意味がわかったと思います。</p>
<p>ただし、どれが FIFO, LFU, LRU に該当するのかを覚えなければ問題を解けません。このような英語の略語を覚えるコツは、<span class="u">略語の意味を調べて、それを日本語に直訳することです。</span></p>
<ul class="background c-round">
<dt class="bold">FIFO</dt>
<dd>First In First Out の略語で、直訳すると「最初に入れたものを、最初に出す」です。これは、「最初にページインしたページ」に該当します。</dd>
<dt class="bold">LFU</dt>
<dd>Least Frequently Used の略語で、直訳すると「最もそうでない（ Least は、 Little の最上級です）、頻繁に、使われる」です。これは、「最も頻繁でない」が「最も回数が少ない」と同じなので、「利用された回数が最も少ないページ」に該当します。</dd>
<dt class="bold">LRU</dt>
<dd>Least Recently Used の略語で、直訳すると「最もそうでない、最近、使われる」です。これは、「最も、最近ではない」が、「最後に利用してから最も時間が経過しているページ」に該当します。</dd>
</ul>
<p>いかがでしょう？ FIFO, LFU, LRU という略語の意味を調べて、それを日本語に直訳すれば、それぞれが、どういうページングアルゴリズムに該当するかを覚えられたでしょう。</p>
<h2>仮想メモリのページングアルゴリズム FIFO、LFU、LRU に関する午前問題</h2>
<p>それでは、仮想メモリのページングアルゴリズムに関する午前問題を解いてみましょう。</p>
<div class="card-panel mag_h30">
問 17　平成 27 年度 秋期 午前<br />
仮想記憶管理のページ入替え方式のうち，最後に使われてからの経過時間が最も長いページを入れ替えるものはどれか。</p>
<p>ア　FIFO　　イ　LFU　　<br class="hide-on-med-and-up">ウ　LIFO　　エ　LRU
</div>
<p>「最後に使われてからの経過時間が最も長い」は、「最も、最近ではない」であり、「最近」が Recently 、「最もそうでない」が Least なので、これは LRU = Least Recently Used です。正解は、選択肢エです。</p>
<p>午前問題は、選択肢が 4 つ必要なので、ページングアルゴリズムとは関係のない LIFO という略語が選択肢ウにあります。これは、気にしないでください。</p>
<p><span class="chip">解答</span>　エ</p>
<h2>仮想メモリのページングアルゴリズム  FIFO / LFU / LRU に関する午後問題</h2>
<p>今度は、仮想メモリのページングアルゴリズムに関する午後問題（一部抜粋）を解いてみましょう。以下は、問題の冒頭部分です。</p>
<p>このように、長々とした説明文があるのが午後問題の特徴ですが、これを見て怖気づいてはいけません。FIFO, LFU, LRU の意味がわかれば、ほとんどの設問に正解できるからです。</p>
<p>「ページフォールト」という新たな用語が登場しますが、これは、実行しようとしたページが実メモリに存在しないことです。ページフォールトとなったときには、そのシステムで採用されているページングアルゴリズムを使って、今後使われる可能性が少ないページを決め、そのページをハードディスクに退避させます。</p>
<div class="card-panel mag_h30">
問 2　平成 25 年度 春期 午後<br />
仮想記憶方式に関する次の記述を読んで，設問 1 ~ 3 に答えよ。</p>
<p>　OS の主記憶管理において，仮想記憶方式は， OS が提供する論理的な記憶領域（以下，仮想記憶という）上のアドレスと主記憶上の物理的なアドレスを対応付けて管理する方式である。仮想記憶方式では，補助記憶装置を仮想記憶として用いるので，仮想記憶上に主記憶の容量を超えるプログラムを格納することができる。仮想記憶上のアドレス空間を仮想アドレス空間，主記憶上のアドレス空間を物理アドレス空間と呼び，それぞれの空間の記憶場所を仮想アドレスと物理アドレスで指定する。</p>
<p>　仮想記依方式の一つに，ページング方式がある。ページング方式は，仮想アドレス空間と物理アドレス空間のそれぞれをページと呼ぶ固定長の領域に分割しておき，ページ単位でアドレス空間を管理する。ページング方式による仮想アドレス空港のページと物理アドレス空間のページの対応例を，図1に示す。図1では，補助記憶装置に格納されているプログラム A は，a1, a2, a3, a4, a5 に分割されて，仮想ページ番号 1 ~ 5 のページに格納されている。</p>
<figure>
<img class="materialboxed z-depth-5 responsive-width mag_h30" src="../../wp-content/uploads/2020/10/pm_q2_figure.jpg" loading="lazy"><figcaption class="grey-text center">図 1　仮想アドレス空間のページと物理アドレス空間のページの対応例</figcaption></figure>
</div>
<p>以下は、設問 1 です。ちょっと言葉が悪いですが、「冒頭で、あれだけ小難しそうな説明をしておきながら、こんな簡単な設問なのか！」と言いたくなるような内容でしょう。</p>
<div class="card-panel mag_h30">
設問 1　次の記述中の<span class="blank"></span>に入れる正しい答えを,解答群の中から選べ。</p>
<p>　プログラムの実行過程で存在ビットを調べ，プログラムの実行に必要なページが<span class="blank">a</span>に存在していないときには，ページフォールトという割込みが発生する。ページフォールトが発生すると，ページアウトやページインなどのページ置換え処理が実行される。ページ置換え処理のアルゴリズムには，ページインしてから最も時間が経過しているページを置換え対象とする FIFO アルゴリズムや，参照されていない時間が最も長いページを置換え対象とする <span class="blank">b</span>アルゴリズムなどがある。</p>
<p>解答群<br />
ア　 LFU　　<br class="hide-on-med-and-up">イ　LIFO　　<br class="hide-on-med-and-up">ウ　LRU<br />
エ　仮想アドレス空間　　<br class="hide-on-med-and-up">オ　物理アドレス空間
</div>
<p>ページフォールトが発生するのは、実行しようとしたページが実メモリに存在しないときです。解答群を見ると、「実メモリ」に該当するのは、選択肢オの「物理アドレス空間」です。</p>
<p>したがって、空欄 a の正解は、選択肢オです。選択肢エの「仮想アドレス空間」は、「仮想メモリ」に該当します。</p>
<p>&nbsp;</p>
<p>空欄 b は、「参照されていない時間が最も長いページを置き換え対象とする」のですから、これは「最後に使われてからの経過時間が最も長い」と同じであり、「最もそうでない、最近、使われる」の LRU ＝ Least Recently Used です。</p>
<p>したがって、空欄 b の正解は、選択肢ウの「 LRU 」です。</p>
<h2>ページングアルゴリズムを手作業でコツコツやる</h2>
<p>全問掲載すると長くなりすぎるので、設問 2 を飛ばして、設問 3 を見てみましょう。</p>
<p>さすが、 1 問あたりの解答時間が長い午後問題だけあって、手間がかかることをやらせます。 FIFO のページングアルゴリズムを実際にやってみよ、という内容です。</p>
<p>それも、物理ページ（実メモリ）が 3 個と 4 個、ぞれぞれの場合です。この手の問題は、手作業でコツコツやるしかありません。</p>
<p>&nbsp;</p>
<p>「なぜ、同じことを 2 回もやらせるのだろう？」と疑問に思うでしょう。</p>
<p>あらかじめ種明かしをしてしまうと、<span class="u">ページフォールトの回数は、物理ページの個数が多い方が少ないと思うかもしれませんが、物理ページの個数が多い方が多くなる場合もある</span>のです。それを知ってほしい、という教育的な意図があって、同じことを 2 回もやらせるのでしょう（たぶん）。</p>
<p>後でわかりますが、この問題では、物理ページが 3 個より 4 個の方がページフォールトの回数が多くなります。</p>
<div class="card-panel mag_h30">
設問 3　次の記述中の<span class="blank"></span>に入れる正しい答えを，解答群の中から選べ。</p>
<p>ページ置換えアルゴリズムとして FIFO アルゴリズムを採用する。プログラムの実行過程で仮想ページが次の順で参照されるとき，物理ページの個数が 3 の場合のページフォールトの回数は， <span class="blank">c</span>回である。そして，物理ページの個数を 4 に増やした場合のページフォールトの回数は<span class="blank">d</span>回である。ここで，プログラムの実行開始時点では，物理アドレス空間にはどのページも存在していないものとする。</p>
<p>【仮想ページの参照順を示す仮想ページ番号の並び】</p>
<p class="post-title">1 → 4 → 3 → 2 → 1 → 4 → 5 → 1 → 4 → 3 → 2 → 5 → 1</p>
<p>解答群<br />
ア　8　　イ　9　　ウ　10　　<br class="hide-on-med-and-up">エ　11　　オ　12
</div>
<p>それでは、がんばって手作業でページングアルゴリズムをやってみましょう。</p>
<p>ここでは、<br />
参照するページの順序を縦に書き、<br />
ページフォールトの発生を fault の頭文字の F で示し、<br />
参照後の物理ページの内容を ［ と ］ で囲んで示し、<br />
その時点で退避するページの候補を<i class="material-icons red-text">star</i>で示します。</p>
<p>物理ページが 3 個のときは、以下のように 10 回のページフォールトが発生します。したがって、空欄 c の正解は、選択肢ウです。</p>
<figure><figcaption class="grey-text center">図　物理ページが 3 個のときは 10 回のページフォールトが発生する</figcaption><pre>
参照するページ  参照後の物理ページの内容
1 F	      ［<span class="red-text">★</span>1］［   ］［   ］
↓
4 F	      ［<span class="red-text">★</span>1］［ 4 ］［   ］
↓
3 F	      ［<span class="red-text">★</span>1］［ 4 ］［ 3 ］
↓
2 F	      ［ 2 ］［<span class="red-text">★</span>4］［ 3 ］
↓
1 F	      ［ 2 ］［ 1 ］［<span class="red-text">★</span>3］
↓
4 F	      ［<span class="red-text">★</span>2］［ 1 ］［ 4 ］
↓
5 F	      ［ 5 ］［<span class="red-text">★</span>1］［ 4 ］
↓
1	      ［ 5 ］［<span class="red-text">★</span>1］［ 4 ］
↓
4	      ［ 5 ］［<span class="red-text">★</span>1］［ 4 ］
↓
3 F	      ［ 5 ］［ 3 ］［<span class="red-text">★</span>4］
↓
2 F	      ［<span class="red-text">★</span>5］［ 3 ］［ 2 ］
↓
5	      ［<span class="red-text">★</span>5］［ 3 ］［ 2 ］
↓
1 F	      ［ 1 ］［<span class="red-text">★</span>3］［ 2 ］
</pre>
</figure>
<p>物理ページが 4 個のときは、以下のように 11 回のページフォールトが発生します。</p>
<figure><figcaption class="grey-text center">図　物理ページが 4 個のときは 11 回のページフォールトが発生する</figcaption><pre>
参照するページ  参照後の物理ページの内容
1 F         ［<span class="red-text">★</span>1］［   ］［   ］［   ］
↓
4 F         ［<span class="red-text">★</span>1］［ 4 ］［   ］［   ］
↓
3 F         ［<span class="red-text">★</span>1］［ 4 ］［ 3 ］［   ］
↓
2 F         ［<span class="red-text">★</span>1］［ 4 ］［ 3 ］［ 2 ］
↓
1           ［<span class="red-text">★</span>1］［ 4 ］［ 3 ］［ 2 ］
↓
4           ［<span class="red-text">★</span>1］［ 4 ］［ 3 ］［ 2 ］
↓
5 F         ［ 5 ］［<span class="red-text">★</span>4］［ 3 ］［ 2 ］
↓
1 F         ［ 5 ］［ 1 ］［<span class="red-text">★</span>3］［ 2 ］
↓
4 F         ［ 5 ］［ 1 ］［ 4 ］［<span class="red-text">★</span>2］
↓
3 F         ［<span class="red-text">★</span>5］［ 1 ］［ 4 ］［ 3 ］
↓
2 F         ［ 2 ］［<span class="red-text">★</span>1］［ 4 ］［ 3 ］
↓
5 F         ［ 2 ］［ 5 ］［<span class="red-text">★</span>4］［ 3 ］
↓
1 F         ［ 2 ］［ 5 ］［ 1 ］［<span class="red-text">★</span>3］
</pre>
</figure>
<p>したがって、空欄 d の正解は、選択肢エです。物理ページが3個のときは 10 回だったので、物理ページが 4 個のときの方が多くなっています。</p>
<p><span class="chip">解答</span>　設問 1　a &#8211; オ、b &#8211; ウ　設問 3　c &#8211; ウ、d &#8211; エ</p>
<div class="divider mag_h60"></div>
<p>いかがでしたか？ FIFO, LFU, LRU という略語の意味がわかれば、仮想メモリのページングアルゴリズムに関する午前問題も午後問題も、すんなり正解できたでしょう。</p>
<p>この連載では、今後も、多くの受験者が苦手としている用語を取り上げて行きます。それでは、またお会いしましょう！</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/mastering_tech/fifo_lfu_lru/">基本情報でわかる FIFO LFU LRU 「略語の意味がわかればわかる」</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説 &#124; 平成24年度 秋期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h24_autumn/</link>
		<pubDate>Wed, 11 Sep 2019 07:58:20 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[2進数]]></category>
		<category><![CDATA[FIFO LRU LFU]]></category>
		<category><![CDATA[アルゴリズム]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=1989</guid>
		<description><![CDATA[<p>ここでは、平成24年度 秋期 基本情報技術者試験の午前試験 の中から「やるべき問題」を5題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとで [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h24_autumn/">「厳選5題」過去問と解説 | 平成24年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2012h24_2/2012h24a_fe_am_qs.pdf">平成24年度 秋期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を5題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>h2 .chip{vertical-align:middle;background:#3f51b5;color:white;margin-right:.75em;}.chip i{font-size:2em!important;}.mag_auto{margin:1.5em auto;}table{font-size:.85em;}.border td{border-left:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12);border-top:1px solid rgba(0,0,0,.12);}.half-width{width:50%;margin:auto;}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>2 の補数表現と算術右シフトをマスターしよう</h2>
<div class="card-panel mag_h30">
<p>問 1　(平成 24 年度 秋期)</p>
<p>8 ビットの 2 進数 11010000 を右に 2 ビット算術シフトしたものを，00010100 から<br />
減じた値はどれか。 ここで，負の数は 2 の補数表現によるものとする。</p>
<p>ア　00001000　　イ　00011111　　<br class="hide-on-med-and-up">ウ　00100000　　エ　11100000
</div>
<div class="chip">解説</div>
<p>この問題を解くには、「 2 の補数表現」および「算術右シフト」の知識が必要になります。</p>
<p>これらを「苦手です！」という人が多いようですが、それならばこそ、この問題を通して苦手を克服してください。 苦手を克服すれば、確実に得点アップにつながるからです。</p>
<p>&nbsp;</p>
<p><span class="bold">2 の補数表現は、マイナス符号を使わずに 0 と 1 だけでマイナスの数を表す仕組み</span> です。</p>
<p>2 の補数表現では、2 進数の最上位桁を「符号ビット」と呼び、符号ビットが 0 ならプラスの数を表し、 1 ならマイナスの数を表します。</p>
<p>問題に示された <span class="bold">1</span>1010000 は、最上位桁が 1 なので、マイナスの数を表しています。</p>
<p>ここまでは、OK でしょうか？</p>
<p>&nbsp;</p>
<p><span class="u">算術右シフトは、右方向つまり下位桁に桁をずらして、割り算を行うこと</span>です。</p>
<p>その際に、桁をずらしても符号ビットが変わらないように、符号ビットを除いた部分をシフトします。 そして、シフトして空いた上位桁には、符号ビットと同じ数を入れます。</p>
<p>ここでは、 11010000 を 2 ビット算術右シフトするのですから、</p>
<p>最上位桁の [ 1 ] 1010000 を除いた<br />
1 [ 1010000 ] の部分を下位桁に 2 桁ずらして<br />
1 [ xx10100 ] とし、<br />
空いた上位桁の<br />
1 [ xx ] 10100 の部分に符号ビットと同じ 1 を入れて、<br />
1 [ 11 ] 10100<br />
にします。</p>
<p>空いた桁に符号ビットと同じ値を入れることで、ちゃんと割り算の結果になるのです。</p>
<p>ここまでは、OK でしょうか？</p>
<p>&nbsp;</p>
<p>もう少しで問題が解けますから、がんばってください。</p>
<p>11010000 を 2 ビット算術右シフトした結果は、<br />
11110100 になりました。 符号ビットが 1 なので、 11110100 は、マイナスの数です。</p>
<p>これを 00010100 から引くのですから、 11110100 を同じ絶対値のままプラスの値にして足せばよいことになります。</p>
<p>マイナスの数を引くのは、同じ絶対値のプラスの数を足すことと同じだからです。</p>
<p>たとえば、 8 -（ -5 ）は、8 + 5 です。</p>
<p>ここまでは、OK でしょうか？</p>
<p>&nbsp;</p>
<p>2 の補数表現では、「反転して 1 を足す」という操作を行うことで、同じ絶対値のまま、プラスの数をマイナスの数に、マイナスの数をプラスの数に変換できます。</p>
<p>11110100 を反転する（ 0 を 1 に、 1 を 0 にする）と、<br />
00001011 です。<br />
00001011 に 1 を足すと、<br />
00001100 です。</p>
<p>したがって、結果は、<br />
00010100 + 00001100 = 00100000<br />
となり、ウが正解です。 いかがでしょう。</p>
<p>何となくわかったなら、実際に、手作業で計算を行ってみてください。 そうすれば、きっと 2 の補数表現と算術右シフトをマスターできるはずです！</p>
<p><span class="chip mag_tp30">解答</span> ウ</p>
<div class="grey lighten-5 pad_20 c-round">
関連タグ<i class="material-icons teal-text text-lighten-2">search</i>: <a href="../../tag/2進数" class="chip teal white-text">2 進数</a>
</div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>探索アルゴリズムの計算量のオーダを覚えよう</h2>
<div class="card-panel mag_h30">
問 3　(平成 24 年度 秋期)</p>
<p>探索方法とその実行時間のオーダの適切な組合せはどれか。 ここで，探索するデータの数を <em>n</em> とし，ハッシュ値が衝突する (同じ値になる) 確率は無視できるほど小さいものとする。 また，実行時間のオーダが <em>n<sup>2</sup></em> であるとは，<em>n</em> 個のデータを処理する時間が <em>cn<sup>2</sup></em> (c は定数) で抑えられることをいう。</p>
<table class="mag_h30 bordered centered responsive-width">
<thead>
<tr>
<th></th>
<th>2 分探索</th>
<th>線形探索</th>
<th>ハッシュ探索</th>
</tr>
</thead>
<tbody>
<tr>
<td>ア</td>
<td><em>log<sub>2</sub>n</em></td>
<td><em>n</em></td>
<td>1</td>
</tr>
<tr>
<td>イ</td>
<td><em>nlog<sub>2</sub>n</em></td>
<td><em>n</em></td>
<td><em>log<sub>2</sub>n</em></td>
</tr>
<tr>
<td>ウ</td>
<td><em>nlog<sub>2</sub>n</em></td>
<td><em>n<sup>2</sup></em></td>
<td>1</td>
</tr>
<tr>
<td>エ</td>
<td><em>n<sup>2</sup></em></td>
<td>1</td>
<td><em>n</em></td>
</tr>
</tbody>
</table>
</div>
<div class="chip">解説</div>
<p>あれこれ難しそうなことが書かれていますが、この問題のテーマは<span class="bold">「計算量のオーダ」</span>です。</p>
<p>「計算量」とは、計算の量、つまり処理回数のことで、同じ目的のアルゴリズムを比較するために使われます。</p>
<p>&nbsp;</p>
<p>基本情報技術者試験では、<span class="bold">「データが n 個ある場合の最大の処理回数を n を使った式で示したもの」を 計算量 </span>とします。</p>
<p>実際の処理回数は、<br />
2n<sup>2</sup> + 5n + 7<br />
のように係数や定数を持つものとなりますが、それらを省略して、さらに最大の次数で示します。</p>
<p>2n<sup>2</sup> + 5n + 7 という処理回数の場合は、係数と定数を省略して<br />
n<sup>2</sup> + n<br />
とし、さらに最大の次数である<br />
n<sup>2</sup><br />
で示します。 これが「オーダ」です。 オーダ（ order ）は、直訳すると「次数」や「規模」という意味です。</p>
<p>&nbsp;</p>
<p>この問題は、<span class="u">探索という同じ目的を持った「二分探索」「線形探索」「ハッシュ探索」という 3 つのアルゴリズムのオーダを知っていますか？</span> という内容です。</p>
<p>線形探索のオーダが、最もわかりやすいので、まず、それでオーダのイメージをつかんでください。</p>
<p><span class="u">線形探索は、「配列の先頭から順に 1 つずつ要素をチェックする」というアルゴリズム</span>です。</p>
<p>要素が 10 個あれば、最大で 10 回の処理を行います。<br />
要素が 100 個あれば、最大で 100 回の処理を行います。<br />
要素が n 個あれば、最大で n 回の処理を行います。</p>
<p>したがって、線形探索のオーダは n です。</p>
<figure><figcaption>図　線形探索のオーダは n である</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/q3_figure.png" loading="lazy"><br />
</figure>
<p>次は、ハッシュ探索です。</p>
<p><span class="u">ハッシュ探索は、「データの値に計算式を適用して格納場所を決める」というアルゴリズム</span>です。</p>
<p>たとえば、「データの値を 10 で割った余りを求める」という計算式を適用すれば、</p>
<p>58 というデータの格納場所は、<br />
58 mod 10 = 8<br />
になります（ mod は、割り算の余りを求める演算子だとします）。</p>
<p>この仕組みから、ハッシュ探索のオーダは、理想的には 1（ 1 回の処理で目的の値が見つかる）です。 データの値がわかれば、 1 回の処理で格納場所がわかるからです。</p>
<p>&nbsp;</p>
<p>ここで「理想的」と断っているのは、後から同じ格納場所になってしまうデータが生じた場合は、別の場所に格納することになるので、 1 回の処理で格納場所がわからないからです。</p>
<p>そこで、問題文には、「ハッシュ値が衝突する（同じ値になる）確率は無視できるほど小さいものとする」と示されています。</p>
<p>「ハッシュ値」とは、計算式で得られた格納場所のことです。 これが同じ値になる確率が無視できるほど小さいのですから、ここでは、ハッシュ法のオーダは 1 で OK です。</p>
<figure><figcaption>図　ハッシュ法のオーダは理想的には 1 である</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/q3_hash.png" loading="lazy"><br />
</figure>
<p>最後に二分探索のオーダです。 これは、<br />
log<sub>2</sub>n<br />
という表現になります。</p>
<p>log は、高校で習ったはずですが、意味を覚えていますか？ </p>
<p>もしも、忘れてしまったら、<br />
「 <span class="bold">log<sub>2</sub>n は、 n 個のものを 1 個にする分割回数</span>である」<br />
ということと、<br />
具体例として<br />
「 <span class="bold">log<sub>2</sub>8 = 3（ 8 個のものを 1 個にする分割回数は 3 である）</span>」<br />
を覚えてください。</p>
<p>要素数 8 個の配列は、</p>
<p>1 回目の分割で 8 個が 4 個になり、<br />
2 回目の分割で 4 個が 2 個になり、<br />
3 回目の分割で 2 個が 1 個になります。</p>
<p>この最後の 1 個までチェックするのが、最大の処理回数になります。</p>
<p><span class="u">二分探索は、「探索対象の真ん中の値をチェックし、その結果から探索対象を二分割して絞り込むことを繰り返す」というアルゴリズム</span>です。 だから、二分探索の計算量は、log<sub>2</sub>n なのです。</p>
<figure><figcaption>図　二分探索のオーダは分割回数を意味する log<sub>2</sub>n である</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/q3_log.png" loading="lazy"><br />
</figure>
<p>以上のことから、正解はアです。</p>
<p><span class="chip mag_tp30">解答</span> ア</p>
<div class="grey lighten-5 pad_20 c-round">
関連タグ<i class="material-icons teal-text text-lighten-2">search</i>: <a href="../../tag/アルゴリズム" class="chip teal white-text">アルゴリズム</a>
</div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>ビット数とコードのイメージをつなげよう</h2>
<div class="card-panel mag_h30">
<p>問 4　(平成 24 年度 秋期)</p>
<p>英字の大文字 ( A ~ Z ) と数字 ( 0 ~ 9 ) を同一のビット数で一意にコード化するには，少なくとも何ビットが必要か。<br />
ア　5　　イ　6　　ウ　7　　エ　8
</p></div>
<div class="chip">解説</div>
<p>「コード化（符号化）」とは、本来は数値でない情報を、数値に置き換えて表すことです。 置き換えられた数値を「コード」と呼びます。</p>
<p>この問題は、文字と数字を 2 進数のコードにするには、何ビット（ 2 進数で何桁）が必要になるかを答えるものです。</p>
<p>&nbsp;</p>
<p>2 進数の 1 ビットは、 0 と 1 の 2 種類のコードを表せます。</p>
<dl class="background c-round">
<dt>2 ビットなら</dt>
<dd>00 、 01 、 10 、 11 の 4 種類</dd>
<dt>3 ビットなら</dt>
<dd>000 、 001 、 010 、 011 、 100 、 101 、 110 、 111 の 8 種類</dd>
</dl>
<p>つまり、 1 ビットで 2 種類のコードを表せ、その後はビット数が 1 桁増えるごとに表せるコードの種類が 2 倍になるのです。</p>
<p>選択肢に示された 5 ビット、6 ビット、7 ビット、8 ビットで表せるコードの種類は、以下のようになります。</p>
<dl class="background c-round">
<dt>5 ビット</dt>
<dd>2 × 2 × 2 × 2 × 2 = 32 種類</dd>
<dt>6 ビット</dt>
<dd>2 × 2 × 2 × 2 × 2 × 2 = 64 種類</dd>
<dt>7 ビット</dt>
<dd>2 × 2 × 2 × 2 × 2 × 2 × 2 = 128 種類</dd>
<dt>8 ビット</dt>
<dd>2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 = 256 種類</dd>
</dl>
<p>A ～ Z の 26 文字と 0 ～ 9 の 10 文字を合わせると 36 文字なので、全部で 36 種類のコードが必要です。</p>
<p>5 ビットの 32 種類では足りません。 6 ビットの 64 種類あれば足りるので、イの 6 ビットが正解です。</p>
<p><span class="chip mag_tp30">解答</span> イ</p>
<p>&nbsp;</p>
<p>以下に、36 文字を 6 ビットのコードに置き換えた例を示します。 これを見れば、ビット数とコードのイメージがつながるでしょう。</p>
<p>未使用のコードがあるので、もったいない感じがしますが、5 ビットでは足りないので、6 ビットにしなければなりません。</p>
<div class="row mag_h30">
<div class="col m6">
<table class="striped centered">
<thead>
<tr>
<th>コード</th>
<th>文字</th>
<th>コード</th>
<th>文字</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>A</td>
<td>10000</td>
<td>Q</td>
</tr>
<tr>
<td>1</td>
<td>B</td>
<td>10001</td>
<td>R</td>
</tr>
<tr>
<td>10</td>
<td>C</td>
<td>10010</td>
<td>S</td>
</tr>
<tr>
<td>11</td>
<td>D</td>
<td>10011</td>
<td>T</td>
</tr>
<tr>
<td>100</td>
<td>E</td>
<td>10100</td>
<td>U</td>
</tr>
<tr>
<td>101</td>
<td>F</td>
<td>10101</td>
<td>V</td>
</tr>
<tr>
<td>110</td>
<td>G</td>
<td>10110</td>
<td>W</td>
</tr>
<tr>
<td>111</td>
<td>H</td>
<td>10111</td>
<td>X</td>
</tr>
<tr>
<td>1000</td>
<td>I</td>
<td>11000</td>
<td>Y</td>
</tr>
<tr>
<td>1001</td>
<td>J</td>
<td>11001</td>
<td>Z</td>
</tr>
<tr>
<td>1010</td>
<td>K</td>
<td>11010</td>
<td>0</td>
</tr>
<tr>
<td>1011</td>
<td>L</td>
<td>11011</td>
<td>1</td>
</tr>
<tr>
<td>1100</td>
<td>M</td>
<td>11100</td>
<td>2</td>
</tr>
<tr>
<td>1101</td>
<td>N</td>
<td>11101</td>
<td>3</td>
</tr>
<tr>
<td>1110</td>
<td>O</td>
<td>11110</td>
<td>4</td>
</tr>
<tr>
<td>1111</td>
<td>P</td>
<td>11111</td>
<td>5</td>
</tr>
</tbody>
</table>
</div>
<div class="col m6">
<table class="striped centered">
<thead>
<tr>
<th>コード</th>
<th>文字</th>
<th>コード</th>
<th>文字</th>
</tr>
</thead>
<tbody>
<tr>
<td>100000</td>
<td>6</td>
<td>110000</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100001</td>
<td>7</td>
<td>110001</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100010</td>
<td>8</td>
<td>110010</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100011</td>
<td>9</td>
<td>110011</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100100</td>
<td>(未使用)</td>
<td>110100</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100101</td>
<td>(未使用)</td>
<td>110101</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100110</td>
<td>(未使用)</td>
<td>110110</td>
<td>(未使用)</td>
</tr>
<tr>
<td>100111</td>
<td>(未使用)</td>
<td>110111</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101000</td>
<td>(未使用)</td>
<td>111000</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101001</td>
<td>(未使用)</td>
<td>111001</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101010</td>
<td>(未使用)</td>
<td>111010</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101011</td>
<td>(未使用)</td>
<td>111011</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101100</td>
<td>(未使用)</td>
<td>111100</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101101</td>
<td>(未使用)</td>
<td>111101</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101110</td>
<td>(未使用)</td>
<td>111110</td>
<td>(未使用)</td>
</tr>
<tr>
<td>101111</td>
<td>(未使用)</td>
<td>111111</td>
<td>(未使用)</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>仮想記憶のページインとページアウトを手作業で練習しておこう</h2>
<div class="card-panel mag_h30">
<p>問 19　(平成 24 年度 秋期)</p>
<p>ページング方式の仮想記憶において，ページ置換えアルゴリズムに LRU 方式を採用する。 主記憶に割り当てられるページ枠が 4 のとき，ページ 1 , 2 , 3 , 4 , 5 , 2 , 1 , 3 , 2 , 6 の順にアクセスすると，ページ 6 をアクセスする時点で置き換えられるページはどれか。 ここで，初期状態では主記憶にどのページも存在しないものとする。</p>
<p>ア　1　　イ　2　　ウ　4　　エ　5
</p></div>
<div class="chip">解説</div>
<p>「ページング方式の仮想記憶」とは、プログラムやデータを「ページ」と呼ばれる固定サイズで区切り、<span class="bold">実メモリ（主記憶）と仮想メモリ（ハードディスク）の間で、ページの入れ換えをすること</span> です。</p>
<p>実メモリの容量が足りなくなったときに、今度使われる可能性が低いページを仮想メモリに追い出し（ページアウト）、空いたページに必要なページを読み込む（ページイン）のです。</p>
<p>&nbsp;</p>
<p>具体例が示されて「仮想記憶のページアウトとページインを手作業でやりなさい」という問題は、午前試験にも午後試験にもよく出題されます。</p>
<p>なかなか面倒な作業なので、事前に練習しておかないと戸惑うと思います。 ここでやっておきましょう。</p>
<p>&nbsp;</p>
<p>この問題では、ページ枠（実メモリのページ数）が 4 個で、LRU 方式でページの入れ換えを行います。</p>
<p>LRU は、Least Recently Used の略で、直訳すると「最も～でない、最近、使われる」であり、わかりやすい言葉にすると「最後に使われてから最も時間が経過したページを入れ換える」です。</p>
<p>&nbsp;</p>
<p>紙の上に 4 つの枠を書いてください。 これが、実メモリの 4 ページを表します。 最初は、どのページも未使用です。</p>
<p>ここに、 1 、2 、3 、4 、5 、2 、 1 、3 、2 、6 の順にアクセスして（利用して）いきます。</p>
<p>実メモリが空いていれば、そのままページインします。 実メモリが一杯のときは、LRU 方式でページアウトしてからページインします（これがページの入れ換えです）。</p>
<p>この問題では、最後の 6 をアクセスするときにページアウトされるページを答えます。</p>
<p>&nbsp;</p>
<p>以下に手順を示しますので、やり方がわかったら、実際にやってみてください。 ★ マークは、LRU 方式におけるページアウトの対象となるページを意味しています。 このようなマークを付けるとわかりやすいはずです。</p>
<ol class="mag_h30 background c-round">
<li class="mag_h20">初期状態</li>
<table class="half-width centered border bordered">
<tr>
<td>(空き)</td>
</tr>
<tr>
<td>(空き)</td>
</tr>
<tr>
<td>(空き)</td>
</tr>
<tr>
<td>(空き)</td>
</tr>
</table>
<li class="mag_h20"> 1 をアクセスする（ 1 がページインされる）</li>
<table class="half-width centered border bordered">
<tr>
<td>1</td>
</tr>
<tr>
<td>　</td>
</tr>
<tr>
<td>　</td>
</tr>
<tr>
<td>　</td>
</tr>
</table>
<li class="mag_h20"> 2 をアクセスする（ 2 がページインされる）</li>
<table class="half-width centered border bordered">
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>　</td>
</tr>
<tr>
<td>　</td>
</tr>
</table>
<li class="mag_h20"> 3 をアクセスする（ 3 がページインされる）</li>
<table class="half-width centered border bordered">
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>　</td>
</tr>
</table>
<li class="mag_h20"> 4 をアクセスする（ 4 がページインされ、 1 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>1 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
</table>
<li class="mag_h20"> 5 をアクセスする（ 1 がページアウトされ、5 がページインされ、2 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>5</td>
</tr>
<tr>
<td>2 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
</table>
<li class="mag_h20"> 2 をアクセスする（ 3 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>5</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>4</td>
</tr>
</table>
<li class="mag_h20"> 1 をアクセスする（ 3 がページアウトされ、 1 がページインされ、4 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>5</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>4 <i class="material-icons">grade</i></td>
</tr>
</table>
<li class="mag_h20"> 3 をアクセスする（ 4 がページアウトされ、3 がページインされ、5 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>5 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>3</td>
</tr>
</table>
<li class="mag_h20"> 2 をアクセスする</li>
<table class="half-width centered border bordered">
<tr>
<td>5 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>3</td>
</tr>
</table>
<li class="mag_h20"> 6 をアクセスする（ 5 がページアウトされ、6 がページインされ、 1 がページアウトの対象になる）</li>
<table class="half-width centered border bordered">
<tr>
<td>6</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>1 <i class="material-icons">grade</i></td>
</tr>
<tr>
<td>3</td>
</tr>
</table>
</ol>
<p>6 をアクセスするときにページアウトされるのは、ページ 5 です。 したがって、エが正解です。</p>
<p><span class="chip mag_tp30">解答</span> エ</p>
<div class="grey lighten-5 pad_20 c-round">
関連タグ<i class="material-icons teal-text text-lighten-2">search</i>: <a href="../../tag/fifo-lru-lfu" class="chip teal white-text">FIFO LRU LFU</a>
</div>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>  関係データベースの参照の整合性の意味を覚えよう</h2>
<div class="card-panel mag_h30">
問 31　(平成24年度 秋期)</p>
<p>関係データベースの &#8220;注文&#8221; 表の &#8220;顧客番号&#8221; は，&#8221;顧客&#8221; 表の主キー &#8220;顧客番号&#8221; を参照する外部キーである。 このとき，参照の整合性を損なうデータ操作はどれか。  ここで，ア ~ エの記述におけるデータの並びは，それぞれの表の列の並びと同順とする。</p>
<div class="row mag_h30">
<div class="col s6">
<table class="bordered centered">
<caption>注文</caption>
<thead>
<tr>
<th>伝票番号</th>
<th>顧客番号</th>
</tr>
</thead>
<tbody>
<tr>
<td>0001</td>
<td>C005</td>
</tr>
<tr>
<td>0002</td>
<td>K001</td>
</tr>
<tr>
<td>0003</td>
<td>C005</td>
</tr>
<tr>
<td>0004</td>
<td>D010</td>
</tr>
</tbody>
</table>
</div>
<div class="col s6">
<table class="bordered centered">
<caption>顧客</caption>
<thead>
<tr>
<th>顧客番号</th>
<th>顧客名</th>
</tr>
</thead>
<tbody>
<tr>
<td>C005</td>
<td>福島</td>
</tr>
<tr>
<td>D010</td>
<td>千葉</td>
</tr>
<tr>
<td>K001</td>
<td>長野</td>
</tr>
<tr>
<td>L035</td>
<td>宮崎</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="mag_h10">
ア　&#8221;顧客&#8221; 表の行　<span style="border: 1px solid;">　L035　</span><span style="border: 1px solid;">　宮崎　</span>　を削除する。
</div>
<div class="mag_h10">
イ　&#8221;注文&#8221; 表に行　<span style="border: 1px solid;">　0005　</span><span style="border: 1px solid;">　D010　</span>　を追加する。
</div>
<div class="mag_h10">
ウ　&#8221;注文&#8221; 表に行　<span style="border: 1px solid;">　0006　</span><span style="border: 1px solid;">　F020　</span>　を追加する。
</div>
<div class="mag_h10">
エ　&#8221;注文&#8221; 表の行　<span style="border: 1px solid;">　0002　</span><span style="border: 1px solid;">　K001　</span>　を削除する。
</div>
</div>
<div class="chip">解説</div>
<p>この問題のテーマは、関係データベースの「参照の整合性」です。</p>
<p>関係データベースの DBMS（ Data Base Management System ）には、参照の整合性を保つ機能があり、それを損なう操作を受け付けません。</p>
<p>それがどういう意味なのか、この問題を通して覚えてください。</p>
<p>&nbsp;</p>
<p>関係データベースでは、表に「主キー」を設定します。 <span class="bold">主キーは、他と重複しないユニークな列</span> であり、それによってレコードを特定できます。 注文表では、伝票番号が主キーであり、顧客表では、顧客番号が主キーです。</p>
<p>&nbsp;</p>
<p>注文表の列には、顧客表の主キーである顧客番号があります。 このような <span class="bold">他の表の主キーを「外部キー」</span> と呼びます。</p>
<p>「ある表の外部キー」→「他の表の主キー」で、表から表を参照できます。 参照とは、表から他の表をたどることであり、「リレーションシップ」とも呼びます。</p>
<figure><figcaption>図　「ある表の外部キー」→「他の表の主キー」で表から表を参照できる</figcaption><img class="materialboxed z-depth-5 responsive-width pad_05" src="../../wp-content/uploads/2019/09/q31_relation.png" loading="lazy"><br />
</figure>
<p>参照の整合性とは、参照先のレコードが存在するように保つ機能です。</p>
<p>たとえば、先ほどの例で、顧客表の<br />
［ C005　福島 ］<br />
というレコードを削除する操作をすると、注文表の<br />
［ 0001　C005 ］<br />
というレコードからたどれなくなってしまうので（参照ができなくなってしまうので）、その操作を DBMS が受け付けません。</p>
<p>これで、参照の整合性の意味をおわかりいただけましたね。 それでは、選択肢を見てみましょう。</p>
<p>&nbsp;</p>
<p>選択肢アは、顧客表の［ L035　宮崎 ］というレコードを削除しています。 注文表には［ L035　宮崎 ］を参照しているレコードはないので、参照の整合性は損なわれません。</p>
<p>選択肢イは、注文表に［ 0005　D010 ］というレコードを追加しています。 顧客表には［ D010　千葉 ］というレコードがあるので、参照の整合性は損なわれません。</p>
<p>選択肢ウは、注文表に［ 0006　F020 ］というレコードを追加しています。 顧客表には［ F020 ］という顧客番号のレコードはないので、この操作をすると参照の整合性が損なわれます。 したがって、ウが正解です。</p>
<p>念のため選択肢エも確認しておきましょう。 注文表から［ 0002　K001 ］を削除しても、参照の向きが注文表から顧客表なので、参照の整合性は損なわれません。</p>
<p><span class="chip mag_tp30">解答</span> ウ</p>
<div class="grey lighten-5 pad_20 c-round">
関連タグ<i class="material-icons teal-text text-lighten-2">search</i>: <a href="../../tag/データベース" class="chip teal white-text">データベース</a>
</div>
<div class="divider mag_tp50 mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 <span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h24_autumn/">「厳選5題」過去問と解説 | 平成24年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説 &#124; 平成28年度 秋期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h28_autumn/</link>
		<pubDate>Tue, 07 May 2019 03:43:28 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[2019見直し]]></category>
		<category><![CDATA[2のべき乗]]></category>
		<category><![CDATA[FIFO LRU LFU]]></category>
		<category><![CDATA[マスク]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[確率]]></category>
		<category><![CDATA[計算問題]]></category>
		<category><![CDATA[過去問演習]]></category>
		<category><![CDATA[音声サンプリング]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=1156</guid>
		<description><![CDATA[<p>ここでは、平成 28 年度 秋期 基本情報技術者試験の午前試験 の中から「やるべき問題」を5題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しない [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h28_autumn/">「厳選5題」過去問と解説 | 平成28年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2016h28_2/2016h28a_fe_am_qs.pdf" rel="noopener" target="_blank">平成 28 年度 秋期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を5題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>h2 .chip{vertical-align:middle;background:#3f51b5;color:white;margin-right:.75em;}.chip i{font-size:2em!important;}dl.inline dd{margin-left:2em;}</style>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_one</i></span>AND によるビット演算のイメージをつかんでおこう</h2>
<div class="card-panel mag_h30">
問 1　(平成 28 年度 秋期)</p>
<p>8 ビットのビット列の下位 4 ビットが変化しない操作はどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>16 進表記 0F のビット列との排他的論理和をとる。 </dd>
<dt>イ</dt>
<dd>16 進表記 0F のビット列との否定論理積をとる。 </dd>
<dt>ウ</dt>
<dd>16 進表記 0F のビット列との論理積をとる。 </dd>
<dt>エ</dt>
<dd>16 進表記 0F のビット列との論理和をとる。 </dd>
</dl>
</div>
<div class="chip">解説</div>
<p>この問題は、「ビット演算（マスク演算とも呼ばれる）」がテーマです。 <span class="u">ビット演算 とは、 2 進数のデータを論理演算すること</span>です。</p>
<p>説明するより具体例を示した方が早いと思いますので、以下を見てください。</p>
<figure>
<img class="materialboxed hoverable responsive-width" src="../../wp-content/uploads/2019/05/and1.png" alt="" loading="lazy" /><br />
</figure>
<p>01010101 と 00001111 という 2 進数で AND 演算を行っています。</p>
<p>01010101 には<span class="bold">「データ」</span>、 00001111 には<span class="bold">「マスク」</span>という名前を付けています。 これらの名前の意味は、あとでわかります。</p>
<p>ビット演算では、 2 進数の 1 桁ずつで論理演算をします。</p>
<figure>
<img class="materialboxed hoverable responsive-width" src="../../wp-content/uploads/2019/05/and2.png" alt="" loading="lazy" /><br />
</figure>
<p>ここでは、 AND 演算ですから、以下の矢印の方向でデータとマスクの 1 桁ずつを AND 演算します。 AND 演算は、演算する 2 つの値が両方とも 1 のときだけ演算結果が 1 になります。 ここまでは、OK でしょうか？</p>
<p>&nbsp;</p>
<p>それでは、あらためてデータ、マスク、演算結果を見てみましょう。</p>
<figure>
<img class="materialboxed hoverable responsive-width pad_05" src="../../wp-content/uploads/2019/05/and3.png" alt="" loading="lazy" /><br />
</figure>
<p>データの 01010101 のうち、マスクの 00001111 の 0 の部分に対応する桁が 0 になり、 1 の部分に対応する桁が変化せずに、 00000101 という演算結果が得られました。</p>
<p>これは、 00001111 というマスクで、 01010101 というデータの上位 4 桁を覆い隠した（マスクした）といえます。</p>
<p>だから、 01010101 を データ と名付け、 00001111 を マスク と名付けたのです。</p>
<p>&nbsp;</p>
<p>このようなマスクができるのは、</p>
<ul class="background c-round">
<li>0 と AND 演算をすれば、相手が 0 でも 1 でも 0 になり（必ず 0 になる）</li>
<li>1 と AND 演算をすれば、相手が 0 なら 0 になり、相手が 1 なら 1 になる（変化しない）</li>
</ul>
<p>からです。</p>
<p>納得していただけましたね！</p>
<p>&nbsp;</p>
<p>それでは、問題を見てみましょう。</p>
<blockquote>
<p class="grey-text">「 8 ビットのビット列の下位 4 ビットが変化しない操作はどれか」</p>
</blockquote>
<p>ですから、これは、これまで説明してきた「 00001111 と AND 演算する」です。</p>
<p>選択肢では、 2 進数を 16 進数 表記し、論理演算の種類を日本語で示しています。 00001111 を 16 進数表記すると 0F です。 AND 演算を日本語で示すと 論理積 です。</p>
<p>したがって、選択肢ウの「 16 進数表記 0F のビット列との 論理積 をとる」が正解です。</p>
<p><span class="chip mag_tp30 mag_rt10">解答</span>ウ</p>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a class="tag" href="../../tag/マスク">マスク</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_two</i></span>今後の試験で出題比率が多くなる「数学」の問題をやっておこう</h2>
<div class="card-panel mag_h30">
問 2　(平成 28 年度 秋期)</p>
<p>ある工場では，同じ製品を独立した二つのライン A，B で製造している。 ライン A では製品全体の 60 % を製造し，ライン B では 40 % を製造している。 ライン A で 製造された製品の 2 % が不良品であり，ライン B で製造された製品の 1 % が不良品で あることが分かっている。 いま，この工場で製造された製品の一つを無作為に抽出して調べたところ，それは不良品であった。 その製品がライン A で製造された確率は何 % か。</p>
<p>ア　40　　イ　50　　ウ　60　　エ　75
</p></div>
<p>基本情報技術者試験を実施している情報処理推進機構のニュースリリースによると</p>
<blockquote class="bold"><p>「 2019 年の秋期試験から、午前試験で数学に関する出題比率を見直し、<span class="bold">線形代数、確率、統計</span>等、数学に関する出題比率を多くする」</p></blockquote>
<p>そうです。</p>
<div class="divider mag_tp40"></div>
<p class="grey-text small-text"><i class="material-icons">info_outline</i> 関連記事</p>
<p><a href="../../guide/focus_on_diff_2/"></p>
<div class="row valign-wrapper pad_w20">
<div class="col s3 m2 pad_00"><img src="../../wp-content/uploads/2019/06/syllabus_fe_diff-300x180.jpg" loading="lazy"></div>
<div class="col s9 m10 bold pad_lt10">基本情報技術者試験の 2019 シラバス改訂 で注目すべきポイント (用語解説付き)</div>
</div>
<p></a></p>
<div class="divider mag_bt40"></div>
<p>したがって、今後受験を予定されている人は、これまで以上に数学に関する過去問題を数多く練習しておくべきです。 そんなわけで、この問題を取り上げました。</p>
<p>テーマは、<span class="bold">「確率」</span>です。</p>
<div class="chip mag_tp30">解説</div>
<p>基本情報技術者試験で要求される数学の知識は、だいたい中学レベルです。 何らかの事例に仕立てたような問題が出題されるので、一見して難しそうに感じるかもしれませんが、必ずできますので、自信を持って解いてください。</p>
<p>それでは、やってみましょう。</p>
<p>ライン A は、製品全体の 60 % を製造し、その 2 % が不良品なので、<br />
ライン A の不良品は、全体の<br />
<i class="material-icons blue-text mag_rt05">chevron_right</i>0.6 × 0.02 = 0.012 = 1.2 %<br />
です。</p>
<p>ライン B は、製品全体の 40 % を製造し、その 1 % が不良品なので、<br />
ライン B の不良品は、全体の<br />
<i class="material-icons blue-text mag_rt05">chevron_right</i>0.4 × 0.01 = 0.004 = 0.4 %<br />
です。</p>
<p>不良品は、全部で<br />
<i class="material-icons blue-text mag_rt05">chevron_right</i>1.2 % + 0.4 % = 1.6 %<br />
になります。</p>
<p>無造作に抽出した不良品が ライン A で製造された確率は、全体の不良品の 1.6 % のうち、ライン A の不良品が 1.2 % なのですから、</p>
<p><i class="material-icons blue-text mag_rt05">chevron_right</i>1.2 ÷ 1.6 = 0.75 = 75 %</p>
<p>という計算で求められます。</p>
<p>正解は、選択肢エです。</p>
<p>やったあ！ できたあ！</p>
<p><span class="chip mag_tp30 mag_rt10">解答</span>エ</p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_3</i></span>2 のべき乗は指折り数えて計算しよう</h2>
<div class="card-panel mag_h30">
問 4　(平成 28 年度 秋期)</p>
<p>32 ビットで表現できるビットパターンの個数は， 24 ビットで表現できる個数の何倍か。</p>
<p>ア　8　　イ　16　　ウ　128　　エ　256
</p></div>
<p>問題に示された「ビットパターン」とは、 2 進数のデータのパターンのことです。</p>
<p>当然のことですが、ビット数（ 2 進数の桁数）が多いほど、表現できるビット数が多くなります。</p>
<p>&nbsp;</p>
<p>たとえば、</p>
<p>1 ビットで表現できるビットパターンは、<br />
0 と 1 の 2 通りです。</p>
<p>2 ビットで表現できるビットパターンは、<br />
00 、 01 、 10 、 11 の 4 通り です。</p>
<p>3 ビットで表現できるビットパターンは、<br />
000 、 001 、 010 、 011 、 100 、 101 、 110 、 111 の 8 通りです。</p>
<p>1 ビット で 2 通り、 2 ビット で 4 通り、 3 ビット で 8 通りなのですから、 1 ビット増えるごとに、表現できるビットパターンが 2 倍になります。</p>
<p>これまでのビットパターンにもう 1 ビット 増やしたら、増やした部分を 0 にしたビットパターンと、 1 にしたビットパターンが作れるので、 2 倍になって当然です。</p>
<p>以下の図を見て<span class="bold">「1 ビット増えるごとに、表現できるビットパターンが 2 倍になる」</span>ということを覚えてください。</p>
<figure>
  <img class="materialboxed hoverable responsive-width pad_05" src="../../wp-content/uploads/2019/05/bit.png" alt="" loading="lazy" /><br />
</figure>
<div class="chip mag_tp30">解説</div>
<p>それでは、問題を見てみましょう。</p>
<p>32 ビットは、 24 ビットと比べて、 32 &#8211; 24 = 8 ビット多いです。 8 ビット多いと何倍になるか、指折り数えてみましょう。</p>
<p>「 2 倍」<br />
「 4 倍」<br />
「 8 倍」<br />
「 16 倍」<br />
「 32 倍」<br />
「 64 倍」<br />
「 128 倍」<br />
「 256 倍」</p>
<p>ですから、 256 倍になります。 したがって、正解は、選択肢エです。</p>
<p><span class="chip mag_tp30 mag_rt10">解答</span>エ</p>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a class="tag" href="../../tag/2のべき乗">2 のべき乗</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_4</i></span>A / D 変換に関する 3 つの用語をまとめて覚えよう</h2>
<div class="card-panel mag_h30">
問 5　(平成28年度秋期)</p>
<p>標本化，符号化，量子化の三つの工程で、アナログをディジタルに変換する場合の順番として，適切なものはどれか。</p>
<p>ア　標本化，量子化，符号化　　イ　符号化，量子化，標本化<br />
ウ　量子化，標本化，符号化　　エ　量子化，符号化，標本化
</p></div>
<div class="chip">解説</div>
<p>自然界にあるアナログデータを、コンピュータで処理できるディジタルデータに変換することを<span class="bold">「 A / D 変換（ Analog / Digital 変換）」</span>と呼びます。</p>
<p>基本情報技術者試験によく出る A / D 変換は、音声のアナログデータをディジタルデータに変換することなので、それをイメージするとよいでしょう。</p>
<p>この問題は、 <span class="u">A / D 変換で行われる「標本化」「符号化」「量子化」が、どの順番で行われるかを問うもの</span>です。 こういうことは、腕を組んで考えてわかることではありません。 説明を読んで覚えることです。</p>
<p>&nbsp;</p>
<p><span class="bold">最初に行われるのは「標本化」</span>です。</p>
<p>日本人が「標本」と聞くと、昆虫採集を思い浮かべるかもしれませんが、これは「サンプリング（ sampling ）」という英語を日本語に直訳したものです。</p>
<p>標本化は、アナログのデータを一定時間間隔でぶち切れのデータとして記録することです。 記録することを「標本化」と呼んでいるのです。</p>
<p>&nbsp;</p>
<p><span class="bold">次に行われるのは「量子化（ quantization ）」</span>です。</p>
<p>これは、標本化されたデータを、基準となる数値（これが量子です）の整数倍に置き換えることです。 たとえば、 1 を量子とすれば、その整数倍の 1 、 2 、 3 、 4 、 5 、 6 、 7 ・・・にします。</p>
<p>この場合には、たとえば、標本化された 6.5 は 7 に、 5.3 は 5 に量子化するのが適切でしょう。 ここでは、四捨五入して整数にしています。</p>
<p>&nbsp;</p>
<p><span class="bold">最後に行われるのは、「符号化（ coding ）」</span>です。</p>
<p>これは、量子化されたデータを、あらかじめ決めておいた形式の 2 進数のデータ（ 2 進数の符号）にすることです。 たとえば、8 ビットにすると決めておいたなら、量子化された 7 は 00000111 に符号化され、 5 は 00000101 に符号化されます。</p>
<p>符号とは、コンピュータで処理できる 2 進数のデータを意味しています。</p>
<p>&nbsp;</p>
<p>以上のことから、 A / D 変換の手順は、「標本化」→「量子化」→「符号化」です。</p>
<p>したがって、選択肢アが正解です。</p>
<p><span class="chip mag_tp30 mag_rt10">解答</span>ア</p>
<p class="grey-text mag_tp30"><i class="material-icons light-blue-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a class="tag" href="../../tag/音声サンプリング">音声サンプリング</a></p>
<h2><span class="chip">厳選問題<i class="material-icons mag_lt05">looks_5</i></span>とにかくよく出る FIFO 、 LRU 、 LFU の意味をしっかり覚えよう</h2>
<div class="card-panel">
問 19　(平成 28 年度 秋期)</p>
<p>LRU アルゴリズムで、ページ置換えの判断基準に用いられる項目はどれか。</p>
<p>ア　最後に参照した時刻　　イ　最初に参照した時刻<br />
ウ　単位時間当たりの参照頻度　　エ　累積の参照回数
</p></div>
<div class="chip">解説</div>
<p>この問題を見て「キター！」と思いました。 仮想記憶のページングアルゴリズムである FIFO 、 LRU 、 LFU は、とにかくよく出る問題だからです。</p>
<p>これらは、実メモリ（主記憶）が一杯になったときに、今後使われる可能性が低いページ（記憶領域を固定的なサイズで区切った部分）を、仮想メモリ（補助記憶装置）に追い出すときのアルゴリズムです。</p>
<p>アルゴリズムといっても、処理の手順ではなく、今後使われる可能性が低いページを決める方法のことです。</p>
<p>&nbsp;</p>
<p>FIFO 、 LRU 、 LFU は、どれかが優れているというわけではなく、どれもごもっともな方法です。 どれが効果的なのかは、状況次第でしょう。 それぞれの用語が、何の略なのかを知り、それを日本語に直訳して意味を覚えてください。</p>
<dl class="background c-round">
<dt class="bold">FIFO</dt>
<dd>First In First Out の略で、「先に入ったものを先に出す」という意味です。</p>
<p>先に実メモリに入ったページは古いのですから、今後使われる可能性が低いと判断するのです。 ごもっともな方法です。</dd>
<dt class="bold">LRU</dt>
<dd>Recently Used の略で、「最近使っていない」という意味です。</p>
<p>最後に使ってから最も時間が経過しているページは、今後使われる可能性が低いと判断するのです。 これも、ごもっともな方法です。 Least は、 Little の最上級で「最も～でない」を意味します。 Recently は、「最近」という意味です。</dd>
<dt class="bold">LFU</dt>
<dd>Least Frequently Used の略で、「頻繁に使っていない」という意味です。</p>
<p>使われた回数が少ないページは、今後使われる可能性が低いと判断するのです。 これも、ごもっともな方法です。 Frequently は、「頻繁に」という意味です。</dd>
</dl>
<p>それでは、問題を見てみましょう。 LRU の判断基準を選ぶのですから「最後に使われた時間」です。</p>
<p>したがって、選択肢アの「最後に参照した時刻」が正解です。</p>
<p><span class="chip mag_tp30 mag_rt10">解答</span>ア</p>
<div class="divider mag_tp40 mag_bt10"></div>
<p class="grey-text small-text"><i class="material-icons mag_rt05">info_outline</i>FIFO / LRU / LFU に関する詳しい記事</p>
<p><a href="../../mastering_tech/fifo_lfu_lru/"></p>
<div class="row valign-wrapper pad_w20">
<div class="col s3 m2 flex pad_00"><img src="../../wp-content/uploads/2020/10/cover_fifo_lfu_lru.jpg" loading="lazy" /></div>
<div class="col s9 m10 pad_10 blue-grey-text bold">基本情報でわかる FIFO LFU LRU 「略語の意味がわかればわかる」</div>
</div>
<p></a></p>
<div class="divider mag_to50 mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 <span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h28_autumn/">「厳選5題」過去問と解説 | 平成28年度 秋期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>暗記しない用語の覚え方｜過去問の解き方知りたいぜ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon_tokikata/how_to_memory_keywords/</link>
		<pubDate>Mon, 26 Nov 2018 03:43:11 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[FIFO LRU LFU]]></category>
		<category><![CDATA[SWOT分析]]></category>
		<category><![CDATA[学習方法]]></category>
		<category><![CDATA[過去問の解き方]]></category>

		<guid isPermaLink="false">http://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon_tokikata&#038;p=597</guid>
		<description><![CDATA[<p>Photo by Fredy Jacob on Unsplash 何らかの試験対策の書籍をお持ちなら、末尾にある索引を見てください。膨大な数の用語が並んでいるはずです。 「これらを全部覚えるなんて無理！」と思ってしまうか [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon_tokikata/how_to_memory_keywords/">暗記しない用語の覚え方｜過去問の解き方知りたいぜ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<div class="center">
<small>Photo by </small><a href="https://unsplash.com/photos/t0SlmanfFcg?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><small>Fredy Jacob</small></a><small> on </small><a href="https://unsplash.com/search/photos/disc?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><small>Unsplash</small></a>
</div>
<p>何らかの試験対策の書籍をお持ちなら、末尾にある索引を見てください。膨大な数の用語が並んでいるはずです。</p>
<p>「これらを全部覚えるなんて無理！」と思ってしまうかもしれませんが、午前試験にも午後試験にも、用語の意味がわかれば正解できる問題が数多く出るので、がんばって覚えるしかありません。</p>
<p>この記事では、午前試験の過去問題を例にして、用語を覚える方法をアドバイスします。</p>
<style>dl.inline dd {margin-left: 2em;}</style>
<h2>英語の用語は日本語の意味を調べて覚える</h2>
<div class="card-panel mag_h30">
問 45　( 平成 24 年度 春期 )</p>
<p>システム開発におけるウォータフォールモデルの説明はどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>一度の開発ですべてを作るのではなく，基本的なシステムアーキテクチャの上に機能の優先度に応じて段階的に開発する。</dd>
<dt>イ</dt>
<dd>開発工程を設計，実装，テストなどに分け，前の工程が完了してから，その成果物を使って次の工程を行う。 </dd>
<dt>ウ</dt>
<dd>試作品を作り，利用者の要求をフィードパックして開発を進める。</dd>
<dt>エ</dt>
<dd>複雑なソフトウェアを全部最初から作成しようとするのではなく，簡単な部分から分析，設計，実装，テストを繰り返し行い、徐々に拡大していく。</dd>
</dl>
</div>
<p>「ウォーターフォールモデル」という用語の意味がわかれば正解できる問題です。</p>
<p>答えは、イの「開発工程を設計、実装、テストなどに分け、前の工程が完了してから、その成果物を使って次の工程を行う」ですが、この説明と「ウォーターフォールモデル」という用語を対応付けて覚えられるでしょうか。</p>
<p>おそらく、困難なはずです。</p>
<p>&nbsp;</p>
<p><span class="bold">面倒くさがらずに、英和辞典で、用語の意味を調べてみましょう。</span></p>
<p>&nbsp;</p>
<p>「ウォーターフォール（ waterfall ）」は、「滝」という意味です。</p>
<p>「ウォーターフォールモデル」は、「滝のように、前の工程が完了してから、その成果物を使って次の工程を行うことで、後戻りしない」という開発モデルです。これなら、覚えられるはずです。</p>
<p>&nbsp;</p>
<p>IT 用語の多くは、英語です。</p>
<p>英語が苦手なら（私は苦手です）、英語の意味を調べて覚えてください。「ウォーターフォールモデル（英語）」→「滝のモデル（日本語）」→「後戻りしない開発モデル（用語の説明）」という覚え方です。</p>
<h2>英語の略語は何の略かを調べて覚える</h2>
<div class="card-panel mag_h30">
問 67 (平成 28 年度 春期)</p>
<p>SWOT 分析を説明したものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>企業のビジョンと戦略を実現するために，財務，顧客，業務プロセス，学習と成長という四つの視点から検討し， アクションプランにまで具体化する。</dd>
<dt>イ</dt>
<dd>企業を，内部環境と外部環境の観点から，強み，弱み，機会，脅威という四つの視点で評価し，企業を取り巻く環境を認識する。</dd>
<dt>ウ</dt>
<dd>事業を，分散型，特化型，手詰まり型，規模型という四つのタイプで評価し，自社の事業戦略策定に役立てる。</dd>
<dt>エ</dt>
<dd>製品を，導入期，成長期，成熟期，衰退期という四つの段階に分類し，企業にとって最適な戦略策定に活用する。</dd>
</dl>
</div>
<p>「 SWOT 分析」という用語の意味がわかれば正解できる問題です。</p>
<p>答えは、イの「企業を、内部環境と外部環境の観点から、強み、弱み、機会、脅威という四つの視点で評価し、企業を取り巻く環境を認識する」ですが、この説明と「 SWOT 分析」という用語を対応付けて覚えられるでしょうか。</p>
<p>おそらく、困難なはずです。</p>
<p>&nbsp;</p>
<p><span class="bold">「 SWOT 分析」の「 SWOT 」は、略語です。面倒くさがらずに、何の略か調べてみましょう。</span></p>
<p>&nbsp;</p>
<p>S は「 Strength（強さ）」、<br />
W は「 Weakness（弱さ）」、<br />
O は「 Opportunity（機会）」、<br />
T は「 Threat（脅威）」</p>
<p>です。</p>
<p>「 SWOT 分析」は、企業の良い点と悪い点を、内部環境と外部環境に分けて分析することです。</p>
<p>内部環境の良い点が「 Strength（強さ）」であり、悪い点が「 Weakness（弱さ）」です。<br />
外部環境の良い点が「 Opportunity（機会）」であり、悪い点が「 Threat（脅威）」です。</p>
<p>これらを覚えれば、「 SWOT 分析」という用語が、先ほどの問題の選択肢のどれに該当するかが、すぐにわかるはずです。</p>
<p><i class="material-icons indigo-text text-lighten-2 mag_h30">label</i> 関連タグ: <a href="../../tag/SWOT分析" class="tag">SWOT分析</a></p>
<h2>変な日本語の用語は、もとの英語の意味を調べる</h2>
<div class="card-panel mag_h30">
問37 ( 平成 28 年度　秋期 )</p>
<p>情報の &#8220;完全性&#8221; を脅かす攻撃はどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>Web ページの改ざん</dd>
<dt>イ</dt>
<dd>システム内に保管されているデータの不正コピー</dd>
<dt>ウ</dt>
<dd>システムを過負荷状態にする DoS 攻撃</dd>
<dt>エ</dt>
<dd>通信内容の盗聴</dd>
</dl>
</div>
<p>「完全性」という用語の意味がわかれば正解できる問題です。</p>
<p>答えは、アの「 Web ページの改ざん」ですが、Web ページを改ざんすることが「完全性」を脅かすことだと感じられるでしょうか。</p>
<p>おそらく、違和感を感じるはずです。</p>
<p>&nbsp;</p>
<p>立派な学者さんはどうかわかりませんが、一般的な日本人なら、「完全」という言葉の英語訳として「パーフェクト（ perfect ）」を思い浮かべるでしょう（私もそうです）。</p>
<p>野球やボーリングの「パーフェクトゲーム」のイメージです。しかし、このイメージは、「 Web ページを改ざん」には合いません。</p>
<p>&nbsp;</p>
<p><span class="bold">「完全性」のような日本語の用語の多くは、英語の用語を訳したものです。面倒くさがらずに、書籍やインターネットで、もとの英語を調べてみましょう。</span></p>
<p>&nbsp;</p>
<p><span class="bold">「完全性」は、「パーフェクト（ perfect ）」ではなく、「インテグリティ（ integrity ）」</span>です。</p>
<p>それがわかったら、逆に、英和辞典で「インテグリティ（ integrity ）」の日本語訳を調べてみましょう。</p>
<p>筆者が調べた辞書には、「整合性」を代表的な訳として、その他に「保全」「清廉」「正直」「節操」などの訳がありましたが、「完全性」や「完全」という訳はありませんでした。</p>
<p>&nbsp;</p>
<p>つまり、こう言っては失礼かもしれませんが、「インテグリティ（ integrity ）」を「完全性」と訳したこと自体が不適切だったのです。</p>
<p>&nbsp;</p>
<p>Web ページを改ざんすると、もとの Web ページと異なる内容になるので、情報の「整合性」が脅かされます。情報の「インテグリティ（ integrity ）」が脅かされるのです。</p>
<p>不適切な日本語訳で言うと、情報が「パーフェクト（ perfect ）」でなくなるのです。情報が元通りの内容であることが、「パーフェクト（ perfect ）」なのでしょう。</p>
<p>そう考えると「まあ、完全性でもいいかなあ」と妥協して覚えられます。</p>
<h2>関連する複数の用語を一緒に覚える</h2>
<div class="card-panel mag_h30">
問 17　( 平成 27 年度　秋期 )</p>
<p>仮想記憶管理のページ入替え方式のうち，最後に使われてからの経過時間が最も長いページを入れ替えるものはどれか。</p>
<p>ア　FIFO　　イ　LFU　　<br class="hide-on-med-and-up">ウ　LIFO　　エ　LRU
</div>
<p>この問題は、仮想記憶における「ページングアルゴリズム」に関する問題です。</p>
<p>答えは、エの「 LRU 」なのですが、この問題を通して「 LRU 」という1つの用語だけを覚えるのではなく、他のページングアルゴリズムの「 FIFO 」と「 LFU 」も一緒に覚えるとよいでしょう。</p>
<p>それぞれの違いを比べれば覚えやすく、さらに、まとめて覚えられて効率的だからです。</p>
<p>&nbsp;</p>
<p>ページングアルゴリズムは、実メモリにあるページの中で、仮想メモリに追い出すページを決めるものです。</p>
<dl class="background c-round">
<dt class="post-title indigo-text">FIFO ＝ First In First Out</dt>
<dd>最初にページインしたページを最初にページアウトする。</dd>
<dt class="post-title indigo-text">LRU ＝ Least Recently Used</dt>
<dd>最も最近に使われていないページをページアウトする（最後に使われてから最も時間が経過しているページをページアウトする）</dd>
<dt class="post-title indigo-text">LFU ＝ Least Frequently Used</dt>
<dd>最も頻繁に使われていないページをページアウトする（使われた回数が最も少ないページをページアウトする）</dd>
</dl>
<p>これら 3 つのページングアルゴリズムは、どれも、今後使われる可能性が低いページを決める考え方です。</p>
<p>どのアルゴリズムが効果的なのかは、状況次第です。それぞれ納得できる考え方だと思いますので、一緒に覚えてください。</p>
<p>&nbsp;</p>
<p>ページングアルゴリズムの種類は、3 つだけなのですが、問題には選択肢を 4 つ作らなければならないので、ウに「 LIFO 」という無関係な用語があります。市販の書籍には、このような用語の説明もあると思いますが、無関係なのですから気にする必要はありません。</p>
<p>この「 LIFO 」は、「 LIFO 」自体もしくは、それに関連した用語がテーマの問題に遭遇したときに覚えてください。</p>
<p><i class="material-icons indigo-text text-lighten-2 mag_h30">label</i> 関連タグ: <a href="../../tag/fifo-lru-lfu/" class="tag">FIFO LRU LFU</a></p>
<h2>どうしてもピンと来ない英語の用語は語源を調べる</h2>
<div class="card-panel mag_h30">
問 44　( 平成 29 年度　秋期 )</p>
<p>図のように，クライアント上のアプリケーションがデータベース接続プログラム経由でサーバ上のデータベースのデータにアクセスする。アプリケーションとデー タベースとの間で送受信されるコマンドや実行結果の漏えいを防止する対策はどれか。</p>
<p><img class="materialboxed hoverable mag_h10" src="../../wp-content/uploads/2018/11/q44_figure.png"></p>
<dl class="inline">
<dt>ア</dt>
<dd>サーバ側のデータベース接続プログラムにアクセスできるクライアントの IP アドレスを必要なものだけに制限する。</dd>
<dt>イ</dt>
<dd>サーバ側のデータベース接続プログラムを起動・停止するときに必要なパスワードを設定する。</dd>
<dt>ウ</dt>
<dd>データベース接続プログラムが通信に使用するポート番号をデータベース管理システムでの初期値から変更する。</dd>
<dt>エ</dt>
<dd>データベース接続プログラム間の通信を暗号化する。</dd>
</dl>
</div>
<p>この問題の内容は、用語の意味を問うものではありませんが、問題を解くには「セキュリティ」という基本的な用語の意味をわかっている必要があります。</p>
<p>英和辞典で調べると、「セキュリティ（ security ）」の日本語訳には、「安全」「無事」「安心」「防御」「保護」「警戒」「警備」など、様々な言葉が並んでいます。</p>
<p>これでは、つかみどろことがありません。それに、「安心」は「 safety 」であり、「防御」は「 defense 」でしょう。どの日本語訳も、私たちが持つ「セキュリティ」のイメージに、ピッタリと合ってはいません。</p>
<p>&nbsp;</p>
<p><span class="bold">このように、英和辞典で英語の用語の日本語訳を調べてもピンと来るものがない場合は、最後の手段として、語源を調べるしかありません。</span></p>
<p><span class="bold">英和辞典の中には、日本語訳の他に、語源が載っているものがあるので、面倒くさがらずに調べてください。</span></p>
<p>&nbsp;</p>
<p>「セキュリティ」の語源は、ラテン語であり、「セ」が「離れる」という意味で、「キュリティ」が「心配事」という意味です。</p>
<p>「心配事から離れる」を漢字を並べた用語で示すことができなかったので、「セキュリティ」の日本語訳として、「安心」や「防御」という様々な言葉があるのでしょう。</p>
<p>&nbsp;</p>
<p>「セキュリティ」の本当の意味が、「心配事から離れる」であることがわかったところで、あらためて先ほどの問題を見てみましょう。</p>
<p>難しそうな図が示されていますが、問題の内容は「盗聴を防止する対策はどれか」ということだけです。つまり <span class="bold">「盗聴」という「心配事」から「離れる」ための「対策」は、何かということ</span> です。</p>
<p>&nbsp;</p>
<p>選択肢を見てみましょう。エの「暗号化」が最も適切なので、エを選んでください。実際の正解もエです。</p>
<p>&nbsp;</p>
<div class="divider mag_h30"></div>
<p><span class="bold">「用語は暗記するしかない」という人がいますが、これは良くない覚え方</span>だと思います。</p>
<p>暗記は、つまらないからです。それに、暗記しただけのことは、すぐに忘れてしまいます。</p>
<p>この記事で紹介した方法を参考にして、用語を覚える工夫をしてください。</p>
<p>その際のポイントは、記事の中で何度も書きましたが「面倒くさがらないこと」です。面倒くらさがずに調べれば「へえ！ そうだったのか」という発見があり、楽しい気分になるはずです。せっかく試験を受けるのですから、勉強することを楽しんてください。</p>
<p>それでは、またお会いしましょう！</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon_tokikata/how_to_memory_keywords/">暗記しない用語の覚え方｜過去問の解き方知りたいぜ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>午後問題の歩き方 &#124; 午後問題の読み方 ～ソフトウェア OS</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/gogo_arukikata/guide_sw_of_questions_at_pm/</link>
		<pubDate>Thu, 21 Jun 2018 05:35:28 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[FIFO LRU LFU]]></category>
		<category><![CDATA[ソフトウェア]]></category>
		<category><![CDATA[午後問題の解説]]></category>
		<category><![CDATA[消去法のやり方]]></category>

		<guid isPermaLink="false">http://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=gogo_arukikata&#038;p=233</guid>
		<description><![CDATA[<p>ソフトウェアの午後問題のテーマは、 「 OS 」 「コンパイラ」 「その他」 に大きく分類できます。 これらの中で OS に関する問題がよく出題されるので、過去問題をよく練習しておきましょう。 ここでは、例として、平成  [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/gogo_arukikata/guide_sw_of_questions_at_pm/">午後問題の歩き方 | 午後問題の読み方 ～ソフトウェア OS</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ソフトウェアの午後問題のテーマは、</p>
<ul class="background">
<li class="bold">「 OS 」</li>
<li class="bold">「コンパイラ」</li>
<li class="bold">「その他」</li>
</ul>
<p>に大きく分類できます。</p>
<p>これらの中で OS に関する問題がよく出題されるので、過去問題をよく練習しておきましょう。</p>
<p>ここでは、例として、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2013h25_1/2013h25h_fe_pm_qs.pdf#page=9" rel="noopener" target="_blank">平成 25 年度 春期 午後 問 2「仮想記憶方式」</a>を紹介します。仮想記憶は、OS の機能のひとつです。</p>
<div class="card-panel blue-grey-text z-depth-0 grey lighten-5 mag_h30">
<i class="material-icons blue-text">error</i> <span class="small-text">本記事ではわかりやすいよう、問題に記号を入れています</span>
</div>
<style>dl.inline dd{margin-left:2em}</style>
<h2>長々とした説明と難しそうな図にまどわされるな</h2>
<p>以下は、問題の冒頭部分です。長々とした説明と、いかにも難しそうな図が示されています。</p>
<p>午後問題の問 2 ～問 7 は、選択問題（ 6 問中 4 問選択）です。</p>
<p>はたして、皆さんは、この説明と図を見て、この問題を選択するでしょうか。おそらく、しないでしょう。</p>
<p>しかし、<span class="bold">それは誤った判断</span>です。</p>
<p>実は、この問題は、あとで設問を見ればわかりますが、とっても簡単なのです。この説明と図を見なくても解けます。</p>
<div class="card-panel mag_h30">
問 2　仮想記憶方式に関する次の記述を読んで，設問 1 ～ 3 に答えよ。</p>
<p>　OS の主記憶管理において，仮想記憶方式は， OS が提供する論理的な記憶領域 (以下，仮想記憶という) 上のアドレスと主記憶上の物理的なアドレスを対応付けて管理する方式である。仮想記憶方式では，補助記憶装置を仮想記憶として用いるので，仮想記憶上に主記憶の容量を超えるプログラムを格納することができる。仮想記憶上のアドレス空間を仮想アドレス空間，主記憶上のアドレス空間を物理アドレス空間と呼び，それぞれの空間の記憶場所を仮想アドレスと物理アドレスで指定する。</p>
<p>　仮想記憶方式の一つに，ページング方式がある。ページング方式は，仮想アドレス空間と物理アドレス空間のそれぞれをページと呼ぶ固定長の領域に分割しておき，ページ単位でアドレス空間を管理する。ページング方式による仮想アドレス空間のページと物理アドレス空間のページの対応例を，図 1 に示す。図 1 では，補助記憶装置に格納されているプログラム A は a1 ， a2 ， a3 ， a4 ， a5 に分割されて，仮想ページ番号 1 ～ 5 のページに格納されている。</p>
<p><img class="mag_h30 hoverable materialboxed" src="../../wp-content/uploads/2018/06/Q2_figure1_h25_spring.png" alt="" style="width: 90%; margin: auto;" /></p>
<p>　仮想アドレス空間及び物理アドレス空間の各ページには，先頭から順に番号を付け，それぞれを仮想ページ番号，物理ページ番号と呼ぶ。仮想ページと物理ページの対応は，ページテーブルで管理する。ページテーブルの要素の個数は仮想ページの個数と同じであり，各要素が仮想ページの 1 ページに対応している。ページテーブルでは，仮想ページの内容が物理アドレス空間にも存在しているかどうかを示すビット (以下，存在ビットという) と物理ページ番号が管理されている。存在ビットは，ページが存在しているとき 1 ，存在していないとき 0 とする。
</p></div>
<p>それでは、なぜ、問題の冒頭に、長々とした説明と難しそうな図があるのでしょうか。</p>
<p>仮想記憶には、様々な形式があるので、単に「仮想記憶において、以下の設問に答えよ」という問題では、あとで受験者から<span class="bold">「どういう形式の仮想記憶を想定しているかによって、答えが違ってくるので、この問題は解けないじゃない！」というクレームが来てしまう</span> かもしれないからです。</p>
<p>もしも、筆者が出題者だったら「ごく普通に基本情報技術者試験の勉強をされた皆さんがご存知の仮想記憶において」という前置きにしますが、実際の試験の出題者は、そんなくだけたことを書けませんので、長々とした説明と難しそうな図があるのです（これは、筆者の推測です）。</p>
<h2>先に選択肢を見れば、落ち着いて正解を選べる</h2>
<p>冒頭の長々とした説明と難しそうな図は気にしないで、設問 1 を見てみましょう。</p>
<p>ここにも、問題解法のポイントがあります。それは、<span class="bold">設問の文章よりも、選択肢に注目すること</span>です。</p>
<p>設問の文章は、長々とした説明になっていて難しそうに見える場合がありますが、選択肢を見ると、「な～んだ、自分の知っている言葉ばかりじゃないか！」ということがよくあります。</p>
<p>ですから、まず選択肢を見て、それから設問の文書を読めば、落ち着いて正解を選ぶことができます。</p>
<p>&nbsp;</p>
<p>以下は、実際の試験問題と同じに「設問の文書」→「選択肢の順」に並べたものです。これは、ちょっと難しい感じがするでしょう。</p>
<div class="card-panel mag_h50">
<p>　プログラムの実行過程で存在ビットを調べプログラムの実行に必要なページが <span class="blank">a</span> に存在していないときには，ページフォールトという割込みが発生する。ページフォールトが発生すると，ページアウトやページインなどのページ置換え処理が実行される。ページ置換え処理のアルゴリズムには，ページインしてから最も時間が経過しているページを置換え対象とする FIFO アルゴリズムや，参照されていない時間が最も長いページを置換え対象とする。 <span class="blank">b</span> アルゴリズムなどがある。</p>
<p>設問 1</p>
<p>次の記述中の <span class="blank"></span> に入れる正しい答えを，解答群の中から選べ。</p>
<p>解答群<br />
ア　LFU　　<br class="hide-on-med-and-up">イ　LIFO　　<br class="hide-on-med-and-up">ウ　LRU<br />
エ　仮想アドレス空間　　<br class="hide-on-med-and-up">オ　物理アドレス空間
</div>
<p>以下は、実験的に「選択肢」→「設問の文章」の順に並べたものです。</p>
<p>さっきより、簡単になったように感じませんか。問題を解くときには、、<span class="bold">選択肢 → 設問の文書</span> の順に見ることをオススメします。</p>
<div class="card-panel mag_h50">
設問 1</p>
<p>次の記述中の <span class="blank"></span> に入れる正しい答えを，解答群の中から選べ。</p>
<p>解答群<br />
ア　LFU　　<br class="hide-on-med-and-up">イ　LIFO　　<br class="hide-on-med-and-up">ウ　LRU<br />
エ　仮想アドレス空間　　<br class="hide-on-med-and-up">オ　物理アドレス空間</p>
<p>（設問の文章）<br />
　プログラムの実行過程で存在ビットを調べプログラムの実行に必要なページが <span class="blank">a</span> に存在していないときには，ページフォールトという割込みが発生する。ページフォールトが発生すると，ページアウトやページインなどのページ置換え処理が実行される。ページ置換え処理のアルゴリズムには，ページインしてから最も時間が経過しているページを置換え対象とする FIFO アルゴリズムや，参照されていない時間が最も長いページを置換え対象とする。 <span class="blank">b</span> アルゴリズムなどがある。
</div>
<p>仮想記憶では、プログラムを「ページ」と呼ばれる固定サイズに区切り、実行に必要なページを「物理メモリ（電子的なメモリ）」に置きます。必要なページが実メモリに存在しないことを「ページフォルト（ page fault ）」と呼びます。</p>
<p>したがって、空欄 a に入るのは、選択肢オの「物理アドレス空間」です。</p>
<h2>3 点セットで覚えてほしい FIFO、LRU、LFU</h2>
<p>今度は、設問 1 の空欄 b です。</p>
<p>ページフォルトが生じたときには、物理メモリに置かれたページの中で、今後使われる可能性が最も低いページを、「仮想メモリ（ハードディスク）」に書き込んで（ページアウト）から、必要なページを物理メモリに読み込み（ページイン）します。</p>
<p>今後使われる可能性が最も低いページを判断する方法には、「 FIFO 」「 LRU 」「 LFU 」の3つがあり、これらを「ページ置換えアルゴリズム」と呼びます。</p>
<p>&nbsp;</p>
<p>ページ置換えアルゴリズムは、午前問題でとてもよく出題されています。</p>
<p>筆者は、独自に「よく出る問題と用語 Top 100」を調べたことがあるのですが、ページ置換えアルゴリズムの中の LRU は、Top 10 に入っています。</p>
<p>この問題の答えも、LRU（選択肢ウ）です。</p>
<p>&nbsp;</p>
<p>FIFO 、LRU 、LFU は、3 点セットで覚えてください。略語のままではなく、略語の意味を調べて、日本語に訳して覚えましょう。</p>
<dl class="background c-round">
<dt class="post-title">FIFO ＝ First In First Out</dt>
<dd>最初にページインしたページを最初にページアウトする。</dd>
<dt class="post-title">LRU ＝ Least Recently Used</dt>
<dd>最も最近に使われていないページをページアウトする（最後に使われてから最も時間が経過しているページをページアウトする）</dd>
<dt class="post-title">LFU ＝ Least Frequently Used</dt>
<dd>最も頻繁に使われていないページをページアウトする（使われた回数が最も少ないページをページアウトする）</dd>
</dl>
<p><i class="material-icons indigo-text mag_h30">label</i> 関連タグ: <a href="../../tag/fifo-lru-lfu/" class="tag">FIFO LRU LFU</a></p>
<h2>処理の順番を問う問題は、消去法でやればいい</h2>
<p>設問 2 は、ページフォルトが発生したときに、どのような順序でページの置き換え（ページアウトとページイン）が行われるかという問題です。この問題を見て、どう思いますか？</p>
<p>「そんなの知らないよ！」と思うでしょう。筆者も、同じです。</p>
<p>でも、大丈夫です。知らなくても、常識的な判断で正解できます。</p>
<div class="card-panel mag_h50">
設問 2</p>
<p>プログラム A を実行するために割り当てられた物理アドレス空間の物理ページの個数が 3 の場合を考える。プログラム A の実行過程において，物理アドレス空間に a1， a2， a3 が存在している状態で a4 を参照するとページフォールトが発生する。このページフォールトが発生した後の処理の流れとして適切な答えを，解答群の中から選べ。ここで，解答群中の処理は左から右に向かって行うものとする。</p>
<p>【処理の単位】</p>
<dl class="inline">
<dt>①</dt>
<dd>退避させるページをページアウトする。</dd>
<dt>②</dt>
<dd>ページ置換えアルゴリズムによって，物理アドレス空間からページアウトするページを決定する。 </dd>
<dt>③</dt>
<dd>実行に必要なページをページインする。 </dd>
<dt>④</dt>
<dd>ページアウトしたページに対応するページテーブルの要素の存在ビットを 0 にする。</dd>
<dt>⑤</dt>
<dd>ページインしたページに対応するページテーブルの要素の存在ビットを 1 にする。</dd>
<dt>⑥</dt>
<dd>ページアウトしたページに対応するページテーブルの要素の物理ページ番号を設定する。</dd>
<dt>⑦</dt>
<dd>ページインしたページに対応するページテーブルの要素の物理ページ番号を設定する。</dd>
</dl>
<p>解答群<br />
ア　①→②→③→④→⑤→⑥　　<br class="hide-on-med-and-up">イ　①→③→②→④→⑦→⑤<br />
ウ　②→①→④→③→⑤→⑥　　<br class="hide-on-med-and-up">工　②→①→④→③→⑦→⑤<br />
オ　②→③→①→④→⑤→⑥　　<br class="hide-on-med-and-up">力　②→③→⑤→⑥→①→④
</div>
<p><span class="bold">処理の順番を問う問題は、選択肢の違いに注目して「これば違う」と判断できたものを消して行けばよい</span> のです。つまり消去法です。</p>
<p>&nbsp;</p>
<p>選択肢には、<span class="u">1 番目の手順が ①（ページアウトする）のものと、②（ページアウトするページを決定する）のもの</strong> があります。</p>
<p>常識的に考えて、ページアウトするページを決定しなければ、ページアウトできないはずですから、1 番目の手順が ① の選択肢に <span class="bold"> <i class="material-icons red-text">clear</i> </span> を付けて消去します。</p>
<div class="card-panel mag_h50">
解答群</p>
<p><span class="bold"><i class="material-icons red-text">clear</i></span>ア①→②→③→④→⑤→⑥　　<br class="hide-on-med-and-up"><span class="bold"><i class="material-icons red-text">clear</i></span>イ①→③→②→④→⑦→⑤<br />
ウ　②→①→④→③→⑤→⑥　　<br class="hide-on-med-and-up">工　②→①→④→③→⑦→⑤<br />
オ　②→③→①→④→⑤→⑥　　<br class="hide-on-med-and-up">力　②→③→⑤→⑥→①→④
</div>
<p>残った選択肢には、<span class="u">2 番目の手順が ①（ページアウトする）のものと、③（ページインする）のもの</span> があります。</p>
<p>常識的に考えて、ページアウトしてページを空けないとページインできないはずですから、2 番目の手順が ③ の選択肢に <span class="bold"><i class="material-icons red-text">clear</i></span> を付けて消去します。</p>
<div class="card-panel mag_h50">
解答群</p>
<p><span class="bold"><i class="material-icons red-text">clear</i></span>ア①→②→③→④→⑤→⑥　　<br class="hide-on-med-and-up"><span class="bold"><i class="material-icons red-text">clear</i></span>イ①→③→②→④→⑦→⑤<br />
ウ　②→①→④→③→⑤→⑥　　<br class="hide-on-med-and-up">工　②→①→④→③→⑦→⑤<br />
<span class="bold"><i class="material-icons red-text">clear</i></span>オ　②→③→①→④→⑤→⑥　　<br class="hide-on-med-and-up"><span class="bold"><i class="material-icons red-text">clear</i></span>力　②→③→⑤→⑥→①→④
</div>
<p>残った選択肢は、ウとエです。</p>
<p>両者は、<span class="u">②（ページアウトするページを決定する）→ ①（ページアウトする）→ ④（ページアウトしたページの存在ビットを 0 にする）→ ③（ページインする）まで同じ</span> です。</p>
<p>その後は、</p>
<p>選択肢ウでは、⑤（ページインしたページの存在ビットを1にする）→ ⑥（ページアウトしたページの物理ページ番号を設定する）です。</p>
<p>選択肢エ では、⑦（ページインしたページの物理ページ番号を設定する）→ ⑤（ページインしたページの存在ビットを 1 にする）です。</p>
<p>&nbsp;</p>
<p>ここは、ちょっと悩むかもしれませんが、常識的に考えてください。</p>
<p>ページアウトしたページは、もはや物理メモリには存在していないのです。</p>
<p>したがって、手順の中に ⑥（ページアウトしたページの物理ページ番号を設定する）がある選択肢ウは、不適切であるとわかります。</p>
<p>残った選択肢エが正解です。</p>
<p><i class="material-icons indigo-text mag_h50">label</i> 関連タグ: <a href="../../tag/消去法のやり方" class="tag">消去法のやり方</a></p>
<h2>コツコツと解く問題も練習しておこう</h2>
<p>最後の設問 3 は、「 FIFO（ First In First Out ）のページ置換えアルゴリズムで、物理ページが 3 の場合と 4 の場合において、それぞれページフォルトが何回発生するか実際にやってみよ」という問題です。</p>
<p>この手の問題は、絵を描いてコツコツと解くしかありません。ひたすら練習あるのみです。</p>
<p>実際の試験の前に、この手の問題に遭遇できたことをラッキーだと思って、丁寧に練習してください。</p>
<div class="card-panel">
設問 3</p>
<p>次の記述中の <span class="blank"></span> に入れる正しい答えを，解答群の中から選べ。</p>
<p>ページ置換えアルゴリズムとして FIFO アルゴリズムを採用する。プログラムの実行過程で仮想ページが次の順で参照されるとき，物理ページの個数が3の場合のページフォールトの回数は <span class="blank">c</span> 回である。そして，物理ページの個数を 4 に増やした場合のページフォールトの回数は <span class="blank">d</span> 回である。ここで，プログラムの実行開始時点では，物理アドレス空間にはどのページも存在していないものとする。</p>
<p>【仮想ページの参照順を示す仮想ページ番号の並び】<br />
1 → 4 → 3 → 2 → 1 → 4 → 5 → 1 → 4 → 3 → 2 → 5 → 1</p>
<p>解答群</p>
<p>ア　8　　イ　9　　ゥ　10　　ェ　11　　オ　12
</p></div>
<p>物理ページが 3 の場合は、以下のようになります。ここでは、［　］でページを示しています。</p>
<p>ページフォルト（参照するページがないので、ページインする）は、全部で 10 回なので、空欄 c はウです。</p>
<table class="bordered mag_h40">
<thead>
<tr>
<th>［ ］</th>
<th>［ ］</th>
<th>［ ］</th>
<th>初期状態</th>
</tr>
</thead>
<tbody>
<tr>
<td>［1］</td>
<td>［ ］</td>
<td>［ ］</td>
<td>1 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［1］</td>
<td>［4］</td>
<td>［ ］</td>
<td>4 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［1］</td>
<td>［4］</td>
<td>［3］</td>
<td>3 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［2］</td>
<td>［4］</td>
<td>［3］</td>
<td>2 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［2］</td>
<td>［1］</td>
<td>［3］</td>
<td>1 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［2］</td>
<td>［1］</td>
<td>［4］</td>
<td>4 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［5］</td>
<td>［1］</td>
<td>［4］</td>
<td>5 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［5］</td>
<td>［1］</td>
<td>［4］</td>
<td>1 を参照</td>
</tr>
<tr>
<td>［5］</td>
<td>［1］</td>
<td>［4］</td>
<td>4 を参照</td>
</tr>
<tr>
<td>［5］</td>
<td>［3］</td>
<td>［4］</td>
<td>3 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［5］</td>
<td>［3］</td>
<td>［2］</td>
<td>2 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［5］</td>
<td>［3］</td>
<td>［2］</td>
<td>5 を参照</td>
</tr>
<tr>
<td>［1］</td>
<td>［3］</td>
<td>［2］</td>
<td>1 を参照（ページフォルト）</td>
</tr>
</tbody>
</table>
<p>物理ページが 4 の場合は、以下のようになります。ページフォルトは、全部で 11 回なので、空欄 d はエです。</p>
<table class="bordered mag_h40">
<thead>
<tr>
<th>［ ］</th>
<th>［ ］</th>
<th>［ ］</th>
<th>［ ］</th>
<th>初期状態</th>
</tr>
</thead>
<tbody>
<tr>
<td>［1］</td>
<td>［ ］</td>
<td>［ ］</td>
<td>［ ］</td>
<td>1 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［1］</td>
<td>［4］</td>
<td>［ ］</td>
<td>［ ］</td>
<td>4 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［1］</td>
<td>［4］</td>
<td>［3］</td>
<td>［ ］</td>
<td>3 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［1］</td>
<td>［4］</td>
<td>［3］</td>
<td>［2］</td>
<td>2 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［1］</td>
<td>［4］</td>
<td>［3］</td>
<td>［2］</td>
<td>1 を参照</td>
</tr>
<tr>
<td>［1］</td>
<td>［4］</td>
<td>［3］</td>
<td>［2］</td>
<td>4 を参照</td>
</tr>
<tr>
<td>［5］</td>
<td>［4］</td>
<td>［3］</td>
<td>［2］</td>
<td>5 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［5］</td>
<td>［1］</td>
<td>［3］</td>
<td>［2］</td>
<td>1 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［5］</td>
<td>［1］</td>
<td>［4］</td>
<td>［2］</td>
<td>4 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［5］</td>
<td>［1］</td>
<td>［4］</td>
<td>［3］</td>
<td>3 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［2］</td>
<td>［1］</td>
<td>［4］</td>
<td>［3］</td>
<td>2 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［2］</td>
<td>［5］</td>
<td>［4］</td>
<td>［3］</td>
<td>5 を参照（ページフォルト）</td>
</tr>
<tr>
<td>［2］</td>
<td>［5］</td>
<td>［1］</td>
<td>［3］</td>
<td>1 を参照（ページフォルト）</td>
</tr>
</tbody>
</table>
<div class="divider mag_tp30 mag_bt50"></div>
<p>午後問題の多くは、常識的な判断で解けます。そして、常識的な知識は、午前問題の学習によって得られます。</p>
<p><span class="u">もしも、午後問題で苦手な分野があるなら、その分野の午前問題を数多く解いてください。</span>きっと、苦手を克服できるはずです。</p>
<p>それではまた、お会いしましょう！</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/gogo_arukikata/guide_sw_of_questions_at_pm/">午後問題の歩き方 | 午後問題の読み方 ～ソフトウェア OS</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
	</channel>
</rss>
