You are on page 1of 37

PROSES

Tedy Rismawan
Politeknik Negeri Pontianak
DEFINISI PROSES
Proses dapat didefinisikan sebagai suatu program
yang sedang dalam keadaan eksekusi. Suatu proses
juga memuat Program Counter, register, dan
variabel. Suatu proses membutuhkan resource,
seperti: CPU time, memori, file, dan I/O device untuk
menyelesaikan pekerjaannya. Resource-resource
tersebut dialokasikan oleh proses pada saat dibuat
atau pada saat dieksekusi.
STATUS PROSES
Meskipun tiap-tiap proses terdiri-dari suatu kesatuan
yang terpisah, namun adakalanya proses-proses
tersebut butuh untuk saling berinteraksi. Satu proses
bisa dibangkitkan dari output proses lainnya sebagai
input.

STATUS PROSES
Status proses terdiri dari :
a. New: proses sedang dibuat.
b. Running: proses sedang dieksekusi.
c. Waiting: proses sedang menunggu beberapa event
yang akan terjadi (seperti menunggu untuk
menyelesaikan I/O atau menerima sinyal).
d. Ready: proses menunggu jatah waktu dari CPU
untuk diproses.
e. Terminated: proses telah selesai dieksekusi.

PROCESS CONTROL BLOCK
Masing-masing proses direpresentasikan oleh Sistem
Operasi dengan menggunakan Process Control Block
(PCB)
Informasi yang terdapat
pada setiap proses
meliputi :
a. Status Proses. New,
ready, running, waiting
dan terminated.
b. Program Counter.
Menunjukkan alamat
berikutnya yang akan
dieksekusi oleh proses
tersebut.

PROCESS CONTROL BLOCK
c. CPU Registers. Register bervariasi tipe dan jumlahnya
tergantung arsitektur komputer yang bersangkutan.
Register-register tersebut terdiri-atas: accumulator,
index register, stack pointer, dan register serba guna
dan beberapa informasi tentang kode kondisi. Selama
Program Counter berjalan, status informasi harus
disimpan pada saat terjadi interrupt.
d. Informasi Penjadwalan CPU. Informasi tersebut berisi
prioritas dari suatu proses, pointer ke antrian
penjadwalan, dan beberapa parameter penjadwalan
yang lainnya.
e. Informasi Manajemen Memori. Informasi tersebut berisi
nilai base dan limit register, page table, atau segment
table tergantung pada sistem memory yang digunakan
oleh SO.
PROCESS CONTROL BLOCK
f. Informasi Accounting. Informasi tersebut berisi
jumlah CPU dan real time yang digunakan, time
limits, account numbers, jumlah job atau proses, dll.
g. Informasi Status I/O. Informasi tersebut berisi
deretan I/O device (seperti tape driver) yang
dialokasikan untuk proses tersebut, deretan file
yang dibuka, dll.

PENJADWALAN PROSES
Scheduling Queue
Proses-proses yang masuk pada suatu sistem akan
diletakkan ke dalam job queue. Sedangkan proses-
proses yang ada di memori utama dan menunggu
untuk dieksekusi diletakkan pada suatu list yang
disebut dengan ready queue. Queue ini disimpan
sebagai linked-list dan berisi pointer awal dan akhir
PCB. Tiap-tiap PCB memiliki suatu pointer field yang
menunjuk ke proses berikutnya dalam ready queue.
Deretan proses yang sedang menunggu peralatan
I/O tertentu disebut dengan device queue.
SCHEDULERS
Ada 2 bentuk scheduler, yaitu:
The Longterm-Scheduler (job scheduler).
menyeleksi proses-proses dari suatu pool dan
membawanya ke memori utama untuk dieksekusi.
The Short-term Scheduler (CPU scheduler).
Menyeleksi proses-proses yang siap untuk
dieksekusi, dan mengalokasikan CPU ke salah satu
dari proses-proses tersebut.

CONTEXT SWITCH
Context switch adalah proses penyimpanan status
proses dan mengambil status proses yang baru pada
saat terjadi switching.

PEMBUATAN PROSES
Ada beberapa aktifitas berkenaan dengan pembuatan
proses, antara lain:
Memberi identitas (nama) pada proses yang dibuat;
Menyisipkan proses pada list proses atau tabel
proses;
Menentukan prioritas awal proses;
Membuat PCB;
Mengalokasikan resource awal bagi proses
tersebut.

