Anda di halaman 1dari 18

MAKALAH SISTEM

OPERASI

NAMA : MARWAN
NIM : 11.TK.165
JURUSAN : TKJ

DAFTAR ISI
Konsep Proses dan Thread

1. Konsep Dasar Dalam Proses Sistem Operasi

2. Konsep Dasar Thread Dalam Sistem Operasi

3. Keuntungan Proses.........................................................................................................................4
4. Pembentukan Proses

5. Terminasi Proses

6. Procces Control Block....................................................................................................................7

Manajemen Proses
Manajemen Proses Dalam S
7. .........................................................................................................................
8. Komunikasi antar Proses..................................................................................
9. Pembuatan Dan Penghancuran Proses............................................................................................
10.Penjadwalan ProsesY....................................................................................................................
11. Algoritma PenjadwalanY..............................................................................................................
12.YNonpre-emptive, menggunakan Konsep....................................................................................
Y13. Roun Robin(RR)...................................................................................................................
Y14. Short Remaining First(SRF).................................................................................................
Y15. Sort Job First(SJF)................................................................................................................

1. Konsep Dasar Proses dan Thread Dalam Sistem Operasi


Konsep Dasar Proses Dalam Sistem Operasi
Proses dalam sistem operasi adalah suatu bagian dari program yang berada pada status
tertentu dalam rangkaian eksekusinya. Di dalam bahasan Sistem Operasi, kita lebih sering
membahas proses dibandingkan dengan program. Pada Sistem Operasi modern, pada satu
saat tidak seluruh program dimuat dalam memori, tetapi hanya satu bagian saja dari program
tersebut. Sedangkan bagian lain dari program tersebut tetap beristirahat di media penyimpan
disk. Hanya pada saat dibutuhkan saja, bagian dari program tersebut dimuat di memory dan
dieksekusi oleh prosesor. Hal ini akan sangat menghemat pemakaian memori.
Secara informal; proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode
program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas
yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari
daftar prosesor/ processor's register. Suatu proses umumnya juga termasuk process stack,
yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel
lokal) dan sebuah data section, yang berisikan variabel global.
Kami tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu program adalah
satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana
sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang
mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat sumber daya/
resource yang berkenaan dengannya.
Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap
dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan
copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak
copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian
tulisan-text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses
yang menghasilkan banyak proses begitu ia bekerja.
Process State
Status proses selalu berubah-ubah selama suatu program dieksekusi atau dijalankan.
Beberapa status tersebut ialah :
a. New : proses baru diciptakan
b. Running : proses sedang dijalankan
c. Waiting : proses sedang menunggu suatu kondisi tertentu untuk bisa berjalan. (misalkan
menunggu respon dari perangkat I/O)
d. Ready : proses menunggu untuk dilayani processor
e. terminated : proses telah menyelesaikan eksekusi.

Process Control Block (PCB)


Sistem operasi membutuhkan banyak informasi mengenai proses guna pengelolaan proses.
Semua informasi ini ada pada PCB. PCB mengandung beberapa informasi seperti berikut :
1. Process State >> berisi informasi status proses. (new,running,waiting,ready,terminated)
2. Program counter >> berisi informasi mengenai alamat instruksi yang akan digunakan
selanjutnya.
3. CPU register >> berisi register2 CPU apa saja yang digunakan
4. CPU scheduling information >> berisis penjadwalan proses beserta algoritmanya
5. Memory management information >> berisi informasi tentang berapa jumlah memory
yang digunakan, limit register, tabel segment, dll berkenaan dengan penggunaan memory.
6. I/O status information >> berisi informasi tentang perangkat apa saja yang digunakan
dalam proses
7. Accounting >> berisi informasi tentang statistik eksekusi proses seperti waktu yang
diperlukan, jumlah proses, dll.
Konsep Dasar Thread Dalam Sistem Operasi
Thread dalam sistem operasi dapat diartikan sebagai sekumpulan perintah (instruksi) yang
dapat dilaksanakan (dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan
cara time slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau
multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu
sistem).
Ulir sebenarnya mirip dengan proses, tapi cara berbagi sumber daya antara proses dengan ulir
sangat berbeda. Multiplethread dapat dilaksanakan secara sejajar pada sistem komputer.
Secara umum multithreading melakukan time-slicing (sama dengan time-division
multipleks), di mana sebuah CPU bekerja pada ulir yang berbeda, di mana suatu kasus
ditangani tidak sepenuhnya secara serempak, untuk CPU tunggal pada dasarnya benar-benar
melakukan sebuah pekerjaan pada satu waktu.
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.
Program yang dieksekusi :
a.Proses berat (heavyweight) => proses tradisional
b.Proses ringan (lightweight) => THREAD
Thread terdiri dari ID thread, program counter,himpunan register dan stack. Thread dapat
melakukan lebih dari satu pekerjaan pada waktu yang sama (multithreading). Thread bekerja
sama dengan thread lain dalam penggunaan bagian kode, bagian data, dan resource. Dengan
penggunaan thread CPU dapat secara ekstensif di antara peer thread tanpa menggunakan
manajemen memori.
Keuntungan penggunaan thread :
>Tanggap
4

