Anda di halaman 1dari 40

MANAJEMEN PROSES

PROSES
Konsep Proses
suatu program yang sedang dalam
keadaan eksekusi
Status Proses
pada saat program sedang
dieksekusi akan terjadi perubahan.
Status proses ini sebagai bagian dari
aktivitas proses yang sedang
berlangsung saat itu.
GAMBAR KEADAAN
PROSES
 New, proses sedang
dibuat
 Running, proses bisa
dieksekusi, karena cpu
tidak sedang
mengerjakan proses lain
 Waiting, proses sedang
menunggu beberapa
event yang sedang
terjadi (menunggu
penyelesaian i/o)
 Ready, proses
menunggu jatah waktu
dari prosesor
 Terminated, proses
selesai eksekusi
GAMBAR PCB
Masing-masing proses
direpresentasikan oleh SO
menggunakan PCB :
 Status proses, New, Ready,
Running, Waiting, Terminated
 Program Counter, menunjukkan
alamat berikutnya yang akan
dieksekusi oleh proses tersebut
 CPU Register, register bervariasi
tipe dan jumlahnya tergantung
arsitektur yang bersangkutan.
 Informasi Manajemen Memori
 Informasi pencatatan
 Informasi penjadwalan CPU,
prioritas dari suatu proses
 Informasi I/O, daftar I/O yang
digunakan
 PCB berfungsi sebagai tempat
penyimpanan
PENJADUALAN PROSES
Konsep Dasar
Penjadwalan CPU menggunakan
Multiprogramming.
Multipragramming slalu terjadi berjalannya
beberapa proses dalam suatu waktu.
Konsepnya adalah suatu proses akan
menggunakan CPU sampai proses tersebut
dalam status wait (misalnya meminta I/O) atau
selesai. Pada saat wait, maka CPU akan
menganggur, untuk
mengatasi hal ini, maka CPU dialihkan ke
proses lain pada saat suatu proses sedang
dalam keadaan wait, demikan seterusnya
PENJADUALAN ANTRIAN
 Ketika proses memasuki sistem, mereka
diletakkan dalam antrian job. Antrian ini terdiri
dari seluruh proses dalam sistem.
 Proses yang hidup pada memori utama dan
siap menunggu/ wait untuk mengeksekusi
disimpan pada sebuah daftar bernama ready
queue
 Antrian ini biasanya disimpan sebagai daftar
penghubung.
 Sebuah header ready queue berisikan penunjuk
kepada PCB-PCB awal dan akhir.
 Setiap PCB memiliki pointer field yang
menunjukkan proses selanjutnya dalam ready
queue.
KEJADIAN YANG DAPAT
TERJADI
Proses tersebut dapat mengeluarkan
sebuah permintaan I/O, lalu di tempatkan
dalam sebuah antrian I/O.
Proses tersebut dapat membuat
subproses yang baru dan menunggu
terminasinya sendiri.
Proses tersebut dapat digantikan secara
paksa dari CPU, sebagai hasil dari suatu
interupsi, dan diletakkan kembali dalam
ready queue.
OPERASI-OPERASI PADA
PROSES
Proses dalam sistem dapat
dieksekusi secara bersama-sama,
proses tersebut harus dibuat dan
dihapus secara dinamis. Maka,
sistem operasi harus menyediakan
suatu mekanisme umtuk
pembuatan proses dan terminasi
proses.
PEMBUATAN PROSES
 Suatu proses dapat membuat beberapa proses baru, melalui sistem
pemanggilan pembuatan proses, selama jalur eksekusi. Pembuatan proses
dinamakan induk proses, sebagaimana proses baru di sebut anak dari proses
tersbut. Tiap proses baru tersebut dapat membuat proses lainnya, membentuk
suatu pohon proses

 Ketika suatu proses membuat proses baru, dua kemungkinan ada dalam term
eksekusi:
4. Induk terus menerus untuk mengeksekusi secara bersama-sama dengan
anaknya.
5. Induk menunggu sampai sebagian dari anaknya telah diakhiri/terminasi.
 Juga ada dua kemungkinan dalam term dari address space pada proses baru:
