Anda di halaman 1dari 34

Bagian 4

Manajemen Proses

Sistem Operasi Santyadiputra, G. S. 2019. 1


Tujuan Pembelajaran
• Mampu menjelaskan konsep dan definisi proses
• Mampu menyebutkan dan menjelaskan status-status sebuah proses
• Mampu menjelaskan konsep penjadwalan proses
• Mampu menjelaskan jenis-jenis algoritma penjadwalan
• Mampu menjelaskan interaksi antar proses
• Mampu menjelaskan konsep multithreaded

Sistem Operasi Santyadiputra, G. S. 2019. 2


Konsep dan Definisi Proses
Mampu menjelaskan konsep dan definisi proses

Sistem Operasi Santyadiputra, G. S. 2019. 3


Pendahuluan
• Sistem operasi bertanggung jawab untuk aktivitas berikut sehubungan dengan manajemen
proses:
• membuat dan menghapus proses dari sistem maupun proses dari user
• menjadwalkan proses dan thread pada CPU
• menangguhkan dan melanjutkan proses
• menyediakan mekanisme untuk sinkronisasi proses
• menyediakan mekanisme untuk komunikasi antar proses
• penanganan deadlock
• Awalnya, komputer hanya mengerjakan satu program dalam satu waktu, kontrol menyeluruh, dan
memiliki hak akses ke semua sumber daya
• Sekarang, komputer mengerjakan banyak program untuk di load ke memori dan dieksekusi secara
bersamaan (konkuren) serta memiliki kemampuan time-sharing
• Multiprogramming, prosesor dapat berganti dari satu program ke program lain dalam hitungan
mili detik, disebut juga multitasking
• Multitasking, prosesor menjalankan sejumlah proses secara konkuren
• Time-sharing, penggunaan CPU secara bergantian antar proses

Sistem Operasi Santyadiputra, G. S. 2019. 4


Evolusi Sistem Operasi

Sistem Operasi Santyadiputra, G. S. 2019. 5


Konsep Proses (1) /*********************************
Program perkalian yang memiliki
10 proses perkalian
• Proses merupakan kondisi program *********************************/
yang sedang dieksekusi termasuk di #include <stdio.h>
dalamnya nilai-nilai dalam program
counter, register, dan variabel-variabel int mul(){
yang ada int i, hasil;
hasil = 1;
• Program: objek statis/pasif terletak di for (i=1; i<=10; ++i){
suatu file, berisikan urutan instruksi- hasil = hasil * i;
}
instruksi (algoritma), terlihat nyata return hasil;
dalam tempat penyimpanan }
• Proses: objek dinamis/aktif di program int main(){
yang tereksekusi, berisikan urutan printf("Hasil: %d",mul());
instruksi yang sedang dieksekusi, return 0;
terlihat nyata dalam waktu yang }
terbatas

Sistem Operasi Santyadiputra, G. S. 2019. 6


Konsep Proses (2)
• SO mengontrol, mengalokasikan sumber daya, menjadwalkan, dan
mengirimkan proses untuk dieksekusi oleh prosesor
• Terdapat 3 proses (P1, P2, P3 )dan 2 perangkat i/o (i/o1, i/o2)
• Semua proses awalnya berada pada memori sekunder
• P1 berjalan pertama kali, saat ini statusnya telah selesai dieksekusi
dan telah dikeluarkan dari memori utama
• P2 dan P3 sedang berjalan berada pada memori utama dan
mengontrol dua perangkat i/o
• Namun P3 hanya mengontrol 1 perangkat i/o karena satunya lagi
masih digunakan oleh P2

Sistem Operasi Santyadiputra, G. S. 2019. 7


Ilustrasi Proses dan Sumber Daya Komputer

P3 P2 P1

Prosesor I/O 1 I/O 2 Memori Utama

Sistem Operasi Santyadiputra, G. S. 2019. 8


Tabel Kontrol Sistem Operasi
• SO membutuhkan suatu informasi guna
mengatur proses dan mengontrol sumber
daya
• Informasi tersebut disimpan dalam tabel
disebut Tabel Kontrol
• SO membangun dan mengurus tabel
tersebut dari setiap entitas proses dan
sumber daya yang diatur
• Ada empat tabel yakni memori, I/O, file,
dan proses
• Image process: kumpulan program, data,
stack, dan atribut lainnya disebut dengan
Process Control Block (PCB)
• Singkatnya, PCB merupakan informasi
yang terkandung pada tiap proses

