TUGAS MAKALAH SISTEM OPERASI

 

NAMA : Fajar Romadhon

KELAS : IF20C

NPM : 20312091

 

SINKRONISASI PROSES SISTEM OPERASI

Kata Pengantar :

Assalamuallaikum wr.wb. Segala puji syukur kami panjatkan kehadirat Allah SWT yang telah melimpahkan segala rahmat dan karunia-Nya, tidak lupa kami ucapkan banyak terimakasih kepada Bapak Saprudin Selaku dosen Pengantar Sistem Operasi, Sehingga Saya dapat menyelesaikan Makalah yang berjudul “ SINKRONISASI PROSES SISTEM OPERASI “ ini yang merupakan salah satu syarat untuk memenuhi nilai dari mata kuliah Sistem Operasi.

Dalam makalah ini membahas tentang SINKRONISASI PROSES SISTEM OPERASI, Jika Makalah ini masih kurang lengkap, saya selaku penyusun telah berusaha sebaik mungkin untuk menysun makalah ini agar dapat dimengerti dan dipahami  dan saya memerlukan kritik dan saran agar dapat meningkatkan makalah saya.

Semoga Allah SWT selalu memberikan petunjuk kepada kita dalam pembentukan generasi yang maju. Akhir kata kami ucapkan terima kasih

Bab 1

PENDAHULUAN

1 . 1 Latar Belakang

            Sistem operasi adalah seperangkat program yang mengelola sumber daya perangkat keras komputer atau hardware, dan menyediakan layanan umum untuk aplikasi perangkat lunak. Sistem operasi adalah jenis yang paling penting dari perangkat lunak sistem dalam sistem komputer. Tanpa sistem operasi, pengguna tidak dapat menjalankan program aplikasi pada komputer mereka, kecuali program aplikasi booting.

Untuk fungsi-fungsi perangkat keras seperti sebagai masukan dan keluaran dan alokasi memori, sistem operasi bertindak sebagai perantara antara program aplikasi dan perangkat keras komputer, meskipun kode aplikasi biasanya dieksekusi langsung oleh perangkat keras dan seringkali akan menghubungi OS atau terputus oleh itu. Sistem operasi yang ditemukan pada hampir semua perangkat yang berisi komputer-dari ponsel dan konsol permainan video untuk superkomputer dan server web.

            Sistem Operasi yang ada pada jaman sekarang ini semakin banyak, canggih dan tentu saja semakin berkembang. Meskipun Sistem Operasi yang digunakan pada masa sekarang ini kebanyakan menggunakan Windows, bukan berarti Sistem Operasi yang lain mati ( tidak ada atau punah ). Sebagai contoh, masih ada Sistem Operasi yaitu Linux. Dalam Sistem Operasi, banyak hal yang harus dipahami. Bukan sekedar memahami bagaimana menginstall aplikasi, menghapus virus, memberikan proteksi virus bagi laptop maupun komputer. Bukan sekedar itu saja. Didalam Mata Kuliah Sistem Operasi ini, diajarkan mengenai manajemen memory, CPU, beberapa Algoritma seperti FCFS ( First Come First Served ), Round Robin, SJF, dan lain sebagainya. Sistem operasi mempunyai penjadwalan yang sistematis mencakup perhitungan penggunaan memori, pemrosesan data, penyimpanan data, dan sumber daya lainnya.

1.2  Tujuan

Mentahui Sinkronisasi dan Deadlock

Mentahui Sinkronisasi Hardware dan Software

Mengetahui Masalah Masalah Klasik dalam Sinkronisasi

Mengetahui Sistem, Karakterisktik, Metode Penanganan , pencegahan, Menghindari, mendeteksi, recovery Serta kombinasi menhindari Deadlock

Bab 2

PEMBAHASAN

2.1 Sinkroniasi Data

Pengertian dari Sinkronisasi adalah Akses bebarengan untuk berbagi dua bersama dapat mengakibatkan inkosistensi data. Pemeliharaan konsistensi data memerlukan mekanisme untuk memastikan eksekusi dari proses kerjasama.

Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang di harapkan.

Sebab dan Menanggulangi:

  • Akses – akses yang dilakukan secara bersama-sama ke data yang sama, dapat menyebabkan data menjadi tidak konsisten
  • Untuk menjaga agar data tetap konsisten, dibutuhkan mekanisme-mekanisme untuk memastikan pemintaan ekseskusi dari proses yang bekerja.
  • Race Condition: Situasi dimana beberapa proses mengakses dan memanipulasi data secara bersamaan. Nilai terakhir dari data bergantung dari proses mana yang selesai terakhir
  • Untuk menghindari Race Condition, proses-proses secara bersamaan harus disinkronisasikan.