• Anak proses adalah duplikat dari induk proses.

Anak proses memiliki program yang terisikan didalamnya.
TERMINASI PROSES
 Sebuah proses berakhir ketika proses tersebut selesai mengeksekusi
pernyataan akhirnya dan meminta sistem operasi untuk menghapusnya
dengan menggunakan sistem pemanggilan exit. Pada titik itu, Seluruh
sumber-sumber dari proses-termasuk memori fisik dan virtual, membuka
berkas, dan penyimpanan I/O di tempatkan kembali oleh sistem operasi.
 Ada situasi tambahan tertentu ketika terminasi terjadi. Sebuah proses dapat
menyebabkan terminasi dari proses lain melalui sistem pemanggilan yang
tepat (contoh abort). Catat bahwa induk perlu tahu identitas dari anaknya.
Maka, ketika satu proses membuat proses baru, identitas dari proses yang
baru diberikan kepada induknya.
 Induk dapat menterminasi/ mengakhiri satu dari anaknya untuk beberapa
alasan, seperti:
4. Anak telah melampaui kegunaannya atas sebagaian sumber yang telah
diperuntukkan untuknya.
5. Pekerjaan yang ditugaskan kepada anak telah keluar, dan sistem operasi
tidak memeperbolehkan sebuah anak untuk meneruskan jika induknya
berakhir.
HUBUNGAN ANTAR PROSES
 Proses dibedakan menjadi :
2. Proses independen adalah apabila
proses tersebut tidak dapat
terpengaruh atau dipengaruhi oleh
proses lain yang sedang dijalankan
pada sistem. Berarti, semua proses
yang tidak membagi data apa pun (baik
sementara/ tetap) dengan proses lain
3. proses kooperatif adalah proses yang
dapat dipengaruhi atau pun
terpengaruhi oleh proses lain yang
sedang dijalankan dalam sistem.
ALASAN TERJADI PROSES
KOORPERATIF
 Pembagian informasi: apabila beberapa pengguna dapat
tertarik pada bagian informasi yang sama (sebagai contoh,
sebuah berkas bersama), kita harus menyediakan sebuah
lingkungan yang mengizinkan akses secara terus menerus
ke tipe dari sumber-sumber tersebut.
 Kecepatan penghitungan/ komputasi: jika kita menginginkan
sebuah tugas khusus untuk menjalankan lebih cepat, kita
harus membagi hal tersebut ke dalam subtask, setiap bagian
dari subtask akan dijalankan secara parallel dengan yang
lainnya. Peningkatan kecepatan dapat dilakukan hanya jika
komputer tersebut memiliki elemen-elemen pemrosesan
ganda (seperti CPU atau jalur I/O).
 Modularitas: kita mungkin ingin untuk membangun sebuah
sistem pada sebuah model modular-modular, membagi
fungsi sistem menjadi beberapa proses atau threads.
 Kenyamanan: bahkan seorang pengguna individu mungkin
memiliki banyak tugas untuk dikerjakan secara bersamaan
pada satu waktu. Sebagai contoh, seorang pengguna dapat
mengedit, memcetak, dan meng-compile secara paralel
KOMUNIKASI PROSES
Komunikasi langsung
Komunikasi tidak langsung.
Komunikasi secara sikroni/
asinkron.
Buffer otomatis atau eksplisit.
KOMUNIKASI LANGSUNG
 Setiap proses yang ingin berkomunikasi harus memiliki nama yang
bersifat eksplisit baik penerimaan atau pengirim dari komunikasi
tersebut. Dalam konteks ini, pengiriman dan penerimaan pesan secara
primitive dapat dijabarkan sebagai:
2. Send (P, message) - mengirim sebuah pesan ke proses P.
3. Receive (Q, message) - menerima sebuah pesan dari proses Q.
 Sebuah jaringan komunikasi pada bahasan ini memiliki beberapa sifat,
