Anda di halaman 1dari 23

SISTEM INFORMASI

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

Assalamu’alaikum warahmatullahi wabarakatuh

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.

Wassalamu’alaikum warahmatullahi wabarakatuh.

Bekasi, 15 Maret 2020

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:

 Membuat desain sistem selama melakukan penelitian dan analisa.


 Menguji dan mendokumentasikan prosedur dan program yang diperlukan.
 Menyelesaikan desain sistem yang telah disetujui.
 Memperhitungkan sistem yang telah dibuat sesuai kebutuhan pemakai

4 Tahap Implementasi Sistem :

1. Membuat dan menguji basis data dan jaringan


Dalam banyak hal, penerapan sistem yang baru atau perbaikan sistem dibuat pada basis
data dan jaringan yang telah ada. Jika penerapan sistem yang baru memerlukan basis data
dan jaringan yang baru atau dimodifikasi maka sistem yang baru ini biasanya harus
diimplementasikan sebelum pemasangan program komputer.
2. Membuat dan menguji program
Pada tahap ini bertujuan untuk mengembangkan rencana yang lebih rinci dalam
pengembangan dan pengujian program komputer yang baru atau program perbaikan
komputer yang lama serta mengembangkan program komputer yang secara akurat
memenuhi kebutuhan pemrosesan bisnis.
3. Memasang dan menguji sistem baru
Pada tahap ini, software package dipasang dan diuji. Tahap ini dilakukan untuk
menyakinkan bahwa kebutuhan integrasi sistem baru terpenuhi. Rencana konversi juga
dikembangkan pada tahap ini agar pengiriman sistem baru kedalam operasi dapat berjalan
dengan sukses.
4. Mengirim sistem baru ke dalam operasi
Tahap terakhir ini adalah mengirim sistem baru ke dalam operasi. Tujuan tahap ini adalah
 Mengubah secara perlahan – lahan sistem lama menjadi sistem baru sehingga perlu
dilakukan pemasangan basis data yang akan digunakan pada sistem baru,
 Menyediakan pelatihan dan dokumentasi untuk individu yang akan menggunakan
sistem baru tersebut,
 Evaluasi proyek dan sistem.

Sebagian besar tahapan ini mengkaji berbagai kegiatan mekanis yang terlibat dalam
pengimplementasian sistem informasi dengan berhasil.
 Rencana Implementasi

Formulasi rinci dan representasi grafik mengenai cara pencapaian implementasi


sistem yang akan dilaksanakan (Tergantung pada Kompleksitas proyek)

Tim Implementasi :

1) Profesional sistem yang merancang system


2) Para manajer dan beberapa staff
3) Perwakilan Vendor
4) Pemakai Primer
5) Pengcode / Programmer
6) Teknisi

 Bagian Pokok Implementasi Diperlukan


1) Perencanaan Fisik
Tata letak (layout) dipersiapkan untuk menunjang perangkat lunak untuk pengelolaan
data pelatihan adalah ruangan yang mampu untuk melancarkan sistem komputerisasi
para admin dan user di dalam poliklinik. Poliklinik hanya membutuhkan sekitar 1 atau
2 server komputer yang akan dipakai oleh admin, ditempatkan sedekat mungkin
dengan ruang pendaftaran (dekat pintu masuk), agar dapat memudahkan para pasien
dalam hal pendaftaran.
2) Fasilitas
Fasilitas yang diperlukan dalam untuk menunjang sistem ini adalah
 Komputer Server, digunakan untuk menyimpan dan memasukkan data.
 Printer, digunakan untuk mencetak kartu para pasien
 AC, selain berfungsi untuk menyamankan para user juga digunakan untuk
mendinginkan komputer server agar tidak cepat panas.
 Power Listrik
 Pencahayaan (Lampu)

H. KOMUNIKASI ANTAR PROSES


Interprocess communication (IC) atau komunikasi antar proses merupakan inti dari sistem
terdistribusi. IC adalah komunikasi antar proses-proses pada sistem-sistem komputer yang
berbeda. dapat terjadi jika sistem-sistem tersebut terhubung dalam suatu jaringan.
Komunikasi antar komputer diatur oleh aturan yang disebut protokol komunikasi.
 Sistem Berbagi Memori
Sistem Berbagi Memori atau yang disebut juga sebagai Shared Memory System
merupakan salah satu cara komunikasi antar proses dengan cara mengalokasikan suatu
alamat memori untuk dipakai berkomunikasi antar proses. Alamat dan besar alokasi
memori yang digunakan biasanya ditentukan oleh pembuat program. Pada metode ini,
sistem akan mengatur proses mana yang akan memakai memori pada waktu tertentu
sehingga pekerjaan dapat dilakukan secara efektif.
 Sistem Berkirim Pesan
Sistem berkirim pesan adalah proses komunikasi antar bagian sistem untuk membagi
variabel yang dibutuhkan. Proses ini menyediakan dua operasi yaitu mengirim pesan dan
menerima pesan. Ketika dua bagian sistem ingin berkomunikasi satu sama lain, yang
harus dilakukan pertama kali adalah membuat sebuah link komunikasi antara keduanya.
Setelah itu, kedua bagian itu dapat saling bertukar pesan melalui link komunikasi
tersebut.
Sistem berkirim pesan sangat penting dalam sistem operasi. Karena 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 cara berkomunikasi, yaitu:
1) Komunikasi langsung
Dalam komunikasi langsung, setiap proses yang ingin berkirim pesan harus
mengetahui secara jelas dengan siapa mereka berkirim pesan. Hal ini dapat mencegah
pesan salah terkirim ke proses yang lain. Karakteristiknya antara lain:
• Link dapat otomatis dibuat
• Sebuah link berhubungan dengan tepat satu proses komunikasi berpasangan
• Diantara pasangan itu terdapat tepat satu link
• Link tersebut biasanya merupakan link komunikasi dua arah
2) Komunikasi tidak langsung
Berbeda dengan komunikasi langsung, jenis komunikasi ini menggunakan sejenis
kotak surat atau port yang mempunyai ID unik untuk menerima pesan. Proses dapat
berhubungan satu sama lain jika mereka membagi port mereka. Karakteristik
komunikasi ini antara lain:
• Link hanya terbentuk jika beberapa proses membagi kotak surat mereka
• Sebuah link dapat terhubung dengan banyak proses
• Setiap pasang proses dapat membagi beberapa link komunikasi
• Link yang ada dapat merupakan link terarah ataupun link yang tidak terarah

 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.
