Pengaturan Proses

advertisement
Pengaturan Proses
Dinda Prasetia – PTKI B
Proses
• Proses adalah program yang sedang dieksekusi atau
sofware yang sedang dilaksanakan.
• Perbedaan antara program dengan proses adalah
program merupakan entitas yang pasif, yaitu suatu
file yang berisi kumpulan instruksi-instruksi yang
disimpan di dalam disk (file executable), sedangkan
proses merupakan entitas yang aktif, dengan
sebuah program counter yang menyimpan alamat
instruksi selanjut yang akan dieksekusi dan
seperangkat
sumber
daya
(resource)
yang
dibutuhkan agar sebuah proses dapat dieksekusi.
Konsep Dasar Proses
• Multiprogramming system
Melakukan proses satu persatu secara bergantian
dalam waktu yang sangat cepat (hardware level).
Setiap proses mempunyai satu virtual CPU.
• Pseudoparallelism
Melakukan lebih dari satu pekerjaan dalam waktu
yang bersamaan (user level).
Hirarki Proses Pada Sistem Operasi
• Create & destroy process
Sistem operasi yang mendukung konsep proses, harus
menyediakan suatu cara untuk membuat (create)
proses dan menghilangkan (destroy) proses
• FORK system call
mekanisme untuk membuat (create) proses yang
identik dengan proses yang memanggilnya.
o Pada Unix, parent dan child process running secara
parallel.
o Pada DOS, parent dan child process running secara
bergantian (sequential).
o Process scheduler : untuk pengaturan eksekusi proses
Status Proses
• Meskipun tiap-tiap proses terdiri dari suatu
kesatuan yang terpisah namun adakalanya prosesproses tersebut butuh untuk saling berinteraksi.
Satu proses bisa dibangkitkan dari output proses
lainnya sebagai input.
• Pada saat proses dieksekusi, akan terjadi
perubahan status. Status proses didefiniskan
sebagai bagian dari aktivitas proses yang sedang
berlangsung saat itu.
Status Proses
• Status proses terdiri dari :
– New: proses sedang dibuat.
– Running: proses sedang dieksekusi.
– Waiting: proses sedang menunggu
beberapa event yang akan terjadi (seperti
menunggu untuk menyelesaikan I/O atau
menerima sinyal).
– Ready: proses menunggu jatah waktu dari
CPU untuk diproses.
– Terminated: proses telah selesai
dieksekusi.
Penjadwalan Proses
 Penjadwalan adalah fungsi dasar dari sistem
operasi  semua resources komputer
dijadwalkan sebelum digunakan.
 Penjadwalan CPU didasarkan pada sistem
operasi yang menggunakan prinsip
Multiprogramming.
 Penjadwalan bertugas memutuskan :
 Proses yang harus berjalan.
 Kapan dan selama berapa lama proses itu
berjalan.
Tipe Penjadwalan
• Penjadwalan jangka pendek (short-termscheduller)
Penjadwalan ini bertugas menjadwalkan alokasi
pemroses diantara proses-proses ready di memori
utama.
• Penjadwalan jangka menengah (medium
termscheduller )
Penjadwalan jangka menengah adalah menangani
proses-proses swapping (aktivitas pemindahan proses
yang tertunda dari memory utama ke memory
sekunder).
• Penjadwalan jangka panjang (long-termscheduller)
Penjadwalan jangka panjang bekerja terhadap antrian
batch (proses – proses dengan penggunaan sumber
daya yang intensif) dan memilih batch berikutnya yang
harus di eksekusi.
Preemptive dan Nonpreemptive
 Terdapat 2 strategi penjadwalan :
 Penjadwalan Non Preemptive
Jika proses sedang menggunakan CPU 
proses tersebut akan membawa CPU
sampai proses tersebut melepaskannya
(berhenti dalam keadaan wait).
 Penjadwalan Preemptive