yaitu:
5. Sebuah jaringan yang didirikan secara otomatis diantara setiap pasang
dari proses yang ingin dikomunikasikan. Proses tersebut harus
mengetahui identitas dari semua yang ingin dikomunikasikan.
6. Sebuah jaringan adalah terdiri dari penggabungan dua proses.
7. Diantara setiap pesan dari proses terdapat tepat sebuah jaringan.
KOMUNIKASI TIDAK
LANGSUNG
 komunikasi tidak langsung, pesan akan dikirimkan pada
dan diterima dari/ melalui mailbox (kotak surat) atau
terminal-terminal
 Dua proses dapat saling berkomunikasi apabila kedua
proses tersebut sharing mailbox. Pengirim dan penerima
dapat dijabarkan sebagai:
• Send (A, message) - mengirim pesan ke mailbox A.
• Receive (A, message) - menerima pesan dari mailbox A.
 Dalam masalah ini, link komunikasi mempunyai sifat
sebagai berikut:
• Sebuah link dibangun diantara sepasang proses dimana
kedua proses tersebut membagi mailbox.
• Sebuah link mungkin dapat berasosiasi dengan lebih
dari dua proses.
• Diantara setiap pasang proses komunikasi, mungkin
terdapat link yang berbeda-beda, dimana setiap link
berhubungan pada satu mailbox.
SINKRONISASI
 Komunikasi antara proses membutuhkan place by calls
untuk mengirim dan menerima data primitive. Terdapat
rancangan yang berbeda-beda dalam implementasi
setiap primitive. Pengiriman pesan mungkin dapat diblok
(blocking) atau tidak dapat dibloking (nonblocking) - juga
dikenal dengan nama sinkron atau asinkron.
• Pengiriman yang diblok: Proses pengiriman di blok
sampai pesan diterima oleh proses penerima (receiving
process) atau oleh mailbox.
• Pengiriman yang tidak diblok: Proses pengiriman pesan
dan mengkalkulasi operasi.
• Penerimaan yang diblok: Penerima mem blok samapai
pesan tersedia.
• Penerimaan yang tidak diblok: Penerima mengembalikan
pesan valid atau null.
BUFFERING
 Baik komunikasi itu langsung atau tak langsung,
penukaran pesan oleh proses memerlukan antrian
sementara. Pada dasarnya, terdapat tiga jalan dimana
antrian tersebut diimplementasikan:
• Kapasitas nol: antrian mempunyai panjang maksimum 0,
maka link tidak dapat mempunyai penungguan pesan
(message waiting). Dalam kasus ini, pengirim harus
memblok sampai penerima menerima pesan.
• Kapasitas terbatas: antrian mempunyai panjang yang
telah ditentukan, paling banyak n pesan dapat
dimasukkan. Jika antrian tidak penuh ketika pesan
dikirimkan, pesan yang baru akan menimpa, dan
pengirim pengirim dapat melanjutkan eksekusi tanpa
menunggu. Link mempunyai kapasitas terbatas. Jika link
penuh, pengirim harus memblok sampai terdapat ruang
pada antrian.
• Kapasitas tak terbatas: antrian mempunyai panjang yang
tak terhingga, maka, semua pesan dapat menunggu
disini. Pengirim tidak akan pernah di blok.
THREAD
KONSEP DASAR
 Ada dua jenis proses, proses berat (heavyweight) atau biasa dikenal
dengan proses tradisional, dan proses ringan atau kadang disebut
thread.
 Keuntungan
• Tanggap: Multithreading mengizinkan program untuk berjalan terus walau
pun pada bagian program tersebut di block atau sedang dalam keadaan
menjalankan operasi yang lama. Sebagai contoh, multithread web browser
dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu
gambar sedang diload oleh thread yang lain.
• Pembagian sumber daya: Secara default, thread membagi memori dan
sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi
mempunyai perbedaan aktifitas thread dengan alokasi memori yang sama.
• Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses
adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya
dari proses, ini lebih ekonomis untuk membuat threads.
• Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading
dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread
dapat jalan secara parallel pada prosesor yang berbeda. Pada arsitektur
prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread
dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya
hanya satu thread yang berjalan di setiap waktu.
MODEL
MULTITHEREADING
 Implementasi multithreading yang
