Anda di halaman 1dari 60

MAKALAH SISTEM OPERASI

Dosen Pengampu :

Lilis Anggraini, S.Kom., M.Kom


Disusun Oleh :

1. Dewantoro Wibisono 17.63.0313


2. Ahmad Indra Rahman 17.63.0704
3. Muhammad Firdaus Ananda 17.63.0590
4. Sutan Vena Aprian Tanjung 17.63.0681
5. Yusril Mahendra 17.63.0869

PROGRAM STUDI SI TEKNIK INFORMATIKA


FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS ISLAM KALIMANTAN
MUHAMMAD ARSYAD AL BANJARI
BANJARMASIN
2019
KATA PENGANTAR

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

Banjarmasin,12 Januari 2019

Penyusun.

ii
DAFTAR ISI

KATA PENGANTAR ............................................................................................ ii

DAFTAR ISI .......................................................................................................... iii

BAB I PENDAHULUAN ....................................................................................... 1

Latar Belakang .............................................................................................. 1

Rumusan Masalah ......................................................................................... 1

BAB II PEMBAHASAN ........................................................................................ 2

Penjadwalan Proses Preemptive, Non Preemptive; FCFS, SJF, SRTF, RR,

Prioritas, Multilevel Queue, Multilevel Feed- back Queue ................................ 2

Implementasi Penjadwalan Proses .............................................................. 12

Sinkronisasi ................................................................................................. 24

1. Race Condition .......................................................................................... 24

2. Masalah Critical Section .......................................................................... 25

3. Solusi ke Masalah Critical-Section ..................................................... 26

4. Bakery Algorithm...................................................................................... 26

5. Semaphore ................................................................................................. 27

6. Problem Klasik pada Sinkronisasi ............................................................ 27

7. Monitors .................................................................................................... 28

Deadlock ..................................................................................................... 30

iii
1. Peranan Deadlock ............................................................................... 30

2. Resources-Allocation Graph ............................................................... 31

3. Strategi menghadapi Deadlock ........................................................... 31

4. Strategi Ostrich ........................................................................................ 32

5. Mencegah Deadlock ................................................................................. 32

6. Menghindari Deadlock ............................................................................. 34

7. Kondisi Aman (Safe state) ........................................................................ 35

8. Kondisi Tak Aman (Unsafe state)............................................................. 35

9. Algoritma Bankir ...................................................................................... 35

10. Mendeteksi Deadlock dan Memulihkan Deadlock ................................. 36

Pencatatan alokasi memori .......................................................................... 38

Virtual Memory........................................................................................... 39

Pengalokasian Contigous ............................................................................ 47

Pengalokasian Non Contigous .................................................................... 51

Sistem Input Output .................................................................................... 53

BAB III PENUTUP .............................................................................................. 55

Kesimpulan ....................................................................................................... 55

iv
BAB I
PENDAHULUAN

Latar Belakang

Sistem operasi merupakan sebuah penghubung antara pengguna dari


komputer dengan perangkat keras computer. Sebelum ada sistem operasi, orang
hanya menggunakan komputer dengan menggunakan sinyal analog dan sinyal
digital. Seiring dengan berkembangnya pengetahuan dan teknologi, pada saat ini
terdapat berbagai system operasi dengan keunggulan masing masilng. Untuk lebih
memahami sistem operasi maka sebaiknya perlu diketahui terlebih dahulu beberapa
konsep daasar mengenai sistem operasi itu sendiri.
Pengertian system operasi secara umum ialah pengelolaan seluruh sumber
daya yang terdapat pada sistem komputer dan menyediakan sekumpulan layanan
(system call) ke pemakai sehingga memudahkan dan menyamakan penggunaan
serta pemanfaatan sumber daya sistem komputer.

Rumusan Masalah

1. Apa saja yang ada pada Penjadwalan Proses?


2. Apa saja yang ada pada Implementasi Penjadwalan Proses?
3. Apa saja yang ada pada Sinkronisasi?
4. Apa saja yang ada pada DeadLock?
5. Apa saja yang ada pada Pencatatan Alokasi Memori?
6. Apa saja yang ada pada Virtual Memory?
7. Apa saja yang ada pada Pengalokasian Contigous?
8. Apa saja yang ada pada Non Contigous?
9. Apa saja yang ada pada Sistem Input-Output?