Sistem Operasi Santyadiputra, G. S. 2019. 9


Process Control Block (PCB)
• Status proses: running, waiting, etc
• Program counter: lokasi instruksi yang
akan dieksekusi
• CPU registers: isi dari semua proses
• CPU scheduling information: berisikan
prioritas dan penunjuk ke antrian
penjadwalan
• Memory-management information: berisi
alokasi memori
• Accounting information: penggunaan
CPU, nilai clock time sejak dimulai proses,
batas waktu pemrosesan
• I/O status information: alokasi I/O dan
daftar file yang digunakan

Sistem Operasi Santyadiputra, G. S. 2019. 10


Definisi Proses
• SO dikatakan melakukan proses ketika,
• CPU mendapat instruksi untuk mengeksekusi program
• Program berada pada fase eksekusi
• Program dijalankan oleh pengguna
• Proses merupakan unit kerja dari sebuah sistem
• Proses berjalan konkuren, baik dari SO maupun user
• SO mengeksekusi kode sistem, user mengeksekusi kode user. Ingat,
eksekusi kode dinamakan thread.
• Proses memerlukan sumber daya seperti CPU time, memori, file, dan
perangkat I/O
• Ketika berjalan, proses terdiri dari thread of control yang pada komputer
modern dikenal dengan multithreaded

Sistem Operasi Santyadiputra, G. S. 2019. 11


Status Proses
Mampu menyebutkan dan menjelaskan status-status sebuah proses

Sistem Operasi Santyadiputra, G. S. 2019. 12


Status Proses
• New, proses baru saja dibuat
• Running, proses berjalan pada
suatu waktu tertentu
• Waiting/Blocked, proses tidak
dapat dieksekusi karena menunggu
event tertentu (misal: menunggu
i/o)
waiting/
• Ready, proses diberhentikan blocked

sementara (interupsi) dan bersiap


mengeksekusi perintah selanjutnya
• Terminated, proses telah selesai

Sistem Operasi Santyadiputra, G. S. 2019. 13


Penjadwalan Proses
Mampu menjelaskan konsep penjadwalan proses

Sistem Operasi Santyadiputra, G. S. 2019. 14


Pengertian dan Komponen
• Kumpulan kebijaksanaan dan mekanisme SO dalam mengatur urutan dan jangka
waktu eksekusi proses-proses yang aktif
• Penjadwalan bertugas memutuskan proses mana yang dijalankan dan berapa
lama proses tersbut berjalan
• Tujuannya: agar prosesor memiliki idle time yang kecil, ini juga merupakan tujuan
dari multiprogramming
• Komponen: antrian penjadwalan (scheduling queue), scheduler, dan dispatcher
• Sasaran penjadwalan: fairness, efficiency, response time, waiting time, turn
around time, dan throughput
• Strategi penjadwalan: preemptive dan non-preemptive
• Algoritma penjadwalan: FIFO/FCFS, SJF, dan RR
• Algoritma lainnya: MFQ, SRF, HRN, PS, dan GS

Sistem Operasi Santyadiputra, G. S. 2019. 15


Antrian Penjadwalan (Scheduling Queue)
• Ketika sebuah proses memasuki
sistem, proses tersebut diletakkan di
dalam job queue
• Berisikan proses-proses yang siap
dieksekusi atau menunggu perangkat
i/o
• Seluruh proses berstatus ready queue,
hanya ada satu yang running di CPU
• Proses yang berada di i/o waiting
queue statusnya waiting/blocked
• Antrian diimplementasikan dalam
bentuk linked-list yang memiliki
header
• Header menunjuk ke PCB suatu proses
Sistem Operasi Santyadiputra, G. S. 2019. 16
Penjadwal (Scheduler)
• Berupa program berisikan algoritma tertentu
guna menyeleksi proses yang akan dieksekusi
• Terdapat 3 jenis scheduler: short-term,
medium-term, dan long-term long-term short-term
• Short-term (cpu scheduler): menyeleksi proses
mana yang akan dijalankan di antara proses-
proses yang berada pada ready queue
• Medium-term (swapping): menyeleksi proses swap-in
di waiting queue yang akan di swap-in ke medium-term swap-out
memori utama
• Long-term (job scheduler): berfungsi
menyeleksi proses di job queue yang akan
dialokasi ke memori utama dan disisipkan
pada antrian ready queue

