Anda di halaman 1dari 49

MANAJEMEN PROSES

Manajemen Proses
 Konsep Proses
 Definisi Proses
 Status Proses
 Process Control Block (PCB)

 Konsep Penjadwalan
 Queue Scheduling
 Schedulers
 Context switch

 Operasi Pada Proses


 Pembuatan Proses
 Penghentian Proses

 Thread
Konsep Proses
Tugas Sistem Operasi pada Manajemen Proses
 Membuat dan menghapus proses pengguna dan proses sistem.
 Menunda atau melanjutkan proses.
 Menyediakan mekanisme untuk proses komunikasi.
 Menyediakan mekanisme untuk proses sinkronisasi.
 Menyediakan mekanisme untuk penanganan deadlock.
Konsep Proses

 Proses merupakan semua


aktifitas CPU, seperti :
 Job/task/process yang dieksekusi
pada sistem batch
 User Program atau task pada
sistem time shared
Konsep Proses

 Proses adalah program yang sedang dieksekusi.


 Eksekusi proses dilakukan secara berurutan
 Proses bukan hanya “kode program”, tapi juga termasuk didalamnya :
 Aktifitas saat ini yang merupakan nilai dari “program counter”
 Isi dari register processor
 Program stack
 “Data section” yang berisi variabel global
 Menyimpan status proses, seperti : aktif, wait I/O request dll
Konsep Proses

 Proses adalah entiti aktif, mempunyai program counter yang menunjuk ke


instruksi selanjutnya yang akan dieksekusi

 Dua proses yang merupakan program yang sama mempunyai urutan


eksekusi yang terpisah

 Suatu proses membutuhkan resource untuk menyelesaikan pekerjaannya,


dimana resource tersebut dialokasikan oleh proses pada saat dibuat atau
dieksekusi
Status Proses

 Status dari proses akan berubah pada saat-saat proses dijalankan

 Status dari sebuah proses merupakan suatu keadaan/ aktivitas yang


sedang dilakukan oleh proses itu sendiri.

 Hanya satu proses yang dapat berjalan pada prosesor manapun pada satu
waktu, tetapi banyak proses yang dapat berstatus ready atau waiting
Status Proses
Status Proses

 NEW
 Status yang dimiliki pada saat proses baru saja dibuat

 RUNNING
 Status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi
 Proses bisa dieksekusi karena CPU tidak sedang mengerjakan tugas yang lain

 WAITING
 Status yang dimiliki pada saat proses menunggu suatu event, seperti penyelesaian
I/O atau menerima signal
Status Proses

 READY
 Status yang dimiliki pada saat proses siap dieksekusi oleh processor
 Proses menunggu jatah waktu dari processor

 TERMINATED
 Status yang dimiliki pada saat proses telah selesai dieksekusi
Status Proses
Apabila proses sedang berstatus running, maka Ada 3 kemungkinan yang akan
terjadi:

1. Jika program telah selesai dieksekusi


Maka status proses berubah menjadi TERMINATED

2. Jika waktu yang disediakan oleh OS untuk proses tersebut habis


maka akan terjadi interrupt dan proses berstatus READY

3. Jika suatu event terjadi pada saat proses dieksekusi (seperti ada request I/O)
maka proses tersebut akan menunggu event tersebut dan proses berstatus
WAITING
Process Control Block (PCB)
 Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process
Control Block) yang memuat informasi tentang proses tersebut.

 PCB memuat informasi yang diperlukan sistem operasi untuk mengendalikan


dan koordinasi proses yang aktif.

 Pada saat proses sedang berlangsung, informasi proses tersebut antara lain:
 Identifier
 State
 Priority
 Program counter
 Memory pointers
 Context data
 I/O status information
 Accounting information
Process Control Block (PCB)

 PCB hanya berfungsi sebagai tempat penyimpanan


informasi yang dapat bervariasi dari proses satu
dengan proses yang lainnya
Process Control Block (PCB)
Penjelasan Informasi yang terdapat di PCB

 Status Proses
 Status yang mungkin dimiliki oleh setiap proses : new, ready, running, waiting, terminated

 Program Counter
 Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tersebut

 CPU Register
 Accumulator, register index, stack pointer, dan register serbaguna

 Informasi Penjadwalan CPU


 Berisi prioritas dari proses, pointer ke antrian penjadwalan, parameter penjadwalan
lainnya
Konsep Penjadwalan
Konsep Penjadwalan

 Konsep dari Multiprogramming :


 Suatu proses akan menggunakan CPU sampai proses tersebut dalam status
“wait” (misal : meminta I/O) selesai
 Pada saat “wait”, CPU akan menganggur, untuk mengatasi hal ini maka CPU
