Anda di halaman 1dari 8

NAMA KELOMPOK : KELOMPOK 2

NAMA ANGGOTA : 1. Cipta Nugraha


2. Umi
3. Mila
4. Rina
5. Ronaldo
MULTIPROGRAMMING

Multiprogramming Melayani banyak program yang tidak ada


hubungannya satu sama lain dan dijalankan sekaligus dalam satu
komputer yang sama.

Melayani banyak program yang tidak ada hubungannya satu sama


lain dan dijalankan sekaligus dalam satu komputer yang sama.
Pelaksanaan instruksi yang diterapkan adalah:
- program dimuat ke dalam memori,
- program dijalankan sampai mengakses perangkat I/O,
- berpindah (switch) ke pekerjaan lain,
- langkah tersebut berulang terus menerus,
- untuk proses perpindahan (switching), dilaksanakan oleh software

A. Status Proses Dalam Multiprogramming.

Meskipun setiap proses merupakan Entitiy yang berdiri sendiri, dan


masing-masing memiliki program Counter dan status internal,
beberapa proses sering kali harus berinteraksi dengan proses yang
lain. Keluaran dari suatu proses dapat menjadi masukan bagi proses
yang lain. Jika proses yang sedang menunggu masukan tidak
menemukan masukan yang dikehendaki, proses tersebut diblok
sampai masukan tersedia.
Pada saat proses diblok, secara logika proses tersebut tidak dapat
dilanjutkan karena menuggu masukan yang belum tersedia. Dapat
terjadi bahwa proses yang Ready dan dapat di-run terpaksa harus
dihentikan karena sistem operasi arus mengalokasikan CPU ke
proses lain untuk sementara waktu.
Proses dapat berada pada status berikut:

1) Submitt:
Proses baru saja dikirimkan oleh user dan masih menunggu untuk
dilayani.
2) Running:
Proses benar-benar menggunakan CPU pada saat itu.
3) Ready:
Proses berhenti sementara untuk memberikan kesempatan pada
proses lain untuk menggunakan CPU.
4) Blocked:
Proses tidak dapat di-Run sampai terjadi kejadian eksternal yang
sesuai (misalkan selesainya operasi input/output atau telah
tersedianya data input).
5) Finished:
Proses telah dilaksanakan secara sempurna.

Di antara status Running, Ready dan Blocked, hanya terdapat 4


kemungkinan perubahan status, yaitu:
1) Running ke Blocked:
Terjadi jika proses diblok, karena menunggu masukan atau
menunggu selesainya aktivitas I/O.
2) Running ke Ready:
Terjadi jika Process Scheduler menghentikan proses yang sedang
running untuk memberikan kesempatan pada proses lain
menggunakan CPU.
3) Blocked ke Ready:
Terjadi jika ada kejadian eksternal yang menyebabkan proses dapat
dijalankan kembali. Misalnya datangnya input atau selesainya suatu
aktifitas I/O.
4) Ready ke Running:
Terjadi jika proses siap untuk menggunakan CPU dan masukan yang
sesuai untuk proses tersebut telah tiba.

B. Penjadwalan Proses (CPU) Dalam Multiprogramming.

Penjadwalan CPU berhubungan dengan masalah penentuan proses


dalam antrian yang akan diberikan CPU. Terdapat beberapa
algoritma penjadwalan yang dapat digunakan, masing-masing
dengan sifat-sifat khasnya sendiri. Dalam memilih algoritma yang
akan dipakai dapat digunakan bermacam kriteria untuk
membandingkan suatu algoritma dengan algoritma yang lain.
Kriteria yang digunakan dalam perbandingan dapat menyebabkan
perbedaan dalam penentuan algoritma yang akan dipilih. Kriteria-
kriteria tersebut meliputi:
1) Pemanfaatan CPU.
Biaya CPU yang mahal menuntut pemakai untuk selalu memberikan
pekerjaan kepada CPU sehingga kalau dimungkinkan maka dibuat
kondisi yang sedemikian rupa dimana CPU tidak memiliki waktu
luang. Dalam sistem susungguhnya, pemanfaatan CPU berkisar
antara 40% sampai 90%.

2) Throughput.
Untuk mengukur beban pekerjaan CPU, salah satu cara adalah
dengan menghitung jumlah job yang diselesaikan setiap satuan
waktu tertentu, yang disebut Throughput. Untuk job yang lama,
kecepatannya mungkin satu job per jam, sedangkan untuk transaksi
pendek dapat mencapai 10 job per detik.

