Anda di halaman 1dari 31

ASSALAMUALIKUM

WR.WB

GROUP 6
MUHAMMAD ANDRI PURNAMA
A N WA R S A D A D
HANIS ANSOR
PENGERTIAN SISTEM
OPERASI
Sistem operasi merupakan sebuah penghubung antara
pengguna dari komputer dengan perangkat keras komputer.
Sebelum ada sistem operasi, orang hanya mengunakan
komputer dengan menggunakan sinyal analog dan sinyal
digital. Seiring dengan berkembangnya pengetahuan dan
teknologi, pada saat ini terdapat berbagai sistem operasi
dengan keunggulan masing-masing.
Pengertian sistem operasi secara umum
ialah pengelola seluruh sumber-daya yang
terdapat pada sistem komputer dan
menyediakan sekumpulan layanan (system
calls) ke pemakai sehingga memudahkan
dan menyamankan penggunaan serta
pemanfaatan sumber-daya sistem komputer.
P R O S E S D AN SINK RO NIS A S I

Proses, Penjadualan, dan Sinkronisasi merupakan


trio yang saling berhubungan, sehingga seharusnya
tidak dipisahkan. Bagian yang lalu telah membahas
Proses dan Penjadualannya, sehingga bagian ini akan
membahas Proses dan Sinkronisasinya.
SINKRONISASI
Komunikasi antara proses membutuhkan
subroutine untuk mengirim dan menerima data
primitif. Terdapat desain yang berbeda-beda
dalam implementasi setiap primitif. Pengiriman
pesan mungkin dapat diblok (blocking) atau tidak
dapat dibloking (nonblocking) - juga dikenal
dengan nama sinkron atau asinkron.
Sinkronisasi diperlukan untuk menghindari terjadinya
ketidak-konsistenan data akibat adanya akses data secara
konkuren. Proses-proses disebut konkuren jika proses-
proses itu ada dan berjalan pada waktu yang sama,
proses-proses konkuren ini bisa bersifat independen atau
bisa juga saling berinteraksi. Proses-proses konkuren yang
saling berinteraksi memerlukan sinkronisasi agar
terkendali dan juga menghasilkan output yang benar.
Sinkronisasi adalah proses pengaturan jalannya beberapa proses
pada saat yang bersamaan. Tujuan utama sinkronisasi adalah
menghindari terjadinya inkonsistensi 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 atau starvation.
Sinkronisasi umumnya dilakukan dengan bantuan perangkat
sinkronisasi. Dalam bab ini akan dibahas beberapa perangkat
sinkronisasi,
yaitu : TestAndSet(), Semafor, dan Monitor.
TESTANDSET()
Sebagian besar sistem komputer saat ini menyediakan
instruksi-instruksi perangkat keras khusus yang mengizinkan
kita untuk menguji dan memodifikasi nilai dari sebuah variabel.
Instruksi ini disebut instruksi TestAndSet().
Instruksi ini bersifat atomik, yaitu instruksi yang tidak dapat
diinterupsi. Kita dapat menggunakan instruksi khusus ini untuk
memecahkan masalah critical
section yang sederhana.
CONTOH INSTRUKSI
TESTANDSET():
boolean TestAndSet (boolean *target) {

boolean rv = *target;
*target = TRUE;
return rv;

}
Karakteristik penting dari instruksi ini adalah
pengeksekusian instruksi secara atomik. Jadi, jika
dua instruksi TestAndSet() dijalankan secara
serentak, kedua instruksi tersebut akan
dieksekusi secara sekuensial. Dengan
mendeklarasikan variabel lock, kita dapat
mengimplementasikan mutual exclusion seperti
pada contoh berikut ini:
T E S TA N D S E T ( ) D E N GA N M U T U A L
E X C L U S I ON
do { // remainder section
while (TestAndSetLock } while (TRUE);
(&lock))
; // do nothing
// critical section Walaupun algoritma di
lock = FALSE; samping memenuhi
persyaratan mutual exclusion,
algoritma tersebut belum
memenuhi persyaratan
bounded waiting. Instruksi
TestAnd Set() di bawah ini
sudah memenuhi semua
T E S TA N D S E T ( ) YA N G M E M E N U H I C R I T I C A L
SECTION

