1.
Sejarah
dan perkembangan sistem waktu nyata
o
1949:
·
Pembuatan
proyek Whirlwind yaitu proyek pembuatan flight simulator untuk U.S. Navy yang
termasuk sistem waktu-nyata dan dikembangkan oleh IBM
·
Mulai
digunakan bahasa tingkat tinggi untuk aplikasi waktu-nyata yang disebut bahasa
“algebraic compiler” yang disusul dengan penggunaan bahasa FORTRAN, CMS-2, dan
JOVIAL yang banyak digunakan pada U.S. Army, Navy, dan Air Force
o
1950:
·
Angkatan
udara USA mengembangkan sistem pertahanan udara SAGE (Semiautomatic Ground Environment)Brown
dan Campbell membuat proposal tentang penggunaan komputer dalam sistem
waktu-nyata sebagai bagian dari sistem kendali
o
1954:
·
Komputer
digital Digitrac digunakan pada sistem automatic flight dan sistem kendali
persenjataan
o
1959:
·
Pembuatan
proyek pemesanan tiket pesawat terbang (SABRE) untuk American Airlines
·
Penerapan
sistem waktu-nyata pada sistem kendali pesawat ruang angkasa dan telemetri
o
1960:
·
Sistem
waktu-nyata mulai diterapkan pada sistem non militer
o
1965:
·
Diperkirakan
telah ada lebih dari 350 sistem kendali waktu nyata
o
1960
- 1970:
·
Perkembangan
dalam proses integrasi dan semakin cepat waktu pemrosesan mengakibatkan semakin
banyak permasalahan sistem waktu-nyata yang dapat dipecahkan.
o
1970:
·
Mulai
diinginkan adanya satu bahasa yang dapat digunakan untuk berbagai keperluan
sistem waktu-nyata
o
1980
- 1990:
·
Setelah
melalui proses pemilihan bahasa, akhirnya disepakati penggunaan bahasa Ada
sebagai bahasa sistem waktu-nyata
·
Meskipun
bahasa Ada telah banyak digunakan pada sistem waktu-nyata, tetapi bahasa
asembly dan FORTRAN masih tetap digunakan
·
Bahasa
Pascal, BASIC, Modula-2, dan C banyak digunakan pada sistem waktu-nyata
komersial
·
Mulai
dilakukan penelitian untuk memperbaiki kehandalan sistem waktu-nyata.
·
Sistem
multiprosesing dan arsitektur von Neumann mulai digunakan pada aplikasi sistem
waktu-nyata.
2.
Definisi
sistem waktu nyata
Sistem waktu nyata dapat di definisikan sebagai
sistem yang harus menghasilkan respon yang tepat dalam batas waktu yang telah
ditentukan. Jika respon komputer melewati batas waktu tersebut, maka terjadi
degradasi performansi atau kegagalan sistem. Beberapa sumber lain
mendefinisikan sistem waktu nyata sebagai berikut :
- Menurut definisi Kamus komputer Oxford : Setiap
sistem yang waktu terjadinya output sangat signifikan. Jarak antara waktu input
terhadap waktu terjadinya output harus sangat kecil terhadap waktu yang
diperbolehkan.
- Menurut Cooling pada buku Software Design for Real
Time Systems (1991): Sistem Waktu Nyata adalah sistem yang harus memproduksi
respon yang tepat dalam suatu batasan waktu yang tertentu. Komputer yang
responnya melebihi batasan waktu ini akan memberikan performansi yang
terdegradasi atau malfunction.Sebuah sistem waktu nyata membaca input dari
plant dan mengirim sinyal kontrol ke plant pada waktu-waktu yang ditentukan
oleh pertimbangan operasional dari plant bukan oleh sistem computer.
- Menurut Bennet : Sebuah program yang ketepatan
operasinya tergantung pada hasil logika komputasi dan waktu suatu hasil
diproduksi.Sehingga, secara kasar dapat kita ambil kesimpulan bahwa sistem
waktu nyata adalah sebuah sistem yang
memiliki deadline / jangka waktu penyelesaian tertentu, namun tetap
mengutamakan ketepatan dan performa yang tinggi dalam prosesnya.Sebuah
sistem waktu nyata adalah sistem yang kebenarannya secara logis didasarkan pada
kebenaran hasil-hasil keluaran sistem dan ketepatan waktu hasil-hasil tersebut
dikeluarkan. Aplikasi penggunaan sistem seperti ini adalah untuk memantau dan
mengontrol peralatan seperti motor, assembly line, teleskop, atau instrumen
lainnya. Peralatan telekomunikasi dan jaringan komputer biasanya juga
membutuhkan pengendalian secara Real-time.
3.
Istilah-istilah
dalam sistem waktu nyata
Deadline-batas
waktu, Task adalah kumpulan job yang berkaitan yang menyediakan fungsi-fungsi
sistem, Hard Real-Time Sistem Waktu Nyata yang harus memenuhi target waktu pada
setiap kesempatan, Soft Real-TimeSistem Waktu Nyata yang tidak harus memenuhi
target waktu tetapi harus memenuhi suatu nilai. Event-Based Task Sistem yang
beraksi karena respon terhadap suatu kejadian (event).
4.
Contoh-contoh
aplikasi sistem waktu nyata
• Proses
pengambilan uang pada ATM
• Proses login atau pendaftaran online
• Proses pengenalan sidik jari pada absensi
• Proses perekaman suara
• Sistem pendeteksian dan alarm
• Sistem pengiriman data transmisi (TV, Telepon)
• Proses isi ulang pulsa.
• Proses login atau pendaftaran online
• Proses pengenalan sidik jari pada absensi
• Proses perekaman suara
• Sistem pendeteksian dan alarm
• Sistem pengiriman data transmisi (TV, Telepon)
• Proses isi ulang pulsa.
5.
Klasifikasi
Sistem Waktu nyata berdasarkan sinkronisasi antar proses ekternal dengan task internal.
Clock-based Task(bedasarkan waktu)
Sistem Waktu Nyata yang diukur berdasarkan konstanta
waktu yaitu waktu yang diambil dari respon suatu plant terhadap perubahan input
atau beban.Konstanta waktu bisa diukur dalam satuan jam untuk proses kimia atau
detik untuk sistem penerbangan.Semakin kecil konstanta waktu maka sampling rate
semakin kecil.
Sinkronisasi diperoleh dengan menambahkan clock pada
sistem komputer yang dikenal dengan real-time clock. Sinyal clock ini digunakan
untuk menginterrupt operasi komputer pada waktu-waktu yang telah ditetapkan
(Clock-interrupt)
Event-Based Task(Berdasarkan Kejadian)
Sistem yang beraksi karena respon terhadap suatu
kejadian (event). Contoh menutup katup pada saat permukaan air sudah mengenai
batas penuh.Digunakan interrupt untuk memberitahukan komputer aksi yang
diperlukan atau bisa juga mempergunakan pooling (komputer menanyakan (polls)
pada sensor apakah perlu dilakukan aksi).
Interactive Systems(waktu ditentukan tetapi
bekerja bedasarkan inputan user)
Sistem waktu nyata yang terjadi karena adanya suatu
kejadian dan waktu rata-rata dari respon kejadian ini tidak boleh melebihi
waktu yang ditetapkan. Jadi merupakan gabungan antara clock-based dan
event-based hanya bedanya waktu respon setiap kejadian tidak selalu sama.
Misal pengambilan uang di ATM.
6. Klasifikasi
sistem waktu nyata berdasarkan time
Constraint
1. Hard Real-Time
Sistem
Waktu Nyata yang harus memenuhi target waktu pada setiap Kesempatan
Contoh
: Pengontrolan Temperatur blower.
2. Soft
Real-Time
Sistem
Waktu Nyata yang tidak harus memenuhi target waktu tetapi harus memenuhi suatu
nilai ketepatan yang diambil dari nilai rata-rata.
Contoh
: Pengambilan uang di ATM .
Firm real-time:
Sistem yang
mempunyai deadline ketat, tetapi kegagalan sebagian kecil deadline yang telah
ditentukan masih dapat ditoleransi
7. Kriteria sistem waktu nyata
• Batasan waktu (time Constraint), artinya bahwa aplikasi harus menyelesaikan tugasnya
dalam waktu yang telah dibatasi atau ditentukan.Setiap sistem dengan waktu
nyata memiliki batasan waktu berupa waktu maksimum proses (akuisisi, transmisi, perekaman, perhitungan) dan standar waktu (waktu yang
sama dengan waktu sehari-hari).
·
Respon waktu dan Saturation
Limit
Sistem Waktu nyata jika dipergunakan
untuk mengontrol alat perlu mempertimbangkan kecepatan dari respon alat dan
batas saturasi dari alat tersebut .
8. Karateristik sistem waktu nyata
Menurut Morgan
[MORG92], terdapat sekurangnya lima karakteristik dari sebuah sistem waktu
nyata
• Deterministik, dapat ditebak berapa waktu yang dipergunakan untuk
mengeksekusi operasi.
• Responsif, kapan secara pasti eksekusi dimulai serta
diakhiri.
• Kendali pengguna, dengan menyediakan pilihan lebih banyak dari pada
sistem operasi biasa.
• Kehandalan, sehingga dapat menanggulangi masalah-masalah
pengecualian dengan derajat tertentu.
• Penanganan
kegagalan, agar sistem tidak
langsung crash.
9. Multitasking
Multitasking adalah istilah teknologi
informasi dalam bahasa
Inggris yang mengacu kepada sebuah metode dimana banyak pekerjaan atau dikenal
juga sebagai proses diolah dengan menggunakan sumberdaya CPU yang sama. Dalam kasus sebuah
komputer dengan prosesor tunggal, hanya satu instruksi yang dapat bekerja dalam
satu waktu, berarti bahwa CPU tersebut secara aktif mengolah instruksi untuk
satu pekerjaan tersebut.
Multitasking memecahkan masalah ini dengan menjadwalkan
pekerjaan mana yang dapat berjalan dalam satu waktu, dan kapan pekerjaan yang
lain menunggu untuk diolah dapat dikerjakan. Kondisi mengalokasikan CPU dari pekerjaan
satu ke pekerjaan yang lain disebut context switch.
Ketika context
switch terjadi dengan sangat cepat -- kondisi ini cukup untuk memberikan solusi
pengolahan-paralel. Bahkan dalam
komputer yang memiliki lebih dari satu CPU (disebut multi-prosesor),
Multitasking memperbolehkan lebih banyak pekerjaan dijalankan dibanding dengan
jumlah CPU yang tersedia.
v Multitasking
dalam sistem waktu nyata
Dalam
Sistem Real-Time, pada CPU misalnya, pemrograman Multitasking dapat dilakukan
menggunakan pemrograman High Level-language, sehingga strategi penjadwalan
dapat diatur dengan mempertimbangkan juga fitur-fitur yang terdapat pada CPU
tersebut (aplkasi dan hardware).
Multitasking disebut juga
Concurrent Processing (pemorsesan berbarengan) dimana multitasking menjalankan proses berbeda dilakukan pada satu unit CPU,
sedangkan jika melakukan beberapa proses berbeda menggunakan beberapa CPU
disebut pengolahan Paralel.
10. Loop
Multitasking
Real-Time System mungkin hanya menggunakan fungsi loop
terus-menerus untuk melaksanakan semua kegiatan yang diperlukan.Namun,kendali
sistem Real-Time tidak dikendalikan secara penuh.Selain itu, banyak waktu yang
dihabiskan prosesor dalam status-flag yang sia-sia, kadang-kadang disebut
'skip-polling'.
Masalah yang lebih signifikan timbul karena perulangan siklik
sederhana prosedur tidak dapat memberikan waktu yang tepat ketika dibutuhkan
untuk penjadwalan kegiatan secara berkala.Solusi untuk masalah respons time
tersebut adalah mengikat setiap respons
critical task langsung ke perangkat berbasis Interrupt,dengan cara menggunakan
interrupt-hardware untuk memprioritaskan jadwal pre-emptively sebuah task.
Penjadwalan
yang berbasis hardware dapat bekerja dengan baik untuk aplikasi yang sangat
kecil, tetapi agak tidak fleksibel, tidak terintegrasi dengan pengaturan
prioritas tugas yang lebih luas, dan akan memunculkan beberapa masalah yang
agak sulit.Pada umumnya, tak ada tingkat interrupt yang tepat, aplikasi
tersebut terikat pada hardware tertentu, prioritas yang bervariasi pada
Interrupt Service Routine (ISR) hampir mustahil, dan debugging aplikasi secara
penuh menjadi lebih dan lebih sulit.
11. Task Timing
Task
Terkendali-Event (Reaktif);
bereaksi
terhadap event eksternal yang umumnya aperiodik (sporadis).
•
Periodik
- tasks tiba pada interval yang tetap, disebut periode.berhenti berikut
langsung lanjut berikut.
•
Aperiodik
(Sporadis) - tasks mungkin tiba pada saat setelah interval minimum.tidak
diketahui kapan proses berakhir,proses berjalan terus sampai selesai.
Task
Terkendali-Waktu; dikendalikan oleh periode waktu; umumnya task periodik.
•
Task
periodik τi= { Ji,1, Ji,2, ... , Ji,n } adalah deretan job dengan paremeter
identik:Periode ( pi atau Ti ) sama dengan panjang minimum waktu antara waktu
pelepasan jobs berikutnya,Waktu eksekusi ( ei atau Ci ) sama dengan maksimum
waktu eksekusi job dalam tas, dan Fase ( φi ) sama dengan waktu pelepasan dari
job pertama dalam τi.
12. Task Terkendali interupsi
Interupsi perangkat keras, adalah metode yang digunakan oleh perangkat
keras untuk memperoleh perhatian dari CPU.
Penjadwal (Scheduler)
Penjadwal mengirim job ke prosesor.
Jadwal adalah pengalokasian seluruh
job dalam sistem pada seluruh prosesor yang tersedia (dihasilkan oleh
penjadwal).
·
Waktu eksekusi (atau run-time) job
adalah banyaknya waktu yang dibutuhkan untuk menyelesaikan eksekusi job setelah
job dijadwalkan( ei atau Ci ).
·
Batasan waktu yang disyaratkan pada
perilaku waktu job disebut timing constraint.
Penjadwal
bekerja dengan benar; misal, hanya menghasilkan jadwal yang berlaku yang
memenuhi kondisi sebagai berikut:
·
Setiap prosesor umumnya menangani satu job,
·
Setiap job umumnya ditujukan untuk satu
prosesor,
·
Tidak ada job yang dijadwalkan sebelum
waktu pelepasannya, dan
·
Dab semua konstrain pendahulu dan penggunaan
sumberdayanya terpenuhi.
Jadwal
valid adalah jadwal fisibel jika setiap job memenuhi konstrain waktunya; misal,
menyelesaikan eksekusi dalam deadline.
Kumpulan
job adalah schedulable berdasarkan algoritma penjadwalan jika (ketika)
menggunakan
algoritma (penjadwal) selalu menghasilkan penjadwalan fisibel.
Lateness
dari job adalah perbedaan antara waktu selesai dan deadlinenya. Jika job
selesai lebih awal, latenessnya neatif.
13. Task swapping
Menambah
pekerjaan lebih maksimal
Penjadwalan
ulang sehingga tidak terjadi benturan proses
14. Resource Sharing
Berbagi
sumber daya
Sistem
real time system menitiberatkan ketepatan waktu dalam memproses setiap respon
dari pengguna. Dan setiap proses tersebut pasti memiliki kesamaan sumber daya.
Untuk itulah diperlukan sebuah kegiatan berbagi resource bersama yang lebih
kenal dengan istilah resource sharing. Dalam resource sharing memungkin dua
buah proses atau lebih dapat menggunakan data atau perangkat keras (hardware)
secara simultan. Sedangkan, di jaringan memungkinkan dua buah komputer atau
lebih dapat menggunakan data atau perangkat keras (hardware) dalam sebuah
jaringan kerja komputer. Namun, sistem operasi yang khususnya sistem waktu
nyata untuk dapat melakukan resource sharing terdapat beberapa cara. Cara
tersebut sebagai berikut
▪
Menonaktifkan Interupsi
Tujuan
umum sistem operasi tidak mengizinkan program pengguna untuk mematikan fitur
interupsi, karna program pengguna bisa mengontrol CPU selama yang diinginkan
oleh program tersebut. CPU moderen sekarang tidak memungkinkan kode mode
pengguna untuk mematikan interupt. Kontrol tersebut dianggap sebagai kewenangan
dari sistem operasi. Namun, system waktu nyata dan sistem tertanam memungkinkan
aplikasi itu sendiri untuk berjalan dalam kernel untuk sistem call. Dan juga
memungkinkan aplikasi untuk memiliki kontrol yang lebih besar tanpa memerlukan
intervensi system operasi.
•
Semaphore Binary
Dalam
kehidupan nyata, semafor adalah sistem sinyal yang digunakan untuk
berkomunikasi secara visual.
Dalam software, semafor
adalah sebuah variabel bertipe integer yang selain saat inisialisasi, hanya
dapat diakses melalui dua operasi standar, yaitu increment dan decrement. Semafor digunakan untuk menyelesaikan masalah
sinkronisasi secara umum. Berdasarkan jenisnya, semafor hanya bisa memiliki
nilai 1 atau 0, atau lebih dari sama dengan 0. Konsep semafor pertama kali diajukan
idenya oleh Edsger Dijkstra pada tahun 1967. Operasi standar pada semafor
(dalam bahasa pemrograman C). Nama asli dari operasi tersebut sebenarnya adalah Proberen (test) dan Verhogen (increment).. Fungsi wait dipanggil ketika thread akan memasuki critical section-nya atau ketika threadakan memakai resource yang
tersedia. Jika sem_value kurang dari sama dengan 0, threadtersebut harus menunggu sampai thread lain memanggil
fungsi buka.
Fungsi
buka dipanggil ketika thread meningggalkan critical section-nya
atau ketika melepaskan resource yang telah
digunakannya. Tentu saja kedua operasi tersebut harus bersifat atomik karena
sem_value dapat diakses oleh beberapa proses (shared resource). Semafor memiliki dua jenis, yaitu:
1. Binary semaphore . Semafor ini hanya memiliki nilai 1 atau 0.
Sering juga disebut sebagai semafor primitif
2. Counting semaphore . Semafor ini memiliki nilai 0, 1, serta
integer lainnya. Banyak sistem operasi yang tidak secara langsung
mengimplementasikan semafor ini, tetapi dengan memanfaatkan binary semaphore.
15. Contoh+deskripsi
sistem waktu nyata
16. Jaring Petri
Jaringan petri
adalah salah satu metoda pemodelan yang dapat diaplikasikan dalam berbagai
jenis sistem.Sebagai model grafik jaringan petri dapat dipandang sebagai model
visual unggul karena adanya token yang
bergerak yang mengartikan adanya proses dinamik dari suatu sistem dibandingkan
dengan model lainnya yang telah tersedia seperti flow chart,diagram blok atau
topologi jaringan.
Fly-by-wire
Fly-by-wire (FBW, Indonesia: terbang dengan kabel) adalah sistem yang menggantikan pengendalian
penerbangan manual sebuah
pesawat dengan antarmuka elektronik.
Pergerakan dari pengendalian penerbangan dikonversi ke sinyal-sinyal elektronis
dan ditransmisi menggunakan kabel (merujuk pada istilah fly-by-wire), dan
komputer pengendali penerbangan memutuskan bagaimana menggerakan aktuator yang ada di setiap permukaan kendali
untuk memberi respon yang diinginkan pilot. Sistem terbang-dnegan-kabel juga
menyediakan sinyal otomatis yang dikirim dari komputer pesawat untuk melakukan
fungsi-fungsi tanpa adanya input dari pilot, yang mana sistem secara otomatis
menstabilkan pesawat.
makasih banyak min infonya
ReplyDeletepower supply hp