Anda di halaman 1dari 55

P e r t e m u a n 2

KONSEP PROSES
(Status Proses & Implementasinya)
Oleh:
L/O/G/O
Achmad Arrosyidi, www.themegallery.com
S.Kom., M.Med.Kom.
Pokok Bahasan

1 Definisi Proses

2 Komponen Proses

3 Status Proses

4 Process Control Block


Definisi Proses
Secara Umum proses didalam Sistem Operasi
dapat didefinisikan sebagai

PROGRAM YANG SEDANG DIJALANKAN


Definisi Proses

Menurut Tanembaum, Andrew S.

Proses adalah sebuah program yang


dieksekusi yang mencakup program counter,
register, dan variabel di dalamnya.
Definisi Proses
Menurut Silberschatz

Proses tidak hanya sekedar suatu kode


program (text section), melainkan meliputi
beberapa aktivitas yang bersangkutan seperti
program counter dan stack.

Sebuah proses juga melibatkan stack


yang berisi data sementara (parameter fungsi/
metode, return address, dan variabel lokal) dan
data section yang menyimpan variabel-variabel
global.
Alasan Proses Harus Diatur

• Agar resource selalu tersedia bagi banyak aplikasi


• Agar prosesor dapat digunakan oleh banyak aplikasi
secara bergantian
• Agar prosesor dan I/O device dapat digunakan secara
efisien
Hal-hal Berkaitan Proses

• Multiprogramming
• Multitasking
• Multiprocessing
• Distributed processing
MultiProgramming (1)
• Definisi : Manajemen banyak proses pada satu pemroses
• Banyak proses yang dijalankan bersamaan, masing-masing proses
mendapat bagian memori dan kendali sendiri.
• Program yang dijalankan bersifat
– Tidak bergantung (Independent)
• Proses terpisah satu dari lainnya & tidak berpengaruh
– Satu program pada satu saat (one program at any instant)
• Pada satu waktu hanya satu proses yang dilayani pemroses,
menggunakan interleave bukan overlap diantara program-
program
• Oleh karena perpindahan dari satu proses ke proses dilakukan
secara cepat bagi pemakai seolah-olah bekerja secara paralel. Hal
ini dikenal dengan paralel semu (pseudoparallelism)
• Contoh : win98, winNT, winxp, os/2 dan macintosh system 7
MultiProgramming (2)

• Lebih dari satu program berada dalam memori


utama (RAM), Penjadual (bagian dari SO)
memilih jobs untuk diletakkan dalam antrian
yang siap dari beberapa program.
• Antrian yang siap, diletakkan dalam memori dan
keberadaan program-program tsb yang ada
dalam antrian (RAM) disebut sebagai
Multiprogramming.
MultiProgramming (3)

Contoh:
• Kita buka Ms. Word, Ms. Excel, Ms. Access dan
aplikasi lainnya secara bersama-sama tapi
ketika kita mengetik menggunakan Ms.Word
maka aplikasi lainnya seperti Ms. Excel dan
Ms.Access tetap ada dalam memori utama
(RAM) namun aplikasi lain tsb tidak melakukan
aktivitas (task). Atau kita dapat mengatakan
bahwa tidak digunakan pada saat bersamaan.
MultiTasking (1)

• Mengerjakan beberapa tugas (task) dalam


paralel. Biasanya CPU memproses satu task
dalam waktu tertentu tapi menukar task dalam
CPU antar proses (context switching) dengan
sangat cepat sehingga seperti CPU meng-
eksekusi beberapa proses dalam waktu tertentu.
MultiTasking (2)

Contoh:
• Kita mendengarkan musik dan browsing internet
disaat yang sama.
• Program musik dijalankan secara paralel
dengan browser yang kita gunakan.
MultiProcessing (1)

• Definisi : Manajemen banyak proses di


