Secara umum proses adalah program dalam eksekusi. Suatu proses
adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian
tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana
digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/
processor’s register. Suatu proses umumnya juga termasuk process stack, yang
berisikan data temporer (seperti parameter metoda, address yang kembali, dan
variabel lokal) dan sebuah data section, yang berisikan variabel global. suatu
program adalah satu entitas pasif, seperti isi dari sebuah berkas yang disimpan
didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan
sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk
dijalankan dan seperangkat sumber daya/ resource yang berkenaan dengannya.
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 :
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.
·
IPC menyediakan dua operasi :
o send(message)
– pesan berukuran pasti atau variabel
o receive(message)
o Jika
P dan Q melakukan komunikasi, maka keduanya memerlukan :
§ Membangun
jalur komunikasi diantara keduanya
§ Melakukan
pertukaran pesan melaui send/receive
o Implementasi
jalur komunikasi
§ physical
(shared memory, hardware bus)
§ logical
(logical properties)
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.
·
Proses berusaha menggunakan sumber daya atau file yang tidak
diijinkan dipakainya, atau proses mencoba menggunakannya tidak untuk
peruntukannya, seperti menulis file read only.
·
Terjadi kesalahan aritmatika.
·
Proses mencoba perhitungan terlarang, seperti pembagian dengan
nol, atau mencoba menyimpan angka yang lebih besar daripada yang ddapat
diakomodasi oleh H/W.
·
Waktu telah kadaluwarsa.
·
Proses telah menunggu lebih lama daripada maksimum yang telah
ditentukan untuk terjadinya suatu kejadian spesfiik.
·
Terjadi kegagalan masukan/keluaran.
·
Kesalahan muncul pada masukan atau keluaran, seprti
ketidakmampuan menemukan file, kegagalan membaca atau mennulis setelah sejumlah
maksimum percobaan yang ditentukan (misalnya area rusak didapatkan pada
tape,atau operasi tidak valid seperti membaca dari line printer).
·
Intruksi yang tidak benar.
·
Proses berusaha mengeksekusi instruksi yang tidak ada (sering
sebagi akibat pencabangan ke daerah data dan berusaha mengeksekusi data
tersebut).
·
Terjadi usaha memakai instruksi yang tidak diijinkan.
·
Proses berusaha mengeksekusi instruksi yang disimpan untuk SO.
·
Kesalahan penggunaan data.
·
Bagian data adalah tipe yang salah atau tidak diinisialisasi.
·
Diintervensi oleh SO atau operator.
·
Untuk suatu alasan, operator atau sistem operasi mengakhiri
proses (misalnya terjadi deadlock).
·
Berakhirnya proses induk.
·
Ketika parent berakhir. So mungkin dirancannng secara otomatis
mengakhiri semua anak proses dari parent itu.
·
Atas permintaan proses induk.
·
Parent process biasanya mempunyai otoritas mengakhiri suatu anak
proses.
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 :
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 :
a) 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.
b) Efisiensi (eficiency)
c) 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.
d) Turn around time
Adalah waktu yang dihabiskan dari saat program atau job mulai
masuk ke sistem sampai proses diselesaikan sistem.
Ø 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 Q)
2. Pre-emptive, menggunakan konsep :
1. RR (Round Robin)
2. SRF (Shortest Remaining First)
3. PS (Priority Schedulling)
4. GS (Guaranteed Schedulling)
v Algoritma Pre-emptive
A. Round Robin (RR)
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.
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.
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)
Keunggulan :
·
Mudah diimplementasikan.
·
Mempunyai overhead relatif kecil.
Kelemahan :
·
Tidak tanggap terhadap perubahan lingkungan yang mungkin
menghendaki penyesuaian prioritas.
2. 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.
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.
v Algoritma Non Pre-emptive
A. First In First Out (FIFO)
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.
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.
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.
0 komentar:
Posting Komentar