Professional Documents
Culture Documents
EH
:
KE
LO
MP
OK
4
Mu
na
wir
Dja
ma
lud
din
(H1
31
14
31
4)
Ha
sni
ar
(H1
31
14
32
4)
Nu
rul
Ra
hm
a
(H1
A 31
14
32
N 8)
An
di
KATA PENGANTAR
Penyusun menyadari bahwa dalam penulisan tugas Makalah ini masih banyak
kekurangan dari berbagai macam segi, oleh karena itu penyusun memohon maaf yang
sebesarbesarnya karena segala kesempurnaan hanya milik Allah dan penyusun mengharapkan
saran dari pembaca demi perbaikan menuju kearah kesempurnaan.
Akhir kata penyusun mengucapkan terima kasih, semoga tugas Makalah ini dapat
bermanfaat. Amin.
Penyusun
DAFRTAR ISI
KATA PENGANTAR................................................................................................... ii
BAB I PENDAHULUAN............................................................................................. 1
1.1. Latar Belakang.......................................................................................... 1
1.2. Rumusan Masalah..................................................................................... 2
1.3. Tujuan Penulisan........................................................................................ 2
BAB II PEMBAHASAN............................................................................................... 3
2.1. Scheduling Process atau Penjadwalan Proses...........................................3
2.1.1. Pengertian dan Sasaran Penjadwalan Proses......................................3
2.1.2. Manajer Sumber Daya........................................................................4
2.2. Tipe tipe penjadwalan pada sistem operasi............................................7
2.2.1. Penjadwalan jangka pendek................................................................7
2.2.2. Penjadwalan jangka menengah..........................................................7
2.2.3. Penjadwalan jangka panjang..............................................................7
2.3. Macam macam dari Strategi Penjadwalan..............................................7
2.3.1. Preemtive............................................................................................ 8
2.3.2. Non-Preemtive.................................................................................... 9
2.4. Algortima dalam Strategi Penjadwalan.....................................................9
2.4.1. Algoritma dalam strategi Preemtive...................................................9
2.4.2. Algoritma dalam strategi Non-Preemtive..........................................12
2.5. MultiProgramming, MultiProcessing, Distributed Processing dan
Multitasking...................................................................................................... 15
2.5.1. Multiprogramming............................................................................ 15
2.5.2. Multiprocessing................................................................................. 16
2.5.3. Distributed Processing......................................................................16
2.5.4. Multitasking...................................................................................... 16
2.6. Masalah pada Multiple Process...............................................................18
2.6.1. Deadlock........................................................................................... 19
2.6.2. Livelock............................................................................................. 22
2.6.3. Starvation......................................................................................... 22
BAB III PENUTUP................................................................................................... 26
3.1. Kesimpulan................................................................................................ 26
DAFTAR PUSTAKA................................................................................................. 27
BAB I
PENDAHULUAN
Kami menulis makalah ini dengan tujuan memberi pemahaman dasar tentang
proses manajer yang lebih lanjut dimana sebelumnya telah dijelaskan oleh kelompok
sebelumnya. Dalam makalah ini kami membuatnya sedemikian mungkin agar
pembaca mempunyai pemahaman yang singkat, padat, jelas sehingga mudah untuk
dipahami oleh para pemula.
1.2. Rumusan Masalah
Berdasarkan latar belakang, maka rumusan masalah dari makalah ini yang
penyusun akan tulis adalah sebagai berikut:
Kita membutuhkan kebijakan penjadwalan saat kita memiliki banyak pekerjaan untuk
dijalankan dengan waktu yang terbatas dan membutuhkan resource (sumber daya) untuk
menyelesaikan tiga keterbatasan system:
a. Finite number of resource (jumlah resource yang terbatas) seperti disk drive atau printer,
b. Locked resource (resource terkunci) sehingga tidak dapat dibagi dengan pekerjaan lain.
Untuk itu dalam proses dalam suatu pengerjaan job kita membutuhkan sebuah penjadwalan
dalam menjalankan job tersebut agar dapat terstruktur dengan baik.
a. Adil (Fairness)
Adil (Fairness) adalah proses proses yang diperlakukan sama, yaitu
mendapat jatah waktu pemroses yang sama dan tak ada proses yang tak
kebahagian layanan pemroses sehingga mengalami kekurangan waktu.
b. Efisiensi (Eficiency)
Efisiensi (Eficiency) atau utilisasi pemroses dihitung dengan
perbandingan (rasio) waktu sibuk pemroses.
c. Waktu tanggap (Respon time)
Waktu tanggap ini dibedakan yaitu:
1. Sistem interaktif
Sistem interaktif ini didefinisikan sebagai waktu yang
dihabiskan dari saat karakter terakhir dari perintah dimasukkan
atau transaksi sampai hail pertama muncul di layar. Waktu tanggap
ini disebut dengan terminal response time.
2. Sistem waktu nyata
Sistem waktu nyata ini didefinisikan sebagai waktu dari saat
kejadian (internal atau eksternal) sampai instruksi pertama rutin
layanan yang dimkasud dieksekusi. Waktu tanggap ini disebut
dengan event response time.
d. Turn around time
Turn around time yaitu waktu yang yang dihabiskan dari saat program
(job) mulai masuk ke sistem sampai proses diselesaikan oleh sistem.
Turn around Time = Waktu eksekusi + Waktu Menunggu
e. Throughput
Throughput yaitu jumlah kerja yang dapat diselesaikan dalam satu unit
waktu. Sasaran penjadwalan adalah memaksimalkan jumlah job yang
diproses persatu interval waktu.
Yang dimaksud dengan sistem operasi sebagai resource manager adalah Sistem
operasi sebagai penanggung jawab terhadap pengolahan sumber daya untuk
memindahkan, memproses dan menyimpan.
Sumber daya yang dimaksud adalah sumber daya fisik dan sumber daya
abstrak.
Disini kami akan menjelaskan apa itu sumber daya fisik dan apa itu sumber
daya abstrak berikut dengan contoh-contohnya.
Sumber daya fisik adalah semua komponen yang ada dalam sitem
komputer yang dapat memberikan manfaat dan secara fisik dapat kita lihat.
Sebagai contohnya :
1. Data
Contohnya :
2. Program
Program merupakan kumpulan instruksi yang dapat dijalankan
oleh sistem computer. Contoh bentuk program dapat berupa utilitas atau
aplikasi untuk mencapai tujuan komputasi (pengolahan) tertentu.
Satu hal yang tentunya tidak diinginkan adalah resource hogging yang berarti
sebuah job bisa sangat egois/serakah dan memanfaatkan semua resource dan tidak
membagikannya. Resource hogging merupakan program yang memperlambat waktu
pemrosesan. Mungkin perlu melakukan intervensi untuk memastikan bisa mendapatkan
resource sendiri. Jadi diperlukan pre-defined point (titik standar/titik yang sudah ditentukan
sebelumnya) untuk mengintervensi.
CPU hogging hampir sama dengan proses menghabiskan terlalu banyak waktu
untuk menempati CPU sehingga proses lain juga butuh untuk dieksekusi. Dengan
penjadwal preemptif yang dirancang dengan baik yang menjalankan proses berperilaku
cukup baik, ini seharusnya tidak pernah terjadi.
Contoh dimana ada potensi CPU hogging bahkan dengan scheduler yang sangat fair
adalah ketika sebuah proses menunggu pada perangkat dan proses lain tidak dapat
dijalankan pada CPU tanpa menimbulkan efek buruk pada sistem (misalnya, ini menunggu
Data dari perangkat yang lambat atau tidak responsif yang hanya bisa menulis ke
penyangga yang sangat kecil, dan proses lain tidak dapat dijadwalkan karena isi buffer
berada dalam keadaan tidak lengkap). Hal ini terkadang bisa terjadi dengan perangkat /
driver yang buruk dan harus diperlakukan sebagai bug.
2.2. Tipe tipe penjadwalan pada sistem operasi
2.3.1. Preemtive
Pada strategi ini, sistem operasi dan proses lain dapat mengambil alih eksekusi
prosesor tanpa harus menunggu proses yang sedang running menyelesaikan tugasnya.
Penjadwalan preemptive merupakan fitur yang penting, terutama pada sistem dimana
proses-proses memerlukan tanggapan prosesor secara cepat. Sebagai contoh adalah
sistem real-time, dimana jika terjadi interupsi dan tidak segera dilayani maka dapat
berakibat fatal. Contoh lain adalah sistem interaktif time-sharing, dimana pengguna
sistem mengharapkan tanggapan yang cepat dari sistem. Secara umum, sistem
konkuren seperti sistem operasi yang multitasking lebih menghendaki sistem
penjadwalan preemptive.
2.3.2. Non-Preemtive
Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana sistem
operasi tidak pernah melakukan context switch dari proses yang sedang berjalan ke
proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt.
Ini berarti CPU menjaga proses sampai proses itu pindah ke waiting state
ataupun dihentikan (proses tidak diganggu). Metode ini digunakan oleh Microsoft
Windows 3.1 dan Macintosh. Ini adalah metode yang dapat digunakan untuk
platforms hardware tertentu, karena tidak memerlukan perangkat keras khusus
(misalnya timer yang digunakan untuk menginterupt pada metode penjadwalan
Preemptive).
1. Jika kwanta habis dan proses belum selesai, maka proses menjadi
runnable dan pemroses dialihkan ke proses lain.
3. Jika kwanta belum habis tetapi proses telah selesai, maka proses
diakhiri dan pemroses dialihkan ke proses lain.
Diimplementasikan dengan :
3. Bila kwanta belum habis dan proses selesai, maka ambil proses di
ujung depan antrian proses ready.
4. Jika kwanta habis dan proses belum selesai, maka tempatkan proses
running ke ekor antrian proses ready dan ambil proses di ujung
depan antrian proses ready.
Masalah yang timbul adalah menentukan besar kwanta, yaitu :
Merupakan :
Penjadwalan berprioritas.dinamis.
Preemptive untuk timesharing
Melengkapi SJF
Pada SRF, proses dengan sisa waktu jalan diestimasi terendah
dijalankan, termasuk proses-proses yang baru tiba.
Pada SJF, begitu proses dieksekusi, proses dijalankan sampai selesai.
Pada SRF, proses yang sedang berjalan (running) dapat diambil alih
proses baru dengan sisa waktu jalan yang diestimasi lebih rendah.
Kelemahan :
Mempunyai overhead lebih besar dibanding SJF. SRF perlu
penyimpanan waktu layanan yang telah dihabiskan job dan kadang-
kadang harus menangani peralihan.
Tibanya proses-proses kecil akan segera dijalankan.
Job-job lebih lama berarti dengan lama dan variasi waktu tunggu
lebih lama dibanding pada SJF.
SRF perlu menyimpan waktu layanan yang telah dihabiskan ,
menambah overhead. Secara teoritis, SRF memberi waktu tunggu
minimum tetapi karena overhead peralihan, maka pada situasi tertentu
SFJ bisa memberi kinerja lebih baik dibanding SRF.
Melayani banyak program yang tidak ada hubungannya satu sama lain dan
dijalankan sekaligus dalam satu komputer yang sama. Pelaksanaan instruksi yang
diterapkan adalah:
Contoh nya adalah menjalankan browser bersamaan dengan media player atau
programm pengolah gambar seperti photoshop.
Contoh nya adalah pada zaman sekarang banyak processor yang sudah
berteknologi dual core sampai quad core. ini bertujuan untuk hemat waktu.
Maksudnya adalah core dalam processor menjalankan tugasnya masing-masing.
2.5.4. Multitasking
Multitasking adalah pemrosesan beberapa tugas pada waktu yang bersamaan.
Sebagai contoh, jika seseorang sedang menyetir, bertelepon lewat ponsel, dan sambil
merokok secara bersamaan, maka orang tersebut melakukan multitasking.
Multitasking merupakan mekanisme kerja komputer. CPU komputer dapat
menangani beberapa proses dalam waktu yang sama secara akurat. Proses yang
dikerjakan tergantung pada instruksi yang diberikan oleh software komputer. Oleh
sebab itu, untuk memanfaatkan kemampuan CPU secara maksimal, software yang
digunakan juga harus memiliki kemampuan multitasking. Saat ini, berbagai software
sistem operasi sudah memiliki kemampuan multitasking. Itulah sebabnya, saat ini
Anda bisa browsing di halaman web SmitDev, chatting, sambil mendengarkan musik
secara bersamaan.
Contohnya adalah, dalam OS windows, pada saat kita membuka task manager,
terdapat task task yang sedang berjalan, di sini kita melihat bahwa seakan-akan
CPU menjalankan secara bersamaan, tetapi ternyata tidak.
Konsekuensi dari proses-proses yang berjalan secara konkuren pada suatu
sistem multitasking? Berikut sejumlah pengaruh yang mungkin terjadi antara proses-
proses yg berjalan bersamaan :
1. Proses tidak saling memengaruhi.
Ini terjadi pada proses-proses yang tidak saling berhubungan dan tdk saling
bekerja sama, kecuali dalam hal berbagi pakai processor. Contoh aplikasi MS.Word
dengan Media Player berjalan bersamaan
Scheduling pada multiprocessor lebih rumit daripada pada single processor dimana
single processor hanya membahas homogeneous processor yaitu processor dengan fungsi
yang sama. Ada dua pendekatan :
a. Asymmetric Multiprocessing
Hanya ada satu processor master yang punya akses ke struktur data sistem.
Keputusan scheduling diambil oleh satu processor master. Processor lain hanya
mengeksekusi user code
b. Symmetric Multiprocessing (SMP)
Setiap processor menjadwalkan processnya sendiri (self scheduling) artinya
Semua process bisa jadi ada di satu queue yang sama atau masing-masing
processor punya queue sendiri
Kemudian untuk kita mengatasi multiple process atau multiple core yaitu perlu
adanya sinkronisasi, sehingga tidak ada masalah berikut :
2.6.1. Deadlock
Deadlock menurut bahasa adalah buntut atau kebuntuan, terkunci.
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.
Deadlock adalah efek samping dari sinkronisasi, dimana satu variabel
digunakan oleh 2 proses. Analoginya seperti pada kondisi jalan raya dimana terjadi
kemacetan parah seperti yang terlihat pada contoh berikut ini:
Gambar di atas adalah contoh terjadinya deadlock pada dunia nyata. Pada
gambar jelas terlihat bahwa lalu lintas (persimpangan) terhenti dan terjadi antrian
pada empat arah datangnya mobil. Tidak ada mobil yang bisa melanjutkan perjalanan
dan hanya menunggu saja. Permasalahan ini dapat dipecahkan dengan cara salah satu
dari antrian tersebut mundur dan memberikan kesempatan antrian lain untuk berjalan
terlebih dahulu. Kasus seperti ini sangat potensial untuk terjadinya starvation.
Beberapa hal yang dapat membuat deadlock pada suatu persimpangan, yaitu:
Penyebab pertama terjadinya deadlock tidak lain dan tidak bukan adalah
karena keterbatasan Resource yang ada, dengan kata lain Resouce lah yang menjadi
rebutan para Proses, seandainya saja Resource yang tersedia melimpah (tidak terbatas)
maka deadlock tidak akan terjadi. Selain itu penyebab lainya adalah manage yang
kurang baik dari Sistem Operasi.
2.6.1.1.Penanganan Deadlock
Strategi untuk menghadapi deadlock atau beberapa cara untuk
menanggulangi terjadinya deadlock, diantaranya adalah:
1. Mengabaikan masalah deadlock.
Untuk memastikan sistem tidak memasuki deadlock, sistem dapat
menggunakan pencegahan deadlock atau penghindaran deadlock.
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 seakanakan 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.
2. Mendeteksi dan memperbaiki
Caranya ialah dengan cara mendeteksi jika terjadi deadlock pada
suatu proses maka dideteksi system mana yang terlibat di dalamnya. Setelah
diketahui sistem mana saja yang terlibat maka diadakan proses untuk
memperbaiki dan menjadikan system 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 system
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:
a. Permintaan sumber daya dikabulkan selama memungkinkan.
b. Sistem operasi memeriksa adakah kondisi circular wait secara periodik.
c. Pemeriksaan adanya deadlock dapat dilakukan setiap ada sumber daya
yang hendak digunakan oleh sebuah proses.
d. Memeriksa dengan algoritma tertentu.
2.6.1.2.Penghindaran Deadlock
Algoritma Bankir Menurut Djikstra(1965) algoritma penjadwalan
dapat menghindari deadlock dan algoritma penjadwalan tersebut dikenal
dengan algoritma bankir. Algoritma ini dapat digambarkan, ada seorang bankir
yang akan meminjamkan kepada peminjam-peminjamnya. Setiap peminjam
memberikan batas pinjaman maksimum. Tentu saja bankir tahu bahwa
peminjam tidak akan meminjam dana maksimum secara langsung melainkan
bertahap. Bankir memprioritaskan kepada peminjam yang meminjam dana
lebih banyak, sedangkan yang lain disuruh menunggu hingga peminjam yang
lebih besar mengembalikan dananya, baru setelah itu ia meminjamkan kepada
peminjam yang lain. Jadi algoritma bankir disini mempertimbangkan apakah
permintaan proses sesuai dengan jumlah sumber daya yang ada dan sekaligus
memperkirakan jumlah sumber daya yang mungkin diminta lagi. Jangan
sampai ketika ada proses yang meminta sumber daya tetapi sumber dayanya
habis atau tidak ada lagi jika tidak maka akan terjadi deadlock.
Secara umum algoritma bankir dibagi menjadi 4 struktur data:
2.6.2. Livelock
Dimana pada Livelock ini adalah kondisi yang hampir dapat dikatan mirip
dengan deadlock. Hanya saja livelock secara umum dapat dikatan bahwa proses tidak
berjalan. Livelock ini merupakan kasus khusus dalam source starvation.
Kondisi yang menggambarkan livelock ini adalah ketika dua orang bertemu di
sebuah koridor yang sempit dan masing-masing mencoba untuk bersikap sopan
dengan menggerakan badan ke samping untuk membiarkan lewat yang lain, tetapi
mereka akhirnya bergoyang dari sisi ke sisi lain tanpa membuat kemajuan karena
mereka berdua berulang kali pindah dengan cara yang sama pada waktu yang sama.
Livelock sendiri merupakan resiko dari beberapa algoritma yang mendeteksi
dan memulihkan dari deadlock. Jika lebih dari satu proses mengambil tindakan,
pendeteksian oleh algoritma berulang kali dapat memicu deadlock. Hal ini dapat
dihindari dengan memastikan bahwa hanya satu proses (dipilih secara acak atau
dengan prioritas) yang mengambil tindakan.
2.6.3. 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). Ilustrasi starvation
dengan deadlock seperti pada gambar di bawah ini.
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.
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 di bawah ini.
Pada antrian kanan terjadi starvation karena resource (jembatan) selalu dipakai
oleh antrian kiri, dan antrian kanan tidak mendapatkan giliran. Jika dua proses ingin
mengakses satu sumber daya tunggal maka sistem operasi mengalokasikan untuk
salah satu proses dan mengharuskan proses lain menunggu. Proses yang ditolak
pengaksesan menjadi melambat. Jika terlalu parah maka proses di-blocked terus-
menerus sehingga tidak pernah mengakses sumber daya. Proses tidak pernah dapat
berakhir dengan suskses.
2.6.3.1.Mengatasi Starvation
Starvation dapat diatasi dengan pemrosesan dengan cara Round Robin.
Pada Round Robin, proses yang masuk akan dimasukkan ke dalam antrian
menurut kedatangan proses tersebut. Dalam penyelesainnya, suatu proses tidak
akan langsung selesai jika waktu yang dibutuhkan melebihi waktu kuantum
yang diberikan. Waktu kuantum adalah waktu yang diberikan untuk
menyelesaikan suatu proses. Ketika sutu proses telah mencapai batas waktu
kuantum, sisa dari proses tersebut dikembalikan ke antrian paling belakang
dan resource dipindahkan ke proses selanjutnya. Dengan cara ini, semua
proses yang mengantri, akan mendapatkan resource secara bergantian ( tidak
ada proses yang memonopoli resource ) sehingga semua proses dapat
diselesaikan.
Di contoh lalu lintas, terlihat bahwa kejadian deadlock yang
berlangsung secara terus-menerus dan tiada akhir dapat menyebabkan
terjadinya starvation. Akan tetapi, deadlock bukanlah satu-satunya penyebab
terjadinya starvation. Lalu lintas yang didominasi oleh kendaraan-kendaraan
dari satu arah pun dapat menyebabkan terjadinya starvation. Akibat yang
terjadi adalah kendaraan dari arah lain menjadi terus menunggu giliran untuk
berjalan hingga akhirnya mengalami starvation.
BAB III
PENUTUP
3.1. Kesimpulan
Bob DuCharme. 2001. The Operating System Handbook or. Fake Your Way Through Minis
and Mainframes. Singapure: McGraw- Hill Book Co.
Septyani. 2011. Manajer Proses (Process Manager) pada Sistem Operasi. Di akses di
http://dwi-septy21.blogspot.co.id/2011/02/manajer-proses-process-manager-
pada.html pada tanggal 17 April 2017.