
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
Linuxオペレーティングシステムに関する記述のうち最も適切なものを選ぶ問題。CPUの命令実行モード、API、プロセスの切替え、スレッド、スタック領域の役割を問う。
OSの基本概念(実行モード、プロセス、スレッド、メモリ領域)の正確な理解を問う問題。
① OSの基本: ユーザモードとカーネルモードを分けるのは保護のため、スタック=関数呼出しの戻り番地や局所変数を置く領域、スレッドは1つのプロセスの中の流れ
② ①理由は高速化ではない、②APIはプロセス間通信専用ではない、③切替えはタイマやシステムコールでも起こる、④プロセスをまたがない
③ ⑤
C言語のプログラムの実行時には、コード領域、データ領域、ヒープ領域、スタック領域などが確保される。スタック領域は、手続き(関数)呼出しの戻り番地や、局所変数、引数などを格納するのに使われる。したがって⑤が最も適切である。
プロセスのメモリは、コード、データ、ヒープ、スタックに分かれる。スタックは関数呼出しの管理(戻り番地・局所変数)に使う。カーネルモードとユーザモードの分離は保護のため。
キーワード: Linux、OS、スタック領域、プロセス、スレッド、割り込み、カーネル、情報工学部門