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:
- New: Proses sedang dikerjakan/ dibuat.
- Running: Instruksi sedang dikerjakan.
- Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/O
- Ready: Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
- Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
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:
- Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
- Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk dijalankanuntuk proses ini.
- 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 :
Penjadwalan 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.
Penjadwalan / 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.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.
sumber: http://pujexcarlox.wordpress.com/2011/03/19/manajemen-proses-pada-sistem-operasi/
sumber: http://pujexcarlox.wordpress.com/2011/03/19/manajemen-proses-pada-sistem-operasi/
0 Komentar