Anda di halaman 1dari 14

Nama : I Gede Alex Bramartha

NIM : 2105551024
Prodi/Fakultas : Teknologi Informasi/Teknik
Mata Kuliah : Pengantar Sistem dan Teknologi Informasi (A)
Dosen : Ni Made Ika Marini Mandenni, ST., M.Kom.

PENJADWALAN PROSES & DEADLOCK

1. Penjadwalan Proses.
a. Pengertian dari Penjadwalan Proses.
Penjadwalan proses merupakan sekumpulan kebijaksanaan dan
mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang
dilakukan sistem komputer. Penjadwalan berfungsi untuk memutuskan
proses apa yang harus berjalan, kapan, dan selama berapa lama proses itu
harus berjalan. Menurut Baker (1974) penjadwalan adalah proses untuk
melakukan tugas dengan menggunakan sumber-sumber yang tersedia pada
waktu yang telah ditetapkan. Menurut Stevenson (1999) penjadwalan
adalah membangun penentuan waktu penggunaan dari peralatan, fasilitas,
dan aktivitas manusia dalam suatu organisasi.
Sedangkan menurut Pinedo (2002) penjadwalan adalah proses
pengambilan keputusan yang memegang peranan yang penting dalam
manufaktur dan sistem produksi. Sehingga bisa disimpulkan penjadwalan
mencakup pengurutan aktivitas, pengalokasian aktivitas pada fasilitas, dan
pemetaan aktivitas menurut urutan waktu. Tujuan utama dari dilakukannya
penjadwalan adalah agar request dapat terselesaikan pada waktu yang
tepat dan mengurangi keterlambatan.

b. Sasaran Utama dari Penjadwalan Proses.


Sasaran utama dari penjadwalan proses adalah untuk
mengoptimalisasi kinerja sebuah sistem komputer menurut dari kriteria
tertentu. Berikut adalah kriteria untuk mengukur dan optimalisasi kinerja
penjadwalan, yaitu:
- Adil (fairness)
Perlakuan yang sama diberikan ke setiap proses, ini berarti
proses-proses tersebut mendapat waktu layanan pemrosesan yang
sama dan tidak ada proses yang tidak mendapatkan layanan
pemroses sehingga mengalami startvation. Startvation adalah
kondisi bahwa proses tidak pernah berjalan karena tidak
dijadwalkan untuk berjalan. Ini adalah sasaran pertama dari
penjadwalan yaitu menjamin setiap proses mendapat pelayanan
dari pemroses secara adil.

- Efisiensi
Efisiensi pemroses ini dihitung dengan perbandingan (rasio)
waktu sibuk pemroses dengan total waktu operasi sistem komputer
secara keseluruhan. Menjaga agar pemroses tetap dalam keadaan
sibuk sehingga efisiensi sistem komputer mencapai nilai
maksimum adalah salah satu dari sasaran penjadwalan.

- Waktu Tanggap (response time)


Waktu tanggap memiliki beberapa sistem, yaitu:
• Sistem interaktif memiliki arti, yaitu waktu yang
dihabiskan dari saat karakter terakhir sebuah
perintah dimasukkan oleh program atau transaksi
sampai hasil pertama muncul di perangkat output
seperti layar. Waktu tanggap untuk sistem
interaktif biasa disebut terminal response time.
• Sistem waktu nyata (real time). Pada sistem waktu
nyata, waktu tanggap didefinisikan sebagai waktu
dari saat kemunculan suatu kejadian (internal atau
eksternal) sampai instruksi pertama rutin layanan
terhadap kejadian dieksekusi. Waktu untuk sistem
waktu nyata biasa disebut event response time.
Sasaran penjadwalan adalah meminimalkan waktu
tanggap sehingga menghasilkan sistem yang
responsif.
- Turn arround Time.
Turn around time adalah waktu yang dihabiskan dari saat
proses mulai masuk ke sistem sampai proses itu diselesaikan oleh
sistem. Sasaran penjadwalan adalah meminimalkan turn arround
time. Time yang dimaksud adalah waktu yang dihabiskan proses
berada di sistem, diekspresikan sebagai penjumlahan waktu
eksekusi (waktu layanan proses) dan waktu menunggu dari proses
itu, yaitu:
Turn arround time = waktu eksekusi + waktu menunggu