komputer multiprocessor
• Dengan kata lain komputer dengan banyak
pemroses di satu sistem komputer dengan
masing-masing pemroses melakukan
pemrosesan secara independen
• Contoh SO yang mendukung: Windows NT,
UNIX, LINUX
MultiProcessing (3)
- Sebuah cara dalam komputer dimana bagian yg
berbeda dari sebuah tugas (task) didistribusikan
antara dua atau lebih yang sama kepada CPU
(MultiProcessor), yang mengijinkan komputer untuk
menyelesaikan tugas dengan lebih cepat dan untuk
menangani task yang besar dan lebih kompleks.
- Penggunaan dua atau lebih CPU pada saat
bersamaan.
- Terlebih karena beberapa komputer yang baru
mempunyai banyak core/inti processor, atau fitur yang
native multi processor yang disebut dengan multi
processor.
Distributed Processing

• Manajemen banyak proses yang


dieksekusi di banyak sistem komputer
yang tersebar (terdistribusi).

• Contoh : MACH, AMOEBA


Komponen Proses (1)

PC (Program Counter)
Stack

Komponen
Register
Proses

Data Section

Nilai dari Variabel


Komponen Proses (2)
PC (Program Counter)
Suatu stack yang berisi alamat dari instruksi selanjutnya
untuk dieksekusi untuk proses ini.