>Pemberdayaan resorce
>Ekonomis
>Pemberdayaan arsitektur multiprocessor
Single thread dan multi thread
1.Single thread >> process hanya mengeksekusi satu thread saja pada satu waktu
2.Multi thread >> process dapat mengeksekusi sejumlah thread dalam satu waktu.
Model Multithread
Sebelumnya, perlu diketahui apa itu user thread dan kernel thread.
User thread >> pengelolaan thread dilakukan oleh user level (pengguna)
Kernel thread >> pengelolaan thread dilakukan oleh kernel komputer User tidak dapat
menginterupsi.
Model-model multithreading :
1. Many to one.
- Beberapa thread user-lever dipetakan ke dalam single kernel thread
- Penggunaannya pada sistem tidak memerlukan dukungan kernel thread
2. One to one
- Setiap user-level thread dipetakan ke kernel thread.
- Contoh : Windows 95/98/NT/2000
3. Many to many
- Membolehkan setiap user-level thread dipetakan ke banyak kernel thread
- Membolehkan sistem operasi membuat sejumlah kernel thread
- Contoh : Windows NT/2000 dengan paket ThreadFiber 10, Solaris 2.
Contoh thread :
- Java Thread, Java threads dikelola oleh JVM dan biasanya dilaksanakan dengan
menggunakan benang model yang disediakan oleh OS. Java threads dapat digunakan untuk
Memperluas kelas Thread dan Pelaksanaan Runnableinterface.

PEMBENTUKAN PROSES
Ada 4 hal yang menyebabkan terbentuknya suatu proses (Process Creation) yaitu :
Inisialisasi sistem ( misal ketika SO di boot)
Eksekusi process creation system call ketika suatu proses dijalankan (process spawning)
proses awal: parent process, proses hasil bentukan (child process) proses awal: parent
process, proses hasil bentukan (child process)
User request / interactive logon
Inisiasi dari batch job ini biasanya terjadi pada SO Mainframe, dimana banyak user mensubmit batch job ( bisa secara remote) dan SO meresponnya dengan meng-inisiasi proses
baru.
5

Sebenarnya eksekusi terhadap process creation system call selalu dilakukan untuk semua
kondisi diatas.
Ada 5 tahapan ketika sebuah proses dibentuk:
1.
2.
3.
4.
5.

Membuat process identifier unik untuk setiap proses baru


Alokasi space (memory)
Inisialisasi keseluruhan PCB
Men-setting link-link yg terkait
Membuat/megembangkan struktur data

TERMINASI PROSES
Ada banyak hal yang menyebabkan suatu proses akan dihentikan (Process Termination)
yaitu :
Normal Completion
Time Limit Exceeded
Memory unavailable
Bound Violation
Protection Error Arithmatic Error
Arithmatic Error
I/O Faillure
Invalid instruction
Privileged instruction
Data Misuse
Intervensi Operator/SO
Terminasi thd parent
Parent request
Ketika proses bekerja, maka proses tersebut merubah state (keadaan statis/ asal) ke state lain.
Status dari sebuah proses (Process States) meliputi: 1.New:Proses sedang dikerjakan/ dibuat.
2.Running:Instruksi/proses sedang dikerjakan. 3.Waiting/Blok:Proses sedang menunggu
sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/O atau penerimaan sebuah
tanda/ signal). tanda/ signal). 4.Ready:Proses sedang menunggu untuk ditugaskan pada
6

sebuah prosesor. 5.Terminated/Exit:Proses telah selesai melaksanakan tugasnya/


mengeksekusi.
Istilah-istilah tersebut adalah arbitrer/ berdasar opini, istilah tersebut bervariasi disepanjang
sistem operasi.
Tiga state yang prinsipil ( dari 5 state ) adalah : Running, Waiting,Ready
Model status proses(Stalling 117)
IlustrasiStatus Proses

