Laporan Tugas Scheduling Pengantar Sistem Operasi

dokumen-dokumen yang mirip
Monitor. Makalah Sistem Operasi. Disusun oleh :

Monitor. Process Synchronization. SISTIM OPERASI (IKI-20230) ProcessSynchronization Ch. 6. Johny Moningka

Apa yang akan dipelajari?

Concurrency 1: y Mutual Exclusion dan Sinkronisasi (Perte rt muan ke muan -10) 10 Oktober 2014

REVIEW DAN REVISI BUKU

Soal-jawab Quiz 2. Oleh: Endro Ariyanto (END) Oktober 2008

Bab 22. Perangkat Sinkronisasi II

CRITICAL REGIONS DAN MONITORS

Konsep Proses. Proses adalah suatu program yang sedang diesekusi (running) Pada saat proses berlangsung :

BAB 4. SINKRONISASI & DEADLOCK

SISTEM OPERASI (MANAJEMEN PROSES)

Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

MANAJEMEN PROSES. Pointer State proses Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.

PROSES & THREADS 2 AGUS PAMUJI. SISTEM OPERASI - Proses & Threads

Sistem Operasi. Proses dan Thread

B. Jawablah dengan ringkas dan lengkap. (Jawaban tidak lebih dari 10 kalimat) (Nilai 40) Solusi: kata kunci dalam huruf miring.

Bab 3: Proses-Proses. Konsep Proses

Bab 6: Sinkronisasi Proses. Latar Belakang

Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama.

Pertemuan #3: Sinkronisasi dan Deadlock

Untuk mengatasi kondisi pacu harus dijamin tidak boleh dua proses atau lebih memasuki critical section yang sama secara bersamaan.

Kelas: Nilai (Diisi Dosen):... IF

1. New 2. Running 3. Waiting 4. Ready 5. Terminated

Konkurensi. Faikul Umam

KONSEP INTERAKSI. Adrianus W. K X Aziz Yudi Prasetyo Gregorio Cybill

SOLUSI QUIZ 2 SISOP CS3613

Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs.

Bab 3: Proses-Proses. Konsep Proses

Process Synchronization

Sistem Operasi Pertemuan 6 Concurrency: Deadlock & Starvation. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

THREADS WINDOWS : PEMBUATAN, PENJADWALAN DAN SINKRONISASI Julius Bata Magister Ilmu Komputer Universitas Gadjah Mada

Bab 5. Sinkronisasi Proses POKOK BAHASAN: TUJUAN BELAJAR: 5.1 LATAR BELAKANG

Sistem Operasi. Critical section, konkurensi, mutasi exclusion, starvation dan deadlock. Juliansyahwiran, S. Kom, MTI. Modul ke: Fakultas FASILKOM

Kongkurensi LPOHLVSFOTJ!

ILUSTRASI KLASIK: BOUNDED BUFFER

Sistem Operasi. Kongkurensi

Critical Section Mutual Exclusion Semaphore Tugas. Sinkronisasi Thread. Praktikum Sistem Operasi. Ilmu Komputer IPB. Sinkronisasi Thread

BAB 3 ANALISIS DAN PERANCANGAN

