Title: MANAJEMEN PROSES
1MANAJEMEN PROSES
2PROSES
- 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.
3GAMBAR 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
4GAMBAR 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
5PENJADUALAN 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
6PENJADUALAN 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.
7KEJADIAN 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.
8OPERASI-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.
9PEMBUATAN 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 - Induk terus menerus untuk mengeksekusi secara
bersama-sama dengan anaknya. - 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.
10TERMINASI 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 - Anak telah melampaui kegunaannya atas sebagaian
sumber yang telah diperuntukkan untuknya. - Pekerjaan yang ditugaskan kepada anak telah
keluar, dan sistem operasi tidak memeperbolehkan
sebuah anak untuk meneruskan jika induknya
berakhir.
11HUBUNGAN ANTAR PROSES
- Proses dibedakan menjadi
- 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 - proses kooperatif adalah proses yang dapat
dipengaruhi atau pun terpengaruhi oleh proses
lain yang sedang dijalankan dalam sistem.
12ALASAN 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
13KOMUNIKASI PROSES
- Komunikasi langsung
- Komunikasi tidak langsung.
- Komunikasi secara sikroni/ asinkron.
- Buffer otomatis atau eksplisit.
14KOMUNIKASI 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 - Send (P, message) - mengirim sebuah pesan ke
proses P. - Receive (Q, message) - menerima sebuah pesan dari
proses Q. - Sebuah jaringan komunikasi pada bahasan ini
memiliki beberapa sifat, yaitu - Sebuah jaringan yang didirikan secara otomatis
diantara setiap pasang dari proses yang ingin
dikomunikasikan. Proses tersebut harus mengetahui
identitas dari semua yang ingin dikomunikasikan. - Sebuah jaringan adalah terdiri dari penggabungan
dua proses. - Diantara setiap pesan dari proses terdapat tepat
sebuah jaringan.
15KOMUNIKASI 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.
16SINKRONISASI
- 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.
17BUFFERING
- 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.
18THREAD
19KONSEP 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.
20MODEL MULTITHEREADING
- Implementasi multithreading yang umum ada tiga,
yaitu - model many-to-one,
- one-to-one,
- dan many-to-many.
21KERNEL 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.
22MODEL 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.
23MODEL 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.
24MODEL 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.
25PENJADUALAN CPU
26KONSEP 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.
27PENJADUAL 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.
28DISPATCHER
- Komponen yang lain yang terlibat dalam penjadual
CPU adalan dispatcher. Dispatcher adalah modul
yang memberikan kontrol CPU kepada proses yang
fungsinya adalah - Alih Konteks
- Switching to user mode.
- Lompat dari suatu bagian di progam user untuk
mengulang progam. - Dispatcher seharusnya secepat mungkin.
29KRITERIA 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)
30ALGORITMA PENJADUALAN
31FCFS (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
32Waktu tunggu yang diberikan untuk tiap-tiap
proses seperti tabel berikut
Proses Waiting time (ms)
P1 0
P2 24
P3 27
AWT (average waiting time) (02427)/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
33Waktu tunggu yang diberikan untuk tiap-tiap
proses seperti tabel berikut
Proses Waiting time (ms)
P2 0
P3 3
P1 6
AWT (036)/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.
34SJF(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
35Waktu tunggu untuk tiap proses
Proses Waiting time (ms)
P1 3
P2 16
P3 9
P4 0
Sehingga AWT nya (31690)/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.
36Misalnya 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)
P1 0(10 -1) 9
P2 1 -1 0
P3 17 - 2 15
P4 5 3 2
Waktu tunggu Untuk tiap proses
AWT (90152)/4 6.5 ms
37Priority 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 (ms) Prioritas
P1 10 3
P2 1 1
P3 2 3
P4 1 4
P5 5 2
38Gant chart
P2 P5
P1 P3 P4
0 1 6
16 18 19
Waktu tunggu untuk tiap-tiap proses adalah
Proses Waiting time (ms)
P1 6
P2 0
P3 16
P4 18
P5 1
AWT (6016181)/5 8.2 ms
Priority scheduling bersifat preemtive/non-preempt
ive. 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.
39Round-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
40Gant 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)
P1 0 (10-4) 6
P2 4
P3 7
AWT (647)/3 5.66 ms
Algoritma round robin ini memiliki keuntungan
adanya keseragaman waktu