Scheduling: Penjadwalan urutan proses yang ingin dijalankan
Peran Sistem Operasi:
Mengatur dan mengoptimalkan sumber daya komputer seperti CPU, RAM, perangkat IO
2. Penjelasan Context Switch
Context switch adalah proses mengganti dari 1 proses ke proses lain yang ingin dijalankan. Proses sebelumnya akan disimpan sementara, dan proses yang baru akan dijalankan.
3. Monolitik dan Microkernel
3.1. Monolitik
Kelebihan:
Sederhana dan mudah dikembangkan
Kinerja baik
Testing mudah
Kekurangan:
Kurang fleksibel
Stabilitas terbatas
Maintenance sulit
3.2. Microkernel
Kelebihan:
Modular dan fleksibel
Lebih stabil
Pengembangan mudah
Kekurangan:
Kompleksitas tinggi
Debugging sulit
4. Penjelasan PSD (Process State Diagram)
New: Proses baru dibuat
Ready: Proses siap dieksekusi, menunggu giliran CPU
Running: Proses dijalankan oleh CPU
Waiting: Proses sedang menunggu input/output
Terminated: Proses telah selesai dieksekusi
5. Process State
Process State: Menyimpan status informasi penting pada CPU
Process ID: Informasi untuk membedakan proses pada CPU agar bisa menyimpan dan mengelola datanya dengan benar
Register CPU: Bagian untuk menyimpan data pada sistem CPU agar bisa melanjutkan dari proses terakhir
I/O Status Information: Untuk mengelola akses I/O dan menghindari konflik antar informasi
Accounting Information: Mencatat informasi yang berhubungan dengan penggunaan CPU
Priority: Menunjukkan prioritas proses
List of Open Files: Menyimpan informasi tentang file yang dibuka oleh proses
6. Semaphore
Semaphore: Kunci yang ada pada proses untuk mengatur akses sumber daya bersama agar tidak digunakan secara bersamaan
Dua tipe Semaphore:
Semaphore Biner: Memiliki nilai 1 dan 0
Semaphore Perhitungan: Memiliki nilai lebih dari 1
Contoh penggunaan: Mengakses printer
7. Race Condition
Race condition adalah situasi ketika beberapa request datang secara bersamaan untuk mengakses satu resource.
8. Penjelasan SJF (Shortest Job First)
SJF adalah algoritma penjadwalan yang mengutamakan proses yang memiliki waktu eksekusi atau burst time paling pendek. Algoritma ini berusaha meminimalkan waktu tunggu rata-rata dengan menyelesaikan proses-proses yang lebih cepat lebih dulu.
Cara kerja:
Setiap kali CPU bebas, ia akan memilih proses yang memiliki waktu eksekusi tersingkat dari daftar proses yang tersedia.
Jika dua proses memiliki waktu eksekusi yang sama, pemilihan bisa dilakukan berdasarkan urutan kedatangan atau kebijakan lain.
Variasi SJF:
Non-preemptive SJF: Setelah CPU mulai mengeksekusi sebuah proses, proses tersebut harus diselesaikan sebelum CPU bisa pindah ke proses lain.
Preemptive SJF (Shortest Remaining Time First): Jika sebuah proses baru datang dengan waktu eksekusi yang lebih pendek daripada proses yang sedang dieksekusi, CPU akan menghentikan proses saat ini dan beralih ke proses baru yang lebih pendek.
Kelebihan +:
Optimal dalam hal waktu tunggu: SJF menghasilkan waktu tunggu rata-rata paling rendah dibanding algoritma penjadwalan lain.
Efisiensi tinggi: Proses-proses kecil selesai lebih cepat, memberikan respons lebih baik pada sistem.
Kekurangan -:
Memerlukan prediksi waktu eksekusi: Algoritma ini memerlukan informasi tentang waktu eksekusi proses, yang sulit diprediksi dalam banyak kasus.
Starvation: Proses besar bisa tertunda lama jika selalu ada proses kecil yang datang, menyebabkan starvation atau kelaparan proses.
Proses(P)
Arrival Time(AT)
Burst Time (BT)
P1
0
6
P2
1
7
P3
2
8
P4
3
9
Perhitungan Waktu Tunggu (Waiting Time - WT):
P1: Waktu tunggu = Start time - Arrival time = 0 - 0 = 0
P2: Waktu tunggu = Start time - Arrival time = 16 - 1 = 15
P3: Waktu tunggu = Start time - Arrival time = 9 - 2 = 7
P4: Waktu tunggu = Start time - Arrival time = 6 - 3 = 3
Perhitungan Waktu Penyelesaian (Turnaround Time - TAT):Rumus TAT = Waktu Penyelesaian - Arrival Time
P1: TAT = 6 - 0 = 6
P2: TAT = 24 - 1 = 23
P3: TAT = 16 - 2 = 14
P4: TAT = 9 - 3 = 6
Total Turnaround Time = 6 + 23 + 14 + 6 = 49
Rata-rata
Rata-rata Waktu Tunggu = Total waktu tunggu / Jumlah proses = 25 / 4 = 6,25
Rata-rata Turnaround Time = Total TAT / Jumlah proses = 49 / 4 = 12,25
Konklusi:
Optimal untuk waktu tunggu rata-rata: SJF dikenal sebagai algoritma yang paling efisien dalam mengurangi waktu tunggu.
Memiliki versi preemptive dan non-preemptive: Pada versi preemptive, proses yang lebih pendek dapat menginterupsi proses yang lebih panjang.
Rentan terhadap starvation: Proses besar mungkin tidak pernah dijalankan jika terus-menerus kalah dengan proses kecil.
Konklusi Rumus:
WT(Waiting Time) Shortest Job First & Round Robin = COMPLETION TIME - ARRIVAL TIME - BURST TIME
WT(Waiting Time) FCFS(First Come First Serve) = START TIME - ARRIVAL TIME
9. Penjelasan FCFS (First Come First Serve)
FCFS adalah salah satu algoritma penjadwalan CPU yang paling sederhana. Pada algoritma ini, proses yang datang lebih dulu akan dieksekusi lebih dulu, tanpa memperhatikan waktu eksekusi atau prioritasnya. Dengan kata lain, CPU akan melayani setiap proses dalam urutan kedatangannya, mirip seperti antrean di kasir supermarket.
Cara kerja:
Proses ditempatkan dalam sebuah antrian berdasarkan urutan kedatangan.
Proses pertama yang masuk adalah yang pertama dieksekusi.
Setelah satu proses mulai dijalankan, CPU akan terus mengeksekusinya sampai selesai, tanpa interupsi.
Kelebihan:
Sederhana: Implementasi dan pemahaman yang mudah karena tidak memerlukan perhitungan kompleks.
Adil secara kronologis: Setiap proses dijamin mendapat giliran untuk dieksekusi sesuai urutan kedatangan.
Kekurangan:
Masalah convoy effect: Proses-proses dengan waktu eksekusi singkat bisa tertahan karena ada proses yang lama dieksekusi lebih dulu, menyebabkan waktu tunggu yang tinggi bagi proses singkat.
Waktu tunggu tidak optimal: Rata-rata waktu tunggu bisa sangat tinggi jika proses-proses besar datang lebih awal.
Konklusi: Sederhana, tapi kurang efisien. Tidak mempertimbangkan waktu eksekusi, sehingga bisa menimbulkan waktu tunggu yang lama.
10. Shared Memory vs Message Passing
Shared Memory: Fitur sistem operasi yang memungkinkan proses untuk berbagi data dengan mengakses memori yang sama.
Message Passing: Proses bertukar informasi antara proses dalam sistem dengan cara mengirim dan menerima pesan.
1. Rumus untuk Waktu Tunggu (Waiting Time - WT):
WT=Start Time−Arrival Time
Start Time adalah waktu ketika proses mulai dieksekusi oleh CPU.
Arrival Time (AT) adalah waktu ketika proses tiba dalam sistem dan siap untuk dieksekusi.
2. Rumus untuk Waktu Penyelesaian (Turnaround Time - TAT):
TAT=Completion Time−Arrival Time
Start Time adalah waktu ketika proses mulai dieksekusi oleh CPU.
Arrival Time (AT) adalah waktu ketika proses tiba dalam sistem dan siap untuk dieksekusi.
3. Perhitungan Rata-rata:
Rata-rata WT= Total Waiting Time / Jumlah Proses
Rata-rata TAT = Total Turnaround Time / Jumlah Proses
Start Time adalah waktu ketika proses mulai dieksekusi oleh CPU.
Arrival Time (AT) adalah waktu ketika proses tiba dalam sistem dan siap untuk dieksekusi.
Penerapan dalam FCFS dan SJF:
First Come First Serve (FCFS):
Urutan Eksekusi: Berdasarkan urutan kedatangan (Arrival Time).
Proses pertama yang tiba akan dieksekusi lebih dulu, dan waktu mulai eksekusi bergantung pada kapan CPU selesai dengan proses sebelumnya.
Waiting Time (WT) dihitung dengan mengurangi Arrival Time dari waktu proses mulai dijalankan.
Turnaround Time (TAT) dihitung dengan mengurangi Arrival Time dari waktu proses selesai dijalankan.
Shortest Job First (SJF):
Urutan Eksekusi: Berdasarkan waktu eksekusi (Burst Time). Proses dengan burst time terpendek akan dieksekusi lebih dulu.
Pada varian Non-Preemptive SJF, setelah proses mulai dijalankan, proses tersebut akan diselesaikan sepenuhnya sebelum CPU beralih ke proses lain.
Pada varian Preemptive SJF (Shortest Remaining Time First - SRTF), proses baru dengan burst time lebih pendek dapat menginterupsi proses yang sedang berjalan.