do {
while ((j != i) && !waiting[j])
waiting[i] = TRUE;
% n;
key = TRUE;
if (j == i)
while (waiting[i] && key)
lock = FALSE;
key = TestAndSet (&lock);
else
waiting[i] = FALSE;
waiting[j] = FALSE;
// critical section
// remainder section
j = (i + 1) % n;
} while (TRUE);
• KETIKA DALAM KEADAAN
SINKRON, TERJADI DUA
KEJADIAN:
1. BLOCKING SEND .
P E M B L O K I R A N P E N G I R I M S A M PA I
P E S A N S E B E L U M N YA D I T E R I M A .
2. BLOCKING RECEIVE .
PEMBLOKIRAN PENERIMA
S A M PA I T E R D A PAT P E S A N YA N G
AKAN DIKIRIM.
Sedangkan untuk keadaan asinkron, yang terjadi
adalah:

1. Non-blocking send . Pengirim dapat terus mengirim


pesan tanpa memperdulikan apakah pesan sebelumnya
sampai atau tidak.

2. Non-blocking receive . Penerima menerima semua


pesan baik berupa pesan yang valid atau pesan yang
salah (null).
PENYANGGA
Dalam setiap jenis komunikasi, baik
langsung atau tidak langsung, penukaran
pesan oleh proses memerlukan antrian
sementara. Pada dasarnya, terdapat tiga
cara untuk mengimplementasikan antrian
tersebut:
1. Kapasitas Nol. Antrian mempunyai panjang maksimum nol, sehingga
tidak ada penungguan pesan (message waiting). Dalam kasus ini, pengirim
harus memblok sampai penerima menerima pesan.
2. Kapasitas Terbatas. Antrian mempunyai panjang yang telah ditentukan,
paling banyak n pesan dapat dimasukkan. Jika antrian tidak penuh ketika
pesan dikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim
dapat melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas
terbatas. Jika link penuh, pengirim harus memblok sampai terdapat ruang
pada antrian.
3. Kapasitas Tak Terbatas. Antrian mempunyai panjang yang tak terhingga,
sehingga semua pesan dapat menunggu disini. Pengirim tidak akan pernah
di blok.
CLIENT/SERVER
Dengan makin berkembangnya teknologi jaringan komputer, sekarang ini
ada kecenderungan sebuah sistem yang menggunakan jaringan untuk saling
berhubungan. Dalam jaringan tersebut, biasanya terdapat sebuah komputer
yang disebut server, dan beberapa komputer yang disebut client.
Server adalah komputer yang dapat memberikan service ke server,
sedangkan client adalahkomputer yang mengakses beberapa service yang
ada di client. Ketika client membutuhkan suatu service yang ada di server, dia
akan mengirim request kepada server lewat jaringan. Jika request tersebut
dapat dilaksanakan, maka server akan mengirim balasan berupa service yang
dibutuhkan untuk saling berhubungan menggunakan Socket.
1. KARAKTERISTIK SERVER
A . PA S I F
B. MENUNGGU REQUEST
C . M E N E R I M A R E Q U E S T, M E M P R O S E S
MEREKA DAN MENGIRIMKAN BALASAN
B E R U PA S E R V I C E

2. Karakteristik Client

a. Aktif

b. Mengirim request

c. Menunggu dan menerima balasan dari server


Socket adalah sebuah endpoint untuk komunikasi didalam
jaringan. Sepasang proses atau thread berkomunikasi
dengan membangun sepasang socket, yang masing-masing
p roses memilikinya. Socket dibuat dengan menyambungkan
dua buah alamat IP melalui port tertentu. Secara umum
socket digunakan dalam client/server system, dimana
sebuah server akan menunggu client pada port tertentu.
Begitu ada client yang menghubungi server maka server
akan menyetujui komunikasi dengan client melalui socket
yang dibangun.
Sebagai contoh sebuah program web browser pada
host x (IP 146.86.5.4) ingin berkomunikasi
dengan web server (IP 152.118.25.15) yang sedang
menunggu pada port 80. Host x akan menunjuk
sebuah port. Dalam hal ini port yang digunakan ialah
port 1655. Sehingga terjadi sebuah hubungan
dengan sepasang socket (146.86.5.4:1655) dengan
(152.118.25.15:80).
SINKRONISASI

Sinkronisasi merupakan akses bersama yang mengakibatkan