Pada saat proses sedang menggunakan
CPU  CPU dapat diambil alih oleh proses
lain.
Dalam hal ini harus selalu dilakukan
perbaikan data.
Kriteria Penjadwalan (1)
Adil, proses-proses diperlakukan sama, dalam artian
adil. Adil disini tidak berarti terdapat perlakuan yang
sama kepada setiap process, melainkan terdapat
beberapa variabel seperti prioritas, dll yang akan
dipelajari nanti.
CPU Utilization, diharapkan agar CPU selalu dalam
keadaan sibuk, sehingga penggunaan CPU lebih
optimal.
Throughput, adalah banyaknya proses yang selesai
dikerjakan dalam satu satuan waktu. Sasaran
penjadwalan adalah memaksimalkan jumlah job
yang diproses dalam satu satuan waktu.
Kriteria Penjadwalan (2)
Turn Around Time, adalah banyaknya waktu yang
diperlukan untuk mengeksekusi proses, dari mulai
menunggu untuk meminta tempat di memori utama,
eksekusi oleh CPU dan mengerjakan I/O.
Turn Around Time = waktu eksekusi + waktu tunggu.
Sasaran Penjadwalan adalah meminimalkan waktu
Turn Around Time.
Waiting-Time, adalah waktu yang diperlukan oleh suatu
proses untuk menunggu di ready queue. Sasaran
Penjadwalan : meminimalkan waiting time.
Response-Time, adalah waktu yang diperlukan oleh suatu
proses dari minta dilayani hingga ada respon pertama
menanggapi permintaan tersebut . Sasaran
penjadwalan : meminimalkan waktu tanggap.
Algoritma Penjadwalan
• Proses yang belum mendapatkan jatah
alokasi dari CPU akan mengantri di ready
queue.
• Algoritma Penjadwalan diperlukan untuk
mengatur giliran proses-proses tersebut.
• Algoritma-algoritma penjadwalan :
– FCFS (First Come First Serve).
– SJF (Sortest Job First).
– Priority.
– Round Robin.
Algoritma FCFS (1)
• Penjadwalan ini merupakan penjadwalan Non
Preemptive.
• Dalam penjadwalan FCFS (First Come First
Serve) :
– Proses yang pertama kali minta jatah waktu
untuk menggunakan CPU akan dilayani
terlebih dahulu.
– Begitu proses mendapatkan jatah waktu CPU
 proses dijalankan sampai selesai/ sampai
proses tersebut melepaskannya, yaitu jika
proses tersebut berhenti atau meminta I/O.
Algoritma FCFS (2)
• Contoh FCFS Scheduling :
Algoritma SJF (1)
 Mendahulukan proses dengan Burst-Time
terkecil.
 Ada 2 Tipe :
Jika ada proses P1 yang datang pada saat P0
sedang berjalan  akan dilihat CPU burst P1 
 Preemptive, Jika CPU burst P1 lebih kecil dari
sisa waktu yang dibutuhkan oleh P0  CPU
ganti dialokasikan untuk P1.
 Non Preemptive, Akan tetap menyelesaikan P0
sampai habis CPU burstnya.
Algoritma SJF (2)
• Contoh SJF Scheduling  Non Preemptive
– Waktu kedatangan sama
Algoritma SJF (3)
• Contoh SJF Scheduling  Non
Preemptive
– Waktu kedatangan tidak sama
Algoritma SJF (4)
• Contoh SJF Scheduling  Preemptive
– Waktu kedatangan tidak sama
Priority Scheduling (1)
 Tiap proses diberi skala prioritas, proses yang
mendapatkan prioritas tertinggi mendapat jatah waktu
pemroses
 Jika beberapa proses memiliki prioritas yang sama
akan digunakan algoritma FCFS
 Prioritas meliputi :
 Waktu
 Memori yang dibutuhkan
 Banyaknya file yang dibuka
 Perbandingan antara rata-rata I/O Burst dengan
rata-rata CPU Burst
Priority Scheduling (2)
 Algoritma Priority Scheduling dapat bersifat
Preemptive atau Non Preemptive.
Jika ada proses P1 yang datang pada saat P0
sedang berjalan  akan dilihat prioritas P1,
Jika prioritas P1>P0, maka :
 Pada Non Preemptive, Algoritma tetap akan
menyelesaikan P0 sampai habis CPU burstnya dan
meletakkan P1 pada posisi head queue.
 Pada Preemptive, P0 akan dihentikan dulu dan
CPU ganti dialokasikan untuk P1.
Priority Scheduling (3)
• Contoh Priority Scheduling
Round Robin (1)
 Konsep dasar algoritma ini menggunakan time sharing
 Pada dasarnya, prinsip hampir sama dengan FCFS, tapi
bersifat preemptive
 Tiap proses akan dibatasi waktu prosesnya, yang
disebut quantum time
 Keuntungan algoritma round robin :
 Adanya keseragaman waktu
 Kelemahannya :
 Jika quantum time sangat besar  switching yang
terjadi akan semakin sedikit (seperti FCFS)
 Jika quantum time terlalu kecil  switching yang
terjadi akan semakin banyak, sehingga banyak
waktu yang terbuang
Round Robin (2)
 Ketentuan Algoritma Round Robin adalah :
 Jika proses memiliki CPU Burst < Quantum Time,
maka proses akan melepaskan CPU, jika telah selesai
digunakan  CPU dapat segera digunakan oleh
proses selanjutnya
 Jika proses memiliki CPU Burst > Quantum Time,
maka proses tersebut akan dihentikan jika sudah
mencapai quantum time dan selanjutnya mengantri
kembali pada posisi tail queue (ekor dari ready
queue), CPU kemudian menjalankan proses
berikutnya
 Jika quantum time belum habis dan proses menunggu
