Konsep Manajemen Proses pada Sistem Operasi
DEFINISI PROSES
Sistem Operasi – Proses
Terdapat beberapa definisi mengenai proses, antara lain :
- Merupakan konsep pokok dalam sistem operasi, sehingga masalah
manajemen proses adalah masalah utama dalam perancangan sistem
operasi.
- Proses adalah program yang sedang dieksekusi.
- 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:
- Sinkronisasi antar proses
- Komunikasi antar proses
- Penanganan Deadlock
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:
- 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.
- 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.
- 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
- 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.
- 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 :
- 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 :
- Menamai (memberi identitas) proses.
- Menyisipkan proses pada senarai proses atau tabel proses.
- Menentukan prioritas awal proses.
- Menciptakan PCB.
- Mengalokasikan sumber daya awal bagi proses.
Penghancuran Proses (Destroyed)
Penghancuran proses terjadi karena :
- Selesainya proses secara normal.
- Proses mengeksekusi panggilan layanan So untuk menandakan bahwa proses telah berjalan secara lengkap.
- Batas waktu telah terlewati.
- 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) .
- Memori tidak tersedia.
- Proses memerlukan memori lebih banyak daripada yang dapat disediakan oleh sistem.
- Pelanggaran terhadap batas memori.
- Proses memcoba mengakses lokasi memori yang tidak diijinkan untuk diakses.
- Terjadi kesalahan karena pelanggaran proteksi.Dll
- Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua pendekatan, yaitu :
- Pada beberapa sistem, proses-proses turunan dihancurkan saat proses induk dihancurkan secara otomatis.
- 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 :
- Sumber daya-sumber daya yang dipakai dikembalikan.
- Proses dihancurkan dari senarai atau tabel sistem.
- PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).
4. Keadaan Proses
Keadaan proses terdiri dari :
- Running, yaitu suatu kondisi pemroses sedang
mengeksekusi instruksi. Benar-benar menggunakan CPU pada saat itu
(sedang mengeksekusi instruksi proses itu).
- Ready, yaitu suatu kondisi proses siap dieksekusi, akan tetapi pemroses belum siap atau sibuk.
- 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
- 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.
- Efisiensi (eficiency)
- Waktu tanggap (response time) , Waktu tanggap berbeda untuk :
- 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.
- 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 :
- Nonpre-emptive, menggunakan konsep :
- FIFO (First In First Out) atau FCFS (First Come First Serve)
- SJF (Shortest Job First)
- HRN (Highest Ratio Next)
- MFQ (Multiple Feedback Queues)
- Pre-emptive, menggunakan konsep :
- RR (Round Robin)
- SRF (Shortest Remaining First)
- PS (Priority Schedulling)
- GS (Guaranteed Schedulling)
Algoritma Pre-emptive
- 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 :
- Jika kwanta habis dan proses belum selesai, maka proses menjadi runnable dan pemroses dialihkan ke proses lain.
- Jika kwanta belum habis dan proses menunggu suatu kejadian
(selesainya operasi I/O), maka proses menjadi blocked dan pemroses
dialihkan ke proses lain.
- Jika kwanta belum habis tetapi proses telah selesai, maka proses diakhiri dan pemroses dialihkan ke proses lain.
Diimplementasikan dengan :
- Mengelola senarai proses ready (runnable) sesuai urutan kedatangan.
- proses yang berada di ujung depan antrian menjadi running.
- Bila kwanta belum habis dan proses selesai, maka ambil proses di ujung depan antrian proses ready.
- 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.
- 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 :
- 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.
- 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.
- 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.
- 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.
- 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
- 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).
- 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.
- 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. Interupsi langsung
Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta pelayanan)
- 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:http://khairuddinuad.wordpress.com/2011/03/19/konsep-manajemen-proses-pada-sistem-operasi/