Dokumen ini membahas tentang proses sistem operasi. Proses adalah eksekusi program komputer yang dibuat oleh sistem operasi. Sistem operasi mengelola sumber daya dan mengatur jadwal proses-proses yang berjalan. Proses dapat berinteraksi satu sama lain secara independen atau bekerja sama untuk mempercepat komputasi.
2. PROSES PROSES SISTEM INFORMASI
Proses adalah keadaan ketika sebuah
program sedang di eksekusi. Saat komputer
berjalan, terdapat banyak proses yang berjalan
secara bersamaan. Sebuah proses dibuat
melalui system call create-process yang
membentuk proses turunan ( child process)
yang dilakukan oleh proses induk ( parent
process). Proses turunan tersebut juga mampu
membuat proses baru sehingga semua proses
ini pada akhirnya membentuk pohon proses.
3. Ketika sebuah proses dibuat maka proses
tersebut dapat memperoleh sumber-daya
seperti waktu CPU, memori, berkas, atau
perangkat I/O. Sumber daya ini dapat
diperoleh langsung dari sistem operasi, dari
proses induk yang membagi-bagikan sumber
daya kepada setiap proses turunannnya,
atau proses turunan dan proses induk
berbagi sumber-daya yang diberikan sistem
operasi.
4. Pengelolaan Proses
Proses perlu dikelola karena dalam sebuah
proses membutuhkan beberapa sumber
daya untuk menyelesaikan tugasnya.
Sumber daya tersebut dapat berupa CPU
time, memori, berkas-berkas, dan perangkat-
perangkat I/O.
5. Sistem operasi bertanggung jawab atas aktivitas-
aktivitas yang berkaitan dengan managemen proses
seperti:
1. Pembuatan dan penghapusan proses pengguna
dan sistem proses.
2. Menunda atau melanjutkan proses.
3. Menyediakan mekanisme untuk proses sinkronisasi.
4. Menyediakan mekanisme untuk proses komunikasi.
5. Menyediakan mekanisme untuk penanganan
deadlock.
6. Konsep Proses
Sistem operasi mengeksekusi beraneka-ragam program
1. Sistem batch – jobs (baca:
http://en.wikipedia.org/wiki/Batch_system)
2. Sistem time-shared – task atau program pengguna
Textbook menggunakan istilah job & process secara
bergantian
Proses – program dalam eksekusi; eksekusi proses harus
bergerak dalam bentuk sequential
Proses mengikut-sertakan:
1. Program counter (PC)
2. Stack (baca:
http://en.wikipedia.org/wiki/Stack_(data_structure))
3. Bagian data
7. Status Proses
Selama suatu proses berjalan, terjadi
perubahan status (state);
1. new: proses baru dibuat
2. running: Instruksi-instruksi dieksekusi
3. Waiting atau blocked: proses menunggu
beberapa kejadian
4. ready: proses menunggu diberikan processor
5. terminated: proses telah menyelesaikan
eksekusi
9. Antrian Penjadwalan Proses
Job queue – himpunan semua proses dalam sistem
Ready queue – himpunan semua proses yang berada
dalam memory utama, ready atau waiting untuk
dieksekusi
Device queues – himpunan proses yang menunggu
perangkat I/O
Proses-proses berpindah antar queue (antrian) berbeda
Scheduler (Pengatur Jadwal)
Long-term scheduler (job scheduler) – memilih proses
mana yang akan dibawa ke dalam antrian ready
Short-term scheduler (CPU scheduler) – memilih proses
mana yang akan dieksekusi berikutnya dan dialokasikan
CPU
10. Scheduler
(harus cepat)Short-term scheduler dijalankan sangat
sering (mili detik)
Long-ter (mungkin lambat)m scheduler dijalankan
sangat jarang (detik, menit)
Long-term scheduler mengontrol tingkat
multiprogramming
Proses dapat dideskripsikan sebagai :
1. I/O-bound process – menghabiskan lebih banyak
waktu melakukan I/O daripada komputasi, banyak CPU
burst pendek
2. CPU-bound process – menghabiskan lebih banyak
waktu melakukan komputasi; sedikit CPU burst sangat
panjang
11. Pembuatan Proses
Parent process (proses induk) membuat
children processes (proses anak), pada gilirannya
membuat proses lain sehingga membentuk suatu
pohon proses
Proses diidentifikasi & dikelola melalui suatu
process identifier (pid)
Berbagi-pakai resource (sumber daya) :
1. Parent & children berbagi-pakai semua resource
2. Children berbagi-pakai subset dari resource
parentnya
3. Parent & child tidak berbagipakai resource
12. Eksekusi
1. Parent & children berjalan secara konkuren
2. Parent menunggu sampai children berhenti
Adrress space (ruang alamat)
1. Anak menyalin induk
2. Anak mempunyai program yang dimuat
ke dalamnya
Contoh di UNIX
1. system call fork membuat proses baru
2. system call exec digunakan setelah fork untuk
menggantikan ruang memory proses dengan suatu
program baru
13. Penghentian Proses
Proses mengeksekusi pernyataan terakhir & meminta
SO untuk menghapusnya (exit)
1. Data output dari anak ke induk (via wait)
2. Resource induk didealokasikan oleh SO
Induk dapat menghentikan eksekusi proses
anak (abort)
1. Anak telah melebihi resource yang dialokasikan
2. Task yang diberikan ke anak tidak dibutuhkan lagi
3. Jika induk keluar (selesai)
Beberapa SO tidak membolehkan anak berjalan terus
jika induknya berhenti
1. Semua anak dihentikan - cascading termination
14. Kerjasama Proses
Proses Independent tidak dapat mempengaruhi atau
dipengaruhi oleh eksekusi proses lain
Proses Cooperating dapat dipengaruhi
atau dipengaruhi oleh eksekusi proses lain
Keuntungan dari kerjasama proses :
1. Pemakaian informasi bersama
2. Mempercepat komputasi
3. Modularitas
4. Kenyamanan
15. Perkembangan sistem komputer mendatang
adalah menuju ke sistem multi- processing,
multiprogramming, terdistribusi dan paralel yang
mengharuskan adanya proses-proses yang berjalan
bersama dalam waktu yang bersamaan. Hal
demikian merupakan masalah yang perlu perhatian
dari perancang sistem operasi. Kondisi dimana pada
saat yang bersamaan terdapat lebih dari satu proses
disebut dengan kongkurensi (proses-proses yang
kongkuren).
Proses-proses yang mengalami kongkuren dapat
berdiri sendiri (independen) atau dapat saling
berinteraksi, sehingga membutuhkan sinkronisasi
atau koordinasi proses yang baik