MANAJEMEN PROSES PADA SISTEM OPERASI
Manajemen
proses merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen
proses adalah masalah utama dalam perancangan sistem operasi. Proses adalah
program yang sedang dieksekusi. Proses dapat juga didefinisikan sebagai unit
kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh
sistem operasi. Proses berisi instruksi, data, program counter, register
pemroses, stack data, alamat pengiriman dan variabel pendukung lainnya.
Sebagaimana
proses bekerja, maka proses tersebut merubah state (keadaan statis/ asal).
Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada
dari proses tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini:
PROCESS CONTROL BLOCK
Tiap
proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB)
– juga disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 2. PCB
berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses
yang spesifik, termasuk ini:
o Keadaan
proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
o Program
counter: Counter mengindikasikan address dari perintah selanjutnya untuk
dijalankan untuk proses ini.
o CPU
register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan
komputer.
PENJADWALAN PROSES
Tujuan
dari multiprogramming adalah untuk memiliki sejumlah proses yang berjalan pada
sepanjang waktu, untuk memaksimalkan penggunaan CPU.
Tujuan
dari pembagian waktu adalah untuk mengganti CPU diantara proses-proses yang
begitu sering sehingga pengguna dapat berinteraksi dengan setiap program sambil
CPU bekerja. Untuk sistem uniprosesor, tidak akan ada lebih dari satu proses
berjalan. Jika ada proses yang lebih dari itu, yang lainnya akan harus menunggu
sampai CPU bebas dan dapat dijadualkan kembali.
Terdapat
3 konsep dasar Penjadwalan proses yaitu :
Ø Penjadualan Antrian (Scheduling Queue)
Ketika
proses memasuki sistem, mereka diletakkan dalam antrian job. Antrian ini
terdiri dari seluruh proses dalam sistem. Proses yang hidup pada memori utama
dan siap dan menunggu/ wait untuk mengeksekusi disimpan pada sebuah daftar
bernama ready queue. Antrian ini biasanya disimpan sebagai daftar penghubung.
Sebuah header ready queue berisikan penunjuk kepada PCB-PCB awal dan akhir.
Setiap PCB memiliki pointer field yang menunjukkan proses selanjutnya dalam
ready queue.
Ø Penjadwal / Scheduler
Sebuah
proses berpindah antara berbagai penjadualan antrian selama umur hidupnya.
Sistem
operasi
harus memilih, untuk keperluan penjadualan, memproses antrian-antrian ini dalam
cara tertentu. Pemilihan proses dilaksanakan oleh penjadual yang tepat/ cocok.
Dalam sistem batch, sering ada lebih banyak proses yang diserahkan daripada
yang dapat dilaksanakan segera. Proses ini dipitakan/ disimpan pada suatu alat
penyimpan masal (biasanya disket), dimana proses tersebut disimpan untuk
eksekusi dilain waktu. Penjadualan long term, atau penjadual job, memilih
proses dari pool ini dan mengisinya kedalam memori eksekusi.
Ø Alih Konteks / Switch Context
Mengganti
CPU ke proses lain memerlukan penyimpanan suatu keadaan proses lama (state of
old process) dan kemudian beralih ke proses yang baru. Tugas tersebut diketahui
sebagai alih konteks (context switch). Alih konteks sebuah proses digambarkan
dalam PCB suatu proses; termasuk nilai dari CPU register, status proses (lihat
Gambar 7). dan informasi managemen memori. Ketika alih konteks terjadi, kernel
menyimpan konteks dari proses lama kedalam PCB nya dan mengisi konteks yang
telah disimpan dari process baru yang telah terjadual untuk berjalan.
Pergantian waktu konteks adalah murni overhead, karena sistem melakukan
pekerjaan yang tidak perlu. Kecepatannya bervariasi dari mesin ke mesin,
bergantung pada kecepatan memori, jumlah register yang harus di copy, dan
keberadaan instruksi khusus (seperti instruksi tunggal untuk mengisi atau
menyimpan seluruh register). Tingkat kecepatan umumnya berkisar antara 1 sampai
1000 mikro detik
OPERASI PADA PROSES
Proses
dalam sistem dapat dieksekusi secara bersama-sama, proses tersebut harus dibuat
dan dihapus secara dinamis. Maka, sistem operasi harus menyediakan suatu
mekanisme untuk pembuatan proses dan erminasi proses. Sistem operasi dalam
mengelola proses dapat melakukan operasi-operasi terhadap proses. Operasi
tersebut adalah :
a. Penciptaan
proses
b. Penghancuran/terminasi
proses
c. Penundaan
proses
d. Pelanjutan
kembali proses
e. Pengubahan
prioritas proses
f. Memblok
proses
g. Membangunkan
proses
h. Menjadwalkan
proses
i.
Memungkinkan proses berkomunikasi dengan proses lain
Pembuatan
Proses Melibatkan banyak aktivitas, yaitu :
a. Memberi
identitas proses
b. Menyisipkan
proses pada senarai atau tabel proses
c. Menentukan
prioritas awal proses
d. Menciptakan
PCB
e. Mengalokasikan
sumber daya awal bagi proses
Ketika
proses baru ditambahkan, sistem operasi membangun struktur data untuk mengelola
dan mengalokasikan ruang alamat proses.
Kejadian
yang dapat menyebabkan penciptaan proses :
a. Pada
lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job). Sistem
operasi dengan kendali batch job, setelah menciptakan proses baru, kemudian
melanjutkan membaca job berikutnya.
b. Pada
lingkungan interaktif, ketika pemakai baru berusaha logon.
c. Sebagai
tanggapan suatu aplikasi, seperti permintaan pencetakan file, sistem operasi
dapat menciptakan proses yang akan mengelola pencetakan itu. Sistem operasi
menciptakan proses untuk memenuhi satu fungsi pada program pemakai, tanpa
mengharuskan pemakai menunggu.
d. Proses
penciptaan proses lain (proses anak). Untuk mencapai modularitas atau
mengeksploitasi kongkurensi, program pemakai memerintahkan pembuatan sejumlah
proses. Tahap-tahap penciptaan proses
Penciptaan
proses dapat disebabkan beragam sebab. Penciptaan proses meliputi beberapa
tahap :
1. Beri
satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel proses
utama yang berisi satu isian perproses.
2. Alokasikan
ruang untuk proses.
3. PCB
harus diinisialisasi.
4. Kaitan-kaitan
antar tabel dan senarai yang cocok dibuat.
5. Bila
diperlukan struktur data lain maka segera dibuat struktur data itu.
Penghancuran
/ Terminasi Proses
Penghancuran
proses melibatkan pembebasan proses dari sistem, yaitu :
a. Sumber
daya-sumber daya yang dipakai dikembalikan.
b. Proses
dihancurkan dari senarai atau tabel sistem.
c. c.PCB
dihapus (ruang memori PCB dikembalikan ke pool memori bebas).
Penghancuran
lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua
pendekatan, yaitu :
a. Pada
beberapa sistem, proses-proses turunan dihancurkan saat proses induk
dihancurkan secara otomatis.
b. Beberapa
sistem lain menganggap proses anak independen terhadap proses induk, sehingga
proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.
Alasan
penghancuran proses :
1. Selesainya
proses secara manual. Proses mengeksekusi panggilan layanan sistem operasi
untuk menandakan bawah proses telah berjalan secara lengkap.
2. Batas
waktu telah terlewati. Proses telah berjalan melebihi batas waktu total yang
dispesifikasikan.
3. Memori
tidak tersedia. Proses memerlukan memori lebih banyak daripada yang dapat
disediakan sistem.
4. Pelanggaran
terhadap batas memori Proses mencoba mengakses lokasi memori yang tidak
diijinkan diakses.
5. Terjadi
kesalahan karena pelanggaran proteksi
6. Terjadi
kesalahan aritmatika
7. Waktu
telah kedaluwarsa
8. Terjadi
kegagalan Masukan/keluaran
9. Instruksi
yang tidak benar
10. Terjadi
usaha memakai nstruksi yang tidak Diijinkan
11. Kesalahan
Penggunaan data Bagian data adalah tipe yang salah atau tidak diinisialisasi.
12. Diintervensi
oleh sistem operasi
13. Berakhirnya
proses induk
14. Atas
permintaan dari proses induk
Proses yang Kooperatif
Proses
yang bersifat simultan (concurrent) dijalankan pada sistem operasi dapat
dibedakaan menjadi yaitu proses independent dan proses kooperatif. Suatu proses
dikatakan independen apabila proses tersebut tidak dapat terpengaruh atau
dipengaruhi oleh proses lain yang sedang dijalankan pada sistem.
Komunikasi Proses Dalam Sistem
Cara
lain untuk meningkatkan efek yang sama adalah untuk sistem operasi yaitu untuk
menyediakan alat-alat proses kooperatif untuk berkomunikasi dengan yang lain
lewat sebuah komunikasi dalam proses (IPC = Inter-Process Communication). IPC
menyediakan sebuah mekanisme untuk mengizinkan proses- proses untuk berkomunikasi
dan menyelaraskan aksi-aksi mereka tanpa berbagi ruang alamat yang sama. IPC
adalah khusus digunakan dalam sebuah lingkungan yang terdistribusi dimana
proses komunikasi tersebut mungkin saja tetap ada dalam komputer-komputer yang
berbeda yang tersambung dalam sebuah jaringan. IPC adalah penyedia layanan
terbaik dengan menggnakan sebuah sistem penyampaian pesan, dan sistem- sistem
pesan dapat diberikan dalam banyak cara.
Sistem Penyampaian Pesan
Fungsi
dari sebuah sistem pesan adalah untuk memperbolehkan komunikasi satu dengan
yang lain tanpa perlu menggunakan pembagian data. Sebuah fasilitas IPC
menyediakan paling sedikit dua operasi yaitu kirim (pesan) dan terima (pesan).
Pesan dikirim dengan sebuah proses yang dapat dilakukan pada ukuran pasti atau
variabel. Jika hanya pesan dengan ukuran pasti dapat dikirimkan, level sistem
implementasi adalah sistem yang sederhana. Pesan berukuran variabel menyediakan
sistem implementasi level yang lebih kompleks.
Berikut
ini ada beberapa metode untuk mengimplementasikan sebuah jaringan dan operasi
·
pengiriman/penerimaan secara logika:
·
Komunikasi langsung atau tidak langsung.
·
Komunikasi secara simetris/ asimetris.
·
Buffer otomatis atau eksplisit.
·
engiriman berdasarkan salinan atau referensi.
·
Pesan berukuran pasti dan variabel.
THREAD
Model
proses yang didiskusikan sejauh ini telah menunjukkan bahwa suatu proses adalah
sebuah program yang menjalankan eksekusi thread tunggal. Sebagai contoh, jika
sebuah proses menjalankan sebuah program Word Processor, ada sebuah thread
tunggal dari instruksi-instruksi yang sedang dilaksanakan.
Konsep Dasar
Secara
informal, proses adalah program yang sedang dieksekusi. Ada dua jenis proses,
proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan
proses ringan atau kadang disebut thread. Thread saling berbagi bagian program,
bagian data dan sumber daya sistem operasi dengan thread lain yang mengacu pada
proses yang sama. Thread terdiri atas ID thread, program counter, himpunan
register, dan stack. Dengan banyak kontrol thread proses dapat melakukan lebih
dari satu pekerjaan pada waktu yang sama.
User Threads
User
thread didukung oleh kernel dan diimplementasikan oleh thread library ditingkat
pengguna. Library mendukung untuk pembentukan thread, penjadualan, dan managemen
yang tidak didukung oleh kernel.
Kernel Threads
Kernel
thread didukung secara langsung oleh sistem operasi: pembentukan thread,
penjadualan, dan managemen dilakukan oleh kernel dalam ruang kernel. Karena
managemen thread telah dilakukan oleh sistem operasi, kernel thread biasanya
lebih lambat untuk membuat dan mengelola daripada pengguna thread.
Model Multithreading
Dalam
sub bab sebelumnya telah dibahas pengertian dari thread, keuntungannya,
tingkatan atau levelnya seperti pengguna dan kernel. Sistem-sistem yang ada
sekarang sudah banyak yang bisa mendukung untuk kedua pengguna dan kernel
thread, sehingga model-model multithreading-nya pun menjadi beragam.
Implementasi multithreading yang umum akan kita bahas ada tiga, yaitu model
many-to-one, one-to-one, dan many-to-many.
Model Many to One
Model
many-to-one ini memetakan beberapa tingkatan pengguna thread hanya ke satu buah
kernel thread. Managemen proses thread dilakukan oleh (di ruang) pengguna,
sehingga menjadi efisien, tetapi apabila sebuah thread melakukan sebuah
pemblokingan terhadap sistem pemanggilan, maka seluruh proses akan berhenti
(blocked). Kelemahan dari model ini adalah multihreads tidak dapat berjalan
atau bekerja secara paralel di dalam multiprosesor dikarenakan hanya satu thread
saja yang bisa mengakses kernel dalam suatu waktu.
Model One to One
Model
one-to-one memetakan setiap thread pengguna ke dalam satu kernel thread. Hal
ini membuat model one-to-one lebih sinkron daripada model many-to-one dengan
mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan
terhadap sistem pemanggilan; hal ini juga mengizinkan multiple thread untuk
berjalan secara parallel dalam multiprosesor. Kelemahan model ini adalah dalam
pembuatan thread pengguna dibutuhkan pembuatan korespondensi thread pengguna.
Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari
aplikasi maka kebanyakan dari implementasi model ini membatasi jumlah thread
yang didukung oleh sistem. Model one-to-one diimplementasikan oleh Windows NT
dan OS/2.
Model Many to Many
Beberapa
tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih
kecil atau sama dengan jumlah thread pengguna. Jumlah dari kernel thread dapat
dispesifikasikan untuk beberapa aplikasi dan beberapa mesin (suatu aplikasi
dapat dialokasikan lebih dari beberapakernel thread dalam multiprosesor
daripada dalam uniprosesor) dimana model many-to-one mengizinkan pengembang
untuk membuat thread pengguna sebanyak mungkin, konkurensi tidak dapat tercapai
karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu.
Model one-to-one mempunyai konkurensi yang lebih tinggi, tetapi pengembang
harus hati-hati untuk tidak membuat terlalu banyak thread tanpa aplikasi dan
dalam kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi.

Tidak ada komentar:
Posting Komentar