umum ada tiga, yaitu :
2. model many-to-one,
3. one-to-one,
4. dan many-to-many.
KERNEL THREAD
 Kernel thread didukung secara langsung oleh sistem operasi:
pembentukan thread, penjadualan, dan managemen dilakukan
oleh kernel dalam ruang kernel. Karena managemen thread telah
dilakukan oleh sistem operasi, kernel thread biasanya lebih
lambat untuk membuat dan mengelola daripada pengguna
thread.
 Bagaimana pun, selama kernel mengelola thread, jika suatu
thread di block tehadap sistem pemanggilan, kernel dapat
menjadualkan thread yang lain dalam aplikasi untuk dieksekusi.
 Dalam lingkungan multiprosesor, kernel dapat menjadualkan
thread dalam prosesor yang berbeda. Windows NT, Solaris, dan
Digital UNIX adalah sistem operasi yang mendukung kernel
thread.
MODEL ONE TO ONE
 Model one-to-one memetakan setiap thread pengguna
ke dalam satu kernel thread. Hal ini membuat model
one-to-one lebih sinkron daripada model many-to-one
dengan mengizinkan thread lain untuk berjalan ketika
suatu thread membuat pemblokingan terhadap sistem
pemanggilan; hal ini juga mengizinkan multiple thread
untuk berjalan secara parallel dalam multiprosesor.
 Kelemahan model ini adalah dalam pembuatan thread
pengguna dibutuhkan pembuatan korespondensi thread
pengguna. Karena dalam proses pembuatan kernel
thread dapat mempengaruhi kinerja dari aplikasi maka
kebanyakan dari implementasi model ini membatasi
jumlah thread yang didukung oleh sistem.
MODEL MANY TO ONE
 Model many-to-one ini memetakan beberapa
tingkatan pengguna thread hanya ke satu buah
kernel thread. Managemen proses thread dilakukan
oleh (di ruang) pengguna, sehingga menjadi efisien,
tetapi apabila sebuah thread melakukan sebuah
pemblokingan terhadap sistem pemanggilan, maka
seluruh proses akan berhenti (blocked). Kelemahan
dari model ini adalah multihreads tidak dapat
berjalan atau bekerja secara paralel di dalam
multiprosesor dikarenakan hanya satu thread saja
yang bisa mengakses kernel dalam suatu waktu.
MODEL MANY TO MANY
 Beberapa tingkatan thread pengguna dapat
menggunakan jumlah kernel thread yang lebih kecil atau
sama dengan jumlah thread pengguna. Jumlah dari
kernel thread dapat dispesifikasikan untuk beberapa
aplikasi dan beberapa mesin (suatu aplikasi dapat
dialokasikan lebih dari beberapa kernel thread dalam
multiprosesor daripada dalam uniprosesor) dimana
model many-to-one mengizinkan pengembang untuk
membuat thread pengguna sebanyak mungkin,
konkurensi tidak dapat tercapai karena hanya satu thread
yang dapat dijadualkan oleh kernel dalam satu waktu.
Model one-to-one mempunyai konkurensi yang lebih
tinggi, tetapi pengembang harus hati-hati untuk tidak
membuat terlalu banyak thread tanpa aplikasi dan dalam
kasus tertentu mungkin jumlah thread yang dapat dibuat
dibatasi.
PENJADUALAN CPU
KONSEP DASAR
Penjadual adalah fungsi dasar dari suatu
sistem operasi. Hampir semua sumber
komputer dijadual sebelum digunakan.
CPU salah satu sumber dari komputer
yang penting yang menjadi sentral dari
sentral penjadual di sistem operasi.
Penjadual CPU adalah basis dari multi
programming sistem operasi. Dengan
men-switch CPU diantara proses.
Akibatnya sistem operasi bisa membuat
komputer produktif.
PENJADUAL CPU
 Preemptive Scheduling