PEMBUATAN PROSES
Selama eksekusi, suatu proses mungkin akan membuat
suatu proses yang baru. Proses tersebut dinamakan
parent proses, sedangkan proses yang dibuat
dinamakan child proses.
Pada UNIX, parent akan membentuk child dengan
menggunakan FORK system call. Setelah pemanggilan
FORK, parent kembali berjalan secara paralel dengan
child. Demikian pula, child dapat memanggil FORK
untuk membentuk child lainnya. Lain halnya dengan
DOS, pada MS-DOS, system call akan memanggil
binary file tertentu yang ada pada memori dan
mengeksekusinya sebagai child. Parent akan running
kembali setelah child selesai eksekusi. Dengan
demikian parent dan child tidak dapat berjalan secara
paralel.

PEMBENTUKAN PROSES
Bentuk eksekusi:
Parent melanjutkan eksekusi beriringan dengan
children.
Parent menunggu hingga beberapa atau seluruh
children selesai.
Pada akhir proses, child mengembalikan hasil proses
pada parentnya, untuk mengantisipasi hal ini, suatu
proses hanya boleh memiliki satu parent tetapi suatu
parent boleh memiliki lebih dari satu child.

PENGHENTIAN PROSES
Suatu proses berhenti jika telah menyelesaikan
pernyataan terakhir, dan meminta pada sistem operasi
untuk menghapusnya dengan menggunakan exit system
call. Proses mengembalikan semua data (output) ke
parent proses. Kemudian proses dihapus dari list atau
tabel sistem, dilanjutkan dengan menghapus PCB.
Penghapusan proses ini akan menjadi sangat kompleks
jika ternyata proses yang akan dihentikan tersebut
membuat proses-proses yang lain. Pada beberapa sistem,
proses-proses anak akan dihentikan secara otomatis jika
proses induknya berhenti. Namun, ada beberapa sistem
yang yang menganggap bahwa proses anak ini terpisah
dengan induknya, sehingga proses anak tidak ikut
dihentikan secara otomatis pada saat proses induk
dihentikan.
PENGHENTIAN PROSES
Proses memang sudah selesai mengerjakan tugasnya (selesai
secara normal). Dalam hal ini proses akan mengeksekusi
panggilan layanan sistem operasi untuk menendakan bahwa
proses telah berjalan secara lengkap.
Proses berjalan melebihi batas waktu yang telah diberikan
padanya.
Memori tidak tersedia. Proses membutuhkan ruang memori yang
lebih besar daripada yang disediakan oleh sistem.
Proses mencoba untuk mengakses kawasan memori yang tidak
diiijinkan untuk diakses.
Terjadi kesalahan karena pelanggaran proteksi. Proses
menggunakan resource yang tidak diijinkan.
Terjadi kesalahan penghitungan, seperti melakukan pembagian
dengan nol atau menyimpan angka yang lebih besar daripada
yang dapat diakomodasi oleh perangkat keras.
Proses menunggu terlalu lama.
Proses induknya berakhir.
Atas permintaan dari proses induk.
THREADS
Suatu proses didefinisikan oleh resource yang
digunakan dan lokasi yang akan dieksekusi. Namun
adakalanya proses-proses akan menggunakan
resource secara bersama-sama. Suatu unit dasar
dari CPU utilization yang berisi program counter,
kumpulan register, dan ruang stack disebut dengan
thread atau lightweight process (LWP)
Thread adalah sebuah alur kontrol dari sebuah
proses
MACAM-MACAM THREAD
Single Threading
Sebuah proses tradisional atau heavyweight
process mempunyai thread tunggal yang berfungsi
sebagai pengendali.
Multi Threading
Sebuah proses dengan thread yang banyak dan
mengerjakan lebih dari satu tugas pada satu satuan
waktu.

CONTOH
Pada umumnya, perangkat lunak yang berjalan
pada komputer modern dirancang secara multi-
threading.
Sebuah aplikasi biasanya diimplementasikan
sebagai proses yang terpisah dengan beberapa
thread yang berfungsi sebagai pengendali.
Contohnya sebuah web browser mempunyai thread
untuk menampilkan gambar atau tulisan sedangkan
thread yang lain berfungsi sebagai penerima data
dari internet.

CONTOH (2)
Terkadang ada sebuah aplikasi yang perlu
menjalankan beberapa tugas yang serupa.
Sebagai contohnya sebuah web server dapat
mempunyai ratusan klien yang mengaksesnya
secara bersamaan.
Jika web server berjalan sebagai proses yang
memiliki thread tunggal (Single-threading) maka ia
hanya dapat melayani satu klien pada satu waktu.
Bila ada klien lain yang ingin mengajukan
permintaan, maka ia harus menunggu sampai klien
sebelumnya selesai dilayani.

