Analisis
Manajemen Proses dalam sistem operasi
Fuad al hasan adi prasetya
12.1.03.02.0147
1A TEKNIK INFORMATIKA
Program
Studi Teknik Informatika
Fakultas
Teknik
Universitas
Nusantara PGRI Kediri
2012
Analisis Manajemen Proses dalam
sistem operasi
Manajemen Proses dalam sistem
operasi
Proses merupakan konsep pokok pada sistem operasi, karena salah satu
tugas utama sistem operasi adalah
bagaimana mengatur proses – proses yang berjalan di sistem. Sebenarnya apakah
Proses itu?
Berikut beberapa definisi proses pada sistem operasi adalah :
1. Program yang sedang dalam keadaan dieksekusi.
2. Unit kerja terkecil yang secara individu memiliki sumber daya dan
dijadwalkan oleh sistem
operasi.
Sistem operasi mengolah seluruh proses yang ada di sistem dan bertugas
mengalokasikan sumber daya –
sumber daya ke proses yang membutuhkan sesuai dengan kebijaksanaan tertentu.
Sumber daya yang
dibutuhkan proses diantaranya CPU, memori, file serta I/O device.
Keadaan Proses
Proses – proses yang dikelola oleh sistem operasi akan melalui serangkaian
keadaan yang merupakan
bagian dari aktivitasnya. Keadaan proses ini disebut sebagai status proses yang
terdiri dari:
Status New yaitu status dimana proses sedang dibuat.
Status Ready yaitu status dimana proses siap dieksekusi tetapi CPU belum
tersedia karena sedang
mengerjakan proses lain.
Status Waiting yaitu status dimana proses sedang menunggu suatu kejadian
tertentu. Misalnya sedang
menunggu operasi I/O selesai, menunggu signal dari proses lain, tersedianya
memori, dsb.
Status Running yaitu status dimana proses dieksekusi. Pada status ini
CPU sedang mengeksekusi
instruksi – instruksi pada proses.
Status Terminated yaitu status dimana proses diakhiri.
Kelima status proses tersebut dapat digambarkan pada diagram berikut:
> Sebuah proses menjadi Waiting
karena proses tersebut menunggu suatu kejadian tertentu seperti
selesainya operasi I/O, misalnya perekaman data ke disk karena pada saat
perekaman dilakukan
proses sedang tidak menggunakan CPU maka scheduler segera mengalokasikan CPU ke
proses
lain yang telah Ready. Apabila kejadian yang ditunggu telah selesai maka proses
dipindahkan
kembali ke antrian Ready dan siap dijadwalkan.
> Sebuah proses dari keadaan Running
dapat menjadi Ready kembali karena diinterupsi oleh proses
lain. Interupsi dapat disebabkan karena jatah waktu yang diberikan CPU ke
proses tersebut telah
habis sementara proses masih memerlukan sejumlah waktu untuk selesai. Jatah
waktu yang
diberikan sering disebut sebagai quantum time (time slice) yang dapat berkisar
antara 1 hingga
100 milidetik. Interupsi suatu proses terkait erat dengan strategi penjadwalan
proses yang
digunakan sistem operasi yaitu strategi preemptive dimana suatu proses dapat
saja disela oleh
proses lain pada saat Running.
> Sebuah proses menjadi Terminated
disebabkan oleh beberapa hal diantaranya:
1. Proses memang sudah sele sai mengerjakan tugasnya, sehingga diakhiri secara
normal
2. Melewati batas waktu yang telah diberikan
3. Terjadi kesalahan perhitungan misalnya mengerjakan instruksi pembagian
dengan nol
(division by zero) , atau menyimpan angka yang lebih besar daripada yang dapat
diakomodasi
oleh perangkat keras.
4. Terjadi kegagalan I/O seperti kegagalan pembacaan dan penulisan file.
5. Proses induknya berakhir, pada kasus ini suatu proses dibuat oleh proses
lain, proses pembuat
disebut sebagai parent, sedangkan proses yang dibuat disebut sebagai child .
Sistem dirancang
untuk mengakhiri secara otomatis proses – proses childnya bila proses parent
berakhir.
6. Proses child diakhiri atas permintaan proses parentnya. Pada kasus ini
parent mengirim signal
tertentu untuk mengakhiri childnya misalnya mengirim signal SIGQUIT, SIGKILL
atau
SIGTERM.
Sedangkan 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 prioritas
dari proses yang ada. Apa bila terjadi dua 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.Dan juga 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 yaitu sebagai berikut:
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 :
- send(message) – pesan berukuran pasti atau variabel
- receive(message)
- Jika P dan Q melakukan komunikasi, maka keduanya
memerlukan :
- Membangun jalur komunikasi
diantara keduanya
- Melakukan pertukaran pesan
melaui send/receive
- Implementasi jalur komunikasi
- physical (shared memory,
hardware bus)
- logical (logical properties)
3. Pembuatan dan Penghancuran Proses
v 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.
v 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 :
- 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 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
:
- 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.
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.
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.