Transcript 5-Proses

Proses
Oleh :
Wahyu Andhyka Kusuma
081233148591
[email protected]
Definisi Proses
• proses merupakan program yang sedang
dieksekusi
• program itu sendiri bukanlah sebuah proses;
suatu program adalah satu entitas pasif
• proses dalam suatu entitas aktif, dengan sebuah
program counter yang menyimpan alamat
instruksi selanjutnya yang akan dieksekusi dan
seperangkat sumber daya (resource) yang
dibutuhkan agar sebuah proses dapat
dieksekusi.
Status Proses
Bila sebuah proses dieksekusi, maka statusnya
akan berubah-ubah. Status dari sebuah proses
mencerminkan aktivitas atau keadaan dari
proses itu sendiri
Status Proses
Menurut Silberschatz :
Status Proses
• New(Baru): status yang dimiliki pada saat proses
baru saja dibuat.
• Running(Berjalan): status yang dimiliki pada saat
instruksi-instruksi dari sebuah proses dieksekusi.
• Waiting(Menunggu): status yang dimiliki pada saat
proses menunggu suatu event (contohnya: proses
I/O).
• Ready(Siap): status yang dimiliki pada saat proses
siap untuk dieksekusi oleh prosesor.
• Terminated(Terminasi): status yang dimiliki pada
saat proses telah selesai dieksekusi.
Status Proses
Ada tiga kemungkinan bila sebuah proses
memiliki status running:
• Jika program telah selesai dieksekusi maka
status dari proses tersebut akan berubah
menjadi Terminated.
• Jika waktu yang disediakan oleh OS untuk
proses tersebut sudah habis maka akan terjadi
interrupt dan proses tersebut kini berstatus
Ready.
• Jika suatu event terjadi pada saat proses
dieksekusi (seperti ada request I/O) maka
proses tersebut akan menunggu event tersebut
selesai dan proses berstatus Waiting.
Status Proses
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+0
+1
+2
+3
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
Status Proses
1 +0
2 +1
3 +2
4 +3
5 +4
6 +5
------------- Time out
7 +0
8 +1
9 +2
10 +3
11 +4
12 +5
13 +0
14 +1
15 +2
16 +3
------------ I/O
Request
17 +0
18 +1
19 +2
20 +3
21 +4
22 +5
23  +0
24  +1
25  +2
26  +3
27  +4
28  +5
------------- Time out
29 +0
30 +1
31 +2
32 +3
33 +4
34 +5
35 +6
36 +7
37 +8
38 +9
39 +10
40 +11
------------- Time out
41 +0
42 +1
43 +2
44 +3
45 +4
46 +5
47  +6
48  +7
49  +8
50  +9
51  +10
52  +11
Status Proses
Time Epoch
Proses A
Proses B
Proses C
1-6
7-12
13-16
17-22
Running
Ready
Ready
Ready
Ready
Ready
Running
Waiting
Ready
Ready
Ready
Ready
23-28
29-34
35-40
Ready
Ready
Running
Waiting
Waiting
Waiting
Running
Ready
Ready
41-46
47-52
Ready
Ready
Waiting
Waiting
Ready
Running
Swapping
• Aktivitas I/O menjadi lebih lambat daripada
komputasi
• Sistem operasi perlu membebaskan memori
utama untuk dapat membawa proses yang siap
untuk dieksekusi ke dalamnya
• Swapping  pemindaan sebagian atau seluruh
proses dari memori utama ke dalam disk.
Normal
New
admit
Ready
dispatch
timeout
Even
terjadi
activate
release
Running
Even menunggu
Suspend
Suspend
Blocked
Exit
New
Swapping
admit
Ready,
Suspend
Suspend
admit
Activate
Suspend
Ready
dispatch
timeout
Even
menunggu
Blocked,
Suspend
Even
terjadi
Suspend
release
Running
Even menunggu
Activate
Blocked
Exit
Process Control Block
• Tiap proses digambarkan
dalam sistem operasi oleh
sebuah process control
block (PCB) - juga disebut
sebuah control block.
• PCB berisikan banyak
bagian dari informasi yang
berhubungan dengan
sebuah proses yang spesifik
Process Control Block
• PCB berisikan informasi dari proses sebagai
berikut:
▫ Proses State : new, ready, waiting, terminated
▫ Program Counter : menunjukkan alamat
berikutnya yang akan dieksekusi oleh program
tersebut
▫ CPU Register : Accumulator, Index Register, Stack
Pointer, General Purpose Register, Condition
Code Information, Bila terjadi Interupt informasi
disimpan dan proses dilanjutkan
Process Control Block
▫ Informasi Penjadwalan CPU : Berisi prioritas dari
proses
▫ Informasi Manajamen Memroy : berisi nilai limit
dari register
▫ Informasi Accounting : Berisi jumlah CPU dan
Real Time yang digunakan
▫ Informasi I.O : berisi deretan I.O device yang
digunakan untuk proses.
Process Control Block
• Status proses: status mungkin, new, ready,
running, waiting, halted, dan juga banyak lagi.
• Program counter: suatu stack yang berisi alamat
dari instruksi selanjutnya untuk dieksekusi untuk
proses ini.
• CPU register: Register bervariasi dalam jumlah dan
jenis, tergantung pada rancangan komputer.
Register tersebut termasuk accumulator, register
indeks, stack pointer, general-purposes register,
ditambah code information pada kondisi apa pun.
Beserta dengan program counter, keadaan/status
informasi harus disimpan ketika gangguan terjadi,
untuk memungkinkan proses tersebut
berjalan/bekerja dengan benar setelahnya
Process Control Block Switching
Process
Process Control Block
• Informasi managemen memori: Informasi ini dapat termasuk
suatu informasi sebagai nilai dari dasar dan batas register,
tabel page/halaman, atau tabel segmen tergantung pada
sistem memori yang digunakan oleh sistem operasi.
• Informasi pencatatan: Informasi ini termasuk jumlah dari
CPU dan waktu riil yang digunakan, batas waktu, jumlah
akun jumlah job atau proses, dan banyak lagi.
• Informasi status I/O: Informasi termasuk daftar dari
perangkat I/O yang di gunakan pada proses ini, suatu daftar
berkas-berkas yang sedang diakses dan banyak lagi.
• PCB hanya berfungsi sebagai tempat penyimpanan informasi
yang dapat bervariasi dari proses yang satu dengan yang lain.
Penjadwalan Proses
• Pada lingkungan multiprograming beberapa proses
harus dijadwalkan untuk memaksimalkan kinerja
CPU
• Pada lingkungan time-shared, CPU sering di-switch
diantara diantara proses dimana user harus
berinteraksi untuk setiap program saat dirunning
• Pada sistem uniproses, tidak pernah terjadi lebih
dari satu proses yang dirunning, bila terdapat
banyak proses, harus menunggu sampai CPU bebas
dan dapat dijadwalkan ulang
Scheduling Queue
• Secara umum antrian penjadwalan dapat
diklasifikasikan menjadi 3:
▫ Job Queue : antrian berisi semua proses yang
akan masuk sistem
▫ Ready Queue : tempat proses dimemori utama
yang menunggu dieksekusi
▫ Device queue : deretan proses yang menunggu
peralatan I.O
• Setiap antrian disimpan sebagai linkedlist.
Header berisi pointer PCB pertama dan terakhir
dari List
Ready Queue dan Device Queue
Diagram Antrian Penjadwalan Proses
Scheduler
• Scheduler dilibatkan untuk memilih proses dari
scheduling queue yang berbeda
• Secara umum terdapat 3 :
▫ Long Term Scheduler (Job Scheduler)
▫ Short Term Scheduler (CPU Scheduler)
▫ Medium Term Scheduler
Long Term Scheduler
• Proses pada sistem batch di-spool ke massstorage (disk)
• Long Term Scheduler digunakan untuk memilih
proses dari pool dan menyimpan ke memory
• Long term Scheduler tidak sering
dmengeksekusi, digunakan hanya jika proses
meninggalkan sistem
Short Term Scheduler
• Short term scheduler digunakan untuk memilih
diantara proses yang siap dieksekusi dan salah
satunya dialokasikan ke CPU
• Short term scheduler sering digunakan untuk
memilih proses baru untuk CPU, broses dieksekusi
hanya beberapa milidetik sebelum menunggu I.O
• Contoh : Jika Short term membutuhkan 10ms untuk
memutuskan mengeksekusi 100ms maka 10/100 :
10% CPU digunakan untuk penjadwalan
Medium term scheduler
• Beberapa OS seperti time-sharing
membutuhkan penjadwalan level tambahan
yang disebut medium term scheduler
•
•
•
•
•
•
•
Pembuatan Proses pada Linux, Unix, Windows
Penghentian Proses pada Linux, Unix, Windows
Alasan Penghentian Proses
Cooperating Proses
Direct Communication
Indirect Communication
Buffering