1
BAB II
PEMBAHASAN

Penjadwalan Proses Preemptive, Non Preemptive; FCFS, SJF, SRTF, RR,


Prioritas, Multilevel Queue, Multilevel Feed- back Queue

 Algoritma Penjadwalan First Come First Served (FCFS)

Algoritma ini merupakan algoritma penjadwalan yang paling sederhana yang


digunakan CPU. Dengan menggunakan algoritma ini setiap proses yang berada
pada status ready dimasukkan kedalam FIFO queue atau antrian dengan prinsip
first in first out, sesuai dengan waktu kedatangannya. Proses yang tiba terlebih
dahulu yang akan dieksekusi.

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:

Hitunglah AWT menggunakan algoritma FCFS

Maka gantt chart kedatangan proses:

Sehingga waktu tunggu untuk tiap-tiap proses terlihat pada tabel berikut:

AWT = (0+23+29)/3 = 17,3 ms

Kelemahan dari algoritma ini:

1. Waiting time rata-ratanya cukup lama.


2. Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk
menunggu 1 proses besar yang sedang dieksekusi oleh CPU. Algoritma ini
juga menerapkan konsep non-preemptive, yaitu setiap proses yang sedang
dieksekusi oleh CPU tidak dapat di-interrupt oleh proses yang lain.

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 SHORTEST JOB FIRST (SJF) :

Contoh:
Ada 4 buah proses yang datang berurutan yaitu :

 P1 dengan arrival time pada 0.0 ms dan burst time 7 ms,.


 P2 dengan arrival time pada 2.0 ms dan burst time 4 ms.

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.

Algoritma ini dapat dibagi menjadi dua bagian yaitu :


 Preemptive : Jika ada proses yang sedang dieksekusi oleh CPU dan terdapat
proses di ready queue dengan burst time yang lebih kecil daripada proses yang
sedang dieksekusi tersebut, maka proses yang sedang dieksekusi oleh CPU akan
digantikan oleh proses yang berada di ready queue tersebut. Preemptive SJF
sering disebut juga Shortest-Remaining- Time-First scheduling.(SRTF)

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.

CONTOH SJF-NON PREEMPTIVE :

 Algoritma Priority Scheduling

Priority Scheduling merupakan algoritma penjadwalan yang mendahulukan proses


yang memiliki prioritas tertinggi. Setiap proses memiliki prioritasnya masing-
masing.
Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:

1. Time limit.
2. Memory requirement.
3. Akses file.
4. Perbandingan antara burst M/K dengan CPU burst.
5. Tingkat kepentingan proses.

Priority scheduling juga dapat dijalankan secara preemptive maupun non-


preemptive. 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. Sementara itu, pada non-preemptive, proses yang baru datang
tidak dapat menganggu proses yang sedang berjalan, tetapi hanya diletakkan di
depan queue.

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:

Hitunglah AWT menggunakan algoritma PS.

Maka gantt chart kedatangan proses:

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

Penggunaan Waktu Quantum

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.

Multilevel Feedback Queue

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.

Gambar Multilevel Feedback Queue

Algoritma ini didefinisikan melalui beberapa parameter, antara lain:


Jumlah antrian.
Algoritma penjadwalan tiap antrian.
Kapan menaikkan proses ke antrian yang lebih tinggi.
Kapan menurunkan proses ke antrian yang lebih rendah.
Antrian mana yang akan dimasuki proses yang membutuhkan.
Dengan pendefinisian seperti tadi membuat algoritma ini sering dipakai, karena
algoritma ini mudah dikonfigurasi ulang supaya cocok dengan sistem. Tapi untuk
mengatahui mana penjadwal terbaik, kita harus mengetahui nilai parameter
tersebut.

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

Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem


operasi yang berkaitan dengan urutan kerja yang dilakkan sistem komputer.
Penjadwalan bertugas memutuskan :
 Proses yang harus berjalan
 Kapan dan selama berapa lama proses itu berjalan.

Sasaran Utama Penjadwalan Proses


