About Me

Minggu, 24 Juli 2011

Jawaban Tugas Sisop


Jawaban UAS SISOP


_______________________________________________



Nama                 :      Ivan Surya Dilaga 
NRP                   :      9910201034
Mata Kuliah     :      Sistem Operasi
Kelas                 :      TI 1 RPL

Jl. Raya Jember KM 13 Labanasem Rogojampi
Telp. 0333-419614 Banyuwangi



1.         - Penjadwalan preemptive
            Keputusan penjadwalan CPU dilakukan apabila proses berpindah dari keadaan running
            ke ready atau proses berpindah dari waiting ke ready.
            - Penjadwalan non preemptive
            Keputusan penjadwalan CPU dilakukan apabila proses berpindah dari running
            ke waiting atau apabila proses berhenti.

2.         a) 3.6 menit
            b)
            c)
3.   a). Menggunakan Algoritma FCFS
               
Waktu tunggu untuk P1 = 0, P2 = 8, P3 = 12
               
Rata-rata waktu tunggu (turn around) = (0 + 8 + 12) / 3 = 6,6
     
b). Menggunakan Algoritma SJF non preemptive
               
Waktu tunggu untuk P1 = 0
               
P2 = 9 – 0,4 = 8,6
               
P3 = 8 – 1 = 7
               
Rata-rata waktu tunggu (turn around) = (0 + 8,6 + 7) / 3 = 5,2
     
c). Menggunakan Algoritma SJF preemptive / SRTF
               
Waktu tunggu untuk P1 = 5 – 0 = 5
               
P2 = 4,8 – 0,4 = 4,4
               
P3 = 1 – 1 = 0
               
Rata-rata waktu tunggu (turn around) = (5 + 4,4 + 0) / 3 = 3,13
     
d). Menggunakan Algoritma Round Robin (quantum time = 1)
               
Waktu tunggu untuk P1 = 8, P2 = 4, P3 = 2
               
Rata-rata waktu tunggu (turn around) = (8 + 4 + 2) / 3 = 4,6
4.         Hubungan antara pasangan algoritma
      
a). Priority dan SJF
               
Algoritma SJF adalah Algoritma Priority untuk menyelesaikan suatu kasus khusus
      
b). Priority dan FCFS
               
Algoritma FCFS adalah Algoritma Priority yang memiliki prioritas sama.
      
c). Round Robin dan FCFS
               
Algoritma Round Robin adalah Algoritma FCFS yang bersifat preemptive
               
dan menggunakan time-sharing.


5.         Race condition adalah suatu kondisi dimana dua atau lebih proses mengakses shared          memory/sumber daya pada saat yang bersamaan dan hasil akhir dari data tersebut     tergantung dari proses mana yang terakhir selesai dieksekusi sehingga hasil akhirnya     terkadang tidak sesuai dengan yang dikehendaki.
6.         critical section adalah dengan mendesain sebuah protokol di mana proses-proses dapat        menggunakannya secara bersama-sama.
            1. Mutual Exclusion.
            Jika suatu proses sedang menjalankan critical section-nya, maka proses-proses lain tidak dapat             menjalankan critical section mereka. Dengan kata lain, tidak ada dua proses yang berada dicritical             section pada saat yang bersamaan.
            2. Terjadi kemajuan (progress).
            Jika tidak ada proses yang sedang menjalankan critical section-nya dan ada proses-proses lain yang             ingin masuk ke critical section, maka hanya proses-proses yang yang sedang berada dalamentry      section saja yang dapat berkompetisi untuk mengerjakan critical section.
            3. Ada batas waktu tunggu (bounded waiting).
            Jika seandainya ada proses yang sedang menjalankan critical section, maka proses lain memiliki      waktu tunggu yang ada batasnya untuk menjalankan critical section -nya, sehingga dapat dipastikan           bahwa proses tersebut dapat mengakses critical section-nya (tidak mengalamistarvation: proses      seolah-olah berhenti, menunggu request akses ke critical sectiondiperbolehkan).