Concurrency 1 : Mutual Exclusion dan Sinkronisasi (P ( e P rtemuan ua ke-9) 9 September 2014

MODUL 6 PERULANGAN. A. String. 1. Instansiasi dan Inisialisasi. M0601xxyyy.jar

Struktur Sistem Komputer

Komunikasi & Sinkronisasi Proses

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan.

Fairuz El Said Sekedar Berbagi Sistem Operasi (SO) Konkurensi KONGKURENSI

MANAJEMEN PROSES. Satu Empat Model program counter program counter Proses

Sinkronisasi dan Deadlock

BAB 2 COLLECTION & THREAD

STRUKTUR SISTEM OPERASI

T UGAS STUDI KASUS SISTEM OPERASI. Mutual Exclusion. Mata Kuliah : Sistem Operasi [ CF 1322] Disusun Oleh :

Sequential Process. Keterangan SISTEM OPERASI KOMUNIKASI ANTAR PROSES

MAKALAH DEADLOCK. DIAJUKAN UNTUK MEMENUHI TUGAS MATA KULIAH Sistem Operasi Dosen Penampu Bapak Adi Sucipto, Ir., M.Kom. oleh :

BAB II TINJAUAN PUSTAKA

Bab 26. Readers/Writers

Operating System. Thread. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Dosen pengampu : Mohamad Dani Sifat : Tutup buku dan peralatan elektronik

Proses Sinkronisasi. Latar Belakang Masalah Critical Section Sinkronisasi Hardware Semaphores Monitors

BAB II MANAJEMEN PROSES

Pada pembuatan game di java, sering kali para programer. mendefinisikan banyak object seperti suara, gambar, dan grafik geometri yang

Proses dan Threads Dalam SISTEM OPERAS

7 Sinkronisasi. Proses Sinkronisasi. Overview (1) Overview (2) Latar Belakang Masalah Critical Section Sinkronisasi Hardware Semaphores Monitors

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM III Sinkronisasi Proses

The Critical Section Problem Algorithm III

TUGAS Mata Kuliah : Sistem Terdistribusi

PROSES DAN THREADS DALAM SISTEM OPERASI

Pertemuan 4 KONKURENSI

Model Proses : 1. Sequential Process / bergantian 2. Multiprogramming 3. CPU Switching peralihan prosedur dalam mengolah 1 proses ke proses lainnya.

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Analisis Penerapan Semaphore dalam Mengatasi Masalah Sinkronisasi Dining Philosophers.

Struktur Sistem Komputer

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM VIII Deadlock

Teknik optimasi. Teknik optimasi kode program Tujuan: menghasilkan kode program yang berukuran lebih kecil dan lebih cepat pada saat dieksekusi.

Prio Handoko, S.Kom., M.T.I.

Sistem Operasi dalam bahasa Inggrisnya disebut Operating System, atau biasa di singkat dengan OS.

STRUKTUR SISTEM OPERASI

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

Sistem Operasi PENGATURAN PROSES

Struktur Sistem Operasi

Sinkronisasi dan Deadlock Sistem Operasi

The Critical Section Problem Algorithm III. Muhammad Fikry Hazmi (143) Kresna Ridwan (145) Guntur Kondang Prakoso (153)

1. Disk Schedulling 2. Buffering

PROSES DAN THREAD. : Anggo Luthfi Yunanto. Nim : : sistem informasi

Interaksi Antar Proses

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O

KONSEP PROSES STATUS PROSES

Pertemuan 2. Struktur Sistem Operasi

Sinkronisasi dan Deadlock

Struktur OS. Fak. Teknik Jurusan Teknik Informatika.

BAB II LANDASAN TEORI

BAB IV HASIL PENELITIAN DAN PENERAPAN

Koordinasi Antar Proses

Teknik Optimasi. Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom

PRAKTIKUM OBJECT ORIENTED PROGRAMING

24/09/2017 PERULANGAN

Rahmady Liyantanto liyantanto.wordpress.com

Penggunaan Brute Force untuk Mendeteksi Potensi Terjadinya Deadlock

Sistem Operasi. Konkurensi

Transkripsi:

Laporan Tugas Scheduling Pengantar Sistem Operasi Kelas E Anggota Kelompok: Cindy Alicia Sahara (5214100172) Ratih Kinanti A (5214100174) Patricia Hanna S (5214100177) Indriarti Kusumanita (5214100178) Institut Teknologi Sepuluh Nopember Jurusan Sistem Informasi

Materi ke-3: Semaphor Semaphore adalah sebuah konsep kodingan yang dibentuk oleh E.W Djikstra pada tahun 1960- an. Model Dijkstra adalah operasi dari rel kereta api: anggap saja ada sebuah rel kereta terbentang dimana pada rel itu hanya boleh ada satu kereta yang lewat pada satu waktu. Yang mengatur pekerjaan rel ini adalah Semaphore. Sebuah kereta harus menunggu sampai sebuah Semaphore memberi sinyal bahwa kereta tersebut bisa lewat. Ketika kereta sedang berada di rel tersebut, Semaphore kemudian akan menghindari kereta lain agar tidak masuk ke dalam rel selama masih ada kereta yang menggunakan rel tersebut. Kereta yang telah meninggalkan rel kemudian akan merubah status Semaphore agar dapat mengizinkan kereta lain lewat rel tersebut. Jadi, Semaphore pada dasarnya adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Semaphore diperiksa oleh semua kernel thread sebelum kernel thread tersebut mencoba untuk mengakses struktur data. Semaphore mempunyai dua sifat, yaitu: 1. Semaphore dapat diinisialisasi dengan nilai non-negatif. 2. Terdapat dua operasi terhadap semaphore, yaitu Wait dan Signal. Terdapa dua jenis Semaphore, yaitu: 1. Binary semaphore. Semaphore ini hanya memiliki nilai 1 atau 0. Sering juga disebut sebagai semaphore primitif 2. Counting semaphore. Semaphore ini memiliki nilai 0, 1, serta integer lainnya. Banyak sistem operasi yang tidak secara langsung mengimplementasikan semaphore ini, tetapi dengan memanfaatkan binary semaphore Prinsip semaphore : Dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana Proses dipaksa berhenti sampai proses memperoleh penanda tertentu Variabel khusus untuk penandaan ini disebut Semaphore Keuntungan menggunakan Semaphore: 1. Dari segi programming, penanganan masalah sinkronisasi dengan Semaphore umumnya rapi dan teratur, sehingga mudah untuk dibuktikan kebenarannya 2. Semaphore diimplementasikan dalam hard code sehingga penggunaannya bersifat portabel Kerugian menggunakan Semaphore: Busy waiting. Apabila suatu proses menempati critical section, dan ada proses lain yang ingin masuk critical section, maka akan terjadi iterasi secara terus-menerus pada entry section. Hal ini akan menimbulkan masalah pada sistem yang menggunakan konsep multiprogramming.

Contoh Semaphore Terdapat 2 buah thread seperti dibawah ini : thread A : thread B : count = count+2 count = count-1 Thread A dan B mengakses variabel yang sama, yaitu variabel count sehingga kedua thread tersebut harus berjalan secara bergantian. Karena itulah digunakan binary semaphore dengan nilai awal 1. thread A : thread B : kunci (mutex); kunci (mutex); count = count+2 count = count-1 buka (mutex) buka(mutex) Thread yang mengeksekusi kunci terlebih dahulu akan berjalan terus, sedangkan thread yang selanjutnya akan menunggu sampai thread yang berjalan terlebih dahulu mengeksekusi buka, setelah itu kedua thread berjalan lagi dengan normal. Monitor Monitor adalah suatu tipe abstrak yang memiliki tugas untuk mengatur aktivitas serta managemen resource oleh beberapa thread. Monitor pertama kali dikenalkan pada tahun 1970. Monitor terdiri atas data-data private dengan fungsi public yang dapat mengakses data tersebut. Method yang terdapat dalam suatu monitor sudah dibuat sedemikian rupa agar hanya ada satu method yang dapat bekerja dalam suatu waktu. Hal ini dilakukan untuk menjaga agar semua operasi dalam monitor bersifat mutual exclusion. Monitor memiliki beberapa status, yaitu 1. Enter : Kondisi dimana thread memasuki monitor 2. Acquire : Kondisi dimana thread memasuki ruang kontrol 3. Owning : Kondisi dimana thread menyelesaikan tugasnya dengan membagi resource yang

berada di ruang kontrol 4. Release : Kondisi dimana thread belum menyelesaikan tugasnya namun waktunya sudah habis, maka thread melepaskan kendali atas monitor 5. Waiting queue : Tempat thread menunggu thread lain selesai 6. Release and exit : Kondisi dimana thread sudah menyelesaikan tugasnya dan keluar dari monitor Karena masalah sinkronisasi begitu rumit dan beragam, monitor menyediakan tipe data condition untuk programmer yang ingin menerapkan sinkronisasi yang sesuai untuk masalah yang dihadapinya. Condition memiliki operasi-operasi: 1. Wait, sesuai namanya thread yang memanggil fungsi ini akan dihentikan kerjanya. 2. Signal, jika suatu thread memanggil fungsi ini, satu (dari beberapa) thread yang sedang menunggu akan dibangunkan untuk bekerja kembali. Operasi ini hanya membangunkan tepat satu buah thread yang sedang menunggu. Jika tidak ada thread yang sedang menunggu, tidak akan terjadi apa-apa (bedakan dengan operasi buka pada semaphore). Monitor juga dapat disebut sebagai mini-os, karena konsep monitor sangat mirip dengan sebuah sistem operasi. Satu dapat mempertimbangkan inisialisasi sebagaimana data yang diinisialisasi ketika sistem boot up, data pribadi dan kode sebagai struktur data internal dan fungsi dari sebuah sistem operasi, dan prosedur monitor sebagai panggilan sistem. Program-program, tentu saja, benang yang membuat permintaan layanan. Oleh karena itu, monitor bisa dianggap sebagai mini- OS dengan layanan terbatas. Kelebihan monitor 1. Dapat mengatasi sinkronisasi tanpa perlu melibatkan programmer. 2. Kompilator pada bahasa pemrograman yang telah mengimplementasikan monitor akan memastikan bahwa resource yang dapat diakses oleh beberapa thread dilindungi oleh monitor, sehingga prinsip mutual exclusion tetap terjaga. 3. Kompilator bisa memeriksa kemungkinan adanya deadlock. 4. Pengecekan error yang berhubungan dengan mutex dapat dilakukan secara terpusat hanya pada modul monitor saja sehingga lebih efisien.

5. Ketika program monitor sudah benar tanpa error maka akses terhadap critical resource oleh berbagai macam proses akan selalu benar. Kelemahan monitor 1. Bila setiap signal csignal (fungsi sinkronisasi dalam monitor) selalu hilang maka proses yang ada dalam antrian juga akan di blok. 2. Kurang efisien dalam mengembalikan proses yang sudah di blok. 3. Memerlukan mekanisme penjadwalan proses yang benar-benar handal karena pengaturan proses dalam monitor yang sangat ketat. Bentuk dasar monitor: monitor example i : integer; c : condition; Procedure producer(x);.. End; Procedure consumer(x);.. End; End monitor; Contoh penggunaan monitor pada Java Virtual Machine (JVM), Java Virtual Machine memakai monitor untuk sinkronisasi thread. Synchronized Statements. Untuk membuat sebuah synchronized statement, gunakan keyword synchronized dengan ekspresi yang me-refer ke suatu object contoh:

void reverseorder() { synchronized(this) { /*ekspresi method*/ } } Synchronized Methods. untuk membuat suatu synchronized methods, cukup dengan menambahkan keyword synchronized di depan nama method tersebut pada deklarasinya contoh: synchronized void reverseorder() { /*ekspresi method*/ } Implementasi monitor dengan semaphore:

Message Passing Message passing adalah model programming parallel dimana pesan yang disampaikan untuk dapat berhungan dengan mengirimkan dan menerima pesan satu sama lainnya. Sebuah pesan yang dikirim akan disampaikan ke penerima dan kemudian memproses request tersebut dan dikirimkan pesan balasan. Pesan balasan akan memicu request lainnya dan berlanjut ke pesan berikutnya dan seterusnya. Sistem ini disebut juga sebagai proses berkomunikasi antar bagian sistem untuk membagi variable yang dibutuhkan. Ini menyediakan dua operasi yaitu mengirim dan menerima pesan. Agar kedua sistem dapat berkomunikasi, maka harus dibuat sebuah link komunikasi antar keduanya. Sistem berkirim pesan sangat penting dalam sistem operasi dan dapat diimplementasikan dalam banyak hal seperti pembagian memori, pembagian bus, dan melaksanakan proses yang membutuhkan pengerjaan bersama antara beberapa bagian sistem operasi.

Terdapat dua macam jenis komunikasi yang dapat dilakukan yaitu: Komunikasi langsung Setiap proses yang ingin berkomunikasi harus memiliki nama yang bersifat eksplisit baik penerimaan atau pengirim. Dalam konteks ini, pengiriman dan penerimaan pesan secara primitivedijabarkan sebagai : Send (P, message) mengirim sebuah pesan ke proses P. Receive (Q, message) menerima sebuah pesan dari proses Q. Komunikasi langsung memiliki sifat: 1. Sebuah jaringan didirikan secara otomatis diantara setiap pasang dari proses yang ingin dikomunikasikan. Proses tersebut harus mengetahui identitas dari semua yang ingin dikomunikasikan. 2. Sebuah jaringan adalah terdiri dari penggabungan dua proses. 3. Diantara setiap pesan dari proses terdapat tepat sebuah jaringan. Komunikasi tidak langsung Pada komunikasi tidak langsung, pesan akan dikirimkan pada dan diterima dari/ melalui mailbox (kotak surat) atau terminal-terminal. Sebuah mailbox dapat dilihat secara abstrak sebagai sebuah objek didalam setiap pesan yang dapat ditempatkan dari proses dan dari setiap pesan yang bisa dipindahkan. Setiap mail box memiliki sebuah identifikasi (identitas) yang unik, sebuah proses dapat berkomunikasi dengan beberapa proses lain melalui sebuah nomor dari mailbox yang berbeda. Pengirim dan penerima dijabarkan sebagai berikut: Send (A, message) mengirim pesan ke mailbox A. Receive (A, message) menerima pesan dari mailbox A. Komunikasi tidak langsung mempunyai sifat: 1. Sebuah link dibangun diantara sepasang proses dimana kedua proses tersebut membagi mailbox. 2. Sebuah link mungkin dapat berasosiasi dengan lebih dari dua proses. 3. Diantara setiap pasang proses komunikasi, mungkin terdapat link yang berbeda-beda, dimana setiap link berhubungan pada satu mailbox. Mailbox mungkin dapat dimiliki oleh sebuah proses atau sistem operasi. Jika mailbox dimiliki oleh proses, maka kita mendefinisikan antara pemilik (yang hanya dapat menerima pesan melalui mailbox) dan pengguna dari mailbox (yang hanya dapat mengirim pesan ke mailbox). Selama setiap mailbox mempunyai kepemilikan yang unik, maka tidak akan ada kebingungan tentang siapa yang harus menerima pesan dari mailbox. Ketika proses yang memiliki mailbox tersebut diterminasi, mailbox akan hilang. Semua proses yang mengirim pesan ke mailbox ini diberi pesan bahwa mailbox tersebut tidak lagi ada. Dengan kata lain, mempunyai mailbox sendiri yang independent, dan tidak melibatkan proses yang lain. Maka sistem operasi harus memiliki mekanisme yang mengizinkan proses untuk melakukan hal-hal dibawah ini:

Membuat mailbox baru. Mengirim dan menerima pesan melalui mailbox. Menghapus mailbox.

SEMAPHORE Cindy Alicia Sahara (5214100172) Ratih Kinanti A (5214100174) Patricia Hanna S (5214100177) Indriarti Kusumanita (5214100178)

ASAL USUL -Dibentuk oleh E.W Djikstra pada tahun 1960-an - Dibuat berdasarkan pengaturan rel kereta api dengan penggunaan semaphore. - Ketika kereta sedang berada di rel tersebut, Semaphore kemudian akan menghindari kereta lain agar tidak masuk ke dalam rel selama masih ada kereta yang menggunakan rel tersebut

PENGERTIAN SEMAPHORE adalah alat untuk sinkronisasi yang tidak membutuhkan busy waiting. Semaphore S berupa variable integer. Semaphore hanya dapat diakses melalui operasi atomic yang tak dapat diinterupsi sampai kode selesai. Operasi dari semaphore S adalah wait dan signal berikut : wait (S ): while S 0 do no-op; S--; signal (S ): S++;

SIFAT Semaphore mempunyai dua sifat, yaitu: 1. Semaphore dapat diinisialisasi dengan nilai nonnegatif. 2. Terdapat dua operasi terhadap semaphore, yaitu Wait dan Signal.

1. JENIS 1. Binary semaphore. Semaphore ini hanya memiliki nilai 1 atau 0. Sering juga disebut sebagai semaphore primitif 2. Counting semaphore. Semaphore ini memiliki nilai 0, 1, serta integer lainnya. Banyak sistem operasi yang tidak secara langsung mengimplementasikan semaphore ini.

PRINSIP Dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Variabel untuk penandaan ini disebut semaphore. Proses dipaksa berhenti sampai proses memperoleh penanda tertentu

FUNGSI 1. Mutual Exclusion. Sesuai dengan prinsip mutual exclusion, jika suatu thread sedang berada dalam critical section-nya, thread lain harus menunggu thread tersebut keluar dari critical section-nya sebelum dapat memasuki critical section-nya sendiri. Di sinilah semaphore digunakan, thread yang akan memasuki critical section-nya akan memanggil fungsi kunci terlebih dahulu.

FUNGSI 2. Resource Controller. Saat thread ingin memakai resource ia akan memanggil fungsi kunci. Jika resource masih tersedia, thread bisa langsung menggunakannya, sebaliknya jika semua resource sedang dipakai, thread tersebut harus menunggu. Setelah resource selesai dipakai thread akan memanggil fungsi buka sehingga resource yang bebas bertambah.

FUNGSI 3. Sinkronisasi Antar-Proses. Ada kalanya suatu thread memerlukan resource yang dihasilkan oleh thread lainnya. Oleh karena itu dibutuhkan suatu mekanisme untuk mengatur urutan eksekusi thread. Mekanisme ini dilakukan dengan memanfaatkan semaphore.

KEUNTUNGAN 1. Dari segi programming, penanganan masalah sinkronisasi dengan Semaphore umumnya rapi dan teratur, sehingga mudah untuk dibuktikan kebenarannya 2. Semaphore diimplementasikan dalam hard code sehingga penggunaannya bersifat portabel

KERUGIAN Busy waiting. Apabila suatu proses menempati critical section, dan ada proses lain yang ingin masuk critical section, maka akan terjadi iterasi secara terus-menerus pada entry section. Hal ini akan menimbulkan masalah pada sistem yang menggunakan konsep multiprogramming.

IMPLEMENTASI Terdapat 2 buah thread yang berjalan bersamaan Thread A dan B mengakses variabel yang sama, yaitu count sehingga thread A dan B harus berjalan satu-satu. Untuk itu digunakan semaphore mutex yang berupa binary semaphore dengan nilai awal 1.

IMPLEMENTASI Thread manapun yang mengeksekusi kunci terlebih dahulu akan jalan terus, sedangkan thread yang tiba belakangan akan menunggu sampai thread yang sudah berjalan terlebih dahulu mengeksekusi buka, setelah itu kedua thread berjalan lagi dengan normal.

TERIMA KASIH