Optimasi kerja menurut kriteria tertentu
Kriteria untuk mengukur dan optimasi kinerja penjadwalan : [Tan-92] [MIL-92]
 Adil (fariness)
 Efesiensi
 Waktu tanggap (response time)
 Turn Arround Time
 Throughtput

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

Waktu tanggap pada sistem interaktif (Interaktif)


Waktu tanggap dalam sistem interaktif didefinisikan sebagai waktu yang
dihabiskan dari saat karakter terakhir dari perintah dimasukkan atau transaksi
sampai hasil pertama muncul dilayar (terminal). Waktu tanggap ini disebut terminal
response time.
Waktu tanggap pada sistem waktu nyata(Real Time)
Pada sistem waktu nyata, waktu tanggap didefinisikan sebagai waktu dari
saat kejadian (internal atau
eksernal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut
event response
time. Sasaran pendjadwalan adalah meminimalkan waktu tanggap.

Turn Arround Time


Turn arround time adalah waktu yang dihabiskan dari saat program atau job
mulai masuk ke system sampai proses diselesaikan sistem. Waktu yang dimaksud
adalah waktu yang dihabiskan dalam sistem, diekspresikan sebagai jumlah waktu
eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu;
Turn Arround Time = waktu eksekusi + waktu tunggu
Sasaran penjadwalan adalah meminimalkan turn arround time.

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.

Penjadwal jangka menengah


adalah menangani proses-proses swapping. Proses-proses mempunyai
kepentingan kecil saat itu sebagai proses yang tertunda. Tetapi, begitu kondisi yang
membuatnya terunda hilang dan proses dimasukkan kembali ke memori utama dan
ready. Penjadwal jangka menengah mengendalikan transisi dari suspended-ready
(dari keadaan suspend ke ready) proses-proses swapping.
Penjadwal Jangka Panjang
Penjadwal jangka panjang bekerja terhadap antrian batch dan memilih batch
berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses dengan
penggunaan sumber daya yang intensif (yaitu waktu proses, memori, perangkat
I/O), program-program ini berprioritas rendah, digunakan sebagai pengisi (agar
pemroses sibuk) selama periode aktivitas job-job interaktif rendah. Sasaran utama
penjadwal jangka pangjang adalah memberi keseimbangan job-job campuran.
Dikaitkan dengan state-state proses.
Strategi Pendjadwalan
Terdapat dua strategi penjadwalan, yaitu:
1. Penjadwalan nonpreemptive (run – to – completion)
2. Penjadwalan preemptive

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).

Algoritma-algoritma yang menerapkan strategi preemptive diantaranya:


 RR (Round Robin)
 SRF (Shortest remaining First)
 PS (Priority Schedulling)
 GS (Guaranteed Schedulle)

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.

Algoritma penjadwalan ini dapat diimplementasi sebagai berikut:


 Mengelola senarai proses ready (runnable) seusai urutan kedatangan.
 Ambil proses yang berada diujung depan antrian menjadi running.
 Bila kwanta belum habis dan proses selesai maka ambil proses
diujung depan antrian proses ready.
 Jika kwanta habis dan proses belum selesai maka tempatkan proses
running ke ekor antrian proses ready dan ambil proses diujung depan
antrian proses ready.

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.

Berdasarkan kriteria penilaian penjadwalan:


Fairness
Penjadwalan RR adil bila dipandang dari persamaan pelayanan oleh pemroses.
Efesiensi
Penjadwalan RR cenderung efesien pada sistem interaktif.
Waktu tanggap
Penjadwalan RR memuaskan untuk sistem interaktif, tidak memakai untuk sistem
waktu nyata.
Turn Arround Time
Penjadwalan RR cukup bagus.
Throughput
Penjadwalan RR cukup bagus.
Penggunaan:
 Cocok untuk sistem interaktif-time sharing dimana kebanyakan waktu
dipergunakan menunggu kejadian eksternal. Contoh ; text-editor,
kebanyakan waktu program adalah menunggu keyboard, hingga dijalankan
proses-proses lain.
 Tidak cocok untuk sistem real-time.

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.

Berdasarkan kriteria penilaian penjadwalan :


 Fairness : Penjadwalan FIFO adil bila dipandang dari semantik antrian.
 Efesiensi :Penjadwalan FIFO sangat efesien
 Waktu tanggap :Penjadwalan FIFO sangat jelek, tidak cocok untuk sistem