inkosistensi data yang memerlukan mekanisme untuk
memastikan eksekusi dari proses kerjasama. Tujuan utama dari
sinkronisasi ini untuk 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.
A D A T I G A H A L YA N G S E L A L U M E N J A D I
M A S A L A H K L A S I K PA D A P R O S E S
S I N K R O N I S A S I , YA I T U :
Problem Bounded buffer : merupakan suatu struktur data yang mampu untuk
menyimpan beberapa nilai dan mengeluarkannya kembali ketika diperlukan.
Problem Reades and Writer :merupakan salah satu masalah sinkronisasi
klasik yang sering digunakan untuk mendiskusikan dan membandingkan
berbagai cara untuk menyelesaikan masalah sinkronisasi.
Problem Dining Philosophers : Masalah ini memodelkan masalah
enkapsulasi dari ketergantungan mesin dan masalah portabilitas. Dalam
masalah Dining Philosophers, diketahui sejumlah (N) filusuf yang hanya
memiliki tiga status, berpikir, lapar, dan makan.
BOUNDED BUFFER PROBLEM
Bounded-Buffer (Producer-Consumer) Problem atau
Masalah Bounded Buffer adalah suatu struktur data untuk
menampung (buffer) suatu nilai dimana kapasitasnya
tertentu/terbatas (bounded). Masalah bounded buffer merupakan
salah satu masalah yang menerangkan sinkronisasi antara
proses-proses yang berjalan secara konkuren untuk mengakses
data yang sama.
MASALAH READERS/WRITERS DAN
DINING PHILOSOPHERS

Masalah Readers/Writers adalah salah satu masalah sinkronisasi


klasik yang sering digunakan untuk mendiskusikan dan
membandingkan berbagai cara untuk menyelesaikan masalah
sinkronisasi. Secara singkat, masalah ini terjadi ketika ada
beberapa pembaca dan penulis ingin mengakses suatu berkas pada
saat bersamaan. Salah satu contoh konkret dari permasalahan ini
adalah masalah pemesanan tiket pesawat terbang.
“THE DINING
PHILOSOPHER PROBLEM”
Dalam Literatur sistem operasi terdapat berbagai permasalahan menarik yang telah
didiskusikan dan dianalisis. Berikut adalah  contoh permasalahan klasik dibidang komunikasi
antar-proses yang harus dapat diselesaikan oleh sebuah sistem operasi.salah satu contoh
permodelan proses yang bersaing untuk mendapatkan akses ekslusif ke sejumlah resource
yang terbatas, seperti alat input/output. 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.
SLEEPING BARBER PROBLEM

Sleeping barber problem berdasar pada suatu barber shop dan


barber-nya. Si barber hanya memiliki satu buah kursi untuk
menggunting rambut dan beberapa kursi di ruang tunggu. Pada saat si
barber telah selesai menggunting rambut seorang pelanggan, ia akan
berjalan menuju ruang tunggu untuk melihat keadaannya. Jika ada
pelanggan yang menunggu, ia akan membawanya ke kursi dan
memotong rambutnya. Jika tidak, ia akan kembali ke ruangannya, dan
beristirahat.
D E A D L O C K PA D A S I S T E M O P E R A S I
Pengertian 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.
A D A E M PAT K O N D I S I YA N G D A PAT
M E N Y E B A B K A N T E R J A D I N YA
DEADLOCK.
Mutual exclusion. Hanya ada satu proses yang boleh memakai
sumber daya.
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
No preemption. Sumber daya yang ada pada sebuah proses tidak
boleh diambil begitu saja oleh proses lainnya.
Circular wait. Kondisi seperti rantai, yaitu sebuah proses
membutuhkan sumber daya yang dipegang proses berikutnya.
S E C A R A U M U M T E R D A PAT 4 C A R A
UNTUK MENANGANI KEADAAN
D E A D L O C K , YA I T U :
Pengabaian. Maksud dari pengabaian di sini adalah sistem mengabaikan
terjadinya deadlock dan pura-pura tidak tahu kalau deadlock terjadi.
Pencegahan. Penanganan ini dengan cara mencegah terjadinya salah satu
karakteristik deadlock. Penanganan ini dilaksanakan pada saat deadlock
belum terjadi pada sistem.
Penghindaran. Menghindari keadaan deadlock. Bagian yang perlu
diperhatikan oleh pembaca adalah bahwa antara pencegahan dan
penghindaran adalah dua hal yang berbeda.
endeteksian dan Pemulihan. Pada sistem yang sedang berada pada
kondisi deadlock, tindakan yang harus diambil adalah tindakan yang
bersifat represif.
SEKIAN DAN
TERIMAKSIH

Anda mungkin juga menyukai