

問題
複数のプロセスから同時に呼び出されたときに,互いに干渉することなく並行して動作することができるプログラムの性質を表すものはどれか。
- ア:リエントラント
- イ:リカーシブ
- ウ:リユーザブル
- エ:リロケータブル
基本情報技術者平成31年春期 午前問8
問題
再入可能プログラムの特徴はどれか。
- ア:主記憶上のどこのアドレスに配置しても,実行することができる。
- イ:手続の内部から自分自身を呼び出すことができる。
- ウ:必要な部分を補助記憶装置から読み込みながら動作する。主記憶領域の大きさに制限があるときに,有効な手法である。
- エ:複数のタスクからの呼出しに対して,並行して実行されても,それぞれのタスクに正しい結果を返す。
基本情報技術者平成27年春期 午前問7
基本情報技術者試験や応用情報技術者試験で出題されるプログラムの性質を表す問題。リエントラントやリカーシブなど聞きなれない言葉のため、難しく感じる問題ですが、各性質を理解してしまえばそこまで難しい問題ではありません。
本記事では、「プログラムの性質」について図解で分かりやすく解説しています。
本記事で学べること
- リロケータブル(再配置可能)について理解する
- リユーザブル(再使用可能)について理解する
- リエントラント(再入可能)について理解する
- リカーシブ(再帰的)について理解する
- 基本情報技術者試験の過去問の解き方を学ぶ
目次
プログラムの性質
プログラムには次の4つの性質があります。
スポンサーリンク
リロケータブル(再配置可能)
リロケータブル(再配置可能)とは、プログラムをメモリ上の何処に配置しても実行できるという性質のことです。
プログラム内蔵方式を採用しているコンピュータは、プログラムを実行するときハードディスクなどの補助記憶装置に保存してあるプログラムを主記憶装置(メインメモリ)に読み込んでから実行します。

このとき、リロケータブルの性質を持つプログラムは、メモリ上の何処に配置しても実行することができます。このようなプログラムのことを「再配置可能プログラム」といいます。
再配置可能プログラムは、ベースアドレス指定方式(基底アドレス指定方式)などの方式を利用しているため、メモリ上のどこに配置しても問題なく実行することができます。
例えば、次の図のようにプログラムをメモリアドレス「1001」~「2000」に読み込んだとします。このときベースレジスタには、読み込んだプログラムの先頭アドレスである「1001」を記憶します。

そして 今後は、同じプログラムをメモリアドレス「801」~「1800」に読み込んだとします。ベースレジスタには、読み込んだプログラムの先頭アドレスである「801」を記憶します。

このようにベースレジスタに、メモリ上に読み込んだプログラムの先頭アドレスを記憶することで、位置を特定することができ、メモリ上のどこに配置しても問題なく実行することができます。(先頭以外の位置は、先頭アドレスからの差分で判断できる)
ベースアドレス指定方式の詳細はこちら
リユーザブル(再使用可能)
リユーザブル(再使用可能)とは、メモリ上に読み込まれたプログラムが繰り返し利用可能であるという性質のことです。

コンピュータがプログラムを実行するとき、補助記憶装置に保存されているプログラムを主記憶装置に読み込み実行します。
このとき、リユーザブル(再使用可能)の性質を持つプログラムは、処理を終えたあと再読み込みすることなく何度も繰り返し利用することができます。
リエントラント(再入可能)
リエントラント(再入可能)とは、複数のプログラムを並行して実行するマルチタスクにおいて、実行中プログラムが同時に他のプログラムから呼び出されても正常に処理できるという性質のことです。

リエントラント(再入可能)のプログラムは、使用する変数を共有しないように設計しているため、呼び出し元のプログラム同士が、互いの変数を干渉することなく並行して実行することができます。
リカーシブ(再帰的)
リカーシブ(再帰的)とは、プログラミング言語において処理中に自分自身を呼び出すことができるという性質のことです。

プログラミング言語で作られた関数やメソッドなどの処理の中に、自身の呼び出しを行うコードが含まれることを「再帰呼び出し」といい、そのような関数を「再帰関数(もしくは再帰的関数)」といいます。
再帰呼び出しを利用することで、複雑な処理を短いコードで記述することができるが、処理の終了条件がなかったり、条件が誤っていたりすると、無限に自身を呼び出し続けてしまう(無限ループ)危険性があるため、再帰呼び出しを使用する際は注意が必要です。
スポンサーリンク
基本情報技術者試験 過去問の解説
基本情報技術者平成31年春期 午前問8
問題
複数のプロセスから同時に呼び出されたときに,互いに干渉することなく並行して動作することができるプログラムの性質を表すものはどれか。
- ア:リエントラント
- イ:リカーシブ
- ウ:リユーザブル
- エ:リロケータブル
基本情報技術者平成31年春期 午前問8
設問の性質と一致するものはどれか解答のア~エを順番に確認していきます。

基本情報技術者平成27年春期 午前問7
問題
再入可能プログラムの特徴はどれか。
- ア:主記憶上のどこのアドレスに配置しても,実行することができる。
- イ:手続の内部から自分自身を呼び出すことができる。
- ウ:必要な部分を補助記憶装置から読み込みながら動作する。主記憶領域の大きさに制限があるときに,有効な手法である。
- エ:複数のタスクからの呼出しに対して,並行して実行されても,それぞれのタスクに正しい結果を返す。
基本情報技術者平成27年春期 午前問7
再入可能プログラムの特徴はどれか、設問のア~エを順番に確認していきます。

基本情報技術者試験おすすめの参考書・問題集
いちばんやさしい 基本情報技術者 | 『基本情報技術者試験』試験に、短期間で一発合格するための試験対策本。ITの知識がまったくない、未経験者やでもスラスラと学習を進められるよう、丁寧に解説。 |
かやのき先生の基本情報技術者教室 | 基本情報技術者をめざす方のためのやさしいオールインワンタイプの参考書&問題集。イラストや豊富な図解・例え話を駆使して理解しやすく・記憶に残りやすいように説明。 |
基本情報技術者 パーフェクトラーニング過去問題集 | 科目A・Bともに万全の対策ができる、定番の過去問題集!科目A・科目Bの両方について万全の対策ができる。 |
キタミ式イラストIT塾 基本情報技術者 | すべての解説をイラストベースで行っているため,とてもわかりやすい解説本。いちばん最初に読む基本情報技術者試験関連の書籍を探している人におすすめ! |
出るとこだけ!基本情報技術者[科目B] | 基本情報技術者【科目B】対策の定番書!前提知識+解き方+試験問題を掲載。効率よく学習できる。 |
基本情報技術者 合格教本 | 出題範囲を体系的にきちんと理解しながら学習したい人におすすめ!基本情報技術者試験の定番テキストの改訂版。 |
基本情報技術者 超効率の教科書+よく出る問題集 | 動画でスムーズに学習スタート、テキストでしっかり理解度を深める!よく出る問題を反復学習することで、合格に直結するチカラが身に付く! |