Terdapat beberapa definisi mengenai proses, antara lain :
1.
Merupakan konsep pokok dalam sistem operasi,
sehingga masalah manajemen proses adalah masalah utama dalam
perancangan sistem operasi.
2.
Proses adalah program yang sedang dieksekusi.
3.
Proses adalah unit kerja terkecil yang secara
individu memiliki sumber daya dan dijadwalkan oleh sistem operasi.
Sistem operasi bertanggung jawab terhadap aktifitas yang berhubungan dengan
manajemen proses:
Pembuatan dan penghapusan proses Penundaan dan pelanjutan proses
Penyedia mekanisme untuk:
Pembuatan dan penghapusan proses Penundaan dan pelanjutan proses
Penyedia mekanisme untuk:
1.
Sinkronisasi antar proses
2.
Komunikasi antar proses
3.
Penanganan Deadlock
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan
dengan manajemen proses seperti:
1.
Membuat dan menghapus proses pengguna dan sistem
proses. Sistem operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh
sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses
tersebut selesai agar dapat digunakan untuk proses lainnya.
2.
Menunda atau melanjutkan proses. Sistem operasi
akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan
berdasarkan prioritas dari proses-proses yang ada. Apa bila terjadi 2 atau
lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan
proses yang memiliki prioritas paling besar.
3.
Menyediakan mekanisme untuk proses sinkronisasi.
Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi
bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena
pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar
setiap proses berjalan dengan lancar
4.
Menyediakan mekanisme untuk proses komunikasi.
Sistem operasi menyediakan mekanisme agar beberapa proses dapat saling
berinteraksi dan berkomunikasi (contohnya berbagi sumber daya antar proses)
satu sama lain tanpa menyebabkan terganggunya proses lainnya.
5.
Menyediakan mekanisme untuk penanganan deadlock.
Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap
proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk
mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu
inilah yang disebut deadlock(kebuntuan). Sistem operasi harus bisa mencegah,
menghindari, dan mendeteksi adanya deadlock. Jika deadlock terjadi, sistem
operasi juga harus dapat memulihkan kondisi sistemnya.
Beberapa hal yang berhubungan dengan manajemen konsep dalam sistem operasi
:
1.
Komunikasi antar proses(Inter Process Communinication / IPC) :
§ Beberapa proses biasanya berkomunikasi dengan proses lain.
§ Contohnya pada shell pipe line : output dari proses pertama harus diberikan
kepada proses ke dua dan seterusnya. Pada beberapa sistem operasi,
proses-proses yang bekerja bersama sering sharing (berbagi) media penyimpanan,
dimana suatu proses dapat membaca dan menulis pada shared storage (main memory
atau files).
2. Mekanisme
proses untuk komunikasi dan sinkronisasi aksi. Sistem
Pesan – komunikasi proses satu dengan yang lain dapat
dilakukan tanpa perlu pembagian data.
3. Pembuatan
dan Penghancuran Proses Pembuatan Proses (Create)
Penciptaan proses terjadi karena terdapat batch baru. SO dengan kendali batch job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.
Penciptaan proses melibatkan banyak aktivitas, yaitu :
Penciptaan proses terjadi karena terdapat batch baru. SO dengan kendali batch job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.
Penciptaan proses melibatkan banyak aktivitas, yaitu :
1.
Menamai (memberi identitas) proses.
2.
Menyisipkan proses pada senarai proses atau tabel
proses.
3.
Menentukan prioritas awal proses.
4.
Menciptakan PCB.
5.
Mengalokasikan sumber daya awal bagi proses.
Penghancuran Proses (Destroyed)
Penghancuran proses terjadi karena :
1.
Selesainya proses secara normal.
2.
Proses mengeksekusi panggilan layanan So untuk
menandakan bahwa proses telah berjalan secara lengkap.
3.
Batas waktu telah terlewati.
4.
Proses telah berjalan melebihi batas waktu total
yang dispesifikasikan. Terdapat banyak kemungkinan untuk tipe waktu yang
diukur, termasuk waktu total yang dijalani (“walk clock time”) jumlah waktu
yang dipakai untuk eksekusi, dan jumlah waktu sejak pemakai terakhir kali
memberi masukan (pada proses interaktif) .
5.
Memori tidak tersedia.
6.
Proses memerlukan memori lebih banyak daripada
yang dapat disediakan oleh sistem.
7.
Pelanggaran terhadap batas memori.
8.
Proses memcoba mengakses lokasi memori yang tidak
diijinkan untuk diakses.
9.
Terjadi kesalahan karena pelanggaran proteksi.Dll
1.
Penghancuran lebih rumit bila proses telah
menciptakan proses-proses lain. Terdapat dua pendekatan, yaitu :
1.
Pada beberapa sistem, proses-proses turunan
dihancurkan saat proses induk dihancurkan secara otomatis.
2.
Beberapa sistem lain menganggap proses anak
independen terhadap proses induk Proses anak tidak secara otomatis dihancurkan
saat proses induk dihancurkan.
Penghancuran
proses melibatkan pembebasan proses dari sistem, yaitu :
1.
Sumber daya-sumber daya yang dipakai
dikembalikan.
2.
Proses dihancurkan dari senarai atau tabel
sistem.
3.
PCB dihapus (ruang memori PCB dikembalikan ke
pool memori bebas).
4. Keadaan Proses
Keadaan proses terdiri dari :
1.
Running, yaitu suatu kondisi pemroses sedang mengeksekusi instruksi.
Benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses
itu).
2.
Ready, yaitu suatu kondisi proses siap dieksekusi, akan tetapi pemroses
belum siap atau sibuk.
3.
Blocked, yaitu suatu proses menunggu kejadian untuk melengkapi tugasnya. Bentuk
kegiatan menunggu proses yaitu : selesainya kerja dari perangkat I/Otersedianya
memori yang cukup.
5. Penjadwalan Proses
Kriteria untuk mengukur dan optimasi kinerja penjadwalan
1.
Adil (fairness) Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah
waktu pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses
sehingga mengalami kekurangan waktu.
2.
Efisiensi (eficiency)
3.
Waktu tanggap (response time) ,
Waktu tanggap berbeda untuk :
1.
Sistem interaktif Didefinisikan sebagai waktu
yang dihabiskan dari saat karakter terakhir dari . perintah dimasukkan atau
transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut
terminal response time.
2.
Sistem waktu nyata Didefinisikan sebagai waktu
dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin
layanan yang dimaksud dieksekusi, disebut event response time.
4. Turn around time Adalah
waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai
proses diselesaikan sistem.
5 . Throughput Adalah jumlah kerja yang
dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput
adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval
waktu
Algoritma Penjadwalan
Berikut jenis-jenis algoritma berdasarkan penjadwalan :
1.
Nonpre-emptive, menggunakan konsep :
1.
FIFO (First In First Out) atau FCFS (First Come
First Serve)
2.
SJF (Shortest Job First)
3.
HRN (Highest Ratio Next)
4.
MFQ (Multiple Feedback Queues)
5.
Pre-emptive, menggunakan konsep :
1.
RR (Round Robin)
2.
SRF (Shortest Remaining First)
3.
PS (Priority Schedulling)
4.
GS (Guaranteed Schedulling)
Algoritma Pre-emptive
1.
A. Round Robin (RR)
Merupakan :
§ Penjadwalan yang paling tua, sederhana, adil,banyak digunakan algoritmanya
dan mudah diimplementasikan.
§ Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh penjadwal
berdasarkan lama waktu berjalannya proses (preempt by time).
§ Penjadwalan tanpa prioritas.
§ Berasumsi bahwa semua proses memiliki kepentingan yang sama, sehingga
tidak ada prioritas tertentu.
Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses
yang disebut kwanta (quantum) atau time slice dimana proses itu berjalan.
Jika proses masih running sampai akhir quantum, maka CPU akan mempreempt proses
itu dan memberikannya ke proses lain.
Algoritma yang digunakan :
1.
Jika kwanta habis dan proses belum selesai, maka
proses menjadi runnable dan pemroses dialihkan ke proses lain.
2.
Jika kwanta belum habis dan proses menunggu suatu
kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses
dialihkan ke proses lain.
3.
Jika kwanta belum habis tetapi proses telah selesai,
maka proses diakhiri dan pemroses dialihkan ke proses lain.
Diimplementasikan dengan :
1.
Mengelola senarai proses ready (runnable) sesuai
urutan kedatangan.
2.
proses yang berada di ujung depan antrian menjadi
running.
3.
Bila kwanta belum habis dan proses selesai, maka
ambil proses di ujung depan antrian proses ready.
4.
Jika kwanta habis dan proses belum selesai, maka
tempatkan proses running ke ekor antrian proses ready dan ambil proses di ujung
depan antrian proses ready.
Masalah yang timbul adalah menentukan besar kwanta, yaitu :
§ Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn arround time
rendah.
§ Kwanta terlalu kecil menyebabkan peralihan proses terlalu banyak
sehingga menurunkan efisiensi proses.
Penjadwalan ini :
§ Baik untuk sistem interactive-time sharing dimana kebanyakan waktu
dipergunakan menunggu kejadian eksternal.
Contoh : text editor, kebanyakan waktu program adalah untuk menunggu
keyboard, sehingga dapat dijalankan proses-proses lain.
§ Tidak cocok untuk sistem waktu nyata apalagi hard-real-time applications.
1.
B. Priority Schedulling (PS)
Adalah tiap proses diberi prioritas dan proses yang berprioritas tertinggi
mendapat jatah waktu lebih dulu (running). Berasumsi bahwa masing-masing
proses memiliki prioritas 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, mayor berprioritas 80, kapten berprioritas 70, letnan
berprioritas 60 dan seterusnya. Dalam UNIX perintah untuk mengubah prioritas
menggunakan perintah nice.
Pemberian prioritas diberikan secara :
1.
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.
1.
Dinamis (dynamic priorities)
Merupakan mekanisme untuk menanggapi perubahan lingkungan
sistem beroperasi. Prioritas awal yang diberikan ke proses mungkin
hanya berumur pendek setelah disesuaikan ke nilai yang lebih tepat sesuai
lingkungan.
Kelemahan :
§ Implementasi mekanisme prioritas dinamis lebih kompleks dan mempunyai
overhead lebih besar. Overhead in diimbangi dengan peningkatan
daya tanggap sistem.
Dalam algoritma berprioritas dinamis dituntun oleh keputusan untuk memenuhi
kebijaksanaan tertentu yang menjadi tujuan. Layanan yang bagus adalah menset
prioritas dengan nilai 1/f, dimana f adalah ration kwanta terakhir yang digunakan
proses.
Contoh :
§ Proses yang menggunakan 2 msec kwanta 100 ms, maka prioritasnya50.
§ Proses yang berjalan selama 50 ms sebelum blocked berprioritas 2.
§ Proses yang menggunakan seluruh kwanta berprioritas 1.
1.
C. Multiple Feedback Queues
(MFQ)
Merupakan :
§ Penjadwalan berprioritas dinamis.
Penjadwalan ini untuk mencegah (mengurangi) banyaknya swapping dengan
proses-proses yang sangat banyak menggunakan pemroses (karena menyelesaikan
tugasnya memakan waktu lama) diberi jatah waktu (jumlah kwanta) lebih banyak
dalam satu waktu. Penjadwalan ini juga menghendaki kelas-kelas prioritas bagi
proses-proses yang ada. Kelas tertinggi berjalan selama satu kwanta, kelas
berikutnya berjalan selama dua kwanta, kelas berikutnya berjalan empat kwanta,
dan seterusnya.
Ketentuan yang berlaku adalah sebagai berikut :
§ Jalankan proses pada kelas tertinggi.
§ Jika proses menggunakan seluruh kwanta yang dialokasikan, maka diturunkan
kelas prioritasnya.
§ Proses yang masuk untuk pertama kali ke sistem langsung diberi kelas tertinggi.
Mekanisme ini mencegah proses yang perlu berjalan lama swapping
berkali-kali dan mencegah proses-proses interaktif yang singkat harus
menunggu lama.
1.
D. Shortest Remaining First
(SRF)
Merupakan :
§ Penjadwalan berprioritas dinamis.
§ Adalah preemptive untuk timesharing.
§ Melengkapi SJF.
Pada SRF, proses dengan sisa waktu jalan diestimasi terendah dijalankan,
termasuk proses-proses yang baru tiba.
§ Pada SJF, begitu proses dieksekusi, proses dijalankan sampai selesai.
§ Pada SRF, proses yang sedang berjalan (running) dapat diambil alih proses
baru dengan sisa waktu jalan yang diestimasi lebih rendah.
Kelemahan :
§ Mempunyai overhead lebih besar dibanding SJF. SRF perlu penyimpanan
waktu layanan yang telah dihabiskan job dan kadang-kadang harus menangani
peralihan.
§ Tibanya proses-proses kecil akan segera dijalankan.
§ Job-job lebih lama berarti dengan lama dan variasi waktu tunggu lebih
lama dibanding pada SJF.
SRF perlu menyimpan waktu layanan yang telah dihabiskan , menambah
overhead. Secara teoritis, SRF memberi waktu tunggu minimum tetapi karena
overhead peralihan, maka pada situasi tertentu SFJ bisa memberi kinerja lebih
baik dibanding SRF.
1.
E. Guaranteed Scheduloing (GS)
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.
Algoritma Non Pre-emptive
1.
A. First In First Out (FIFO)
Merupakan :
§ Penjadwalan tidak berprioritas.
FIFO adalah penjadwalan paling sederhana, yaitu :
§ Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan.
§ Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai
selesai.
Penjadwalan ini :
§ Baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai.
Contoh : aplikasi analisis numerik, maupun pembuatan tabel.
§ Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak
memberi waktu tanggap yang baik.
§ Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).
1.
B. Shortest Job First (SJF)
Penjadwalan ini mengasumsikan waktu jalan proses sampai selesai diketahui
sebelumnya. Mekanismenya adalah menjadwalkan proses dengan waktu jalan
terpendek lebih dulu sampai selesai, sehingga memberikan efisiensi yang tinggi
dan turn around time rendah dan penjadwalannya tak berprioritas.
Masalah yang muncul adalah :
§ Tidak mengetahui ukuran job saat job masuk. Untuk mengetahui ukuran job
adalah dengan membuat estimasi berdasarkan kelakukan sebelumnya.
§ Proses yang tidak datang bersamaan, sehingga penetapannya harus dinamis.
Penjadwalan ini jarang digunakan, karena merupakan kajian teoritis
untuk pembandingan turn around time.
1.
C. Highest Ratio Next (HRN)
Merupakan :
§ Penjadwalan berprioritas dinamis.
§ Penjadwalan untuk mengoreksi kelemahan SJF.
§ Adalah strategi penjadwalan dengan prioritas proses tidak hanya merupakan
fungsi waktu layanan tetapi juga jumlah waktu tunggu proses. Begitu proses
mendapat jatah pemroses, proses berjalan sampai selesai.
Prioritas dinamis HRN dihitung berdasarkan rumus :
Prioritas = (waktu tunggu + waktu layanan ) / waktu layanan
Karena waktu layanan muncul sebagai pembagi, maka job lebih pendek
berprioritas lebih baik, karena waktu tunggu sebagai pembilang maka proses yang
telah menunggu lebih lama juga mempunyai kesempatan lebih bagus.
Disebut HRN, karena waktu tunggu ditambah waktu layanan adalah waktu
tanggap, yang berarti waktu tanggap tertinggi yang harus dilayani.
Interupsi
Kerja prosesor pada suatu proses terhenti oleh pensaklaran
konteks (perubahan kegiatan prosesor dari proses ke proses yang
terjadi diantara proses sistem / proses aplikasi).
2 cara interupsi pada processor :
1.
1. Interupsi langsung
Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada
prosesor untuk meminta pelayanan)
1.
2. Interupsi Tanya / Polling, Berasal dari prosesor (prosesor secara bergiliran mengecek apakah ada
peripheral yang memerlukan pelayanan atau tidak)
§ Interupsi dapat di-enable dan disable tergantung pada levelnya.
§ Pembangkit interupsi dapat berasal dari :
§ Program, di dalam program telah dirancang pada bagian
tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi,
contohnya pada saat penggunaan alat / prosesor secara bergantian.
§ Prosesor, prosesor sendiri dapat membangkitkan interupsi,
yang biasa mengolah logika dan aritmatika. Jika melampoi ukuran tampung
register di dalam prosesor, maka terjadi kekeliruan yang akan menginterupsi
kerjanya sendiri dan menyerahkan kendali prosesor pada sistem operasi. Misalnya
pembagian dengan bilangan nol.
§ Satuan kendali, tugas untuk melaksanakan interupsi terletak
pada satuan kendali, sehingga satuan kendali dapat membangkitkan interupsi.
Misalnya kekeliruan instruksi
§ Kunci waktu / clock, menggunakan interupsi
berkala. Misalnya pada program looping yang tak terhingga, diinterupsi pada
setiap selang waktu 60 detik.
§ Peripheral I/O, I/O jika akan bekerja memberitahukan pada
prosesor dengan interupsi prosesor dan juga ketika pekerjaan selesai atau pada
saat terjadi kekeliruan paritas.
§ Memori, karena terjadi kekeliruan, misalnya ketika
prosesor ingin mencapai alamat memori yang terletak di luar bentangan alamat
memori yang ada.
Sumber daya lain, misal dibangkitkan oleh operator sistem
komputer yang mengerti cara interupsi.
1.
î Interupsi vector :
Berisi alamat prosedur service interupsi
2.
î Penerimaan interupsi dan
interupsi berganda : ada kalanya interupsi ditolak oleh prosesor atau
interupsi yang datang tidak hanya satu sehingga diperlukan prioritas.
Tindak lanjut interupsi :
1.
1. Penata interupsi / interrupt
handler
Jika terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata
interupsi pada sistem operasi, maka penata interupsi inilah yang melaksanakan
interupsi.
1.
Instruksi yang sedang diolah oleh prosesor
dibiarkan sampai selesai program.
2.
Penata interupsi merekam semua informasi proses
ke dalam blok kendali proses.
3.
Penata interupsi mengidentifikasi jenis dan asal
interupsi.
4.
Penata interupsi mengambil tindakan sesuai dengan
yang dimaksud interupsi.
5.
Penata interupsi mempersiapkan segala sesuatu
untuk pelanjutan proses yang diinterupsi.
6.
Penata keliru / error handler
yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada
sistem operasi yang menata kegiatan akibat kekeliruan adalah penata keliru.
1.
Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan kekeliruan,
contohnya telah dilengkapi dengan sandi Hamming sehingga ketika menemukan
kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke bentuk semula
sebelum terjadi kekeliruan.
2.
Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan
ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti
biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar
dari proses.
3.
Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari monitor, setelah itu
prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak dapat
menolong proses yang keliru tersebut.
Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi :
1.
hardware memasukkan program counter, dl.l.
memasukkan ke dalam stack pencacah program
1.
Hardware memuatkan (load) program counter baru
dari vector interrupsi
2.
Prosedur bahasa rakitan menyimpan isi register
3.
Prosedur bahasa rakitan men-set stack yang baru
4.
Prosedur C menandai proses servis siap (ready)
5.
Scheduler / penjadwalan menentukan proses mana
yang akan jalan berikutnya
6.
Prosedur C kembali ke modus bahasa rakitan
7.
Prosedur bahasa rakitan memulai proses yang
sedang dilaksanakan.
sumber :
www.fachriarif.blogspot.com