Sistem Operasi Santyadiputra, G. S. 2019. 17


Dispatcher
• Dispatcher umumnya berjalan ketika dispatcher membawa
scheduler telah selesai proses ke CPU
• Berupa program yang berfungsi
melakukan pengalihan eksekusi dari
proses yang running ke proses yang Ready Queue P1
terseleksi oleh short-term scheduler
CPU
• Singkatnya, scheduler menyeleksi proses P4 P3 P2 P1
mana yang akan dieksekusi, sedangkan
dispatcher membawa proses terseleksi
tersebut ke CPU untuk dieksekusi (ready
 running)
proses yang terseleksi
• Proses ini membutuhkan waktu yang oleh scheduler
dinamakan dispatch latency
• 3 function: switching context, switching to
user mode, dan restart program

Sistem Operasi Santyadiputra, G. S. 2019. 18


Sasaran Penjadwalan Proses
• Fairness, memastikan proses-proses diperlakukan sama, mendapat jatah waktu secara
adil (bukan berarti sama), tidak terjadi starvation (proses tidak dilayani dalam jangka
waktu yang lama)
• Efficiency, menjaga agar prosesor bekerja terus menerus selama masih ada proses aktif
di ready queue, adanya mekanisme block agar proses yang menunggu i/o dapat dibawa
ke i/o queue sehingga siklus hidup prosesor menjadi efisien
• Response Time, memastikan durasi waktu yang pendek saat sistem operasi memberikan
output atau umpan balik ketika user memberikan input
• Waiting Time, memastikan waktu tunggu proses yang berada pada ready queue
seminimal mungkin
• Turn Around Time, memastikan durasi waktu total dari proses mulai aktif sampai selesai
seminimal mungkin
• Throughput, memastikan rata-rata proses yang dapat diselesaikan per satuan waktu
adalah minimal

Sistem Operasi Santyadiputra, G. S. 2019. 19


Strategi Penjadwalan
• Preemptive, proses lain dapat
mengambil alih eksekusi prosesor
tanpa harus menunggu proses yang
running selesai, merupakan hal
penting untuk meningkatkan response
time, biasanya dilakukan oleh sistem
waktu nyata (real-time), sistem
interaktif time-sharing, dan sistem
multitasking
• Non-Preemptive, proses lain tidak
dapat mengambil alih eksekusi
prosesor, pengalihan dapat terjadi
apabila proses yang running telah
selesai, biasanya dilakukan oleh sistem
batch atau sekuensial

Sistem Operasi Santyadiputra, G. S. 2019. 20


Algoritma Penjadwalan
Mampu menjelaskan jenis-jenis algoritma penjadwalan

Sistem Operasi Santyadiputra, G. S. 2019. 21


First In First Out (FIFO/FCFS)
• Merupakan algoritma non-preemptive, tidak memiliki atribut prioritas, tiap
proses memiliki jadwal eksekusi menurut kedatangannya (arrival time)
• Ketika mendapat giliran eksekusi, proses menyelesaikan waktu prosesnya
(burst time) hingga selesai
• FIFO jarang digunakan sendiri, biasanya dikombinasikan dengan algoritma
lainnya
• Kelebihannya: fairness dan sangat efisien
• Kelemahannya, proses yang burst time kecil dapat menunggu lama ketika
datang belakangan, memiliki response time, turn around time, dan
throughput yang buruk, tidak cocok untuk sistem real-time
• FIFO digunakan pada sistem batch yang jarang berinteraksi dengan
pengguna

Sistem Operasi Santyadiputra, G. S. 2019. 22


First In First Out (FIFO/FCFS)

Sistem Operasi Santyadiputra, G. S. 2019. 23


Shortest Job First (SJF)
• Merupakan algoritma non-preemptive, tidak memiliki atribut
prioritas, tiap proses memiliki jadwal eksekusi menurut waktu proses
terpendek (minimal burst time)
• Kelebihannya, efisiensi tinggi dan turn around time yang rendah
• Kelemahannya, kadang kala sulit mengetahui burst time saat proses
masuk, harus dilakukan pendekatan dengan cara mengukur estimasi
dari perilaku histori sistem
• SJF sangat jarang digunakan, merupakan kajian teoritis dalam
pembandingan turn around time

Sistem Operasi Santyadiputra, G. S. 2019. 24


Shortest Job First (SJF)

