Comments
Description
Transcript
バディシステム(buddy system)
バディシステム(buddy system) サイズ S のプロセスに対してサイズ 2k (2k-1 < S ≦ 2k) の領域を割り当てる サイズ 200KB のプロセスの場合, 256KB の領域を割り当てる 初期状態はメモリ全体が一つの区画であり必要に応じて区画を 1/2, 1/4, 1/8, ... と分割する 例: 1024KB のメモリに対して、120KB (64<120≦128)のプロセスが発生した場合 適切なサイズになるまで分割 1024KB 分割 512KB 256KB 512KB 256KB 512KB 128KB 128KB 256KB 512KB 128KB 128KB 256KB 512KB プロセスを割り当て バディ:分割によってできた同じサイズ 2 つの区画対 バディが共に空いた場合、統合して一つの区画にする 1024KB バディ(buddy) 512KB 512KB 256KB 128K 128K 256KB 128K 128K 256KB 128K 256KB 128K バディではない 128K 128K バディシステムの実行例 1024KB プロセス 1 : 100KB 要求 128KB 分割 分割 128KB 256KB 512KB 128KB 256KB 512KB 256KB 512KB プロセス 2 : 240KB 要求 128KB プロセス 3 : 60KB 要求 128KB 分割 64 64 プロセス 4 : 200KB 要求 128KB 分割 64 64 256KB 256KB 256KB 64 64 256KB 256KB 256KB 64 64 256KB 256KB 256KB 64 64 256KB 256KB 256KB 256KB 256KB 256KB 256KB 256KB プロセス 2 : 240KB 解放 128KB プロセス 1: 100KB 解放 128KB プロセス 5 : 70KB 要求 128KB プロセス 3 : 60KB 解放 128KB プロセス 5 : 70KB 解放 統合 128KB 統合 統合 256KB プロセス 4 : 200KB 解放 統合 1024KB 統合