suatu kejadian (selesainya operasi I/O), maka proses
menjadi blocked dan CPU dialihkan ke proses lain
Round Robin (3)
• Contoh Round Robin Scheduling :
Deadlock
• Deadlock adalah keadaan dimana dua program
memegang kontrol terhadap sumber daya yang
dibutuhkan oleh program yang lain. Tidak ada
yang dapat melanjutkan proses masing-masing
sampai program yang lain memberikan sumber
dayanya, tetapi tidak ada yang mengalah.
• Contoh deadlock
Dipersimpangan jalan
Karakteristik Deadlock (1)
• Mutual exclusion. Hanya ada satu proses yang boleh
memakai sumber daya, dan proses lain yang ingin
memakai sumber daya tersebut harus menunggu
hingga sumber daya tadi dilepaskan atau tidak ada
proses yang memakai sumber daya tersebut.
• Hold and wait. Proses yang sedang memakai sumber
daya boleh meminta sumber daya lagi maksudnya
menunggu hingga benar-benar sumber daya yang
diminta tidak dipakai oleh proses lain, hal ini dapat
menyebabkan kelaparan sumber daya sebab dapat saja
sebuah proses tidak mendapat sumber daya dalam
waktu yang lama.
Karakteristik Deadlock (2)
• No preemption. Sumber daya yang ada pada sebuah
proses tidak boleh diambil begitu saja oleh proses
lainnya. Untuk mendapatkan sumber daya tersebut,
maka harus dilepaskan terlebih dahulu oleh proses
yang memegangnya, selain itu seluruh proses
menunggu dan mempersilahkan hanya proses yang
memiliki sumber daya yang boleh berjalan.
• Circular wait. Kondisi seperti rantai, yaitu sebuah
proses membutuhkan sumber daya yang dipegang
proses berikutnya.
Menangani Deadlock
• Terdapat tiga metode untuk menangani
permasalahan deadlock yaitu :
– Menggunakan protocol untuk menjamin
bahwa sistem tidak pernah memasuki
status deadlock
– Mengijinkan sistem memasuki status
deadlock dan kemudian memperbaikinya.
– Mengabaikan permasalahan dan seakanakan deadlock tidak pernah terjadi pada
sistem.
Pencegahan Deadlock (1)
• Mutual Exclusion. Kondisi mutual exclusion pada
sumber daya adalah sesuatu yang wajar terjadi, yaitu
pada sumber daya yang tidak dapat dibagi (nonsharable). Sedangkan pada sumber daya yang bisa
dibagi tidak ada istilah mutual exclusive. Jadi,
pencegahan kondisi yang pertama ini sulit karena
memang sifat dasar dari sumber daya yang tidak dapat
dibagi.
• Hold and Wait. Untuk kondisi yang kedua, sistem perlu
memastikan bahwa setiap kali proses meminta sumber
daya, ia tidak sedang memiliki sumber daya lain. Atau
bisa dengan proses meminta dan mendapatkan sumber
daya yang dimilikinya sebelum melakukan eksekusi,
sehingga tidak perlu menunggu.
Pencegahan Deadlock (2)
• No Preemption. Pencegahan kondisi ini dengan
cara membolehkan terjadinya preemption.
Maksudnya bila ada proses yang sedang memiliki
sumber daya dan ingin mendapatkan sumber
daya tambahan, namun tidak bisa langsung
dialokasikan, maka akan preempted. Sumber daya
yang dimiliki proses tadi akan diberikan pada
proses lain yang membutuhkan dan sedang
menunggu. Proses akan mengulang kembali
eksekusinya setelah mendapatkan semua sumber
daya yang dibutuhkannya, termasuk sumber daya
yang dimintanya terakhir.
Pencegahan Deadlock (3)
• Circular Wait. Kondisi 'lingkaran setan' ini dapat
'diputus' dengan jalan menentukan total
kebutuhan terhadap semua tipe sumber daya
yang ada. Selain itu, digunakan pula mekanisme
enumerasi terhadap tipe-tipe sumber daya yang
ada. Setiap proses yang akan meminta sumber
daya harus meminta sumber daya dengan urutan
yang menaik. Misalkan sumber daya printer
memiliki nomor 1 sedangkan CD-ROM memiliki
nomor 3. Proses boleh melakukan permintaan
terhadap printer dan kemudian CD-ROM, namun
tidak boleh sebaliknya.
Pemulihan Deadlock (1)
1. Terminasi Proses
• Untuk memperbaiki deadlock dengan terminasi proses, dapat
diguankan salah satu dari dua metode di bawah ini :
– Menghentikan (abort) semua proses yang deadlock
– Menghentikan satu proses setiap waktu sampai siklus deadlock hilang.
• Untuk menentukan urutan proses yang harus dihentikan ada
beberapa faktor yang harus diperhatikan :
–
–
–
–
–
–
Prioritas proses.
Berapa lama proses dijalankan dan berapa lama lagi selesai.
Sumber daya yang digunakan proses.
Sumber daya proses yang diperlukan untuk menyelesaikan task.
Berapa proses yang perlu diterminasi.
Apakah proses interaktif atau batch.
Pemulihan Deadlock (2)
2. Menunda Sumber Daya
• Untuk menghilangkan deadlock dengan menunda sumber daya,
sumber daya dari proses harus ditunda dan memberikan sumber
daya tersebut ke proses lain sampai siklus deadlock hilang.
• Jika penundaan dibutuhkan untuk menghilangkan deadlock,
terdapat tiga hal yang perlu diperhatikan :
– Pilihlah korban (sumber daya) yang mempunyai biaya minimal.
– Lakukan rollback yaitu memulai kembali (restart) proses pada state
yang selamat.
– Harus dijamin starvation tidak akan terjadi karena kemungkinan
beberapa proses selalu terpilih sebagai korban termasuk jumlah
rollback sebagai faktor biaya.
Concurency (Kongkurensi)
• Kondisi dimana pada saat yang bersamaan terdapat
lebih dari satu proses disebut dengan kongkurensi
(proses-proses yang kongkuren). Proses-proses yang
mengalami
kongkuren
dapat
berdiri
sendiri
(independen) atau dapat saling berinteraksi, sehingga
membutuhkan sinkronisasi atau koordinasi proses yang
baik.
Untuk
penanganan
kongkuren,
bahasa
pemograman saat ini telah memiliki mekanisme
kongkurensi dimana dalam penerapannya perlu
dukungan sistem operasi dimana bahasa berada.
Prinsip Kongkurensi
• Kongkurensi merupakan kegiatan yang
berhubungan dengan :
– Alokasi waktu pemroses untuk prosesproses yang aktif.
– Pemakaian bersama dan persaingan untuk
mendapatkan sumber daya.
– Komunikasi antar proses.
– Sinkronisasi aktivitas banyak proses
Masalah Concurency (1)
a. Banyak aplikasi.
Pada sistem multiprogramming bisa terdapat banyak
aplikasi sekaligus yang dijalankan di sistem komputer.
b. Strukturisasi sebuah aplikasi yang terdiri dari
kumpulan proses.
Perluasan prinsip perancangan modular dan
pemograman terstruktur adalah suatu aplikasi dapat
secara efektif diimplementasikan sebagai kumpulan
proses. Dengan sekumpulan proses, maka tiap proses
menyediakan satu layanan spesifik tertentu.
Masalah Concurency (2)
c. Strukturisasi sebuah proses.
Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki
banyak thread yang independen. Thread-thread tersebut harus dapat
bekerjasama untuk mencapai tujuan proses.
• Contoh : Suatu word processor antara lain mempunyai kemampuan :
– Menerima masukan dari keyboard
– Menerima masukan dari mouse atau perangkat penunjuk yang lain
(asinkron)
– Pemisahan kata-kata
– Memformat baris menjadi rata kanan, kiri atau kanan-kiri.
• Aplikasi ini dapat diterapkan dengan banyak proses atau thread yang
masing-masing mempunyai tugas tertentu. Dengan demikian, saat
dilakukan penataan tampilan di layar, aplikasi sekaligus dapat
menerima masukan dari mouse yang segera akan diteruskan ke
aplikasi untuk mendapat perhatian.
Masalah Concurency (3)
d. Strukturisasi sistem operasi
Keunggulan strukturisasi dapat diterapkan ke
pemrograman sistem. Beberapa sistem operasi aktual
yang dipasarkan dan yang sedang dalam riset telah
diimplementasikan sebagai kumpulan proses. Sistem
operasi bermodelkan client/server.
Penanganan Concurency (1)
a. Mengetahui proses-proses yang aktif.
Sistem operasi mengelola senarai proses di sistem
operasi. Senarai ini berupa senarai PCB proses. Senarai
berjumlah sesuai jumlah state yang diimplementasikan
sistem operasi.
b. Proteksi data dan sumber daya fisik proses.
Proteksi data dan sumber daya fisik masing-masing
proses dari gangguan (interfensi) proses-proses lain.
c. Hasil-hasil proses harus independen.
Hasil-hasil proses harus independen terhadap
kecepatan relatif proses-proses lain dimana eksekusi
dilakukan.
Penanganan Concurency (2)
d. Mengatur alokasi dan dealokasi beragam sumber
daya untuk tiap proses yang aktif.
Sumber daya yang harus dikelola antara lain :
–
–
–
–
–
Waktu pemroses
Memori
Berkas-berkas (file)
Peralatan masukan/keluaran
Dan sebagainya
Thank You !!
Download