dialihkan ke proses lain yang berstatus “ready”

 Tujuan dari Multiprogramming adalah :


 Untuk memaksimalkan penggunaan CPU dengan cara mengatur alokasi waktu
yang digunakan oleh CPU untuk memperkecil waktu idle
Konsep Penjadwalan
Penjadwalan

1. Queue Scheduling
2. Schedulers
3. Context switch
1. Queue Scheduling

 Queue Scheduling diklasifikasikan dalam 3 kategori :

 Job Queue
 Antrian berisi semua proses yang masuk dalam sistem
 Ready Queue
 Proses yang berada pada memori utama, siap dan menunggu untuk dieksekusi
 Device Queue
 Deretan proses yang sedang menunggu peralatan I/O
 Tiap peralatan I/O memiliki device queue
1. Queue Scheduling

 Setiap antrian disimpan sebagai


linked list dan berisi pointer
awal dan akhir PCB.

 Tiap PCB memiliki suatu


pointer menunjuk ke proses
selanjutnya pada antrian
1. Queue Scheduling

 Proses baru mula-mula diletakkan di ready queue dan menunggu sampai


dipilih untuk dieksekusi (dispatched) CPU

 Ketika proses dialokasikan CPU dan dieksekusi, terjadi satu dari event
berikut :
 Proses meminta I/O dan kemudian ditempatkan pada I/O queue
 Proses membuat sub proses baru dan menunggu diterminasi
 Proses dihapus dari CPU karena diinterrupt dan dikembalikan ke ready queue
1. Queue Scheduling
2. Scheduler

Bagaimana schedulers memilih proses atau program (decision)?

 Ada 3 tipe Scheduler :


 Long Term Scheduler (Job Scheduler)
 Short Term Scheduler (CPU Scheduler)
 Medium Term Scheduler
2. Scheduler

Long Term Scheduler (Job Scheduler)

 Menyeleksi proses-proses mana yang harus dimasukkan ke dalam ready


queue dan membawanya ke memori untuk dieksekusi
 Long Term Scheduler mengeksekusi lebih jarang, dibutuhkan beberapa
menit untuk pembuatan proses baru dalam sistem
 Long Term Scheduler: mengontrol jumlah proses dalam memori (degree
of multiprogramming)
2. Scheduler

Short Term Scheduler (CPU Scheduler)

 Menentukan proses mana yang selanjutnya akan dieksekusi dan


mengalokasikan CPU untuk proses tersebut
 Sort Term Scheduler : lebih sering dipanggil (hanya dalam waktu
milisecond)
 Karena durasi yang pendek antara eksekusi, short Term Scheduler harus
sangat cepat
2. Scheduler

Medium Term Scheduler


 Penjadwal ini akan menguntungkan
untuk memindahkan proses dari
memori → jumlah proses dalam
memori akan berkurang

 Skema Medium Term Scheduler


disebut swapping.
Swapping diperlukan untuk meningkatkan
mutu penggabungan proses (karena
perubahan dalam kebutuhan memori yang
mengakibatkan memori harus dibebaskan)
3. Context Switch

Pada saat CPU beralih ke proses lain, sistem harus menyimpan state dari
proses lama dan mengambil state dari proses yang baru.Pekerjaan ini disebut
Context Switch
3. Context Switch
3. Context Switch
 Context Switch sebuah proses direpresentasikan dalam PCB dari suatu proses :
nilai dari CPU register, status proses, informasi manajemen memori

 Ketika context switch terjadi, kernel menyimpan konteks dari proses lama
kedalam PCB nya dan mengisi konteks yang telah disimpan dari process baru
yang telah terjadual untuk berjalan. Pergantian waktu konteks adalah murni
overhead, karena sistem melakukan pekerjaan yang tidak perlu.

 Waktu context switch mempunyai kecepatan bervariasi (biasanya berkisar 1 –


1000 ms) tergantung:
 Kecepatan memori
 Jumlah register yang dicopy
 Ada atau tidaknya instruksi khusus (misal : instruksi tunggal untuk mengisi atau
menyimpan seluruh register)
Operasi Proses
Operasi Proses

 Penciptaan proses
 Terminasi proses
 Penundaan proses
 Pelanjutan kembali proses
 Pengubahan prioritas proses
 Memblock proses
 Membangkitkan proses
 Menjadwalkan proses
 Komunikasi proses
Operasi Proses

1. Pembuatan Proses

Aktifitas yang berkenaan dengan pembuatan proses:


 Memberi identitas (nama) pada proses yang dibuat
 Menyisipkan proses pada list proses atau tabel proses
 Menentukan prioritas awal proses
 Membuat/menciptakan PCB
 Mengalokasikan sumber daya (resource) awal bagi proses
Operasi Proses
2. Penghentian Proses
 Pada saat proses berhenti, proses akan mengembalikan semua data ke