3) Turnaround Time.
Dari sudut pandang suatu job, mungkin yang paling penting adalah
lamanya waktu penyelesaian job itu. Selang waktu dari saat
penyerahan job sampai waktu penyelesaian disebut Turnaround
Time, yang meliputi juga waktu tunggu untuk memasuki memori,
waktu tunggu di antrian, pengerjaan di CPU, dan pelaksanaan proses
I/O.

4) Waiting Time (Waktu Tunggu).


Sebagai alternatif Turnaround Time, dapat digunakan Waktu Tunggu
di antrian untuk setiap job. Waktu Tunggu ini tidak termasuk waktu
pelaksanaan tugas I/O.

5) Response Time (Waktu Tanggap).


Seringkali suatu proses dapat mengeluarkan hasil yang relatif lebih
cepat daripada waktu penyelesaian proses tersebut. Bersamaan
dengan pengeluaran itu, proses tersebut dapat melanjutkan
perhitungan hasil baru selanjutnya. Waktu yang dihitung sejak mulai
dari penyerahan suatu permintaan sampai respons (tanggapan)
pertama diperoleh pemakai tersebut Response Time.
Lima buah algoritma yang akan ditelaah untuk penjadwalan CPU,
antara lain:

1) First Come First Serve (FCFS).


Algoritma ini merupakan algoritma yang paling sederhana. Proses
yang meminta CPU lebih dulu akan dilayani CPU lebih dahulu pula.
Implementasi FCFS mudah diatur dengan antrian FIFO (First In First
Out). Ketika proses memasuki antrian, proses ini disambungkan
dengan ekor dari antrian dan menjadi ekor yang baru. Jika CPU
sedang bebas tugas, maka CPU akan dialokasikan untuk proses
yang berada di awal antrian. Proses tersebut lalu dikeluarkakn dari
antrian.
2) Shortest Job First (SJF).
Shortest Job First menelaah setiap job berdasarkan lamanya waktu
CPU untuk pengerjaan proses berikutnya. Ketika CPU siap dipakai,
maka akan diberikan kepada job yang memiliki waktu pengerjaan
paling sedikit. Jikaa dua job mempunyai waktu pengerjaan yang
sama, FCFS digunakan, berarti yang datang lebih dulu akan dilayani.
Shortest Job First telah terbukti optimal dalam hal perolehan waktu
tunggu rata-rata yang paling minimum dari beberapa job. Keadaan ini
dicapai dengan memindahkan job pendek dalam antrian sebelum job
yang panjang sehingga mengurangi waktu tunggu job pendek lebih
banyak daripada penambahan waktu tunggu dari job panjang.
Kesulitan dengan Shortest Job First adalah dalam hal yang berkaitan
dengan penentuan lamanya pengerjaan job yang masuk berikutnya.
Salah satu cara yaitu dengan mendorong pemilik job (tertama untuk
job panjang) agar memperkirakan lamanya waktu yang dibutuhkan
untuk menyelesaikan jobnya.

3) Shortest Remaining Time First (SRTF).


Algortima penjadwalan ini hampir serupa dengan Shortest Job First,
tetapi berbeda dalam hal penambahan metode penundaan job.
Dalam SJF job yang sudah masuk ke dalam CPU jika ada job dalam
antrian yang memiliki waktu penyelesaian yang lebih kecil.
Algoritma SRTF adalah algoritma Preemptive, yaitu algoritma dimana
job-job yang sedang dijalankan secara logik dapat ditunda untuk
sementara waktu untuk memberikan kesempatan waktu CPU kepada
job-job lainnya. Jadi, dari luar sistem job-job tersebut tampak seolah-
seolah sedang dikerjakan bersama-sama.

4) Round Robin.
Algoritma Penjadwalan Round Robin sebetulnya dirancang untuk
sistem Time-sharing, dimana job-job diberikan satuan waktu yang
sama, disebut Time Quantum ini berkisar antara 10 sampai 100
milidetik. Queue (Antrian) dibuat secara sirkular kemudian skeduler
akan mengelilingi antrian ini sambil mengalokasikan CPU kepada
setiap proses/job selama waktu quantum tadi.
Implementasi penjadwalan Round Robin dilakukan dengan antrian
FIFO. Job baru ditambahkan ke ekor antrian. Job di kepala antrian
dikirim ke CPU, setelah itu ada dua kemungikinan, waktu proses job
kurang dari waktu quantum, ataupun lebih dari waktu quantum.
Dalam kemungkinan pertama, job sendiri yang meninggalkan CPU
sebelum waktunya habis. Sedangkan kemungkinan kedua, job akan
dikeluarkan oleh sistem operasi dari CPU dan diletakkan di akhir
(ekor) antrian.