interaktif apalagi waktu nyata.
 Turn arround time : Penjadwalan FIFO jelek
 Throughput :Penjadwalan FIFO jelek.

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.

Penjadwalan Berprioritas (PS)


Ide penjadwalan adalah tiap proses diberikan prioritas dan proses berprioritas tinggi
running (mendapat jatah waktu proses).
Prioritas dapat diberikan secara :
Prioritas statis
Prioritas dinamis
Prioritas Statis
Prioritas statis berarti rioritas tak berubah
Keunggulan
 mudah diimplementasikan
 mempunyai overhead relatif kecil

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.

Algoritma Prioritas Dinamis


Algoritma dituntun oleh keputusan untuk memenuhi kebijaksanaan tertentu yang
menjadi tujuan.
Algoritma sederhana yang memberi layanan bagus adalah men-set prioritas dengan
nilai 1/f dimana f adalah ratio kwanta terakhir yang digunakan proses.
 Proses yang menggunakan 2 msec kwanta 100 ms maka prioritasnya 50.
 Proses yang berjalan selama 50 ms sebelum blocked berprioritas 2.
 Proses yang menggunakan seluruh kwanta berprioritas 1.

Keunggulan Algoritma Penjadwalan Berprioritas


Biasanya memenuhi kebijaksanaan yang ingin mencapai maksimasi suatu kriteria
diterapkan.

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.

Penjadwalan dengan Banyak Antrian (MFQ)


Penjadwalan ini merupakan:
 Penjadwalan preemptive (by-time)
 Penjadwalan berprioritas dinamis.

Penjadwalan ini untuk mencegah banyaknya swapping dengan proses-proses yang


sangat banyakmenggunakan pemroses (karena menyeelesaikan tugasnya memakan
waktu lama) diberi jatah waktu (jumlah kwanta) lebih banyak dalam satu waktu.
Penjadwalan ini menghendaki kelas-kelas prioritas bagi proses-proses yang ada.
Kelas tertinggi berjalan selama satu kwanta, kelas berikutnya berjalan selama dua
kwanta, kelas berikutnya berjalan empat kwanta, dan seterusnya. Ketentuan yang
berlaku adalah sebagai berikut:
 Jalankan proses pada kelas tertinggi
 Jika proses menggunakan seluruh kwanta yang dialokasikan maka
diturunkan kelas prioritasnya.
 Proses yang masuk untuk pertama kali ke sistem langsung diberi kelas
tertinggi.

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.

Dewantoro wibisono 17630313

23
Sinkronisasi

Merupakan suatu proses pengaturan jalannya beberapa proses pada waktu


yang bersamaan untuk menyamakan waktu dan data supaya tidak terjadi
inconsitensi (ketidak konsistenan) data akibat adanya akses data secara konkuren
agar hasilnya bagus dan sesuai dengan apa yang diharapkan.
Disini sinkronisasi diperlukan agar data tersebut tetap konsisten.

Shared memory merupakan solusi ke masalah bounded-butter yang


mengijinkan paling banyak n-1 materi dalam buffer pada waktu yang sama. Suatu
solusi, jika semua N buffer digunakan tidaklah sederhana. Dimisalkan kita
memdifikasi producer-consumer code dengan menambahkan suatu variable
counter, dimulai dari 0 dan masing-masing waktu tambahan dari suatu item baru
diberikan kepada buffer.

1. Race Condition

Race Condition adalah situasi di mana beberapa proses mengakses dan


memanipulasi data bersama pada saat besamaan. Nilai akhir dari data
bersama tersebut tergantung pada proses yang terakhir selesai. Untuk
mencegah race condition, proses-proses yang berjalan besamaan harus di
disinkronisasi.
Dalam beberapa sistem operasi, proses-proses yang berjalan
bersamaan mungkin untuk membagi beberapa penyimpanan umum,
masing-masing dapat melakukan proses baca (read) dan proses tulis
(write). Penyimpanan bersama (shared storage) mungkin berada di
memori utama atau berupa sebuah berkas bersama, lokasi dari memori
bersama tidak merubah kealamian dari komunikasi atau masalah yang
muncul. Misalnya Ketika sebuah proses ingin mencetak sebuah berkas,
proses tersebut memasukkan nama berkas ke dalam sebuah spooler
direktori yang khusus. Proses yang lain, printer daemon, secara periodik
memeriksa untuk mengetahui jika ada banyak berkas yang akan dicetak,

