• Tidak ada hasil yang ditemukan

Laporan Tugas Scheduling Pengantar Sistem Operasi

N/A
N/A
Protected

Academic year: 2021

Membagikan "Laporan Tugas Scheduling Pengantar Sistem Operasi"

Copied!
23
0
0

Teks penuh

(1)

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

(2)

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.

(3)

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

(4)

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)

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

(6)

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*/ }

(7)

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.

(8)

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:

(9)

– Membuat mailbox baru.

– Mengirim dan menerima pesan melalui mailbox. – Menghapus mailbox.

(10)

SEMAPHORE

Cindy Alicia Sahara (5214100

172

)

Ratih Kinanti A (5214100

174

)

Patricia Hanna S (5214100

177

)

Indriarti Kusumanita (5214100

178

)

(11)

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

(12)

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 selesa

i. Operasi dari semaphore S adalah wait dan signal

berikut :

wait (S ):

while S 0 do no-op;

S--;

signal (S ):

S++;

(13)

Semaphore mempunyai dua sifat, yaitu:

1. Semaphore dapat

diinisialisasi dengan nilai

non-negatif

.

2. Terdapat dua operasi terhadap semaphore, yaitu

Wait

dan

Signal

.

(14)

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

(15)

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

(16)

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

(17)

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.

(18)

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

(19)

KEUNTUNGAN

1. Dari segi programming, penanganan masalah

sinkronisasi dengan Semaphore

umumnya rapi

dan teratur

, sehingga mudah untuk dibuktikan

kebenarannya

2. Semaphore diimplementasikan dalam hard

(20)

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.

(21)

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.

(22)

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

(23)

Referensi

Dokumen terkait

sekitar sanggup ber%erai apabila masing'masing tidak dapat bertolak ansur. dapat bertolak ansur. $asyarakat yang cinta akan alam sekitar  $asyarakat yang cinta akan alam

Permasalahan degradasi maupun deplesi sumberdaya alam dan lingkungan di kawasan ini yang sudah banyak terjadi misalnya, adalah merupakan produk dari pengelolaan

Dari sisi pembiayaan perbankan, realisasi kredit investasi pada triwulan laporan tumbuh sebesar 67,36% (y.o.y), lebih tinggi dibandingkan dengan periode yang sama tahun 2009 yang

Dari penelitian didapat hasil bahwa pada konsentrasi larutan asam sulfat yang sama, ternyata beton dengan bahan aditif abu terbang mempunyai ketahanan yang lebih

1. Jumlah serangga sasaran yang sempit dapat menyebabkan insektisida kimiawi menjadi pilihan untuk menanggulangi masalah serangga hama. thuringiensis harus dilakukan

diperlukan. Tingkat kedetilan yang diperlukan tergantung pada bagaimana data permintaan yang tidak terdistorsi akan digunakan oleh perusahaan yang terlibat

Terdapat sembilan tombol hyperlink yang berfungsi sebagai penghubung antar halaman lainnya (penjelasannya sama seperti yang tertera pada halaman index/tentang kami)..

Materi penelitian yang digunakan adalah daun dan batang tanaman mangrove yang di ekstraksi dan selanjutnya hasil ekstraksi dengan menggunakan fiksasi tawas, kapur dan