Process Control Block


Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block
(PCB) juga disebut sebuah control block. Sebuah PCB berisikan banyak bagian dari
informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk ini:

Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga
banyak lagi.

Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk


dijalankan untuk proses ini.

CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan
komputer. Register tersebut termasuk accumulator, index register, stack pointer, generalpuposes register, ditambah code information pada kondisi apa pun. Besertaan dengan
program counter, keadaan/ status informasi harus disimpan ketika gangguan terjadi,
untuk memungkinkan proses tersebut berjalan/ bekerja dengan benar setelahnya.

Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai
nilai dari dasar dan batas register, tabel page/ halaman, atau tabel segmen tergantung pada
sistem memori yang digunakan oleh sistem operasi.

Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang
digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.

Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada
proses ini, suatu daftar open berkas dan banyak lagi.

PCB hanya berfungsi sebagai tempat menyimpan/ gudang untuk informasi apa pun yang
dapat bervariasi dari prose ke proses.

Process Control Block (PCB)


Sistem operasi membutuhkan banyak informasi mengenai proses guna pengelolaan
7

proses. Semua informasi ini ada pada PCB. PCB mengandung beberapa informasi seperti
berikut :
1. Process State >> berisi informasi status proses. (new,running,waiting,ready,terminated)
2. Program counter >> berisi informasi mengenai alamat instruksi yang akan digunakan
selanjutnya.
3. CPU register >> berisi register2 CPU apa saja yang digunakan
4. CPU scheduling information >> berisis penjadwalan proses beserta algoritmanya
5. Memory management information >> berisi informasi tentang berapa jumlah memory
yang digunakan, limit register, tabel segment, dll berkenaan dengan penggunaan memory.
6. I/O status information >> berisi informasi tentang perangkat apa saja yang digunakan
dalam proses
7. Accounting >> berisi informasi tentang statistik eksekusi proses seperti waktu yang
diperlukan, jumlah proses, dll.

2. Manajemen Proses
Manajemen Proses dalam sistem operasi
Secara umum proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode
program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas
yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari
daftar prosesor/ processors register. Suatu proses umumnya juga termasuk process stack,
yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel
lokal) dan sebuah data section, yang berisikan variabel global. suatu program adalah satu
entitas pasif, seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana
sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang
mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat sumber daya/
resource yang berkenaan dengannya.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen
proses seperti:

Membuat dan menghapus proses pengguna dan sistem proses. Sistem operasi bertugas
mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian
mengambil sumber daya itu kembali setelah proses tersebut selesai agar dapat digunakan
untuk proses lainnya.

Menunda atau melanjutkan proses. Sistem operasi akan mengatur proses apa yang harus
dijalankan terlebih dahulu berdasarkan berdasarkan prioritas dari proses-proses yang ada.
Apa bila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan
mendahulukan proses yang memiliki prioritas paling besar.

Menyediakan mekanisme untuk proses sinkronisasi. Sistem operasi akan mengatur


jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan
terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur
urutan jalannya proses agar setiap proses berjalan dengan lancar
8

Menyediakan mekanisme untuk proses komunikasi. Sistem operasi menyediakan


mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya
berbagi sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya
proses lainnya.

Menyediakan mekanisme untuk penanganan deadlock. Deadlock adalah suatu keadaan


dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa
dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses
lain. Saling menunggu inilah yang disebut deadlock(kebuntuan). Sistem operasi harus
bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jika deadlock terjadi,
sistem operasi juga harus dapat memulihkan kondisi sistemnya.

Beberapa hal yang berhubungan dengan manajemen konsep dalam sistem operasi :
1. Komunikasi antar proses
(Inter Process Communinication / IPC) :

Beberapa proses biasanya berkomunikasi dengan proses lain.

Contohnya pada shell pipe line : output dari proses pertama harus diberikan kepada
proses ke dua dan seterusnya.

Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing
(berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada
shared storage (main memory atau files).

2. Mekanisme proses untuk komunikasi dan sinkronisasi aksi

Sistem Pesan komunikasi proses satu dengan yang lain dapat dilakukan tanpa perlu
pembagian data.

IPC menyediakan dua operasi :


o send(message) pesan berukuran pasti atau variabel
o receive(message)
o Jika P dan Q melakukan komunikasi, maka keduanya memerlukan :

Membangun jalur komunikasi diantara keduanya

Melakukan pertukaran pesan melaui send/receive

o Implementasi jalur komunikasi


9

physical (shared memory, hardware bus)

logical (logical properties)

3. Pembuatan dan Penghancuran Proses


Pembuatan Proses (Create)
Penciptaan proses terjadi karena terdapat batch baru. SO dengan kendali batch job, setelah
menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.
Penciptaan proses melibatkan banyak aktivitas, yaitu :

Menamai (memberi identitas) proses.

Menyisipkan proses pada senarai proses atau tabel proses.

Menentukan prioritas awal proses.

Menciptakan PCB.

Mengalokasikan sumber daya awal bagi proses.

Penghancuran Proses (Destroyed)


Penghancuran proses terjadi karena :

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.


10

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.


11

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.

Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua
pendekatan, yaitu :

Pada beberapa sistem, proses-proses turunan dihancurkan saat proses induk dihancurkan
secara otomatis.

Beberapa sistem lain menganggap proses anak independen terhadap proses induk Proses
anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.

Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :

Sumber daya-sumber daya yang dipakai dikembalikan.

Proses dihancurkan dari senarai atau tabel sistem.

PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).

