MANAJEMEN PROSES
Dosen: Dewi Luqi Puspitasari
Disusun Oleh:
KELOMPOK 2
Alifuddin Rafif (10118562)
Annisa Putri (10118948)
Makmur Hanif Mutaqin (13118946)
Rafli Ilham Suyudi (15118793)
Rian Reza Fahlevie (16118087)
Shafira Shafa Ramadhina (16118635)
SISTEM INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS GUNADARMA
ATA 2019/2020
KATA PENGANTAR
Segala puji bagi Allah yang telah memberikan kami kemudahan sehingga kami dapat
menyelesaikan makalah ini dengan tepat waktu. Tanpa pertolongan-Nya tentunya kami tidak
akan sanggup untuk menyelesaikan makalah ini dengan baik. Shalawat serta salam semoga
terlimpah curahkan kepada baginda tercinta kita yaitu Nabi Muhammad Salallahu ‘Alaihi
Wassalam yang kita nanti-natikan syafa’atnya di akhirat nanti.
Kami mengucapkan syukur kepada Allah SWT atas limpahan nikmat sehat-Nya, baik
itu berupa fisik maupun akal pikiran, sehingga kami mampu untuk menyelesaikan pembuatan
makalah dengan judul “Manajemen Proses”.
Kami tentu menyadari bahwa makalah ini masih jauh dari kata sempurna dan masih
banyak terdapat kesalahan serta kekurangan di dalamnya. Untuk itu, penulis mengharapkan
kritik serta saran dari pembaca untuk makalah ini, supaya makalah ini nantinya dapat menjadi
makalah yang lebih baik lagi. Demikian, dan apabila terdapat banyak kesalahan pada
makalah ini penulis mohon maaf yang sebesar-besarnya.
Penyusun
KELOMPOK 2
DAFTAR ISI
KATA PENGANTAR.........................................................................................................................2
DAFTAR ISI........................................................................................................................................3
A. DEFINISI PROSES.....................................................................................................................4
B. KONSEP DASAR........................................................................................................................4
C. MODEL PROSES........................................................................................................................4
D. OPERASI-OPERASI PADA PROSES.....................................................................................4
E. PENJADWALAN PROSES........................................................................................................4
F. STATUS PROSES........................................................................................................................4
G. IMPLEMENTASI SISTEM........................................................................................................4
H. KOMUNIKASI ANTAR PROSES.............................................................................................4
I. RACE CONDITION...................................................................................................................4
J. CRITICAL SECTION................................................................................................................4
K. SLEEP AND WAKE UP.............................................................................................................4
L. SEMAPHORE.............................................................................................................................4
DAFTAR PUSTAKA..........................................................................................................................5
A. DEFINISI PROSES
Proses adalah keadaan ketika sebuah program sedang di eksekusi. Saat komputer
berjalan, terdapat banyak proses yang berjalan secara bersamaan. Sebuah proses
dibuat melalui system call create-process yang membentuk proses turunan (child
process) yang dilakukan oleh proses induk (parent process). Proses turunan tersebut
juga mampu membuat proses baru sehingga semua proses ini pada akhirnya
membentuk pohon proses.
Ketika sebuah proses dibuat maka proses tersebut dapat memperoleh sumber-daya
seperti waktu CPU, memori, berkas, atau perangkat I/O. Sumber daya ini dapat
diperoleh langsung dari sistem operasi, dari proses induk yang membagi-bagikan
sumber daya kepada setiap proses turunannnya, atau proses turunan dan proses induk
berbagi sumber-daya yang diberikan sistem operasi.
B. KONSEP DASAR
Terdapat empat konsep dasar manajemen proses :
1. Multiprogramming, salah satu teknik penjadwalan dimana tugas (task) yang
sedang berjalan tetap berjalan sampai ia melakukan operasi yang
membutuhkan waktu untuk menunggu respon dari luar (external event),
misalnya membaca data dari disket/CD/dsb, atau sampai komputer memaksa
untuk menukar tugas yang sedang berjalan dengan tugas lainnya.
2. Pseudoparallelism, eksekusi proses secara paralel pada sistem.
3. Multiprocessing, kemampuan pemrosesan komputer yang dilakukan secara
serentak. Istilah ini juga dapat merujuk kepada dukungan sebuah sistem untuk
mendukung lebih dari satu prosesor dan mengalokasikan tugas kepada
prosesor-prosesor tersebut.
4. Distributed Processing, Mengerjakan semua proses pengolahan data secara
bersama antara komputer pusat dengan beberapa komputer yang lebih kecil
dan saling dihubungkan melalui jalur komunikasi.
C. MODEL PROSES
Terdapat tiga model proses :
1. Sequential Process, proses berurutan merupakan proses yang dilakukan urut
dari proses yang pertama sampai proses yang terakhir, tidak ada proses yang
dilewati.
2. Multiprogramming, proses yang memungkinkan dua buah program atau lebih
dijalankan secara serentak dalam sebuah computer dan berbagai sumber daya
dalam waktu yang berlainan.
3. CPU Switching, peralihan prosedur dalam mengolah 1 proses ke proses
lainnya.
D. OPERASI-OPERASI PADA PROSES
Terdapat delapan tahap operasi dalam proses :
1. Penciptaan proses (create a process).
2. Penghancuran/terminasi proses (destroy a process).
3. Penundaan proses (suspend a process).
4. Pelanjutan kembali proses (resume a process).
5. Mem-block proses.
6. Membangunkan proses.
7. Menjadwalkan proses.
8. Komunikasi Antar Proses.
E. PENJADWALAN PROSES
Ada tujuh kriteria penjadwalan proses pada sistem operasi, yaitu sebagai berikut :
1. CPU Utilization, Kita ingin menjaga CPU sesibuk mungkin. CPU utilization
akan mempunyai range dari 0 sampai 100 persen. Di sistem yang sebenarnya
ia mempunyai range dari 40 sampai 100 persen.
2. Throughput, Salah satu ukuran kerja adalah banyaknya proses yang
diselesaikan per satuan waktu. Jika kita mempunyai beberapa proses yang
sama dan memiliki beberapa algoritma penjadwalan yang berbeda, throughput
bisa menjadi salah satu kriteria penilaian, dimana algoritma yang
menyelesaikan proses terbanyak mungkin yang terbaik.
3. Turnaround Time, Dari sudut pandang proses tertentu, kriteria yang penting
adalah berapa lama untuk mengeksekusi proses tersebut. Memang, lama
pengeksekusian sebuah proses sangat tergantung dari hardware yang dipakai,
namun kontribusi algoritma penjadwalan tetap ada dalam lama waktu yang
dipakai untuk menyelesaikan sebuah proses. Misal kita memiliki sistem
komputer yang identik dan proses-proses yang identik pula, namun kita
memakai algoritma yang berbeda, algoritma yang mampu menyelesaikan
proses yang sama dengan waktu yang lebih singkat mungkin lebih baik dari
algoritma yang lain. Interval waktu yang diijinkan dengan waktu yang
dibutuhkan untuk menyelesaikan sebuah proses disebut turnaround time.
Turnaround time adalah jumlah periode untuk menunggu untuk dapat ke
memori, menunggu di ready queue, eksekusi CPU, dan melakukan operasi
M/K.
4. Waiting Time, Algoritma penjadwalan CPU tidak mempengaruhi waktu untuk
melaksanakan proses tersebut atau M/K, itu hanya mempengaruhi jumlah
waktu yang dibutuhkan proses di antrian ready. Waiting time adalah jumlah
waktu yang dibutuhkan proses di antrian ready.
5. Response Time, Di sistem yang interaktif, turnaround time mungkin bukan
waktu yang terbaik untuk kriteria. Sering sebuah proses dapat memproduksi
output di awal, dan dapat meneruskan hasil yang baru sementara hasil yang
sebelumnya telah diberikan ke pengguna. Ukuran lain adalah waktu dari
pengiriman permintaan sampai respon yang pertama diberikan. Ini disebut
response time, yaitu waktu untuk memulai memberikan respon, tetapi bukan
waktu yang dipakai output untuk respon tersebut.
6. Fairness, Suatu algoritma harus memperhatikan pengawasan nilai prioritas
dari suatu proses (menghindari terjadinya starvation CPU time).
7. Efisiensi, Rendahnya overhead dalam context switching, penghitungan
prioritas dan sebagainya menentukan apakah suatu algoritma efisien atau
tidak.
F. STATUS PROSES
Pada saat proses dieksekusi, akan terjadi perubahan status. Status proses
didefinisikan sebagai bagian dari aktivitas proses yang sedang berlangsung saat itu.
Tiap-tiap proses dapat memiliki salah satu status di bawah ini:
1. New, yaitu status yang dimiliki pada saat proses sedang dikerjakan/ dibuat.
Status New :
Masih dalam tahap inisiasi oleh prosedur
Meliputi alokasi memori utama untuk proses
Pengisian tabel proses
Pembuatan struktur data kendali untuk menyimpan informasi dan status
proses
Belum siap untuk di eksekusi
2. Running, yaitu status yang dimiliki pada saat proses dieksekusi, karena CPU
tidak sedang mengerjakan tugas yang lain. Proses menguasai prosesor
sepenuhnya. Proses running memiliki tiga kemungkinan yaitu:
Terminated, proses yang telah selesai
Ready, jika jatah waktu yang dialokasikan sudah habis
Blocked
3. Waiting, yaitu status yang dimiliki pada saat proses sedang menunggu
beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O
atau menerima sinyal)
Status Waiting :
Proses membutuhkan pembacaan data dari piranti I/O
Proses ini akan disisipkan pada antrian penjadwalan peranti I/O atau event
Jika I/O yang di tunggu sudah selesai maka proses akan kembali ke
antrian ready dan menunggu pemillihan oleh schedule
4. Ready, yaitu status yang dimiliki pada saat proses siap untuk dieksekusi oleh
prosesor.
Status Ready :
Proses yang telah berhasil di inisiasi
Antrian penjadwalan prosesor dengan cara menyisipkan proses baru ke
dalam antrian
Berisi referensi atau pointer ke struktur data kendali proses
Menandakan suatu proses siap berkompetisi untuk mendapatkan alokasi
prosesor
Scheduler adalah sistem operasi yang bertugas untuk memilih proses yang
berada dalam proses ready
5. Terminated, yaitu status yang dimiliki pada saat proses telah selesai dieksekusi
Proses tersebut sudah dihentikan eksekusinya bila:
Proses telah selesai secara normal
Batas waktu total sudah terlewati
Kekurangan ruang memori
Pelanggaran batas memori
Pelanggaran proteksi berkas
Kesalahan aritmatika
Waktu tunggu melebihi batas
Terjadi kegagalan I/O
Instruksi tidak benar
Terjadi pemakaian instruksi yang tidak di izinkan
G. IMPLEMENTASI SISTEM
Definisi implementasi adalah merepresentasikan hasil desain ke dalam pemograman
dan sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu
tujuan tertentu.
Implementasi Sistem merupakan kumpulan dari elemen-elemen yang telah didesain
kedalam bentuk pemograman untuk menghasilkan suatu tujuan yang dibuat berdasarkan
kebutuhan. Menurut Whitten, Bentley dan Barlow, implementasi sistem adalah suatu proses
untuk menempatkan sistem informasi baru ke dalam operasi.
Dapat disimpulkan bahwa implementasi sistem adalah sebuah sistem terintegrasi atau
sistem manusia-mesin, untuk menyediakan informasi untuk mendukung operasi, manajemen
dalam suatu organisasi.
Tujuan dari implementasi sistem adalah sebagai berikut:
Sebagian besar tahapan ini mengkaji berbagai kegiatan mekanis yang terlibat dalam
pengimplementasian sistem informasi dengan berhasil.
Rencana Implementasi
Tim Implementasi :
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
adalah komputer 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.
a) Karakteristik Server
b) Pasif
c) Menunggu request
d) Menerima request, memproses mereka dan mengirimkan balasan berupa servis
e) Karakteristik Client
f) Aktif
g) Mengirim request
h) 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
proses 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).
RPC
Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk
mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini
sebuah server harus menyediakan layanan remote procedure. Pendekatan yang dilakuan
adalah sebuah server membuka socket, lalu menunggu client yang meminta prosedur
yang disediakan oleh server. Bila client tidak tahu harus menghubungi port yang
mana, client bisa me- request kepada sebuah matchmaker pada sebuah RPC port yang
tetap. Matchmaker akan memberikan port apa yang digunakan oleh prosedur yang
diminta client.
Deadlock dan Starvation
1. Deadlock .
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses
yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses
itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses
tersebut. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang
membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu
waktu. Di kehidupan nyata, deadlock dapat digambarkan dalam gambar berikut.Pada
gambar diatas, deadlock dianalogikan sebagai dua antrian mobil yang akan
menyeberangi jembatan. Dalam kasus diatas, antrian di sebelah kiri menunggu antrian
kanan untuk mengosongkan jembatan (resource), begitu juga dengan antrian kanan.
Akhirnya tidak terjadi kemajuan dalam kerja dua antrian tersebut.Misal ada proses A
mempunyai resource X, proses B mempunyai resource Y. Kemudian kedua proses ini
dijalankan bersama, proses A memerlukan resource Y dan proses B
memerlukan resource X, tetapi kedua proses tidak akan memberikan resource yang
dimiliki sebelum proses dirinya sendiri selesai dilakukan. Sehingga akan terjadi
tunggu-menunggu.
2. Starvation .
Starvation adalah kondisi yang biasanya terjadi setelah deadlock. Proses yang
kekurangan resource (karena terjadi deadlock) tidak akan pernah mendapat resource yang
dibutuhkan sehingga mengalami starvation (kelaparan). Namun, starvation juga bisa terjadi
tanpa deadlock. Hal ini ketika terdapat kesalahan dalam sistem sehingga terjadi ketimpangan
dalam pembagian resouce. Satu proses selalu mendapat resource, sedangkan proses yang lain
tidak pernah mendapatkannya. Ilustrasi starvation tanpa deadlock di dunia nyata dapat dilihat
di bawah ini.Pada gambar diatas, pada antrian kanan
terjadi starvation karena resource (jembatan) selalu dipakai oleh antrian kiri, dan antrian
kanan tidak mendapatkan giliran.
I. RACE CONDITION
Race condition adalah suatu kondisi dimana dua atau lebih proses mengakses shared
memory/sumber daya pada saat yang bersamaan dan hasil akhir dari data tersebut tergantung
dari proses mana yang terakhir selesai dieksekusi sehingga hasil akhirnya terkadang tidak
sesuai dengan yang dikehendaki.
kondisi untuk mencegah race condition :
a. Tidak ada 2 proses yang memasuki critical section-nya secara bersamaan / simultan
b. Tidak ada asumsi yang dibuat yang berhubungan dengan kecepatan dan jumlah CPU
c. Tidak ada proses yang berjalan diluar critical section-nya yang dapat memblokir
proses-proses lain
d. Tidak ada proses yang menunggu selamanya untuk masuk ke critical section-nya.
Penyebab race condition
1. Race condition terjadi ketika
Banyak proses atau thread membaca &menulis item data
Hasil akhir dari aktifitas baca & tulis tersebut tergantung pada urutan eksekusi
dari proses yang terlibat.
2. Output tergantung pada siapa yang terakhir menyelesaikan race.
J. CRITICAL SECTION
Critical section adalah segmen kode yang mengakses data yang digunakan
proses secara bersama-sama yang dapat membawa proses itu ke bahaya race
condition.
Solusi dari critical secdition harus memenuhi 3 syarat, yaitu:
a. Mutual Exclusion
Jika suatu proses sedang menjalankan critical section-nya, maka proses-proses
lain tidak dapat menjalankan critical section mereka. Dengan kata lain, tidak
ada dua proses yang berada di critical section pada saat yang bersamaan.
b. Terjadi Kemajuan (Progress)
Jika tidak ada proses yang sedang menjalankan critical section-nya dan ada
proses-proses lain yang ingin masuk ke critical section, maka hanya proses-
proses yang yang sedang berada dalam entry section saja yang dapat
berkompetisi untuk mengerjakan critical section.
c. Ada batas waktu tunggu (bounded waiting)
Jika seandainya ada proses yang sedang menjalankan critical section, maka
proses lain memiliki waktu tunggu yang ada batasnya untuk menjalankan
critical section-nya, sehingga dapat dipastikan bahwa proses tersebut dapat
mengakses critical section-nya (tidak mengalami starvation: proses seolah-
olah berhenti, menunggu request akses ke critical section diperbolehkan).
K. SLEEP AND WAKE UP
Permasalahan dalam multithreading diselesaikan dengan sinkronisasi.
Sinkronisasi akan memutuskan thread mana yang mengeksekusi dahulu dan
menyimpan informasi eksekusi sehingga ketika tiba gilirannya lagi informasi tersebut
dapat dipanggil dan proses eksekusi dapat dilanjutkan. Salah satu metode sinkronisasi
yang paling sederhana adalah Sleep and Wake up
Sleep : System call yang menyebabkan pemanggilnya masuk ke state blocked
Wakeup: System call yang membangunkan proses yang sedang blocked
(disebutkan sebagai parameter)
Dalam tahap Sleep, system call membuat proses yang memanggil di blok
(blocked) dan dalam Wake up, system call yang membuat proses yang memanggil
menjasi ready. Analogi kasus yang terjadi dalam metode Sleep and Wake Up salah
satunya adalah kasus Producer-Consumer Problem (bounded buffer). Ada Produser
yang memproduksi data dan Konsumer yang mengambil data yang diproduksi oleh
Produser. Produser dan Konsumer berbagi buffer dengan ukuran yang tetap
Masalah akan timbul ketika produsen ingin menempatkan barang yang baru tetapi
buffer sudah penuh. Solusi untuk produsen adalah istirahat (sleep) dan akan
dibangunkan ketika konsumen telah mengambil satu atau lebih barang dari buffer.
Biasanya jika konsumen ingin mengambil barang dari buffer dan melihat bahwa
buffer sedang kosong, maka konsumen istirahat (sleep) sampai produsen meletakkan
barang pada buffer dan membangunkan (wake up) konsumen.
Beberapa proses share buffer dengan ukuran tetap
Jika buffer penuh produsen sleep
Jika buffer kosong konsumen sleep
Jika buffer mulai kosong produsen wake up
Jika buffer terisi konsumen wake up
L. SEMAPHORE
1. Pengertian Semaphore
Semaphore adalah salah satu teknik sinyal sederhana, dan mempakan konsep
penting dalam OS desaİn, dimana sebuah nilai integer digunâkan untuk
pensinyalan anlam proses. Hanya liga operasi yang mungkin dilakukan pada
semaphore, yang semuanya atom: inisialisasi, penurunan, dan penaikan.
Semaphore adalah teknik klasik untuk melindungi bagian penting dari kode
dari yang secara simultan dieksekusi oleh lebih dari satu proses. Semaphore
adalah generålisasi dari monitor. Sebuah monitor memungkinkan hanya satu
thread untuk mengunei objek sekaligus.
Semaphore adalah salah satu cara menangam critical section, Semaphore S
merupakan variabel bertipe integer yang diakses dengan 2 standar operasi atomik,
yaitu wait dan signal. Operasi-operasi ini diwakili dengan P (wait) dan V (signal),
sebagai berikut :
Misalkan ada 2 proses yang sedang berjalan secara konkure, yaitu PI dengan
pernyataan Sl dan P2 dengan perpyataan S2. andaikan kita mengharapkan S2 baru
akan dijalankan hanya setelah Sl selesai. Hal ini dapat dilakukan dengan
menggunakan bantuan semaphore synch (dengan nilai awal = O) yang akan di-
share oleh kedua proses.
Karena nilai awal untuk synch adalah nol, maka P2 akan mengeksekusi S2 hanya
setelah PI mengerjakan signal(synch) setelah Sl
Salah satu kerugian dari penggunaan semaphore diatas adalah adanya busy
waiting. Apabila suatu proses menempati critical, dan ada proses lain ingin masuk
critical section, maka kan terjadi iterasi secara terus-menerus pada entry-section.
Hal inl akan menimbulkan masalah pada sistem yang menggunakan konsep
multiprogramming.
Untuk menghindari busy waiting, dilakukan modifikasi pada operasi wait dan
signal. Jika suatu proses sedang mengeksekusi operasi wait, maka nilai
semaphore menjadi tidak positif. Pada saat ini proses akan memblok dirinya
sendiri (blok) dan ditempatkan pada waiting queue.
Beberapa Prinsip Semaphore :
1. Dua proses dapat saling berkaitan atau menentukan proses yang Iain
dengan memanfaatkan sinyal – sinyal
2. Sebuah proses akan dihentikan oleh proses yang lain, ketika mendapatkan
sinyal tertentu. Suatu proses akan menunggu diproses setelah nilai integer
menjadi O, selanjutnya sinyal akan dilakukan increment dengan
penambahan I
3. Semaphore merupakan variabel beltipe Integer yang diakses oleh 2 operasi
atomik standar, yaitu wait dan signal,
4. Terdapat dua operasi terhadap semaphore yaitu Down dan Up. Nama
aslinya : P dan V
2. Macam - macam Semaphore
Ada 2 macam semafor yang cukup umum, yaitu:
Binary semaphore
Counting semaphore
Binary semaphore adalah semafor yang bernilai hanya I dan O. Sedangkan
Counting semaphore adalah semafor yang dapat bernilai 1 dan O dan nilai integer
yang lainnya.
Banyak sistem operasi yang hanya mengimplementasi binary semaphore
sebagai primitif, sedangkan counting semaphore dibuat dengan memakai primitif ini.
Untuk lebih rinci mengenai cara pembuatan counting semaphore dapat dilihat pada
bagian berikutnya.
Perlu diketahui di sini bahwa, ada beberapa jenis dari counting semaphore.
Salah satu jenisnya adalah semafor yang tidak mencapai nilai negatif (seperti yang
dicontohkan pada bagian sebelumnya). Jenis yang lain adalah semaphore yang dapat
mencapai nilai negatif.
Pembuatan counting semaphore banyak dilakukan para programmer untuk
memenuhi alat sinkronisasi yang sesuai dengannya. Seperti yang telah dibahas di
atas, bahwa counting semaphore ada beberapa macam. Pada bagian ini, akan dibahas
counting semaphore yang memperbolehkan harga negatif.
3. Fungsi Semaphore
Penyelesaian masalah critical section adalah suatu bagian yang berisi sejumlah
variabel yang akan dishare (dipengaruhi dan mempengaruhi ) proses yang lain.
Semafor menyelesaikan masalah sinkronisasi antar proses, kadangkala kita
ingin membuat suatu proses untuk menunggu proses yang lain untuk menjalankan
suatu perintah Isu yang ada di sini adalah bagaimana caranya suatu proses
mengetahui bahwa proses yang lain telah menyelesaikan instruksi tertentu.
4. Implementasi Semaphore
a) Windows — Fungsi yg dipakai adalah CreateSemaphore — Biasanya digunakan
untuk membatasi jumlah thread yang memakai suatu resource secara bersamaan.
b) Java — Semafor di JavaTM bersifat transparan Oleh programmer.
c) JavaTM menyembunyikan Semafor dibalik konsep monitor.
d) Reserved Word yang dipakai JavaTM adalah synchronized.
5. Kelemahan Semaphore
a) Termasuk Low Level
b) Kesulitan dalam pemeliharaannya, karena tersebar dalam seluruh program.
c) Menghapus wait dapat terjadi non-mutual exclusion.
d) Menghapus signal dapat terjadi deadlock
e) Error yang terjadi sulit untuk dideteksi
f) Lebih baik menggunakan high level
KESIMPULAN
Semaphore adalah mekanisme efektif yang digunakan baik pada sistem uniprosesor maupun
sistem multiprosesor. Semaphore pada dasarnya adalah counter yang diasosiasikan dengan
struktur data.
DAFTAR PUSTAKA
[1] Aliansyah. 2013. Model Status Proses pada Sistem Operasi. Link:
http://aliansyah.blog.upi.edu/2013/09/29/model-status-proses-pada-sistem-operasi/,
Diakses pada 15 Maret 2020.
[3] Daswan, Lestari. 2014. Konsep Manajemen Proses di Sistem Operasi. Link:
https://jokosuselo.wordpress.com/sistem-operasi/tugas-individu/tugas-2-konsep-
manajemen-proses-di-sistem-operasi/, Diakses pada 15 Maret 2020.
[4] Efriwan, Mass Agung Andrey. 2015. Resume Manajemen Proses. Link:
http://massagung13.blog.upi.edu/2015/03/17/resume-manajemen-proses/, Diakses pada
15 Maret 2020.
[8] Infomugi.com. 2013. Penjelasan Solusi Critical Section Harus Memenuhi 3 Syarat. Link:
http://www.infomugi.com/2013/07/penjelasan-solusi-critical-section.html?m=1, Diakses
pada 15 Maret 2020.
[9] Iryawan, Dede. 2018. Makalah Peranan Semaphore Sistem Operasi - Universitas
Widyatama. Link: https://www.slideshare.net/DEDEIRYAWAN/makalah-peranan-
semaphore-sistem-operasi-universitas-widyatama, Diakses pada 15 Maret 2020.