|
2015 |
||
|
SISTEM
OPERASI
|
S
U
S
U
N
OLEH :
NAMA KELOMPOK :
Ø Ali Umar
Ø Lindung Azilsta
Ø Vivi Sriandrita
JurusanTeknik Informatika
Fakultas Sains dan Teknologi
Universitas Islam Negeri Sultan Syarif Kasim Riau
2015
KATA
PENGANTAR
Assalamu’alaikum
Wr. Wb.
Puji syukur kami
ucapkan kehadirat Allah SWT yang telah melimpahkan rahmat dan hidayah-nya dan
tidak lupa pula sholawat serta salam kami ucapkan kepada Nabi besar Muhammad
SAW yang telah membawa umatnya dari zaman kegelapan menuju zaman yang penuh dengan Teknologi
seperti saat ini.
Kami juga mengucapkan
terima kasih kepada dosen mata kuliah Sistem
Operasi serta teman-teman yang telah membantu
kami dalam pembuatan makalah ini, sehingga kami dapat menyelesaikan makalah ini
yang berjudul “ Konkurensi”. Adapun makalah ini disusun untuk memenuhi tugas mata kuliah Sistem Operasi.
Dalam makalah ini terkandung definisi serta semua pembahasan tentang
Konkurensi. Makalah ini di susun juga agar supaya para pembaca bisa mengerti
dan memahami tentang apa itu Konkurensi.
Kami menyadari
bahwa masih terdapat kekurangan dalam makalah ini, sehingga kami senantiasa
terbuka untuk menerima saran dan keritik dari pembaca demi penyempurnaan
makalah berikutnya. Semoga makalah ini dapat bermanfaat
bagi kita semua.
Wassalamu’alaikum Wr. Wb.
Pekanbaru,
29 Maret 2015
Penyusun
DAFTAR
ISI
KATA
PENGANTAR
ii
DAFTAR
ISI
iii
BAB I
PENDAHULUAN
1.1 Latar Belakang
1
1.2
Rumusan Masalah
1
1.3
Tujuan Penulisan
1
BAB II PEMBAHASAN
2.1 Pengertian Konkurensi
3
2.2 Masalah Yang Terdapat Di Dalam
Konkurensi 3
2.3
Prinsip-Prinsip Yang Terdapat Di Dalam Konkurensi 7
2.4 Kesulitan Yang
Ditimbulkan Oleh Konkurensi
8
2.5 Interaksi
Antarproses Di Dalam Konkurensi 9
2.6 Kerjasama
Diantara Proses-Proses Dengan
Pemakaian Bersama & Dengan
Komunikasi 10
2.7 Pokok
Penyelesaian Masalah Dengan Kongkurensi 11
BAB III PENUTUP
3.1 Kesimpulan
Daftar Pustaka 13
BAB I
PENDAHULUAN
1.1 Latar
Belakang
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. Untuk lebih memahami sistem operasi
maka sebaiknya perlu diketahui terlebih dahulu beberapa konsep dasar mengenai
sistem operasi itu sendiri.
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.
1.2 Rumusan
Masalah
Berdasarkan latar belakang masalah
diatas, masalah-masalah yang akan dibahas dapat dirumuskan sebagai berikut :
1.
Apakah yang dimaksud dengan Konkurensi ?
2. Apa sajakah
masalah yang terdapat di dalam Konkurensi ?
3. Apa sajakah
prinsip-prinsip yang terdapat di dalam Konkurensi ?
4. Apa sajakah
kesulitan yang ditimbulkan oleh Konkurensi ?
5. Bagaimanakah
interaksi
antarproses di dalam Konkurensi ?
6. Bagaimanakah
kerja sama di antara proses-proses dengan pemakaian bersama dan dengan
komunikasi
?
7. Bagaimanakah
pokok penyelesaian masalah dengan kongkurensi ?
1.3 Tujuan Penulisan
1. Mengetahui
yang dimaksud
dengan Konkurensi.
2. Mengetahui
masalah yang
terdapat di dalam Konkurensi.
3. Mengetahui
prinsip-prinsip
yang terdapat di dalam Konkurensi.
4. Mengetahui
kesulitan yang
ditimbulkan oleh Konkurensi.
5. Mengetahui
interaksi
antarproses di dalam Konkurensi.
6. Mengetahui
kerja sama di
antara proses-proses dengan pemakaian bersama dan dengan komunikasi.
7. Mengetahui
pokok penyelesaian masalah dengan kongkurensi.
BAB II
PEMBAHASAN
2.1 Pengertian Konkurensi
Konkurensi merupakan
landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika
proses-proses berada pada saat yang sama. Dikatakan sebagai landasan umum
perancangan sistem operasi karena dalam menciptakan suatu sistem operasi,
sistem operasi tersebut umumnya harus bisa menjalankan beberapa proses (lebih
dari satu proses) pada saat yang bersamaan.
Konkurensi
menjadi penting karena pada saat ini hampir seluruh sistem adalah multiprograming
ataupun multithereading, serta menuju pemerosesan tersebar yang
mengharuskan adanya proses-proses konkuren.
2.2 Masalah Yang Terdapat Di Dalam
Konkurensi
Pada proses-proses yang konkuren
atau berada pada saat yang bersamaan, terdapat beberapa masalah yang harus
diselesaikan yaitu:
1. Mutual
exclusion
2. Sinkronisasi
3. Deadlock
4. Starvation
Dengan kata lain, masalah-masalah
diatas akan timbul apabila sistem operasi menjalankan beberapa proses pada saat
yang bersamaan.
1.
Mutual Exclusion
Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber
daya pada satu interval waktu tertentu. Sumber daya yang tidak dapat dipakai bersama
pada saat bersamaan.
Fasilitas atau kemampuan menyediakan dukungan mutual exclusion harus memenuhi kriteria sbb:
Fasilitas atau kemampuan menyediakan dukungan mutual exclusion harus memenuhi kriteria sbb:
·
Mutual exclusion harus dijamin,
bahwa tidak ada proses lain, kecuali dirinya sendiri. Di sini terjadi proses
tunggal.
·
Proses yang berada di noncritical
section, dilarang mem-blocked proses-proses lain yang ingin masuk critical
section. Hal ini bisa terjadi startvation.
·
Harus dijamin bahwa proses yang
ingin masuk critical section tidak menunggu selama waktu yang tak terhingga.
Ini bisa mengakibatkan masalah deadlock dan antrian proses bertambah panjang.
·
Ketika tidak ada proses pada
critical section, maka proses yang ingin masuk critical section harus ijinkan
masuk tanpa waktu tunda.
·
Tidak ada asumsi mengenai
kecepatan relatif proses atau jumlah proses yang ada.
·
Proses hanya tinggal pada
critical section selama satu waktu yang tidak terhingga.
2.
Deadlock
Deadlock adalah suatu kondisi
dimana dua proses atau lebih tidak dapat meneruskan eksekusinya oleh pemroses.
Pada umumnya deadlock terjadi karena proses mengalami startvation, yaitu suatu
job yang sedang dieksekusi dan eksekusi job tersebut tidak ada hentinya, tidak
diketahui kapan berhentinya proses tersebut atau bahkan job yang antri bisa
dikatakan mempunyai status mati, padahal proses-proses lain sedang menunggu
sumber daya proses.
Kondisi Deadlock merupakan
kondisi terparah karena banyak proses dapat terlibat dan semuanya tidak dapat
mengakhiri prosesnya secara benar.
Metode Mengendalikan Deadlock
1.
Menggunakan suatu protokol untuk meyakinkan bahwa
sistem tidak pernah mengalami deadlock.
2.
Mengijinkan sistem mengalami
deadlock, namun kemudian harus segera dapat memperbaikinya.
3.
Mengabaikan semua masalah dan
menganggap deadlock tidak akan pernah terjadi lagi di dalam sistem.
Strategi untuk menghadapi
deadlock dapat dibagi menjadi tiga pendekatan, yaitu:
1.
Mengabaikan adanya
deadlock.
2.
Memastikan bahwa deadlock
tidak akan pernah ada, baik dengan metode Pencegahan, dengan
mencegah empat kondisi deadlock agar tidak akan pernah terjadi.
3.
Membiarkan deadlock untuk
terjadi, pendekatan ini membutuhkan dua metode yang saling mendukung, yaitu:
- Pendeteksian deadlock, untuk
mengidentifikasi ketika deadlock terjadi.
-Pemulihan deadlock,
mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya.
Pencegahan Deadlock
1.
Meniadakan Mutual exclusion.
Harus tetap menjaga resource-resource
yang bersifat non-shareable. Yaitu, proses menahan sebuah resource, proses lain
yang meminta resource tsb harus menunggu sampai proses melepaskannya. Jika
terjadi pada perangkat I/O dan berkas, maka sulit untuk menghindari mutual
exclusion pada sumber daya non shareable.
2.
Meniadakan Syarat Hold &
Wait.
Apabila suatu proses minta ijin
untuk mengakses suatu resource, maka proses tersebut tidak boleh membawa
resource yang lainnya. Sebleum proses meminta resource, maka harus melepas
semua resource yang dibawa.
3.
Meniadakan Non Preemption.
Jika suatu proses minta ijin
mengakses resource, sementara resource tersebut tidak dapat dipenuhi
secepatnya, maka proses tersebut harus membebaskan semua resourcenya terlebih
dahulu.
4.
Meniadakan Circular Wait.
Memberi nomor pada setiap
resource yang ada, dan setiap resource hanya boleh mengakses resource secara
berurutan.
Mendeteksi Deadlock dan
Memulihkan Deadlock
Metode deteksi digunakan pada
system 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, system dipulihkan dari deadlock dengan metode pemulihan.
Metode pemulihan dari deadlock berupaya
untuk menghilangkan deadlock dari system sehingga system beroperasi kembali,
bebas dari deadlock. Proses-proses yang terlibat deadlock mungkin dapat
menyelesaikan eksekusi dan membebaskan sumber daya-sumberdayanya.
3. Startvation
Startvation adalah keadaan dimana
pemberian akses bergantian terus menerus, dan ada suatu proses yang tidak
mendapatkan gilirannya. Juga dapat dimaksudkan bahwa kondisi bila beberapa
proses-proses menunggu alokasi sumber daya sampai tak berhingga, sementara
proses-proses lain dapat memperoleh alokasi sumber daya.
Hal ini disebabkan bias pada
kebijaksanaan atau strategi alokasi sumber daya. Kondisi seperti ini harus
dihindari pada sistem operasi karena tidak adil, tapi dikehendaki penghindaran
dilakukan seefisien mungkin. Penanganan ini merupakan persoalan yang sulit
untuk menemukan kriteria yang benar, adil dan efesien dalam suatu strategi
Sistem Operasi.
Perhatikan contoh berikut:
Terdapat tiga proses, P1, P2, dan
P3.
1.
P1, P2 dam P3 memerlukan
pengaksesan sumber daya R secara periodik.
Skenario berikut terjadi:
1.
P1 sedang diberi sumber daya R,
P2 dan P3 blocked menunggu sumber daya R.
Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengakses R.
Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang satu itu kembali membutuhkan sumber daya R.
Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengakses R.
Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang satu 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, meski tidak ada deadlock. Pada situasi ini, P2
mengalami situasi yang disebut dengan startvation.
2.3 Prinsip-Prinsip Yang Terdapat Di Dalam
Konkurensi
Karena konkurensi merupakan
landasan umum pada perancangan suatu sistem operasi, maka beberapa hal yang
merupakan prinsip-prinsip konkurensi harus ada dalam sistem operasi yang akan
dirancang. Konkurensi meliputi beberapa hal berikut ini:
·
Alokasi waktu pemroses untuk
proses-proses.
Hal ini berkaitan dengan
penjadwalan proses pada suatu sistem operasi. Penjadwalan proses merupakan
kumpulan kebijakan dan mekanisme dalam sistem operasi yang berkaitan dengan
urutan kerja yang dilakukan sistem operasi. Penjadwalan proses bertugas untuk
mengatur proses mana yang harus berjalan, kapan dan seberapa lama proses
tersebut dijalankan.
·
Pemakaian bersama dan persaingan
untuk mendapatkan sumber daya.
Dalam hal ini, sebuah sistem
operasi harus bisa mengatur pemakaian sumber daya pada saat terjadinya
konkurensi. Sumber daya yang ada jumlahnya terbatas, sehingga pada saat banyak
proses yang berjalan sistem harus dapat mengatur pengalokasian sumberdaya agar
tidak terjadi starvation. Selain itu terdapat juga sumber daya yang tidak
bersifat shareable atau tidak dapat digunakan secara bersaman, sumber daya
seperti itu disebut sumber daya kritis.
·
Komunikasi antar proses.
Untuk mengatur kegiatan proses
yang berjalan bersamaan, mereka harus dapat saling berkomunikasi, dimana
proses-proses yang ingin dikomunikasikan harus memiliki sebuah cara untuk
berkomunikasi satu dengan lainnya. Mereka dapat menggunakan komunikasi secara
langsung atau tak langsung.
·
Sinkronisasi aktivitas banyak
proses.
Sinkronisasi aktivitas banyak
proses ini mencakup semua hal di atas. Untuk terjadinya sinkronisasi antar
proses-proses yang berjalan diperlukannya komunikasi antar proses yang
berjalan. Setelah proses-proses tersebut berkomunikasi, sistem akan dapat
membagi sumber daya yang ada baik itu sumber daya kritis atau tidak. Selan itu,
sistem juga dapat mengatur penjadwalan proses dengan baik.
Konkurensi dapat muncul pada
konteks 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.
2.4
Kesulitan Yang
Ditimbulkan Oleh Konkurensi
Masalah yang dihadapi
proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa,
yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi.
Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti kecepatan proses pada sistem
tergantung pada beberapa hal, antara lain:
a) Aktivitas
proses-proses lain
b) Cara sistem
operasi menangani interupsi
c) Kebijaksanaan
penjadwalan yang dilakukan oleh sistem operasi.
Beberapa kesulitan yang dapat
muncul, di antaranya adalah:
a) Pemakaian
bersama sumber daya global.
Jika dua proses menggunakan
variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka
urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.
b) Pengelolaan
alokasi sumber daya agar optimal
Jika proses A meminta suatu kanal
masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend
sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan
orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi.
c) Pencarian
kesalahan pemrograman.
Pencarian kesalahan pada
pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada
program-program sekuen.
2.5 Interaksi
Antarproses Di Dalam Konkurensi
Pada sistem dengan banyak proses
(kongkuren), terdapat 3 katagori interaksi antar proses berdasarkann derajat
pengetahuan keberadaan proses lainnya, yaitu:
1. Proses
tidak saling mengetahui keberadaannya.
Proses seperti ini merupakan proses yang tidak dimaksudkan untuk
bekerjasama. Pada multiprogramming dengan proses-proses independen, dapat
berupa batch atau sesi interaktif, atau campuran keduanya. Walaupun proses
saling tidak melakukan kerjasama, sistem operasi perlu memperhatikan kompetisi
sumber daya. Misalnya dua aplikasi independen dapat sama-sama menginginkan
akses ke disk, file , atau printer yang sama. Sistem operasi harus mengatur
akses tersebut.
2. Proses
mengetahui keberadaan proses lainnya secara tidak langsung.
Proses seperti ini adalah proses
yang tidak harus saling mengetahui akan keberadaan proses lainnya berdasarkan
namanya namun memiliki akses berbagi ke beberapa objek, misaslkan bufer I/O.
Proses seperti itu menunjukkan adanya kooperasi dalam melakukan berbagi
pemakaian ojek.
3. Proses
mengetahui keberadaan proses lainnya secara langsung.
Proses-proses seperti ini adalah
proses yang dapat berkomunikasi satu dengan lainnya berdasarkan nama dan
merupakan proses yang dirancang untuk bekerja sama dalam melakukan
aktivitas-aktivitas tertentu. Demikian pula, proses seperti ini menunjukkan
adanya kooperasi.
2.6
Kerjasama Diantara
Proses-Proses Dengan Pemakaian Bersama & Dengan Komunikasi
Dalam kasus
kerjasama pemakaian sumber daya bersama meliputi proses-proses yang saling
berinteraksi tanpa dinyatakan secara eksplisit.
Contoh
Banyak proses mengakses variabel atau berkas yang dipakai bersama.
Proses-proses dapat menggunakan dan memperbaharui data yang dipakai bersama
tanpa peduli proses-proses lain. Proses mengetahui bahwa proses-proses lain
dapat juga mengakses data yang sama. Proses-proses harus bekerja sama untuk
menjamin integritas data yang dipakai bersama tersebut.
Kerja sama di antara proses-proses dalam pemakaian bersama mempunyai
masalah (Mutual exclusion, Deadlock dan Starvation).
Sedangkan
ketika proses-proses bekerja sama dengan komunikasi, beragam proses
berpartisipasi dalam suatu usaha dengan menghubungkan semua proses. Komunikasi
menyediakan cara untuk sinkronisasi atau koordinasi beragam aktivitas.
Komunikasi
dicirikan dengan berisi pesan-pesan dengan suatu urutan. Primitif untuk
mengirim dan menerima pesan disediakan kernel sistem operasi. Karena tak ada sesuatu
yang di pakai bersama di antara proses-proses itu dalam melewatkan pesan-pesan,
tak ada masalah mutual exclusion. Tetapi masalah deadlock dan starvation
dapat muncul.
Contoh
Deadlock adalah dua proses menjadi Blocked dalam hal ini
masing-masing proses menjadi Blocked karena menunggu komunikasi dari proses
lain. Kedua proses saling menunggu komunikasi dari lainnya dan tidak dapat
beranjak dari kondisi ini.
2.7
Pokok
Penyelesaian Masalah Dengan Kongkurensi
Pada dasarnya penyelesaian
masalah kongkurensi terbagi menjadi 2, yaitu:
1. Mengasumsikan adanya memori
yang digunakan bersama.
2. Tidak mengasumsikan adanya
memori yang digunakan bersama.
Adanya
memori bersama lebih memudahkan dalam penyelesaian masalah konkurensi. Metode
penyelesaian ini dapat dipakai untuk sistem singleprocessor ataupun multiprocessor yang mempunyai memori
bersama. Penyelesaian ini tidak dapat digunakan untuk multiprocessor tanpa memori
bersama atau untuk sistem tersebar.
BAB III
PENUTUP
3.1.Kesimpulan
Konkurensi merupakan
landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika
proses-proses berada pada saat yang sama. Dikatakan sebagai landasan umum
perancangan sistem operasi karena dalam menciptakan suatu sistem operasi,
sistem operasi tersebut umumnya harus bisa menjalankan beberapa proses (lebih
dari satu proses) pada saat yang bersamaan.
Pada proses-proses yang konkuren
atau berada pada saat yang bersamaan, terdapat beberapa masalah yang harus
diselesaikan yaitu ( Mutual exclusion, Sinkronisasi, Deadlock dan Starvation ). Penyelesaian masalah kongkurensi terbagi menjadi 2 yaitu Mengasumsikan adanya memori yang
digunakan bersama dan tidak mengasumsikan adanya memori yang digunakan bersama.
Adanya
memori bersama lebih memudahkan dalam penyelesaian masalah konkurensi. Metode
penyelesaian ini dapat dipakai untuk sistem singleprocessor ataupun multiprocessor yang mempunyai memori
bersama.
DAFTAR PUSTAKA
Hariyanto, B.,"Sistem Operasi", Bandung:
Informatika, Desember 1997