Dosen Pengampu :
Dengan memanjatkan puji syukur kehadirat Allat SWT yang Maha Kuasa,
yang telah melimpahkan rahmat dan nikmat serta taufik dan hidayahnya, sehingga
penyusun dapat menyelesaikan makalah ini. Dengan tujuan untuk memenuhi salah
satu tugas mata kuliah Sistem Operasi.
Penyusun makalah ini tidaklah mungkin terwujud apabila tidak mendapat
bantuan dan bimbingan dari semua pihak. Tidak luput pada kesempatan ini ingin
mengucapkan rasa terimakasih pada berbagai pihak. Penyusun menyadari, bahwa
makalah ini jauh dari kesempurnaan. Walau demikian besar harapan penyusun
semoga laporan ini bermanfaat
Penyusun.
ii
DAFTAR ISI
Sinkronisasi ................................................................................................. 24
4. Bakery Algorithm...................................................................................... 26
5. Semaphore ................................................................................................. 27
7. Monitors .................................................................................................... 28
Deadlock ..................................................................................................... 30
iii
1. Peranan Deadlock ............................................................................... 30
Virtual Memory........................................................................................... 39
Kesimpulan ....................................................................................................... 55
iv
BAB I
PENDAHULUAN
Latar Belakang
Rumusan Masalah
1
BAB II
PEMBAHASAN
Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan
dilayani terlebih dahulu. Dan rata-rata waktu tunggu (Average waiting time) cukup
tinggi.Algoritma penjadwalan FCFS merupakan salah satu strategi penjadwalan
non-Preemptive karena sekali CPU dialokasikan pada suatu proses, maka proses
tersebut akan tetap memakai CPU sampai proses tersebut melepaskannya, yaitu jika
proses berhenti atau meminta I/O. Kelemahan dari Algoritma penjadwalan ini
adalah adanya convoy effect.
skema proses yang meminta CPU mendapat prioritas. Implementasi dari FCFS
mudah diatasi dengan FIFO queue.
2
Contoh:
Terdapat 3 proses seperti pada tabel berikut:
Sehingga waktu tunggu untuk tiap-tiap proses terlihat pada tabel berikut:
3
Algoritma Shortest Job First Scheduler (SJF/SJFS)
Pada algoritma ini setiap proses yang ada di ready queue akan dieksekusi
berdasarkan burst time terkecil. Hal ini mengakibatkan waiting time yang pendek
untuk setiap proses dan karena hal tersebut maka waiting time rata-ratanya juga
menjadi pendek, sehingga dapat dikatakan bahwa algoritma ini adalah algoritma
yang optimal.
Burst time : asumsi berapa lama sebuah proses membutuhkan CPU diantara proses
menunggunya I/O. Hal ini tidak dapat diprediksi secara tepat sebelum dimulainya
sebuah proses. Artinya jumlah waktu yang dibutuhkan sebuah proses dalam
menggunakan CPU dalam sebuah satuan waktu.(Sebuah proses dapat
menggunakan CPU selama beberapa kali selama task yang diberikan belum
diselesaikan).
Algoritma ini digunakan ketika CPU bebas proses yang mempunyai waktu
terpendek untuk menyelesaikannya mendapat prioritas. Seandainya dua proses atau
lebih mempunyai waktu yang sama maka FCFS algoritma digunakan untuk
menyelsaikan masalah tersebut.Prinsip algoritma penjadwalan ini adalah, proses
yang memiliki CPU burst paling kecil dilayani terlebih dahulu. Oleh karena itu,
algoritma ini optimal jika digunakan, tetapi sulit untuk diimplementasikan karena
sulit mengetahui CPU burst selanjutnya.
Contoh:
Ada 4 buah proses yang datang berurutan yaitu :
4
P3 dengan arrival time pada 4.0 ms dan burst time 1 ms.
P4 dengan arrival time pada 5.0 ms dan burst time 4 ms.
Hitunglah waiting time rata-rata dan turnaround time dari keempat proses tersebut
dengan mengunakan algoritma SJF.
Average waiting time rata-rata untuk ketiga proses tersebut adalah sebesar (0
+6+3+7)/4=4 ms.
Average waiting time rata-rata untuk ketiga prses tersebut adalah sebesar
(9+1+0+2)/4=3 ms.
Ada beberapa kekurangan dari algoritma ini yaitu:
1. Susahnya untuk memprediksi burst time proses yang akan dieksekusi
selanjutnya.
2. Proses yang mempunyai burst time yang besar akan memiliki waiting time yang
besar pula karena yang dieksekusi terlebih dahulu adalah proses dengan burst
time yang lebih kecil.
CONTOH SJF-PREEMPTIVE:
5
Non-preemptive : CPU tidak memperbolehkan proses yang ada di ready queue
untuk menggeser proses yang sedang dieksekusi oleh CPU meskipun proses
yang baru tersebut mempunyai burst time yang lebih kecil.
1. Time limit.
2. Memory requirement.
3. Akses file.
4. Perbandingan antara burst M/K dengan CPU burst.
5. Tingkat kepentingan proses.
6
Kelemahan pada priority scheduling adalah dapat terjadinya indefinite blocking(
starvation). Suatu proses dengan prioritas yang rendah memiliki kemungkinan
untuk tidak dieksekusi jika terdapat proses lain yang memiliki prioritas lebih tinggi
darinya.
Solusi dari permasalahan ini adalah aging, yaitu meningkatkan prioritas dari setiap
proses yang menunggu dalam queue secara bertahap.
Contoh:
Terdapat 5 proses seperti pada tabel berikut:
Sehingga waktu tunggu untuk tiap-tiap proses terlihat pada tabel berikut:
7
AWT = (12+22+19+2)/5 = 11 ms.
PROSES KEJADIAN ALGORITMA ROUND ROBIN :
Urutan Kejadian Algoritma Round Robin
Ide dasar dari algoritma ini berdasarkan pada sistem prioritas proses. Prinsipnya,
jika setiap proses dapat dikelompokkan berdasarkan prioritasnya, maka akan
didapati queue seperti pada gambar berikut:Multilevel Queue
Gambar Multilevel Queue
8
Dari gambar tersebut terlihat bahwa akan terjadi pengelompokan proses-proses
berdasarkan prioritasnya. Kemudian muncul ide untuk menganggap kelompok-
kelompok tersbut sebagai sebuah antrian-antrian kecil yang merupakan bagian dari
antrian keseluruhan proses, yang sering disebut dengan algoritma multilevel queue.
Dalam hal ini, dapat dilihat bahwa seolah-olah algoritma dengan prioritas yang
dasar adalah algoritma multilevel queue dimana setiap queue akan berjalan dengan
algoritma FCFS yang memiliki banyak kelemahan. Oleh karena itu, dalam
prakteknya, algoritma multilevel queue memungkinkan adanya penerapan
algoritma internal dalam masing-masing sub-antriannya yang bisa memiliki
algoritma internal yang berbeda untuk meningkatkan kinerjanya.
Berawal dari priority scheduling, algoritma ini pun memiliki kelemahan yang sama
dengan priority scheduling, yaitu sangat mungkin bahwa suatu proses pada queue
dengan prioritas rendah bisa saja tidak mendapat jatah CPU. Untuk mengatasi hal
tersebut, salah satu caranya adalah dengan memodifikasi algoritma ini dengan
adanya jatah waktu maksimal untuk tiap antrian, sehingga jika suatu antrian
memakan terlalu banyak waktu, maka prosesnya akan dihentikan dan digantikan
oleh antrian dibawahnya, dan tentu saja batas waktu untuk tiap antrian bisa saja
sangat berbeda tergantung pada prioritas masing-masing antrian.
Algoritma ini mirip sekali dengan algoritma multilevel queue. Perbedaannya ialah
algoritma ini mengizinkan proses untuk pindah antrian. Jika suatu proses menyita
9
CPU terlalu lama, maka proses itu akan dipindahkan ke antrian yang lebih rendah.
Hal ini menguntungkan proses interaksi karena proses ini hanya memakai waktu
CPU yang sedikit. Demikian pula dengan proses yang menunggu terlalu lama.
Proses ini akan dinaikkan tingkatannya. Biasanya prioritas tertinggi diberikan
kepada proses dengan CPU burst terkecil, dengan begitu CPU akan terutilisasi
penuh dan M/K dapat terus sibuk. Semakin rendah tingkatannya, panjang CPU
burst proses juga semakin besar.
10
Multilevel feedback queue adalah salah satu algoritma yang berdasar pada
algoritma multilevel queue. Perbedaan mendasar yang membedakan multilevel
feedback queue dengan multilevel queue biasa adalah terletak pada adanya
kemungkinan suatu proses berpindah dari satu antrian ke antrian lainnya, entah
dengan prioritas yang lebih rendah ataupun lebih tinggi, misalnya pada contoh
berikut :
Semua proses yang baru datang akan diletakkan pada queue 0 ( quantum= 8 ms).
Jika suatu proses tidak dapat diselesaikan dalam 8 ms, maka proses tersebut akan
dihentikan dan dipindahkan ke queue 1 ( quantum= 16 ms).
Queue 1 hanya akan dikerjakan jika tidak ada lagi proses di queue 0, dan jika suatu
proses di queue 1 tidak selesai dalam 16 ms, maka proses tersebut akan dipindahkan
ke queue 2.
Queue 2 akan dikerjakan bila queue 0 dan 1 kosong, dan akan berjalan dengan
algoritma FCFS.
Disini terlihat bahwa ada kemungkinan terjadinya perpindahan proses
antar queue, dalam hal ini ditentukan oleh time quantum, namun dalam prakteknya
penerapan algoritma multilevel feedback queue akan diterapkan dengan
mendefinisikan terlebih dahulu parameter-parameternya, yaitu:
Jumlah antrian.
Algoritma internal tiap queue.
Aturan sebuah proses naik ke antrian yang lebih tinggi.
Aturan sebuah proses turun ke antrian yang lebih rendah.
Antrian yang akan dimasuki tiap proses yang baru datang.
Contoh: Terdapat tiga antrian; Q1=10 ms, FCFS Q2=40 ms, FCFS Q3=FCFS
proses yang masuk, masuk ke antrian Q1. Jika dalam 10 ms tidak selesai, maka
proses tersebut dipindahkan ke Q2. Jika dalam 40 ms tidak selesai, maka
dipindahkan lagi ke Q3. Berdasarkan hal-hal di atas maka algoritma ini dapat
digunakan secara fleksibel dan diterapkan sesuai dengan kebutuhan sistem. Pada
zaman sekarang ini algoritma multilevel feedback queue adalah salah satu yang
paling banyak digunakan.
Hendra yusril 17630313
11
Implementasi Penjadwalan Proses
Adil (Fairness)
Adil adalah proses-proses diperlukan sama yaitu mendapatkan jatah waktu
pemroses yang sama dan tak ada proses yang tidak kebagian layanan pemroses
sehingga mengalami startvision. Sasaran pendjadwalan seharusnya menjamin tiap
proses mendapat pelayanan dari pemroses yang adil.
12
Efesiensi
Efesiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio)
waktu sibuk pemroses. Sasaran penjadwalan adalah menjaga agar pemroses tetap
dalam keadaan sibuk sehingga efesiensi mencapai maksimum. Sibuk adalah
pemroses tidak menganggur, termasuk waktu yang dihabiskan untuk mengeksekusi
program pemakai dan sistem operasi.
Waktu Tanggap (Response Time)
Waktu tanggap berbeda untuk :
Sistem interaktif
Sistem waktu nyata
13
Throughtput
Throughtput adalah jumlah kerja yang dapat diselesaikan dalam satu unit
waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai
yang dapat dieksekusi dalam satu unit/interval waktu. Sasaran penjadwalan adalah
memaksimalkan jumlah job yang diproses per satu interval waktu. Lebih tinggi
angka throughput, lebih banyak kerja yang dilakukan sistem. Kriteria-kriteria
tersebut saling bergabung dan dapat pula saling bertentangan sehingga tidak
dimungkinkan optimasi semua kriteria secara simultan. Contoh :
Untuk memberi waktu tanggap kecil memerlukan penjadwalan yang sering beralih
diantara prosesproses itu. Cara ini meningkatkan overhead sistem dan mereduksi
throughput. Kebijaksanaan perancangan penjadwalan melibatkan kompromi
diantara kebutuhan-kebutuhan yang saling bertentangan. Kompromi ini bergantung
sifat dan penggunaan sistem komputer.
Tipe-Tipe Penjadwalan
Terdapat tiga tipe penjadwalan berada secara bersama-sama pada sistem
operasi yang kompleks, yaitu :
1. Penjadwal jangka pendek (short-tem scheduller)
2. Penjadwal jangka menengah (medium-term scheduller)
3. Penjadwal jangka panjang (long-term scheduller)
Penjadwal Jangka Pendek
Penjadwal ini bertugas menjadwalkan alokasi pemroses diantara proses-
proses ready di memori utama. Sasaran utama penjadwal ini memaksimalkan
kinerja untuk memenuhi satu kumpulan kriteria yang diharapakan. Penjadwal ini
dijalankan setiap terjadi pengalihan proses untuk memilih proses berikutnya yang
harus dijalankan.
Penjadwal Jangka Menengah
Setelah eksekusi selama suatu waktu, proses mungkin ditunda karena
membuat permintaan layanan masukan/keluaran atau memanggil suatu system call.
Proses-proses tertunda tidak dapat membuat suatu kemajuan selesai sampai
kondisi-kondisi yang menyebabkan tertunda dihilangkan.
14
Agar ruang memori dapat bermanfaat, maka proses dipindah dari memori utama ke
memori sekunder agar tersedia ruang untuk proses-proseslain. Kapasitas memori
utama terbatas untuk sejumlah proses aktif. Aktivitas pemindahan proses yang
tertunda dari memori utama ke memori sekunder disebutswapping.
Penjadwalan Nonpreemptive
Begitu proses diberi jatah waktu pemroses maka pemroses tidak dapat
diambil alih oleh proses lain sampai proses itu selesai.
Penjadwalan Preemptive
Saat proses diberi jatah waktu pemroses maka pemroses dapat diambil alih
proses lain sehingga proses disela sebelum selesai dan harus dilanjutkan menunggu
jatah waktu pemroses tiba kembali pada proses itu.
15
Penjadwalan preemptive berguna pada sistem dimana proses-proses yang mendapat
perhatian tanggapan pemroses secara cepat. Misalnya :
Pada sistem waktu nyata, kehilangan interupsi (yaitu interupsi tidak
segera dilayani) dapat berakibat fatal.
Pada sistem interaktif/time-sharing, penjadwalan preemptive penting
agar dapat menjamin waktu tanggap yang memadai.
Penjadwalan preemptive bagus, tapi tidak tanpa ongkos. Perlaihan proses (yaitu
proses beralih ke proses lain) memerlukan overhead (karena banyak tabel yang
dikelola). Agar preemptive efektif, banyak proses harus berada di memori utama
sehingga proses-proses tersebut dapat segera running begitu diperlukan.
Menyimpan banyak proses tak running benar-benar di memori merupakan suatu
overhead tersendiri.
Algoritma Penjadwalan
Terdapat banyak algoritma penjadwalan ,baik nonpreemptive maupun preemptive.
Algoritma-algoritma yang menerapkan strategi nonpreemptive diantaranya:
FIFO (Frist In First Out)
SJF (Shortest Job First)
HRN (Highest Ratio Net)
MFQ (Multiple Feedback Queues).
16
Penjadwalan Round Robin (RR)
Penjadwalan ini merupakan:
Penjadwalan preemptive, buka dipreempt oleh proses lain tapi
terutama oleh penjadwal berdasarkan lama waktu berjalannya proses,
disebut preempt-by-time.
Penjadwalan tanpa protes.
Semua Proses dianggap penting dan diberi sejumlah waktu pemroses yang disebut
kwata (quantum) atau time slice dimana proses itu berjalan.
Ketentuan
Ketentuan algoritma round robin adalah sebagai berikut:
1.Jika kwanta habis dan proses belum selesai maka proses menjadi runable dan
pemroses dialihkan ke poses lain.
2.Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi
I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.
3.Jika kwanta belum habis tapi proses telah selesai maka proses diakhiri dan
pemroses dialihkan ke proses lain.
17
Masalah penjadwalan ini adalah menentukan besar kwanta, yaitu:
Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn
arround time rendah.
Kwanta terlalu kecil mengakibatkan peralihan proses terlalu banyak
sehingga menurunkan efesiensi pemroses.
Harus ditetapkan kwanta waktu yang optimal berdasar kebutuhan sistem terutama
dari hasil percobaan atau data historis. Besar kwanta waktu beragam bergantung
beban sistem.
18
Penjadwalana FIFO
Penjadwalan ini merupakan:
Penjadwalana non-preemptive
Penjadwalan tidak berprioritas
Ketentuan:
Penjadwalan FIFO adalah penjadwalan paling sederhana, yaitu:
Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan.
Begitu proses mendapat jatah waktu pemroses, proses dijalankan sampai
selesai.
Penjadwalan ini dikatakan adil dalam arti resmi (dalam semantik/arti antrian, yaitu
proses yang datangduluan, dilayani duluan juga), tapi dinyatakan tak adil karena
job-job yang perlu waktu lama membuat job-job pendek menunggu. Job-job tak
penting dapat membuat job-job penting menunggu.
FIFO jarang digunakan secara mandiri tapi dikombinasikan dengan skema lain,
misalnya :
keputusan berdasarkan prioritas proses. Untuk proses-proses berprioritas sama
diputuskan berdasarkan FIFO.
19
Penggunaan:
Cocok untuk sistem batch yang sangat jarang interaksi dengan pemakai.
Contoh aplikasi analisis numerik, pembuatan tabel.
Penjadwalan ini sama sekali tak berguna untuk sistem interaktif karena
tidak memberi waktu tanggap yang bagus.
Tidak dapat digunakan untuk sistem waktu nyata.
Kelemahan
Penjadwalan tak tanggap perbuhana lingkungan yang mungkin menghendaki
penyesuaian prioritas.
Prioritas Dinamis
Prioritas dinamis merupakan mekanisme menanggapi perubahan lingkungan sistem
beroperasi. Prioritas awal diberikan ke proses mungkin hanya berumur pendek
setelah disesuaikan ke nilai yanglebih tepat sesuai lingkungan.
Kelemahan
20
Implementasi mekanisme prioritas dinamis lebih kompeks dan mempunyai
overhead lebih besar. Overhead ini diimbangi dengan peningkatan daya tanggap
sistem.
Contoh penjadwalan berprioritas
Proses-proses yang sangat banyak operasi I/O menghabiskan kebanyakan waktu
menunggu selesainya operasi I/O. Proses-proses ini diberi prioritas sangat tinggi
sehingga begitu proses memerlukan pemroses segera diberikan, proses akan segera
memulai permintaan I/O berikutnya hingga mengakibatkan proses blocked
menunggu selesainya operasi I/O. Dengan demikian pe mroses dapat dipergunakan
proses-proses lain. Proses-proses I/O bound berjalan paralel bersama proses-proses
lain yang benar-benar memerlukan pemroses, sementara proses-proses I/O bound
itu menunggu selesainya operasi DMA.
Proses-proses yang sangat banyak operasi I/O kalau harus menuggu lama untuk
memakai pemroses (karena prioritas rendah) hanya akan membebani meori karena
harus disimpan tanpa perlu prosesproses itu dimemori karena tidak selesai-selesai
menunggu operai I/O dan menunggu jatah pemroses.
21
Kombinasi
Algoritma penjadwalan berprioritas dapat dikombinasikan yaitu mengelompokan
proses-proses menjadi kelas-kelas prioritas. Penjadwalan berprioritas diterapkan
antar kelas-kelas proses itu. Penjadwalan round-robin atau FIFO diterapkan pada
proses-proses di satu kelas.
Mekasnime ini dapat mencegah proses yang perlu berjalan lama swapping berkali-
kali dan mencegah proses-proses interaktif yang singkat harus menunggu lama.
Penggunaan
Sistem dengan banyak proses lambat, memerlukan waktu dan juga terdapat
banyak proses singkat.
Penjadwalan Terpendek, Duluan (SJF)
Penjadwalan ini merupakan :
– Penjadwalan non-preemptive
22
– Penjadwalan tak berprioritas
Penjadwalan ini mengasumsikan waktu jalan proses(sampai selesai) diketahui
sebelumnya. Mekanisme penjadwalan adalah menjadwalkan proses dengan waktu
jalan terpendek lebih dulu sampai selesai.
Penjadwalan mempunyai efesien tinggi dan turn arround time rendah.
Contoh :
Terdapat empat proses A,B,C,D dengan jalam selama 8,7,6,5 kwanta.
Gambar 5.2a menunjukkan cara I, dengan proses-proses dijadwalkan berurutan
sebagai A,B,C,D. Gambar 5.2b menunjukkan bila proses-proses dijadwalkan secara
SJF yaitu berurutan B,C,D,A
Kedua cara menghasilkan turn arround time ditunjukan gambar 5.2c. Cara I trun
arround time rata-rata adalah 17,5 kwanta sedang cara II adalah 15 kwanta.
Walaupun mempunyai turn arround yang bagus, SJF mempunyai yaitu:
– Tidak dapat mengetahui ukuran job saat job masuk
– Proses yang tidak datang bersamaan, sehingga penetapannya harus dinamis.
Untuk mengetahui ukuran job agar dapat ditetapkan yang terpendek biasanya
dilakukan pendekatan. Pendekatan yang biasa dilakukan adalah membuat estimasi
berdasar kelakuan sebelumnya.
Penggunaan
Jarang digunakan, merupakan kajian teoritis untuk pembandingan turn arround
time.
23
Sinkronisasi
1. Race Condition
24
dan jika ada berkas yang sudah dicetak dihilangkan nama berkasnya dari
direktori.
Kunci untuk mencegah masalah ini dan di situasi yang lain yang melibatkan
shared memori, shared berkas, and shared sumber daya yang lain adalah
menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk
melakukan proses writing dan reading kepada shared data pada saat yang sama.
Bagaimana pun setiap kali sebuah proses mengakses shared memory atau shared
berkas atau melakukan sesuatu yang kitis akan menggiring kepada race
conditions. Bagian dari program dimana shaed memory diakses disebut Critical
Section atau Critical Region. Walau pun dapat mencegah race conditions, tapi
tidak cukup untuk melakukan kerjasama antar proses secara pararel dengan baik
dan efisien dalam menggunakan shared data, kita butuh 4 kondisi agar
menghasilkan solusi yang baik yakni :
Tidak ada dua proses secara bersamaan masuk ke dalam citical section.
Tidak ada asumsi mengenai kecepatan atau jumlah cpu.
Tidak ada proses yang berjalan di luar critical secion yang dapat
mengeblok proses lain.
Tidak ada proses yang menunggu selamamya untuk masuk critical section
25
3. Solusi ke Masalah Critical-Section
4. Bakery Algorithm
26
5. Semaphore
Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa
dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda
sederhana. Seperti proses dapat dipaksa berhenti pada suatu saat, sampai proses
mendapatkan penanda tertentu itu. Sembarang kebutuhan koordinasi kompleks
dapat dipenuhi dengan struktur penanda yang cocok untuk kebutuhan itu. Variabel
khusus untuk penanda ini disebut semaphore.
Semaphore mempunyai dua sifat, yaitu:
i. Semaphore dapat diinisialisasi dengan nilai non-negatif.
ii. Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang
disampaikan Djikstra adalah operasi P dan V.
Operasi Down
Operasi ini menurunkan nilai semaphore, jika nilai semaphore menjadi non-positif
maka proses yang mengeksekusinya diblocked. Operasi Down adalah atomic, tak
dapat diinterupsi sebelaum diselesaikan.Emnurunkan nilai, memeriksa nilai,
menempatkan proses pada antrian dan memblocked sebagai instruksi tunggal. Sejak
dimulai, tak ada proses alain yang dapat mengakses semaphore sampai operasi
selesai atau diblocked. Operasi Up
Operasi Up menakkan nilai semaphore. Jika satu proses atau lebih diblocked pada
semaphore itu tak dapat menyelesaikan operasi Down, maka salah satu dipilih oleh
system dan menyelesaikan operasi Down-nya. Urutan proses yang dipilih tidak
ditentukan oleh Djikstra, dapat dipilih secara acak.
6. Problem Klasik pada Sinkronisasi
Ada tiga hal yang selalu memjadi masalah pada proses sinkronisasi:
a. Problem Bounded buffer.
b. Problem Reades and Writer.
c. Problem Dining Philosophers.
27
7. Monitors
Monitor adalah kumpulan prosedur, variabel dan struktur data di satu modul
atau paket khusus. Proses dapat memanggil prosedur-prosedur kapan pun
diinginkan. Tapi proses tak dapat mengakses struktur data internal dalam monitor
secara langsung. Hanya lewat prosedur-prosedur yang dideklarasikan minitor untuk
mengakses struktur internal.
Properti-properti monitor adalah sebagai berikut:
Variabel-variabel data lokal, hanya dapat diakses oleh prosedur-prosedur
dala monitor dan tidak oleh prosedur di luar monitor.
Hanya satu proses yang dapat aktif di monitor pada satu saat. Kompilator
harus mengimplementasi ini(mutual exclusion).
Terdapat cara agar proses yang tidak dapat berlangsung di-blocked.
Menambahkan variabel-variabel kondisi, dengan dua operasi, yaitu Wait
dan Signal.
Wait: Ketika prosedur monitor tidak dapat berkanjut (misal producer
menemui buffer penuh) menyebabkan proses pemanggil diblocked dan
mengizinkan proses lain masuk monitor.
Signal: Proses membangunkan partner-nya yang sedang diblocked dengan
signal pada variabel kondisi yang sedang ditunggu partnernya.
Versi Hoare: Setelah signal, membangunkan proses baru agar berjalan dan
menunda proses lain.
Versi Brinch Hansen: Setelah melakukan signal, proses segera keluar dari
monitor.
Dengan memaksakan disiplin hanya satu proses pada satu saat yang
berjalan pada monitor, monitor menyediakan fasilitas mutual exclusion.
Variabel-variabel data dalam monitor hanya dapat diakses oleh satu proses
pada satu saat. Struktur data bersama dapat dilindungi dengan
menempatkannya dalam monitor. Jika data pada monitor
merepresentasikan sumber daya, maka monitor menyediakan fasilitas
mutual exclusion dalam mengakses sumber daya itu.
28
Muhammad Firdaus Ananda 17630590
29
Deadlock
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling
menunggu prosesyang lain untuk melepaskan resource yang sedang dipakai.
Dua atau lebih proses dikatakan berada dalam kondisi deadlock, bila setiap proses
yang ada menunggu suatu kejadian yang hanya dapat dilakukan oleh proses lain
dalam himpunan tersebut. Terdapat kaitan antara overhead dari mekanisme koreksi
dan manfaat dari koreksi deadlock itu sendiri. Pada beberapa kasus, overhead atau
ongkos yang harus dibayar untuk membuat sistem bebas deadlock menjadi hal yang
terlalu mahal dibandingkan jika mengabaikannya. Sementara pada kasus lain,
seperti pada real-time process control, mengizinkan deadlock akan membuat sistem
menjadi kacau dan membuat sistem tersebut tidak berguna.
Contoh berikut ini terjadi pada sebuah persimpangan jalan. Beberapa hal yang dapat
membuat deadlock pada suatu persimpangan, yaitu:
Terdapat satu jalur pada jalan.
Mobil digambarkan sebagai proses yang sedang menuju sumber daya.
Untuk mengatasinya beberapa mobil harus preempt (mundur).
Sangat memungkinkan untuk terjadinya starvation (kondisi proses tak akan
mendapatkan sumber daya).
1. Peranan Deadlock
Suatu kondisi dimana setiap sumber daya diberikan tepat pada satu proses
pada suatu waktu.
Hold and Wait
30
Kondisi dimana suatu sumber daya yang sedang berada pada suatu proses
tidak dapat diambil secara paksa dari proses tersebut,sampai proses itu
melepaskannya.
Circular Wait
Kondisi yang menyatakan bahwa adanya rantai saling meminta sumber daya
yang dimiliki oleh suatu proses oleh proses lainnya.
2. Resources-Allocation Graph
Sebuah cara visual (matematika) untuk menentukan apakah ada deadlock, atau
kemungkinan terjadinya.
G = (V, E) Graf berisi node and edge. Node V terdiri dari proses-proses = {P1, P2,
P3, ...} dan jenis resource. {R1, R2, ...} Edge E adalah (Pi, Rj) atau (Ri, Pj)
Sebuah panah dari process ke resource menandakan proses meminta resource.
Sebuah panah dari resource ke process menunjukkan sebuah instance dari resource
telah dtempatkan ke proses. Process adalah lingkaran, resource adalah kotak; titik-
titik merepresentasikan jumlah instance dari resource Dalam tipe. Meminta poin-
poin ke kotak, perintah datang dari titik.
Jika graf tidak berisi lingkaran, maka tidak ada proses yang deadlock. Jika
membentuk lingkaran, maka:
a. jika tipe resource memiliki banyak instance, maka deadlock DAPAT ada.
b. jika setiap tipe resource mempunyai satu instance, maka deadlock telah terjadi.
Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:
a. Mengabaikan adanya deadlock.
b. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode
Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah
terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock,
tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock.
31
c. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode
yang saling mendukung, yaitu:
Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi.
Pemulihan deadlock, mengembalikan kembali sumber daya yang
dibutuhkan pada proses yang memintanya.
4. Strategi Ostrich
5. Mencegah Deadlock
Metode ini merupakan metode yang paling sering digunakan. Metode Pencegahan
dianggap sebagai solusi yang bersih dipandang dari sudut tercegahnya deadlock.
Tetapi pencgahan 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 Coffman
(1971).
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
32
yang digunakan adalah dengan spooling sumber daya, yaitu dengan mengantrikan
job-job pada antrian dan akan dilayani satu-satu.
Beberapa masalah yang mungkin terjadi adalah:
i. Tidak semua dapat di-spool, tabel proses sendiri tidak mungkin untuk di-spool
ii. Kompetisi pada ruang disk untuk spooling sendiri dapat mengarah pada deadlock
Hal inilah yang menyebabkan mengapa syarat pertama tidak dapat ditiadakan, jadi
mutual exclusion benar-benar tidak dapat dihilangkan.
Cara kedua dengan meniadakan kondisi hold and wait terlihat lebih menjanjikan.
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.
Masalah yang mungkin terjadi:
i. Sulitnya mengetahui berapa sumber daya yang dibutuhkan pada awal proses
ii. Tidak optimalnya pengunaan sumber daya jika ada sumber daya yang digunakan
hanya beberapa waktu dan tidak digunakan tapi tetap dimiliki oleh suatu proses
yang telah memintanya dari awal.
Meniadakan syarat ketiga non preemptive ternyata tidak lebih menjanjikan dari
meniadakan syarat kedua, karena 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:
i. 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.
ii. Membuat penomoran pada proses-proses yang mengakses sumber daya. Suatu
proses dimungkinkan untuk dapat meminta sumber daya kapan pun, tetapi
permintaannya harus dibuat terurut.
33
Masalah yang mungkin terjadi dengan mengatur bahwa setiap proses hanya dapat
memiliki satu proses adalah bahwa tidak semua proses hanya membutuhkan satu
sumber daya, untuk suatu proses yang kompleks dibutuhkan banyak sumber daya
pada saat yang bersamaan. Sedangkan dengan penomoran masalah yang dihadapi
adalah tidak terdapatnya suatu penomoran yang dapat memuaskan semua pihak.
Secara ringkas pendekatan yang digunakan pada metode pencegahan deadlock dan
masalah-masalah yang menghambatnya, terangkum dalam tabel dibawah ini.
Tabel 3-1. Tabel Deadlock
Syarat Langkah Kelemahan
6. Menghindari Deadlock
34
Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state, sedangkan
keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta
disebut unsafe-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.
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.
9. Algoritma Bankir
Algoritma penjadualan ini diungkapkan oleh Dijkstra (1965) lebih dikenal dengan
nama Algoritma Bankir. Model ini menggunakan suatu kota kecil sebagai
percontohan dengan suatu bank sebagai sistem operasi, pinjaman sebagai sumber
daya dan peminjam sebagai proses yang membutuhkan sumber daya. Deadlock
akan terjadi apabila terdapat seorang peminjam yang belum mengembalikan
uangnya dan ingin meminjam kembali, padahal uang yang belum dikembalikan tadi
dibutuhkan oleh peminjam lain yang juga belum mengembalikan uang
pinjamannya.
Beberapa kelemahan algoritma Bankir Tanenbaum (1992), Stallings (1995) dan
Deitel (1990) adalah sebagai berikut:
Sulit untuk mengetahui seluruh sumber daya yang dibutuhkan proses pada
awal eksekusi.
ii. Jumlah proses yang tidak tetap dan berubah-ubah.
iii. Sumber daya yang tadinya tersedia dapat saja menjadi tidak tersedia
kembali.
35
iv. Proses-proses yang dieksekusi haruslah tidak dibatasi oleh kebutuhan
sinkronisasi antar proses.
v. Algoritma ini menghendaki memberikan semua permintaan selama
waktu yang berhingga.
36
Dari ketiga pendekatan diatas, dapat diturunkan menjadi empat buah metode untuk
mengatasi deadlock, yaitu:
Pencegahan deadlock
Menghindari deadlock
Mendeteksi deadlock
Pemulihan deadlock
Namun pada sebagian besar Sistem Operasi dewasa ini mereka lebih condong
menggunakan pendekatan untuk mengabaikan semua deadlock yang terjadi.
Silberschatz (1994) merumuskan sebuah strategi penanggulangan deadlock terpadu
yang dapat disesuaikan dengan kondisi dan situasi yang berbeda, strateginya sendiri
berbunyi:
1. Kelompokkan sumber daya kedalam kelas yang berbeda
37
Pencatatan alokasi memori
Memori yang tersedia harus dikelola dengan pencatatan pemakaian memori yaitu:
1.Bitmap
Memori dibagi menjadi unit-unit alokasi, berkorespondensi dengan tiap
alokasi, yaitu 1 bit pada bit map.
- Nilai 0 pada peta bit berarti unit itu masih bebas
- Nilai 1 berarti unit sudah digunakan
Masalah pada peta bit adalah penetapan mengenai ukuran unit alokasi
memori,yaitu:
-Unit lokasi memori berukuran kecil berarti membesarkan ukuran peta bit
-Unit alokasi memori n berukuran besar berarti peta bit kecil tapi memoria banyak
disiapkan pada unit terakhir jika ukuran proses bukan kelipatan unit alokasi
2. Link List
Sistem operasi mengelola senarai berkait (linked list) untuk segmen-segmen
memori yang telah dialokasikan dan bebas. Segmen memori menyatakan memori
untuk proses atau memori yang bebas(lubang). Senarai segmen diurutkan sesuai
alamat blok. Memori yang digunakan pada metode ini lebih kecil dibandingkan
dengan peta bit
38
Virtual Memory
1. Demand paging
39
instruksi di-restart.
Apabila tidak ditemukan frame bebas maka dilakukan page replacement yaitu
mencari beberapa page di memori yang tidak digunakan kemudian dilakukan swap
out ke backing store. Terdapat beberapa algoritma page replacement dimana
performansi algoritma diharapkan menghasilkan jumlah page fault minimum.
Beberapa page kemungkinan dibawa ke memori beberapa kali Perangkat keras
yang dibutuhkan untuk mendukung demand paging sama dengan perangkat keras
untuk sistem paging dengan swapping yaitu Tabel page : table mempunyai
kemampuan untuk memberi entry bit valid-invalid atau nilai khusus untuk bit
proteksi
Memori sekunder : digunakan untuk membawa page yang tidak di memori dan
biasanya adalah disk kecepatan tinggi yang disebut swap device.
40
Algoritma page replacement Clock
Mari kita bahas satu per-satu Algoritma Page Replacement di atas.
Dari segi mekanisme algoritma tersebut, setiap akan timbul page fault, page
yang diganti dengan pilihan secara acak. Untuk segi tekniknya sendiri pun
algoritma ini tidak perlu menggunakan informasi dalam menentukan page yang
diganti, di dalam memory utama itu sendiri pun sudah mempunyai bobot yang sama
untuk dipilih, karena teknik ini dapat dipakai untuk memilih page sembarang.
Termasuk page yang sudah dipilih dengan benar-benar / page yang tidak seharusnya
diganti.
Inti dari algoritma ini adalah simple / paling sederhana karena prinsipnya sama
seperti prinsip antrian tak berprioritas. Page yang masuk terlebih dahulu maka page
tersebut akan keluar duluan juga. Untuk algoritma ini menggunakan structure data
stack. Jadi cara kerjanya yaitu dimana ketika tidak ada frame yang kosong saat
terjadi page fault maka korban yang dipilih adalah frame dengan stack paling bawah
seperti hal nya halaman yang sudah lama tersimpan didalam memory maka dari itu
algoritma ini juga bisa memindahkan page yang sering digunakan.
41
Contoh gambar page replacement FIFO
Dulu algoritma ini di anggap cukup mengatasi pergantian page sampai pada tahun
70-an, pada saat itu juga Belady menemukan keganjalan pada algoritma ini dan
dikenal dengan anomali Belady. Anomali Belady itu sendiri ialah keadaan dimana
page fault rate meningkat seiring dengan pertambahannya jumlah frame.
42
c) Algoritma Page Replacement Optimal
Pengertian dari algoritma ini sendiri yaitu algoritma yang page nya paling
optimal. Untuk prinsip dari algoritma ini sangat efisien sekali karena hanya
mengganti halaman yang sudah tidak terpakai lagi dalam jangka waktu lama
sehingga page fault yang terjadi akan berkurang dan terbebas dari anomali
Belady Selain itu juga page fault dari algoritma ini memiliki rate paling tinggi dari
algoritma lainnya dari semua kasus, akan tetapi belum bisa disebut sempurna
karena sulit untuk dimengerti dan dari segi system pun belum tentu bisa mengetahui
page untuk berikutnya tetapi dapat disimulasikan hanya untuk suatu program.
Untuk intinya gunakanlah hingga mendekati page optimal agar bisa
memanfaatkannya.
Untuk mekanisme dari algoritma ini diberi dua bit untuk mencatat status page,
diantaranya bit M dan R yaitu :
Bit M : Page yang telah dimodifikasi
Bit M = 0 berarti tidak dimodif
Bit M = 1 berarti sudah dimodif
Bit R : Page yang sedang dipacu / referenced
Bit R = 1 berarti sedang di acu
Bit R = 0 berarti tidak sedang di acu
43
Adanya dua bit di atas maka akan dapat dikelompokkan menjadi 4 kelas page, yaitu
:
Kelas 0 => Tidak sedang di acu / belum di modif (R=0, M=0)
Kelas 1 => Tidak sedang di acu / telah di modif (R=0, M=1)
Kelas 2 => Sedang di acu / belum di modif (R=1, M=0)
Kelas 3 => Sedang di acu / telah di modif (R=1, M=1)
Jadi, apabila algoritma ini diasumsikan kelas-kelas bernomor lebih rendah baru
akan digunakan kembali dalam relatif jangka waktu lama. Intinya algoritma ini
mudah dipahami dan dikembangkan karena sangat efisien walaupun tak banyak
langkah dalam pemilihan page dan kelemahannya juga tidak optimal tapi dalam
kondisi normal yang memadai.
44
Contoh gambar page replacement LRU
Algoritma second chance merupakan hasil modifikasi dari algoritma FIFO yang
disempurnakan lagi. Algoritma ini menggunakan tambahan berupa reference bit
yang nilainya 0 atau 1. Jika dalam FIFO menggunakan stack, maka second chance
menggunakan circular queue. Halaman yang baru di-load atau baru digunakan akan
diberikan nilai 1 pada reference bit-nya. Halaman yang reference bit-nya bernilai 1
tidak akan langsung diganti walaupun dia berada di antrian paling bawah (berbeda
dengan FIFO).
45
Setiap halaman yang tidak di- swap (karena reference bit-nya bernilai 1), setiap
dilewati saat razia reference bit-nya akan diset menjadi 0.
Algoritma Clock merupakan hasil modifikasi dari algoritma FIFO yang kedua
dan juga merupakan model lain dari algoritma page replacement second chance
page, namun dalam implementasinya menggunakan 'circular queue' dengan page
berbentuk lingkaran.
Jika :
Nilai bit = 0, ganti page
Nilai bit = 1
Ubah nilai bit = 0
Pointer bergerak ke page berikutnya searah jarum jam.
46
Pengalokasian Contigous
47
Kelemahan: jika proses yang berukuran kecil terpaksa masuk ke partisi sisa yang
besar, sehingga terjadi pemborosan ruang.
2. Partisi Dinamis
Ciri-ciri:
Pada kondisi awal, memori tidak dibagi menjadi partisi-partisi
Pemartisian dilakukan pada saat image proses akan disalin ke memori
utama.
Ukuran partisi yang dialokasikan akan disesuaikan dengan ukuran image
proses.
Partisi akan dibebaskan jika program sudah selesai.
Keuntungan : tidak terjadi fragmentasi internal alokasi memori disesuaikan
dengan besarnya image proses.
Cara kerja:
Pengalokasian dilakukan dengan mencari hole suatu ruang memori
utama yang kosong, yang cukup besar untuk menampung image proses.
Hole sisa kadang kala terlalu kecil untuk dapat dialokasikan ke proses
lainnya sehingga tidak bisa digunakan lagi fragmentasi eksternal.
Salah satu cara untuk mengatasi masalah ini adalah melakukan memory
compaction.
48
Menggunakan area memori khusus untuk mencatat seluruh area kosong
pada memori utama.
Memakai nilai 0 dan 1
Nilai 0 alamat memori tersebut masih kosong
Nilai 1 alamat memori tersebut sudah terisi
2. Linked list
Informasi mengenai hole kosong berikutnya dicatat pada hole kosong
sebelumnya.
Tidak diperlukan area memori khusus. Karena seluruh informasi tercatat di
area memori kosong itu sendiri sehingga menghemat kapasitas memori
utama.
2. Algoritma First-fit
Mencari memori kosong dari alamat awal sampai menemukan blok yang
dapat menampung image proses
Sederhana dan cepat.
3. Algoritma Next-fit
Hampir sama dengan First-fit.
Bedanya: proses searching dimulai dari alamat alokasi terakhir
4. Algoritma Worst-fit
49
Mencari hole yang paling besar di seluruh area memori utama.
Tujuannya: hole sisa yang tercipta setelah alokasi masih cukup besar untuk
dialokasikan ke proses lainnya.
3. Sistem Buddy
Berupa pemartisian secara dinamis
Ciri khusus adalah partisi yang terbentuk senantiasa berukuran besar sebesar
bilangan 2n 2,4,8,16…..256,512,1024(1Mb)
2) Pengalokasian
Selanjutnya adalah mencari hole yang ukurannya sebesar perhitungan.
Jika tidak ada maka dicarikan hole yang berukuran sedikit lebih besar.
Kemudian dipecah secara bertahap sesuai dengan aturan bilangan pangkat
2.
Misal : ukuran image proses = 12kb dan hole yang paling kecil adalah 64kb.
maka dipecah menjadi 2 partisi 32kb, selanjutnya dipecah lagi menjadi 2 partisi
16kb dan partisi 16kb pertama yang bisa dipakai untuk image proses 12kb.
50
Pengalokasian Non Contigous
51
7. Pemetaan ke alamat fisik dilakukan dengan menggunakan tabel segmen,
masing-masing berisi base dan limit
Keuntungan :
• Sistem dapat memanfaatkan memori utama secar lebih efisien
• Sistem operasi masih mampu memuatkan proses bila jumlah total lubang-
lubang memori cukup untuk memuat proses yang akan dieksekusi
Kelemahan :
• Memerlukan pengendalian yang lebih rumit dan sulit
• Memori dapat menjadi banyak lubang tersebar (memori tak terpakai
bertebaran).
52
Sistem Input Output
a) Pengertian Input
Input adalah semua data dan perintah yang dimasukkan ke dalam memori
komputer untuk selanjutnya diproses lebih lanjut oleh prosesor. Sebuah perangkat
input adalah komponen piranti keras yang memungkinkan user atau pengguna
memasukkan data ke dalam komputer, atau bisa juga disebut sebagai unit luar
yang digunakan untuk memasukkan data dari luar ke dalam mikroprosesor.
b) Pengertian Output
Output adalah data yang telah diproses menjadi bentuk yang dapat digunakan.
Artinya komputer memproses data-data yang diinputkan menjadi sebuah
informasi. Yang disebut sebagai perangkat output adalah semua komponen piranti
keras yang menyampaikan informasi kepada orang-orang yang menggunakannya.
1.Hardware I/O
Secara umum, I/O Hardware terdapat beberapa jenis seperti device
penyimpanan (disk,tape), transmission device (network card, modem), dan human-
interface device (screen, keyboard, mouse). Device tersebut dikendalikan oleh
instruksi I/O. Alamat-alamat yang dimiliki oleh device akan digunakan oleh direct
I/O instruction dan memory-mapped I/O. Beberapa konsep yang umum digunakan
ialah port, bus (daisy chain/ shared direct access), dan controller (host adapter).
Port adalah koneksi yang digunakan oleh device untuk berkomunikasi dengan
mesin.
Bus adalah koneksi yang menghubungkan beberapa device menggunakan kabel-
kabel.
Controller adalah alat-alat elektronik yang berfungsi untuk mengoperasikan port,
bus, dan device.
2.Interface I/O
I/O interface adalah peralatan yang dimana informasi dapat masuk dan keluar
dari perangkat seperti computer. Dalam komputasi input output adalah
53
komunikasi antara system pengolahan informasi dan dunia luar. Input adalah
sinyal atau data yang diterima oleh system dan output adalah sinyal atau data yang
dikirim dari itu. Contoh alat input yaitu keyboard , mouse , scanner, joystick ,
camera digital, bar code reader, webcam . dan contoh dari alat output adalah
monitor, printer, proyektor, dan speaker.
3.Subsistem I/O Pada Kernel
Kernel menyediakan banyak service yang berhubungan dengan I/O. Pada bagian
ini, kita akan mendeskripsikan beberapa service yang disediakan oleh kernel I/O
subsystem, dan kita akan membahas bagaimana caranya membuat
infrastruktur hardware dan device-driver. Service yang akan kita bahas adalah I/O
scheduling, buffering, caching, spooling, reservasi device, error handling.
54
BAB III
PENUTUP
Kesimpulan
Dari materi system operasi yang telah di jelaskan ada beberapa penjadwalan
proses yang dijelaskan menurut berdasarkan fungsi sebagia berikut :
Input adalah semua data dan perintah yang dimasukkan ke dalam memori
komputer untuk selanjutnya diproses lebih lanjut oleh prosesor. Output adalah data
yang telah diproses menjadi bentuk yang dapat digunakan. Artinya komputer
memproses data-data yang diinputkan menjadi sebuah informasi.
55
NO. NAMA NPM MATERI
B.Implementasi
Penjadwalan Proses. Procedence Graph, Petri Net, Fork-
H.Pengalokasian Non Join-Qiut, Parbegin-Parend, And.
1 Dewantoro Wibisono 17.63.0313 Contigous. Paging
Bitmap, link list & Hardware I/O,
E.Pencatatan alokasi Interface I/O, Subsistem I/O pada
Memori & I. Sistem karnel, Transformasi I/O ke opersi
2 Ahmad Indra Rahman 17.63.0704 Input-Output. hardware
Muhammad Firdaus Sinkronisasi software, sinkronisasi
Ananda hardware. & Penyebab deadlock
17.63.0590 prevention, deadlock preventoin,
C. Sikronisasi & D. deadlock avoidence, deadlock
3 Deadlock Detection
Sutan Vena Aprian G.Pengalokasian
17.63. 0681
4 Tanjung Contigous. Statis, Dinamis, Buddy Sistem
Preemptive, Non Preemptive; FCFS,
SJF, SRTF, RR, Prioritas, Multilevel
Queue, Multilevel Feed- back
Queue.
A. Penjadwalan
Demand paging, Algoritma page
Proses
replacement
F. Virtual Memory
56