63 | B a b 3 . D e s k r i p s i P r o s e s d a n K o n t r o l
3.1 Keadaan Proses
A. Sebuah Model Proses Dua Keadaan
B. Pembuatan dan Penghentian Proses
C. Model Lima Keadaan
D. Penghentian Proses
3.2 Deskripsi Proses
A. Struktur Kontrol Sistem Operasi
B. Struktur Kontrol Proses
3.3 Kontrol Proses
A. Model Eksekusi
B. Pembuatan Proses
C. Perpindahan Proses
D. Eksekusi dari Sistem Operasi
64 | M a t e r i 3 . D e s k r i p s i P r o s e s d a n K o n t r o l
program.Seperti telah dijelaskan pada bab sebelumnya,dengan alasan efisien dan
kemudahan pemrograman,prosesor dapat menggilir eksekusi sejumlah program.
Berdasarkan sudut pandang
prosesor, prosesor
mengeksekusi instruksi dari
repertoire-nya dengan urutan
yang ditentukan oleh perubahan
nilai pada register program
counter.Pada suatu saat tertentu,
program counter (PC) dapat
mengacu ke kode yang berada di
dalam program lainnya yang
merupakan bagian aplikasi
berbeda.Dari sudut pandang
sebuah program,eksekusinya
melibatkan rangkaian instruksi yang terdapat didalam program itu. Eksekusi
sebuah program dikenal sebagai proses atau task.
Kita dapat merincikan perilaku sebuah proses dengan membuat daftar
rangkaian instruksi yang mengeksekusi proses tersebut.Pembuatan daftar seperti
itu dikenal sebagai trace sebuah proses.
Gambar 3.1 menunjukan suatu tata letak memori tiga proses. Untuk
menyederhanakan pembahasan, kita asumsikan tidak ada satu proses pun yang
menggunakan memori viryual; jadi ketiga proses tersebut direpresensikan oleh
program yang keseluruhannya dimuatkan ke dalam memori utama. Selain
itu,terdapat program dispatcher kecil yang memindahkan prosesor dari satu
proses ke prosesor lainnya. Gambar 3.2 menunjukkan trace ketiga proses tersebut
pada saat bagian awal eksekusinya.Ditunjukkan juga 12 instruksi pertama yang
dieksekusi di dalam proses A dan C. Proses B mengeksekusi empat instruksi,dan
kita mengasumsikan bahwa instruksi keempat memanggil operasi I/O yang
mengakibatkankan proses harus menunggu.
Gambar 3.1 Gambaran eksekusi Contoh (Gambar 3.3) pada siklus intruksi
M a t e r i 3 . D e s k r i p i P r o s e s d a n k o n t r o l |65
Sekarang kita perhatikan
trsece tersebut dari sudut
pandang prosesor. Gambar 3.3
menunjukkan trace yang
digilirkan yang dihasilkan dari 52
siklus instruksi pertama (untuk
memudahkan,siklus instruksinya
diberi nomor).
Diasumsikan bahwa sistem
operasi hanya mengizinkan
suatu proses melanjutkan
eksekusinya dalam waktu enam
siklus instruksi,setelah itu proses
akan diinsterupsi;interupsi ini
dimaksudkan untuk menghindarkan terjadinya monopoli waktu prosesor oleh
sebuah proses. Seperti ditunjukkan pada gambar,enam istruksi pertama proses A
dieksekusi, diikuti oleh sebuah time-out dan eksekusi beberapa kode di dalam
dispatcher,yang memindahkan control ke proses B. Setelah empat instruksi
dieksekusi, proses B meminta aksi I/O yang menyebabkan harus menunggu. Oleh
karena itu, proses berhenti melakukan eksekusi proses B dan beralih, melalui
dispatcher, ke proses C.
66 | M a t e r i 3 . D e s k r i p s i P r o s e s d a n K o n t r o l
Setelah time-out, proses beralih kembali ke proses A. Pada saat proses ini time-
out, proses B masih menunngu operasi I/O selesai, karena itu dispatcher beralih
ke proses C lagi.
M a t e r i 3 . D e s k r i p i P r o s e s d a n k o n t r o l |67
Dari model yang sederhana ini, kita telah mendalami beberapa elemen
rancangan sistem operasi. Proses harus dipresentasikan dengan cara tertentu
sehingga sistem operasi dapat mengawasinya. Dengan kata lain, harus
terdapat informasi yang berkaitan dengan setiap proses, termasuk keadaan
saat itu dan lokasi didalam memori. Proses yang sedang tidak berjalan harus
disimpan didalam antrean menunggu gilirannya untuk dieksekusi. Gambar
3.4b menunjukkan sebuah struktur. Terdapat sebuah antrean tunggal dimana
entri-nya merupakan pointer ke proses tertentu. Atau antrean dapat terdiri dari
linked list blok data, dengan setiap blok mempresentasikan sebuah proses
kita akan membahas masalah tersebut setelah ini.
1. Pembuatan Proses
Pada saat sebuah proses akan ditambahkan keproses yang sedang dikelola,
sistem operasi membuat struktur data yang digunakan untuk mengelola
proses dan mengalokasikan ruang alamat ke proses itu. Tindakan ini
merupakan pembuatan proses baru.
Batch job baru Sstem operasi dengan suatu aliran batch job
control biasanya pada pita atau disk. Pada
saat disiapkan untuk mengambil job yang baru
, sistem operasi akan membaca rangkaian job
control command berikutnya.
68 | M a t e r i 3 . D e s k r i p s i P r o s e s d a n K o n t r o l
Logon interaktif Seorang pengguna disebuah terminal masuk
ke sistem
Dibuat oleh OS untuk Sistem operasi dapat membuat suatu proses
menyediakan layanan untuk melakuan fungsi atas nama program
pengguna tanpa mengharuskan pengguna
menunggu (misalnya pencetakan)
Dibiakkan (spawned) Untuk memenuhi tujuan modularitas atau
untukoleh proses yang tlah ada
memanfaatkan paralisme sebuah program
pengguna dapat pembiakan sejumlah proses
2. Penghentian proses
M a t e r i 3 . D e s k r i p i P r o s e s d a n k o n t r o l |69
menghasilkan suatu interrupt untuk meminta perhatian sistem operasi bahwa
suatu proses telah selesai. Pada aplikasi interaktif, aksi pengguna akan
mengindikasikan apabila proses telah selesai. Misalnya, pada sistem
interrupt, proses untuk pengguna tertentu tertentu akan dihentikan pada saat
pengguna log off atau mematikan terminalnya.Pada sistem komputer pribadi
atau workstation,seorang pengguna dapat keluar dari aplikasi.Semua aksi itu
pada akhirnya akan menghasilkan permintaan layanan ke sistem operasi agar
menghentikan proses.
Alasan Status
Selesai secara normal proses mengeksekusi suatu panggilan layanan
OS untuk mengindikasikan bahwa proses
tersebut telah selesai beroperasi
Batas waktu telah dilampaui proses telah berjalan lebih lama dari jumlah
batas waktu yang telah ditentukan. Terdapat
beberapa kemungkinan jenis waktu yang diukur.
Jenis jenis tersebut meliputi jumlah waktu yang
berjalan,jumlah waktu yang dibutuhkan untuk
melakukan eksekusi dan pada proses yang
interaktif, jumlah waktu sejak pengguna terakhir
diberi input
Memori tidak tersedia proses memerlukan memori lebih banyak dari
yang dapat disediakan oleh sistem
Pelanggan Batas Proses meencoba mengakses lokasi memori
yang tidak diizinkan untuk diakses
Error Proteksi Proses mencoba menggunakan sumber daya
atau file yang tidak diizinkan untuk digunakan
atau mencoba menggunakannya dengan cara
yang salah seperti melakukan penulisan ke
file yang hanya dapat dibaca (read only file)
Error Aritmetik Proses mencoba untuk melakukan kompulasi
yang tidak diizinkan seperti pembagian
dengan nol atau mencoba menyimpan
bilangan yang besarnya di luar kemampuan
perangkat keras. Kelebihan waktu proses
telah menunggu event tertentu lebih lama dari
waktu maksimum.
Kegagalan I/O error yang terjadi pada saat input atau output
seperti ketidakmampuan untuk menemukan
file, kegagalan membaca atau menulis
setelah beberapa kali mencoba (pada saat
misalnya ditemukan daerah yang telah rusak
pada pita magnetik) atau operasi yang invalid
Instruksi yang valid Proses mencoba mengeksekusi intruksi yang
tidak ada (sering kali akan mengakibatkan
70 | M a t e r i 3 . D e s k r i p s i P r o s e s d a n K o n t r o l
pencabangan ke suatu daerah data dan
berusaha mengeksekusi data)
Intruksi ber-privilege Proses berusaha menggunakan suatu intruksi
yang dicabangkan bagi sistem operasi
Pemakaian data yang salah Potongan datanya memiliki jenis yang salah
atau tidak diinisialisasi terlebih terlebih dahulu
Interverensi operator atau Dengan sesuatu alasan,operator atau sistem
OS operasi telah menghentikan proses (misalnya
apabila terjadi deadlock)
Penghentian induk Apabila induk berhenti,operator atau sistem
operasi telah menghentikan seluruh turunan
proses induk itu
Permintaan induk Proses induk umumnya memiliki otoritas
untuk menghentikan semua turunannya
Terakhir dalam beberapa sistem operasi suatu proses dapat dihentikan oleh
proses yang dibuatnya atau apabila proses induknya itu sendiri yang
dihentikan.
Apabila semua proses selalu berada dalam keadaan siap untuk melakukan
eksekusi,bentuk antrean yang ditunjukkan pada gambar 3.4b akan berlaku.
Antreannya adalah list yang first-in, first-out dan proses beroperasi dalam cara
round-robin terhadap proses yang ada. Bahkan dengan contoh yang
sederhana pun yang akan kita jelaskan,implementasi ini tidak memadai,
beberapa proses yang berada dalam keadaan not-running siap untuk
melakukan eksekusi,sedangkan proses lainnya diblokir, menunggu operasi i/o
selesai. Jadi, dengan memakai antrean tunggal, dispatcher tidak dapat hanya
memilih proses yang berada diujung yang tertua pada antrean didalam
antrean paling lama.
Cara yang lebih alami dalam menangani situasi ini dengan membagi keadaan
not running menjadi dua keadaan : ready(siap) dan blocked(dblokir). Hal ini
ditunjukkan pada Gambar 3.5.untuk memperoleh ukuran yang lebih baik,kita
telah menambahkan dua keadaan lagi yang terbukti akan berguna.Lima
keadaan didalam diagram yang baru ini sebagai berikut:
M a t e r i 3 . D e s k r i p i P r o s e s d a n k o n t r o l |71
Running (berjalan): proses yang sedang dieksekusi. Pada bab ini kita
mengamsumsikan sebuah komputer dengan prosesor tunggal karena itu
pada suatu saat paling banyak hanya sebuah proses berada dalam
keadaan ini.
Ready (siap) : suatu proses yang disiapkan untuk melakukan ekseskusi
bila ada kesempatan
Blocked (diblokir): suatu proses yang tidak dapat mengeksekusi sampai
beberapa event terjadi seperti selesainya operasi i/o
New (baru): suatu proses yang baru saja dibuat namun belum pernah
diizinkan masuk ke pool proses-proses yang dapat dieksekusi oleh sistem
operasi
Exit (keluar): suatu proses yang telah dibebaskan dari pool proses yang
dapat dieksekusi oleh sistem operasi baik karena dihentikan atau karerna
dibatalkan dengan alasan tertentu.
72 | M a t e r i 3 . D e s k r i p s i P r o s e s d a n K o n t r o l
Gambar 3.6 Keadaan Proses untuk Trace Gambar 3.3
M a t e r i 3 . D e s k r i p i P r o s e s d a n k o n t r o l |73
Pengaturan yang disebutkan terakhir itu berarti, pada saat terjadi suatu event,
sistem operasi harus melarik seluruh antrean yang diblokir (blocked), untuk
menvari proses yang sedang menunggu event itu (Gambar 3.6b).
Tiga keadaan penting yang baru saja dijelaskan (Ready, Runing, Blocked)
memberikan cara sistemati tentang permodelan perilaku proses dan
menuntun implementasi sistem operasi. Banyak sistem operasi yang dibuat
dengan menggunakan hanya ketiga keaadan tersebut
Sekarang dengan mengingat alasan bagi seluruh mesin yang rumit ini adalah
aktivitas I/O menjadi jauh lebih lambat dibandingkan dengan kumputasi
sehingga sebagian besar waktu prosesor di dalam slstem
uniprogramingnyaidle. Namun pengaturan pada gambar 3.6b tidak
menyelesaikan seluruh persoalan.
74 | M a t e r i 3 . D e s k r i p s i P r o s e s d a n K o n t r o l
Gambar 3.7 Model Antrian dari Gambar 3.5
Karena itu, perlu dipikirkan kembali ospek rancangan ini,disini terdapat dua
konsep yang independen:apakah suatu proses sedang menunggu suatu
event atau tidak(di blokir atau tidak),dan apakah suatu proses telah di swap
out dari memori utama(ditunda atau tidak),Untuk mengakomodasi kombinasi
2x2 ini,kita memerlukan empat keadaan
M a t e r i 3 . D e s k r i p i P r o s e s d a n k o n t r o l |75
Gambar 3.8 Diagram Transisi Keadaan Proses dengan Keadaan Tertunda
Sejauh ini, kita telah menyamakan konsep suatu proses yang di tunda dengan
konsep proses yang tidak ada di dalam memori utama. Suatu proses yang
tidak berada didalam memori utama tidaklah dapat langsung dieksekusi, baik
prose situ sedang menunggu suatu event atau tidak.
Kita dapat melakukan gineralisai konsep proses yang di tunda ini. Kita
tentukan proses seperti itu memilki karakteristik berikut.
76 | M a t e r i 3 . D e s k r i p s i P r o s e s d a n K o n t r o l
Tabel 3.3 Alasan-alasan Penundaan Proses
Alasan Penundaan Keterangan
Swapping Sistem operasi perlu membebaskan memori utama
untuk dapat membawa proses yang siap untuk
dieksekusi ke dalamnya
Alasan OS lainnya Sistem operasi dapat menunda background proses
atau proses utilitas atau suatu proses yang dianggap
sebagai penyebab masalah.
Permintaan pengguna Seorang pengguna dapat menunda eksekusi suatu
program interaktif untuk tujuan debugging atau yang
berhubungan dengan penggunaan sumber daya
Pewaktuaan Suatu proses dapat dieksekusi secara teratur (misalkan,
proses pengawasan accounting atau sistem) dan dapat
ditunda sementara menunggu interval waktu berikutnya
Permintaan proses Proses induk dapat menunda eksekusi proses
induk turunan untuk memeriksa atau mengubah proses
yang ditunda, atau untuk mengkoordinasikan
aktivitas berbagai proses turunan.
REFERENSI UTAMA :
M a t e r i 3 . D e s k r i p i P r o s e s d a n k o n t r o l |77