Masalah critical section

Critical Section adalah sebuah protokol yang di disain supaya proses-proses dapat menggunakannya secara bersama-sama. Setiap proses harus memesan waktu untuk memasuki critical section-nya. Yang disebut entry section. dan Akhir dari critical section itu disebut exit section. Dan setelah itu ada remainder section.

Masalah sinkronisasi Software dan Hardware

Solusi perangkat lunak(Software) Dengan menggunakan algoritma-alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi lain, selain itu setiap proses berjalan pada kecepatan yang bukan nol.

Solusi perangkat keras(Hardware) Tergantung pada beberapa instruksi mesin tertentu, misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu variabel tertentu.

Semaphore

Semaphore adalah salah satu teknik sinyal sederhana, dan merupakan konsep penting dalam OS desain, dimana sebuah nilai integer digunakan untuk pensinyalan antara proses.  Hanya tiga operasi yang mungkin dilakukan pada semaphore, yang semuanya atom: inisialisasi, penurunan, dan penaikan. Operasi pengurangan dapat mengakibatkan terhalangnya proses, dan kenaikan dari pengoperasian yang sedang berlangsung dapat mengakibatkan terblokirnya suatu proses. Hal ini juga dikenal sebagai sebuah perhitungan semaphore atau semaphore umum.

Masalah Masalah Klasik Dalam Sinkronisasi

Problem Klasik pada Sinkronisasi
Ada tiga hal yang selalu menjadi masalah pada proses sinkronisasi:

  • Problem Bounded buffer
  • Problem Reades and Writer
  • Problem Dining Philosophers

 

 

Problem 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.

Solusi Bounded – Buffer : Solusi Shared Memory untuk Bounded – Buffer, mengijinkan (n-1) items di dalam buffer untuk suatu waktu tertentu.

Problem Reades and Writer

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.

Solusi Readers and Writers Problem,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.

Penulis di prioritaskan,Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader yang memulai untuk membaca data.,Kedua jenis proses mempunyai prioritas yang sama. Tidak ada prioritas khusus yang diberikan kepada kedua jenis proses.

Problem Dining Philosophers

Pada tahun 1965, Djikstra menyelesaikan sebuah masalah sinkronisasi yang beliau sebut dengan dining philisophers problem. Dining philosophers dapat diuraikan sebagai berikut: Lima orang filosuf duduk mengelilingi sebuah meja bundar. Masing-masing filosof mempunyai sepiring spageti. Spageti-spageti tersebut sangat licin dan membutuhkan dua garpu untuk memakannya. Diantara sepiring spageti terdapat satu garpu. Kehidupan para filosof terdiri dari dua periode, yaitu makan atau berpikir. Ketika seorang filosof lapar, dia berusaha untuk mendapatkan garpu kiri dan garpu kanan sekaligus. Jika sukses dalam mengambil dua garpu, filosof tersebut makan untuk sementara waktu, kemudian meletakkan kedua garpu dan melanjutkan berpikir. Pertanyaan kuncinya adalah, dapatkah anda menulis program untuk masing-masing filosof yang melakukan apa yang harus mereka lakukan dan tidak pernah mengalami kebuntuan. Prosedur take-fork menunggu sampai garpu-garpu yang sesuai didapatkan dan kemudian menggunakannya. Sayangnya dari solusi ini ternyata salah. Seharusnya lima orang filosof mengambil garpu kirinya secara bersamaan. Tidak akan mungkin mereka mengambil garpu kanan mereka, dan akan terjadi deadlock.

2.2 Deadlock

Deadlock adalah keadaan dimana 2 atau lebih proses saling menunggu meminta resources untuk waktu yang tidak terbatas lamanya. Analoginya seperti pada kondisi jalan raya dimana terjadi kemacetan parah. Deadlock adalah efek samping dari sinkronisasi, dimana satu variabel digunakan oleh 2 proses. Misalkan pada suatu komputer terdapat dua buah program, sebuah tape drive dan sebuah printer. Program A mengontrol tape drive, sementara program B mengontrol printer. Setelah beberapa saat, program A meminta printer, tapi printer masih digunakan. Berikutnya, B meminta tape drive, sedangkan A masih mengontrol tape drive. Dua program tersebut memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang lain. Tidak ada yang dapat melanjutkan proses masing-masing sampai program yang lain memberikan sumber dayanya, tetapi tidak ada yang mengalah. Kondisi inilah yang disebut Deadlock atau pada beberapa buku disebut Deadly Embrace