24
dan jika ada berkas yang sudah dicetak dihilangkan nama berkasnya dari
direktori.

2. Masalah Critical Section

Bagian dari program dimana shaed memory diakses disebut Critical


Section atau Critical Region.
Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana
sumber daya bersama diakses. Terdiri dari:
Entry Section: kode yang digunakan untuk masuk ke dalam critical section
Critical Section: Kode di mana hanya ada satu proses yang dapat dieksekusi pada
satu waktu
Exit Section: akhir dari critical section, mengizinkan proses lain
Remainder Section: kode istirahat setelah masuk ke critical section.

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

Ada bebrapa Solusi untuk mengatasi masalah Critical Section, yaitu:


 Mutual exclution
 Jika proses sedang mengeksekusi critical section-nya maka tidak ada
proses lain yang dapat mengeksekusi dalam critical section mereka.
 Progress
 Jika tidak ada proses yang sedang dieksekusi dalam critical section dan
ada beberapa proses yang ingin masuk ke critical section mereka, maka
pemilihan proses yang akan masuk ke critical section berikutnya tidak bias
ditunda.
 Bounded Waiting
 Suatu keterikatan harus ada pada sejumlah proses yang diijinkan masuk ke
critical section mereka, setelah adanya proses yang meminta masuk ke
critical section dan sebelum permintaan itu diterima.

a. Asumsikan bahwa tiap proses mengeksekusi pada nonzero speed.


b. Tidak ada asumsi mengenai kecepatan relative dan n proses.
Cara-cara memecahkan masalah
 Hanya dua proses, Po dan P1
 Struktur umum dari proses adalah Pi (proses lain Pj)

4. Bakery Algorithm

Critical section untuk n proses:


a. Sebelum memasuki critical Section-nya, proses menerima nomor pemilik nomor
terkecil memasuki critical section.
b. Jika proses Pi dan Pj menerima nomor yang sama, jika i < j, maka Pi dilayani
duluan, lainnya Pj dilayani duluan (if i< j, then Pi is served first; else Pj is served
first).
c. Skema penomoran selalu menghasilkan angka –angka yang disebutkan satu per
satu, yaitu 1,2,3,3,3,3,4,5….

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

Menurut Coffman dalam bukunya "Operating System" menyebutkan empat syarat


bagi terjadinya deadlock, yaitu:
 Mutual Exclusion

Suatu kondisi dimana setiap sumber daya diberikan tepat pada satu proses
pada suatu waktu.
 Hold and Wait

Kondisi yang menyatakan proses-proses yang sedang memakai suatu


sumber daya dapat meminta sumber daya yang lain.
 Non-pre-emptive

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.

3. Strategi menghadapi Deadlock

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

Pendekatan yang paling sederhana adalah dengan menggunakan strategi burung


unta: masukkan kepala dalam pasir dan seolah-olah tidak pernah ada masalah sama
sekali. Beragam pendapat muncul berkaitan dengan strategi ini. Menurut para ahli
Matematika, cara ini sama sekali tidak dapat diterima dan semua keadaan deadlock
harus ditangani. Sementara menurut para ahli Teknik, jika komputer lebih sering
mengalami kerusakkan disebabkan oleh kegagalan hardware, error pada
kompilator atau bugs pada sistem operasi. Maka ongkos yang dibayar untuk
melakukan penanganan deadlock sangatlah besar dan lebih baik mengabaikan
keadaan deadlock tersebut. Metode ini diterapkan pada sistem operasi UNIX dan
MINIX.

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

Mutual Spooling sumber daya Dapat menyebabkan chaos


Exclusion

Hold and Meminta sumber daya di Sulit memperkirakan di awal dan


Wait awal tidak optimal

No Pre- Mengambil sumber daya di Hasil proses tidak akan baik


emptive tengah proses

Circular Wait Penomoran permintaan Tidak ada penomoran yang


sumber daya memuaskan semua pihak

6. Menghindari Deadlock

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.

