Sistem Operasi Komputer
Sistem Operasi Komputer Pertemuan VIII – Manajemen Memori
Pembahasan Manajemen Memori • • • • • • •
Latar belakang dan konsep dasar Strategi Ruang alamat lojik dan fisik Swapping Pencatatan pemakaian memori Monoprogramming Contiguous allocation: partisi statis, partisi dinamis, sistem Buddy • Non-contiguous allocation: paging, segmentation
Universitas Kristen Maranatha -- IT Department
1
Sistem Operasi Komputer
Konsep dasar • Von Neumann system data dan program harus tersimpan dalam lokasi yang sama (memori), dengan urutan instruction, fetch, execution • Meningkatkan utilitas CPU • Data dan instruksi dapat diakses dengan cepat • Efisiensi pemakaian memori • Efisiensi transfer data dari/ke memori utama ke/dari CPU CPU
Mem.utama RAM
Mem. Sekunder DISK
Penggunaan CPU dan memori
Universitas Kristen Maranatha -- IT Department
2
Sistem Operasi Komputer
Syarat manajemen memori • Relokasi translasi memori referensi ke alamat fisik • Proteksi user tidak dapat mengakses bagian system • Sharing sharing area pada memori utama • Organisasi lojik SOK dan hardware berhubungan dengan program user dalam satu modul • Organisasi fisik pengaturan memori utama dan sekunder pada long-term scheduling
Hirarki manajemen memori • Register • Cache • Memori utama • Magnetic disk • Magnetic tape Semakin ke bawah: – – – –
Biaya per bit semakin rendah Kapasitas semakin besar Waktu akses semakin besar Frekuensi pengaksesan memori oleh prosesor semakin rendah
Universitas Kristen Maranatha -- IT Department
3
Sistem Operasi Komputer
Konsep binding • Proses penempatan (perpindahan alamat) suatu item ke dalam lokasi memori tertentu, dapat terjadi pada saat: – Compile time: lokasi memori diketahui sebelumnya, contoh: pada DOS (*.com) – Load time: relocatable code – Execution time: memerlukan dukungan hardware dalam pemetaan alamat, contoh: base dan limit register
Pemrosesan bertingkat program user
Universitas Kristen Maranatha -- IT Department
4
Sistem Operasi Komputer
Ruang alamat lojik dan fisik • Alamat lojik (logical address) diturunkan oleh CPU • Alamat fisik (physical address) alamat yang berada dalam memori • Compile time alamat lojik dan fisik sama • Execution time – Alamat lojik virtual address – Kumpulan alamat lojik yang diturunkan dari program lojik adress space – Alamat fisik yang berhubungan dengan alamat lojik physical address space
• Run time pemetaan alamat virtual ke alamat fisik oleh memory management unit (MMU) dari hardware
Relokasi dinamis ruang alamat
execution time
Universitas Kristen Maranatha -- IT Department
run time
5
Sistem Operasi Komputer
Dynamic Loading • Hanya bagian program yang penting saja yang tinggal di memori • Suatu routine tidak akan dipanggil sampai ia dibutuhkan • Tidak perlu campur tangan SOK, tergantung pada user • SOK menyediakan library
Dynamic Linking • Konsep sama dengan dynamic loading, penekanan pada linking • Memungkinkan adanya share library antar program user • Contoh: *.dll, *.sys, *.drv • SOK dibutuhkan untuk mengakses memori pada alamat-alamat yang sama dari beberapa proses
Universitas Kristen Maranatha -- IT Department
6
Sistem Operasi Komputer
Overlay • Membagi program yang besar menjadi bagian-bagian yang lebih kecil sehingga dapat dimuat dalam memori utama (jika proses lebih besar dari kapasitas memori) • Program penggerak berada dalam memori utama • Bagian pendukung diletakkan dalam memori sekunder
Swapping • Pengalihan proses dari memori ke tempat penyimpanan sementara • Dipanggil lagi ke memori jika diperlukan • Contoh: multiprogramming dengan algoritma RR • Tanpa swapping monoprogramming dan multiprogramming dengan partisi statis • Swapping multiprogramming dengan partisi dinamis • Ditemukan dalam banyak sistem: Linux, Unix dan Windows 2000 • Tantangan: transfer time proporsional dengan jumlah data yang di-swap
Universitas Kristen Maranatha -- IT Department
7
Sistem Operasi Komputer
Swapping backing store dalam disk
Pencatatan pemakaian alokasi memori (1) • Peta bit (Bit map) – – – – –
Memori dibagi dalam beberapa alokasi unit Tiap unit terdiri dari beberapa word sampai beberapa kByte Tiap unit berhubungan dengan 1 bit, 0 jika kosong, 1 jika terisi Ukuran unit sangat penting 32n bit unit memori memerlukan n bit map
A
B
C
D
1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
Bit map 1 unit memori dengan 32 bit
0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1
Universitas Kristen Maranatha -- IT Department
8
Sistem Operasi Komputer
Pencatatan pemakaian alokasi memori (2) • Linked list – Setiap node terdiri atas informasi Process (P) atau Hole (H), lokasi awal dan panjang lokasi – Penggunaan memori lebih kecil – Tidak perlu perhitungan blok lubang memori – Dealokasi sulit dilaksanakan (karena terjadi penggabungan atau pemekaran beberapa node) P 0
5
H
5 3
P 18 7
P 8
H 25 3
8
H 16 2
P 28 4
Pengalokasian Memori • Monoprogramming • Multiprogramming – Berurutan (Contiguous Allocation) • Partisi Statis • Partisi Dinamis • Sistem Buddy
– Tidak Berurutan (Non Contiguous Allocation) • Paging • Segmentasi
Universitas Kristen Maranatha -- IT Department
9
Sistem Operasi Komputer
Monoprogramming • Pengalokasian memori ke suatu proses relatif sederhana, hanya satu proses menggunakan memori pada setiap saat • Penggunaan ROM dan RAM, untuk program user dan sistem operasi Sistem operasi di RAM
Sistem operasi di RAM User program di RAM
User program di RAM
User program di RAM Sistem operasi di ROM
Device driver di ROM
Hardware support relokasi dan limit register
• Jika SOK diletakkan pada lokasi memori rendah, perlu adanya proteksi terhadap memori • Menggunakan base dan limit register secara dinamis (nilai alamat berubah-ubah) • Operasi transient penghilangan fasilitas layanan SOK sementara dari memori, lokasi digunakan untuk proses lain dari user
Universitas Kristen Maranatha -- IT Department
10
Sistem Operasi Komputer
Pengalokasian Berurutan (Contiguous Allocation)
• Multiprogramming system – Residen alokasi untuk SOK (di alamat rendah/atas atau alamat tinggi/bawah) 0 Sistem operasi – User program
• Strategi: – Partisi statis – Partisi dinamis – Sistem Buddy
User program
512
Multiprogramming Partisi Statis • Membagi memori dalam beberapa partisi dengan ukuran tetap • Beberapa proses dalam waktu bersamaan menggunakan memori memori dibagi dalam partisi dengan ukuran tertentu • Tiap partisi digunakan oleh satu proses • Jika telah selesai dapat digunakan oleh proses lain • Contoh SOK: IBM OS2/360, dengan memori management Multiprogramming with a Fixed Number of Tasks (MFT)
Universitas Kristen Maranatha -- IT Department
11
Sistem Operasi Komputer
Partisi Statis Ukuran Sama • Proses-proses yang hendak masuk memori diletakkan pada sembarang partisi kosong • Ukuran request lebih besar dari partisi tidak dialokasikan, perlu dibuat overlay • Dapat timbul sisa-sisa yang memboroskan (internal fragmentation), jika alokasi proses-proses kurang dari kapasitas partisi SOK Partisi 1
256 Kbyte
Partisi 2
256 Kbyte
Partisi 3
256 Kbyte
Partisi 4
256 Kbyte
Partisi Statis Ukuran Tidak Sama (1) • Tiap partisi memiliki ukuran yang tidak sama • Banyak antrian (satu antrian untuk tiap partisi) – Proses ditempatkan pada partisi dengan ukuran terkecil yang dapat memuatnya – Ada partisi tertentu yang panjang antriannya – Ada partisi yang kosong – Meminimumkan pemborosan memori
• Satu antrian untuk seluruh partisi – Proses yang memiliki ukuran kecil ditempatkan pada partisi dengan ukuran besar (internal fragmentasi) – Fleksibel implementasi – Operasi minimum (hanya satu antrian)
Universitas Kristen Maranatha -- IT Department
12
Sistem Operasi Komputer
Partisi Statis Ukuran Tidak Sama (2)
P5
P2
P3
P1
P4
P6
SOK
SOK
Partisi 1
Partisi 1
Partisi 2
Partisi 2
Partisi 3
Partisi 4
P3 P4 P5
Partisi 5
P2
P1
Partisi 3
Partisi 4
Partisi 5
P6
Multiprogramming Partisi Dinamis (1) • Partisi baru akan dibuat setelah suatu proses masuk ke memori • Problem: – Muncul lubang-lubang kecil antara 2 proses yang ditempatkan – Menyulitkan dalam alokasi dan dealokasi – External fragmentation ada beberapa lubang dengan kapasitas total yang cukup besar untuk suatu proses, namun lubang-lubang tidak saling berdekatan – Diperlukan compaction, penempatan ulang proses yang ada dalam memori dan diatur sedemikian rupa sehingga posisi lubang berdekatan – Compaction dapat dilakukan jika relokasi bersifat dinamis dan dilakukan pada saat compile time – Adanya segmen data yang berkembang sebagai akibat heap atau stack yang memanggil prosedur atau variabel lokal
Universitas Kristen Maranatha -- IT Department
13
Sistem Operasi Komputer
Multiprogramming Partisi Dinamis (2) Job Queue Proses Memory Request Waktu (ms)
0
P1
600 K
10
P2
1000 K
5
P3
300 K
20
P4
700 K
8
P5
500 K
15
0
400
SOK
400
P1 1000
SOK P1
1000 P2 selesai
P2 2000 2300
400
2000
P3
2300
2560
2560
P3
SOK P1
1000 Alokasi P4 1700 2000 2300
400 P1 selesai
SOK
1000
P4
1700 2000
P3
2300
2560
P4 P3
2560
400 Alokasi P5 900 1000 1700 2000 2300
SOK P5 P4 P3
2560
Compaction 0 300 500 600
SOK
SOK
SOK
SOK
P1 P2
P1 P2 P3
P1 P2
P1 P2
400 K 1000 1200 1500 1900 2100
P3 300 K P4
P4
900 K
P4 P3
900 K
900 K
P4
200 K
P3 Pindah P3 dan P4 (600K)
Universitas Kristen Maranatha -- IT Department
Pindah P4 (400K)
Pindah P3 (200K)
14
Sistem Operasi Komputer
Strategi compaction • First fit pencarian dari awal, berhenti jika ditemukan lokasi pertama yang cukup besar • Next fit sama dengan first fit, namun pencarian tidak dimulai dari awal, tapi dari lokasi terakhir menemukan segmen yang cocok • Best fit pencarian dari awal, dan akan berhenti jika ditemukan lokasi terkecil pertama yang cukup • Worst fit pencarian dari awal, dan akan berhenti jika ditemukan lokasi yang terbesar yang cukup • Quick fit cocok untuk pencatatan dengan linked list. Algoritma dirancang dengan membuat list lubang. Lubang memori dimuat di list sesuai dengan ukuran terdekatnya. Contoh: list lubang 8, 12, 20, 40 dan 60 Kb. Jika ada lubang memori sebesar 42 Kb, akan ditempatkan di list 40
Sistem Buddy • Pengelolaan memori dengan memanfaatkan kelebihan bilangan binair (2k; k = 0,1,2,… ) • Dealokasi proses dapat berlangsung cepat • Terjadi internal fragmentation Semula Alokasi proses A (90 Kb)
A
Alokasi proses B (50 Kb)
A
B
Alokasi proses C (72 Kb)
A
Dealokasi proses A
B B
Alokasi proses D (35 Kb)
B
Dealokasi proses B
C C D
C
D
C
Dealokasi proses D
C
Dealokasi proses C 0
128
Universitas Kristen Maranatha -- IT Department
256
512
1M
15
Sistem Operasi Komputer
Non Contiguous Allocation Paging • Memori logika dibagi dalam blok-blok (page) • Memori fisik dibagi dalam blok-blok dengan ukuran tertentu (frame) • Setiap alamat yang diberikan CPU – Nomor page (p) – Nomor offset (d)
• p digunakan sebagai indeks dari page table yang berisi base address untuk tiap page pada memori fisik • Base address dikombinasikan dengan offset untuk mendapatkan alamat fisik memori • Ukuran frame dan page (ukuran keduanya sama !!), ditentukan oleh hardware, bervariasi antara 29 sampai 213 tergantung arsitektur komputer
Skema Paging Nomor page Nomor offset
p m-n
d n
2m = ukuran alamat lojik 2n = ukuran satu page m dan n dalam satuan word atau byte
Universitas Kristen Maranatha -- IT Department
16
Sistem Operasi Komputer
Contoh paging (1)
Contoh paging (2) • Ukuran page = 4 byte
• Ukuran memori fisik = 32 byte (8 frame) • Alamat lojik 0 ada di page 0, offset 0 • Pada page table terlihat page 0, dipetakan ke frame 5, dengan alamat fisik ((5 * 4) + 0 = 20) • Alamat lojik 3 (page 0, offset 3), dipetakan ke alamat fisik ((5 * 4) + 3) = 23
Universitas Kristen Maranatha -- IT Department
17
Sistem Operasi Komputer
Frame bebas • Jika proses datang untuk eksekusi, maka ukurannya diekspresikan dengan page • Setiap page butuh satu frame
Sebelum alokasi
Setelah alokasi
Implementasi Page Table (1) -- PTBR • Page table disimpan dalam memori • Page table base register (PTBR): – Instruksi untuk load atau modifikasi dilakukan secara privileged – Contoh pada DEC-PDP 11 mini computer – Entry page table harus dibatasi relatif kecil (misalnya 256 entry)
• Butuh 2 kali akses ke memori: – 1 untuk entry page table – 1 untuk byte – Akses diperlambat sebagai fungsi 2k
Universitas Kristen Maranatha -- IT Department
18
Sistem Operasi Komputer
Implementasi Page Table (2) -- TLB • Transaction Look-Aside Buffer (TLB) atau associative memory, sebagai perbaikan dari perlambatan akses ke memori pada PTBR • Kumpulan dari register pada cache atau memori berkecepatan tinggi #Page #Frame
Translasi alamat (A´, A´´) – Jika A’ pada register asosiatif A’’ , ambil #Frame – Jika tidak, ambil #Frame dari page table di memori
Implementasi Page Table (3) -- TLB
Universitas Kristen Maranatha -- IT Department
19
Sistem Operasi Komputer
Proteksi memori • Dengan cara menambahkan satu bit proteksi pada tiap frame: Read/Write atau Read Only • Pada page table diberi tambahan valid/invalid bit • Valid page ada pada kawasan ruang alamat lojik • Invalid page tidak ada
Valid/Invalid Page Table
Universitas Kristen Maranatha -- IT Department
20
Sistem Operasi Komputer
Struktur Page Table – Multilevel • Membagi ruang alamat lojik ke dalam beberapa page tables • Misal: – Komputer 32 bit – Ukuran page 4 Kbyte – Alamat lojik dibagi menjadi suatu nomor page 20 bit, dan page offset 12 bit – Nomor page dibagi lagi menjadi 10 bit nomor page dan 10 bit page offset page number pi 10
page offset
p2
d
10
12
pi indeks ke page table yang lebih luar, dan p2 adalah yang ditunjuk dari page table yang lebih luar tersebut
Page table 2 level
Universitas Kristen Maranatha -- IT Department
21
Sistem Operasi Komputer
Struktur Page Table – Hashed Page Table
Struktur Page Table – Inverted Page Table
Universitas Kristen Maranatha -- IT Department
22
Sistem Operasi Komputer
Sharing Kode (Multiuser Environment)
Non Contiguous Allocation Segmentasi • User view memori utama sebagai kumpulan segmen dengan ukuran berbeda dari suatu program • Segmen adalah unit lojik seperti: – – – – – – – – –
main program, procedure, function, method, object, local variables, global variables, common block, stack, symbol table, arrays
Universitas Kristen Maranatha -- IT Department
23
Sistem Operasi Komputer
Alamat Ruang lojik
Cara pandang user Pada saat user program di1 compile, terbentuk segmensegmen yang merefleksikan 4 1 input program. Contoh pada Pascal: 2 (1) Varibel global (2) Procedure call stack yang 3 2 menyimpan parameter dan 4 alamat kembali 3 (3) Porsi kode untuk tiap prosedur dan fungsi (4) Variabel lokal untuk prosedur user space physical memory space dan fungsi Tiap segmen dituliskan sebagai identitas dan offset: <segment-number, offset>
Universitas Kristen Maranatha -- IT Department
24
Sistem Operasi Komputer
Pemetaan segmen • Pemetaan ke alamat fisik dilakukan dengan menggunakan tabel segmen • Tiap entry berisi base dan limit
Contoh segmentasi
Universitas Kristen Maranatha -- IT Department
25
Sistem Operasi Komputer
Segmentasi – proteksi dan sharing • Kumpulan proteksi terhadap segmen – Memberi array untuk tiap-tiap segmen – Pengaturan memori hardware secara otomatis – Array yang ditunjuk legal atau tidak (tidak melebihi limit register)
• Sharing kode atau data – Dua proses yang berbeda akan menempati lokasi yang sama pada lokasi fisik
Segmentasi – Sharing dan proteksi
Universitas Kristen Maranatha -- IT Department
26
Sistem Operasi Komputer
Latihan Soal (1) 1. Sebutkan hal-hal yang perlu dipertimbangkan dalam melakukan manajemen memori! 2. Berikan alasan mengapa suatu SOK tidak menggunakan metode pemetaan bit dalam melakukan pencatatan alokasi memori! 3. Berikan alasan mengapa suatu SOK menggunakan sistem paging dalam melakukan manajemen memori! 4. Apakah tugas utama dari MMU (Memory Management Unit)?
Latihan Soal (2) 5.
Suatu sistem komputer memiliki memori utama dengan kapasitas sebesar 16 Mbyte. Diketahui ukuran page sebesar 64 byte. 1. Berapa jumlah frame yang tersedia ? 2. Jika suatu Program ABC berukuran 914 byte, berapa page yang dibutuhkan ? 3. Apabila diketahui page table sebagai berikut: Nomor page
Nomor frame
0
8
1
2
2
10
3
22
4
12
5
1
…
…
dengan asumsi bahwa program memerlukan page secara berurutan dari 0 sampai n, dimanakah letak alamat fisik dari alamat logika: 10, 101 dan 350?
Universitas Kristen Maranatha -- IT Department
27
Sistem Operasi Komputer
KUIS Paging and Segmentation (1) 1.
Paging: Diketahui suatu ruang alamat lojik sebesar 8 pages dengan masingmasing memuat 1024 bytes. Alamat lojik ini dipetakan pada alamat fisik dengan ruang alamat fisik sebesar 32 frame. a. Berapa bit dibutuhkan untuk menuliskan alamat lojik ? b. Berapa bit dibutuhkan untuk menuliskan alamat fisik ? c. Berapakah alamat fisik untuk alamat-alamat lojik berikut ini: 2110 dan 44. Nomor page Nomor frame Diketahui page table sbb: 0 8 1
2
2
18
…
…
d. Berapakah total ruang alamat fisik yang tersedia ?
KUIS Paging and Segmentation (2) 2.
Segmentation: Physical address =Base address + Logical Address Diketahui segment table sbb Segment 0 1 2 3
Base 219 2300 90 1327
Length 600 14 100 580
4
1952
96
segment offset
Apakah alamat fisik dari alamat lojik berikut ini: 0(430), 1(10), 2(500), 3(400), 4(112)
Universitas Kristen Maranatha -- IT Department
28