- Troughput
Troughput adalah jumlah kerja yang dapat diselsesaikan
selama satu selang unit waktu. Cara untuk mengekspresikan
throughput adalah dengan jumlah proses/job pemakai yang dapat
dieksekusi dalam satu unit/interval waktu tertentu.
Sasaran penjadwalan adalah memaksimalkan jumlah proses
yang dilayani per satu interval waktu. Lebih tinggi angka througput
maka lebih banya kerja yang dilakukan sistem. Kriteria tersebut
saling bergantung dan dapat saling bertentangan sehingga tidak
dimungkinkan optimasi semua kriteria secara simultan.

c. Tipe-tipe dari Penjadwalan Proses.


Terdapat 3 tipe penjadwalan yang berada secara bersama-sama
pada sistem operasi yang kompleks, yaitu :

- Penjadwal Jangka Pendek (Short-term Scheduller).


Penjadwalan jangka pendek bertugas untuk menjadwalkan
alokasi pemroses di antara proses-proses ready yang berada di
memori utama. Sasaran utama penjadwal jangka pendek adalah
memaksimalkan kinerja sebuah sistem untuk memenuhi satu
kumpulan kriteria yang diharapkan. Penjadwalan ini dijalankan
setiap terjadi pengalihan proses untuk memilih proses berikutnya
yang harus dijalankan.
- Penjadwal Jangka Menengah (Medium-term Scheduller).
Proses-proses yang tertunda tidak dapat membuat suatu
kemajuan untuk menuju selesai sampai kondisi yang
menyebabkannya hilang. Agar ruang memori dapat bermanfaat
maka proses dipindah dari memori utama ke memori sekunder
sehingga tersedia ruang yang lebih besar untuk proses yang lain.
Aktivitas pemindahan proses yang tertunda dari memori utama ke
memori sekunder disebut swapping. Penjadwal jangka menengah
bertugas menangani proses swapping dan mengendalikan transisi
dari suspended ke ready (dari state suspend ke ready dari proses
yang mengalami swapping).

- Penjadwal Jangka Panjang (Long-term Scheduller).


Penjadwal jangka panjang bekerja terhadap antrian batch dan
memilih batch berikutnya yang harus dieksekusi sistem. Batch
biasanya berupa proses-proses dengan penggunaan sumber daya
yang intensif (yaitu waktu pemroses, memori, perangkat
masukan/keluaran), program ini mempunyai prioritas yang rendah,
dan biasa digunakan sebagai pengisi (agar pemroses sibuk) selama
periode aktivitas proses-proses interaktif rendah. Sasaran utama
penjadwal jangka panjang adalah memberi keseimbangan proses-
proses campuran.

d. Strategi Penjadwalan.
Terdapat dua strategi penjadwalan, yaitu :

- Penjadwalan non Preemptive (run-to-completion).


• Proses yang sedang berjalan tidak dapat disela.
• Sekali proses berada di status running (sedang berjalan),
maka proses tersebut akan dieksekusi terus sampai proses
berhenti.
• CPU tidak dapat diambil alih oleh proses yang lain.
- Penjadwalan Preemptive.
• Proses yang sedang berjalan dapat diambil alih proses lain
(disela) yang mempunyai prioritas lebih tinggi.
• Proses yang disela berubah menjadi state Ready.
• CPU dapat diambil alih oleh proses yang lain.

e. Algoritma Penjadwalan.
Terdapat banyak algoritma penjadwalan, baik algoritma
penjadwalan non preemptive maupun penjadwalan preemptive. Algoritma-
algoritma yang menerapkan strategi nonpreemptive, diantaranya:

