1. 1
IV. Proses-proses
• Terdapat beberapa definisi proses, diantaranya proses
sebagai program yang sedang dalam keadaan eksekusi
• Proses membutuhkan sumber daya seperti CPU time,
memori, file dan I/O.
• Proses yang khusus berhubungan dengan kegiatan
penjadwalan sering disebut thread. Dalam
perkembangannya proses dan thread dibedakan
• Relasi Thread terhadap proses (1:1, M:1, 1:M, M:M)
Jika ditinjau dari sudut pandang proses, sistem operasi
harus mampu:
• Melanjutkan tanpa henti (interleave) beberapa proses
• Mengalokasikan sumber daya untuk proses
• Mendukung komunikasi antar proses dan penciptaan
proses
2. 2
Keadaan Proses (Process State)
• Ditinjau dari sudut pandang processor proses-proses
dieksekusi dengan mengubah-ubah nilai pada register PC.
Misal pada main memory terdapat program yang terload
seperti pada gambar berikut. Tanpa virtual memory.
Program
Counter
Dispatcher
Process A
Process B
Process C
Main Memory
0 K
20 K
35 K
50 K
80 K
90 K
140 K
190 K
Dispatcher adalah
program kecil yang
memindahkan
processor dari suatu
proses ke proses lain
dengan mengubah-
ubah nilai Program
Counter
3. 3
Sekarang marilah kita trace proses-proses ini
• Proses B setelah
berakhir memanggil
operasi I/O
• Prosesor maksimal
mengeksekusi 6
siklus instruksi
• Setelah itu prosesor
di interrupt diikuti
dengan time out dan
eksekusi kode
dispatcher
a + 0 b + 0 g + 0
a + 1 b + 1 g + 1
a + 2 b + 2 g + 2
a + 3 b + 3 g + 3
a + 4 (b) Trace of g + 4
a + 5 Process B g + 5
a + 6 g + 6
a + 7 g + 7
a + 8 g + 8
a + 9 g + 9
a + 10 g + 10
a + 11 g + 10
b = alamat awal program untuk Process B
g = alamat awal program untuk Process C
(c) Trace of
Process C
(a) Trace of
Process A
a = alamat awal program untuk Process A
4. 4
1 a + 0 28 g + 5
2 a + 1 Time out
3 a + 2 29 d + 0
4 a + 3 30 d + 1
5 a + 4 31 d + 2
6 a + 5 32 d + 3
Time out 33 d + 4
7 d + 0 34 d + 5
8 d + 1 35 a + 6
9 d + 2 36 a + 7
10 d + 3 37 a + 8
11 d + 4 38 a + 9
12 d + 5 39 a + 10
13 b + 0 40 a + 11
14 b + 1 Time out
15 b + 2 41 d + 0
16 b + 3 42 d + 1
I/O Request 43 d + 2
17 d + 0 44 d + 3
18 d + 1 45 d + 4
19 d + 2 46 d + 5
20 d + 3 47 g + 6
21 d + 4 48 g + 7
22 d + 5 49 g + 8
23 g + 0 50 g + 9
24 g + 1 51 g + 10
25 g + 2 52 g + 11
26 g + 3 Time out
27 g + 4
------------------
------------------
------------------
------------------
------------------
d = alamat awal programdispatcher
5. 5
Model proses dua keadaan
• Dari contoh di atas
terdapat dua keadaan
proses yaitu di
eksekusi oleh
prosesor atau tidak.
Jadi dapat dikatakan
terdapat dua keadaan
(state) yaitu Running
dan Not-running
• Proses yang
diinterrupt akan
masuk ke antrian
(queueing)
Running
Not
Running
Dispatch
Pause
Enter Exit
(a) State Transition diagram
Processor
Exit
Enter Dispatch
Pause
Queue
(b) Queueing diagram
6. 6
• Alasan penciptaan proses (Process Creation)
New batch job Setelah sistem operasi siap melakukan
kerja baru,
sistem operasi akan membaca perintah
job selanjutnya
Interactive log on User log on pada sistem
Created by OS to provide
a service
Sebagai tanggapan atas suatu aplikasi
seperti mencetak file), sistem operasi
dapat menciptakan proses yang akan
mengelolanya
Spawned by existing process Untuk tujuan modularitas atau
paralelisme, user program dapat
membuat sejumlah proses
7. 7
• Alasan penghentian proses (Process Termination)
Normal completion Proses memang sudah selesai mengerjakan tugasnya secara
normal. Proses akan mengeksekusi service call sistem operasi
untuk menandakan bahwa proses telah berjalan secara lengkap
Time limit exceeded Proses berjalan melebihi batas waktu yang telah diberikan
padanya
Memory unavailable Proses membutuhkan ruang memori yang lebih besar daripada
yang disediakan sistem
Bounds unavailable Proses mencoba untuk mengakses kawasan memori yang tidak
diijinkan untuk diakses
Protection error Proses mencoba untuk menggunakan sumber daya atau file yang
tidak boleh digunakan atau mencoba untuk menggunakannya
dengan cara yang tidak benar, misal menulis pada file read only
Arithmetic error Terjadi kesalahan penghitungan, seperti melakukan pembagian
dengan nol atau menyimpan angka yang lebih besar daripada
yang dapat diakomodasikan oleh perangkat keras
Time overrun Prose menunggu terlalu lama
I/O failure Terjadi kegagalan I/O, seperti tidak mampu menemukan file atau
kegagalan membaca atau menulis setelah dilakukan perulangan
beberapa kali
8. 8
Invalid instruction Proses berusaha mengeksekusi instruksi yang tidak ada. Hal ini
sering diakibatkan oleh pencabangan ke daerah data dan
berusaha mengeksekusi daerah tersebut
Previleged instruction Proses berusaha untuk menggunakan instruksi yang disimpan
untuk sistem operasi
Data misuse Terjadi kesalahan penggunaan data, karena bagian data
mempunyai tipe data yang salah atau tidak diinisialisasi
Operator of OS intervention Terjadi campur tangan (intervensi) dari operator atau sistem
operasi dengan suatu alasan tertentu (misal terjadi deadlock)
Parent termination Proses induknya berakhir
Parent request Atas permintaan dari proses induk
9. 9
Model proses lima keadaan
• New : Proses baru saja dibuat
• Ready : Proses yang siap dieksekusi menunggu kesempatan
• Blocked : Proses tidak dapat dieksekusi karena menunggu
suatu kejadian terjadi misal menunggu I/O selesai
• Running : Proses sedang dieksekusi
• Exit : Proses sudah selesai
New Ready Running Exit
Blocked
Admit
Dispatch
Time-out
Event
Occurs Event
wait
Release
10. 10
Multiple Blocked Queues
Processor
Release
Admit Dispatch
Time out
Ready Queue
Event 1 Queue
Event 2 Queue
Event n Queue
Event 1 wait
Event 2 wait
Event n wait
Event 1
occur
Event 2
occur
Event n
occur
11. 11
Proses Swapping
• Jika main memory sudah penuh dan banyak proses yang
berada pada keadaan block atau ready. Maka proses
tersebut dapat disimpan ke dalam virtual memory yaitu
disk atau hard disk
• Keadaan ini dinamai suspend. Terdapat block suspend
dan ready suspend
New
Ready Running Exit
Blocked
Admit
Dispatch
Time-out
Event
wait
Release
Ready
suspend
Blocked
suspend
Admit
Event
Occurs
Activate
Activate
Suspend
12. 12
Struktur pengontrolan proses
• Untuk mengontrol proses dan
sumber daya, sistem operasi
menyusun suatu tabel
pengontrolan yang berisi
status/keadaan dari proses dan
sumber daya.
• Tabel untuk proses disebut
process image yang berisi :
- User data
- User program
- System stack
- Process Control Block:
berisi attribut dari proses
Process
Identification
Process State
Information
Process Control
Information
User Stack
Shared
Address Space
Process
Control
Block
Image Process
Private User
Address Space
(Program, data)
14. 14
Process Control Block (PCB) berisi :
- Process identification
- Processor state information
- Process control information
Identifier
Identifier numerik yang meliputi
- Identifier proses
- Indentifier proses yang menciptakan
- Identifier pemakai
User visible registers
Register-register yang dapat diacu menggunakan bahasa mesin
Control and Status Registers
Register-register yang dapat digunakan untuk mengendalikan operasi prosesor
- Program Counter
- Condition codes : sign, zero, carry equal, overflow
- Status information : interrupt enable/disable flags, execution mode
Stack Pointers
Tiap proses memiliki satu atau lebih Stack sistem LIFO. Stack digunakan untuk
parameter atau alamat prosedur pemanggil dan system call.
Stack pointer menunjuk alamat paling atas dari stack
Identifikasi Proses
Informasi Status Pemroses
15. 15
Scheduling and State Information
Informasi-informasi yang diperlukan untuk menjalankan fungsi penjadwalan:
- Process state : Mendefinisikan status/keadaan proses
- Priority : Menjelaskan prioritas proses
- Scheduling-related information : Berkaitan dengan informasi penjadwalan
seperti lama menunggu, lama proses terakhir dieksekusi
- Event : Identitas kejadian yang ditunggu proses
Data structuring
Satu proses dapat dikaitkan (link) dengan proses lain dalam struktur antrian,
ring, atau struktur lain. Contoh semua proses yang berada pada status
menunggu dapat dilink pada antrian. PCB harus memiliki pointer untuk
mendukung struktur ini.
Interprocess Communication
Beragam flags, sinyal dan pesan dapat dipakai sebagai alat komunikasi antar
proses-proses yang independen. Beberapa atau semua informasi ini disimpan di
PCB
Process Privileges
Proses dapat mempunyai kewenangan berkaitan dengan memori yang akan
diakses dan tipe instruksi yang akan dieksekusi
Memory Management
Bagian ini berisi pointer ke segment dan atau page table yang menyatakan
tempat memory virtual mengerjakan proses tersebut
Resource Ownership and Utilization
Sumber daya yang dikendalikan proses harus diberi tanda seperti : berkas yang
dibuka. Sejarah penggunaan prosesor atau sumber daya lain dapat juga
disertakan karena informasi ini berguna bagi scheduler
Informasi Kendali Proses
16. 16
Peranan Process Control Block
• PCB berperan penting di sistem operasi. Tiap PCB berisi
informasi mengenai proses yang diperlukan sistem operasi.
• PCB dibaca dan/atau dimodifikasi oleh hampir semua
modul sistem operasi, seperti modul-modul yang terlibat
pada penjadwalan, alokasi sumber daya, pemrosesan
interrupt, monitoring dan analisis kinerja.
• Kumpulan PCB mendefinisikan status / keadaan dari sistem
operasi.
• Sejumlah rutin di Sistem operasi perlu mengakses informasi
di PCB. Ijin mengakses tabel informasi tidak sulit, karena
tiap proses dilengkapi dengan ID unik yang digunakan
sebagai index table pointer untuk PCB.
• Tapi masalahnya bukan pengaksesan tapi proteksinya
17. 17
• Dua masalah utama proteksi terhadap PCB
- Bug (kesalahan pemrograman) pada rutin tunggal,
misalnya interrupt handler dapat merusak PCB
sehingga dapat mengakibatkan hancurnya kemampuan
sistem mengelola proses
- Perubahan rancangan struktur dan semantik dari PCB
dapat berdampak ke sejumlah modul sistem operasi
yang memakai PCB
• Cara mengatasinya dengan membuat semua routine yang
berhubungan dengan proses harus melewati routine
handler khusus untuk PCB
• Routine Handler PCB ini melindungi PCB dari
pembacaaan dan penulisan.
18. 18
Process Switching
• Pengalihan dari suatu proses ke proses lain dengan
membuat proses yang running menjadi state ready atau
block
• Kejadian yang menyebabkan Process Switching :
- Interrupt
* Clock interrupt : Proses yang running akan dibuat
menjadi ready bila telah melampaui waktu
tertentu
* I/O Interrupt : alat I/O meminta layanan
* Memory fault: Prosesor menemui alamat virtual
memory yang dibutuhkan tidak ada di main memory
- Trap : interrupt akibat kesalahan atau kondisi
pengecualian
Jika kesalahan fatal, proses akan dikeluarkan
- Supervisor call
19. 19
Context Switching
• Pada saat tidak terjadi interrupt (ingat kembali
siklus interrupt) processor akan mengerjakan siklus
fetch instruksi di dalam proses yang lagi running
dengan melakukan context switching :
- Processor menyimpan konteks program yang
sedang diekseskusi ke stack
- Processor menset register PC ke alamat awal dari
program interrupt handler
20. 20
Proses P0
menyimpan status PCB 0
mengambil status PCB 1
Proses P1
menyimpan status PCB 1
mengambil status PCB 0
Process Switching
Context
Switching
Eksekusi
Eksekusi
Eksekusi
Context
Switching