P. 1
Latihan Soal

Latihan Soal

|Views: 424|Likes:
Published by Budi Novrianto

More info:

Published by: Budi Novrianto on Mar 22, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

11/17/2013

pdf

text

original

LATIHAN SOAL : 1.

Sebutkan state pada proses dan jelaskan diagram proses

Status proses terdiri dari : a. New: proses sedang dibuat. b. Running: proses sedang dieksekusi. c. Waiting: proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal). d. Ready: proses menunggu jatah waktu dari CPU untuk diproses. e. Terminated: proses telah selesai dieksekusi.

2.

Apa yang dimaksud short term scheduler dan long term scheduler ?

Longterm-Scheduler (job scheduler), menyeleksi proses-proses mana yang harus dibawa ke ready queue.

} item. 1. sehingga setiap proses dijadwal dengan lambat.. int in = 0. Tuliskan kode program untuk penyelesaian permasalahan producer consumer dengan menggunakan shared memory.Short-term Scheduler (CPU scheduler). proses dapat dibagi dalam modul-modul 4. Long-term scheduler digunakan untuk mengontrol tingkat multiprogramming. lebih memberikan kenyamanan pada programmer. int out = 0. 3. . sedangkan long-term scheduler terjadi sangat jarang (dalam detik atau menit). meningkatkan kecepatan komputasi 3. dan mengakolakasikan CPU ke salah satu dari proses-proses tersebut.. Penyelesaian permasalahan boundedbuffer producer-consumer dengan solusi shared memory menggunakan data shared berikut : #define BUFFER_SIZE 10 Typedef struct { . Short-term scheduler terjadi sangat sering (dalam milidetik). item buffer[BUFFER_SIZE]. jadi setiap proses dijadwal dengan cepat. 4. Jelaskan 4 alasan mengapa proses harus bekerja sama. terjadi pembagian informasi 2. memilih proses-proses yang siap untuk dieksekusi.