CONTOH (3)
Solusinya adalah dengan membuat web server
menjadi multi-threading.
Dengan ini maka sebuah web server akan
membuat thread yang akan mendengar permintaan
klien, ketika permintaan lain diajukan maka web
server akan menciptakan thread lain yang akan
melayani permintaan tersebut.

KEUNTUNGAN THREAD
Responsif (Responsiveness)
Berbagi Sumber Daya (Resource Sharing)
Ekonomis (Economy)
Utilisasi Arsitektur Multiprosesor
(Utilization of Multi-ProcessorArchitectures)

THREAD DALAM SISTEM OPERASI
Sistem operasi telah mendukung proses
multithreading.
Setiap sistem operasi memiliki konsep tersendiri
dalam pengimplementasiannya.
Sistem operasi dapat mendukung thread pada
tingkatan kernel maupun tingkatan pengguna.

THREAD PENGGUNA
Thread pengguna didukung kernel serta
diimplementasikan dengan pustaka (library) thread
pada tingkatan pengguna.
Pustaka (library) menyediakan fasilitas untuk
pembuatan thread, penjadwalan thread, dan
manajemen thread tanpa dukungan dari kernel.
Semua pembuatan dan penjadwalan thread
dilakukan dalam ruang pengguna tanpa campur
tangan kernel.
Thread pengguna biasanya dapat cepat dibuat dan
di kendalikan.

THREAD KERNEL
Thread kernel didukung langsung oleh sistem
operasi.
Pembuatan, penjadwalan, dan manajemen thread
dilakukan oleh kernel pada kernel space.
Pengaturan thread dilakukan oleh sistem operasi,
sehingga pembuatan dan pengaturan kernel thread
lebih lambat dibandingkan user thread.

MODEL MULTI-THREADING
Many-to-One
One-to-One
Many-to-Many

MANY-TO-ONE
Memetakan beberapa
thread tingkatan
pengguna ke sebuah
thread tingkatan kernel.
Pengaturan thread
dilakukan dalam ruang
pengguna, sehingga
lebih efisien.
Hanya satu thread
pengguna yang dapat
mengakses thread
kernel pada satu saat.

ONE-TO-ONE
Memetakan setiap thread tingkatan pengguna ke
thread kernel.
Model ini menyediakan lebih banyak concurrency
dibandingkan model Many-to-One.

MANY-TO-MANY
Mengelompokkan
banyak thread
pengguna untuk
dipetakan ke thread
kernel yang jumlahnya
lebih sedikit atau sama
dengan tingkatan
pengguna.
Mengijinkan sistem
operasi untuk membuat
sejumlah thread kernel.

THREAD POOLS
Thread Pools adalah cara kerja dengan membuat
beberapa thread pada proses startup dan
menempatkan mereka ke pools.

CONTOH THREAD POOLS
Pada web server yang multithreading ada dua
masalah yang timbul:
Ukuran waktu yang diperlukan untuk menciptakan
thread untuk melayani permintaan yang diajukan
terlebih pada kenyataannya thread dibuang ketika
ia seketika sesudah ia menyelesaikan tugasnya.
Pembuatan thread yang tidak terbatas jumlahnya
dapat menurunkan performa dari sistem.

CONTOH THREAD POOLS (2)
Solusinya adalah dengan penggunaan Thread
Pools.
Cara kerjanya adalah dengan membuat beberapa
thread pada proses startup dan menempatkan
mereka ke pools.
Jadi ketika server menerima permintaan maka
maka ia akan membangunkan thread dari pool dan
jika thread tersedia maka permintaan tersebut akan
dilayani.

CONTOH THREAD POOLS (3)
Ketika thread sudah selesai mengerjakan tugasnya
maka ia kembali ke pool dan menunggu pekerjaan
lainnya.
Bila tidak ada thread yang tersedia pada saat
dibutuhkan maka server menunggu sampai ada
satu thread yang bebas.

KEUNTUNGAN THREAD POOLS
Biasanya lebih cepat untuk melayani permintaan
dengan thread yang ada dibanding dengan
menunggu thread baru dibuat.
Thread pool membatasi jumlah thread yang ada
pada suatu waktu. Hal ini penting pada sistem yang
tidak dapat mendukung banyak thread yang
berjalan secara concurrent.

You might also like