Transparansi. Bagi pemakai, keberadaan berbagai perangkat multiplisitas perangkat dalam

Bab 24. Waktu Nyata dan Multimedia

24.1. Pendahuluan

Trend saat ini di bidang teknologi adalah penggabungan data multimedia ke dalam sistem komputer. Bagaimanapun juga, sebuah sistem operasi seharusnya dapat menangani jenis data multimedia ini dengan baik. Multimedia merupakan salah satu aplikasi waktu nyata. Sistem waktu nyata yang digunakan pada aplikasi multimedia memiliki persyaratan yang berbeda dengan persyaratan yang harus dipenuhi pada sistem yang dipelajari pada bab-bab sebelumnya. Persyaratan yang harus dipenuhi pada sistem waktu nyata adalah hasil komputasi yang dihasilkan benar dan selesai pada batas waktu yang telah ditentukan. Oleh karena itu, algoritma penjadwalan yang tradisional haruslah dimodifikasi sehingga dapat memenuhi persyaratan batas waktu yang diminta.

24.2. Kernel Waktu Nyata

Sistem waktu nyata adalah sebuah sistem komputer yang tidak hanya membutuhkan hasil komputasi yang benar tetapi juga harus sesuai dengan batas waktu yang dikehendaki. Hasil dari komputasi yang dilakukan jika benar mungkin tidak dalam nilai real. Sistem waktu nyata banyak digunakan dalam bermacam-macam aplikasi. Sistem waktu nyata tersebut ditanam di dalam alat khusus, seperti di kamera, mp3 players, serta di pesawat dan mobil. Beberapa sistem waktu nyata diidentifikasi sebagai sistem safety-critical, dalam skenario ini sistem waktu nyata harus merespon kejadian dalam batas waktu yang telah ditentukan, jika tidak dapat memenuhi batas waktu yang ditentukan maka akan terjadi bencana. Sistem manajemen penerbangan merupakan sebuah contoh sebuah sistem waktu nyata sebagai sistem safety-critical. Sistem waktu nyata dibagi menjadi dua tipe yaitu keras dan lembut. Sistem waktu nyata keras menjamin bahwa proses waktu nyata dapat diselesaikan dalam batas waktu yang telah ditentukan. Contoh: sistem safety-critical. Sistem waktu nyata lembut menyediakan prioritas untuk mendahulukan proses yang menggunakan waktu nyata dari pada proses yang tidak menggunakan waktu nyata. Contoh: Linux. Karakteristik dari sistem waktu nyata: • Single purpose. Tidak seperti PC, yang memiliki banyak kegunaan, sebuah sistem waktu nyata biasanya hanya memiliki satu tujuan, seperti mentransfer sebuah lagu dari komputer ke mp3 player. • Small size. Kebanyakan sistem waktu nyata yang ada memiliki physical space yang terbatas. • Inexpensively mass-produced. Sistem waktu nyata banyak ditemukan dalam peralatan rumah tangga dan peralatan lainnya. Misalnya pada kamera digital, microprocessors, microwave ovens. • Specific timing requirements. Sistem operasi waktu nyata memenuhi persyaratan waktu yang ditentukan dengan menggunakan algoritma penjadwalan yang memberikan prioritas kepada proses waktu nyata yang memiliki penjadwalan prioritas tertinggi. Selanjutnya, penjadwals harus menjamin bahwa prioritas dari proses waktu nyata tidak lebih dari batas waktu yang ditentukan. Kedua, teknik untuk persyaratan waktu pengalamatan adalah dengan meminimalkan response time dari sebuah events seperti interupsi. Sistem operasi waktu nyata tidak membutuhkan fitur penting misalnya standar desktop dan sistem server pada desktop PC karena: • Kebanyakan sistem waktu nyata hanya melayani satu tujuan saja, sehingga tidak membutuhkan banyak fitur seperti pada desktop PC. Lagi pula, sistem waktu nyata tertentu juga tidak memasukkan notion pada pengguna karena sistem hanya mendukung sejumlah kecil proses saja, yang sering menunggu masukan dari peralatan perangkat keras. • Keterbatasan space, menyebabkan sistem waktu nyata tidak dapat mendukung fitur standar desktop dan sistem server yang membutuhkan memori yang lebih banyak dan prosesor yang cepat. • Jika sistem waktu nyata mendukung fitur yang biasa terdapat pada standar desktop dan sistem server, maka akan sangat meningkatkan biaya dari sistem waktu nyata. Sebuah sistem operasi yang mendukung sistem waktu nyata harus menyediakan salah satu atau gabungan dari tiga fitur yang ada, fitur-fitur tersebut antara lain: • Penjadwalan berdasarkan prioritas 201 • 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