- FIFO (First-in, First-out) atau FCFS (First-come, First-serve).


Prinsip dari algoritma ini adalah seperti prinsip antrian
(antrian tak berprioritas), halaman yang masuk lebih dulu maka
akan keluar lebih dulu juga. Algoritma ini menggunakan struktur
data stack. Apabila tidak ada frame kosong saat terjadi page fault,
maka korban yang dipilih adalah frame yang berada di stack paling
bawah, yaitu halaman yang berada paling lama berada di memori.
Dengan hanya informasi mengenai lama berada di memori, maka
algoritma ini dapat memindahkan page yang sering digunakan.

- SJF (Shortest Job First).


Algoritma Shortest Job First (SJF) atau algoritma Proses
Terpendek Dipertamakan (PTD) adalah salah satu algoritma
penjadwalan dimana proses yang akan didahulukan pengerjaannya
adalah proses yang memiliki waktu proses terpendek. Hal ini
mengakibatkan setiap proses dalam antrian memiliki waktu tunggu
yang pendek.

- HRN (Highest – Ratio Next).


Highest Ratio Next merupakan strategi penjadwalan dengan
prioritas proses tidak hanya berdasarkan fungsi waktu layanan
tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat
jatah pemroses, proses berjalan sampai selesai. Prioritas dinamis
HRN dihitung berdasarkan rumus:
Prioritas = (waktu tunggu + waktu layanan ) / waktu layanan

Karena waktu layanan muncul sebagai pembagi, maka job


lebih pendek berprioritas lebih baik, karena waktu tunggu sebagai
pembilang maka proses yang telah menunggu lebih lama juga
mempunyai kesempatan lebih bagus. Disebut HRN, karena waktu
tunggu ditambah waktu layanan adalah waktu tanggap, yang berarti
waktu tanggap tertinggi yang harus dilayani.

Selanjutnya, algoritma-algoritma yang menerapkan strategi


preemptive, diantaranya:

- RR (Round Robin).
Dalam algoritma ini, setiap proses mendapatkan waktu CPU
yang disebut dengan quantum untuk membatasi waktu proses.
Setelah waktu habis, proses ditunda dan ditambahkan pada ready
queue. Permasalahan yang sering muncul dalam penggunaan
quantum adalah menentukan nilainya, karena jika nilainya terlalu
besar dapat menyebabkan cara kerja algoritma akan sama dengan
algoritma penjadwalan First In First Out (FIFO), dan jika quantum
terlalu kecil dapat menyebabkan banyak peralihan proses sehingga
menurunkan efisiensi proses.
Selain CPU bound, proses I/O bound juga berpengaruh
karena jumlahnya yang relatif banyak. Algoritma Round Robin
dapat menyelesaikan masalah penentuan quantum itu, karena pada
algoritma ini dimana setiap proses memiliki quantum masing-
masing yang dihitung dengan rumus perhitungan intelligent time
slicing berdasarkan prioritas dan service time sehingga
diperkirakan dapat meminimalkan nilai response time, context
switch, dan average NTAT (Normalized Turnaround Time) untuk
proses non-real time.

- SRF (Shortest Remaining First).


Penjadwalan SRF merupakan perbaikan dari SJF, SJF
merupakan penjadwalan nonpreemptive sedang SRF adalah
preemptive yang dapat digunakan untuk sistem timesharing. Pada
SRF, proses dengan sisa waktu jalan diestimasi terendah
dijalankan, termasuk proses-proses yang baru tiba. Perbedaan SRF
dengan SJF adalah pada SJF, begitu proses dieksekusi, proses
dijalankan sampai selesai, sedangkan pada SRF proses yang sedang
berjalan (Running) dapat diambil alih oleh proses baru dengan sisa
waktu jalan yang diestimasi lebih rendah.
Secara teoretis, SRF memberi waktu tunggu minimum tapi
karena adanya overhead peralihan, maka pada situasi tertentu SJF
bisa memberi kinerja yang lebih baik dibanding SRF.