Ada 4 keaadan yg menjadi bahan pertimbangan penjadwalan
oleh CPU :
1. Pada saat proses berpindah dari keadaan running ke waiting
2. Pada saat proses berpindah dari keadaan running ke ready
3. Pada saat proses berpindah dari keadaan waiting ke ready
4. Pada saat proses berhenti
Apa bila memilih 1 & 4 non-preemptive, jika memilih 2 & 3 disebut
Preemptive.
 Non-Preemptive adalah jika suatu proses menggunakan CPU, maka
proses tersebut akan tetap membawa CPU sampai proses tersebut
berhenti/dalam keadaan waiting.
 Preemptive adalah terjadi jika suatu proses ditinggalkan dan akan
segera dikerjakan proses yang lain.
DISPATCHER
 Komponen yang lain yang terlibat
dalam penjadual CPU adalan
dispatcher. Dispatcher adalah modul
yang memberikan kontrol CPU kepada
proses yang fungsinya adalah:
2. Alih Konteks
3. Switching to user mode.
4. Lompat dari suatu bagian di progam
user untuk mengulang progam.
 Dispatcher seharusnya secepat
mungkin.
KRITERIA PENJADUALAN
 CPU utilization, diharapkan CPU dalam keadaan sibuk, utilitas
CPU dinyatakan dalam bentuk proses 0-100%,tapi
kenyataannya hanya 40-100%
 Throughput, terjadi pada saat CPU sedang sibuk karena banyak
proses yang dikerjakan dalam satu kesatuan waktu
 Turnround time, banyak waktu yang diperlukan untuk
mengeksekusi proses, dari mulai menunggu untuk meminta
tempat di memori utama, menunggu di ready queue, eksekusi
oleh CPU dan mengerjakan I/O
 Waiting time, waktu yang diperlukan oleh suatu proses untuk
menunggu di ready queue. Waiting time ini tidak
mempengaruhi eksekusi proses dan penggunaan I/O
 Response time, waktu yang dibutuhkan oleh suatu proses dari
minta dilayani hingga ada respon pertama yang menanggapi
permintaan tsb
 Fairness, menyakinkan bahwa tiap-tiap proses akan
mendapatkan pembagian waktu penggunaan CPU secara
terbuka (fair)
ALGORITMA
PENJADUALAN
FCFS (First Come First Serve)
 FCFS (First-Come-First-Served Scheduling)
Proses pertama kali meminta jatah waktu untuk menggunakan CPU akan
dilayani terlebih dahulu.
Misalnya ada 3 proses P1, P2, & P3 sbb :

Proses Burst time (ms)


P1 24
P2 3
P3 3

Gant chart :

P1 P2 P3
0 24 27 30
Waktu tunggu yang diberikan untuk
tiap-tiap proses seperti tabel berikut :

Proses Waiting time (ms)


P1 0
P2 24
P3 27

AWT (average waiting time) = (0+24+27)/3= 17 ms. Hal ini akan menjadi
Sangat berbeda jika urutan kedatang proses adalah P2, P3 dan P1

Gant chart :

P2 P3 P1

0 3 6 30
Waktu tunggu yang diberikan untuk tiap-tiap proses
seperti tabel berikut :

Proses Waiting time (ms)

P2 0
P3 3
P1 6

AWT =(0+3+6)/3= 3 ms. Metode FCFS adalah metode yang sangat


sederhana dan mudah diimlementasikan. Metode ini mempunyai kelemahan,
Karena mengakibatkan pembengkakan AWT jika proses yg dilayani terlebih
Dahulu membutuhkan waktu proses (burst time) yg sangat lama.
Algaritma FCFS termasuk non-preemptive, karena sekali CPU dialokasikan
Pada suatu proses, maka proses tersebut tetap akan memakai CPU sampai
Proses tersebut melepaskannya/jika proses berhenti.
SJF(Shortest Job First Sheduler)

Proses yang memiliki CPU burst yang paling kecil dilayani terlebih dahulu.
Misalnya ada 4 proses P1, P2, P3 & P4, yang meminta layanan CPU sbb :

Proses Burst time (ms)


P1 6
P2 8
P3 7
P4 3
Gant Chart :

P4 P1 P3 P2

0 3 9 16 24
Waktu tunggu untuk tiap proses
Proses Waiting time (ms)
P1 3
P2 16
P3 9
P4 0

