NIM : 2105551024
Prodi/Fakultas : Teknologi Informasi/Teknik
Mata Kuliah : Pengantar Sistem dan Teknologi Informasi (A)
Dosen : Ni Made Ika Marini Mandenni, ST., M.Kom.
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.
- 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.
- 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.
d. Strategi Penjadwalan.
Terdapat dua strategi penjadwalan, yaitu :
e. Algoritma Penjadwalan.
Terdapat banyak algoritma penjadwalan, baik algoritma
penjadwalan non preemptive maupun penjadwalan preemptive. Algoritma-
algoritma yang menerapkan strategi nonpreemptive, 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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