Deadlock yang mungkin dapat terjadi pada suatu proses disebabkan proses itu menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Dua atau lebih proses dikatakan berada dalam kondisi deadlock, bila setiap proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan oleh proses lain dalam himpunan tersebut. Terdapat kaitan antara overhead dari mekanisme koreksi dan manfaat dari koreksi deadlock itu sendiri. Pada beberapa kasus, overhead atau ongkos yang harus dibayar untuk membuat sistem bebas deadlock menjadi hal yang terlalu mahal dibandingkan jika mengabaikannya. Sementara pada kasus lain, seperti pada real-time process control, mengizinkan deadlock akan membuat sistem menjadi kacau dan membuat sistem tersebut tidak berguna.

  1. Model Deadlock

Urutan kejadian pengoperasian perangkat I/O adalah :

  • Meminta / request : meminta palayanan I/O
  • Memakai / use : memakai perangkat I/O
  • Melepaskan / release : melepaskan pamakaian perangkat I/O
  • Karakterisitik Deadlock

Karakteristik-karakteristik ini harus dipenuhi keempatnya untuk terjadi deadlock. Namun, perlu diperhatikan bahwa hubungan kausatif antara empat karakteristik ini dengan terjadinya deadlock adalah implikasi. Deadlock mungkin terjadi apabila keempat karakteristik terpenuhi.

  • Metode Penanganan Deadlock

prinsipnya kita dapat menangani deadlock dengan beberapa cara;

  • Menggunakan protokol untuk pencegahan atau penghindaran deadlock, memastikan bahwa sistem tidak akan memasuki kondisi deadlock
  • Kita bisa mendeteksi terjadinya deadlock lalu memperbaiki
  • Kita juga bisa mengabaikan deadlock, hal ini dilakukan pada sistem operasi berbasis UNIX

Untuk memastikan sistem tidak memasuki deadlock, sistem dapat menggunakan pencegahan deadlock atau penghindaran deadlock. Penghindaran deadlock membutuhkan informasi tentang sumber daya yang mana yang akan suatu proses meminta dan berapa lama akan digunakan. Dengan informasi tersebut dapat diputuskan apakah suatu proses harus menunggu atau tidak. Hal ini disebabkan oleh keberadaan sumber daya, apakah ia sedang digunakan oleh proses lain atau tidak. Jika sebuah sistem tidak memastikan deadlock akan terjadi, dan juga tidak didukung dengan pendeteksian deadlock serta pencegahannya, maka kita akan sampai pada kondisi deadlock yang dapat berpengaruh terhadap performance system karena sumber daya tidak dapat digunakan oleh proses sehingga proses-proses yang lain juga terganggu. Akhirnya sistem akan berhenti dan harus direstart.

Pencegahan. Penanganan ini dengan cara mencegah terjadinya salah satu karakteristik deadlock. Penanganan ini dilaksanakan pada saat deadlock belum terjadi pada sistem. Intinya memastikan agar sistem tidak akan pernah berada pada kondisi deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.

  • Pencegahan  Deadlock

Pencegahan deadlock dapat dilakukan dengan cara mencegah salah satu dari empat karakteristik terjadinya deadlock. Berikut ini akan dibahas satu per satu cara pencegahan terhadap empat karakteristik tersebut.

  1. Mutual Exclusion. Kondisi mutual exclusion pada sumber daya adalah sesuatu yang wajar terjadi, yaitu pada sumber daya yang tidak dapat dibagi (non-sharable). Sedangkan pada sumber daya yang bisa dibagi tidak ada istilah mutual exclusive. Jadi, pencegahan kondisi yang pertama ini sulit karena memang sifat dasar dari sumber daya yang tidak dapat dibagi.
  2. Hold and Wait. Untuk kondisi yang kedua, sistem perlu memastikan bahwa setiap kali proses meminta sumber daya, ia tidak sedang memiliki sumber daya lain. Atau bisa dengan proses meminta dan mendapatkan sumber daya yang dimilikinya sebelum melakukan eksekusi, sehingga tidak perlu menunggu.
  3. No Preemption. Pencegahan kondisi ini dengan cara membolehkan terjadinya preemption. Maksudnya bila ada proses yang sedang memiliki sumber daya dan ingin mendapatkan sumber daya tambahan, namun tidak bisa langsung dialokasikan, maka akan preempted. Sumber daya yang dimiliki proses tadi akan diberikan pada proses lain yang membutuhkan dan sedang menunggu. Proses akan mengulang kembali eksekusinya setelah mendapatkan semua sumber daya yang dibutuhkannya, termasuk sumber daya yang dimintanya terakhir.
  4. Circular Wait. Kondisi ‘lingkaran setan’ ini dapat ‘diputus’ dengan jalan menentukan total kebutuhan terhadap semua tipe sumber daya yang ada. Selain itu, digunakan pula mekanisme enumerasi terhadap tipe-tipe sumber daya yang ada.
  • Penghindarian  Deadlock