Sehingga AWT nya = (3+16+9+0)/4 = 7 ms

Algoritma ini belum optimal dan sulit untuk diimplementasikan, karena sulit
Untuk mengetahui panjang CPU burst berikutnya, namun nilainya dapat di
Prediksikan
Algaritma SJF termasuk preemptive/non-preemptive. Jika ada proses P1 yg
Datang pada saat P0 sedang berjalan, maka akan dilihat CPU burst P1.
Pada non-preemptive, algoritma tetap akan menyelesaikan P0 sampai habis
CPU burstnya. Pada Preemptive, jika CPU burst P! lebih kecil dari sisa waktu
Yang dibutuhkan oleh P0, maka P0 akan dihentikan dulu, dan CPU ganti di
Alokasikan ke P1.
Misalnya ada 4 proses P1, P2, P3 dan P4
yang meminta pelayanan CPU sbb :
Proses Arrival time Burst time
(ms)
P1 0 8
P2 1 4
P3 2 9
P4 3 5
Gant Chart :

P1 P2 P4 P1 P3
0 1 5 10 17 26

Proses Waiting time (ms)


Waktu tunggu AWT = (9+0+15+2)/4 = 6.5 ms
P1 0+(10 -1) = 9
Untuk tiap proses :
P2 1 -1 = 0
P3 17 - 2 = 15
P4 5–3=2
Priority Scheduling
Algoritma SJF adalah suatu kasus khusus dari priority scheduling.
Tiap-tiap proses dilengkapi dengan prioritas. CPU dialokasikan
untuk
proses yang memiliki prioritas paling tinggi. Jika beberapa proses
memiliki prioritas yang sama, maka akan digunakan algoritma
FCFS.
Misalnya ada 5 proses, P1, P2, P3, P4 dan P5 sbb :

Proses Burst time Prioritas


(ms)
P1 10 3
P2 1 1
P3 2 3
P4 1 4
P5 5 2
P2 P5 P1 P3 P4
0 1 Gant chart :6 16 18 19
Waktu tunggu untuk tiap-tiap proses adalah :

Proses Waiting time (ms)


P1 6 AWT = (6+0+16+18+1)/5 = 8.2 ms
P2 0
P3 16
P4 18
P5
Priority scheduling 1
bersifat preemtive/non-preemptive. Jika ada proses P1
Yang datang pada saat P0 sedang berjalan, maka akan dilihat prioritas P1.
Seandainya prioritas P1 lebih besar dibandingkan dengan P0, maka pada non-
Preemptive, algaritmanya tetap akan menyelesaikan P0 sampai habis CPU
Burstnya dan meletakan pada posisi head queue. Sedangkan pada preemtive,
P0 akan dihentikan dulu dan CPU ganti dialokasikan untuk P1.
Round-Robin Scheduling
Konsepnya menggunakan time sharing, hampir sama dengan algoritma
FCFS hanya saja bersifa preemptive. Digunakan quantum-time untuk
membatasi waktu proses.

Jika suatu proses memiliki CPU burst lebih kecil dibandingkan dengan
Quantum-time, maka proses tersebut akan melepaskan CPU jika telah
Selesai bekerja, sehingga CPU dapat digunakan untuk prosesselanjutnya
sebaliknya jika suatu proses memiliki CPU burst yang lebih besar di
bandingkan dengan quantum-time, maka proses tersebut akan dihentikan
sementara jika sudah mencapai quantum-time, dan selanjutnyaMengantri
pada posisi ekor dari ready queue, CPU kemudian menjalankan proses
berikutnya.Misal ada 3 proses, P1, P2 & P3, yang meminta pelayanan CPU,
quantum-time = 4 ms.

Proses Burst time (ms)


P1 24
P2 3
P3 3
Gant chart :

P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
Waktu tunggu tiap-tiap proses :

Proses Waiting time (ms)


AWT = (6+4+7)/3 = 5.66 ms
P1 0 + (10-4) = 6
P2 4
P3 7

Algoritma round robin ini memiliki keuntungan adanya keseragaman waktu