TUGAS BAB 7 : MANAJEMEN MEMORY
Terdapat partisi memori 100K, 500K, 200K, 300K dan 600K, bagaimana algoritma First-fit, Best-fit dan Worst-fit menempatkan proses 212K, 417K, 112K dan 426K (berurutan) ? Algoritma mana yang menggunakan memori secara efisien ?
Jawab:
First-fit : alokasi lubang pertama yang cukup untuk proses.
Best-fit : alokasi lubang terkecil yang cukup untuk proses. Strategi ini memerlukan pencarian keseluruhan lubang, kecuali bila ukuran sudah terurut.
Worst-fit : alokasi lubang terbesar yang cukup untuk proses. Strategi ini memerlukan pencarian keseluruhan lubang, kecuali disimpan berdasarkan urutan ukuran. Diantara algoritma diatas, first-fit dan best-fit lebih baik dibanidngkan worst-fit dalam hal menurunkan waktu dan utilitas penyimpan. Tetapi first-fit dan best-fit lebih baik dalam hal utilitas penyimpanan tetapi first-fit lebih cepat.
Apa yang dimaksud dengan fragmentasi eksternal dan fragmentasi internal ?
Jawab: Fragmentasi Eksternal adalah fragmentasi memori yang terjadi pada situasi dimana terdapat cukup ruang memori total untuk memenuhi permintaan, tetapi tidak dapat langsung dialokasikan karena tidak berurutan. Fragmentasi Eksternal ini dilakukan pada algoritma alokasi dinamis, terutama strategi first-fit dan best fit.
Fragmentasi Internal adalah fragmentasi memori yang terjadi pada situasi dimana memori yang dialokasikan lebih besar daripada memori yang diminta tetapi untuk satu partisi tertentu hanya berukuran kecil sehingga tidak digunakan. Pada multiple partition, fragmentasi internal mungkin terjadi pada situasi berikut. Misalnya terdapat lubang 18464 byte, dan proses meminta 18462 byte. Alokasi dilakukan sesuai permintaan maka sisa lubang 2 byte. Penyimpanan ini kan memerlukan memori lebih besar dari lubang itu sendiri. Pendekatannya adalah dengan megalokasikan lubang yang sangat kecil sebagai bagian dari permintaan yang besar.
Diketahui ruang alamat logika dengan 8 page masing-masing 1024 word dipetakan ke memori fisik 32 frame.
Jawab:
Ruang alamat logika dari suatu proses dibagi kedalam 2 partisi :
Partisi 1 terdiri dari 8K segmen yang pribadi (private) untuk proses tersebut.
Partisi 2 terdiri dari 8K segmen yang digunakan bersama untuk semua proses.
Informasi mengenai partisi pertama disimpan dalam local descriptor table
(LDT) sedangkan informasi mengenai partisi kedua disimpan dalam global descriptor table (GDT). Setiap entry pada tabel LDT dan GDT terdiri dari 8 byte, dengan informasi detail tentang segmen tertentu termasuk lokasi basis dan panjang segmen.
Alamat logika adalah pasangan (selector, offset), dimana selector sebanyak 16 bit.
1 page = 64 byte. Jadi page 0 akan dipetakan ke frame 8, maka alamat logika 0 akan dipetakan ke alamat fisik (8 * 64) + 0 = 512. Keadaan memori logika dapat dilihat sebagai berikut :
alamat logika 50 berada di page 0, offset 50 sehingga alamat fisiknya (8 * 64) + 50 = 562.
alamat logika 121 berada di page 1,offset 57 sehingga alamat fisiknya (2 * 64) + 57 = 185.
alamat logika 380 berada di page 5,offset 60 sehingga alamat fisiknya (1 * 64) + 60 =
124.
Berapa bit alamat logika ?
Jawab: Bit alamat logika dapat dipecah atas nomor segmen dan alamat offset. Misalnya, nomor segmen menggunakan 4 bit atas alamat logika, yang berarti terdapat maksimal 212=4 kbyte.
Berapa bit alamat fisik ?
Jawab: Bit alamat fisik pada memori fisik pada alamat awal 8224 sehingga pada saat dieksekusi alamat 4848 akan ditranslasi menjadi 8224 + 752 = 8976.
Diketahui sistem paging dengan page table disimpan di memori
Jawab: Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan,mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia . semua daftar frame yang bebas disimpan untuk menjalankan program dengan ukuran n page,perlu menemukan n frame bebas dan meletakkan program pada frame tersebut. Table page digunakan untuk menterjemahkan alamat logika ke almat fisik .
7. Jika acuan ke memori membutuhkan 200 nanosecond, berapa lama waktu
melakukan paging ?
Jawab: Lama waktu melakukan paging adalah 40ms.
Jika ditambahkan associative register, dan 75 persen dari semua acuan ke page-table ditemukan dalam associative register, berapa efective access time (EAT) acuan kememori ? (diasumsikan bahwa menemukan entri pada page table di associative register membutuhkan waktu 0, jika entri ada).
Jawab: Waktu akses efektif = 0,75 _ (200 nanodetik) + 0,25 _ (400 nanodetik) = 250 nanodetik
Senin, 11 Maret 2013
Minggu, 10 Maret 2013
Modul Sistem Operasi Bab 5
Modul Mata kuliah sistem operasi bab 5 tentang : sinkronisasi proses
modul ini membahas tentang permasalahan critical section, tentang algoritma sinkronisasi, semaphore dalam proses tersebut, untuk lebih jelasnya download aja modulnya dengan meng copy link dibawah ini..
http://www.mediafire.com/view/?zfh2ytcg5aihhej
modul ini membahas tentang permasalahan critical section, tentang algoritma sinkronisasi, semaphore dalam proses tersebut, untuk lebih jelasnya download aja modulnya dengan meng copy link dibawah ini..
http://www.mediafire.com/view/?zfh2ytcg5aihhej
Tugas BAB 5 : Sinkronisasi Proses
BAB 5 : Sinkronisasi Proses
1. Apa yang dimaksud dengan race condition?
Jawab: Race Condition adalah suatu kondisi dimana beberapa proses
mengakses dan memanipulasi suatu data secara konkuren. Nilai akhir dari data
tersebut tergantung dari proses mana yang terakhir selesai dieksekusi.
2.
Apakah yang
dimaksud dengan critical section ? Untuk menyelesaikan masalah critical section
, ada tiga hal yang harus dipenuhi, sebutkan dan jelaskan !
Jawab:
Solusi yang baik harus
memenuhi 3 syarat berikut:
·
Mutual Exclution
Tidak ada proses yang
menjalankan critical section bersamaan
·
Terjadi Kemajuan ( Progress )
Proses yang sedang menjalankan Remainder Sectionnya, tidak boleh menjalankan Critival Section berikutnya sebelum proses lain menyelesaikan Critical Sectionnya
Proses yang sedang menjalankan Remainder Sectionnya, tidak boleh menjalankan Critival Section berikutnya sebelum proses lain menyelesaikan Critical Sectionnya
·
Ada Batas Waktu ( Bounded Waiting )
Ada batas waktu suatu
proses dapat menjalankan critical sectionnya
3. Bagaimana algoritma Bakery untuk
sinkronisasi banyak proses (n proses) ?
Jawab:
Algoritma Bakery adalah algoritma yang digunakan untuk pemecahan
permasalahan critical section pada n proses. Sebelum memasuki critical section,
proses menerima nomo. Proses yang mempunyai nomor terkecil dapat memasuki
critical section. Jika proses Pi dan Pj menerima nomor yang sama, jika i < j
maka Pi dilayani lebih dahulu, sebaliknya Pj akan dilayani lebih dahulu. Skema
pemberian nomor selalu membangkitkan nomor dengan menaikkan nilai urut misalnya
1, 2, 3, 3, 3, 3, 4, 5, …..Pada algoritma bakery terdapat notasi <≡ untuk
urutan nomor (ticket #, process id #) sebagai berikut :
(a,b) < (c,d) if a < c or if a = c and b < d
max (a0,…, an-1) is a number, k, such that k ≥ ai for i - 0,
…, n – 1
Variabel umum yang digunakan adalah :
boolean choosing[n];
int number[n];
Struktur data diatas diinisialisasi false dan 0. Struktur dari proses Pi adalah :
do {
choosing[i] = true;
number[i] = max(number[0], number[1], …, number [n – 1])+1;
choosing[i] = false;
for (j = 0; j < n; j++) {
while (choosing[j]) ;
while ((number[j] != 0) && (number[j],j < number[i],i)) ;
}
critical section
number[i] = 0;
remainder section
} while (1);
(a,b) < (c,d) if a < c or if a = c and b < d
max (a0,…, an-1) is a number, k, such that k ≥ ai for i - 0,
…, n – 1
Variabel umum yang digunakan adalah :
boolean choosing[n];
int number[n];
Struktur data diatas diinisialisasi false dan 0. Struktur dari proses Pi adalah :
do {
choosing[i] = true;
number[i] = max(number[0], number[1], …, number [n – 1])+1;
choosing[i] = false;
for (j = 0; j < n; j++) {
while (choosing[j]) ;
while ((number[j] != 0) && (number[j],j < number[i],i)) ;
}
critical section
number[i] = 0;
remainder section
} while (1);
4. Apa yang dimaksud semaphore dan sebutkan
operasi pada semaphore.
Jawab:
suatu proses atau lebih dapat bekerja sama
dengan menggunakan penanda-penanda sederhana. Proses berhenti sampai proses memperoleh
penanda tertentu. Variabel khusus untuk penandaan ini disebut semaphore. Semaphore
mempunyai dua property :
·
Semaphore dapat diinisialisasi dengan nilai
bukan negative.
·
Ada dua operasi terhadap semaphore yaitu Operasi
Up dan Operasi Down.
Operasi Down
Operasi ini menurunkan nilai semaphore. Jika nilai semaphore menjadi bukan positif maka proses yang mengeksekusinya diblok. Operasi Down adalah atomic (atomic action), tidak dapat diinterupsi sebelum selesai. Menurunkan nilai, memeriksa nilai, menempatkan proses pada antrian dan memblok sebagai instruksi tunggal. Tidak ada proses lain yang dapat diakses sampai proses selesai.
Operasi Up
Operasi ini menaikkan nilai semaphore. Jika satu proses atau lebih telah diblok pada suatu semaphore tidak dapat menyelesaikan operasi down maka salah satu dipilih oleh system dan dibolehkan menyelesaikan operasi downnya. Operasi Up menaikan nilai semaphore, memindahkan dari antrian dan menempatkan satu proses ke senarai ready tidak dapat diinterupsi.
//operasi sederhana yaitu block untuk menghentikan
sementara proses yang menggunakan semaphore dan wakeup(P) untuk melanjutkan
eksekusi proses P yang di-blok.
Operasi Down
Operasi ini menurunkan nilai semaphore. Jika nilai semaphore menjadi bukan positif maka proses yang mengeksekusinya diblok. Operasi Down adalah atomic (atomic action), tidak dapat diinterupsi sebelum selesai. Menurunkan nilai, memeriksa nilai, menempatkan proses pada antrian dan memblok sebagai instruksi tunggal. Tidak ada proses lain yang dapat diakses sampai proses selesai.
Operasi Up
Operasi ini menaikkan nilai semaphore. Jika satu proses atau lebih telah diblok pada suatu semaphore tidak dapat menyelesaikan operasi down maka salah satu dipilih oleh system dan dibolehkan menyelesaikan operasi downnya. Operasi Up menaikan nilai semaphore, memindahkan dari antrian dan menempatkan satu proses ke senarai ready tidak dapat diinterupsi.
//operasi sederhana yaitu block untuk menghentikan
sementara proses yang menggunakan semaphore dan wakeup(P) untuk melanjutkan
eksekusi proses P yang di-blok.
5.
Bagaimana
struktur semaphore yang digunakan untuk menyelesaikan permasalahan :
·
bounded buffer problem.
Jawab:
Untuk penyelesaian
permasalahan bounded buffer menggunakan semaphore menggunakan variabel umum
berikut :
semaphore full, empty, mutex;
Inisialisasi untuk variable diatas, full = 0, empty = n, mutex = 1. Struktur program untuk produsen adalah
do {
…
menghasilkan item pada nextp
…
wait(empty);
wait(mutex);
…
menambah nextp ke buffer
…
signal(mutex);
signal(full);
} while (1);
Sedangkan struktur program untuk konsumen adalah
do {
wait(full)
wait(mutex);
…
mengambil item dari buffer ke nextc
…
signal(mutex);
signal(empty);
…
menggunakan item pada nextc
…
} while (1);
semaphore full, empty, mutex;
Inisialisasi untuk variable diatas, full = 0, empty = n, mutex = 1. Struktur program untuk produsen adalah
do {
…
menghasilkan item pada nextp
…
wait(empty);
wait(mutex);
…
menambah nextp ke buffer
…
signal(mutex);
signal(full);
} while (1);
Sedangkan struktur program untuk konsumen adalah
do {
wait(full)
wait(mutex);
…
mengambil item dari buffer ke nextc
…
signal(mutex);
signal(empty);
…
menggunakan item pada nextc
…
} while (1);
·
reader and writer problem.
Jawab:
Variabel umum yang
digunakan adalah
semaphore mutex, wrt;
Inisialisasi variable diatas adalah mutex = 1, wrt = 1, readcount = 0.
Struktur proses writer adalah
wait(wrt);
…
menulis
…
signal(wrt);
Sedangkan struktur proses reader adalah
wait(mutex);
readcount++;
if (readcount == 1)
wait(rt);
signal(mutex);
…
membaca
…
wait(mutex);
readcount--;
if (readcount == 0)
signal(wrt);
signal(mutex):
semaphore mutex, wrt;
Inisialisasi variable diatas adalah mutex = 1, wrt = 1, readcount = 0.
Struktur proses writer adalah
wait(wrt);
…
menulis
…
signal(wrt);
Sedangkan struktur proses reader adalah
wait(mutex);
readcount++;
if (readcount == 1)
wait(rt);
signal(mutex);
…
membaca
…
wait(mutex);
readcount--;
if (readcount == 0)
signal(wrt);
signal(mutex):
·
dining philosopher problem.
Jawab:
Struktur data yang digunakan untuk penyelesaian permasalahan ini dengan
semaphore adalah
semaphore chopstick[5];
Dimana semua nilai array dinisialisasi
semaphore chopstick[5];
Dimana semua nilai array dinisialisasi
1.
Struktur program untuk filosof ke i adalah
do {
wait(chopstick[i])
wait(chopstick[(i+1) % 5])
…
makan
…
signal(chopstick[i]);
signal(chopstick[(i+1) % 5]);
…
berfikir
…
} while (1);
do {
wait(chopstick[i])
wait(chopstick[(i+1) % 5])
…
makan
…
signal(chopstick[i]);
signal(chopstick[(i+1) % 5]);
…
berfikir
…
} while (1);
Modul Sistem Operasi Bab 3
Modul mata kuliah sistem operasi bab 3 yaitu tentang : Proses - proses
Modul ini membahas tentang proses yang dilakukan oleh sebuah sistem pada sebuah komputer. dalam modul ini juga dibahas tentang penjadwalan proses, kerjasama antara proses, dan komunikasi antar proses. untuk lebih jelasnya download aj modulnya dengan mengcopy link dibawah ini.. jangan lupa untuk selalu berbagi.!!
Langganan:
Postingan (Atom)