Stack
Berisi data sementara (parameter fungsi/metode, return
address, dan variabel lokal
Beserta dengan program counter, keadaan/status informasi
harus disimpan ketika perubahan akibat gangguan jika
terjadi, untuk memungkinkan proses tersebut
berjalan/bekerja dengan benar setelahnya
Komponen Proses (3)
Data Section
Suatu kode program terdiri atas instruksi dan variabel
diolah menurut algoritma tertentu yang menyimpan
variabel-variabel global.
.
Nilai dari Variabel
Perubahan yang terjadi pada nilai/isi dari variabel
disebabkan oleh program yang dijalankan (proses)

Register
Register bervariasi dalam jumlah dan jenis, tergantung
pada rancangan/arsitektur hardware komputer.
Terdiri atas: accumulator, register indeks, stack pointer,
general-purposes register, ditambah code information pada
kondisi apa pun.
PENGENDALIAN PROSES

Sistem Operasi mengendalikan proses


berdasarkan :
 Saling melanjutkan (interleave)
 Mengikuti kebijaksanaan tertentu
 Mendukung komunikasi antar proses
dan penciptaan proses
INTERLEAVE
o Dikatakan interleave (bersambung/
melanjutkan) maksudnya pemroses
(processor) mengeksekusi satu proses setiap
saat dan secara cepat beralih ke proses
lainnya secara bergiliran.
o SO harus interleave (saling melanjutkan)
eksekusi proses-proses agar
memaksimumkan penggunaan pemroses
sambil masih memberi waktu tanggap yang
memadai.
Mengikuti kebijakan tertentu
o SO harus mengalokasikan sumber daya ke
proses-proses mengikuti kebijaksanaan
yang ditentukan (misal suatu aplikasi
memiliki prioritas lebih tinggi) sambil
menghindari deadlock
Proses Vs Program
Proses adalah sebuah entitas yang aktif
Bersifat aktif, karena dapat mempengaruhi isi dari
komponen proses stack (yang berisikan data temporer).
Contoh: proses akan mempengaruhi isi dari komponen
proses.

Program adalah sebuah entitas yang pasif


Program tidak melakukan aktifitas, karena tidak dalam
kondisi dijalankan/dieksekusi.
Contoh: program berbentuk file yang tersimpan di dalam
flashdisk, program tersebut tidak melakukan aktivitas.
Process Control Block
Setiap proses digambarkan dalam
sistem operasi oleh sebuah process control
block(PCB).
PCB berisikan banyak bagian dari
informasi yang berhubungan dengan sebuah
proses yang spesifik.
PCB hanya berfungsi sebagai tempat
penyimpanan informasi yang dapat bervariasi
dari proses yang satu dengan yang lain.
Gambar Elemen PCB
Elemen-elemen PCB Running (1)
ELEMEN URAIAN
Identifier Identitas unik untuk membedakan suatu proses dengan
proses lainnya

State Status (kondisi) suatu proses (sedang dieksekusi,


sedang diblok, dll)

Priority Status (kondisi) suatu proses (sedang dieksekusi,


sedang diblok, dll)
Priority

Program Alamat instruksi berikutnya yang akan dieksekusi


counter Memory pointers
Elemen-elemen PCB Running (2)
ELEMEN URAIAN
Memory Pointer yang menunjuk pada alamat memori kode
pointers program dan data yang berhubungan dengan proses dan
blok memori yang di-shared dengan proses lain (jika
ada)

Context Data yang terdapat pada register prosesor ketika suatu


data proses sedang dieksekusi

I/O status Informasi tentang permintaan terhadap I/O device yang


information belum terpenuhi (misal akses ke harddisk), daftar file
yang sedang digunakan oleh proses, dll

Accounting Informasi tentang jumlah waktu prosesor yang telah


information digunakan, jumlah waktu proses, batas waktu proses,
nomor urutan, dsb.
Process Control Block

Perindahan cpu dari satu proses ke proses lain


OPERASI PADA PROSES

• Pembentukan Proses (Process Creation)

• Penghentikan Proses (Termination)


Pembentukan Proses
Ada beberapa aktivitas berkenaan dengan
pembuatan proses, antara lain :
a. Memberi identitas (nama) pada proses yang
dibuat;
b. Menyisipkan proses pada list proses atau tabel
proses;
c. Menentukan prioritas awal proses;
d. Membuat PCB;
e. Mengalokasikan resource awal bagi proses
tersebut.
Pembentukan Proses
Ada beberapa kejadian yang menyebabkan pembuatan
suatu proses baru, antara lain:
a. Pada lingkungan batch sebagai tambahan atas
pemberian job. Setelah menciptakan proses baru,
sistem operasi melanjutkan untuk membaca job
selanjutnya.
b. Pada ingkungan interaktif, pada saat user baru saja log-
on;
c. Sebagai tanggapan atas suatu aplikasi (seperti:
mencetak file, sistem operasi dapat menciptakan
proses yang akan mengelola pencetakan itu);
d. Proses menciptakan proses lain (child)..
Pembentukan Proses
Selama eksekusi, suatu proses mungkin akan membuat suatu proses
yang baru. Proses tersebut dinamakan parent, sedangkan proses
yang dibuat dinamakan child. Proses pembuatan proses anak
membentuk pohon proses.
Pembagian sumber daya :
• Parent dan child membagi semua sumber daya yang ada
• Child menggunakan sebagian dari sumber daya yang digunakan
parent
Bentuk eksekusi :
• Parent melanjutkan eksekusi beriringan dengan children.
• Parent menunggu hingga beberapa atau seluruh children selesai.
Bentuk ruang alamat :
• Child adalah duplikat dari proses parent.
• Child mempunyai program yang diambil dari dirinya.
Pembentukan Proses
Saat komputer berjalan, terdapat banyak proses
yang berjalan secara bersamaan.
Sebuah proses dibuat melalui system call
create-process yang membentuk proses turunan (child
process) yang dilakukan oleh proses induk (parent
process).
Proses turunan tersebut juga mampu membuat
proses baru sehingga semua proses ini pada akhirnya
membentuk pohon proses.
Pembentukan Proses
Ketika sebuah proses dibuat maka proses
tersebut dapat memperoleh sumber-daya seperti
waktu CPU, memori, berkas, atau perangkat M/K.
Sumber daya ini dapat diperoleh langsung dari
sistem operasi, dari proses induk yang membagi-
bagikan sumber daya kepada setiap proses
turunannnya, atau proses turunan dan proses induk
berbagi sumber-daya yang diberikan sistem operasi
Penghentian Proses
Suatu proses berhenti jika telah menyelesaikan
pernyataan terakhir, dan meminta pada sistem operasi untuk
menghapusnya dengan menggunakan system call exit.

Proses mengembalikan semua data (output) ke parent


proses melalui system call wait. Kemudian proses dihapus
dari list atau tabel sistem, dilanjutkan dengan menghapus
PCB.
Penghentian Proses
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 menganggap
bahwa proses anak ini terpisah dengan induknya, sehingga
proses anak tidak ikut dihentikan secara otomatis pada saat
proses induk dihentikan.
Parent dapat menghentikan eksekusi proses child
dengan menggunakan system
call abort.
Terminasi Proses
Suatu proses diterminasi ketika proses tersebut telah
selesai mengeksekusi perintah terakhir atau diterminasi
dengan sengaja oleh proses lain, biasanya proses induk yang
melakukan hal ini.
Pada saat terminasi, semua sumber-daya yang
digunakan oleh proses akan dialokasikan kembali oleh sistem
operasi agar dapat dimanfaatkan oleh proses lain.
Suatu proses yang diterminasi karena selesai
melakukan tugasnya, sistem operasi akan memanggil system
call exit() sedangkan proses yang diterminasi dengan
sengaja oleh proses lain melalui system call abort. Biasanya
proses induk melakukan terminasi sengaja pada turunannya.
Alasan terminasi
1. Turunan melampaui penggunaan sumber-daya yang telah
dialokasikan. Dalam keadaan ini, proses induk perlu
mempunyai mekanisme untuk memeriksa status
turunannya-nya.
2. Task yang ditugaskan kepada turunan tidak lagi
diperlukan.
3. Proses induk selesai, dan sistem operasi tidak
mengizinkan proses turunan untuk tetap berjalan. Jadi,
semua proses turunan akan berakhir pula. Hal ini yang
disebut cascading termination.
Model-model Proses
• Proses dengan 2 status:
– Running
– Not running
• Proses dengan 5 status:
– New
– Ready
– Running
– Exit
– Blocked
• Proses dengan 6 status
– Proses dengan 5 status + Suspend
• Proses dengan 7 status:
– Proses dengan 5 status + Ready/Suspend + Blocked/Suspend
Model Proses Dengan 2-Status (1)

• Merupakan model proses paling sederhana


• Setiap proses akan selalu berada pada salah satu dari 2 status
berikut:
– Running
– Not-running
Model Proses Dengan 2-Status (2)

• Apa yang dilakukan OS ?


– OS membentuk proses baru dilengkapi dengan PCB
untuk proses tersebut
• Masukkan proses baru ke sistem:
– Jika tidak ada proses yang sedang Running Proses
langsung diberi status Running langsung
dieksekusi
– Jika ada proses yang sedang Running masukkan
proses dengan status Not-running
• Jika proses yang running ter-interrupt, maka:
– OS menjalankan program dispatcher untuk memilih
proses berikutnya yang akan dieksekusi
– Masukkan proses tersebut ke status Not-running
Model Antrian Pada Proses Dengan 2-Status

 Diagram antrian proses dengan 2-


status:
 Hanya digunakan sebuah antrian
 di dalam antrian terdapat
berbagai macam status proses
(siap running terblok menunggu I/O
berbagai macam status proses
(siap running, ter-blok, menunggu
I/O, dll)
 Kelemahan:
 Pemilihan proses selanjutnya yang
akan dieksekusi tidak cukup hanya
dengan algoritma FIFO
 Dispatcher harus mencari proses
yang siap running diantara proses-
proses yang lain yang terblok
karena sedang menunggu hasil I/O
 Butuh algoritma yang lebih rumit
Model Proses Dengan 5-Status

• Proses yang sedang


antri dikelompokkan
menjadi 2:

• Proses yang siap


running/ready (misal
terhenti karena time
out)
• Proses yang terblok
(misal butuh memori
lebih besar menunggu
I/O device)
Nama Status pada proses dengan 5-status (1)

• New:
– Status untuk proses yang baru saja terbentuk
Misal: log on dari user, buka MS-word, dll
– Program dan data tidak langsung diletakkan ke
memori, jika:
• Jumlah proses yang sedang ditangani sudah
maksimum agar performansi sistem terjaga
• Memori tidak mencukupi
• Ready:
– Proses yang siap untuk dieksekusi
– Sudah berada di memori
Nama Status pada proses dengan 5-status (2)

• Running:
– Proses sedang dieksekusi
– Dalam satu saat hanya satu proses yang boleh running
(uniprocessor)
• Blocked:
– Proses yang terpaksa berhenti karena sedang menunggu suatu
event terjadi
Misal: proses yang sedang menunggu selesainya aktifitas di I/O
• Exit:
– Proses yang sudah selesai (keluar dari daftar proses yang dapat
dieksekusi)
– Penyebab: program sudah selesai atau dibatalkan
Perpindahan Status Untuk Proses 5-Status (1)

 Null  New:
• Pembentukan proses baru
 New  Ready:
• Penambahan proses baru yang siap dieksekusi
• Proses baru telah ‘diakui’ oleh sistem operasi
• Proses dipindah dari harddisk ke memori
 Ready  Running:
• Satu proses terpilih dieksekusi
 Exit Running
• Proses telah selesai atau dibatalkan
 Running  Ready:
• Proses yang sedang running dipaksa berhenti (preempted)
• Penyebab:
 Waktu habis (time out)
 Datang proses berprioritas lebih tinggi
Perpindahan Status Untuk Proses 5-Status (2)

 Running  Blocked:
• Proses yang sedang running terpaksa berhenti
• Penyebab:
 Sedang menunggu file yang sedang diakses oleh proses
lain
 Sedang menunggu proses di I/O selesai
 Butuh memori lebih besar
 Sedang menunggu data hasil eksekusi proses lain
 Sedang menunggu proses yang akan diajak berkomunikasi
tetapi sedang sibuk
 Blocked Ready:
• Proses terbebas dari blocked setelah event yang ditunggu telah
tersedia
Perpindahan Status Untuk Proses 5-Status (3)

 Ready  Exit:
• Proses yang siap dieksekusi dipaksa keluar
(terminasi)
• Penyebab:
 Proses anak yang ‘dibunuh’ oleh proses induk
 Dihentikan oleh user
 Blocked  Exit:
• Proses yang terblok diterminasi
• Penyebab sama dengan penyebab Ready  Exit
Eksekusi Proses Dengan Dua Antrian (1)

 Cara kerja:

• Proses baru  Ready queue


• Jika tidak ada proses yang
running  langsung dieksekusi
• Proses yang sedang running
selesai/ter-blok  Pilih satu
proses di ready queue untuk
dieksekusi
• Jika selesai  keluar
• Jika time out  masuk ready
queue
• Jika perlu resource lain 
masuk blocked queue
Eksekusi Proses Dengan Dua Antrian (2)

• Apa kelemahan sistem dengan 2 antrian ?


Jika proses yang ter-blok sangat banyak dan masing
masing menunggu event yang berbeda-beda Jika
datang suatu event, maka OS harus menyeleksi proses
yang mana yang sedang membutuhkan event yang
datang
• butuh waktu
• butuh algoritma lebih rumit
Eksekusi Proses Dengan Banyak Antrian (1)
Eksekusi Proses Dengan Banyak Antrian (2)

 Cara kerja:
• Sama seperti pada eksekusi proses dengan dua
antrian
• Bedanya untuk setiap event yang berbeda disediakan
sebuah antrian tersendiri
 Kelebihan:
• Jika suatu event yang ditunggu telah tiba pemilihan
proses yang membutuhkan event tersebut lebih
mudah dan cepat (algoritmanya lebih sederhana)
 Pengembangan lebih lanjut:
• Jika terdapat proses dengan prioritas berbeda
untuk setiap prioritas disediakan ready queue
masing-masing
Model Proses Dengan 6-Status

• Status yang ditambahkan suspend state


Mengapa perlu ada suspend state ? (1)

• Memori telah dipenuhi oleh proses atau bagian


proses yang berada pada status blocked akibat
sedang menunggu suatu event (I/O, memori, dll),
sehingga tidak ada proses yang siap dieksekusi,
maka:
– Semua proses menunggu
– Prosesor menganggur
• Semakin lama ukuran program semakin besar,
maka:
– Memori yang dibutuhkan semakin besar
– Jumlah program yang dapat dieksekusi semakin
sedikit
Mengapa perlu ada suspend state ? (2)

• Tambah memori mahal


– Lakukan swapping (pindahkan proses yang
berada pada status blocked dari memori ke
harddisk)
• Proses berubah status dari blocked menjadi
suspend
• Memori yang kosong bertambah besar:
– Dapat dimanfaatkan oleh proses yang butuh
memori lebih besar, atau
– Dapat ditambahkan proses baru ke memori atau
– Pindahkan proses lain yang ter-suspend dan
siap running dari harddisk ke memori
S e l e s a i
Sampai Ketemu di Pertemuan ke-3

L/O/G/O
www.themegallery.com

Anda mungkin juga menyukai