Process Migration. Ketika sebuah proses dieksekusi, proses tersebut tidak selalu dieksekusi di

• Kernel preemptif • Pengurangan latensi Ketiga fitur tersebut akan dijelaskan secara rinci di subbab selanjutnya.

24.3. Penjadwalan Berdasarkan Prioritas

Fitur yang paling penting dari sebuah sistem operasi yang mendukung sistem waktu nyata adalah merespon dengan segera sebuah proses waktu nyata secepat proses yang membutuhkan CPU. Penjadwalan untuk sistem operasi waktu nyata harus mendukung penjadwalan berdasarkan prioritas dengan preemption. Algoritma penjadwalan berdasarkan prioritas memberikan prioritas kepada masing-masing proses berdasarkan tingkat kepentingannya; proses yang lebih penting di berikan prioritas lebih tinggi daripada proses lain yang dianggap kurang penting. Apabila penjadwalan yang digunakan juga mendukung preemption dan tersedia sebuah proses berprioritas tinggi, maka sebuah proses yang berjalan sekarang ini di CPU akan didahulukan. Penjadwalan ini hanya mendukung sistem waktu nyata lembut. Contoh sistem yang mengunakan penjadwalan ini adalah Solaris, Windows XP dan Linux.

24.4. Kernel Preemptif

Kernel preemptif mengizinkan preemption pada sebuah proses yang berjalan di mode kernel. Implementasi dari kernel preemptif sangatlah sulit dan banyak aplikasi spreadsheets, word processors, dan web browsers tidak memerlukan response time yang cepat. Akan tetapi, untuk memenuhi persyaratan waktu pada sistem waktu nyata terutama pada sistem waktu nyata keras kernel preemptif menjadi sangat penting. Karena kalau tidak proses yang terdapat pada sistem waktu nyata mungkin akan menunggu dalam periode waktu yang sangat lama sampai ada proses lain yang aktif di kernel. Ada beberapa cara untuk membuat kernel yang dapat preemptif. Salah satu pendekatannya adalah dengan menyisipkan preemption point pada system call yang berdurasi lama. Preemption point mengecek untuk melihat apakah proses dengan prioritas tinggi perlu untuk dijalankan atau tidak. Jika iya, context switch mengambil alih. Maka, ketika proses dengan prioritas tinggi terminate, proses yang diinterupsi akan melanjutkan system call. Preemption point akan ditempatkan hanya pada lokasi aman pada kernel, yaitu pada tempat dimana struktur data kernel belum dimodifikasi. Strategi kedua adalah dengan membuat sebuah kernel yang dapat preemptif melalui penggunaan mekanisme sinkronisasi. Dengan metode ini, kernel dapat selalu didahulukan karena beberapa data kernel yang di-update adalah data kernel yang di lindungi dari perubahan yang disebabkan oleh proses yang memiliki prioritas tinggi.

24.5. Pengurangan Latensi

Event latensi merupakan sejumlah waktu dari sebuah event mulai terjadi sampai event tersebut dilayani. Biasanya event yang berbeda memiliki persyaratan latensi yang berbeda. Dua tipe latensi yang mempengaruhi performance dari sebuah sistem waktu nyata yaitu: Interrupt Latency Interrupt latency berhubungan tentang periode waktu dari kedatangan sebuah interupsi pada CPU mulai pada routine yang melayani interupsi. Ketika interupsi terjadi, sistem operasi pertama kali harus melengkapi instruksi yang dieksekusinya dan menentukan tipe dari interupsi yang terjadi. Instruksi tersebut harus menyimpan state dari proses sekarang sebelum melayani interupsi menggunakan Interrupt Service Routine ISR tertentu. Waktu total yang dibutuhkan untuk melakukan task ini adalah interrupt latency. Dispatch Latency Sejumlah waktu yang dibutuhkan untuk menghentikan sebuah proses dan melanjutkan proses yang lain disebut dispatch latency. Tahap konflik pada dispatch latency memiliki dua komponen yaitu: preemption pada beberapa proses yang berjalan di kernel dan pelepasan resources oleh proses 202 prioritas rendah yang dibutuhkan oleh proses prioritas tinggi.

24.6. Penjadwalan Proses

Ulasan kita mengenai penjadwalan sejauh ini difokuskan pada sistem waktu nyata lembut. Pada sistem waktu nyata lembut, penjadwalan untuk sistem tidak memberi jaminan kapan proses critical akan di jadwalkan, akan tetapi memberi jaminan bahwa proses tersebut akan didahulukan daripada proses yang tidak critical. Sebaliknya, pada sistem waktu nyata keras, persyaratan penjadwalan menjadi lebih ketat. Sebuah proses harus dilayani berdasarkan deadline-nya; sehingga jika sebuah proses dilayani setelah deadline berakhir, maka proses tidak akan mendapat pelayanan sama sekali. Karakteristik dari proses yang ada pada sistem waktu nyata adalah proses tersebut dianggap periodik, karena membutuhkan CPU pada interval yang konstan periode. Setiap proses berperiode memiliki waktu pemrosesan yang fix yaitu t, setiap kali mendapatkan CPU, sebuah deadline d ketika proses tersebut harus dilayani oleh CPU, dan sebuah periode p. Hubungan antara waktu pemrosesan, deadline, dan periode dapat dinyatakan sebagai 0 t d p. Rate dari sebuah proses berperiodik adalah 1p. Gambar 24.1. Proses Berkala Hal yang tidak biasa dari bentuk penjadwalan ini adalah proses akan mengumumkan deadline-nya pada penjadwal. Kemudian dengan algoritma admission-control, penjadwal akan menyatakan bahwa proses akan diselesaikan tepat waktu atau ditolak permohonannya karena tidak dapat menjamin bahwa proses akan dapat dilayani sesuai deadline. Beberapa algoritma penjadwalan untuk sistem waktu nyata keras: Rate Monotonic Algoritma ini menjadwalkan proses berperiodik berdasarkan ketentuan prioritas statik dengan preemption. Jika proses berprioritas rendah sedang berjalan dan proses berprioritas tinggi siap untuk dijalankan, maka yang akan didahulukan adalah proses berprioritas rendah. Untuk memasuki sistem, 203