Memory Management
Muhamad Ichwan
Memory Management
Manajemen memori : membagi memori untuk mengakomodir banyak proses.
Memory Management Requirement :
- Relocation : programmer tidak mengetahui dimana letak memori suatu program dieksekusi
dan ketika program sudah dieksekusi, program juga bisa dikembalikan pada letak
memori yang berbeda pula.
- Protection : proses seharusnya tidak bisa mereferensi ke lokasi memori dalam proses lain tanpa
izin.
- Sharing : mengizinkan beberapa proses mengakses memori dengan porsi yang sama
- Logical Organization : program ditulis dalam modul yang ditulis dan dicompile secara independen
- Physical Organization : memori yang tersedia untuk program juga termasuk untuk data
mungkin tidak cukup
Addressing
- Logical : referensi ke lokasi memori independen dan harus mengacu ke alamat fisik
- Relative : alamat diekspresikan sebagai lokasi yang berhubungan ke titik tertentu
- Physical : alamat absolut atau lokasi nyata dalam memori utama
Swapping : Penataan memori dengan cara ditukar satu sama lain agar data yang dimasukkan muat
Memory Allocation Algorithm
1. First fit : mencari blok memori yang sesuai dan cukup, namun diambil hanya yang pertama kali
ditemukan
2. Next fit : mencari blok memori tambahan namun dimulai dari memori asal saja tidak harus dari
awal
3. Best fit : memilih blok memori yang ukurannya mendekati dengan yang diminta atau dibutuhkan
4. Worst fit : memilih blok memori yang terbesat
5. Quick fit
6. Buddy system memilih blok memori dengan rumus
Buddy System
Buddy system memiliki rumus 2U-1 < s <= 2U , dimana blok memori dibagi menjadi dua blok memori yang sama dan proses pembagian berlanjut hingga blok yang terkecil lebih besar dari yang dibutuhkan.
5/09/2015 01:19:00 PM
Operating System
Deadlock
Muhamad Ichwan
Deadlock
Deadlock : suatu proses dikatakan deadlock jika setiap proses saling berebutan sumber daya
sehingga akhirnya tidak ada proses yang mendapatkan sumber daya
Kondisi yang bisa menyebabkan deadlock :
1. Mutual Exclusion : hanya satu proses yang menggunakan resource pada satu waktu
2. Hold and Wait : suatu proses menggunakan paling tidak satu resource dan dia juga menunggu
resource tambahan yang sedang digunakan oleh proses lain
3. No preemption : suatu resource digunakan oleh sebuh proses dan proses lain harus menunggu
hingga proses yang menggunakan resource rela untuk melepaskannya
4. Circular wait : keadaan dimana ada 4 proses yang saling menunggu (proses 1 menunggu
proses 2, proses 2 menunggu proses 3, proses 3 menuggu proses 4 dan proses 4
menunggu proses 1)
Deadlock Modeling
Deadlock modeling menggunakan RAG(Resource Allocation Graph).
| a. A holds resource R b. B request resource B c. Deadlock |
Contoh deadlock :
Contoh no deadlock :
Strategi untuk mengatasi deadlock :
1. Menggunakan Algoritma Ostrich
2. Detection and recovery
3. Menggunakan alokasi sumber daya dinamis untuk mencegah deadlock
4. Mencegah munculnya satu dari empat yang kondisi yang bisa menimbulkan deadlock
Safe and Unsafe State
- Safe State
Contoh soal :
- Unsafe state
Contoh soal :
Pencegahan Deadlock :
5/09/2015 11:56:00 AM
Operating System
Concurrency
Muhamad Ichwan
Concurrency
Konkurensi ada apad 3 konteks berbeda :
a. Multiple application (multiprogramming)
b. Structured application
c. Operatin-system structure
Masalah yang muncul dalam konkurensi :
- berbagi sumber daya global
- manajemen alokasi sumber daya
- error berhubungan dengan pemrograman sulit untuk ditemukan
Kompetisi yang terjadi diantara proses untuk sumber daya :
a. Mutual Exclusion
Hanya satu program yang diizinkan pada satu waktu
b. Deadlock
Antar program saling berebutan sehingga tidak ada program yang mendapatkan sumber daya
c. Starvation
Antar program saling menunggu akibat takut akan terjadinya collision antar program
Tabel Interaksi Proses
Mekanisme Penyelesaian Konkurensi
a. Semaphore : nilai integer untuk memberikan sinyal antar proses
b. Binary semaphore : semaphore yang hanya bernilai 0 dan 1
c. Mutex : seperti binary semaphore namun digunakan untuk membuka kunci dan menutup kunci
d. Monitor : bahasa pemrograman yang menenkapsulasi variabel, prosedur akses, dan kode
inisialisasi dalam tipe data abstrak
e. Event flag : penggunaaan kata yang digunakan untuk mekanisme sinkronisasi.
f. Mailboxes/messages : cara untuk dua proses saling bertukar informasi dan bersinkronisasi
g. Spinlocks : mekanisme mutual exclusion dimana proses mengeksekusi looping terus menerus
untuk mendeteksi ketersediaan kunci
5/09/2015 10:46:00 AM
Operating System
Process Scheduling
Muhamad Ichwan
Process Scheduling
Behavior dari Process :
a. Process Bound
b. I/O Bound
CPU Scheduler : memilih diantara proses-prosed di memori yang siap dieksekusi dan
mengalokasikan CPU ke salah satu dari proses tersebut
Dispatcher : memberikan kontrol CPU ke proses yang terpilih
Dalam melakukan penjadwalan terdapat kriteria-kriteria :
- CPU Utilization : membuat CPU sesibuk mungkin
- Throughput : jumlah proses yang selesai tiap satuan waktu
- Turnaround time : jumlah waktu untuk mengeksekusi proses tertentu
- Waiting time : jumlah waktu sebuah proses menunggu dalam antrian
- Response time : jumlah waktu yang dibutuhkan dari ketika sebuah request diterima hingga
pertama kali hasil diproduksi
Dalam penjadwalan juga diperlukan optimisasi dengan kriteria :
- Penggunaan CPU maksimal
- Throughput maksimal
- Turnaround time minimal
- Waktu tunggu minimal
- Waktu response minimal
Tujuan dari scheduling dari berbagai sistem :
a. Semua system : fairness, policy enforcement, dan balance
b. Batch system : throughput(hasil per satuan waktu), turnaround time, penggunaan CPU
c. Interactive system : waktu respon dan proporsionalitas
d. Real-time system : memenuhi permintaan dan prediktabilitas
Algoritma Batch Scheduling
a. FCFS (First-Come First-Serve)
Proses akan diproses di CPU dengan urutan waktu proses tersebut memberikan request.
Keuntungan : mudah dipahami dan mudah untuk diprogram
Kekuranngan : job yang pendek butuh waktu terlalu lama jika didepannya terdapat job yang
panjang
Gant Chart:
b. SJF (Shortest Job First)
Menggunakan panjang dari proses untuk melakukan penjadwalan proses dengan waktu yang
paling cepat.
SJF ada 2 skema :
- nonpreemptive : menjalankan proses hingga selesai dan tidak bisa diinterupsi proses lain
- preemptive : menjalankan proses hingga selesai namun ketika panjang dari proses yang
sedang berjalan lebih banyak daripada proses yang menginterupsi maka
proses akan dipotong dan dilanjutkan nanti.
Contoh :
a. nonpreemptive
Process Arrival Time Burst Time
a. Process Bound
b. I/O Bound
CPU Scheduler : memilih diantara proses-prosed di memori yang siap dieksekusi dan
mengalokasikan CPU ke salah satu dari proses tersebut
Dispatcher : memberikan kontrol CPU ke proses yang terpilih
Dalam melakukan penjadwalan terdapat kriteria-kriteria :
- CPU Utilization : membuat CPU sesibuk mungkin
- Throughput : jumlah proses yang selesai tiap satuan waktu
- Turnaround time : jumlah waktu untuk mengeksekusi proses tertentu
- Waiting time : jumlah waktu sebuah proses menunggu dalam antrian
- Response time : jumlah waktu yang dibutuhkan dari ketika sebuah request diterima hingga
pertama kali hasil diproduksi
Dalam penjadwalan juga diperlukan optimisasi dengan kriteria :
- Penggunaan CPU maksimal
- Throughput maksimal
- Turnaround time minimal
- Waktu tunggu minimal
- Waktu response minimal
Tujuan dari scheduling dari berbagai sistem :
a. Semua system : fairness, policy enforcement, dan balance
b. Batch system : throughput(hasil per satuan waktu), turnaround time, penggunaan CPU
c. Interactive system : waktu respon dan proporsionalitas
d. Real-time system : memenuhi permintaan dan prediktabilitas
Algoritma Batch Scheduling
a. FCFS (First-Come First-Serve)
Proses akan diproses di CPU dengan urutan waktu proses tersebut memberikan request.
Keuntungan : mudah dipahami dan mudah untuk diprogram
Kekuranngan : job yang pendek butuh waktu terlalu lama jika didepannya terdapat job yang
panjang
Contoh :
Process Burst Time
P1 24
P2 3
P3 3
Urutan datang : P1 , P2 , P3 Gant Chart:
Waiting
time for P1 =
0; P2 =
24; P3 = 27
Average waiting time : P1 + P2 + P3
: (0 + 24 + 27)/3 = 17
b. SJF (Shortest Job First)
Menggunakan panjang dari proses untuk melakukan penjadwalan proses dengan waktu yang
paling cepat.
SJF ada 2 skema :
- nonpreemptive : menjalankan proses hingga selesai dan tidak bisa diinterupsi proses lain
- preemptive : menjalankan proses hingga selesai namun ketika panjang dari proses yang
sedang berjalan lebih banyak daripada proses yang menginterupsi maka
proses akan dipotong dan dilanjutkan nanti.
Contoh :
a. nonpreemptive
Process Arrival Time Burst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
Gant Chart :
Average waiting time = P1 + P2 + P3 + P4 = (0 + 6 + 3 + 7)/4
= 4
b. preemptive
Process Arrival Time Burst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
Gant Chart :
Average waiting time = P1 + P2 + P3 + P4 = (9 + 1 + 0 +2)/4 =
3
Selain dua algoritma diatas, terdapat algoritma lain juga seperti round-robin scheduling dan
5/09/2015 09:50:00 AM
Operating System
Langganan:
Postingan
(
Atom
)



