Penghindaran terhadap deadlock adalah cara penanganan yang selanjutnya. Inti dari penghindaran adalah jangan sembarangan membolehkan proses untuk memulai atau meminta lagi. Maksudnya adalah, jangan pernah memulai suatu proses apabila nantinya akan menuju ke keadaan deadlock. Kedua, jangan memberikan kesempatan pada proses untuk meminta sumber daya tambahan jika penambahan tersebut akan membawa sistem pada keadaan deadlock. Tidak mungkin akan terjadi deadlock apabila sebelum terjadi sudah kita hindari.

Langkah lain untuk menghindari adalah dengan cara tiap proses memberitahu jumlah kebutuhan maksimum untuk setiap tipe sumber daya yang ada. Selanjutnya terdapat deadlock-avoidance algorithm yang secara rutin memeriksa state dari sistem untuk memastikan tidak adanya kondisi circular wait serta sistem berada pada kondisi safe state. Safe state adalah suatu kondisi dimana semua proses mendapatkan sumber daya yang dimintanya dengan sumber daya yang tersedia. Apabila tidak bisa langsung, ia harus menunggu selama waktu tertentu, kemudian mendapatkan sumber daya yang diinginkan, melakukan eksekusi, dan terakhir melepas kembali sumber daya tersebut. Terdapat dua jenis algoritma penghindaran yaitu resource-allocation graph untuk single instances resources serta banker’s algorithm untuk multiple instances resources.

Algoritma penghindaran yang pertama yaitu resource-allocation graph akan dijelaskan secara mendalam pada bab selanjutnya yaitu Diagram Graf. Untuk algoritma yang kedua yaitu banker’s algorithm akan dibahas pada bab ini dan dilengkapi oleh pembahasan di bab selanjutnya.

Dalam banker’s algorithm, terdapat beberapa struktur data yang digunakan, yaitu:

  • Available . Jumlah sumber daya yang tersedia.
  • Max . Jumlah sumber daya maksimum yang diminta oleh tiap proses.
  • Allocation . Jumlah sumber daya yang sedang dimiliki oleh tiap proses.
  • Need . Sisa sumber daya yang masih dibutuhkan oleh proses, didapat dari max– allocation.

Kemudian terdapat safety algorithm untuk menentukan apakah sistem berada pada safe state atau tidak.

  • Pendeteksian Deadlock

Pada dasarnya kejadian deadlock sangatlah jarang terjadi. Apabila kondisi tersebut terjadi, masing-masing sistem operasi mempunyai mekanisme penanganan yang berbeda. Ada sistem operasi yang ketika terdapat kondisi deadlock dapat langsung mendeteksinya. Namun, ada pula sistem operasi yang bahkan tidak menyadari kalau dirinya sedang mengalami deadlock. Untuk sistem operasi yang dapat mendeteksi deadlock, digunakan algoritma pendeteksi. Secara lebih mendalam, pendeteksian kondisi deadlock adalah cara penanganan deadlock yang dilaksanakan apabila sistem telah berada pada kondisi deadlock. Sistem akan mendeteksi proses mana saja yang terlibat dalam kondisi deadlock. Setelah diketahui proses mana saja yang mengalami kondisi deadlock, maka diadakan mekanisme untuk memulihkan sistem dan menjadikan sistem berjalan kembali dengan normal.

Mekanisme pendeteksian adalah dengan menggunakan detection algorithm yang akan memberitahu sistem mengenai proses mana saja yang terkena deadlock. Setelah diketahui proses mana saja yang terlibat dalam deadlock, selanjutnya adalah dengan menjalankan mekanisme pemulihan sistem yang akan dibahas pada bagian selanjutnya. Berikut ini adalah algoritma pendeteksian deadlock.

  • Recovery Deadlock

Pemulihan kondisi sistem terkait dengan pendeteksian terhadap deadlock. Apabila menurut algoritma pendeteksian deadlock sistem berada pada keadaan deadlock, maka harus segera dilakukan mekanisme pemulihan sistem. Berbahaya apabila sistem tidak segera dipulihkan dari deadlock, karena sistem dapat mengalami penurunan performance dan akhirnya terhenti.

