※ 本記事では、基本情報技術者試験の対策として私が勉強したことを備忘録的にまとめておきたいと思います。
少しでも参考になれば嬉しいです。
はじめに
さて今回は、基本情報技術者試験対策として、再配置可能/再使用可能/再入可能/再帰的プログラムについてまとめたいと思います。
これまでしれっと、メモリコンパクションやスワップアウト/スワップインのようにプログラムの場所を動かしていたわけですが実はこれ、困ったことになりかねません。なぜならメモリのアドレスを指定して命令を実行しているから!
結論として、もちろんまぁ問題ないわけですが、それはそれぞれのプログラムが問題ないような特性を有しているからです。しっかりとこの特徴を覚えておくようにしましょう。
ちなみに私はこの参考書を使って勉強してました。
漫画形式で読みやすく、分かりやすい内容になっているため、無理なく学習を進められると思います。
過去問を解きまくり、不明点があれば参考書で知識を補う、このサイクルで試験対策するのが私のオススメです!
最新版はこちらです。
少し内容が異なる部分もあるかもしれませんが、大まかには変わらないはずですので、安心して下さい。
再配置可能プログラム(リロケータブル)
再配置可能プログラム(リロケータブル)は、特定のメモリアドレスに依存せずに実行できるプログラムを指します。この性質により、プログラムが異なるメモリアドレスに動的に配置される環境でも正しく機能します。
再配置可能、文字通りどこにおいてもOKなプログラムです。メモリコンパクションやスワップアウト/スワップインしても大丈夫といった感じですね。
再使用可能プログラム(リユーザブル)
再使用可能プログラム(リユーザブル)とは、主記憶装置上にロードされ、処理の終わったプログラムをもう一度ロードすることなく繰り返し実行できる性質を有したプログラムです。
単純に何度も繰り返し使えるよ~、再使用可能だよ~とったプログラムですね。
再入可能プログラム(リエントラント)
再入可能プログラム(リエントラント)とは、再使用可能プログラムにおいて、プログラムが実行中に同じコードを同時に複数の場所から呼び出されても、正しく動作し続ける性質を持つプログラムのことを指します。リエントラントなプログラムは、特にマルチスレッド環境や割り込み処理が行われるシステムで重要な役割を果たします。
例えば、プログラムAがあった時、このプログラムを「機能1」と「機能2」の両方で同時に呼び出しても大丈夫~的な感じです。プログラムAさんは同時に呼び出されても、「機能1」に対する答えと、「機能2」に対する答えをそれぞれ返すことができます。
再帰的プログラム(リカーシブ)
再帰的プログラム(リカーシブ)は、プログラムの一部が自分自身を呼び出すような構造を持ったプログラムです。この技術は、再帰的問題解決やアルゴリズムの実装において非常に有用です。再帰を利用することで、複雑な問題をシンプルな形に分解しやすくなります。
ちょっと分かりにくいですよね。例を使ってイメージしましょう。
例えば、指定したフォルダ直下に「ファイルA」があるかどうかを調べるプログラムAがあったとします。このプログラムAにフォルダ情報を渡した際、そのフォルダ直下の情報を読み取るわけですが、仮にその中にさらにフォルダがあったらどうなるでしょう。もちろん、そのフォルダ内も調べるためにさらにプログラムAを呼び出します。
このように、プログラムAが実行された中でさらにプログラムAを実行するといったように、プログラムの一部が自分自身を呼び出すような構造を持ったプログラムが再帰的プログラム(リカーシブ)です。
最後に
さて今回は、基本情報技術者試験対策として、再配置可能/再使用可能/再入可能/再帰的プログラムについてまとめました。
特に再入可能プログラム、再帰的プログラムがイメージしにくくないですか??私は苦手です・・・
ただとても重要なのでしっかりと覚えておくようにしましょう!
★再配置可能プログラム
特定のメモリアドレスに依存せずに実行できるプログラム
★再使用可能プログラム
処理の終わったプログラムをもう一度ロードすることなく繰り返し実行できる性質を有したプログラム
★再入可能プログラム
再使用可能プログラムにおいて、プログラムが実行中に同じコードを同時に複数の場所から呼び出されても、正しく動作し続ける性質を持つプログラム
★再帰的プログラム
プログラムの一部が自分自身を呼び出すような構造を持ったプログラム
以上!
前回まとめた記事も読んでもらえると嬉しいです!
基本情報以外の勉強記事も是非!
オススメ参考書 & Udemy講座
過去問編
兎にも角にも過去問を解かないことには始まりません。解いて解いて解きまくりましょう!
特に以下の参考書は問題数が多いのでオススメです。
この1冊だけ買って、とりあえず1周すれば合格がかなり近くなると思います!
科目A+B両方合わせて4セット収録されてるとかヤバすぎます・・・
知識網羅編
以下は知識網羅編として、講義系の参考書、動画をピックアップしています。
1からしっかりと学習し、知識を身に着けたい方はとてもオススメです。
過去問を解きまくり、不明点を参考書で補う。これが最高の勉強サイクルです~
私が勉強する際に使用していたオススメ参考書は以下です。
上記シリーズの最新版は以下です。(内容はそこまで変わらないはずですが・・・)
私がぜひオススメしたい、Udemyの講座もいくつかピックアップしておきます。
誰かに解説してもらった方が分かりやすい場合もありますからね~
画像でもボタンでも、どちらを押下しても講座へ飛べるようにしてありますので是非!
コメント