Ketika dalam keadaan sinkron, terjadi dua kejadian:
1) Blocking send. Pemblokiran pengirim sampai pesan sebelumnya diterima.
2) Blocking receive. Pemblokiran penerima sampai terdapat pesan yang 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
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.

RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan


paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan
banyak remote procedure. RPC menggunakan socket untuk berkomunikasi dengan proses
lainnya. Pada sistem seperti SUN, RPC secara default sudah ter- install kedalam
sistemnya, biasanya RPC ini digunakan untuk administrasi sistem. Sehingga seorang
administrator jaringan dapat mengakses sistemnya dan mengelola sistemnya dari mana
saja, selama sistemnya terhubung ke jaringan.

 Deadlock dan Starvation

Gambar 17.1. Dead Lock

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.

Gambar 17.2. Starvation

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

a. Kamus Istilah Program


Semaphore adalah suatu isyarat yang digunakan untuk menentukan akses
untuk berbagi sumber daya sistem.
b. Wikipedia Indonesia
Semaphore adalah sebuah struktur data komputer yang digunakan untuk
sinkronisasi proses, yaitu untuk memecahkan masalah di mana lebih dari satu
proses atau thread dijalankan secara bersamaan dan harus diatur urutan kerjanya.
c. I Made Wiryana
Semaphore adalah suatu mekanisme sikronisasi untuk menjaga task yang
berjalan secara konkuren untuk saling mengganggu ketika sedang mengakses
sumber daya yang sama dan memberi peringatan ketika terjadi suatu error.
Semaphore mempunyai dua sifat, yaitu:
1. Semaphore dapat diinisialisasi dengan nilaİ non-negatif.
2. Terdapat dua operasİ terhadap semaphore, yaİtu Down dan Up, Usulan asli
yang disampaikan Djikstra adalah operasi P dan V.

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.

Operasi pengurangan dapat mengakibatkan terhalangnya proses, dan kenaikan


dari pengoperasian yang sedang berlangsung dapat mengakibatkan terblokirnya
şuanı proses. Hal mi juga dikenal sebagai sebuah perhitungan semaphore atau
semaphore umum,

Semaphore adalah bendera digunakan untuk memeriksa apakah sumber daya


saat im sedang digunakan öleh thread atau proses, Misalnya, jika suatu proses
ingin menggunakan printer, terlebih dahulu perlu memastikan printer tersedia
dengan memeriksa untuk melihat apakah semaphore telah ditetapkan. jika sudah
diatur, maka perlu menunggu untuk proses yang saat ini telah selesai. Namun,
jika printer bebas, proses ini akan menetapkan semaphore dan mulai
menggunakan printer, memblokir akses ke semua proses lainnya sampai selesai,

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 :

Wait(S) : while S 0 do no)op;

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.

- Untuk Proses PI adalah Signal(synch)

- Untuk proses P2 adalah Wait(Synch);

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.

[2] Arifudin, Riza. 2011. SEMAPHORE. Link:


https://rizaarifudin.wordpress.com/2011/02/15/semaphore/, 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.

[5] Frf. 2019. Implementasi Sistem. Link:


http://mangihot.blogspot.com/2016/12/implementasi-sistem.html?m=1 , Diakses pada 15
Maret 2020.

[6] FTP Gunadarma.ac.id. Bab 17: Konsep Interaksi. Link:


http://ftp.gunadarma.ac.id/linux/docs/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-
4.X-1/ch17.html , Diakses pada 15 Maret 2020.

[7] FTP Gunadarma.ac.id. Bab 18. Sinkronisasi. Link:


http://ftp.gunadarma.ac.id/linux/docs/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-
4.X-1/ch18s03.html, 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.

[10] Muliawan, Daniel. 2015. Sistem Operasi Pertemuan 6. Link:


http://danielmuliawan.blog.binusian.org/2015/11/04/sistem-operasi-pertemuan-6/ ,
Diakses pada 15 Maret 2020.

[11] Pengertiansemaphore.com. 2014. Konsep semaphore pada sistem operasi. Link:


http://pengertiansemaphore.blogspot.com/, Diakses pada 15 Maret 2020.
[12] Study Lib. Interprocess Communication atau Komunikasi Antar Proses. Link:
https://studylibid.com/doc/464018/interprocess-communication-atau-komunikasi-antar-
proses , Diakses pada 15 Maret 2020.
[13] Tedja, Agus. 2018. Implementasi Sistem. Link: https://slideplayer.info/slide/12295162/,
Diakses pada 15 Maret 2020.

[14] Wikipedia.org. 2019. Semafor (pemrograman). Link:


https://id.wikipedia.org/wiki/Semafor_(pemrograman), Diakses pada 15 Maret 2020.

[15] Yasin. 2009. Sleep and Wake up. Link:


https://xceaster.files.wordpress.com/2009/05/sleep-and-wake-up.pdf , Diakses pada 15
Maret 2020.

Anda mungkin juga menyukai