34
Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state, sedangkan
keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta
disebut unsafe-state.

7. 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.

8. 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.
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.

10. Mendeteksi Deadlock dan Memulihkan Deadlock

Metode ini mengunakan pendekatan dengan teknik untuk menentukan apakah


deadlock sedang terjadi serta proses-proses dan sumber daya yang terlibat dalam
deadlock tersebut. Setelah kondisi deadlock dapat dideteksi, maka langkah
pemulihan dari kondisi deadlock dapat segera dilakukan. Langkah pemulihan
tersebut adalah dengan memperoleh sumber daya yang diperlukan oleh proses-
proses yang membutuhkannya. Beberapa cara digunakan untuk mendapatkan
sumber daya yang diperlukan, yaitu dengan terminasi proses dan pre-emption
(mundur) suatu proses. Metode ini banyak digunakan pada komputer mainframe
berukuran besar.
C. Kesimpulan
Untuk mengatasi problem critical section dapat digunakan berbagai solusi software.
Namun masalah yang akan timbul dengan solusi software adalah solusi software
tidak mampu menangani masalah yang lebih berat dari critical section. Tetapi
Semaphores mampu menanganinya, terlebih jika hardware yang digunakan
mendukung maka akan memudahkan dalam menghadapi problem sinkronisasi.
Berbagai contoh klasik problem sinkronisasi berguna untuk mengecek setiap skema
baru sinkronisasi. Monitor termasuk ke dalam level tertinggi mekanisme
sinkronisasi yang berguna untuk mengkoordinir aktivitas dari banyak thread ketika
mengakses data melalui pernyataan yang telah disinkronisasi. Kondisi deadlock
akan dapat terjadi jika terdapat dua atau lebih proses yang akan mengakses sumber
daya yang sedang dipakai oleh proses yang lainnya. Pendekatan untuk mengatasi
deadlock dipakai tiga buah pendekatan, yaitu:
 Memastikan bahwa tidak pernah dicapai kondisi deadlock
 Membiarkan deadlock untuk terjadi dan memulihkannya
 Mengabaikan apa pun deadlock yang terjadi

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

Muhammad Firdaus Ananda 17630590

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

Ahmad Indra Rahman 17630704

38
Virtual Memory

1. Demand paging

Demand Paging atau permintaan pemberian halaman adalah salah satu


implementasi dari memori virtual yang paling umum digunakan. Demand paging
pada prinsipnya hampir sama dengan permintaan halaman ( paging ) hanya saja
halaman ( page ) tidak akan dibawa ke dalam memori fisik sampai ia benar-benar
diperlukan. Untuk itu diperlukan bantuan perangkat keras untuk mengetahui lokasi
dari page saat ia diperlukan. Page diletakkan di memori hanya jika diperlukan. Hal
ini menyebabkan kebutuhan I/O lebih rendah, kebutuhan memori lebih rendah,
respon lebih cepat dan lebih banyak user yang menggunakan.
Proses disimpan di memori sekunder (disk). Jika proses akan dieksekusi, maka
dipindah (swap) ke memori. Menggunakan lazy swapper untuk melakukan
swapping bila page tersebut akan digunakan yang berarti sebuah page tidak pernah
ditukar ke memori kecuali page diperlukan. Jika page diperlukan, dilakukan acuan
ke page tersebut, tetapi jika acuan invalid maka dilakukan penghentian.
Untuk membedakan antara page pada memori dengan page pada disk digunakan
valid-invalid bit. Tabel page untuk page yang berada di memori diset “valid’,
sedangkan tabel page untuk page yang tidak sedang di memori (ada pada disk) diset
“invalid”.
Akses ke page yang diset “invalid” menyebabkan page fault, yang menyebabkan
trap ke sistem operasi. Karena status (register, kode kondisi, counter instruksi) dari
proses ter-interrupt disimpan bila terjadi page fault, proses dapat dimulai lagi pada
tempat dan status yang sama, kecuali page yang cocok sedang di memori dan
sedang diakses. Prosedur untuk menangani page fault.
Sistem operasi melihat tabel untuk menentukan jika acuan invalid maka proses
dihentikan dan page sedang tidak berada di memori.
Jika acuan invalid dilakukan trap ke sistem operasi.
Sistem mencari frame kosong
Sistem melakukan proses swapping ke frame bebas.
Tabel page di-reset, bit valid-invalid diset 1 atau valid

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.

