Senin, 08 Mei 2017

Konsep Sinkronisasi Sistem Operasi



Perbedaan Bounded-Buffer, Readers and Writers, Dining Philosophers Problem



1. Bounded-Buffer
     Bounded buffer merupakan suatu struktur data yang mampu untuk menyimpan beberapa nilai dan mengeluarkannya kembali ketika diperlukan . Jika dianalogikan bounded buffer ini akan mirip dengan sebuah tumpukan piring. Kita menaruh piring dan menaruh lagi sebuah piring, ketika ingin mengambil piring maka tumpukan yang paling atas yang akan terambil.Jadi piring terakhir yang dimasukan akan pertama kali diambil.

>Contoh Kasus Bounded - Buffer
     Pokok pembahasan utama dalam masalah bounded buffer adalah bagaimana jika ada dua proses berbeda yang berusaha mengakses buffer tersebut. Salah satu proses akan memberi nilai pada buffer dan mengisi buffer tersebut. Proses yang lain akan membaca nilai dan mengosongkan buffer tersebut. Proses yang pertama biasa disebut producer sedangkan yang kedua disebut consumer.
     Karena ada dua proses yang bekerja, maka harus dihindari adanya race condition. Race condition adalah situasi dimana beberapa proses mengakses dan memanipulasi data secara bersamaan. Jika hal ini terjadi maka producer akan menghasilkan dan mengisi buffer terus menerus meskipun buffer sudah penuh dan belum sempat untuk dibaca oleh consumer. Untuk menghindari race condition, kita harus dapat mesinkronisasikan proses tersebut, dengan memberikan perintah tertentu supaya hanya ada satu proses yang berjalan.



>Solusi Bounded – Buffer
     Solusi shared-memory pada problem bounded buffer memungkinkan paling banyak n-1 item dalam buffer pada waktu yang sama. Jadi, ketika buffer kosong, producer akan mengisi buffer hingga paling banyak n-1 item dalam buffer. Jika buffer tersebut sudah terisi n-1 item, akan terjadi proses switch sehingga consumer akan mengosongkan buffer tersebut. Selama consumer bekerja, producer tidak melakukan apa-apa dan menunggu hingga buffer tersebut kosong lagi. Jika buffer tersebut sudah kosong, maka akan terjadi proses switch lagi, sementara consumer tidak melakukan apa-apa dan menunggu hingga buffer tersebut diisi oleh producer.





2.Readers and Writers Problem
     Readers and Writers Problem adalah problem yang memodelkan proses yang mengakses database. Masalah ini timbul ketika ada dua proses atau lebih berbagi data yang sama. Data yang dimaksud disini bisa berbentuk buffer, file atau objek dari suatu program.

>Ada dua macam Proses , antara lain : 1.Pembaca (reader)
                                                            2.Penulis (writer)
     Kedua jenis proses tersebut berbagi sumber daya penyimpanan yang sama. Syarat kondisi writers-readers :
  • Proses-proses pembaca dapat membaca sumber daya secara simultan
  • Hanya boleh ada satu penulis menulis pada setiap saat
  • Bila ada yang menulis, tidak boleh ada yang membaca
>Contoh Kasus Readers and Writers Problem
     Contoh Readers and Writers Problem yaitu 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. Solusi dalam readers-writers problem : 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 Dalam kondisi lain, 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. Pencegahan masalah yaitu dengan program dapat ditulis agak sedikit berbeda. Misalnya 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 ).


>Solusi Readers and Writers Problem
     1.Pembaca di prioritaskan : Reader tidak akan menunggu reader(s) lain yang sedang membaca, walaupun ada writer yang sedang menunggu. Dengan katalain, Jika ada reader yang datang ketika reader lain sedang membaca dan sebuah writer sedang menunggu, maka reader yang baru datang tersebut akan langsung mendapat giliran untuk membaca. Writer akan ditunda pengerjaannya.
     2.Penulis di prioritaskan : Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader yang memulai untuk membaca data.

     3. Kedua jenis proses mempunyai prioritas yang sama : Tidak ada prioritas khusus yang diberikan kepada kedua jenis proses