- PS (Priority Schedulling).
Priority Scheduling merupakan algoritma penjadwalan yang
mendahulukan proses yang memiliki prioritas tertinggi. Setiap
proses memiliki prioritasnya masing-masing. Prioritas tersebut
dapat ditentukan melalui beberapa karakteristik antara lain:
• Time limit.
• Memory requirement.
• Akses file.
• Perbandingan antara I/O Burst dengan CPU Burst.
• Tingkat kepentingan proses.
Priority scheduling juga dapat dijalankan secara preemptive
maupun nonpreemptive. Pada preemptive, jika ada suatu proses
yang baru datang memiliki prioritas yang lebih tinggi daripada
proses yang sedang dijalankan, maka proses yang sedang berjalan
tersebut dihentikan, lalu CPU dialihkan untuk proses yang baru
datang tersebut.

2. Deadlock
a. Pengertian dari 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 dalam arti
sebenarnya adalah kebuntuan. Kebuntuan yang dimaksud dalam sistem
operasi adalah kebuntuan proses. Deadlock adalah situasi di mana dua
program komputer yang berbagi sumber daya yang sama secara efektif
sehingga mencegah satu sama lain mengakses sumber daya yang
mengakibatkan kedua program berhenti berfungsi. Jadi Deadlock ialah
suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada
komunikasi lagi antar proses.

b. Penyebab Terjadinya Deadlock.


Mungkin kita sekarang mulai bisa membayangkan apa itu
Deadlock. Sebenarnya Deadlock itu akan terjadi apabila syarat-syarat dari
Deadlock tersebut terpenuhi. Adapun 4 kondisi penyebab Deadlock adalah
sebagai berikut:

- Mutual Exclusion.
Hanya ada satu proses yang boleh memakai sumber daya, dan
proses lain yang ingin memakai sumber daya tersebut harus
menunggu hingga sumber daya tadi dilepaskan atau tidak ada
proses yang memakai sumber daya tersebut.

- 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, hal ini
dapat menyebabkan kelaparan sumber daya sebab sebuah proses
tidak mendapat sumber daya dalam waktu yang lama.

- No Preemption.
Sumber daya yang ada pada sebuah proses tidak boleh
diambil begitu saja oleh proses lainnya. Untuk mendapatkan
sumber daya tersebut, maka harus dilepaskan terlebih dahulu oleh
proses yang memegangnya, selain itu seluruh proses menunggu dan
mempersilahkan hanya proses yang memiliki sumber daya yang
boleh berjalan.
- Circular Wait.
Kondisi seperti rantai, yaitu sebuah proses membutuhkan
sumber daya yang dipegang proses berikutnya.

c. Penanganan Deadlock.
Terdapat beberapa cara dalam menangani Deadlock, umumnya ada
empat/4 cara untuk menanganinya, yaitu:
- Mengabaikan Masalah.
Penghindaran Deadlock membutuhkan informasi tentang
sumber daya yang mana yang akan suatu proses meminta dan
berapa lama akan digunakan. Dengan informasi tersebut dapat
diputuskan apakah suatu proses harus menunggu atau tidak. Hal ini
disebabkan oleh keberadaan sumber daya, apakah ia sedang
digunakan oleh proses lain atau tidak.
Metode ini lebih dikenal dengan Algoritma Ostrich. Dalam
algoritma ini dikatakan bahwa untuk menghadapi Deadlock ialah
dengan berpura-pura bahwa tidak ada masalah apa pun. Hal ini
seakan-akan melakukan suatu hal yang fatal, tetapi sistem operasi
Unix menanggulangi Deadlock dengan cara ini dengan tidak
mendeteksi Deadlock dan membiarkannya secara otomatis
mematikan program sehingga seakan-akan tidak terjadi apa pun.
Jadi jika terjadi Deadlock, maka tabel akan penuh, sehingga proses
yang menjalankan proses melalui operator harus menunggu pada
waktu tertentu dan mencoba lagi.