Sistem Operasi Santyadiputra, G. S. 2019. 25


Round Robin (RR)
• Merupakan algoritma preemptive, tidak memiliki atribut prioritas, proses disela
berdasarkan lama waktu berjalannya proses (preempt-by-time)
• Semua proses dianggap penting dan diberi jatah waktu disebut time slice atau quantum
• Jika quantum habis dan proses belum selesai maka proses dialihkan statusnya menjadi
ready dan menyeleksi proses lain untuk dieksekusi
• Jika quantum belum habis dan proses telah selesai maka proses diakhiri menyeleksi
proses lain untuk dieksekusi
• Jika BT dan AT berbeda atau BT sama, gunakan FIFO. Jika AT sama, gunakan SJF.
• Kelebihannya: fairness, efisien, turn around time dan throughput cukup baik
• Kelemahannya, ketika quantum cukup besar menyebabkan turn around time rendah,
ketika quantum terlalu kecil mengakibatkan sering terjadi peralihan sehingga efisiensinya
menurun
• RR cocok digunakan pada interaktif-timesharing, dan tidak cocok digunakan pada sistem
real-time

Sistem Operasi Santyadiputra, G. S. 2019. 26


Round Robin (RR)

Sistem Operasi Santyadiputra, G. S. 2019. 27


Perbandingan FIFO, SJF, dan RR

Sistem Operasi Santyadiputra, G. S. 2019. 28


Latihan
• Diketahui cuplikan PCB dari proses penjadwalan sebagai berikut.

• Tentukan:
• Perbandingan maksimum, minimum, dan rata-rata response time untuk penjadwalan FIFO,
SJF, dan RR!
• Perbandingan maksimum, minimum, dan rata-rata waiting time untuk penjadwalan FIFO, SJF,
dan RR!
• Perbandingan maksimum, minimum, dan rata-rata turnaround time untuk penjadwalan FIFO,
SJF, dan RR!

Sistem Operasi Santyadiputra, G. S. 2019. 29


Interaksi Antar Proses
Mampu menjelaskan interaksi antar proses

Sistem Operasi Santyadiputra, G. S. 2019. 30


Interaksi Proses
• Proses yang bersifat konkuren dan kooperatif, bekerja sama dengan
proses lain ketika saling mempengaruhi satu sama lain
• Lebih lanjut akan dijelaskan pada “Konkurensi”
• Kerjasama tersebut penting dilakukan terkait alasan-alasan berikut:
1. Pembagian informasi, beberapa proses dapat mengakses beberapa data
yang sama
2. Kecepatan komputasi, tugas dipecah-pecah menjadi beberapa sub bagian
dan dieksekusi secara paralel
3. Modularitas, memiliki thread yang khusus untuk menjalankan setiap sub
bagian
4. Kenyamanan, user dapat dengan mudah mengerjakan sesuatu yang
berbeda dalam waktu yang sama
Sistem Operasi Santyadiputra, G. S. 2019. 31
Threads
Mampu menjelaskan konsep multithreaded

Sistem Operasi Santyadiputra, G. S. 2019. 32


Thread
• Thread ada di dalam sebuah proses
• Ketika user membuka program, SO
membuat proses baru
• Di dalam proses tersebut dibuat sebuah
thread tunggal
• Thread tunggal tersebut yang
mengerjakan program secara berurutan
• Thread tersebut dapat membuat thread
tambahan yang berjalan pada program
yang sama
• Namun, tiap thread dapat mengeksekusi
bagian yang berlainan dari program dalam
sembarang waktu yang diberikan

Sistem Operasi Santyadiputra, G. S. 2019. 33


Multithreaded
• Proses yang memiliki lebih dari satu
thread
• Biasanya saling berbagi code, data, dan
file. Bagian terpisah adalah register, stack,
dan program counternya
• Keuntungannya:
• Responsif: meningkatkan daya tanggap
kepada pengguna
• Resource-sharing: thread berbeda dalam
ruang alamat yang sama
• Ekonomis: pembuatan thread lebih sedikit
memakan waktu daripada pembuatan
proses, ini memaksimalkan penggunaan
ruang dalam memori
• Skalabilitas: ketika terdapat banyak
pekerjaan, thread dapat memanfaatkan
arsitektur CPU yang multi-core

Sistem Operasi Santyadiputra, G. S. 2019. 34

Anda mungkin juga menyukai