Operating System Scheduling Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan Dosen : Caca E. Supriana, S.Si
[email protected]
Scheduling Konsep Penjadwalan : z Multiprogramming bertujuan untuk memaksimalkan menggunaan CPU dengan cara mengatur alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan sepanjang waktu dan memperkecil waktu idle. z Untuk sistem yang bersifat prosesor tunggal (uniprosesor), hanya ada satu proses yang dapat berjalan setiap waktunya. Jika proses yang ada lebih dari satu, maka proses yang lain harus menunggu sampai CPU bebas dan siap untuk dijadualkan kembali.
Queue Scheduling
Queue Scheduling z Ketika sebuah proses memasuki sistem, proses itu diletakkan di dalam job queue. Pada antrian ini terdapat seluruh proses yang berada dalam sistem. Sedangkan proses yang berada pada memori utama, siap dan menunggu untuk mengeksekusi disimpan dalam sebuah daftar yang bernama ready queue. z Antrian ini biasanya disimpan sebagai linked list. Header dari ready queue berisi pointer untuk PCB pertama dan PCB terakhir pada list. Setiap PCB memiliki pointer field yang menunjuk kepada PCB untuk proses selanjutnya dalam ready queue.
Diagram Antrian
Scheduler Dalam sistem batch, seringkali proses yang diserahkan lebih banyak daripada yang dapat dilaksanakan dengan segera. Proses-proses ini disimpan pada suatu massstorage device (disk), dimana proses tersebut disimpan untuk eksekusi di lain waktu. z Long-term scheduler, atau job scheduler, memilih proses dari tempat ini dan mengisinya ke dalam memori. z Short-term scheduler, atau CPU scheduler, hanya memilih proses yang sudah siap untuk melakukan eksekusi, dan mengalokasikan CPU untuk proses tersebut.
Scheduler z Sebagian sistem operasi, seperti sistem time-sharing, dapat memperkenalkan sebuah scheduler tambahan, yaitu medium-term scheduler. z Ide utama dari scheduler ini akan menguntungkan untuk memindahkan proses dari memori (dan dari pengisian aktif dari CPU), dan akibatnya degree of multiprogramming (jumlah proses dalam memori) akan berkurang. z Di kemudian waktu, proses dapat dibawa kembali dalam memori dan eksekusinya dapat dilanjutkan pada keadaan dimana proses itu dipindahkan tadi. z Skema ini disebut swapping.
medium-term scheduler
Context Switch z Mengganti CPU ke proses lain memerlukan penyimpanan keadaan dari proses lama dan mengambil keadaan dari proses yang baru. Hal ini dikenal dengan sebutan context switch. z Context switch sebuah proses direpresentasikan dalam PCB dari suatu proses; termasuk nilai dari CPU register, status proses dan informasi managemen memori. Ketika context switch terjadi, kernel menyimpan data dari proses lama ke dalam PCB nya dan mengambil data dari proses baru yang telah terjadual untuk berjalan.
Context Switch
CPU Scheduler z Ide dari multi-progamming sangat sederhana. Ketika sebuah proses dieksekusi maka proses yang lain harus menunggu sampai proses pertama selesai. Pada sistem komputer yang sederhana CPU akan banyak dalam posisi idle. Sehingga waktu CPU ini sangat terbuang. Akan tetapi dengan multiprogamming, kita mencoba menggunakan waktu secara produktif. z Beberapa proses di simpan di memori dalam satu waktu. Ketika suatu proses harus menuggu, Sistem operasi dapat saja akan menghentikan CPU dari suatu proses yang sedang diekseskusi dan memberikan sumberdaya kepada proses yang lainnya. Begitu seterusnya.
CPU Scheduler z Penjadualan adalah fungsi dasar dari suatu sistem operasi. Hampir semua sumber komputer dijadualkan sebelum digunakan. CPU salah satu sumber dari komputer yang penting yang menjadi sentral dari sentral penjadualan di sistem operasi.
Siklus Burst CPU-I/O z Keberhasilan dari penjadualan CPU tergantung dari beberapa properti prosesor. Pengeksekusian dari proses tersebut terdiri atas siklus CPU ekskusi dan I/O Wait. Proses hanya akan bolak-balik dari dua state ini. z Pengeksekusian proses dimulai dengan CPU Burst, setelah itu diikuti oleh I/O burst, kemudian CPU Burst lagi lalu I/O Burst lagi begitu seterusnya dan dilakukan secara bergiliran. z Dan, CPU Burst terakhir, akan berakhir dengan permintaan sistem untuk mengakhiri pengeksekusian daripada melalui I/O Burst lagi.
Siklus Burst CPU-I/O
Penjadualan CPU zPenjadualan Preemptive Penjadualan CPU mungkin akan dijalankan ketika proses: 1. Berubah dari running ke waiting state 2. Berubah dari running ke ready state 3. Berubah dari waiting ke ready 4. Terminates
Penjadualan CPU zPenjadualan Non-Preemptive Penjadualan non-preemptive terjadi ketika proses hanya: 1. berjalan dari running state sampai waiting state 2. dihentikan
Dispatcher z Komponen yang lain yang terlibat dalam penjadualan CPU adalan dispatcher. Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang fungsinya adalah: 1. Switching context 2. Switching to user mode 3. Lompat dari suatu bagian di progam user untuk mengulang progam.
Kriteria Penjadualan 1. CPU utilization : CPU bekerja 100% 2. Throughput : banyak proses yang dikerjakan per unit waktu 3. Turnaround time : jumlah periode untuk menunggu untuk dapat ke memori, menunggu di ready queue, eksekusi di CPU, dan melakukan I/O 4. Waiting time : waktu tunggu di ready queue 5. Response time : waktu yang diperlukan proses dalam menerima response yang pertama
Algoritma Scheduling z First Come First Serve FCFS : proses yang datang paling awal akan dieksekusi terlebih dahulu z Shortest Job First SJF : proses yang paling pendek akan dieksekusi terlebih dahulu, kelemahanya adalah tidak dapat menghindari starvation (proses seolah-olah berhenti, menunggu permintaan akses ke critical section diperbolehkan) z Round Robin RR : membagi proses berdasarkan waktu tertentu yaitu waktu quantum q. Setelah proses menjalankan eksekusi selama q satuan waktu maka akan digantikan oleh proses yang lain.