5) Preemptive Priority.
Harus diperhatikan bahwa penjadwalan selalu dikelola dengan
prioritas, baik rendah ataupun tinggi. Job dengan prioritas yang sama
ada dalam penjadwalan FCFS. Algoritma penjadwalan Shortest Job
First adalah bentuk khusus dari penjadwalan Prioritas yang umum
karena SJF dapat dijalankan dengan prioritas menurut nilai yang
dihitung dari kebalikan (perkirakan) waktu penyelesaian job.
Prioritas-prioritas biasanya dalam bentuk bilangan yang telah
ditetapkan sebelumnya. Walaupun demikian masih belum ada
kesepakatan apakah suatu angka kecil memang menunjukkan
prioritas yang rendah. Prioritas dapat dihitung baik secara ienternal
maupun eksternal. Prioritas yang terdefinisi secara internal
menggunakan ukuran kuantitas, seperti batas waktu, kebutuhan
memori, jumlah file yang dibukanya, ataupun perbandingan antara
waktu I/O dengan waktu CPU, dan lain-lain. Prioritas eksternal
ditentukan oleh kriteria di luar sistem operasi, misalnya jumlah iuran
yang dibayar untuk pemakaian komputer, bagian yang mensponsori
kerja, bahkan mungkin saja faktor-faktor politis juga.
Masalah utama dengan algoritma penjadwalan Prioritas adalah
penahanan (blocking) takterbatas atau lebih dikenal starvation.
Starvation muncul jika suatu job telah siap untuk dijalankan (sedang
menunggu CPU) tetapi tidak pernah diberi kesempatan untuk
menyelesaikan jobnya karena prioritasnya rendah. Pemecahan
masalah ini adalah Aging (untuk selanjutnya disebut pemetaan).
Pemetaan adalah teknik yang menaikkan secara berkala prioritas job
yang sudah lama menunggu di dalam sistem. Misalnya untuk kisaran
prioritas antara 0 (rendah) sampai 127 (tinggi), prioritas job yang
menuggu dapat dinaikkan 1 setiap 15 menit . Sehingga walaupun
prioritas job semula adalah 0, namun suatu saat mampu pula
mencapai prioritas tertinggi dan akhirnya dijalankan oleh CPU.
Walaupun sesungguhnya suatu sistem dapat memiliki beberapa buah
CPU, dalam pembahasan selanjutnya untuk penyederhanaan hanya
akan disediakan satu CPU untuk pengerjaan beberapa job.
Multiprocessor/Paralel System

Komputer ini memiliki lebih dari satu processor. Akibatnya


meningkatkan jumlah suatu proses yang dapat diselesaikan dalam
satu unit waktu (pertambahan throughput ). Perlu diingat hal ini tidak
berarti daya komputasinya menjadi meningkat sejumlah prosesornya.
Yang meningkat adalah jumlah pekerjaan yang bisa dilakukannya
dalam waktu tertentu.
Uang yang terpakai lebih sedikit karena prosesor -prosesor terdapat
dalam satu komputer dan dapat membagi peripheral(ekonomis)
seperti disk dan catu daya listrik.
Jika satu processor mengalami suatu gangguan, maka proses yang
terjadi masih dapat berjalan dengan baik karena tugas prosesor yang
terganggu diambil alih oleh prosesor lain. Hal ini dikenal dengan
istilah Graceful Degradation . Sistemnya sendiri dikenal bersifat fault
tolerant atau fail-soft system .

Ada dua jenis multiprocessor system yaitu Symmetric


MultiProcessing (SMP) dan Asymmetric MultiProcessing (ASMP).
Dalam SMP setiap prosesor menjalankan salinan identik dari sistem
operasi dan banyak job yang dapat berjalan di suatu waktu tanpa
pengurangan performance. Sementara itu dalam ASMP setiap
prosesor diberikan suatu tugas yang spesifik. Sebuah prosesor
bertindak sebagai Master processor yang bertugas menjadwalkan
dan mengalokasikan pekerjaan pada prosesor lain yang disebut
slave processors . Umumnya ASMP dipake pada sistem yang besar.

Anda mungkin juga menyukai