4. Keadaan Proses
Keadaan proses terdiri dari :
1)
Running, yaitu suatu kondisi pemroses sedang mengeksekusi instruksi. Benar-benar
menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).
2)
Ready, yaitu suatu kondisi proses siap dieksekusi, akan tetapi pemroses belum siap
atau sibuk.
3)
Blocked, yaitu suatu proses menunggu kejadian untuk melengkapi tugasnya. Bentuk
kegiatan menunggu proses yaitu : selesainya kerja dari perangkat I/Otersedianya memori
yang cukup.
5. Penjadwalan Proses
Kriteria untuk mengukur dan optimasi kinerja penjadwalan :
a)

Adil (fairness)

12

Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu pemroses yang
sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami
kekurangan waktu.
b)

Efisiensi (eficiency)

c)

Waktu tanggap (response time)

Waktu tanggap berbeda untuk :


1)

Sistem interaktif

Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari . perintah
dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut
terminal response time.
2)

Sistem waktu nyata

Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi
pertama rutin layanan yang dimaksud dieksekusi, disebut event response time.
d)

Turn around time

Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai
proses diselesaikan sistem.
Algoritma Penjadwalan
Berikut jenis-jenis algoritma berdasarkan penjadwalan :
1. Nonpre-emptive, menggunakan konsep :
1. FIFO (First In First Out) atau FCFS (First Come First Serve)
2. SJF (Shortest Job First)
3. HRN (Highest Ratio Next)
4. MFQ (Multiple Feedback Q)
2. Pre-emptive, menggunakan konsep :
1.

RR (Round Robin)

2.

SRF (Shortest Remaining First)

13

3.

PS (Priority Schedulling)

4.

GS (Guaranteed Schedulling)

v Algoritma Pre-emptive
A. Round Robin (RR)
Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses yang disebut
kwanta (quantum) atau time slice dimana proses itu berjalan. Jika proses masih running
sampai akhir quantum, maka CPU akan mempreempt proses itu dan memberikannya ke
proses lain.
Penjadwalan ini :

Baik untuk sistem interactive-time sharing dimana kebanyakan waktu dipergunakan


menunggu kejadian eksternal.

Contoh : text editor, kebanyakan waktu program adalah untuk menunggu keyboard, sehingga
dapat dijalankan proses-proses lain.
B. Priority Schedulling (PS)
Adalah tiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah
waktu lebih dulu (running). Berasumsi bahwa masing-masing proses memiliki prioritas
tertentu, sehingga akan dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi yang dapat
memperjelas prioritas tersebut adalah dalam komputer militer, dimana proses dari jendral
berprioritas 100, proses dari kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan
berprioritas 60 dan seterusnya. Dalam UNIX perintah untuk mengubah prioritas
menggunakan perintah nice.
Pemberian prioritas diberikan secara :
1. Statis (static priorities)
Keunggulan :

Mudah diimplementasikan.

Mempunyai overhead relatif kecil.

Kelemahan :

Tidak tanggap terhadap perubahan lingkungan yang mungkin menghendaki penyesuaian


prioritas.
14

2.

Dinamis (dynamic priorities)

Merupakan mekanisme untuk menanggapi perubahan lingkungan sistem beroperasi.


Prioritas awal yang diberikan ke proses mungkin hanya berumur pendek setelah disesuaikan
ke nilai yang lebih tepat sesuai lingkungan.
Kelemahan :

Implementasi mekanisme prioritas dinamis lebih kompleks dan mempunyai overhead


lebih besar. Overhead in diimbangi dengan peningkatan daya tanggap sistem.

C. Multiple Feedback Queues (MFQ)


Merupakan :

Penjadwalan berprioritas dinamis.

