Email : wawans57@yahoo.com
pin : 29a1822c
a. Process Control Block
Process
Control Block berisikan banyak bagian dari informasi yang berhubungan dengan
sebuah proses yang spesifik, termasuk hal-hal di bawah ini:
1. Pointer
Merupakan peubah dinamis dimana suatu peubah yang akan
dialokasikan hanya pada saat diperlukan, yaitu setelah program di
eksekusi.
2. Status Proses
Status new, ready, running, waiting, terminated, dan juga
banyak lagi.
3. Program Counter
Suatu stack yang berisi alamat dari instruksi selanjutnya
untuk dieksekusi untuk proses ini.
4. CPU register
Register bervariasi dalam jumlah dan jenis, tergantung pada
rancangan komputer. Register tersebut termasuk accumulator, register indeks,
stack pointer, general-purposes register, ditambah code information pada
kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus
disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut
berjalan/bekerja dengan benar setelahnya.
Informasi ini dapat termasuk suatu informasi sebagai nilai
dari dasar dan batas register, tabel halaman, atau tabel segmen tergantung pada
sistem memori yang digunakan oleh sistem operasi.
6. Informasi pencatatan
Informasi ini termasuk jumlah dari CPU dan waktu riil yang
digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
7. Informasi status
Informasi termasuk daftar dari perangkat M/K yang di gunakan
pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak
lagi. PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat
bervariasi dari proses yang satu dengan yang lain.
2.
Penjadwalan
proses
Dalam pemroses tunggal, hanya satu proses yang dapat
dijalankan pada saat tertentu, sedangkan yang lain harus menunggu CPU bebas dan
dijadwal ulang. Multiprogramming merupakan cara untuk menjalankan proses setiap
waktu sehingga memaksimalkan penggunaan CPU. Penjadwalan merupakan salah satu
fungsi dasar dari sistem operasi. Hampir semua sumber daya komputer dijadwalkan
sebelum digunakan.
Penjadwalan adalah suatu pekerjaan yang dilakukan untuk mengalokasikan CPU time untuk tasks yang berbeda-beda dalam sistem operasi. Untuk linux ada aspek lain yang penting dalam penjadwalan: seperti menjalankan dengan berbagai kernel tasks.
Linux mempunyai dua algoritma penjadwalan yaitu:
Penjadwalan adalah suatu pekerjaan yang dilakukan untuk mengalokasikan CPU time untuk tasks yang berbeda-beda dalam sistem operasi. Untuk linux ada aspek lain yang penting dalam penjadwalan: seperti menjalankan dengan berbagai kernel tasks.
Linux mempunyai dua algoritma penjadwalan yaitu:
a. Algoritma time-sharing untuk penjadwalan preemptive yang
adil diantara sekian banyak proses.
b. Algoritma yang kedua didesain untuk tugas real-time dimana proritas mutlak lebih utama daripada keadilan mendapatkan suatu pelayanan.
b. Algoritma yang kedua didesain untuk tugas real-time dimana proritas mutlak lebih utama daripada keadilan mendapatkan suatu pelayanan.
Tiga konsep Penjadwalan yaitu Decision Mode, Priority
Function, dan Arbitration Rule
Algoritma Penjadwalan
Algoritma Penjadwalan
1. First In First Out
Algoritma ini merupakan algoritma penjadwalan yang paling
sederhana yang digunakan CPU. Dengan menggunakan algoritma ini seiap proses
yang berada pada status ready dimasukkan ke dalam antrian FIFO sesuai dengan
waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi
terlebih dahulu.
2. Priority Scheduling
Priority Scheduling merupakan algoritma penjadwalan yang
mendahulukan proses dengan nilai prioritas tertinggi. Setiap proses memiliki
prioritasnya masing-masing. Prioritas suatu proses dapat ditentukan melalui
beberapa karakteristik antara lain:
a. Batas
waktu
b. Kebutuhan Memori
c. Akses file
d. Perbandingan antara I/O Burst dengan CPU Burst
e. Tingkat kepentingan proses
3. Last In First Out
b. Kebutuhan Memori
c. Akses file
d. Perbandingan antara I/O Burst dengan CPU Burst
e. Tingkat kepentingan proses
3. Last In First Out
4. Shortest Job Next Algoritma
Metode ini mendahulukan proses dengan CPU burst terkecil
sehingga akan mengurangi waiting time rata-rata.
5. Shortest Remaining Time
6. Round Robin
Algoritma ini didesin untuk sistem time-sharing. Proses akan
mendapat jatah sebesar time quantum dengan nilai quantum umumnya sebesar 10-100
ms. Jika time quantum-nya habis atau proses sudah selesai CPU akan dialokasikan
ke proses berikutnya. Tentu proses ini cukup adil karena tak ada proses yang
diprioritaskan, semua proses mendapat jatah waktu yang sama dari CPU (1/n), dan
tak akan menunggu lebih lama dari (n-1)/q.
7. Multilevel Feedback
Algoritma ini mirip sekali dengan algoritma Multilevel Queue.
Perbedaannya ialah algoritma ini mengizinkan proses untuk pindah antrian. Jika
suatu proses menyita CPU terlalu lama, maka proses itu akan dipindahkan ke
antrian yang lebih rendah. 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 dimanfaatkan penuh dan I/O dapat terus sibuk. Semakin rendah tingkatannya, panjang CPU burst proses juga semakin besar
Biasanya prioritas tertinggi diberikan kepada proses dengan CPU burst terkecil, dengan begitu CPU akan dimanfaatkan penuh dan I/O dapat terus sibuk. Semakin rendah tingkatannya, panjang CPU burst proses juga semakin besar
Penjadwalan CPU mungkin akan dijalankan ketika proses dalam
keadaan:
·
Berubah
dari running ke waiting state.
·
Berubah
dari running ke ready state.
·
Berubah
dari waiting ke ready state.
Penjadwalan Preemptive mempunyai arti kemampuan
sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk
memberi ruang kepada proses yang prioritasnya lebih tinggi. Penjadwalan ini
bisa saja termasuk penjadwalan proses atau I/O.
Penjadwalan Preemptive memungkinkan sistem untuk lebih bisa menjamin
bahwa setiap proses mendapat sebuah slice waktu operasi. Dan juga
membuat sistem lebih cepat merespon terhadap event dari luar
(contohnya seperti ada data yang masuk) yang membutuhkan reaksi cepat dari satu
atau beberapa proses. Membuat penjadwalan yang Preemptive mempunyai
keuntungan yaitu sistem lebih responsif daripada sistem yang memakai
penjadwalan Non Preemptive.
Dalam waktu-waktu tertentu, proses dapat dikelompokkan ke
dalam dua kategori: proses yang memiliki Burst I/O yang sangat lama
disebut I/O Bound, dan proses yang memiliki Burst CPU yang
sangat lama disebut CPU Bound. Terkadang juga suatu sistem mengalami
kondisi yang disebut busywait, yaitu saat dimana sistem menunggurequest
input(seperti disk, keyboard, atau jaringan).
Saat busywait tersebut, proses tidak melakukan sesuatu yang produktif,
tetapi tetap memakan resource dari CPU. Dengan
penjadwalan Preemptive, hal tersebut dapat dihindari.
Dengan kata lain, penjadwalan Preemptive melibatkan
mekanisme interupsi yang menyela proses yang sedang berjalan dan memaksa sistem
untuk menentukan proses mana yang akan dieksekusi selanjutnya.
Penjadwalan nomor 1 dan 4 bersifat Non
Preemptive sedangkan lainnyaPreemptive. Penjadwalan yang biasa digunakan
sistem operasi dewasa ini biasanya bersifat Preemptive. Bahkan beberapa
penjadwalan sistem operasi, contohnya Linux 2.6, mempunyai
kemampuan Preemptive terhadap system call-nya (preemptible
kernel). Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X, dan
Windows NT adalah beberapa contoh sistem operasi yang menerapkan
penjadwalanPreemptive.
Lama waktu suatu proses diizinkan untuk dieksekusi dalam
penjadwalan Preemptivedisebut time slice/quantum. Penjadwalan
berjalan setiap satu satuan time slice untuk memilih proses mana yang
akan berjalan selanjutnya. Bila time slice terlalu pendek maka
penjadwal akan memakan terlalu banyak waktu proses, tetapi bila time
sliceterlau lama maka memungkinkan proses untuk tidak dapat merespon
terhadap eventdari luar secepat yang diharapkan.
2. Kriteria Penjadwalan
Suatu algoritma penjadwalan CPU yang berbeda dapat mempunyai
nilai yang berbeda untuk sistem yang berbeda. Banyak kriteria yang bisa dipakai
untuk menilai algoritma penjadwalan CPU.
Kriteria yang digunakan dalam menilai adalah:
·
CPU
Utilization . Kita ingin menjaga CPU sesibuk mungkin. CPU
utilization akan mempunyai range dari 0 sampai 100 persen. Di
sistem yang sebenarnya ia mempunyai range dari 40 sampai 100 persen.
·
Throughput . Salah
satu ukuran kerja adalah banyaknya proses yang diselesaikan per satuan waktu.
Jika kita mempunyai beberapa proses yang sama dan memiliki beberapa algoritma
penjadwalan yang berbeda, throughputbisa menjadi salah satu kriteria
penilaian, dimana algoritma yang menyelesaikan proses terbanyak mungkin yang
terbaik.
·
Turnaround
Time . Dari sudut pandang proses tertentu, kriteria yang penting
adalah berapa lama untuk mengeksekusi proses tersebut. Memang, lama
pengeksekusian sebuah proses sangat tergantung dari hardware yang dipakai,
namun kontribusi algoritma penjadwalan tetap ada dalam lama waktu yang dipakai
untuk menyelesaikan sebuah proses. Misal kita memiliki sistem komputer yang
identik dan proses-proses yang identik pula, namun kita memakai algoritma yang
berbeda, algoritma yang mampu menyelesaikan proses yang sama dengan waktu yang
lebih singkat mungkin lebih baik dari algoritma yang lain. Interval waktu yang
diijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah proses
disebut turnaround time. Turnaround timeadalah jumlah periode untuk
menunggu untuk dapat ke memori, menunggu diready queue, eksekusi CPU, dan
melakukan operasi I/O.
·
Waiting
Time . Algoritma penjadwalan CPU tidak mempengaruhi waktu untuk
melaksanakan proses tersebut atau I/O, itu hanya mempengaruhi jumlah waktu yang
dibutuhkan proses di antrian ready. Waiting time adalah jumlah
waktu yang dibutuhkan proses di antrian ready.
·
Response
Time . Di sistem yang interaktif, turnaround time mungkin
bukan waktu yang terbaik untuk kriteria. Sering sebuah proses dapat
memproduksioutput di awal, dan dapat meneruskan hasil yang baru sementara
hasil yang sebelumnya telah diberikan ke pengguna. Ukuran lain adalah waktu
dari pengiriman permintaan sampai respon yang pertama diberikan. Ini
disebutresponse time, yaitu waktu untuk memulai memberikan respon, tetapi bukan
waktu yang dipakai output untuk respon tersebut.
·
Fairness . Suatu
algoritma harus memperhatikan pengawasan nilai prioritas dari suatu proses
(menghindari terjadinya starvation CPU time).
·
Efisiensi. Rendahnya overhead dalam context
switching, penghitungan prioritas dan sebagainya menentukan apakah suatu algoritma
efisien atau tidak.
·
Sebaiknya
ketika kita akan membuat algoritma penjadwalan yang dilakukan adalah
memaksimalkan CPU utilization dan throughput, dan
meminimalkan turnaround time, waiting time, dan response time.
3.
Operasi CPU
Ada 3 komponen utama :
1. Processing Unit
2. Memory
3. I/O device
2. Memory
3. I/O device
o Setiap komputer modern yang digunakan saat ini, harus memiliki ketiga komponen tersebut.
o Jika salah satu komponen tidak ada, maka komputer tidak dapat digunakan.
Processing Unit
o sering kita kenal sehari-hari
dengan istilah CPU atau Prosesor
o Mereknya macam-macam, yang sering kita dengar antara lain Intel, AMD, Motorola
o Komponen ini merupakan otak dari suatu komputer karena CPU mengerjakan instruksi perangkat lunak (program) untuk mengubah data ke dalam bentuk informasi.
o Mereknya macam-macam, yang sering kita dengar antara lain Intel, AMD, Motorola
o Komponen ini merupakan otak dari suatu komputer karena CPU mengerjakan instruksi perangkat lunak (program) untuk mengubah data ke dalam bentuk informasi.
Bagian – bagian CPU
1. Unit
Kontrol (mengendalikan seluruh komponen dalam sistem komputer)
Unit kontrol membaca setiap instruksi
yang tersimpan di CPU untuk kemudian menjalankannya. Unit kontrol mengarahkan
sinyal elektronik antara memori utama dan ALU (unit aritmetika/logika), serta
mengarahkan sinyal – sinyal elektronik antara memori utama dan alat input /
output
2. Arithmetic Logical Unit(ALU)
Unit aritmatika dan logika berfungsi
untuk menjalankan operasi aritmatika dan operasi logis serta mengontrol
kecepatan operasi – operasi tersebut. Operasi aritmatika adalah operasi
matematika dasar (penjumlahan, pengurangan, perkalian, dan pembagian) Operasi
Logis adalah perbandingan. Oleh karena itu ALU mampu membandingkan dua data
untuk memeriksa apakah =, >, <, >=, atau <=
3.Register
Unit kontrol dan ALU menggunakan register, yakni area – area tertentu di CPU yang berfungsi untuk meningkatkan performa komputer. Register adalah area penyimpan berkecepatan tinggi untuk menyimpan data sementara selama pemrosesan. Register – register ini juga bisa menyimpan instruksi – instruksi program ketika sedang diterjemahkan, menyimpan data ketika masih diproses oleh ALU, atau menyimpan data hasil perhitungan aritmatika
Unit kontrol dan ALU menggunakan register, yakni area – area tertentu di CPU yang berfungsi untuk meningkatkan performa komputer. Register adalah area penyimpan berkecepatan tinggi untuk menyimpan data sementara selama pemrosesan. Register – register ini juga bisa menyimpan instruksi – instruksi program ketika sedang diterjemahkan, menyimpan data ketika masih diproses oleh ALU, atau menyimpan data hasil perhitungan aritmatika
4.BUS
Jalur data elektronik untuk mentransmisikan bit – bit di dalam CPU maupun antara CPU dengan komponen – komponen lain motherboard. Bus mirip jalan raya dengan banyak jalur (semakin banyak jalurnya, bit – bit pun semakin cepat di transfer)
Jalur data elektronik untuk mentransmisikan bit – bit di dalam CPU maupun antara CPU dengan komponen – komponen lain motherboard. Bus mirip jalan raya dengan banyak jalur (semakin banyak jalurnya, bit – bit pun semakin cepat di transfer)
o Untuk melakukan suatu operasi
terhadap data (intruksi) yang berada dalam memori utama, data (intruksi) mula –
mula disalin dari meori ke register – register dalam CPU. Unit control yang
menangani hal ini. Selanjutnya data diterjemahkan dan diproses. Jika terdapat
operasi aritmatik atau logika, ALU segera mengambil alih tugas tersebut. Hasil
sementara pemrosesan akan ditaruh pada akumulator dan setelah itu baru dikirim
ke memori utama.
o CPU komputer manapun, dari waktu ke
waktu hanya melakukan tiga operasi dasar dan sederhana:
1.Fetch
2.Decode
3.Execute
o Ketika CPU melakukan operasi fetch, satu byte instruksi dari memory disalin ke Arithmetic Logical Unit (ALU). Setelah itu CPU melakukan operasi decode, yaitu menginterpretasikan jenis operasi apa yang terkandung di dalam instruksi tersebut. Setelah mengetahui jenis instruksinya, CPU kemudian meng-execute instruksi tersebut.
2.Decode
3.Execute
o Ketika CPU melakukan operasi fetch, satu byte instruksi dari memory disalin ke Arithmetic Logical Unit (ALU). Setelah itu CPU melakukan operasi decode, yaitu menginterpretasikan jenis operasi apa yang terkandung di dalam instruksi tersebut. Setelah mengetahui jenis instruksinya, CPU kemudian meng-execute instruksi tersebut.
o Selesai melakukan operasi execute,
CPU kembali ke siklus fetch. Proses ini terjadi berulang kali terus menerus
selama komputer belum dimatikan.
o Seringkali ketika kita membeli
komputer baru, terdapat informasi kecepatan prosesor komputer tersebut,
misalnya 2,6GHz. Nilai ini menunjukkan bahwa prosesor tersebut mampu melakukan
siklus fetch-decode-execute sebanyak 2,6 milyar kali dalam satu detik.
o Setiap merek CPU memiliki jenis
instruksinya masing-masing, yang disebut sebagai instruction set, sering
disebut juga dengan bahasa mesin (machine language).
MEMORY
Memory, juga tak kalah penting. komponen ini merupakan komponen yang menghubungkan antara Processing Unit dengan I/O Device.
Memory, juga tak kalah penting. komponen ini merupakan komponen yang menghubungkan antara Processing Unit dengan I/O Device.
Memori utama / main memory
Fungsi :
1. Menyimpan data yang berasal
dari piranti masukan samapai data dikirim ke ALU untuk di proses
2. Menyimpan data pemrosesan ALU
sebelum dikirim ke piranti keluaran
3. Menampung program / instruksi yang berasal dari piranti masukan atau dari pengingat sekunder.
3. Menampung program / instruksi yang berasal dari piranti masukan atau dari pengingat sekunder.
MACAM MEMORY
o ROM (Read Only Memory)
1. PROM (Programmable
Read-Only Memory)
2. EPROM (Erasable
Programmable Read-Only Memory )
3. EEPROM (Electrically Erasable Programmable Read-Only Memory)
o RAM (Random Access
Memory)
1. DRAM (Dynamic RAM)
2. EDO RAM (Extended Data Out RAM)
3. SDRAM (Synchronous Dynamic RAM)
4. SRAM (Static RAM)
5. RDRAM (Rambus Dynamic RAM)
I / O DEVICE
I/O devices memiliki bentuk bermacam-macam.
Sifatnya juga ada yang wajib dan ada yang merupakan tambahan. Perangkat
masukan-luaran yang umum kita temui sekarang adalah papan bidai (keyboard),
tetikus (mouse), dan layar monitor. Ketiga perangkat ini wajib ada. Tanpa
mereka, walaupun komputer sudah dilengkapi CPU dan memori, tak ada yang bisa
kita lakukan.
4.
Algoritma
Penjadwalan
Algoritma – Algoritma
Penjadwalan Proses
Terdapat banyak algoritma penjadwalan, baik algoritma
penjadwalan nonpreemtive maupun penjadwalan preemtive.
Algoritma – Algoritma merupakan yang menerapkan strategi
nonpreemtive diantaranya :
• FIFO (Fist in,Fist Out) atau FCFS (Fist Come,Fist Serve).
• SJF (Shortest Job First).
Penjadwaln FIFO (FIFO)
Penjadwalan FIFO ini merupakan
• Penjadwala non-preemptive (run-to-completion).
• Penjadwal tidak berprioritas.
Ketentuan
Penjadwalan FIFO adlah penjadwalan dangan ketentuan2 paling sederhana, yaitu :
Penjadwalan FIFO adlah penjadwalan dangan ketentuan2 paling sederhana, yaitu :
Penjadwalan ini menghendaki kela2 prioritas bagi proses2 yang
ada. Kelas tertinggi berjalan selam satu kwanta, kelas berikutnya berjalan
selama dua kwanta , kelas berikutnya lagi berjalan empat kwanta , kelas
berikutnya2 lagi berjalan delapan kwanta, dan seterusnya.
Ketentuan yang berlaku adalah sebagai berikut :
• Jalankan proses2 yang beradapada kelas prioritas tertinggi.
• Jika proses telah menggunakan seluruh kwanta yang
dialokasikan maka prose situ diturunkan kelas prioritasnya.
• Proses yang masuk untuk pertama kali ke system langsung
diberi kelas tertingi.
Meknisme MFQ ini dapat mencegah proses yang perlu
berjalanlama mengalami swapping berulangkali dan mencegah proses2 interaktif
yang singkat harus menunggu lama untuk layanan pemroses.
Penggunaan
Sistem dengan proses2 Yang banyak proses lambat, memerlukan waktu lam, dan banyak proses singkat.
Sistem dengan proses2 Yang banyak proses lambat, memerlukan waktu lam, dan banyak proses singkat.
FIRST-COME FIRST-SERVED (FCFS)
Algoritma ini merupakan algoritma penjadwalan yang paling
sederhana yang digunakan CPU. Dengan menggunakan algoritma ini seiap proses
yang berada pada status ready dimasukkan ke dalam antrian FIFO sesuai dengan
waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi
terlebih dahulu.
Misalnya ada tiga buah proses yang datang secara bersamaan
yaitu pada 0 ms, P1 memiliki burst time 24 ms, P2 memiliki burst time 5 ms, P3
memiliki burst time 3 ms. Hitunglah wating time rata-rata dan turnaround time
(burst time + waiting time) dari ketiga proses tersebut dengan
menggunakan algoritma FCFS.
Proses Burst time
P1 24 ms
P2 5 ms
P3 3 ms
Waiting time untuk p1 adalah 0 ms (P1 tidak perlu menunggu),
sedangkan untuk p2 adalah sebesar 24 ms (menunggu P1 selesai) dan untuk p3
sebesar 29 ms (menunggu P1 dan P2 selesai). Waiting time rata-ratanya adalah
sebesar (0+24+29)/3 = 17,6 ms.
Turnaround time untuk P1 sebesar 24 ms, sedangkan untuk P2
sebesar 29 ms (dihitung dari awal kedatangan P2 hingga selesai dieksekusi),
untuk p3 sebesar 32 ms. Turnaround time rata-rata untuk ketiga proses tersebut
adalah (24+29+32)/3 = 28,3 ms.
Kelemahan dari algoritma ini:
a. Waiting time rata-ratanya cukup lama.
b. Terjadinya convoy effect, yaitu proses-proses menunggu
lama untuk menunggu satu 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.
SHORTEST-JOB FIRST (SJF)
Algoritma ini mempunyai cara penjadwalan yang berbeda dengan
FCFS. Dengan algoritma ini maka setiap proses yang ada di antrian ready
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.
Ada beberapa kekurangan dari algoritma ini yaitu:
• Kesulitan untuk memprediksi burst time proses yang akan
dieksekusi selanjutnya .
• 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:
1. Preemptive. Jika ada proses yang sedang dieksekusi
oleh CPU dan terdapat proses di antrian ready 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 antrian ready
tersebut. Preemptive SJF sering disebut juga Shortest-Remaining-Time-First
scheduling.
2. Non-preemptive. CPU tidak memperbolehkan proses yang
ada di antrian ready untuk menggeser proses yang sedang dieksekusi oleh CPU
meskipun proses yang baru tersebut mempunyai burst time yang lebih kecil.
Misalnya ada empat buah proses dengan masing-masing
waktu kedatangan burst time di jelaskan pada tabel di bawah ini. Hitunglah
waiting time rata-rata dan turnaround time dari keempat proses tersebut dengan
mengunakan algoritma SJF.
Proses Arrival time Burst Time
P1 0 ms 7 ms
P2 2 ms 4 ms
P3 4 ms 1 ms
P4 5 ms 4 ms
Solusi Preemptive:
Rata-rata waiting time adalah (9 + 1 + 0 +2)/4 = 3, dimana :
P1: (0-0+11-2) = 9
P2: (2-2+5-4) = 1
P3: (4-4) = 0
P4: (7-5) = 2
Rata-rata turnaround time adalah
((9+7)+(1+4)+(0+1)+(4+2))/4 = 7
Solusi Non-Preemptive:
Rata-rata waiting time adalah (0 + 6 + 3 + 7)/4 =
4, dimana:
P1: (0-0) = 0
P2: (8-2) = 6
P3: (7-4) = 3
P4: (12-5) = 7
Rata-rata turnaround time adalah
((0+7)+(6+4)+(3+1)+(7+4))/4 = 8
ROUND ROBIN
Algoritma ini didesin untuk sistem time-sharing. Proses
akan mendapat jatah sebesar time quantum dengan nilai quantum umumnya sebesar
10-100 ms. Jika time quantum-nya habis atau proses sudah selesai CPU akan
dialokasikan ke proses berikutnya. Tentu proses ini cukup adil karena tak ada
proses yang diprioritaskan, semua proses mendapat jatah waktu yang sama dari
CPU (1/n), dan tak akan menunggu lebih lama dari (n-1)/q.
Algoritma ini sepenuhnya bergantung besarnya time quantum.
Jika terlalu besar, algoritma ini akan sama saja dengan algoritma first-come
first-served. Jika terlalu kecil, akan semakin banyak peralihan proses sehingga
banyak waktu terbuang.
Permasalahan utama pada Round Robin adalah menentukan besarnya
time quantum. Jika time quantum yang ditentukan terlalu kecil, maka sebagian
besar proses tidak akan selesai dalam 1 time quantum. Hal ini tidak baik karena
akan terjadi banyak switch, padahal CPU memerlukan waktu untuk beralih dari
suatu proses ke proses lain (disebut dengan context switches time). Sebaliknya,
jika time quantum terlalu besar, algoritma Round Robin akan berjalan seperti
algoritma First Come First Served. Time quantum yang ideal adalah jika 80% dari
total proses memiliki CPU burst time yang lebih kecil dari 1 time quantum.
Misalnya ada tiga proses dengan masing-masing mendapatkan
waktu quantum adalah 4 ms, maka P1 mendapatkan 4 ms pertama. Karena membutuhkan
20 ms lagi, sesudah quantum pertama P1 di preemptive dan CPU memberikan
proses berikutnya ke proses P2 dan P2 tidak memerlukan 4 ms, P2 selesai sebelum
jatah quantumnya habis, kemudian CPU memberikan ke proses berikutnya yaitu P3.
Ketika setaiap proses meneriman satu quantum, CPU kembali ke proses P1 untuk
tambahan waktu quantum.
Proses Burst time
P1 24 ms
P2 3 ms
P3 3 ms
Rata-rata waiting time adalah (6+4+7)/3 = 5.66
Rata-rata turnaround time adalah ((6+24)+(4+3)+(7+3))/3 =
15.67
Tidak ada komentar:
Posting Komentar