parent proses, dan proses dihapus dari sistem, dilanjutkan dengan
menghapus PCB

 Alasan yang menyebabkan proses dihentikan:


 Selesainya proses secara normal
 Proses berjalan melewati batas waktu yang telah ditentukan
 Memori tidak tersedia
 Pelanggaran terhadap batas memori
 Terjadi kesalahan perhitungan (misal :pembagian dengan 0)
 Proses menunggu terlalu lama
 Terjadi kegagalan I/O (misal : tidak menemukan file)
Hubungan Antar Proses

1. Proses Kooperatif

 Proses yang bersifat simultan (concurrent) dijalankan pada sistem operasi


dapat dibedakan menjadi yaitu proses independent dan proses kooperatif.
 Proses Independen: Suatu proses dikatakan independen apabila proses tersebut
tidak dapat terpengaruh atau dipengaruhi oleh proses lain yang sedang dijalankan
pada sistem.
 Proses kooperatif : proses yang dapat dipengaruhi atau pun terpengaruhi oleh
proses lain yang sedang dijalankan dalam sistem. Dengan kata lain, proses
dikatakan kooperatif bila proses dapat membagi datanya dengan proses lain.
Hubungan Antar Proses

1. Proses Kooperatif
 Syarat terjadinya proses kooperatif:
 Pembagian informasi: apabila beberapa pengguna dapat tertarik pada bagian
informasi yang sama (sebagai contoh, sebuah berkas bersama)
 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.
 Modularitas: 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.
Hubungan Antar Proses

2. Sistem Penyampaian Pesan


 Cara lain untuk meningkatkan efek yang sama adalah untuk sistem operasi
yaitu untuk menyediakan alat-alat proses kooperatif untuk berkomunikasi
dengan yang lain lewat sebuah komunikasi dalam proses (IPC = Inter-
Process Communication).
 IPC menyediakan sebuah mekanisme untuk mengizinkan proses-proses
untuk berkomunikasi dan menyelaraskan aksi-aksi mereka tanpa berbagi
ruang alamat yang sama.
 IPC adalah khusus digunakan dalam sebuah lingkungan yang terdistribusi
dimana proses komunikasi tersebut mungkin saja tetap ada dalam
komputer-komputer yang berbeda yang tersambung dalam sebuah
jaringan.
Hubungan Antar Proses
3. Sinkronisasi
 Komunikasi antara proses membutuhkan place by calls untuk mengirim dan
menerima data primitive. Terdapat rancangan yang berbeda-beda dalam
implementasi setiap data 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.
Hubungan Antar Proses
4. Buffering
 Komunikasi itu langsung atau tak langsung, penukaran pesan oleh proses memerlukan
antrian sementara. Ada 3 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.
Multithreading
Multithreading
 Multithreading merupakan kemampuan OS untuk mendukung multiple dan
eksekusi secara concurrency di dalam suatu single process.
 Thread seringkali disebut sebagai lightweight process.
 Dengan bahasa yang lebih sederhana, Thread merupakan bagian dari
process.
 Dimana process memiliki alokasi resource sendiri dan sedangkan Thread
tidak.
 Thread saling berbagi bagian program, bagian data dan sumber daya sistem
operasi dengan thread lain yang mengacu pada proses yang sama.
 Thread terdiri atas ID thread, program counter, himpunan register, dan
stack. Dengan banyak kontrol thread proses dapat melakukan lebih dari
satu pekerjaan pada waktu yang sama.
Thread dan Process
Thread dan Process
Thread dan Process

 Di dalam process, dapat


terdiri dari satu atau lebih
Thread, dimana masing-
masing Thread :
 Thread memiliki execution
state.
 Access shared memory
dan resource yang dimiliki
oleh process, dan berbagi
dengan Thread yang lainya.
Thread dan Process

 Pembentukan Thread membutuhkan waktu yang lebih sedikit daripada


pembentukan process.
 Membutuhkan waktu yang lebih sedikit untuk mengakhiri Thread daripada
process.
 Lebih mudah dan cepat untuk melakukan switch antar Thread daripada
switch antar process.
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/ panjang. 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.
Thread

Keuntungan
 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.
Thread
2 macam thread:
 User thread:
 Didukung oleh kernel dan diimplementasikan oleh thread library ditingkat pengguna. Library
mendukung untuk pembentukan thread, penjadualan, dan managemen yang tidak didukung
oleh kernel.

 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 user 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. Juga,
di dalam lingkungan multiprosesor, kernel dapat menjadualkan thread dalam prosesor yang
berbeda. Windows NT, Solaris, dan Digital UNIX adalah sistem operasi yang mendukung
kernel thread.
TERIMA KASIH

Anda mungkin juga menyukai