Anda di halaman 1dari 17

Process Management

Process management: ide utama

Ide dasar suatu komputer yaitu memfasilitasi melakukan komputasi yang


dilakukan oleh prosesor (cpu) berdasarkan program. Dalam hal ini ada program
yang dieksekusi oleh prosesor, dan ada yang tidak. Proses adalah sebuh
terminologi untuk membedakan antara program yang dieksekusi dan tidak.
Sebuah proses berasosiasi dengan prosesor.
Dan peran sistem operasi (OS) yaitu agar prosesor sebagai sumber daya komputer
yang perlu dioptimalkan, yaitu diupayakan untuk selalu sibuk melayani program.
Manakala suatu proses sedang tidak membutuhkan cpu, maka cpu mesti dialihkan
mengerjakan atau melayani program (process) lainnya.
Process
Proses adalah program yang dieksekusi, dan file yang executable (runnable) yang
berisi program serta data dimuat (disalin atau ditempatkan) di memori.

Program dapat ditempatkan di memori, serta dibentuk sebuah proses baru,


setelah dipastikan bahwa request eksekusi program, merupakan file program
yang executable, jika tidak maka akan ditolak.

Proses (pada Unix/Linux) dibentuk oleh process root dengan menjalankan


process init. Process dimiliki oleh root, dibentuk pid, dan kelengkapan lainnya,
selanjutnya didelegasikan otoritasnya ke user, dan berada dalam kendali milik
user.

Process (pada konteks Unix/Linux) dibentuk dengan memanggil system call


fork().

Jika eksekusi proses sudah selesai dikerjakan (completion), maka semua


resource, akan dilepas, process diakhir, dengan system call kill().
Process
Proses memiliki masa hidup terbatas (life time) atau temporer. Dengan demikian ada
saat pembentukan process (creation), dan masa akhir (termination).

Pembentukan proses (creation)


Memanggil (invoke) system call fork()
Setiap proses yang dibentuk akan diberikan identitas pid, proses ini semula dibawah
kendali (kepemilikan) root, maka ppid (parent pid) ditautkan ke pid root. Kemudian
akan dialihkan ke proses parent yang koordinatornya, dengan menyematkan ppid
tersebut pada proses yang baru dibentuk tersebut.
Contohnya: dari shell prompt (representasi bash shell), $ latihan01, maka ppid
proses “latihan01” adalah proses “bash”
1. System initialization (bootup)
2. Request execution
3. Invoke di dalam proses dari program yang dieksekusi, melalui fork(), atau exec()
Process
Penghentian proses (termination)
Penghentian proses dengan memanggil system call kill()
Penghentian proses memiliki implikasi melepas semua resource yang semula
digunakan (dipegang) oleh proses yang bersangkutan:
Cpu menjadi idle, alokasi memori menjadi available, pid di lepas, informasi yang
relevan mengenai proses yang bersangkutan di hapus di dalam catatan informasi
(process table)

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)

… completion P1, P2, dan P3

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.

Setiap proses seolah-olah memiliki program counter (PC) masing-masing, yang


sesungguhnya hanya merupakan kepemilikan secara logical, yaitu temporer pada
saat mendapatkan giliran layanan prosesor.
Process state and State Transition
State dasar pada suatu proses: run (execute), ready, block, submit, halt
Multitasking /timesharing system.
Transisi pada sebuah proses
Bagaimana state transition yang diperoleh, jika ada sejumlah n-proses yang
ditangani oleh OS?

limit waktu layanan


eksekusi Ready

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

I/O cpu I/O cpu I/O

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.

Process Management Memory Management


PC Size
Resisters Address
Flag register Page number
pid Number of pages
ppid text address
gid Data address
Process state Stack address
cpu time Buffer
… …
File Management
Devices
Filename
Device id
File size
Device name
Creation date
Device status
Owner
Time of used
Group

Access time
Address in memory

Anda mungkin juga menyukai