7.         #define BUFFER_SIZE 10
            typedef struct {
                        .   .   .
            } item;
            item buffer[BUFFER_SIZE];
            int in = 0;
            int out = 0;
            int counter = 0;
            item nextProduced;
            while (1) {
                        while (counter == BUFFER_SIZE)
                                    ; /* do nothing */
                        buffer[in] = nextProduced;
                        in = (in+1) % BUFFER_SIZE;
                        counter++;
8.             semaphore adalah lokasi di dalam memori yang nilainya dapat diuji dan di set oleh lebih dari        satu proses. Tes dan operasi yang dapat diset adalah, selama masing-masing proses tekait,         atomik atau uninterrupable; sekali dijalankan tidak dapat dihentikan. Hasil dari operasi tes       dan set operasi merupakan penambahan nilai semaphore dan set nilai, yang dapat bernilai        positif maupun negatif. Hasil test dan set operasi sebuah proses akan berhenti sampai nilai     semaphore diubah oleh proses yang lain. Semaphore biasanya digunakan untuk memonitor            dan mengontrol ketersediaan sumberdaya sistem, seperti pembagian segmen memori.
            Operasi Down (P)
·  operasi ini menurunkan nilai semaphore
·  jika nilai semaphore menjadi non positif maka proses yang mengeksekusinya diblocked
            Operasi Up (V)
·  Operasi ini menaikkan nilai semaphore
·  jika satu proses atau lebih telah di blocked pada suatu semaphore tak dapat menyelesaikan operasi Down, maka salah satu dipilih oleh sistem dan dibolehkan menyelesaikan operasi Down-nya
·  urutan proses yang dipilih tidak ditentukan oleh Dijkstra dapat dipilih secara acak, FIFO dll sesuai kepentingan
·  operasi UP menaikkan nilai semaphore, memindahkan dari antrian dan menempatkan proses ke antrian.
            Operasi P dan V adalah sebagai berikut :
            Wait(S) : while(S) <= 0 do no-op;
            S:=S-1;
            Signal(S) : S:=S+1;

            Keterangan :
            - Pada kondisi Wait(S) dimana S<=0, maka modifikasi yang mungkin adalah S:=S-1;
            - Operasi Wait dan Signal ini dijalankan secara individual.

9.  a.Source code implementasi Bounded-Buffer Problem (Masalah Produsen Konsumen).
            Source code ini diprogram dengan menggunakan bahasa pemrograman Java.
            Bounded buffer adalah tempat penampung data yang ukurannya terbatas,
            contohnya pada proses produsen dan konsumen. Beberapa masalah produsen-konsumen :
            produsen menaruh data pada buffer. Jika buffer tersebut sudah terisi penuh, maka
            produsen tidak melakukan apa-apa dan menunggu sampai konsumen mengosongkan isi
            buffer dan konsumen mengambil data dari buffer. Jika buffer tersebut kosong,
            maka konsumen tidak melakukan apa-apa dan menunggu sampai buffer tersebut diisi oleh             produsen.
  b. Problem lain yang terkenal adalah readers-writer problem yang memodelkan proses           yang    mengakses database. Sebagai contoh sebuah sistem pemesanan sebuah        perusahaan      penerbangan, dimana banyak proses berkompetisi berharap untuk          membaca (read) dan    menulis (write). Hal ini dapat diterima bahwa banyak proses membaca database             pada    saat yang sama, tetapi jika suatu proses sedang menulis database, tidak boleh ada proses lain yang mengakses database tersebut, termasuk membaca database tersebut.
      Dalam solusi ini, pertama-tama pembaca mengakses database kemudian melakukan            DOWN pada semaphore db.. Langkah selanjutnya readers hanya menaikkkan nilai     sebuah counter. Hasil dari pembaca nilai counter diturunkan dan nilai terakhir        dilakukan UP pada semaphore, mengizinkan memblok writer.
      Misalkan selama sebuah reader menggunakan database, reader lain terus berdatangan.       Karena ada dua reader pada saat bersamaan bukanlah sebuah masalah, maka reader        yang kedua diterima, reader yang ketiga juga dapat diterima jika terus berdatangan           reader-reader baru.
      Sekarang misalkan writer berdatangan terus menerus. Writer tidak dapat diterima ke          database karena writer hanya bisa mengakses data ke database secara ekslusif, jadi         writer ditangguhkan. Nanti penambahan reader akan menunjukkan peningkatan.    Selama             paling tidak ada satu reader yang aktif, reader berikutnya jika datang akan diterima.
      Sebagai konsekuensi dari strategi ini, selama terdapat suplai reader yang terus-       menerus, mereka akan dilayani segera sesuai kedatanga mereka. Writer akan ditunda    sampai tidak ada reader lagi. Jika sebuah reader baru tiba, katakan, setiap dua detik,         dan masing-masing reader mendapatkan lima detik untuk melakukan tugasnya, writer    tudak akan pernah mendapatkan kesempatan.
      Untuk mencegah situasi seperti itu, program dapat ditulis agak sedikit berbeda: Ketika      reader tiba dan writer menunggu, reader ditunda dibelakang writer yang justru diterima dengan segera. Dengan cara ini, writer tidak harus menunggu reader yang           sedang aktif menyelesaikan pekerjaannya, tapi tidak perlu menunggu reader lain yang     datang berturut-turut setelah itu.
         c.    Dinning Philosophers Simulation
            Sistem operasi merupakan suatu program yang bertindak sebagai interface antara user dan             sistem komputer. Sistem operasi ini harus mampu melakukan pengontrolan penggunaan    resource. Dalam proses perancangan sistem operasi, terdapat suatu landasan umum yang     disebut dengan kongkurensi.
10.           Sumber daya adalah suatu nilai potensi yang dimiliki oleh suatu materi atau unsur            tertentu dalam kehidupan. Sumber daya tidak selalu bersifat fisik, tetapi juga non-fisik      (intangible).
            Sumber daya ada yang dapat berubah, baik menjadi semakin besar maupun hilang, dan ada           pula sumber daya yang kekal (selalu tetap). Selain itu, dikenal pula istilah sumber daya yang     dapat pulih atau terbarukan (renewable resources) dan sumber daya tak terbarukan (non-      renewable resources). Ke dalam sumber daya dapat pulih termasuk tanaman dan hewan         (sumber daya hayati).
11.       Deadlock Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu            proses yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses         itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut.             Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah             resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu. Di kehidupan nyata, deadlock dapat digambarkan dalam gambar berikut.Pada gambar diatas, deadlock             dianalogikan sebagai dua antrian mobil yang akan menyeberangi jembatan. Dalam kasus    diatas, antrian di sebelah kiri menunggu antrian kanan untuk mengosongkan jembatan           (resource), begitu juga dengan antrian kanan. Akhirnya tidak terjadi kemajuan dalam kerja dua antrian tersebut.Misal ada proses A mempunyai resource X, proses B mempunyai   resource Y. Kemudian kedua proses ini dijalankan bersama, proses A memerlukan resource             Y dan proses B memerlukan resource X, tetapi kedua proses tidak akan memberikan          resource yang dimiliki sebelum proses dirinya sendiri selesai dilakukan. Sehingga akan      terjadi tunggu-menunggu.
12.       Mutual Eksklusif: hanya ada satu proses yang boleh memakai sumber daya, dan proses lain           yang ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi   dilepaskan atau tidak ada proses yang memakai sumber daya tersebut. Memegang dan        menunggu: proses yang sedang memakai sumber daya boleh meminta sumber daya lagi      maksudnya menunggu hingga benar-benar sumber daya yang diminta tidak dipakai oleh     proses lain, hal ini bisa menyebabkan kelaparan sumber daya sebab bisa saja sebuah proses             tidak mendapat sumber daya dalam waktu yang lama .
            Tidak ada Preemption: sumber daya yang ada pada sebuah proses tidak boleh diambil begitu         saja oleh proses lainnya. Untuk mendapatkan sumber daya tersebut, maka harus dilepaskan terlebih dahulu oleh proses yang memegangnya, selain itu seluruh proses menunggu dan         mempersilahkan hanya proses yang memiliki sumber daya yang boleh berjalan
            Circular Wait: adanya kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya         yang dipegang proses berikutnya.
13.       Mengabaikan masalah deadlock.
            Mendeteksi dan memperbaiki
                        Penghindaran yang terus menerus dan pengalokasian yang baik dengan       menggunakan protokol untuk memastikan sistem tidak pernah memasuki keadaan deadlock .          Yaitu dengan deadlock avoidance sistem untuk men- data informasi tambahan tentang proses             mana yang akan meminta dan menggunakan sumber daya.
                        Pencegahan yang secara struktur bertentangan dengan 4 kondisi terjadinya deadlock          dengan deadlock prevention sistem untuk memasti- kan bahwa salah satu kondisi yang       penting tidak dapat menunggu.
 
14.       a). Isi matrik Need didefinisikan dengan Max – Allocation.
            Need
            A B C
            P0 7 4 3
            P1 1 2 2
            P2 6 0 0
            P3 0 1 1
            P4 4 3 1
            Sistem dalam keadaan state selamat dengan urutan < P1, P3, P4, P2, P0> yang      memenuhi
            kriteria algoritma safety.
            Misalnya proses P1 meminta tambahan anggota tipe sumber daya A dan dua
            anggota tipe sumber daya C sehingga Request1 = (1, 0, 2). Untuk menentukan apakah
            permintaan dapat segera dipenuhi, pertama harus diperiksa apakah Request1 ≤       Available
            ((1, 0, 2) ≤ (3, 3, 2)) ternyata benar. Maka akan diperoleh state baru berikut :
            Allocation Need Available
            A B C A B C A B C
            P0 0 1 0 7 4 3 2 3 0
            P1 3 0 2 0 2 0
            P2 3 0 1 6 0 0
            P3 2 1 1 0 1 1
            P4 0 0 2 4 3 1
            Kemudian harus ditentukan apakah sistem berada dalam state selamat. Setelah
            mengeksekusi algoritma safety ternyata urutan memenuhi criteria
            safety.
            Setelah sistem berada pada state doatas, permintaan (3, 3, 0) oleh P4 tidak dapat
            dipenuhi karena sumber daya tidak tersedia. Permintaan (0, 2, 0) oleh P1 juga tidak
            dapat dipenuhi karena meskipun sumber daya tersedia, state hasil tak selamat.
            b). State Selamat (Safe State)
            Ketika suatu proses meminta sumber daya yang tersedia, sistem harus
            menentukan apakah alokasi sumber daya pada proses mengakibatkan sistem dalam            state
            selamat. Sistem dikatakan dalam state selamat jika sistem dapat mengalokasikan
            sumber daya untuk setiap proses secara berurutan dan menghindari deadlock. Urutan
            proses selamat jika untuk setiap Pi, sumber daya yang masih diminta Pi
            masih memenuhi sumber daya yang tersedia dan sumber daya yang dibawa oleh setiap
            Pj, dimana j < i. Jika sumber daya yang diperlukan Pi tidak dapat segera disediakan,          maka Pi dapat menunggu sampai semua Pj selesai. Ketika Pj selesai, Pi dapan         memperoleh sumber daya yang diperlukan, mengeksekusi, mengembalikan sumber          daya yang dialokasikan dan terminasi. Ketika Pi selesai, Pi+1 dapat memperoleh     sumber daya yang diperlukan dan seterusnya. Jika sistem dalam state selamat maka           tidak terjadi deadlock, sedangkan jika sistem dalam state tidak selamat (unsafe state)     maka kemungkinan terjadi deadlock  Metode menghindari deadlock menjamin bahwa sistem tidak pernah memasuki state tidak selamat.

            Untuk menggambarkan sistem dapat berpindah dari state selamat ke state tidak
            selamat dapat dilihat ilustrasi berikut ini. Misalnya sistem mempunyai 12 magnetic tape
            drive dan 3 proses P0, P1 dan P2. Proses P0 membutuhkan 10 tape drive, proses P1
            membutuhkan 4 dan proses P2 membutuhkan 9 tape drive. Misalnya pada waktu t0,
            proses P0 membawa 5 tape drive, P1 membawa 2 dan P2 membawa 2 tape drive
            sehingga terdapat 3 tape drive yang tidak digunakan.
            Kebutuhan Maksimum Kebutuhan Sekarang