PERANCANGAN
PERANGKAT LUNAK
REAL-TIME
092904033
PERANCANGAN PERANGKAT
LUNAK REAL-TIME
TUJUAN
• Memahami konsep sistem Real-Time dan
mengapa sistem real-time biasanya
diimplementasi sebagai satu set proses
yang konkuren
• Mengetahui proses perancangan untuk
sistem real-time
• Memahami para eksekutif real-time
• Memahami arsitektur proses yang umum
untuk sistem monitor dan kontrol dan
MATERI
• PERANCANGAN SISTEM
• EKSEKUSI REAL –TIME
• SISTEM MONITORING DAN KONTROL
• SISTEM AKUSISI DATA
SISTEM REAL TIME
• Sistem real-time merupakan perangkat lunak di mana kerja benar dari sistem tersebut
bergantung pada hasil yang dikeluarkanoleh sistem dan waktu di mana hasil ini dibuat.
• Sistem real-time ‘lunak’ merupakan sistem yang operasinya terdegradasi jika hasil tidak
dikeluarkan menurut persyaratan waktu yang telah ditentukan.
• Sistem real-time’keras’ merupakan sistemyang operasinya tidak benar jika hasil tidak diberikan menurut spesifikasi waktu.
SISTEM REAL TIME
• Cara memandang sistem real-time adalahsebagai sistem stimulus/respons. Jika diberikan suatu stimulus input tertentu,sistem harus
menghasilkan respons yang sesuai.
• Dengan demikian dapat didefinisikan dengan mendaftar stimuli yang diterima oleh
sistem,respons yang berhubungan dan waktu dimana respons tersebut harus diberikan.
SISTEM REAL TIME
• Stimulus/stimuli terbagi menjadi dua kelas: Stimuli PeriodikTerjadi pada interval waktu yang dapat diramalkan Stimuli Aperiodik
Terjadi secara ireguler (pada interval yang tidak dapat diramalkan).
Gambar 13.1 Model Umum System Real-Time
Gambar 13.2 Proses Control Sensor/Aktuator
Penjelasan
Gambar 13.1 model umum system real-time Gambar 13.2 proses control sensor/aktuator
• Generalitas dari model stimulis/respons untuk sistem real time ini menghasilkan model
arsitektur generik di mana terdapat tiga proses. • Setiap proses,terdapat suatu:
Proses Manajemen dimana proses komputasi menghitung respons yang dibutuhkan untuk stimuli yang diterima oleh sistem.
Proses Kontrol dimana akuator menangani operasi akuator.
Model imi memungkinkan data dikumpulkan cepat dari sensor dan memungkinkan pemrosesan dan respons akuator yang berhubungan dilakukan
Perancangan Sistem
• Proses perancangan untuk sistem real-time
berbeda dari proses perancangan perangkat
lunak lain karena waktu tanggap sistem harus
diperhitungkan di awal proses.
• Event stimuli,ketimbang objek atau fungsi,
harus merupakan pusat proses perancangan.
Perancangan Sistem
• Ada beberapa tahapan pada proses perancangan ini:
1. Identifikasi stimuli yang harus diproses sistem dan respons yang sesuai
2. Untuk setiap stimulus dan respons yang
sesuai,identifikasi batasan waktu yang berlaku untuk stimulus dan pemrosesan respons.
3. Gabungkan pemrosesan stimulus dan respons menjadi sejumlah proses yang konkuren. Model umum yang baik untuk arsitektur sistem adalah mengasosiasikan proses.
Perancangan Sistem
• …Lanjutan
4. Untuk setiap stimulus dan respons,rancang algoritma untuk melakukan komputasi yang diperlukan. Desain algoritma seringkali harus dikembangkan relatif di awal proses
perancangan untuk memberikan indikasi mengenai
banyaknya pemrosesan yang dibutuhkan dan waktu yang dibutuhkan untuk menyelesaikan pemrosesan ini.
5. Rancang sistem penjadwalan yang akan menjamin bahwa proses dimulai memenuhi batas waktu akhirnya
Perancangan Sistem
• Analisis waktu sistem real-time cukup sulit. Karena sifat yang tidak dapat diramalkan dan stimuli aperiodik,perangcang harus membuat asumsi mengenai probabilitas terjadinya stimuli ini pada waktu kapanpun.
• Proses pada sistem real-time harus
dikoordinasikan. Mekanisme koordinasi proses menjamin mutual exclusion untuk sumber daya yang dipakai bersama.
• Karena sistem real-time harus memenuhi batasan waktunya,tidaklah praktik jika harus menggunakan sistem real-time keras yang
Pemodelan sistem real-time
• Model status sistem menganggap bahwa,pada setiap
saat, sistem berada pada salah satu dari sekian
banyak status yang mungkin.
• Ketika suatu stimulus diterima,transisi ke status yang
berbeda dapat terjadi.
• Sebagai contoh suatu sistem yang mengontrol
sebuah katup dapar berpindah sari status’Valve
Open’ ke status ‘Valve Closed’ ketika command
operator diterima.
Gambar 13.3 Model Mesin
Status Oven Microwave
Penjelasan Gambar 13.3 Model Mesin Status Oven Microwave
• Menujukkan model microwave sederhana yang dilengkapi dengan tombol tombol untuk mengatur power dan timer untuk memulai kerja sistem.
• Persegi dengan sudut bulat mempresentasikan status sistem dan tabel yang diberi tanda panah mempresentasikan stimuli yang memaksa transisi dari satu status ke yang lain.
• Nama-nama yang dipilih pada diagram mesin status bersifat deskriptif dan informasi yang
berhubungan menunjukkan aksi yang dilakukan akuator sistem atau informasi yang ditampilkan.
Lanjutan…
• Nama-nama yang dipilih pada diagram mesin status bersifat deskriptif dan informasi yang berhubungan menunjukkan aksi yang dilakukan akuator sistem atau informasi yang ditampilkan. • Baca operasi tersebut dengan membaca model
dari kiri kekanan.
• Pada status awal(waiting),user dapat memilih full-power atau half-full-power.
• Status berikutnya dimasuki user menekan tombol timer dan menentukan waktu,operasi kemudian dapat di-enable ketika pintu oven ditutup dan makanan tersebut masak selama status Operation. • Akhirnya,ketika proses memasak selesai, oven
Pemodelan sistem real-time
• Model status merupakan cara yang baik dan tidak bergantung pada bahasa dalam mempresentasikan desain dengan sistem real-time.
• Model ini bagian integral dari metode perancangan real-time(Ward dan Mellor,1985; Harel 1987,1988). • Metode Harel yang berdasarkan pada notasi yang
disebut StateChart. Menstruktur model status sehingga sekumpulan status dapat dianggap sebagai entitas.
Pemrograman Real-time
• Bahasa Pemrograman yang digunakan untuk implementasi system real-time juga dapat mempengaruhi desain.
• Sistem real-time keras kadang-kadang masih deprogram dalam bahasa assembly,sehingga batas waktu pengiriman yang ketat tidak dapat dipenuhi.
• keuntungan menggunakan bahasa pemrograman tingkat rendah seperti C adalah
dimungkinkannya pengembangan program yang sangat efisien.
Pemrograman Real-time
• Bahasa ini bergantung pada system operasi atau
fasilitas,eksekutif dan,dengan demikian, ada cakupan yang bertambah untuk pemrograman. Program juga seringkali lebih sulit dipahami.
• Versi awal java(pada saat itu disebut OAK) dirancang untuk penulisan system embedded skali kecil seperti pada
kontroler peralatan.
• Akan tetapi, karena system system ini tidak memiliki batasan waktu yang ketat,java tidak menyertakan suatu penjadwalan thread atau untuk menspesifikasi bahwa thread harus berjalan pada waktu-waktu yang tertentu. • Itulah sebabnya Java, tidak sesuai untuk pemrograman
Eksekutif Real-time
• Eksekusi Real-Time analog dengan system operasi pada computer umum, eksekutif ini menangani proses dan alokasi sumber daya pada system real-time.
• Eksekusi ini memulai dan menghentikan proses yang sesuai sehingga stimuli dapat ditangani dan
mengalokasikan memori dan sumber daya prosesor.
• Baker dan Scallon(1986) memberikan pembahasan yang baik mengenai fasilitas yang dibutuhkan pada eksekutif real-time.
• Cooling (1991) juga membahas produk eksekutif real-time komersil, walaupun ada beberapa produk eksekutif real time yabg tersedia, persyaratan yang khusus dari banyak system real time seringkali yang dikembangkan.
eksekutif Real-time
eksekutif Real-time
• Clock real-time. Komponen ini memberikan informasi untuk menjadwalkan proses secara periodik.
• Interrupt handler. Menangani permintaan aperiodic untuk layanan.
• Penjadwal. Komponen ini bertanggung jawab terhadap pemeriksaan proses yang dapat dijalankan dan memilih salah satunya untuk dieksekusi.
• Manajer Sumber Daya. Jika diberikan proses yang dijadwalkan untuk dieksekusi, manajer sumber daya
mengalokasikan memori yang sesuai dan sumber-sumber daya proses.
• Despatcher. Komponen ini bertanggung jawab untukm memulai ekseskusi suatu proses.
Manajemen Real-time
• Manajemen Proses pada eksekutif real-time berhubungan dengan penanganan set proses konkuren yang merupakan bagian dari system real-time.
• Manajer Proses harus memilih satu proses untuk dieksekusi, mengalokasikan memori dan sumber daya proses bagi proses tersebut dan memulai eksekusinya pada proses.
• proses-proses periodic adalah proses-proses yang harus dieksekusi pada interval waktu yang telah ditentukan sebelumnya untuk menentukan
Manajemen Real-time
Gambar 13.5 aksi eksekutif real-time yang dibutuhkan untuk memulai suatu proses.
Manajemen Real-time
Keterangan Gambar 13.5 aksi eksekutif real-time yang dibutuhkan untuk memulai suatu proses.
• Daftar proses periodik diperiksa oleh penjadwal uang memilih proses yang akan dijalankan. Pilihan bergantung pada prioritas proses, periode proses, waktu eksekusi yang diharapkan, dan batas waktu proses yang siap. Kadangkala yang, dua proses dengan batas waktu yang berbeda haru dijalankan pada detak clock yang sama. Pada situasi
seperti ini, salah satu proses harus ditunda selama batas waktunya yang masih dapat dipenuhi.
Manajemen Real-time
• Ada Dua Strategi Penjadwalan Dasar:
1. Penjadwalan non-preempsi. Begitu suatu proses telah
dijadwalkan untuk eksekusi, proses akan berjalan sampai selesai atau sampai diblok, untuk suatu alasana seperti menunggu input. Hal ini megakibatkan masalah jika terdapat proses dengan prioritas yang berbeda dan proses berprioritas tinggi ternyata harus menunggu prioritas rendah selesai.
2. Penjadwalan preempsi. Eksekusi proses yang sedang
berjalan dapat dihentikan jika proses dengan prioritas lebih tinggi membutuhkan layanan. Proses dengan priorotas lebih tinggi tersebut melakukan preempsi
terhadap eksekusi proses yang prioritasnya lebih rendah dan dialokasikan ke prosesor.
Sistem monitoring dan kontrol
• sistem Monitoring Dan Kontrol merupakan system real –time yang yang penting.
• Sistem-sistem ini memeriksa sensor yang
memberikan informasi mengenai lingkungan system dan mengambil tindakan dengan hasil pembacaan sensor.
• System monitoring mengambil tindakan ketika dideteksi nilai sensornya eksepsional.
• System control terus mengontrol akuator
perangkat keras dengan bergantung pada nilai yang bersangkutan.
Sistem monitoring dan kontrol
Persyaratan Timing stimulus/Respons
STIMULUS/RESPONS PERSYARATAN WAKTU
Interrupt Kegagalan Power Pengalihan ke power backup harus dilakukan dalam batas waktu 50 ms. Alarm Waktu Setiap alarm pintu harus dipantau (poll) dua kali per detik
Alarm Jendela Setiap alarm pintu harus dipantau dua kali per detik Detektor Gerakan Setiap detector gerakan harus dipantau dua kali per detik
Alarm Yang Dapat Terdengar Alarm yang dapat terdengar harus dihidupkan dalam waktu ½ detik setelah alarm diaktifkan oleh sensor
Saklar Lampu Lampu-lampu harus dihidupkan dalam waktu1/2 detik setelah alarm diaktifkan oleh sensor
Komunikasi Panggilan ke polisi harus dimulai dalam 2 detik setelah alarm diaktifkan oleh sensor
Sistem monitoring dan kontrol
Sistem Monitoring dan kontrol
Sistem akusisi data
• Sistem akusisi data merupakan kelas lain dari sistem real-time yang biasanya didasarkan pada model arsitektural generik
• Sistem ini mengumpulkan data dari sensor untuk pemrosesan dan analisis selanjutnya.
• Pada sistem ini real-time yang melibatkan akusisi data dan pemrosesan,kecepatan eksekusi dan periode proses
akusisi dan proses pemrosesan mungkin berada diluar jalur.
• Jika dibutuhkan pemrosesan yang signifikan,akusisi data bisa lebih cepat daripada pemrosesan data.
Sistem akusisi data
Sistem akusisi data
Keterangan Arsitektur Sistem Monitoring Fluks
• Mempresentasikan sistem yang mengumpulkan data dari sensor yang memonitor fluks neutron pada reaktor nuklir.
• Data sensor diletakkan pada buffer,dari mana data disaring dan diproses dan tingkat fluks rata-rata ditampilkan pada display operator.
• Setiap sensor memiliki proses yang berhubungan yang mengubah tingkat fluks input analog
Sistem akusisi data
…lanjutan
• Proses ini meneruskan tingkat fluks
ini,dengan identifier sensor,ke buffer data
sensor.
• Proses yang bertanggung jawab untuk
pemrosesan data mengambil data
mengambil data dari buffer ini,
memrosesnya dan meneruskannya ke
proses display untuk output pada kontrol
operator.
Sistem akusisi data
• Untuk memperhalus perbedaan
kecepatan,sebagian sistem akusisi data
membuffer data input dengan memakai
buffer sirkular atau ring.
• Proses yang menghasilkan data
(produsen) menambahkan informasi ke
buffer ini dan proses yang memakai data
(konsumen) mengambil informasi dari
buffer.
Sistem akusisi data
Sistem akusisi data
• Eksklusi mutual harus diimplementasi harus mencegah proses produsen dan konsumen
mengakses elemen yang bahwa yang sama pada buffer pada saat yang sama.
• Sistem juga harus menjamin bahwa produsen
tidak mencoba menambahkan satu informasi ke buffer yang penuh dan konsumen tidak
Hal-hal penting
• Sistem Real-Time(waktu nyata) adalah sistem perangkat lunak yang harus merespons event dalam waktu nyata. Kebenarannya tidak terletak hanya pada hasil yang dikeluarkannnya, tetapi juga pada waktu ketika hasil ini dikeluarkan. • Model umum untuk arsitektur sistem real time
melibatkan asosiasi proses dengan setiap kelas sensor dan piranti akuator. Proses koordinasi lainnya mungkin juga diperlukan.
• Perancangan arsitektural sistem real-time
biasanya melibatkan pengorganisasian sistem sebagai satu set proses konkuren yang
Hal-hal penting
• Eksekutif real-time bertanggung jawab untuk
manajemen proses dan sumber daya. Eksekutif ini selalu mencakup penjadwal yang merupakan
komponen yang bertanggung jawab untuk
memutuskan proses mana yang harus dijadwalkan untuk dijalankan. Keputusan penjadwalan diambil dengan menggunakan prioritas tinggi.
• Sistem monitoring dan kontrol secara periodik
memantau (poll) satu set sensor yang menangkap informasi dari lingkungan sistem. Sistem-sistem ini mengambil tindakan, bergantung pada pembacaan sensor, dengan mengeluarkan command ke
Sistem akusisi data
• Sistem akusisi data biasanya diorganisir menurut model produsen-konsumen. Proses produsen
meletakkan data pada buffer sirkular di mana data tersebut dipakai oleh proses konsumen. Bufffer juga diimplementasi sebagai proses sehingga konflik antara produsen dan konsumen dapat dihilangkan.
• Walaupun java memiliki fasilitas pendukung
konkurensi, java tidak sesuai untuk pengembangan sistem real-time yang kritis waktu. Java memiliki fasilitas untuk mengontrol eksekusi dan kita
mungkin melakukan analisis perilaku waktu program java.