MANAJEMEN PROSES
2. Multiprogramming (multitasking)
Multiprogramming adalah suatu usaha untuk menambah pemanfaatan
CPU, dimana diusahakan agar CPU jangan sampai dalam keadaan diam
(tidak sedang melakukan eksekusi). Dengan multiprogramming berarti
ada beberapa program pemakai dalam memori yang dapat dieksekusi
seolah-olah tampak bersamaan pada waktu-waktu tertentu. Kebanyakan
computer pribadi, bersistem operasi workstation adalah sistem pemroses
tunggal yang menjalankan sistem operasi multiprogramming
(multitasking), seperti MS-Windows-98, MS-Windows NT, MS-
Windows XP, dan Macintosh system 7.
Sifat:
1. Saling tidak bergantung (independent) Proses terpisah dari lainnya
dan tidak saling mempengaruhi.
3. Time Sharing
Time Sharing adalah proses di mana waktu CPU dibagi menjadi satu unit
yang disebut time slice, sehingga memungkinkan banyak user untuk
mengeksekusi komputer.
5. Multiprocessing
Adalah manajemen banyak proses di komputer multiprocessor (banyak
pemroses di dalamnya). Dulunya multiprocessor hanya terdapat di
sistem besar yaitu sistem mainframe dan minikomputer. Saat ini
komputer workstation pun telah dapat dilengkapi multiprocessor.
Multiprocessor dimaksudkan untuk meningkatkan kinerja dan dapat
memberikan kemampuan fault tolerant.
Sistem operasi Microsoft Windows NT, UNIX, Linux telah
menyediakan dukungan multiprocessing.
submit Completion
Dispatch
Event wait
Event occurs Blocked
Proses dapat menciptakan proses baru yaitu proses anak (child process).
Proses yang menciptakan proses disebut proses induk (parent process).
Proses anakpun kembali dapat menciptakan proses-proses anak. Dengan
demikian, proses-proses dapat membentuk pohon hirarki proses.
Tahap-tahap penciptaan proses :
a. Diberikan satu identifier unik ke proes baru. Isian baru ditambahkan
ke tabel proses utama yang berisi satu isian per proses.
b. Dialokasikan ruang untuk proses.
c. PCB harus diinisalisasi
d. Kaitan-kaitan antar kabel dan senarai yang cocok dibuat.
e. Apabila daperlukan struktur data lain maka segera dibuat struktur
data itu.
2. Penghancuran / terminasi proses (destroy a proses).
Penghacuran proses melibatkan pembebasan proses dari sistem, yaitu:
Kernel
Pengalihan proses terjadi, jika proses yang running beralih menjadi state
lain (ready, blocked, dan sebagainya), kemudian sistem operasi harus
membuat perubahan-perubahan berarti terhadap lingkungannya.
Langkah-langkah yang terlibat dalam pengalihan proses, antara lain :
1. Simpan konteks pemroses, termasuk register PC dan register-register
lain.
2. Perbaharui PCB proses yang running . Pelaksanaanya termasuk
mengubah state proses menjadi salah satu state (ready, blocked,
Complection
Dispatch
Ready Running
Event Wait
Event Occur
State aktif
Blocked
Suspend
Resume Suspend
Suspended Suspended
Ready I/O Complection Blocked
Gambar 3.5 Diagram lima state
Suspended (penundaan) adalah operasi penting dan telah
diterapkan dengan beragam cara pada banyak sistem. Suspended
biasanya hanya berlangsung singkat. Suspended sering dilakukan
sistem untuk memindahkan sementara proses-proses tertentu guna
mereduksi beban sistem selama situasi beban puncak.
Proses yang suspend tidak berlanjut sampai proses lain
meresumenya. Untuk suspended jangka panjang, resource-resource
proses dibebaskan. Pembebasan ini tergantung pada sifat masing–
masing resource. Memori utama seharusnya segera dibebaskan ketika
proses suspend agar dapat memanfaatkan proses lain. Resuming proses
adalah menjalankan proses dari titik (instruksi) di mana proses
disuspend.
Operasi suspend dan resume penting, sebab :
1. Jika sistem berfungsi secara buruk dan mungkin gagal, maka
proses-proses dapat disuspend agar diresume, setelah masalah
diselesaikan.
Mikrokernel
Adalah inti sistem operasi yang menyediakan landasan perluasan
sistem operasi. Dipopulerkan oleh MACH. Secara teoritis, pendekatan
mikrokernel menyediakan derajat fleksibilitas dan modularitas tinggi.
Sistem operasi yang memakai pendekatan mikrokernel adalah MS
Windows NT.
Landasan mikrokernel adalah hanya fungsi-fungsi sistem operasi inti
yang secara mutlak esensi yang harus berada di kernel. Layanan-layanan
dan aplikasi-aplikasi yang kurang esensi dibangun di atas mikrokernel itu.
Meskipun pembagian antara mana yang perlu dan tidak perlu ada di
mikrokernel beragam. Terdapat ciri yang sama, yaitu banyak layanan yang
secara tradisional merupakan bagian sistem operasi menjadi subsistem
eksternal. Subsistem ini berinteraksi dengan kernel dan subsistem-
subsistem lain. Layanan-layanan itu antara lain : sistem file, sistem
Windowing dan layanan-layanan.
Komponen-komponen sistem operasi diluar mikrokernel saling
berinteraksi melalui pesan yang dilewatkan melalui mikrokernel. Fungsi
mikrokernel adalah sebagai mediator pertukaran pesan. Mikrokernel
memvalidasi pesan, melewatkan pesan antara komponen-komponen dan
memberi hak pengaksesan perangkat keras.
Struktur ini ideal untuk lingkungan pemrosesan terdistribusi, karena
mikrokernel dapat melewatkan pesan baik secara lokal atau jarak jauh
tanpa perubahan komponen-komponen sistem operasi yang lain.
Identifikasi Proses
Identifier
Identifier meliputi:
identifier proses
identifier proses yang menciptakan
identifier pemakai
Informasi suatu proses
Register-register yang terlihat pemakai
Register-register yang dapat ditunjuk instruksi bahasa assembly untuk diolah
pemroses
Register-register kendali dan status
Penjadwalan ini :
1. Baik untuk sistem batch yang sangat jarang berinteraksi dengan
pemakai. Contoh : aplikasi analisis numerik, maupun
pembuatan tabel.
2. Sangat tidak baik (tidak berguna) untuk sistem interaktif,
karena tidak memberi waktu tanggap yang baik.
3. Tidak dapat digunakan untuk sistem waktu nyata (real-time
applications).
Contoh soal :
Jika diketahui terdapat 5 (lima) macam antrian proses, yaitu A-B-C-D-E
dengan waktu kedatangan proses berbeda-beda.
Penyelesaian :
Nama Waktu Lama Mulai Selesai TA
Proses Tiba Eksekusi Eksekusi Eksekusi
A 0 5 0 5 5
B 1 2 5 7 6
C 2 6 7 13 11
D 2 8 13 21 19
E 5 3 21 24 16
TA = 57
Rerata TA = 11.4
b. SJF (Shortest Job First), atau SJN (Shortest Job Next) atau Proses
Terpendek Dipertamakan (PTD).
Salah satu cara untuk mengatasi penjadwalan FIFO adalah melalui
prioritas. Proses dengan lama proses yang singkat memperoleh
prioritas/didahulukan ke prosesor. Makin singkat lama prosesnya,
makin cepat proses tersebut dilayani oleh prosesor. Penjadwalan
ini dikenal sebagai “Proses Terpendek Dipertamakan”.
Mekanismenya adalah menjadwalkan proses dengan waktu jalan
terpendek lebih dulu sampai selesai, sehingga memberikan
efisiensi yang tinggi dan turn around time rendah.
Penjadwalan tersebut merupakan penjadwalan dengan prioritas
tanpa preemptive. Dasar prioritas adalah pendeknya proses. Makin
pendek proses makin tinggi prioritasnya. Penjadwalan ini cocok
digunakan untuk long term.
Algoritma penjadwal prioritas adalah sebagai berikut:
1. Setiap proses akan mempunyai prioritas (bilangan integer).
Beberapa sistem menggunakan integer dengan urutan kecil
untuk proses dengan prioritas rendah, dan sistem lain juga bisa
menggunakan integer urutan kecil untuk proses dengan
prioritas tinggi. Tetapi dalam teks ini diasumsikan bahwa
integer kecil merupakan prioritas tertinggi.
2. Penentuan pada saat tertentu, proses mana yang perlu dilayani
oleh prosesor.
Contoh soal :
Jika diketahui terdapat 5 (lima) macam antrian proses, yaitu A-B-C-D-E
dengan waktu kedatangan semuanya 0 (nol).
Nama Proses Waktu Tiba Lama Eksekusi
A 0 10
B 0 5
C 0 7
D 0 1
E 0 3
Contoh soal :
Jika diketahui terdapat 5 (lima) macam antrian proses, yaitu A-B-C-D-E
dengan waktu kedatangan proses berbeda-beda
Nama Proses Waktu Tiba Lama Eksekusi
A 0 1
B 2 3
C 5 5
D 7 7
E 9 10
Dari tabel diatas terlihat bahwa proses job A dimulai eksekusi pada
angka 0 dan selesai eksekusi pada angka 1. Job B tiba pada antrian
proses pada angka 2 dengan lama eksekusi angka 3. Job B ini akan
dieksekusi pada angka 2, tetapi bukan angka 1, yaitu waktu
selesainya job A, karena pada angka 1, yaitu selesainya job A, job
B belum tiba pada antrian proses. Ini berarti prosesor harus
menunggu sampai job-job tiba pada antrian proses. Begitu juga
pada proses job D (kasus sama dengan job B).
Algoritma penjadwalan SJF ini memiliki keunggulan dan
kelemahan. Keunggulannya terletak pada kemampuannya untuk
memperkecil rerata lama tanggap. Kelemahannya terletak pada
layanan terhadap proses panjang. Jika proses pendek tiba terus-
menerus, maka layanan terhadap proses panjang akan terus-
menerus tertunda. Penundaan ini tidak mengenal batas selama
proses pendek masih saja terus tiba. Kelemahan berikutnya terletak
pada implementasi.
c. HRN (Highest Ratio Next)
Contoh soal :
Jika diketahui terdapat 5 (lima) macam antrian proses, yaitu A-B-
C-D-E dengan waktu kedatangan proses berbeda-beda.
Dari soal di atas, yang akan dikerjakan pertama kali adalah job
yang tibanya pertama kali. Ini dikarenakan job-job lain belum tiba
dan status prosesor dalam keadaan kosong, yaitu tidak sedang
melakukan eksekusi. Pada saat 4, yaitu selesainya eksekusi job A,
kita menemukan rasio penalti B, C, D, E sebagai berikut :
Di sini pada tabel rasio penalti ke-1 (satu) tertinggi adalah proses job B,
maka tabel proses ke-2 (dua) adalah :
Nama Waktu Lama Mulai Selesai TA
Proses Tiba Eksekusi Eksekusi Eksekusi
A 0 4 0 4 4
B 1 2 4 6 5
Pada tabel proses ke-2 (dua) kita dapati bahwa proses B selesai pada saat 6
(enam), maka tabel rasio penalti ke-2 (dua) adalah :
Proses Waktu sia-sia Rasio penalty
C 6–2=4 (4 + 5) / 5 = 1,8
D 6–3=3 (3 + 8) / 8 =
1,375
E 6–4=2 (2 + 4) / 4 = 1,5
Di sini pada tabel rasio penalti ke-2 (dua) tertinggi adalah proses job C,
maka tabel proses ke-3 (dua) adalah :
Nama Waktu Lama Mulai Selesai TA
Proses Tiba Eksekusi Eksekusi Eksekusi
A 0 4 0 4 4
B 1 2 4 6 5
C 2 5 6 11 9
Pada saat ini, proses E memiliki rasio penalty tertinggi, sehingga proses E
yang dikerjakan. Pada saat 15, proses E selesai, dan mulai dari saat 15,
proses D dikerjakan sampai selesai pada saat 23.
Nama Waktu Lama Mulai Selesai TA
Proses Tiba Eksekusi Eksekusi Eksekusi
A 0 4 0 4 4
B 1 2 4 6 5
C 2 5 6 11 9
E 4 4 11 15 11
D 3 8 15 23 20
= 49
Rerata TA = 9.8
Pada saat 0 (nol), hanya proses A yang telah tiba, maka mulai
dari saat 0 (nol) proses A yang dikerjakan oleh proseseor. Setelah
bekerja sampai saat 2 (dua), proses B tiba. Pada saat 2 (dua), sisa
proses dari proses A adalah 5 (lima), sedangkan lama proses dari
proses B adalah 3 (tiga), karena proses B lebih sedikit lama
eksekusinya, maka melalui preemptive mulai saat 2 (dua) proses A
dikeluarkan dari prosesor untuk digantikan oleh prosesor B.
Pada saat 4 (empat) yaitu pada proses B, proses C tiba. Pada
saat 4 (empat) sisa waktu eksekusi A adalah 5 (lima), proses B
tinggal 1 (satu), serta lama proses dari C adalah 9 (sembilan). Yang
paling dekat ke waktu selesai adalah proses B, sehingga pada saat 4
(empat) pelaksanaan proses B diselesaikan.
Pada saat 5 (lima) proses D tiba. Pada saat 5 (lima), sisa proses
dari proses A adalah 5 (lima), proses B selesai, lama proses dari
proses C adalah 9 (sembilan), serta lama proses dari D adalah 4
(empat). Yang paling dekat ke waktu selesai adalah proses D,
sehingga mulai pada saat 5 (lima) proses D dikerjakan.
Pada saat 9 (sembilan) proses D selesai. Pada saat 9 (sembilan),
sisa waktu eksekusi proses A adalah 5 (lima), serta lama proses
dari C adalah 9 (sembilan). Yang paling cepat untuk diselesaikan
b. RR (Round Robin)
Merupakan penjadwalan yang paling tua, sederhana, adil,
banyak digunakan algoritmanya dan mudah diimplementasikan.
Pada penjadwalan RR ini, eksekusi dilakukan secara bergiliran
berdasarkan antrian (non preemptive), prosessor mengerjakan
sesaat setiap proses secara berturut-turut. Proses yang telah
dieksekusi prosesesor dan belum selesai, sehingga penggiliran
untuk eksekusi tersebut seperti gelang. Hanya proses yang telah
selesai dieksekusi yang meninggalkan proses dan antrian tersebut.
Prosessor
A B C D
Antrian proses
Pada saat job tiba mempunyai waktu tiba yang sama, maka
eksekusi tersebut dilakukan tanpa prioritas. Kita dapat melihat
pelaksanaan setiap proses pada akhir kuantum waktu. Nilai
kuantum waktu ini digunakan untuk memulai maupun
menghentikan job atau proses yang sedang dieksekusi. Pada
metode ini, jika proses yang sedang dieksekusi belum selesai
karena diberhentikan oleh waktu kuntum (q) atau time slice, tetapi
Contoh soal :
Jika diketahui terdapat 5 (lima) macam antrian proses, yaitu A-B-C-D-E
dengan waktu kedatangan semua proses sama, dan kuantum waktu adalah
3 (tiga).
Nama Proses Waktu Tiba Lama Eksekusi
A 0 7
B 0 5
C 0 8
D 0 2
E 0 6
Contoh soal :
Jika diketahui terdapat 5 (lima) macam antrian proses, yaitu A-B-C-D-E
dengan waktu kedatangan proses berbeda-beda, dan kuantum waktu adalah
2 (dua).
Penyelesaian :
Nama Waktu Lama Sisa Mulai Selesai TA
Proses Tiba Proses Eksekusi Eksekusi Eksekusi
A 0 5 3,1,0 0 12 12
B 1 3 1,0 2 7 6
d. GS (Guaranteed Schedulling)
Penjadwalan ini memberikan janji yang realistis (memberi daya
pemroses yang sama) untuk membuat dan menyesuaikan
performance adalah jika ada N pemakai, sehingga setiap proses
(pemakai) akan mendapatkan 1/N dari daya pemroses CPU. Untuk
mewujudkannya, sistem harus selalu menyimpan informasi tentang
jumlah waktu CPU untuk semua proses sejak login dan juga berapa
lama pemakai sedang login, kemudian jumlah waktu CPU yaitu
waktu mulai login dibagi dengan n, sehingga lebih mudah
menghitung rasio waktu CPU. Karena jumlah waktu pemroses tiap
pemakai dapat diketahui, maka dapat dihitung rasio antara waktu
pemroses yang sesungguhnya harus diperoleh, yaitu 1/N waktu
pemroses seluruhnya dan waktu pemroses yang telah
diperuntukkan proses itu.
Rasio 0,5 berarti sebuah proses hanya punya 0,5 dari apa yang
waktu CPU miliki dan rasio 2,0 berarti sebuah proses hanya punya
2,0 dari apa yang waktu CPU miliki. Algoritma akan menjalankan
proses dengan rasio paling rendah hingga naik ketingkat lebih
tinggi diatas pesaing terdekatnya. Ide sederhana ini dapat
diimplementasikan ke sistem real-time dan memiliki penjadwalan
berprioritas dinamis.
P2 P4 P3 P1