Cara-cara yang ditempuh untuk memulihkan sistem dari deadlock adalah sebagai berikut:

  1. Terminasi proses. Pemulihan sistem dapat dilakukan dengan cara melalukan terminasi terhadap semua proses yang terlibat dalam deadlock. Dapat pula dilakukan terminasi terhadap proses yang terlibat dalam deadlock secara satu per satu sampai ‘lingkaran setan’ atau circular wait hilang. Seperti diketahui bahwa circular wait adalah salah satu karakteristik terjadinya deadlock dan merupakan kesatuan dengan tiga karakteristik yang lain. Untuk itu, dengan menghilangkan kondisi circular wait dapat memulihkan sistem dari deadlock.Dalam melakukan terminasi terhadap proses yang deadlock, terdapat beberapa faktor yang menentukan proses mana yang akan diterminasi. Faktor pertama adalah prioritas dari proses-proses yang terlibat deadlock. Faktor kedua adalah berapa lama waktu yang dibutuhkan untuk eksekusi dan waktu proses menunggu sumber daya. Faktor ketiga adalah berapa banyak sumber daya yang telah dihabiskan dan yang masih dibutuhkan. Terakhir, faktor utilitas dari proses pun menjadi pertimbangan sistem untuk melakukan terminasi pada suatu proses.
  2. Rollback and Restart . Dalam memulihkan keadaan sistem yang deadlock, dapat dilakukan dengan cara sistem melakukan preempt terhadap sebuah proses dan kembali ke state yang aman. Pada keadaan safe state tersebut, proses masih berjalan dengan normal, sehingga sistem dapat memulai proses dari posisi aman tersebut. Untuk menentukan pada saat apa proses akan rollback, tentunya ada faktor yang menentukan. Diusahakan untuk meminimalisasi kerugian yang timbul akibat memilih suatu proses menjadi korban. Harus pula dihindari keadaan dimana proses yang sama selalu menjadi korban, sehingga proses tersebut tidak akan pernah sukses menjalankan eksekusi.
  • Pendekatan Kombinasi Untuk Menghindari Deadlock

Kombinasi dari tiga pendekatan dasar

  • Prevention

Mencegah deadlock dengan membatasi bagaimana permintaan sumber daya dapat dilakukan dalam sistem dan bagaimana mereka ditangani (system design). Tujuannya adalah untuk memastikan bahwa setidaknya salah satu syarat yang diperlukan untuk menciptakan deadlock tidak pernah terjadi.

  • Avoidance

Sistem secara dinamis mempertimbangkan setiap permintaan dan memutuskan apakah aman untuk memberikannya pada bagian ini, sistem ini memerlukan informasi tambahan mengenai penggunaan potensi keseluruhan dari setiap sumber daya untuk setiap proses. Memungkinkan concurrency lebih. Mirip dengan perbedaan antara lampu lalu lintas dan seorang petugas polisi memimpin lalu lintas.

  • Detection

Metode deteksi digunakan pada sistem yang mengijinkan terjadinya deadlock. tujuan metode ini adalah memeriksa apakah telah terjadi deadlock dan menentukan proses-proses dan sumber daya-sumber daya yang terlibat deadlock secara presisi. Begitu telah dapat ditentukan, sistem dipulihkan dari deadlock dengan metode pemulihan.

Bab 3

Penutup

3.1     Kesimpulan

Sinkronisasi adalah akses bebarengan untuk berbagi dua bersama dapat mengakibatkan inkosistensi data. Pemeliharaan konsistensi data memerlukan mekanisme untuk memastikan eksekusi dari proses kerjasama.

Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang di harapkan.

Deadlock adalah keadaan dimana 2 atau lebih proses saling menunggu meminta resources untuk waktu yang tidak terbatas lamanya. Analoginya seperti pada kondisi jalan raya dimana terjadi kemacetan parah. Deadlock adalah efek samping dari sinkronisasi, dimana satu variabel digunakan oleh 2 proses. Sinkronisasi dan Deadlock dapat ditanggulangi dengan cara cara tertentu dan dapat dicegah dalam proses proses tertentu.

 

 

3.2 Saran

            Terima kasih sudah membaca makalah yang sudah saya buat, mohon maaf atas kesalahan dan kekurangan makalah saya. Saya membutuhkan kriktik dan saran agar makalah yang saya akan buat nanti bisa lebih baik lagi.

 

·         Alamat Blog Dosen : https://syaifulahdan.wordpress.com

·         Alamat web Program studi, Fakultas, Universitas : http://ti.ftik.teknokrat.ac.id, http://ftik.teknokrat.ac.id, www.teknokrat.ac.id

·         Nama Mahasiswa : Fajar Romadhon

 

 

Komentar

Postingan populer dari blog ini

ALGORITMA BRANCH and BOUND

Menjelaskan definisi dan perbedaan antara Threads dan Processes.