Send (A pesan ). mengirim pesan ke mailbox B. } Proses consumer : item nextConsumed. /* do nothing */ nextConsumed = buffer[out]. out = (out + 1) % BUFFER_SIZE. Receive(A pesan ). satu dari mailbox A dan satu dari Mailbox B. while (1) { while (((in + 1) % BUFFER_SIZE) == out) . /* do nothing */ buffer[in] = nextProduced. in = (in + 1) % BUFFER_SIZE. } 5. Receive(B pesan ). Tunjukkan urutan send dan receive yang dieksekusi. Proses P menerima pesan dari mailbox B. Diketahui skema komunikasi antar proses menggunakan mailbox a. mengirim pesan ke mailbox A.Proses producer : item nextProduced. while (1) { while (in == out) . . Proses P ingin menunggu 2 pesan. Proses P menerima pesan dari mailbox A Send (B pesan ).

seperti open file dan sinyal secara kolektif yang sering disebut dengan task. dan P akan menerima pesan dari kedua mailbox. blocked. kumpulan register. Sinkronisasi ini sering disebut dengan istilah rendezvous. bagian data. Namun adakalanya proses-proses akan menggunakan resource secara bersama-sama. Dengan menggunakan metode bounded capacity. salah satu pesan dari mailbox akan mengantri untuk dikirim. Hanya bisa menerima satu pesan: Caranya : Receive ( P pesan). Baru diterima oleh P. maka mailbox B akan menunggu. Kedua proses ini harus berjalan secara sinkron.Dengan menggunakan metode zero capacity. b. menerima peasan dari mailbox A. thread memiliki status: ready. menerima peasan dari mailbox B. dan ruang stack disebut dengan thread atau lighweight process (LWP). running dan terminated. Thread akan bekerjasama dengan thread yang lainnya dalam hal penggunaan bagian kode. Receive ( P pesan). pengirim pesan harus menunggu penerima pesan menerima pesan yang disampaikan sebelum ia mengirim pesan lagi. Jelaskah apa yang dimaksud dengan thread dan struktur dari thread. mailbox B akan menempati tempat mailbox A terdahulu dan baru kemudian dikirim. Bagaimana urutan Send dan Receive yang dieksekusi P Jika P ingin menunggu satu pesan dari mailbox A atau Mailbox B. Tapi. maka kedua pesan dapat langsung dikirim. Thread dapat . dan resource sistem operasi. P menerima mailbox A. Struktur Thread : Seperti halnya proses. Baru setelah mailbox A selesai dikirim. dan hanya satu thread yang aktif dalam satu waktu. 6. Suatu proses didefinisikan oleh resource yang digunakan dan lokasi yang akan dieksekusi. Suatu unit dasar dari CPU utilization yang berisi program counter. Misalnya mailbox A dulu yang dikirim.

3. Sebab semua thread dapat mengakses setiap alamat dalam satu task. 1. thread dapat membaca dan menulisi stack dari thread yang lainnya. Namun. 2. menggunakan resource bersama-sama thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Jika satu thread dalam keadaan blocked. sementara thread lain berusaha menampilkan image. Keuntungan dari berbagi kode adalah mengijinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.membuat child thread. sebuah thread dapat melayani permintaan pengguna. tidak saling bebas. respon lebih cepat Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meskipun sebagian dari program tersebut diblok atau melakukan operasi yang panjang. Jelaskan empat keuntungan menggunakan threads pada multiple process. Sehingga tidak ada proteksi antara satu thread terhadap thread yang lainnya. Sebagai contohnya dalam web browser yang multithreading . Alternatifnya adalah dengan penggunaan thread. maka thread yang lainnya dapat dijalankan. Akan susah untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan dan pengaturan. . Suatu proses dapat terdiri dari satu thread (single thread) dan beberapa thread (multi thread) 7. lebih ekonomis dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya.karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread. karena itu dapat meningkatkan respons kepada pengguna.

. Mach C-threads dan Solaris threads. Contoh sistem yang menggunakan user thread adalah POSIX Pthreads. kernel bisa menjadwal thread-thread pada processor yang berbeda. dan context switch proses 5 kali lebih lama ibandingkan context switch thread. 4. Pada Solaris. penjadwalan. Apakah perbedaan antara user-level thread dan kernel-supported threads ? User thread adalah thread yang diatur dengan menggunakan pustaka user level thread. Karena pengaturan thread dilakukan oleh sistem operasi maka pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread.tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Keuntungan dari multithreading bisa sangat meningkat pada arsitektur multiprocessor . tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu( satu -satuan waktu pada CPU biasa disebut time slice atau quantum ). 8. dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda. pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread. Pada arsitektur processor tunggal. meningkatkan utilitas arsitektur mikroprosessor. CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi pararel. dan manajeman thread dilakukan oleh kernel pada kernel space . Pembuatan. Keuntungan lainnya adalah pada lingkungan multiprocessor . Keuntungannya adalah thread diatur oleh kernel. kernel thread adalah thread yang didukung oleh Kernel. karena itu jika sebuah thread menjalankan blocking system call maka kernel bisa menjadwalkan thread lain di aplikasi untuk melakukan eksekusi.

setiap user-level thread dipetakan ke kernel thread seperti pada Gambar dibawah misalnya pada Windows 95/98/NT/2000 dan OS/2. . Many-to-One. Ada 3 model multithreading. jelaskan. One-to-One. Pada model Many-to-One .Contoh sistem yang menggunakan kernel thread adalah Windows 95/98/NT/2000. 2. BeOS dan Linux. Tru64 UNIX. 9. Solaris. beberapa user level thread dipetakan ke satu kernel thread dan digunakan pada sistem yang tidak mendukung kernel threads seperti pada gambar berikut. Pada model One-to-One. Model multi thread terdiri dari model 1.

Pada model Many-to-Many. runnable.3. blocked dan dead seperti Gambar dibawah. Pada sistem operasi ini akan dibuat sejumlah kernel thread seperti Gambar dibawah. . Jelaskan state pada Java thread. contohnya Solaris 2 dan Windows NT/2000 dengan ThreadFiber package. Java thread diatur oleh Java virtual machine (JVM). 10. Bahasa pemrograman Java menggunakan Java thread yang dibuat dengan menggunakan class Thread dan mengimplementasikan antar muka yang bersifat runnable (dapat dijalankan). user level thread dipetakan ke beberapa kernel threads. Many-to-Many. Java thread terdiri dari state new.

.

Keputusan untuk menjadwalkan CPU mengikuti empat keadaan dibawah ini : 1. Pada saat CPU menganggur. 2. 6. 3. Sebaliknya. yaitu biaya yang dibutuhkan sangat tinggi. Seleksi semacam ini disebut dengan shortterm scheduler (CPU scheduler). 2. Tentukan rata-rata waktu turnaround untuk penjadwalan CPU dengan menggunakan algoritma . 4. Antara lain. apabila yang digunakan adalah keadaan 2 dan 3. Estimasi waktu eksekusi (burst time) masing-masing 10. maka sistem operasi harus menyeleksi prosesproses yang ada di memori utama (ready queue) untuk dieksekusi dan mengalokasikan CPU untuk salah satu dari proses tersebut. Pada non-preemptive. Apabila proses berhenti. Terdapat 5 job yang datang hampir pada saat yang bersamaan. 2. maka disebut dengan preemptive. 4 dan 8 menit dengan prioritas masing-masing 3. Apabila proses berpindah dari keadaan running ke waiting. Apabila proses berpindah dari keadaan running ke ready. jika suatu proses sedang menggunakan CPU.1. maka penjadwakan semacam ini disebut non-peemptive. Apabila model penjadwalan yang dipilih menggunakan keadaan 1 dan 4. Preemptive scheduling memiliki kelemahan. 5. 1 dan 4. Apabila proses berpindah dari keadaan waiting ke ready. maka proses tersebut akan tetap membawa CPU sampai proses tersebut melepaskannya (berhenti atau dalam keadaan waiting). Sebutkan perbedaan antara penjadwalan preemptive dan nonpreemptive. dimana 5 merupakan prioritas tertinggi. 2. Hal ini terjadi jika suatu proses ditinggalkan dan akan segera dikerjakan proses yang lain. harus selalu dilakukan perbaikan data.

Priority c. Apakah ada hubungan antara pasangan algoritma berikut ? a.0 8 P2 0. FCFS b. Round Robin (quantum time = 2) b. Shortest job first 3. Priority dan SJF b.4 4 P3 1.0 1 Tentukan rata-rata waktu tunggu dan rata-rata waktu turnaround dengan algoritma penjadwalan a. SJF preemptive / SRTF d. RR dan SJF . Round Robin dengan quantum time = 1 4. Suatu algoritma penjadwalan CPU kemungkinan melibatkan algoritma yang lain. SJF non preemptive c. Priority dan FCFS c. Diketahui proses berikut : Proses Arrival Time Burst Time P1 0.a. contohnya algoritma FCFS adalah algoritma RR dengan waktu quantum tertentu.

Apakah yang dimaksud dengan critical section ? Untuk menyelesaikan masalah critical section . 3. Sebuah solusi dari permasalahan critical section harus memenuhi 3 syarat sebagai berikut : 1. Apabila proses Pi menjalankan critical section-nya. maka tidak ada proses lain yang dapat menjalankan critical section. Proses dipaksa berhenti sampai proses memperoleh penanda tertentu. Apabila tidak ada proses yang menjalankan critical section-nya dan terdapat beberapa proses yang akan memasuki critical section-nya. Apa yang dimaksud dengan race condition? Situasi dimana beberapa proses mengakses dan memanipulasi data yang digunakan bersamasama secara konkuren disebut dengan race condition. Bounded Waiting. Semaphore S berupa variable integer. 2. bounded buffer problem. S--. 3. Masing-masing proses mempunyai sebuah kode segmen yang disebut dengan critical section. 2. 5. dan pemilihan ini tidak dapat ditunda tiba-tiba. Variabel khusus untuk penandaan ini disebut semaphore. sebutkan dan jelaskan ! Suatu system terdiri dari n proses dimana semuanya berkompetisi menggunakan data yang digunakan bersama-sama. menulis file dan lain sebagainya. Mutual Exclusion. Semaphore adalah alat untuk sinkronisasi yang tidak membutuhkan busy waiting. Prinsip semaphore adalah sebagai berikut : Dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Terdapat batasan jumlah waktu yang diijinkan oleh proses lain untuk memasuki critical section setelah sebuah proses membuat permintaan untuk memasuki critical section-nya dan sebelum permintaan dikabulkan. Semaphore hanya dapat diakses melalui operasi atomic yang tak dapat diinterupsi sampai kode selesai.1. ada tiga hal yang harus dipenuhi. maka hanya proses-proses itu yang tidak diproses di dalam daerah pengingat (remainder) dapat ikut berpartisipasi di dalam keputusan proses mana yang akan memasuki critical section selanjutnya. Bagaimana algoritma Bakery untuk sinkronisasi banyak proses (n proses) ? 4. signal (S): S++. Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan strukstur penanda yang sesuai kebutuhannya. dimana proses memungkinkan untuk mengubah variabel umum. Untuk penyelesaian permasalahan bounded buffer menggunakan semaphore menggunakan variabel umum berikut : . Apa yang dimaksud semaphore dan sebutkan operasi pada semaphore Semaphore adalah pendekatan yang dikemukakan Dijkstra. Bagaimana struktur semaphore yang digunakan untuk menyelesaikan permasalahan : a. Progress. mengubah sebuah tabel. Operasi dari semaphore S adalah wait dan signal berikut : wait (S): while S≤ 0 do no-op.

b. wrt. … menggunakan item pada nextc … } while (1). … menulis … .semaphore full. mutex = 1. Terdapat dua variasi pada masalah ini. Jika ada writer yang sedang menunggu. } while (1). readcount = 0. mutex. Inisialisasi variable diatas adalah mutex = 1. wait(mutex). Struktur program untuk produsen adalah do { … menghasilkan item pada nextp … wait(empty). signal(full). … menambah nextp ke buffer … signal(mutex). yaitu : a. Struktur proses writer adalah wait(wrt). Sedangkan struktur program untuk konsumen adalah do { wait(full) wait(mutex). Variabel umum yang digunakan adalah semaphore mutex. empty = n. maka satu reader akan antri di wrt dan n-1 reader akan antri di mutex. signal(empty). empty. Jika writer mengeksekusi signal(wrt). wrt = 1. reader and writer problem. maka dapat disimpulkan bahwa eksekusi adalah menunggu reader atau menunggu satu writer. maka tidak boleh ada reader lain yang bekerja (writer memiliki prioritas yang lebih tinggi) Jika terdapat writer dalam critical section dan terdapat n reader yang menunggu. Inisialisasi untuk variable diatas. … mengambil item dari buffer ke nextc … signal(mutex). seorang reader tidak perlu menuggu reader lain untuk selesai hanya karena ada writer menunggu (reader memiliki prioritas lebih tinggi disbanding dengan writer) b. full = 0.

signal(chopstick[(i+1) % 5]). dining philosopher problem. signal(mutex): c. … berfikir … } while (1). if (readcount == 1) wait(rt). Dimana semua nilai array dinisialisasi 1. readcount++.signal(wrt). signal(mutex). Struktur data yang digunakan untuk penyelesaian permasalahan ini dengan semaphore adalah semaphore chopstick[5]. readcount--. … membaca … wait(mutex). Sedangkan struktur proses reader adalah wait(mutex). Struktur program untuk filosof ke i adalah do { wait(chopstick[i]) wait(chopstick[(i+1) % 5]) … makan … signal(chopstick[i]). if (readcount == 0) signal(wrt). .

4. Apa yang dimaksud deadlock ? 3.1. Apa yang dimaksud dengan sumber daya ? Berikan contohnya. Sebutkan 4 kondisi yang menyebabkan deadlock. Sebutkan cara mencegah deadlock dari 4 kondisi tersebut pada soal 3. . 2.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->