A. Menejemen Proses
Proses itu
apa sih ?
Secara definisi proses adalah program yang sedang dieksekusi.
Pengertian lain mengatakan, proses adalah Unit kerja terkecil yang secara
individu dijadwalkan oleh sistem operasi. Oleh karena itu, SO mengelola semua
proses di sistem dan mengalokasikan sumber daya ke proses-proses sesuai dengan
kebijaksanaan untuk memenuhi sasaran sistem.
- Hal hal yang berkaitan dengan proses. Ada 3 yakni
1. Multiprogramming
atau biasa dikenal dengan Multitasking
Merupakan
manajemen banyak proses dalam 1 pemroses. Disini, banyak proses akan
dikjalankan secara bersama-sama, setiap prosesnya mendapat bagian memori dan
kendali sendiri.
Program yang
dijalankan bersifat independen, yang artinya proses berjalan secara terpisah
dan tidak saling mempengaruhi. Dan pada satu waktu, pemroses hanya melayani
satu proses. Dan karena perpindahan dari satu proses ke proses yang lain
membutuhkan waktu yangrelatif singkat, sehingga pemakai menganggap sedang
terjadi proses yang paralel.
2. Multiprocessing
Merupakan
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
3. Distribute
processing
Merupakan
manajemen banyak proses yang dieksekusi di banyak sistem komputer yang tersebar
(terdistribusi).
- Mengapa proses perlu dikelola?
Karena
system operasi mengemban tugas dan fungsi-fungsi yang kompleks dalam mengelola
seluruh sumber daya yang dibutuhkan untuk kepentingan user (manusia) yang
berupa proses-proses, oleh karena itu maka system operasi memerlukan
pengelolaan proses supaya proses bisa berjalan seperti yang diharapkan dan
diperintahkan oleh user.
- Proses yang bagaimana yang perlu dikelola?
Seluruh
proses pada dasarnya perlu dikelola namun yang paling membutuhkan pengelolaan
adalah multitasking atau menjalankan sejumlah program secara bersama-sama.
Karena multitasking akan membutuhkan pengalokasian sumber daya yang baik dan
sumber daya tersebut harus dikembalikan supaya bias dipakai oleh proses yang
lain.
- Contoh proses.
Misal ada
sebuah file yang dihapus, maka prosesnya yaitu inputan meneruskan instruksi
dari user ke prosesor lalu prosesor mengambil informasi file pada disk melalui
memory dan prosesor menghapus file beserta informasinya tersebut.
- Bagaimana proses-proses saling berkomunikasi?
Pertama,
setiap proses harus mempunyai namanya sendiri yang unik beserta alamatnya. Yang
kedua, ditentukan siap pengirim pesan dan siapa penerima. Maka setelah keduanya
ada antara satu proses dengan proses yang lain bisa berkomunikasi.
> Send (message) – mengirim sebuah pesan ke proses
> Receive (Q, message) – menerima sebuah pesan dari proses Q.
- Apa yang dimaksud “create process” dan “destroyed proses” dan kapan terjadinya?
<> Create dan
destroyed process adalah operasi-operasi dasar dari system operasi yang dimana
:
1. Create
process (penciptaan proses) mengikutsertakan banyak aktifitas, seperti :
> Menamai
proses / member identitas proses
> Menyisipkan
proses pada senarai proses atau table proses
> Menentukan
prioritas awal proses
> Menciptakan
PCB
> Mengalokasikan
sumber daya awal bagi proses
Create
process akan terjadi bila system operasi akan melakukan hal-hal berikut :
> Pada
lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job)
> Pada
lingkungan interaktif, ketika pemakai baru berusaha logon
> Sebagai
tanggapan suatu aplikasi, seperti permintaan pencetakan file, sistem operasi
dapat menciptakan
proses yang akan mengelola pencetakan itu
> Proses
menciptakan proses lain (proses anak). Proses yang menciptakan proses disebut
proses induk
(parent process). Proses anak-pun kembali dapat menciptakan
proses-proses anak. Proses-proses
dapat membentuk pohon hirarki proses
2. Destroyed
process (penghancuran proses) menyebabkan beberapa keadaan, seperti :
> Sumber
daya-sumber daya yang dipakai dikembalikan .
> Proses
dihancurkan dari senarai atau tabel sistem
> PCB
dihapus (ruang memori PCB dikembalikan ke pool memori bebas )
Destroyed
process akan terjadi pada beberapa kejadian seperti berikut :
Selesainya proses secara normal
|
Proses mengeksekusi panggilan layanan So untuk
menandakan bahwa proses telah berjalan secara lengkap.
|
Batas waktu telah terlewati
|
Proses telah berjalan melebihi batas waktu total
yang dispesifikasikan. Terdapat banyak kemungkinan untuk tipe waktu yang
diukur, termasuk waktu total yang dijalani (“walk clock time”) jumlah waktu
yang dipakai untuk eksekusi, dan jumlah waktu sejak pemakai terakhir kali
memberi masukan (pada proses interaktif) .
|
Memori tidak tersedia
|
Proses memerlukan memori lebih banyak daripada
yang dapat disediakan oleh sistem.
|
Pelanggaran terhadap batas memori
|
Proses memcoba mengakses lokasi memori yang
tidak diijinkan untuk diakses
|
Terjadi kesalahan karena pelanggaran proteksi
|
Proses berusaha menggunakan sumber daya atau
file yang tidak diijinkan dipakainya, atau proses mencoba menggunakannya
tidak untuk peruntukannya, seperti menulis file read only
|
Terjadi kesalahan aritmatika
|
Proses mencoba perhitungan terlarang, seperti
pembagian dengan nol, atau mencoba menyimpan angka yang lebih besar daripada
yang ddapat diakomodasi oleh H/W
|
Waktu telah kadaluwarsa
|
Proses telah menunggu lebih lama daripada maksimum
yang telah ditentukan untuk terjadinya suatu kejadian spesfiik
|
Terjadi kegagalan masukan/keluaran
|
Kesalahan muncul pada masukan atau keluaran,
seprti ketidakmampuan menemukan file, kegagalan membaca atau mennulis setelah
sejumlah maksimum percobaan yang ditentukan (misalnya area rusak didapatkan
pada tape,atau operasi tidak valid seperti membaca dari line printer)
|
Intruksi yang tidak benar
|
Proses berusaha mengeksekusi instruksi yang
tidak ada (sering sebagi akibat pencabangan ke daerah data dan berusaha
mengeksekusi data tersebut)
|
Terjadi usaha memakai instruksi yang tidak
diijinkan
|
Proses berusaha mengeksekusi instruksi yang
disimpan untuk So
|
Kesalahan penggunaan data
|
Bagian data adalah tipe yang salah atau tidak
diinisialisasi
|
Diintervensi oleh SO atau operator
|
Untuk suatu alasan, operator atau sistem operasi
mengakhiri proses (misalnya terjadi deadlock)
|
Berakhirnya proses induk
|
Ketika parent berakhir. So mungkin dirancannng
secara otomatis mengakhiri semua anak proses dari parent itu
|
Atas permintaan proses induk
|
Parent process biasanya mempunyai otoritas
mengakhiri suatu anak proses
|
- Jelaskan proses dan thread
Proses :
Proses
merupakan sebuah program yang mengeksekusi thread tunggal. Kendali thread
tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu
waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan
agar memungkinkan sebuah proses untuk mengeksekusi multi-threads. Umpamanya,
secara bersamaan mengetik dan
menjalankan pemeriksaan ejaan didalam proses yang sama.
menjalankan pemeriksaan ejaan didalam proses yang sama.
Thread :
Thread
merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program
counter, register set, dan stack. Sebuah thread berbagi code section, data
section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh
proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses
tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi
sebagai pengendali. Perbedaannya ialah proses dengan thread yang banyak –
mengerjakan lebih dari satu tugas pada satu satuan waktu.
Penjadwalan
proses
B. Penjadwalan
Dalam
pengelolaan proses bisnis, proses yang sudah baik, sumber daya yang tepat,
input yang baik, tujuan yang jelas tidak serta merta menghasilkan apa yang
diharapkan. Proses bisnis yang baik akan menentukan proses (baca: tugas atau
pekerjaan) apa saja yang harus dilakukan oleh unit tertentu. Katakanlah sumber
daya dalam unit tersebut pun sudah memenuhi kualifikasi yang sesuai. Mungkin
saja terjadi bahwa suatu waktu tertentu pekerjaan yang dibebankan kepada
unit-unit tidak merata atau unit tidak memiliki kemampuan mengatur prioritas
pekerjaannya sehingga bisa jadi ada pekerjaan yang terlambat diselesaikan, atau
ada keluhan soal waktu menunggu yang cukup lama. Situasi semacam inilah yang
menyebabkan kita perlu untuk mempelajari penjadwalan.
Penjadwalan
pada prinsipnya terjadi baik untuk perioda yang panjang (misalnya tahunan)
ataupun periode yang lebih pendek (misalnya harian atau periode jam).
Penjadwalan yang dimaksudkan di sini adalah penjadwalan jangka pendek. mengapa
demikian? karena penjadwalan jangka panjang biasanya dibahas dengan pendekatan
lain seperti manajemen projek. Kalau pun penjadwalan jangka panjang tadi bukan
bersifat projek, yaitu seperti kegiatan rutin tahunan, maka pendekatan
penjadwalan jangka pendek ini pun dapat kita terapkan pada kasus tersebut.
- Ada beberapa hal penting yang sifatnya strategis dapat kita raih jika melakukan penjadwalan dengan baik:
> Penjadwalan yang baik membuat organisasi dapat menggunakan asset atau sumber
dayanya dengan lebih efisien dan berefek positif juga pada pencapaian tujuannya
(efektif). Dengan kata lain utilisasi sumber dayanya akan lebih baik karena
sejak awal organisasi dapat mengetahui kapan dan berapa besar kapasitasnya yang
masih idle. Hal ini menyebabkan kapasitas organisasi menjadi “lebih
besar”. Dengan output yang lebih banyak, sementara sumber dayanya sama, maka
biaya per unit akan menjadi lebih kecil. Organisasi akan meraih aspek cheaper.
> Kapasitas
yang seolah bertambah juga memungkinkan organisasi untuk lebih fleksibel dalam
memenuhi kebutuhan pelanggan atau digunakan untuk mempercepat proses
penyampaian (delivery). Bagi pelanggan kemampuan seperti ini dapat berarti
layanan yang lebih baik (Better dan atau Faster).
> Penjadwalan yang baik juga berdampak pada kepastian penyelesaian pesanan. Janji
yang diberikan pada saat pemesanan akan dapat dipenuhi jika proses bisnisnya
sesuai dengan jadwal. Hal ini berarti layanan organisasi dapat diandalkan (dependable).
1. Jelaskan
kriteria-kriteria penjadwalan
- Ada tujuh criteria penjadwalan proses pada system operasi, yaitu sebagai berikut :
a. CPU
Utilization . Kita ingin menjaga CPU sesibuk mungkin. CPU
utilization akan mempunyai range
dari 0 sampai 100 persen. Di
sistem yang sebenarnya ia mempunyai range dari 40 sampai 100 persen.
b. Throughput . Salah
satu ukuran kerja adalah banyaknya proses yang diselesaikan per satuan waktu.
Jika kita mempunyai beberapa proses yang sama dan memiliki beberapa algoritma
penjadwalan yang
berbeda,throughput bisa menjadi salah satu kriteria
penilaian, dimana algoritma yang menyelesaikan
proses terbanyak mungkin yang
terbaik.
c. Turnaround
Time . Dari sudut pandang proses tertentu, kriteria yang penting
adalah berapa lama untuk
mengeksekusi proses tersebut. Memang, lama
pengeksekusian sebuah proses sangat tergantung dari
hardware yang dipakai,
namun kontribusi algoritma penjadwalan tetap ada dalam lama waktu yang
dipakai
untuk menyelesaikan sebuah proses. Misal kita memiliki sistem komputer yang
identik dan
proses-proses yang identik pula, namun kita memakai algoritma yang
berbeda, algoritma yang mampu
menyelesaikan proses yang sama dengan waktu yang
lebih singkat mungkin lebih baik dari algoritma
yang lain. Interval waktu yang
diijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah
proses
disebut turnaround time. Turnaround time adalah jumlah periode
untuk menunggu untuk dapat
ke memori, menunggu di ready queue, eksekusi
CPU, dan melakukan operasi M/K.
d. Waiting
Time . Algoritma penjadwalan CPU tidak mempengaruhi waktu untuk
melaksanakan proses
tersebut atau M/K, itu hanya mempengaruhi jumlah waktu yang
dibutuhkan proses di antrian ready.
waiting timeadalah jumlah waktu
yang dibutuhkan proses di antrianready.
e. Response
Time . Di sistem yang interaktif, turnaround time mungkin
bukan waktu yang terbaik untuk
kriteria. Sering sebuah proses dapat memproduksi output di
awal, dan dapat meneruskan hasil yang
baru sementara hasil yang sebelumnya
telah diberikan ke pengguna. Ukuran lain adalah waktu dari
pengiriman
permintaan sampai respon yang pertama diberikan. Ini disebut response time,
yaitu waktu
untuk memulai memberikan respon, tetapi bukan waktu yang dipakai output untuk
respon tersebut.
f. Fairness . Suatu
algoritma harus memperhatikan pengawasan nilai prioritas dari suatu proses
(menghindari terjadinya starvation CPU time).
g. Efisiensi. Rendahnya overhead dalam context
switching, penghitungan prioritas dan sebagainya menentukan apakah suatu
algoritma efisien atau tidak.
2. Berikan
contoh penjadwalan pre emtive dan non pre emtive
> Contoh
Penjadwalan Preemptive
Penjadwalan
CPU yang dijalankan ketika proses dalam keadaan:
· Berubah
dari running ke waiting state.
· Berubah
dari running ke ready state.
· Berubah
dari waiting ke ready state.
> Contoh
Penjadwalan Non-Preemptive
Penjadwalan Non
Preemptive terjadi ketika proses hanya:
· Berjalan
dari running state sampai waiting state.
· Dihentikan.
3. Tuliskan
algoritmanya masing-masing
- Algoritma ini dapat dibagi menjadi dua bagian yaitu :
a. Preemptive
Penjadwalan
Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan
sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang
prioritasnya lebih tinggi. Jika ada proses yang sedang dieksekusi oleh CPU dan
terdapat proses di ready queue dengan burst time yang lebih kecil daripada
proses yang sedang dieksekusi tersebut, maka proses yang sedang dieksekusi oleh
CPU akan digantikan oleh proses yang berada di ready queue tersebut. Preemptive
SJF sering disebut juga Shortest-Remaining- Time-First scheduling.
b. Non-Preemptive
Penjadwalan
Non Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak
pernah melakukan context switch dari proses yang sedang berjalan ke proses yang
lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt.
CPU tidak memperbolehkan proses yang ada di ready queue untuk menggeser proses
yang sedang dieksekusi oleh CPU meskipun proses yang baru tersebut mempunyai
burst time yang lebih kecil.
4. Bandingkan
kelebihan dan kekurangan masing-masing algoritmanya!
Ada beberapa
kelebihan dari algoritma diatas yaitu:
a. Berikut
adalah kelebihan algoritma preemptive
> Penyelesaian
proses akan lebih efektif, mengingat proses yang perlu diselesaikan terlebih
dahulu akan
selesai dahulu
b. Berikut
adalah kelebihan algoritma non-preemptive
>Akan
lebih cepat menyelesaikan suatu proses, soalnya memory tidak terganggu oleh proses
yang lain.
- Ada beberapa kekurangan dari algoritma diatas yaitu:
c. Berikut
adalah kekurangan algoritma preemptive
> Susahnya
untuk memprediksi burst time (lama eksekusi) proses yang akan dieksekusi
selanjutnya.
> Proses
yang mempunyai burst time yang besar akan memiliki waiting time yang besar pula
karena yang
dieksekusi terlebih dahulu adalah proses dengan burst time yang
lebih kecil.
d. Berikut
adalah kekurangan algoritma non-preemptive
>Tidak
bisa mendahulukan proses lain yang lebih penting didahulukan
5. Bagaimana
prosesor menjadwalkan proses yang ditunda tanpa mengulang dari awal.
Jika ada
proses yang sedang dieksekusi oleh CPU dan terdapat proses di ready queue
dengan burst time yang lebih kecil daripada proses yang sedang dieksekusi
tersebut, maka proses yang sedang dieksekusi oleh CPU akan digantikan oleh
proses yang berada di ready queue tersebut. Pemilihan burst time ini sendiri
dilakukan oleh modul Dispatcher yang memberikan kntrol pada CPU terhadap proses
yang dipilih dengan short-term scheduling.
DAFTAR PUSTAKA :
http://iwansantosa.files.wordpress.com/2009/04/presentasi-manajemen-proses.ppt
http://warni-myupload.blogspot.com/2012/10/manajemen-proses-penjadwalan-konkurensi.html
http://langitcool.blogspot.com/2008/11/manajemen-proses-sistem-operasi.html
http://yayangarya-blog.blogspot.com/2009/11/manajemen-proses-diagram-keadaan-dan.html