Senin, 14 Mei 2012

Tugas 9 Sistem Operasi



1.      Terjadinya deadlock
Proses disebut deadlock, jika proses menunggu suatu kejadian tertentu yang tak akan pernah terjadi. Sekumpulan proses berkondisi deadlock, jika setiap proses yang ada dikumpulan itu menunggu sesuatu kejadian yang hanya dapat dilakukan proses lain yang juga berada di kumpulan itu. Proses menunggu kejadian yang tak akan pernah terjadi. Proses deadlock terjadi  ketika proses-proses mengakses secara eksklusif sumber daya. Semua deadlock yang terjadi melibatkan persaingan memperoleh sumber daya ekslusif oleh dua proses atau lebih. Adanya deadlock akan mengakibatkan sistem menjadi kacau.

2.      Perbedaaan antara Race Condition dan Necessary conditions adalah:
Kalau Race condition adalah situasi dimana terdapat beberapa proses mengakses dan memanipulasi data yang sama secara bersamaan. Nilai data bergantung dari proses mana yang selesai terakhir. Hal ini akan menyebabkan nilai data menjadi tidak benar, jika tidak terdapat mekanisme untuk mensinkronisasikan data tersebut kepada proses-proses yang menggunakannya. Sebagai contoh, perhatikanlah sebuah print spooler. Ketika sebuah proses ingin mencetak sebuah berkas, proses tersebut memasukkan nama berkas ke dalam sebuah spooler direktori.
Sedangkan Necessary conditions adalah syarat-syarat perlu terjadinya deadlock yang meliputi:
·         Mutual Eksklusif (Mutual Exclusion): 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 (Hold and Wait): 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 (Non-pre-emptive): 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.

3.      Instal linuk
Disini saya menginstal linuk dengan menggunakan virtual box dengan ubuntu-11.10-desktop-i386 . Dengan tampilan desktop sebagai berikut:

Dan tampilan terminal sebagai berikut:


Senin, 07 Mei 2012

Tugas 8 Sistem Operasi



1.      Terjadinya konkurensi pada saat proses-proses berada pada saat yang sama. Konkurensi muncul pada saat konteks yang berbeda, antara lain:
·         Banyak aplikasi (multiple application).
Multiprogramming memungkinkan banyak proses sekaligus dijalankan. Proses-proses dapat berasal dari aplikasi-aplikasi berbeda. Pada sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer.
·         Aplikasi terstruktur.
Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses. Dengan sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
·         Struktur sistem operasi.
Keunggulan strukturisasi dapat juga diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai sekumpulan proses. Sistem operasi bermodelkan client/server menggunakan pendekatan ini.
·         Untuk Strukturisasi Satu Proses.
Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses.

2.      Masalah-masalah ketika terjadi konkurensi:
·         Mutual Exclusion (pengeluaran timbal balik)
Merupakan kondisi dimana terdapat sumber daya yang tidak dapat dipakai bersama pada waktu yang bersamaan (misalnya : printer, disk drive). Kondisi demikian disebut sumber daya kritis, dan bagian program yang menggunakan sumber daya kritis disebut critical region / section. Hanya satu program pada satu saat yang diijinkan masuk ke critical region. Pemrogram tidak dapat bergantung pada sistem operasi untuk memahami dan memaksakan batasan ini, karena maksud program tidak dapat diketahui oleh sistem operasi. Hanya saja, system operasi menyediakan layanan (system call) yang bertujuan untuk mencegah proses lain masuk ke critical section yang sedang digunakan proses tertentu. Pemrograman harus menspesifikasikan bagian-bagian critical section, sehingga sistem operasi akan menjaganya. Pentingnya mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada suatu interval waktu.
Contoh : Pada saat kita sedang makan di sebuah meja orang lain tidak bisa menempati meja tersebut hingga kita pergi dari meja itu.

·         Deadlock (buntu)
Deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semuanya tidak dapat mengakhiri prosesnya secara benar.
Contoh : Terdapat dua proses, yaitu P1 dan P2 dan dua sumber daya kritis, yaitu R1 dan R2.
Proses P1 dan P2 harus mengakses kedua sumber daya tersebut, dengan kondisi ini terjadi : R1 diberikan ke P1, sedangkan R2 diberikan ke P2.

Karena untuk melanjutkan eksekusi memerlukan kedua sumber daya sekaligus maka kedua proses akan saling menunggu sumber daya lain selamanya. Tak ada proses yang dapat melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya lain yang tak pernah diperolehnya. Kedua proses dalam kondisi deadlock, yang tidak dapat membuat kemajuan apapun dan deadlock merupakan kondisi terparah karena dapat melibatkan banyak proses dan semuanya tidak dapat mengakhiri prosesnya secara benar.
·         Starvation (kelaparan)
Starvation adalah keadaan dimana pemberian akses bergantian terus-menerus, dan ada suatu proses yang tidak mendapatkan gilirannya.
Contoh : Terdapat tiga proses, yaitu P1, P2 dan P3.
P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodic Skenario berikut terjadi :
P1 sedang diberi sumber daya R sedangkan P2 dan P3 diblocked menunggu sumber daya R.
Ketika P1 keluar dari critical section, maka P2 dan P3 diijinkan mengakses R.
Asumsi P3 diberi hak akses, kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R.
Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R. Dalam kondisi ini memang tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan untuk dilayani).
·            Sinkronisasi
Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. tujuan utama sinkronisasi adalah menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda (mutual exclusion) serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan lancar dan terhindar dari deadlock dan starvation. Sinkronisasi umumnya dilakukan dengan bantuan perangkat sinkronisasi. Penyelesaian terhadap masalah ini sangat penting karena perkembangan teknologi sistem komputer menuju ke sistem multiprocessing, terdistribusi dan paralel yang mengharuskan adanya proses-proses kongkuren.
Contoh :
Ø  Bounded Buffer : Struktur data untuk menampung suatu nilai dengan kapasitas    yang terbatas (bounded)
Contoh : Produser – Konsumer
Produser menghasilkan suatu barang, kemudian meletakkannya di bounded buffer.
Konsumer mengambil suatu barang yang dibutuhkan dari bounded buffer.
Ø  Race Condition : situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama tersebut tergantung pada proses yang terakhir selesai.
Contoh sederhana, sebuah print spooler. Ketika sebuah proses ingin mencetak sebuah berkas, proses tersebut memasukkan nama berkas ke dalam sebuah spooler direktori yang khusus. Proses yang lain, printer daemon, secara periodik memeriksa untuk mengetahui jika ada banyak berkas yang akan dicetak, dan jika ada berkas yang sudah dicetak dihilangkan nama berkasnya dari direktori.
Sumber :