3.Dining Philosophers Problem
     Dining Philosophers Problem merupakan salah satu masalah klasik dalam sinkronisasi. Dining Philosohers Problem dapat diilustrasikan sebagai berikut, terdapat lima orang filsuf yang sedang duduk mengelilingi sebuah meja. Terdapat lima mangkuk mie di depan masing-masing filsuf dan satu sumpit di antara masing-masing filsuf. Para filsuf menghabiskan waktu dengan berpikir (ketika kenyang) dan makan (ketika lapar). Ketika lapar, filsuf akan mengambil dua buah sumpit (di tangan kiri dan tangan kanan) dan makan. Namun adakalanya, hanya diambil satu sumpit saja. Jika ada filsuf yang mengambil dua buah sumpit, maka dua filsuf di samping filsuf yang sedang makan harus menunggu sampai sumpit ditaruh kembali. Hal ini dapat diimplementasikan dengan wait dan signal.


>Contoh Kasus Dining Philosophers Problem
     Pada sebuah computer tentunya terdapat aplikasi-aplikasi yang dapat memudahkan kita untuk melakukan suatu pekerjaan. Namun disamping kemudahan yang diberikan, terdapat ancaman negative yang dapat aplikasi-aplikasi itu berikan pada computer kita jika kita tidak menggunakannya dengan benar. Suatu contoh ketika kita mengerjakan suatu tugas. Kita membuka dan menjalankan beberapa aplikasi secara bersamaan. Aplikasi yang kita gunakan misalnya ms. Word (membuka 6 file word sebagai sumber tugas), winamp untuk memainkan lagu, firefox untuk browsing internet, pidgin untuk sesekali chating, sementara itu aplikasi start up yang berjalan juga banyak dan RAM yang tersedia tidak begitu besar sehingga hal ini akan membuat computer menjalankan aplikasi itu terus-menerus jika kita tidak mematikannya. Hal ini akan membuat computer berjalan semakin lambat dan memungkinkan terjadinya starvation atau deadlock dalam beberapa waktu kemudian.


> Solusi Dining Philosophers Problem
     Solusi Dining – Philosophers Problem ada dua, yakni :
a.Solusi Waiter
     Solusi Waiter : solusi sederhana ini dilakukan dengan mengadakan seorang waiter yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah (dua pasang) sumpit sedang dipakai,orang berikutnya yang ingin memakai sumpit harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah satu sumpit telah selesai terpakai.


b.Solusi Hierarki Resource
     Solusi Hirarki Resource: resources (sumpit) di meja makan telah diberi susunan hirarki. Setiap permintaan orang terhadap sebuah sumpit harus dilakukan pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini, setiap orang dapat mengambil sumpit dimanapun diatas meja. Misalkan setiap sumpit diberi nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat mengambil sumpit dengan nomor yang paling rendah, kemudian mengambil sumpit yang setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus meletakkan sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang rendah.

Selasa, 18 April 2017

Jawaban Soal Ujian Tengah semester



             1.  Seperti apa proses dalam Sistem Operasi?
·         Proses Sistem Operasi adalahkeadaan ketika sebuah program sedang di eksekusi. Saat komputer berjalan, terdapat banyak proses yang berjalan secara bersamaan. Sebuah proses dibuat melalui system call create-process yang membentuk proses turunan ( child process) yang dilakukan oleh proses induk ( parent process). Proses turunan tersebut juga mampu membuat proses baru sehingga semua proses ini pada akhirnya membentuk pohon proses.