2. Algoritma page replacement

Algoritma page replacement secara umum diinginkan mempunyai rata-rata


page fault terendah. Algoritma dievaluasi dengan menjalankan pada string tertentu
dari memori reference dan menghitung jumlah page fault. String yang mengacu ke
memori disebut reference string (string acuan). String acuan dibangkitkan secara
random atau dengan menelusuri sistem dan menyimpan alamat dari memori acuan.

Terdapat beberapa algoritma page replacement, setiap sistem operasi mempunyai


skema yang unik. Algoritma page replacement secara umum diinginkan yang
mempunyai rata-rata page fault terendah. Algoritma page replacement di antaranya
adalah:
 Algoritma page replacement Acak
 Algoritma page replacement FIFO
 Algoritma page replacement Optimal
 Algoritma page replacement NRU
 Algoritma page replacement LRU
 Algoritma page replacement Second Chance Page

40
 Algoritma page replacement Clock
 Mari kita bahas satu per-satu Algoritma Page Replacement di atas.

a) Algoritma Page Replacement Acak

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.

Contoh gambar algoritma page replacement acak

b) Algoritma Page Replacement FIFO (First In - First Out)

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.

Contoh gambar anomali Belady pada algoritma FIFO

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.

Contoh gambar page replacement optimal

d) Algoritma Page Replacement NRU (Not Recently Used)

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.

e) Algoritma Page Replacement LRU (Least Recently Used)

Dikarenakan algoritma optimal sangat sulit dalam pengimplementasiannya,


maka dibuatlah algoritma lain yang performance-nya mendekati algoritma optimal
dengan sedikit cost yang lebih besar. Sama seperti algoritma optimal, algoritma
LRU tidak mengalami anomali Belady. Algoritma ini memakai linked list untuk
mendata halaman mana yang paling lama tidak terpakai. Linked list inilah yang
membuat cost membesar, karena harus meng-update linked list tiap saat ada
halaman yang di akses.

44
Contoh gambar page replacement LRU

f) Algoritma Page Replacement Second Chance Page

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).

Urutan langkah kerja algoritma second chance adalah sebagai berikut:


Apabila terjadi page fault dan tidak ada frame yang kosong, maka akan dilakukan
razia (pencarian korban) halaman yang reference bit-nya bernilai 0 dimulai dari
bawah antrian (seperti 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.

Contoh gambar algoritma page replacement SCP

g) Algoritma Page Replacement Clock

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.

Yusril Mahendra 17630869

46
Pengalokasian Contigous

Alokasi Berurut (Contiguous)


Memori harus mengakomodasi kebutuhan SO dan proses user. Memori utama
biasanya terbagi dalam dua bagian:
Resident operating system, biasanya tersimpan di alamat memori rendah.
User proces menggunakan memori beralamat tinggi/besar.
Alokasi berurut terbagi menjadi tiga yakni:
1. Partisi statis
Ciri-ciri dari partisi statis sebagai berikut:
1. Memori dibagi menjadi partisi-partisi dengan ukuran yang tetap.
2. Satu proses hanya memakai satu partisi. Jika proses sudah selesai, partisi
tersebut dapat digunakan proses yang lain.
3. Dibagi menjadi 2 bagian:
a) Berukuran sama
Banyak kelemahan, antara lain:
Proses yang ukurannya lebih besar dari ukuran partisi tidak dapat
dialokasikan.
Sebaliknya bila ukuran proses lebih kecil daripada ukuran partisi, maka akan
terjadi pemborosan ruang memori (Fragmentasi internal).
b) Berukuran tidak sama
Untuk mengatasi kelemahan dari Pengalokasian berurut dengan partisi statis
dengan ukuran sama, yaitu proses ukuran kecil diletakkan ke partisi yang kecil dan
sebaliknya.
Ada 2 jenis strategi:
1) Satu antrian untuk setiap partisi
Tiap proses diletakkan pada partisi dengan ukuran terkecil yang dapat dimuatnya.
Kelemahan: ada partisi yang memiliki antrian panjang dan ada yang kosong.
2) Satu antrian untuk seluruh partisi
Semua proses dimasukkan pada satu antrian yang sama, Algoritma penjadwalan
melakukan pemilihan partisi

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.

