Os ProcessManagement Sesi 03
Os ProcessManagement Sesi 03
1. Proses berhenti secara normal, karena program yang dieksekusi telah lengkap
dieksekusi (completion)
2. Karena error, atau kegagalan program, atau sistem (os, atau software lain)
3. Dihentikan oleh otoritas yang lebih tinggi: root, atau group
4. Secara sukarela menhentikan proses
Model Proses
Concurrency, multitasking/ time-sharing system
Concurrency; interleaving, switching among processes
Multitasking/ timesharing system; multiprogram and limit (duration) cpu service
Tujuan multitasking agar cpu senantiasa sibuk (dioptimalkan)
P3
P2
P1
time
Dalam model ini, komputer hanya memiliki sebuah prosesor tunggal, artinya
hardware cpu, hanya memiliki satu register program counter (PC).
Dalam multitasking/timesharing system, komputer diupayakan, dapat secara
bergantian (interleaving) dilayani oleh prosesor dalam rentang waktu yang
singkat. Dengan demikian akan terjadi ilusi pengerjaan eksekusi program
dilakukan secara paralel atau bersamaan (concurrent), dinamakan
pseudoparallelism.
Program counter (PC) merupakan sebuah register yang berperan sebagai thread,
sebagai petunjuk yang memberitahukan progress eksekusi instruksi oleh CPU ,
dan sekaligus memberitahukan alamat instruksi berikutnya dimemori yang harus
dieksekusi oleh CPU.
submit
completion
Run
halt Memory Disk
(latihan01)
layanan
butuh layanan cpu
operasi I/O Block
CPU
Read/write I/O
Pola dasar komposisi instruksi dalam program
I/O burst
I/O cpu I/O cpu I/O cpu I/O
CPU burst
waktu
1. Submit program (executable file) yang akan dieksekusi melalui shell prompt
(bash shell atau cmd), atau click / double click (pada lingkugan GUI)
2. Jika program tersebut ada di storage dan executable file, maka akan dibentuk
process dengan status Ready, dan program di disk dimuatkan di memori.
Semua informasi relevan dicatat di tabel. Process tersebut masuk antrian
menunggu layanan CPU.
3. Manakala tiba giliran untuk dapat layanan CPU, proses beralih status menjadi
Run, dan semua informasi relevan akan diakses oleh OS, untuk memperbarui
semua status resources yang digunakan oleh proses tersebut. Semua status
selalu dipantau dan diupdate oleh OS, termasuk di antaranya register program
counter (PC), sebagai penanda sejauh mana eksekusi instruksi telah dilakukan,
dan petunjuk lokasi instruksi berikutnya yang berada memori yang harus
dikerjakan .
4. Selama eksekusi instruksi (layanan proses), maka akan terjadi perubahan-
perubahan nilai status (state), pada semua yang terkait: register, memori, dan
lainnya.
5. Bilamana, semua instruksi lengkap telah dikerjakan, dan eksekusi program
berakhir lengkap sukses (completion), maka program berhenti halt.
Selama proses berada di status Ready, Run, dan Block, program dan data berada
di memori, dan akan berinteraksi dengan memori.
Saat proses mendapat layanan CPU (Run), maka CPU akan mengeksekusi instruksi
demi instruksi, yang diperoleh dari memori, berdasarkan petunjuk pada register
PC. Instruksi yang dikirim dari memori (fetch), disimpan di register untuk instruksi,
di decode, dilanjutkan dengan eksekusi (execute).
Dalam multitasking system. Manakala dari hasil pemantauan oleh salah satu
modul OS, yang mana batas (jatah) waktu layanan telah terlampaui, meskipun
proses belum lengkap tuntas dikerjakan (incomplete), maka proses dihentikan.
Proses tersebut pada dasarnya masih membutuhkan layanan CPU, maka proses
tersebut beralih status dari Run ke Ready. Masuk antrian kembali untuk
dijadwalkan kembali, yang merepresentasikan proses masih membutuhkan
layanan CPU.
Bilamana saat giliran tiba kembali mendapat layanan CPU, maka proses yang
bersangkutan akan diubah statusnya oleh OS, dari Ready menjadi Run.
Manakala suatu proses telah melampau batas waktu layanan, maka layanan
dihentikan oleh modul OS yang bertugas untuk menjaga (watchdog, atau timer
scheduling).
Penghentian ini dilakukan agar CPU berallih melayani proses lainnya yang sedang
menunggu di antrian (Ready). Maka, proses yang Ready tersebut berubah status
menjadi Run. Semua informasi status yang relevan bagi sumber daya OS akan
digunakan pada konteks proses baru tersebut.
Pada saat penghentian proses dari layanan CPU, maka artinya CPU saat itu sedang
mengeksekusi instruksi, misalnya instruksi terakhir adalah ADD AX,BX saat
penghentian layanan tiba. Setiap kali eksekusi instruksi maka efek eksekusi instruksi
yaitu berubahnya nilai status, misalnya pada satu atau lebih register, atau data pada
suatu lokasi memori, dan yang lainnya. Register program counter (PC) juga sedang
memegang nilai alamat memori untuk instruksi berikutnya bagi proses yang
besangkutan. Sangat boleh jadi, status-status terbaru (terkini) tersebut akan
diperlukan bagi instruksi selanjutnya.
Maka, sebelum dialihkan ke proses baru, semua status terakhir yang merupakan
nilai terkini perlu disimpan terlebih dahulu untuk kebutuhan instruksi berikutnya.
Pada pergantian layanan proses dengan penghentian proses, dan dimulainya
layanan CPU terhadap proses baru, ada sejumlajh aktifitas antara yang perlu
dilaukan oleh OS yang dilakukan oleh Process Manager, yaitu mengamankan nilai-
nilai status dari proses yang dihentikan, sebelum proses baru menggunakan
resources dan mendapatkan layanan CPU.
Semua status informasi yang harus diamankan untuk antisipasi kebutuhan eksekusi
instruksi berikutnya pada layanan mendatang, maka disimpan pada tabel yang
dinamakan Process Table, yang mana salah satu entri tabel tersebut adalah proses
yang dihentikan tersebut.
Demikian halnya pada proses baru yang akan dilayani oleh CPU, maka semua status
dari proses baru tersebut harus memperbaharui status resources yang relevan, agar
sesuai dengan konteks dari proses baru. Sumber status ini berada (tersimpan) pada
Process Table, yang merupakan salah satu entri yang dikelola oleh Process Table
Tahapan pengalihan pengamanan status data dari proses yang dihentikan, dan
pemuatan semua status ke semua resources bagi proses baru, dinamakan context
switching.
Transisi status proses dari Run ke Block, dan Ready
Proses yang sedang mendapat layanan prosesor tiba pada eksekusi instruksi (IN AL,
DX, atau OUT DX,AL) untuk melakukan interaksi dengan device (Input, Output,
ataupun storage I/O), seperti interaksi dengan disk (read/ write) melalui fasilitas
DMA (Direct Memory Acccess). Proses ini untuk sementara waktu tidak memiliki
minat (interest) terhadap CPU menjadikan CPU idle.
Proses beralih interaksi dari prosesor ke device. Interaksi proses dengan device
berlangsung hingga selesai, maka status proses yang semula Run, sedang mendapat
layanan prosesor, dialihkan statusnya. Proses saat berinteraksi dengan device
ditetapkan statusnya menjadi Block, hingga selesai. Pengalihan status dikerjakan
oleh OS. Manakala interaksi dengan device selesai, dan membutuhkan layanan
prosesor lagi, maka proses tersebut harus masuk antrian dengan status Ready.
CPU yang idle, dapat dialihkan untuk melayani proses lainnya, dan perintah serta
pengaturan pengalihan tugas tersebut ditangani oleh OS yang dikerjakan oleh
modul-modul bagian daro Process Manager.
Process Table; struktur data
Dalam realitas OS yang ada, maka status proses tidak hanya tiga (konsep dasar)
tersebut, tetapi ada perluasan sesuai dengan desain dari masin-masing OS
(Windows, Linux, Mac OS)
Andaikan ada tiga proses yang harus ditangani oleh OS: P1, P2, dan P3, berarti ada
tiga program (P1, P2, dan P3) secara simultan berada di memori. Ketiga program
termasuk datanya harus berada pada (menempati) lokasi memori berbeda, agar
eksekusi berjalan baik, dan selesai dengan luaran (output) sebagaimana
diharapkan.
Prosesor hanya menangani (melayani) satu proses pada satu saat, dan satu
instruksi satu saat, dengan demikian proses lainnya tidak sedang mendapatkan
layanan (Ready, atau Block), mungkin tidak ada, mungkin pula lebih dari satu.
Pada saat pergantian layanan proses oleh CPU, maka terjadi perubahan status
(state) proses pada sedikitnya dua proses, yaitu yang digantikan (dihentikan), dan
yang akan dilayani.
Khususnya pada saat terjadi pergantian layanan CPU proses, maka dilakukan
proses administratif, yaitu mencatat status terakhir semua data pada resource
yang relevan, untuk dapat digunakan pada layanan berikutnya. Semua data
tersebut disimpan dan dikelola dalam Process Table.
Berberapa item data yang dikelola oleh Process table pada setiap entri yang
merepresentasikan setiap proses yang dikelola oleh OS pada saat itu. Manakala
suatu proses sudah lengkap selesai dilayani, maka entri proses yang bersangkutan
dihapus dari Process table.