DOSEN PENGAMPU:
ALI AKBAR LUBIS, S.KOM., M.TI.
Disusun Oleh:
Puji syukur kita panjatkan kehadirat Tuhan Yang Msha Esa yang telah memberikan rahmat dan
hidayah-Nya sehingga penyusun dapat menyelesaikan tugas yang berjudul “Laporan Team Based
Project” ini tepat pada waktunya.
Adapun tujuan dari penulisan dari laporan ini adalah untuk memenuhi tugas pada mata kuliah
Sistem Operasi Komputer. Selain itu, laporan ini juga bertujuan untuk menambah wawasan tentang
Teknik Penjadwalan Proses.
Terlebih dahulu, penyusun mengucapkan terima kasih kepada Bapak Ali Akbar Lubis, S.Kom.,
M.Kom., selaku Dosen Fisika dasar yang telah memberikan tugas ini sehingga dapat menambah
pengetahuan dan wawasan sesuai dengan bidang studi yang saya tekuni ini.
Penyusun menyadari bahwa laporan ini belum sempurna. Untuk itu penyusun dengan senang hati
menerima kritik dari pembaca demi perbaikan. Akhirnya penyusun tidak lupa mengucapkan terima kasih
kepada semua pihak yang telah membantu dalam menyusun laporan ini.
Penyusun
DAFTAR ISI
Contents
KATA PENGANTAR...................................................................................................................................2
BAB I.............................................................................................................................................................4
PENDAHULUAN.........................................................................................................................................4
1.1 Latar Belakang...................................................................................................................................4
2.2 Rumusan Masalah.............................................................................................................................4
1.3 Tujuan Penelitian...............................................................................................................................4
BAB II LANDASAN TEORI........................................................................................................................5
2.1 PS (Priority Schedulling)...................................................................................................................5
2.2 RR (Round Robin).............................................................................................................................8
BAB III........................................................................................................................................................11
PEMBAHASAN..........................................................................................................................................11
3.1 Source Code......................................................................................................................................11
BAB I
PENDAHULUAN
1.1 Latar Belakang
Penjadwalan adalah fungsi dasar dari suatu sistem operasi. Hampir semua komponen
komputer dijadwalkan sebelum digunakan. CPU salah satu komponen dari komputer yang
penting yang menjadi pusat dari penjadwalan di sistem operasi. Kapan pun CPU menjadi idle,
sistem operasi harus memilih salah satu proses untuk masuk ke dalam antrian ready (siap) untuk
dieksekusi. Penjadwalan memilih dari sekian proses yang ada dimemori yang sudah siap
dieksekusi, dan mengalokasikan CPU untuk mengeksekusinya. Dalam sistem operasi, operasi
yang membuat pilihan dinamakan Scheduler, sedangkan algoritma yang digunakan dinamakan
Scheduling Algorithm. Penjadwalan memori dijadikan sebagai dasar membuat simulasi
dikarenakan susahnya menjelaskan proses penjadwalan dan kesulitan menampilkan prinsip kerja
dari proses penjadwalan dalam bentuk animasi pada mata kuliah Sistem Operasi.
Dilatar belakangi oleh masalah di atas, maka akan dikembangkan suatu aplikasi simulasi
penjadwalan proses pada 2 CPU oleh sistem operasi disertai dengan informasi waktu-waktu
komponen proses yang dikonsumsi dalam tampilan grafik. Aplikasi ini diharapkan dapat
membantu dosen atau mahasiswa dalam memahami algoritma penjadwalan CPU.
3) Untuk mengetahui hasil jika dua teknik penjadwalan yang telah dipilih digabungkan
BAB II
LANDASAN TEORI
Adalah tiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu
lebih dulu (running). Berasumsi bahwa masing-masing proses memilikiprioritas tertentu,
sehingga akan dilaksanakan berdasar prioritas yang dimilikinya.Ilustrasi yang dapat memperjelas
prioritas tersebut adalah dalam komputer militer,dimana proses dari jendral berprioritas 100,
proses dari kolonel 90, mayorberprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan
seterusnya. DalamUNIX perintah untuk mengubah prioritas menggunakan perintah nice.
Pemberian prioritas diberikan secara :
a. Statis (static priorities)
Berarti prioritas tidak berubah.
Keunggulan :
Mudah diimplementasikan.
Mempunyai overhead relatif kecil.
Kelemahan :
Tidak tanggap terhadap perubahan lingkungan yang mungkin menghendaki
penyesuaian prioritas.
b. Dinamis (dynamic priorities)
Merupakan mekanisme untuk menanggapi perubahan lingkungan sistemberoperasi. Prioritas
awal yang diberikan ke proses mungkin hanya berumurpendek setelah disesuaikan ke nilai
yang lebih tepat sesuai lingkungan.
Kelemahan :
Implementasi mekanisme prioritas dinamis lebih kompleks dan mempunyaioverhead
lebih besar. Overhead in diimbangi dengan peningkatan dayatanggap sistem.
Merupakan :
Penjadwalan yang paling tua, sederhana, adil,banyak digunakan algoritmanya
dan mudah diimplementasikan.
Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh penjadwalberdasarkan lama
waktu berjalannya proses (preempt by time).
Penjadwalan tanpa prioritas.
Berasumsi bahwa semua proses memiliki kepentingan yang sama, sehinggatidak ada
prioritas tertentu.
Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemrosesyang disebut
kwanta (quantum) atau time slice dimana proses itu berjalan. Jikaproses masih running sampai
akhir quantum, maka CPU akan mempercepat prosesitu dan memberikannya ke proses lain.
Penjadwal membutuhkannya dengan memelihara daftar proses dari runnable.Ketika quantum
habis untuk satu proses tertentu, maka proses tersebut akandiletakkan diakhir daftar (list), seperti
nampak dalam gambar berikut ini :
Switching dari satu proses ke proses lain membutuhkan kepastian waktu yangdigunakan untuk
administrasi, menyimpan, memanggil nilai-nilai register, pemetaanmemori, memperbaiki tabel
proses dan senarai dan sebagainya. Mungkin prosesswitch ini atau konteks switch membutuhkan
waktu 5 msec disamping waktupemroses yang dibutuhkan untuk menjalankan proses tertentu.
Dengan permasalahan tersebut tentunya harus ditetapkan kwanta waktu yangoptimal berdasarkan
kebutuhan sistem dari hasil percobaan atau data historis.Besar kwanta waktu beragam
bergantung beban sistem. Apabila nilai quantumterlalu singkat akan menyebabkan terlalu banyak
switch antar proses dan efisiensiCPU akan buruk, sebaliknya bila nilai quantum terlalu lama
akan menyebabkanrespon CPU akan lambat sehingga proses yang singkat akan menunggu lama.
Sebuah quantum sebesar 100 msec merupakan nilai yang dapat diterima.
Penilaian penjadwalan ini berdasarkan kriteria optimasi :
Adil
Adil bila dipandang dari persamaan pelayanan oleh pemroses.
Efisiensi
Cenderung efisien pada sistem interaktif.
Waktu tanggap
Memuaskan untuk sistem interaktif, tidak memadai untuk sistem waktu nyata.
Turn around time
Cukup baik.
Throughtput
Cukup baik.
Penjadwalan ini :
a. Baik untuk sistem interactive-time sharing dimana kebanyakan waktu dipergunakan
menunggu kejadian eksternal.
Contoh : text editor, kebanyakan waktu program adalah untuk menunggui keyboard,
sehingga dapat dijalankan proses-proses lain.
b. Tidak cocok untuk sistem waktu nyata apalagi hard-real-time applications.
Source code Tersebut Menggunakan Bahasa Pemrograman HTML,CSS dan logika PHP.
<!DOCTYPE html>: Ini adalah deklarasi yang menentukan versi HTML yang
digunakan, dalam hal ini adalah HTML5.
<html lang="en">: Tag pembuka untuk dokumen HTML. Atribut lang diatur menjadi
"en" untuk bahasa Inggris.
<head>: Bagian kepala dari dokumen HTML, berisi meta-informasi tentang dokumen
seperti set karakter, pengaturan viewport, dan gaya.
<meta charset="UTF-8">: Menentukan encoding karakter dokumen sebagai UTF-8
(Unicode).
<meta name="viewport" content="width=device-width, initial-scale=1.0"> :
Mengonfigurasi pengaturan viewport untuk desain responsif, memastikan lebar setara
dengan lebar perangkat dan tingkat zoom awal adalah 1.
table: Mendefinisikan gaya untuk tabel. border-collapse: collapse; menghapus jarak
antara sel tabel. width: 60%; menetapkan lebar tabel menjadi 60%, dan margin: 20px;
menambahkan margin 20 piksel di sekitar tabel.
th, td: Mendefinisikan gaya untuk header tabel (th) dan sel data tabel (td). border: 1px
solid #ddd; membuat batas solid 1 piksel di sekitar sel, dan padding: 8px; menambahkan
padding 8 piksel di dalam sel. text-align: center; membuat teks berada di tengah sel.
<style>: Mendefinisikan gaya CSS internal untuk dokumen.
<title>: Mengatur judul dokumen HTML, yang muncul di tab browser. Dalam hal ini,
judulnya adalah "Round Robin and Priority Scheduling (PHP)".
<table>: Ini adalah elemen HTML yang digunakan untuk membuat tabel di halaman web.
<thead>: Ini adalah elemen kepala tabel, yang digunakan untuk mengelompokkan baris-baris
tabel yang berisi heading (judul) dari kolom-kolom tabel.
<tr>: Ini adalah elemen baris tabel (table row). Setiap baris tabel didefinisikan di dalam elemen
<tr>.
<th>: Ini adalah elemen heading sel (table header cell). Dalam konteks ini, elemen <th>
digunakan untuk menentukan heading (judul) dari setiap kolom tabel.
<th>Proses</th>: Kolom pertama yang berisi judul "Proses".
<th>Kedatangan</th>: Kolom kedua yang berisi judul "Kedatangan".
<th>Burst Time</th>: Kolom ketiga yang berisi judul "Burst Time".
<th>Prioritas</th>: Kolom keempat yang berisi judul "Prioritas".
Jadi, potongan kode ini secara keseluruhan adalah untuk membuat tabel dengan empat kolom
yang mewakili informasi tentang suatu proses, kedatangan, burst time, dan prioritas. Kolom-
kolom ini berguna untuk mengorganisir dan menampilkan data dalam bentuk tabel di halaman
web.
<?php ... ?>: Blok kode PHP. Kode PHP menginisialisasi array $processes yang berisi data
proses.
$processes: Ini adalah variabel array yang berisi data proses. Setiap elemen array adalah array
lain yang mewakili satu proses, dengan elemen-elemen seperti nama proses, waktu kedatangan,
burst time, dan prioritas.
foreach ($processes as $process): Ini adalah loop foreach yang digunakan untuk mengambil
setiap proses dari array $processes.
echo "<td>$data</td>";: Menampilkan setiap elemen data proses dalam sel tabel
Code ini mendefinisikan sebuah array bernama $processes, yang berisi informasi mengenai
beberapa proses. Setiap elemen array adalah asosiatif array yang mewakili satu proses dengan
atribut-atribut berikut:
Proses P1: Tiba pada waktu 0, membutuhkan waktu burst 10, dan memiliki prioritas 3.
Proses P2: Tiba pada waktu 2, membutuhkan waktu burst 5, dan memiliki prioritas 1.
Proses P3: Tiba pada waktu 3, membutuhkan waktu burst 9, dan memiliki prioritas 2.
Proses P4: Tiba pada waktu 3, membutuhkan waktu burst 8, dan memiliki prioritas 1.
Proses P5: Tiba pada waktu 5, membutuhkan waktu burst 3, dan memiliki prioritas 2.
while (true): Ini adalah loop tak terbatas, yang berarti akan terus berjalan sampai diinterupsi oleh
suatu kondisi (pada kasus ini, ketika semua proses telah selesai).
foreach ($processes as &$process): Loop foreach digunakan untuk mengiterasi melalui setiap
proses dalam array $processes.
if ($process['burstTime'] > 0): Ini adalah kondisi untuk memeriksa apakah burst time dari
proses saat ini masih lebih besar dari 0, yang berarti proses tersebut masih belum selesai.
Eksekusi Proses:
$executeTime = min($quantum, $process['burstTime']);: Menentukan waktu eksekusi untuk
proses saat ini. Ini adalah minimum antara quantum dan burst time yang tersisa dari proses.
$process['burstTime'] -= $executeTime;: Mengurangkan burst time proses sesuai dengan waktu
eksekusi yang telah ditentukan.
Perhitungan Turnaround Time (TAT) dan Waiting Time:
$totalTAT += $tat;: Menambahkan turnaround time proses saat ini ke total turnaround time. Ini
akan digunakan nanti untuk menghitung rata-rata turnaround time.
<table style="margin-top: 20px;">: Ini adalah tag HTML untuk membuat tabel. Properti
style="margin-top: 20px;" menetapkan jarak atas (margin-top) sebesar 20 piksel untuk
memberikan ruang antara tabel ini dan elemen sebelumnya.
<tr>: Ini adalah tag HTML untuk membuat baris dalam tabel.
<th>Rata-rata TAT</th>: Ini adalah tag HTML untuk membuat sel kepala tabel (header cell)
yang berisi teks "Rata-rata TAT". Sel kepala biasanya digunakan untuk menyatakan informasi di
atas kolom yang sesuai dalam tabel.
<tr>: Ini adalah tag HTML untuk membuat baris kedua dalam tabel.
<td><?php echo $totalTAT / count($processes); ?></td>: Ini adalah tag HTML untuk
membuat sel data dalam tabel. Di dalamnya terdapat sintaks PHP <?php echo $totalTAT /
count($processes); ?>. Ini digunakan untuk menampilkan hasil perhitungan rata-rata Turnaround
Time (TAT) di dalam sel data. $totalTAT adalah jumlah total Turnaround Time dari semua
proses, dan count($processes) mengembalikan jumlah proses. Jadi, pembagian keduanya
memberikan rata-rata TAT.
usort($processes, function ($a, $b) use ($currentTime) {: Ini adalah fungsi PHP usort yang
digunakan untuk mengurutkan array $processes. Fungsi ini menerima dua argumen, yaitu array
yang akan diurutkan ($processes) dan sebuah fungsi komparasi.
function ($a, $b) use ($currentTime) {: Ini adalah definisi fungsi komparasi yang digunakan
untuk membandingkan dua elemen array, yaitu $a dan $b. Fungsi ini menggunakan variabel
$currentTime yang diambil dari lingkup luar (keyword use).
if ($a['priority'] == $b['priority']) {: Ini adalah kondisi untuk mengecek apakah kedua elemen
array memiliki prioritas yang sama.
return $a['arrivalTime'] - $b['arrivalTime'];: Jika kedua elemen memiliki prioritas yang sama,
maka fungsi akan mengembalikan selisih waktu kedatangan (arrivalTime) dari $a dan $b. Ini
berarti elemen dengan waktu kedatangan yang lebih rendah akan diurutkan lebih awal.
return $a['priority'] - $b['priority'];: Jika prioritas kedua elemen tidak sama, maka fungsi akan
mengembalikan selisih prioritas dari $a dan $b. Ini berarti elemen dengan prioritas yang lebih
rendah akan diurutkan lebih awal.
$executeTime: Menentukan waktu eksekusi untuk proses saat ini, berdasarkan quantum atau
burst time yang tersisa (yang lebih kecil).
$process['burstTime'] -= $executeTime;: Mengurangi burst time proses saat ini sesuai dengan
waktu eksekusi.
$waitingTime = max(0, $currentTime - $process['arrivalTime']);: Menghitung waiting time,
yaitu selisih antara waktu saat ini dan waktu kedatangan.
Source Code diatas adalah beberap syntacs,variabel dan function yang kami gunakan didalam bahasa
pemprograman HTML,CSS dan logika PHP.
Ini adalah file source code lengkapnya:
BAB IV
KESIMPULAN