Yaitu: menggeser image proses-proses yang ada di memori sehingga hole


terkumpul di satu tempat saja
Kelemahan:
 Proses alokasi dan dealokasi menjadi lebih rumit
 Perlu pengelolaan informasi area memori yang masih kosong.

Ada 2 metode pengelolaan memori kosong:


1. Peta bit (bitmap)

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.

Diperlukan algoritma untuk menentukan hole mana yang akan dialokasikan ke


suatu proses.
1. Algoritma Best-fit
 Mencari memori blok yang paling kecil yang dapat menampung image
proses
 Memerlukan waktu lama karena harus searching seluruh blok memori
utama
 Fragmentasi eksternal dapat ditekan sekecil mungkin

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)

Alokasi memori pada sistem buddy:


1) Menentukan ukuran partisi
 Ditentukan ukuran partisi untuk menampung image proses yaitu ukuran
bilangan pangkat 2 terkecil
 Misal : ukuran image proses = 12kb, maka ukuran partisi yang bisa
digunakan adalah 16kb.

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.

Sutan Vena Aprian Tanjung 17630681

50
Pengalokasian Non Contigous

Program dibagi menjadi beberapa blok atau segmen. Blokblok program


ditempatkan di memori dalam potonganpotongan tanpa perlu saling berdekatan.
Teknik ini biasa digunakan pada sistem memori maya sebagai alokasi page-page
dilakukan secara global.
1. Paging
• Paging adalah solusi untuk permasalahan fragmentasi external
• Memori fisik dibagi ke dalam blok-blok ukuran tetap yang
disebut “frame”
• Memori logika dibagi ke dalam blok-blok dengan ukuran yang sama
yang disebut “page”
• Untuk menjalankan program berukuran n page, harus dicari frame
kosong sebanyak n untuk meload program
• Page table digunakan untuk translasikan alamat lojik ke alamat fisik
2. Alamat yang dibangkitkan CPU dibagi menjadi :
• Page number (p) à digunakan sebagai index ke page table. Page table
berisi alamat basis dari setiap page pada memori fisik
• Page Offset (d) à dikombinasikan dengan alamat basis untuk
mendefinisikan alamat memori fisik yang dikirim ke unit memori
3. Skema translasi alamat
4. Model Paging
5. Ukuran page atau frame ditentukan oleh hardware
• Ukuran page merupakan bilangan 2 pangkat k mulai 512 sampai 8192
tergantung arsitektur komputer
6. Segmentasi
• Segmentasi adalah skema pengaturan memori yang mendukung user
untuk melihat memori tersebut
• Tiap-tiap segmen memiliki nama dan panjang.
• Pandangan user mengenai memori:
• Dukungan Hardware :

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).

Dewantoro wibisono 17630313

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.

4.Transformasi I/O Ke Operasi Hardware


- Proses pembacaan file dari disk
- Menentukan device yang menangani file
- Translasi nama kedevice yang representative
- Pembacaan fisik data dari disk melalui beffer

Ahmad Indra Rahman 17630704

54
BAB III
PENUTUP

Kesimpulan

Dari materi system operasi yang telah di jelaskan ada beberapa penjadwalan
proses yang dijelaskan menurut berdasarkan fungsi sebagia berikut :

 Algoritma Penjadwalan First Come First Served (FCFS)


 Algoritma Shortest Job First Scheduler (SJF/SJFS)
 Algoritma Priority Scheduling

Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme di sistem


operasi yang berkaitan dengan urutan kerja yang dilakkan sistem komputer.
Penjadwalan bertugas memutuskan :
 Proses yang harus berjalan
 Kapan dan selama berapa lama proses itu berjalan.

Ada banyak bermacam-macam penjadwlan proses menurut perhitungan secara


algoritma, komponen dll.

Dalam system operasi pun terdapat pembagian input/output di antaranya :


 Hardware I/O
 Interface I/O
 Subsistem I/O Pada Kernel
 Transformasi I/O Ke Operasi Hardware

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

5 Yusril Mahendra 17.63. 0869

56

Anda mungkin juga menyukai