Penjadwalan ini untuk mencegah (mengurangi) banyaknya swapping dengan proses-proses


yang sangat banyak menggunakan pemroses (karena menyelesaikan tugasnya memakan
waktu lama) diberi jatah waktu (jumlah kwanta) lebih banyak dalam satu waktu.
Penjadwalan ini juga menghendaki kelas-kelas prioritas bagi proses-proses yang ada. Kelas
tertinggi berjalan selama satu kwanta, kelas berikutnya berjalan selama dua kwanta, kelas
berikutnya berjalan empat kwanta, dan seterusnya.
Ketentuan yang berlaku adalah sebagai berikut :

Jalankan proses pada kelas tertinggi.

Jika proses menggunakan seluruh kwanta yang dialokasikan, maka diturunkan kelas
prioritasnya.

Proses yang masuk untuk pertama kali ke sistem langsung diberi kelas tertinggi.

Mekanisme ini mencegah proses yang perlu berjalan lama swapping berkali-kali dan
mencegah proses-proses interaktif yang singkat harus menunggu lama.
D. Shortest Remaining First (SRF)
Merupakan :

Penjadwalan berprioritas dinamis.

Adalah preemptive untuk timesharing.

Melengkapi SJF.
15

Pada SRF, proses dengan sisa waktu jalan diestimasi terendah dijalankan, termasuk prosesproses yang baru tiba.

Pada SJF, begitu proses dieksekusi, proses dijalankan sampai selesai.

Pada SRF, proses yang sedang berjalan (running) dapat diambil alih proses baru dengan
sisa waktu jalan yang diestimasi lebih rendah.

Kelemahan :

Mempunyai overhead lebih besar dibanding SJF. SRF perlu penyimpanan waktu layanan
yang telah dihabiskan job dan kadang-kadang harus menangani peralihan.

Tibanya proses-proses kecil akan segera dijalankan.

Job-job lebih lama berarti dengan lama dan variasi waktu tunggu lebih lama dibanding
pada SJF.

SRF perlu menyimpan waktu layanan yang telah dihabiskan , menambah overhead. Secara
teoritis, SRF memberi waktu tunggu minimum tetapi karena overhead peralihan, maka pada
situasi tertentu SFJ bisa memberi kinerja lebih baik dibanding SRF.
E. Guaranteed Scheduloing (GS)
Penjadwalan ini memberikan janji yang realistis (memberi daya pemroses yang sama) untuk
membuat dan menyesuaikan performance adalah jika ada N pemakai, sehingga setiap proses
(pemakai) akan mendapatkan 1/N dari daya pemroses CPU. Untuk mewujudkannya, sistem
harus selalu menyimpan informasi tentang jumlah waktu CPU untuk semua proses sejak
login dan juga berapa lama pemakai sedang login. Kemudian jumlah waktu CPU, yaitu
waktu mulai login dibagi dengan n, sehingga lebih mudah menghitung rasio waktu CPU.
Karena jumlah waktu pemroses tiap pemakai dapat diketahui, maka dapat dihitung rasio
antara waktu pemroses yang sesungguhnya harus diperoleh, yaitu 1/N waktu pemroses
seluruhnya dan waktu pemroses yang telah diperuntukkan proses itu.
v Algoritma Non Pre-emptive
A. First In First Out (FIFO)
FIFO adalah penjadwalan paling sederhana, yaitu :

Proses-proses diberi jatah waktu pemroses berdasarkan waktu kedatangan.

Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.

Penjadwalan ini baik untuk sistem batch yang sangat jarang berinteraksi dengan pemakai.
16

Contoh : aplikasi analisis numerik, maupun pembuatan tabel.

Sangat tidak baik (tidak berguna) untuk sistem interaktif, karena tidak memberi waktu
tanggap yang baik.

Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).

B. Shortest Job First (SJF)


Penjadwalan ini mengasumsikan waktu jalan proses sampai selesai diketahui sebelumnya.
Mekanismenya adalah menjadwalkan proses dengan waktu jalan terpendek lebih dulu sampai
selesai, sehingga memberikan efisiensi yang tinggi dan turn around time rendah dan
penjadwalannya tak berprioritas.
C. Highest Ratio Next (HRN)
Merupakan :

Penjadwalan berprioritas dinamis.

Penjadwalan untuk mengoreksi kelemahan SJF.

Adalah strategi penjadwalan dengan prioritas proses tidak hanya merupakan fungsi waktu
layanan tetapi juga jumlah waktu tunggu proses. Begitu proses mendapat jatah pemroses,
proses berjalan sampai selesai.

17

18