- Mendeteksi dan Memperbaiki.


Caranya ialah dengan mendeteksi jika terjadi Deadlock pada
suatu proses maka dideteksi sistem mana yang terlibat di dalamnya.
Setelah diketahui sistem mana saja yang terlibat maka diadakan
proses untuk memperbaiki dan menjadikan sistem berjalan
kembali. Jika sebuah sistem tidak memastikan Deadlock akan
terjadi dan juga tidak didukung dengan pendeteksian Deadlock
serta pencegahannya, maka kita akan sampai pada kondisi
Deadlock yang dapat berpengaruh terhadap performance sistem
karena sumber daya tidak dapat digunakan oleh proses sehingga
proses-proses yang lain juga terganggu. Akhirnya sistem akan
berhenti dan harus direstart.
Hal-hal yang terjadi dalam mendeteksi adanya Deadlock adalah:
• Permintaan sumber daya dikabulkan selama memungkinkan.
• Sistem operasi memeriksa adakah kondisi circular wait secara
periodik.
• Pemeriksaan adanya Deadlock dapat dilakukan setiap ada
sumber daya yang hendak digunakan oleh sebuah proses.
• Memeriksa dengan algoritma tertentu.

- Penghindaran.
Pendekatan metode ini adalah dengan hanya memberi
kesempatan ke permintaan sumber daya yang tidak mungkin akan
menyebabkan Deadlock. Metode ini memeriksa dampak pemberian
akses pada suatu proses, jika pemberian akses tidak mungkin
menuju kepada Deadlock, maka sumber daya akan diberikan pada
proses yang meminta. Jika tidak aman, proses yang meminta akan
di-suspend sampai suatu waktu permintaannya aman untuk
diberikan. Kondisi ini terjadi ketika setelah sumber daya yang
sebelumnya dipegang oleh proses lain telah dilepaskan.
Kondisi aman yang dimaksudkan selanjutnya disebut sebagai
safe-state, sedangkan keadaan yang tidak memungkinkan untuk
diberikan sumber daya yang diminta disebut unsafe-state.

• Kondisi Aman (Safe State).


Suatu keadaan dapat dinyatakan sebagai safe state jika
tidak terjadi Deadlock dan terdapat cara untuk memenuhi
semua permintaan sumber daya yang ditunda tanpa
menghasilkan Deadlock. Dengan cara mengikuti urutan
tertentu.
• Kondisi Tak Aman (Unsafe State).
Suatu state dinyatakan sebagai state tak selamat (unsafe
state) jika tidak terdapat cara untuk memenuhi semua
permintaaan yang saat ini ditunda dengan menjalankan
proses-proses dengan suatu urutan.

- Pencegahan.
Metode Pencegahan dianggap sebagai solusi yang bersih
dipandang dari sudut tercegahnya Deadlock. Tetapi pencegahan
akan mengakibatkan kinerja utilisasi sumber daya yang buruk.
Metode pencegahan menggunakan pendekatan dengan cara
meniadakan empat syarat yang dapat menyebabkan Deadlock
terjadi pada saat eksekusi.
Syarat pertama yang akan dapat ditiadakan adalah Mutual
Exclusion, jika tidak ada sumber daya yang secara khusus
diperuntukkan bagi suatu proses maka tidak akan pernah terjadi
Deadlock. Namun jika membiarkan ada dua atau lebih proses
mengakses sebuah sumber daya yang sama akan menyebabkan
chaos. Langkah yang digunakan adalah dengan spooling sumber
daya, yaitu dengan mengantrikan job-job pada antrian dan akan
dilayani satu-satu.
Cara kedua dengan meniadakan kondisi hold and wait. Jika
suatu proses yang sedang menggunakan sumber daya dapat dicegah
agar tidak dapat menunggu sumber daya yang lain, maka Deadlock
dapat dicegah. Langkah yang digunakan adalah dengan membuat
proses agar meminta sumber daya yang mereka butuhkan pada
awal proses sehingga dapat dialokasikan sumber daya yang
dibutuhkan. Namun jika terdapat sumber daya yang sedang
terpakai maka proses tersebut tidak dapat memulai prosesnya.
Syarat ketiga yaitu meniadakan non preemptive, dengan
meniadakan syarat ketiga maka suatu proses dapat dihentikan
ditengah jalan. Hal ini tidak dimungkinkan karena hasil dari suatu
proses yang dihentikan menjadi tidak baik.
Cara terakhir adalah dengan meniadakan syarat keempat
circular wait. Terdapat dua pendekatan, yaitu mengatur agar setiap
proses hanya dapat menggunakan sebuah sumber daya pada suatu
waktu, jika menginginkan sumber daya lain maka sumber daya
yang dimiliki harus dilepas. Dan yang kedua adalah dengan
membuat penomoran pada proses-proses yang mengakses sumber
daya. Suatu proses dimungkinkan untuk dapat meminta sumber
daya kapan pun, tetapi permintaannya harus dibuat terurut.

