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.

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

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

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

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

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

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

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

.

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

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

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

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

Dimana semua nilai array dinisialisasi 1.signal(wrt). readcount--. Sedangkan struktur proses reader adalah wait(mutex). signal(mutex): c. … berfikir … } while (1). signal(mutex). dining philosopher problem. if (readcount == 1) wait(rt). readcount++. . signal(chopstick[(i+1) % 5]). Struktur data yang digunakan untuk penyelesaian permasalahan ini dengan semaphore adalah semaphore chopstick[5]. … membaca … 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.1. 2. Apa yang dimaksud deadlock ? 3. Sebutkan 4 kondisi yang menyebabkan deadlock. Apa yang dimaksud dengan sumber daya ? Berikan contohnya. . Sebutkan cara mencegah deadlock dari 4 kondisi tersebut pada soal 3.

Sign up to vote on this title
UsefulNot useful