2.      Apa perbedaan antara stack dan heap?
·         Stack   :Kalau Stack salah satu bagian yang di gunakan untuk menyimpan data-data atau variable yang penglamatan memorinya telah dilakukan saat kompilasi.
·         Heap    : Sedangkan Heap area memori yang di gunakan untuk alokasi secara dinamis.
3.      Apa yang dimaksud Process Control Block (PCB), dan apa perbedaannya dengan Thread?
·         Process Control Block (PCB) :Merupakan informasi-informasi yang di perlukan sebuah sistem operasi untuk mengendalikan dan mengkoordinasikan beragam proses yang aktif.
·         Thread                                     : Merupakan prinsip yang memperbolehkan sebagian dari program untuk berjalan secara independen denga sebagian program lainnya.
4.      Jelaskan apa perbedaan unbounded-buffer dan bounded-buffer?
·         Unbounded-buffer: tidak menggunakan batasan di buffer
·         Bounded-buffer     : Menggunakan buffer dengan ukuran tertentu
5.      Definisikan apa itu Remote Procedure Calls?
·         Remote Procedure Call: Suatu protocol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu progam untuk berjalan pada suatu computer tanpa terasa adanya eksekusi kode pada sistem yang jauh.
6.      Apa itu Batch dan seperti apakah proses System Calls?
·         Batch                        : File teks yang berisi serangkaian perintah yang mungkin biasanya paling umum adalah untuk memulai menggunakan program dan menjalankan program.
·         Proses System Calls : Menuliskan suatu program sederhana untuk membaca suatu file ke file lainnya
7.      Apa yang dimaksud shell pada sistem operasi Linux, dan jelaskan perbedaan antara Shell dan Kernel?
·         Shell    :Merupakan satu unit masukkan untuk interface pemakai untuk berinteraksi dengan satu sistem operasi. Shell adalah lapisan dari program yang mengerti dan melaksanakan perintah satu masukan dari user.
·         Kernel             : merupakan suatu inti yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer.
           8.    Apakah Windows juga mempunyai shell? 2. Sebutkan 20 perintah shell yang banyak                           digunakan untuk mengelola sistem operasi Linux!
·         Tidak, Karena shell hanya berada di Linux.
                         1) &
                             Perintah & digunakan untuk menjalan perintah di belakang (background)
                         2) adduser
                             Digunakan untuk membuat user baru
                         3) Alias
                             Untuk membuat/memberi nama lain dari sebuah perintah
                         4) chgrp
                             Perintah ini digunakan untuk merubah kepemilikan kelompok file atau direktori
                         5) chmod
                             Digunakan untuk menambah dan mengurangi ijin pemakai untuk mengakses file                                  atau direktori.
                         6) cp
                             Untuk mencopy/menyalin file/folder
                         7) find
                             Untuk menemukan letak suatu file
                         8) grep
                            Global regular expresion parse adalah perintah untuk mencari file-file yang                                           mengandung teks dengan kriteria yang telah di tentukan
                         9) halt
                             Perintah untuk mematikan/Menshutdown system
                        10) kill
                             Untuk mematikan/menghentikan suatu proses
                        11) login
                              Untuk Masuk ke system
                        12) logout
                              Untuk keluar dari system
                         13) ls
                              Menampilkan isi dari sebuah direktori seperti perintah dir di DOS.
                         14) mkdir
                              Membuat direktori baru, sama dengan perintah md di DOS
                         15) mv
                              Untuk memindahkan file dari satu lokasi ke lokasi yang lain
                        16) passwd
                              Digunakan untuk mengganti password
                        17) pwd
                              Untuk menampilkan nama direktori dimana Anda saat itu sedang berada.
                        18) rm
                              Perintah untuk mengahpus file
                        19) unalias
                              Kebalikan dari perintah alias, perintah ini akan membatalkan sebuah alias
                        20) who
                              Untuk menampilkan siapa saja yang sedang login

9.      Apa yang anda ketahui tentang Mach dan Debugging?
·         MACH      :Sebuah metode sistem operasi kernel yang dikembangkan di Carnegie Mellon University untuk mendukung penelitian sistem operasi, terutama komputasi terdistribusi dan paralel. Ini adalah salah satu contoh awal dari sebuah mikrokernel . derivatif nya adalah dasar dari kernel sistem operasi modern di Mac OS X dan GNU Hurd .
·         Debugging: Metode yang di lakukan oleh programmer dan pengembang perangkat lunak untuk mencari atau mengurangi bug pada sebuah program sehingga dapat bekerja sesuai keinginan.

10.  Apa perbedaan bootstrap program, bootstrap loader, dan boot block?
·         Bootstap program       :  kode yang di simpan di code ROM yang dapat menempatkan kernel, memasukkannya ke dalam memori lalu mengeksekusinya.
·         Bootstrap Loader        : Sebuah program yang cukup sederhana untuk di panggil secara manual
·         Boot block                   : Sejenis Emergency BIOS untuk melakukan flash ulang BIOS. Dan biasanya  muncul saat BIOS gagal untuk melakukan start.