Sistem Waktu Nyata dan Multimedia 1 Pendahuluan sistem waktu nyata mempersyaratkan bahwa komputasi yang dihasilkan benar tapi juga harus sesuai dengan waktu yang dikehendaki. Oleh karena itulah algoritma penjadualan yang tradisional haruslah dimodifikasi sehingga dapat memenuhi persyaratan deadline yang diminta. Hal ini pula yang dipersyaratkan oleh sistem multimedia yang tidak hanya memiliki data konvensional (seperti berkas teks, program, dll), tetapi juga memiliki data multimedia. Hal ini disebabkan karena data multimedia terdiri dari continous-media data (audio dan video), seperti contohnya adalah frame video, yg mempersyaratkan juga pengirimannya dlm batas waktu tertentu, 2 misalnya 30 frame/detik. 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. 3 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 safetycritical. Sistem waktu nyata lembut menyediakan prioritas untuk mendahulukan proses yang menggunakan waktu nyata dari pada proses yang tidak menggunakan waktu nyata. 4 Contoh: Linux. Karakteristik dari sistem waktu nyata: 1. 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. 2. Small size. Kebanyakan sistem waktu nyata yang ada memiliki physical space yang terbatas. 3. Inexpensively mass-produced. Sistem waktu nyata banyak ditemukan dalam peralatan rumah tangga dan peralatan lainnya. Misalnya pada kamera digital, microprocessors, microwave ovens. 4. 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. 5 Sistem operasi waktu nyata tidak membutuhkan fitur penting (misalnya standar desktop dan sistem server pada desktop PC) karena: 1. 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. 6 2. 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. 3. Jika sistem waktu nyata mendukung fitur yang biasa terdapat pada standar desktop dan sistem server, maka akan sangat meningkatkan biaya dari sistem waktu nyata. 7 Kernel Waktu Nyata Waktu nyata merujuk pada bentuk aplikasi yang mengontrol proses dimana masalah waktu merupakan hal yang sangat penting. Sistem waktu nyata digunakan ketika ada persyaratan waktu yang ketat pada operasi di prosesor atau flow dari data; yang sering digunakan sebagai alat kontrol yang pada aplikasi yang terpisah. 8 Dengan kata lain, sebuah sistem waktu nyata tidak hanya perlu untuk menjalankan software melalui proses dengan benar, tapi juga perlu untuk menjalankannnya dalam waktu yang tepat, kalau tidak sistem akan gagal. 9 Fitur-fitur minimal yang dibutuhkan oleh sistem operasi yang mendukung sistem yang real time adalah: 1. Penjadwalan berdasarkan prioritas dan preemptif 2. Kernel preemptif 3. Latency yang minimal 10 1. Penjadwalan Berdasarkan Prioritas Fitur yg paling penting dari sebuah sistem operasi yg mendukung sistem waktu nyata adalah merespon dengan segera sebuah proses waktu nyata secepat proses yg 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 diberikan 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. 11 2. 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. 12 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 diupdate adalah data kernel yang di lindungi dari perubahan yang disebabkan oleh proses yang memiliki prioritas tinggi. 13 3. 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: 14 1. 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. 15 2. 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 prioritas rendah yang dibutuhkan oleh proses prioritas tinggi. 16 Sistem multimedia Multimedia adalah penggunaan komputer untuk menyajikan dan menggabungkan teks, suara, gambar, animasi dan video dengan alat bantu ([tool]) dan koneksi ([link]) sehingga pengguna dapat ber-([navigasi]), berinteraksi, berkarya dan berkomunikasi. Multimedia sering digunakan dalam dunia hiburan. Selain dari dunia hiburan, Multimedia juga diadopsi oleh dunia Game. 17 Handal. Para pengguna tentulah tidak akan gembira jika sistem terlalu sering crash. Sistem berkas. Ukuran berkas multimedia cenderung sangat besar. Sebagai contoh , berkas video dalam format MPEG dengan durasi 60 menit akan berukuran sekitar 650 MBytes. Untuk itu, diperlukan sistem operasi yang mampu menangani berkas-berkas dengan ukuran tersebut secara efektif dan efisien. Bandwidth . Diperlukan bandwidth (ukuran saluran data) yang besar untuk multimedia, misalnya video. Waktu nyata. Selain memerlukan bandwidth yang besar, berkas multimedia harus disampaikan secara lancar berkesinambungan, serta tidak terputus-putus. Walaupun demikian, tentu ada toleransi tertentu terhadap kualitas gambar/suara (soft real time). Misal pada aplikasi video conference. Pengguna masih bisa mentolerir jika gambar sedikit terpatah-patah atau suara sedikit lebih lambat dari video. 18 Embedded System . Embedded system pada dasarnya adalah komputer khusus yang tugasnya menjalankan tugas spesifik. Tidak seperti PC, yang bisa digunakan untuk banyak hal seperti browsing, menonton video, membuat program dan sebagainya, embedded system hanya melakukan satu atau beberapa tugas tertentu saja, tentunya masing-masing memiliki kebutuhan yang spesifik dan seringkali diperlengkapi dengan hardware khusus yang tidak lazim ditemui pada PC biasa. Biasanya embedded system menggunakan hardware yang terbatas, misal memori yang kecil atau tidak memiliki harddisk, tidak memiliki fasilitas canggih seperti virtual memory yang lazim ditemui di PC biasa, dan lain-lain. Karena embedded system hanya melakukan tugas tertentu, maka sistem bisa dioptimasi sedemikian rupa sehingga bisa memperkecil ukuran fisiknya dan menekan biaya produksi. Secara fisik, embedded system bisa dijumpai mulai dari yang berukuran kecil, seperti PDA,MP3 player atau jam digital, kemudian ke yang lebih besar seperti TV, video game console, router sehingga yang kompleks seperti sistem pengendali pabrik,sistem pengatur lampu lalu lintas, atau sistem pemandu pesawat. Emdedded system melakukan komputasi secara real-time dan mereka bisa saja berjalan dengan sedikit interaksi dari manusia (atau tidak sama sekali). 19 Kompres Karena ukuran dan persyaratan rate pada sistem multimedia, berkas multimedia sering dikompresi dari ukuran aslinya ke ukuran yang lebih kecil. Sebuah berkas yang sudah dikompres, akan mengurangi space untuk penyimpanan dan dapat dikirim ke klien lebih cepat. Kompresi sangat berguna pada saat mengirimkan sebuah isi berkas melalui koneksi jaringan. Dalam diskusi mengenai kompresi berkas, kita sering merujuk ke ratio kompresi, yang mana ratio dari ukuran berkas asli banding ukuran berkas yang dikompres. 20 Kompresi merupakan pengurangan ukuran suatu berkas menjadi ukuran yang lebih kecil dari aslinya. Pengompresian berkas ini sangat menguntungkan manakala terdapat suatu berkas yang berukuran besar dan data di dalamnya mengandung banyak pengulangan karakter. Adapun teknik dari kompresi ini adalah dengan mengganti karakter yang berulang-ulang tersebut dengan suatu pola tertentu sehingga berkas tersebut dapat meminimalisasi ukurannya. 21 Misalnya terdapat kata "Hari ini adalah hari Jum'at. Hari Jum'at adalah hari yang menyenangkan". Jika kita telaah lagi, kalimat tersebut memiliki pengulangan karakter seperti karaktek pembentuk kata hari, hari Jum'at, dan adalah. Dalam teknik sederhana kompresi pada perangkat lunak, kalimat di atas dapat diubah menjadi pola sebagai berikut # ini $ %. % $ # ya@ menyena@kan. dimana dalam kalimat diatas, karakter pembentuk hari diubah menjadi karakter #, hari Jum'at menjadi %, adalah menjadi $, ng menjadi @. Saat berkas ini akan dibaca kembali, maka perangkat lunak akan mengembalikan karakter tersebut menjadi karakter awal dalam kalimat. Pengubangan karakter menjadi lebih singkat hanya digunakan agar penyimpanan kalimat tersebut dalam memory komputer tidak memakan tempat yang banyak. 22 Implementasi kompresi dalam personal computer (PC) dibagi menjadi tiga cara, yaitu: 1. Pengkompresian berkas berdasarkan kegunaannya (Utility-based file compression) Merupakan jenis kompresi yang melakukan kompresi per berkas dengan menggunakan utilitas kompresi. Untuk melihat berkas yang telah dikompresi, berkas tersebut harus didekompres dengan menggunakan utilitas dekompresi. Dalam jenis ini, sistem operasi tidak tahu menahu mengenai aktivitas kompresian atau dekompresi sebuah berkas. Contoh dari sistem kompresi yang cukup terkenal adalah PKZIP, WinZip, WinRar, dan lain-lain. 23 2. Pengkompresian berkas pada sistem operasi (Operating system file compression) Beberapa sistem operasi memiliki sistem kompresi di dalamnya. Contoh dari sistem operasi yang memiliki sistem kompresi di dalamnya adalah Windows NT yang menggunakan sistem berkas NTFS. Dengan menggunakan sistem kompresi seperti ini, sistem operasi secara otomatis dapat mendekompres berkas yang telah dikompresi manakala berkas tersebut ingin digunakan oleh sebuah program. 24 3. Pengkompresian Isi (Volume compression) dengan pengkompresian ini, kita dapat menghemat penggunaan space pada disk tanpa harus mengkompresi tiap berkas di dalamnya secara individual. Setiap berkas yang dikopi ke dalam volume compression akan dikompresi secara otomatis dan akan didekompresi secara otomatis apabila berkas tersebut dibutuhkan oleh sebuah program. 25 Algoritma kompresi diklasifikasikan menjadi dua buah, yaitu: 1. Algoritma kompresi lossy Keuntungan dari algoritma ini adalah bahwa rasio kompresi (perbandingan antara ukuran berkas yang telah dikompresi dengan berkas sebelum dikompresi) cukup tinggi. Namun algoritma ini dapat menyebabkan data pada suatu berkas yang dikompresi hilang ketika didekompresi. Hal ini dikarenakan cara kerja algoritma lossy adalah dengan mengeliminasikan beberapa data dari suatu berkas. Namun data yang dieliminasikan biasanya adalah data yang kurang diperhatikan atau diluar jangkauan manusia, sehingga pengeliminasian data tersebut kemungkinan besar tidak akan mempengaruhi manusia yang berinteraksi dengan berkas tersebut. Contohnya pada pengkompresian berkas audio, kompresi lossy akan mengeleminasi data dari berkas audio yang memiliki frekuensi sangat tinggi/rendah yang berada diluar jangkauan manusia. Beberapa jenis data yang biasanya masih dapat mentoleransi algoritma lossy adalah gambar, audio, dan video. 26 2. Algoritma kompresi lossless Berbeda dengan algoritma kompresi lossy, pada algoritma kompresi lossless, tidak terdapat perubahan data ketika mendekompresi berkas yang telah dikompresi dengan kompresi lossless ini. Algoritma ini biasanya diimplementasikan pada kompresi berkas teks, seperti program komputer (berkas zip, rar, gzip, dan lain-lain). 27 Contoh lain dari penerapan algoritma kompresi lossy dalam kehidupan sehari-hari adalah pada berkas berformat MPEG (Moving Picture Experts Group). MPEG merupakan sebuah set dari format berkas dan standar kompresi untuk video digital. 28