bab 8: manajemen memori latar belakang
Post on 30-Jan-2017
278 Views
Preview:
TRANSCRIPT
1
Bab 8: Manajemen Memori
Latar Belakang
Swapping
Alokasi Berurutan (Contiguous Allocation)( g )
Paging
Segmentasi
Segmentasi dengan Paging
Silberschatz, Galvin and Gagne 20029.1Operating System Concepts
Latar Belakang
Program harus dibawa ke dalam memori dan ditempatkan dalam sebuah proses untuk dijalankan
Input queue (antrian input) – kumpulan proses pada disk yang menunggu dibawa ke memori untuk menjalankan program
Program user melalui beberapa langkah sebelum dijalankan
Silberschatz, Galvin and Gagne 20029.2Operating System Concepts
2
Pengikatan instruksi dan data ke memori
Waktu Kompilasi (Compile time): Jika lokasi memori
Pengikatan alamat instruksi dan data ke alamat dapat terjadi dalam 3 bentuk yang berbeda
Waktu Kompilasi (Compile time): Jika lokasi memori diketahui sebelumnya, kode absolut dapat dibangkitkan; harus kompilasi ulang kode tsb jika terjadi perubahan lokasi awal.
Waktu Load (Load time): Harus membangkitkan kode relocatable (relocatable code) jika lokasi memori tidak diketahui pada waktu kompilasi.
Waktu Eksekusi (Execution time): Pengikatan alamat
Silberschatz, Galvin and Gagne 20029.3Operating System Concepts
Waktu Eksekusi (Execution time): Pengikatan alamat ditunda sampai waktu runtime jika prose dapat dipindah selama eksekusi program dari satu segmen memori ke segmen memori lain. Memerlukan dukungan hardware untuk pemetaan alamat (contoh : register base dan limit).
Langkah Pemrosesan Program User
Silberschatz, Galvin and Gagne 20029.4Operating System Concepts
3
Loading Dinamis (Dynamic Loading)
Rutin tidak di-load sampai dipanggil
Utilitas ruang memori yang lebih baik; rutin yang tidakdigunakan tidak pernah di-load.
Berguna ketika kode dalam jumlah besar diperlukan untuk menangani kasus yang tidak sering terjadi.
Tidak memerlukan dukungan khusus dari sistem operasi yang diimplementasikan dalam desain program.
Silberschatz, Galvin and Gagne 20029.5Operating System Concepts
Linking Dinamis (Dynamic Linking)
Proses linking ditunda sampai waktu eksekusi
Merupakan kode dalam bentuk kecil (stub), digunakan untuk meletakkan rutin librari yang residen di memori yang diperlukan.
Stub mengubah alamat rutin dan mengeksekusi rutin
Sistem operasi melakukan cek apakah rutin sedang memproses alamat memori
Linking dinamis terutama berguna untuk library
Silberschatz, Galvin and Gagne 20029.6Operating System Concepts
4
Overlay
Menyimpan hanya instruksi dan data dalam memori hanya yang diperlukan pada waktu tertentu.
Diperlukan jika proses lebih besar daripada jumlah alokasi memori untuk proses tersebut.
Diimplementasikan oleh user tidak ada dukungan khusus dari sistem operasi, desain sistem dari strukutr overlay sangat komplek.
Silberschatz, Galvin and Gagne 20029.7Operating System Concepts
Overlay untuk Two-Pass Assembler
Silberschatz, Galvin and Gagne 20029.8Operating System Concepts
5
Ruang alamat Logika dan Fisik
Konsep ruang alamat logika yang membungkus ruang alamat fisik adalah bentuk utama dari manajemen memori. Alamat logika – dibangkitkan oleh CPU; juga disebut alamat
virtual.
Alamat Fisik – alamat yang terlihat pada unit memori.
Alamat logika dan fisik mempunyai skema yang sama dalam pengikatan alamat pada waktu kompilasi dan waktu load; alamat logika dan fisik mempunyai skema yang berbeda dalam pengikatan alamat pada waktu
Silberschatz, Galvin and Gagne 20029.9Operating System Concepts
yang berbeda dalam pengikatan alamat pada waktu eksekusi.
Memory-Management Unit (MMU)
Perangkat hardware yang memetakan alamat virtual ke alamat fisik.
Dalam skema MMU, nilai dalam register relokasi ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori.
Program user melihat alamat logika; tidak pernah melihat alamat fisik.
Silberschatz, Galvin and Gagne 20029.10Operating System Concepts
6
Relokasi Dinamis menggunakan register relokasi
Silberschatz, Galvin and Gagne 20029.11Operating System Concepts
Swapping
Sebuah porses dapat ditukar sementara keluar dari memori ke backing store, dan kemudian dibawa kembali ke memori untuk melanjutkan eksekusi.
Backing store – disk ukuran cukup besar dan cepat untuk mengakomodasi duplikasi dari semua gambaran memori untuk semua user; harus tersedia akses langsung ke memori tersebut.
Roll out, roll in – swapping menggunakan algoritma penjadwalan berbasis prioritas; prose dengan prioritas rendah ditukar keluar sehingga proses dengan prioritas tinggi dapat di-load dan dieksekusi.
Silberschatz, Galvin and Gagne 20029.12Operating System Concepts
Bagian terbesar dari waktu swap adalah waktu transfer; total waktu transfer proporsional dengan jumlah memori yang diswap
Versi modifikasi dari swappling ditemukan pada beberapa sistem, misalnya UNIX, Linux dan Windows.
7
Skema Swapping
Silberschatz, Galvin and Gagne 20029.13Operating System Concepts
Alokasi Berurutan (Contiguous Allocation)
Memori utaa biasanya dibagi menjadi 2 bagian: Sistem operasi yang residen; biasanya diletakkan memori
bagian rendah dengan vektor interrupt
Program user diletakkan di memori bagian lebih tinggi.
Alokasi Single-partition (partisi tunggal) Skema register relokasi digunakan untuk melindungi proses
user dari proses user lain, dan dari perubahan kode dan data sistem operasi.
Register relokasi berisi nilai dari alamat fisik terkecil; register limit berisi jangkauan alamat logika – setiap alamat
Silberschatz, Galvin and Gagne 20029.14Operating System Concepts
register limit berisi jangkauan alamat logika setiap alamat logika harus lebih kecil daripada register limit.
8
Dukungan Hardware untuk Register Relokasi dan Register Limit
Silberschatz, Galvin and Gagne 20029.15Operating System Concepts
Alokasi Berurutan (Contiguous Allocation) lanj
Alokasi Multiple-partition (partisi banyak) Hole (lubang) – adalah blok dari memori yang tersedia;
lubang dengan ukuran berbeda berada di dalam memori.
Bila proses datang, akan dialokasikan ke memory pada lubang yang cukup untuk proses.
Sistem operasi memelihara informasi tentang:a) partisi yang dialokasikan b) partisi bebas (hole)
OS OS OS OS
Silberschatz, Galvin and Gagne 20029.16Operating System Concepts
process 5
process 8
process 2
process 5
process 2
process 5
process 2
process 5
process 9
process 2
process 9
process 10
9
Alokasi Multiple Partition
Sebagai ilustrasi, perhatikan contoh berikut : Diasumsikan tersedia memori 2560K dan untuk OS 400K. Sisa
2160K di k t k2160K digunakan untuk user proses Diasumsikan terdapat 5 job (P1 s/d P5) terdapat pada input queue. Diasumsikan penjadwalan FCFS digunakan untuk load job ke
memori. Penjadwalan CPU secara round-robin (quantum time = 1) untuk penjadwalan job yang sudah terdapat di memori
Silberschatz, Galvin and Gagne 20029.17Operating System Concepts
Alokasi Multiple Partition (lanj.)
Operating 0
p gsystem
2160K
400KP1
P2
P3
P4
600K
1000K
300K
700K
10
5
20
8
Proses memory timeJob queue
Silberschatz, Galvin and Gagne 20029.18Operating System Concepts
2560K
P5 500K 15
10
Alokasi Multiple Partition (lanj.)
Operating 0
Operating t
0Operating
0Operating
0 Operating system
0
system
P1
400K
P2
1000K
system
P1
400K
1000K
system
P1
400K
P4
1000K
system400K
1000K
system400K
1000K
P2
terminate
Alokasi
P4
P1
terminateP4 Alokasi
P5
P4
P5
900K
Silberschatz, Galvin and Gagne 20029.19Operating System Concepts
2000KP3
2300K
2560K
2000KP3
2300K
2560K
2000KP3
2300K
2560K
2000KP3
2300K
2560K
2000K
2300K
2560K
terminate1700K
P3
Permasalahan alokasi ruang dinamis
Bagaimana memenuhi permintaan ukuran n dari daftar lubang yang bebas
First-fit: alokasi lubang pertama yang cukup untuk proses.
Best-fit: alokasi lubang terkecil yang cukup untuk proses; harus mencari ke seluruh daftar; berdasarkan urutan ukuran. Menghasilkan lubang sisa yang terkecil.
Worst-fit: mengalokasikan lubang terbesar; harus juga mencari ke seluruh daftar. Menghasilkan lubang sisa terbesar.
Silberschatz, Galvin and Gagne 20029.20Operating System Concepts
First-fit dan best-fit lebih baik daripada worst-fit dalam hal kecepatan dan utilitas ruang penyimpan.
11
Fragmentasi
Fragmentasi Eksternal – ruang alamat memori total yang ada memenuhi permintaan, tetapi letaknya tidak berurutan.
Fragmentasi Internal pengalokasian memori mungkin Fragmentasi Internal – pengalokasian memori mungkin lebih besar daripada memori yang diminta; tetapi sisanya terlalu kecil yang tidak dapat digunakan.
Menurunkan fragmentasi eksternal dengan cara pemadatan Memindahkan isi memori dan meletakkan semua memori
bebas dalam satu blok besar. Pemadatan mungkin hanya jika relokasi dinamis dan
dilakukan pada waktu eksekusi
Silberschatz, Galvin and Gagne 20029.21Operating System Concepts
dilakukan pada waktu eksekusi
Pemadatan
Solusi untuk masalah fragmentasi eksternal adalah “compaction” (pemadatan)(p ) Compaction tidak selalu dapat dipakai. Agar proses dapat
dieksekusi pada lokasi baru, semua alamat internal harus direlokasi. Jika relokasi statik dan dikerjakan pada load time, compaction tidak dapat dilakukan
Compaction mungkin hanya jika relokasi dinamis dan dikerjakan pada execution time. Karena relokasi membutuhkan pemindahan program dan data dan kemudian mengubah register basis (atau relokasi) yang mencerminkan alamat basis baru
Silberschatz, Galvin and Gagne 20029.22Operating System Concepts
relokasi) yang mencerminkan alamat basis baru
Terdapat beberapa cara compaction
12
Pemadatan lanj.
Operating system
0
400K
Operating system
0
400K400K
1000K
P4
P5
900K
400K
1600KP3
P4
P5
900K
300K
100K
Silberschatz, Galvin and Gagne 20029.23Operating System Concepts
2000K
2300K
2560K
P31900K
2560K
660K260K
300K
Contoh Compaction
Pemadatan lanj.
Operating t
0Operating
t
0Operating
t
0Operating
t
0
system
P1300K
P31000K
P2500K600K
400K
1200K300K
system
P1300K
P3800K
P4
P2500K600K
1200K
system
P1300K
P31000K
P4
P2500K600K
1200K
system
P1300K
P2500K600K
900K
Silberschatz, Galvin and Gagne 20029.24Operating System Concepts
1500KP4
1900K
2100K
300K
200K2100K
900K
2100K
900K
P3
1500KP4
2100K
1900K
Alokasi asal Dipindah 600K Dipindah 400K Dipindah 200K
13
Paging
Ruang alamat logika dari proses dapat tidak berurutan; proses diletakkan di memori fisik jika tersedia
Membagi memori fisik ke dalam blok ukuran tetap yang disebut frame (ukurannya adalah pangkat dari 2 antara 512 bytes danframe (ukurannya adalah pangkat dari 2, antara 512 bytes dan 8192 bytes).
Membagi memori logika ke dalam blok ukuran sama yang disebut page.
Menyimpan semua frame bebas.
Untuk menjalankan sebuah program ukuran n page, perlu menemukan frame bebas sebanyak n dan load program.
Set page table (tabel page) untuk menterjemahkan alamat
Silberschatz, Galvin and Gagne 20029.25Operating System Concepts
logika ke alamat fisik.
Kemungkinan terjadi fragmentasi internal.
Skema Menterjemahkan Alamat
Alamat yang dibangkitkan oleh CPU terdiri dari: Page number (p) – digunakan sebagai indeks dalam page
table yang berisi alamat base dari setiap page dalam memori fisikmemori fisik.
Page offset (d) – dikombinasikan dengan alamat base untuk menentukan alamat fisik yang dikirim ke unit memori.
Silberschatz, Galvin and Gagne 20029.26Operating System Concepts
14
Arsitektur Penterjemah Alamat
Silberschatz, Galvin and Gagne 20029.27Operating System Concepts
Contoh Paging
Silberschatz, Galvin and Gagne 20029.28Operating System Concepts
15
Contoh Paging
Silberschatz, Galvin and Gagne 20029.29Operating System Concepts
Frame Bebas
Silberschatz, Galvin and Gagne 20029.30Operating System Concepts
Sebelum alokasi Setelah alokasi
16
Implementasi Page Table
Page table disimpan dalam memori utama.
Page-table base register (PTBR) menunjuk ke page table.
Page-table length register (PRLR) merupakan ukuran page g g g ( ) p p gtable.
Pada skema ini, setiap akses data/instruksi membutuhkan dua kali akses memori. Satu untuk mengakses page table dan satu untuk mengakses data/instruksi.
Permasalahan akses kedua memori dapat dipecahkan dengan menggunakan fast-lookup hardware cache khusus yang disebut associative memory or translation look-aside
Silberschatz, Galvin and Gagne 20029.31Operating System Concepts
buffers (TLBs)
Associative Memory
Associative memory – pencarian paralelPage # Frame #
Terjemahan alamat (A´, A´´) Jika A´ berada dalam associative register, dapatkan frame #
Jika tidak, dapatkan frame # dari page table dalam memori
Silberschatz, Galvin and Gagne 20029.32Operating System Concepts
17
Paging Hardware dengan TLB
Silberschatz, Galvin and Gagne 20029.33Operating System Concepts
Effective Access Time
Pencarian pada Associative register = unit waktu
Diasumsikan waktu akses memori adalah 1 microsecond
Hit ratio – persentasi waktu sebuah nomor page p p gditemukan dalam associative registers; rasio berhubungan dengan jumlah associative register.
Hit ratio = Effective Access Time (EAT)
EAT = (1 + ) + (2 + )(1 – )
= 2 + –
Silberschatz, Galvin and Gagne 20029.34Operating System Concepts
18
Proteksi Memori
Proteksi memori diimplementasikan dengan proteksi bit untuk setiap frame.
Bit Valid-invalid diberikan untuk setiap masukan dalam page table: “valid” mengindikasikan bahwa page terhubung dalam
alamat memori logika dan merupakan page yang legal.
“invalid” mengindikasikan bahwa page tidak berada di ruang alamat logika.
Silberschatz, Galvin and Gagne 20029.35Operating System Concepts
Bit Valid (v) atau invalid (i) Bit dalam Page Table
Silberschatz, Galvin and Gagne 20029.36Operating System Concepts
19
Contoh Two-Level Paging
Alamat logika (pada mesin 32-bit dengan ukuran page 4K) dibagi ke dalam: Sebuah page number ukuran 0 bit.
S b h ff t k 12 bit Sebuah page offset ukuran12 bit.
Ketika page table dilakukan page, page number lebih lanjut dibagi dalam : Sebuah page number 10-bit. Sebuah page offset 10-bit.
Sehingga alamat logika menjadi:
page number page offset
p p d
Silberschatz, Galvin and Gagne 20029.37Operating System Concepts
dimana pi adalah indek ke outer page table, dan p2 adalah displacement dalam page dari outer page table.
pi p2 d
10 10 12
Skema Two-Level Page-Table
Silberschatz, Galvin and Gagne 20029.38Operating System Concepts
20
Skema Penterjemah Alamat
Skema Penterjemah alamat untuk arsitektur two-level paging 32-bit
Silberschatz, Galvin and Gagne 20029.39Operating System Concepts
Shared Page
Shared code Satu copy dari kode read-only yang digunaka bersama-
sama diantara beberapa proses (seperti text editors, compilers indo s stems)compilers, window systems).
Shared code harus muncul pada lokasi yang sama dalam ruang alamat logika untuk semua proses.
Private code dan data Setiap proses menyimpan copy dari kode dan data yang
terpisah
Page dari private code dan data dapat muncul dimanapun
Silberschatz, Galvin and Gagne 20029.40Operating System Concepts
Page dari private code dan data dapat muncul dimanapun dalam ruang alamat logika.
21
Contoh Shared Page
Silberschatz, Galvin and Gagne 20029.41Operating System Concepts
Segmentasi
Skema manajemen memori yang memperlihatkan memori dari sisi pandangan user.
Sebuah program adalah kumpulan segmen. Sebuat segmen adalah unit logika seperti :g p
main program,procedure, function,method,object,local variables, global variables,common block,stack
Silberschatz, Galvin and Gagne 20029.42Operating System Concepts
stack,symbol table, arrays
22
Pandangan user terhadap Program
Silberschatz, Galvin and Gagne 20029.43Operating System Concepts
Segmentasi secara Logika
1
1
4
3
2
42
3
Silberschatz, Galvin and Gagne 20029.44Operating System Concepts
Ruang User Ruang alamat Fisik
23
Arsitektur Segmentasi
Alamat logika terdiri dari dua bagian:
<segment-number, offset>,
Segment table – memetakan alamat fisik 2 dimensi; g ;setiap tabel mempunyai: base – terdiri dari alamat fisik awal dimana segmen berada
di memori.
limit – menentukan panjang segmen.
Segment-table base register (STBR) menunjuk ke lokasi segment table dalam memori.
Segment-table length register (STLR) merupakan nomor
Silberschatz, Galvin and Gagne 20029.45Operating System Concepts
g g g ( ) psegmen yang digunakan oleh ;
nomor segmen s adalah legal jika s < STLR.
Arsitektur Segmentasi (lanj)
Relokasi. Dinamis
Oleh segmen table
Sharing. Membagi segment bersama-sama
Nomor segment sama
Alokasi. first fit/best fit
Silberschatz, Galvin and Gagne 20029.46Operating System Concepts
Fragmentasi eksternal
24
Arsitektur Segmentasi (lanj)
Proteksi. Dalam setiap masukan ke segment table dihubungkan dengan: Bit validasi= 0 segmen ilegal
Mode akses read/write/execute
Bit proteksi dihubungkan dengan segmen; kode yang digunakan bersama-sama terjadi pada level segmen
Karena segmen mempunyai ukuran yang bervariasi, alokasi memori adalah permasalahan alokasi penyimpanan dinamis
Silberschatz, Galvin and Gagne 20029.47Operating System Concepts
Hardware Segmentasi
Silberschatz, Galvin and Gagne 20029.48Operating System Concepts
25
Contoh Segmentasi
Silberschatz, Galvin and Gagne 20029.49Operating System Concepts
Sharing Segmen
Silberschatz, Galvin and Gagne 20029.50Operating System Concepts
26
Segmentasi dengan Paging – MULTICS
Sistem MULTICS memecahkan permasalahan fragmentasi eksternal dan pada saat pencarian dengan paging pada segmen
Solusi berbeda dengan segmentasi asli, di dalam segment-table, masukan tidak terdiri dari alamat base dari segmen, tetapi alamat base dari page table untuk segmen tersebut.
Silberschatz, Galvin and Gagne 20029.51Operating System Concepts
Skema Penterjeman Alamat pada MULTICS
Silberschatz, Galvin and Gagne 20029.52Operating System Concepts
27
Segmentasi dengan Paging – Intel 386
Sebagaimana ditunjukkan pada diagram berikut, Intel 386 menggunakan segmentasi dalam paging untukmenggunakan segmentasi dalam paging untuk manajemen memori dengan skema two-level paging
Silberschatz, Galvin and Gagne 20029.53Operating System Concepts
Penterjeman Alamat pada Intel 30386
Silberschatz, Galvin and Gagne 20029.54Operating System Concepts
top related