Sistem Operasi Komputer Pertemuan VIII – Manajemen Memori

advertisement
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
Download