d. Pemulihan dari Deadlock.


Ada beberapa jalan untuk kembali dari kondisi Deadlock, yaitu:

- Preemption
Untuk sementara waktu menjauhkan sumber daya dari
pemakainya, dan memberikannya pada proses yang lain. Cara ini
dapat dilakukan dengan memilih korban yang akan dikorbankan
atau diambil sumber dayanya utuk sementara, tentu saja harus
dengan perhitungan yang cukup agar waktu yang dikorbankan
seminimal mungkin. Setelah kita melakukan preemption dilakukan
pengkondisian proses tersebut dalam kondisi aman. Setelah itu
proses dilakukan lagi dalam kondisi aman tersebut.

- Melacak Kembali
Setelah melakukan beberapa langkah preemption, maka
proses utama yang diambil sumber dayanya akan berhenti dan tidak
dapat melanjutkan kegiatannya, oleh karena itu dibutuhkan langkah
untuk kembali pada keadaan aman dimana proses masih berjalan
dan memulai proses lagi dari situ. Beberapa sistem mencoba
dengan cara mengadakan pengecekan beberapa kali secara periodik
dan menandai tempat terakhir kali menulis ke disk, sehingga saat
terjadi Deadlock dapat mulai dari tempat terakhir penandaannya
berada.
- Lewat membunuh proses yang menyebabkan Deadlock.
Cara yang paling umum ialah membunuh semua proses yang
mengalami Deadlock. Cara ini paling umum dilakukan dan
dilakukan oleh hampir semua sistem operasi. Namun, untuk
beberapa sistem, kita juga dapat membunuh beberapa proses saja
dalam siklus Deadlock untuk menghindari Deadlock dan
mempersilahkan proses lainnya kembali berjalan. Atau dipilih salah
satu korban untuk melepaskan sumber dayanya, dengan cara ini
maka masalah pemilihan korban menjadi lebih selektif, sebab telah
diperhitungkan beberapa kemungkinan jika si proses harus
melepaskan sumber dayanya.
DAFTAR PUSTAKA

Jejaring. (2019). “Pengertian, Pencegahan dan Pemulihan Deadlock”,


https://www.jejaring.web.id/deadlock/#Ada_beberapa_jalan_untuk_kemba
li_dari_Deadlock diakses pada 31 Oktober 2021 pukul 23.18.
Saputri, Aristy. (2015). “Penjadwalan Proses”,
https://aristysaputri3.wordpress.com/sistem-operasi/penjadwalan-proses/
diakses pada 31 Oktober 2021 pukul 20.19.
Setiadi, Haryono. (2019). “Penjadwalan Proses”,
https://adoc.pub/pertemuan-4-penjadwalan-proses-haryono-setiadi-st-
meng-d3-il.html diakses pada 31 Oktober 2021 pukul 17.55.

Anda mungkin juga menyukai