Kuliah Sistem Nyata Waktu dan Embedded...

Pengantar

Progress

Kuliah

Ringkasan

Artikel

Tugas

Waktu Eksekusi Jawaban Quiz Opini-Bagian 1 Opini-Bagian 2

Soal 1

Soal 1 . 2 . 3 . 4

Terjemahan dari salah satu sub bab dari buku:
REAL-TIME SYSTEMS
(penulis: C.M. Khrisma dan Kang G. Shin, penerbit: The McGraw-Hill Companies, Inc., tahun 1997)


4.14 RUN-TIME SUPPORT
Komponen kunci run-time support adalah compiler, linker, debugger, dan kernel.

4.15.1 Compiler
Compiler menerjemahkan source code menjadi bahasa mesin. Compiler yang baik haruslah memiliki kemampuan diagnostik yang baik, yang digunakan untuk meningkatkan efisiensi proses debugging. Jika diperlukan, compiler juga harus dapat membuat daftar instruksi mesin dari unit yang di-compile. Hal ini diperlukan untuk membuat perkiraan waktu (timing estimates). Compiler yang baik untuk suatu sistem nyata-waktu hendaknya memiliki hooks yang digunakan untuk memberikan informasi statistik tentang program saat dijalankan. Contohnya, seberapa sering suatu fungsi, blok, atau prosedur tertentu dipanggil dan jumlah waktu yang diperlukan untuk menjalankannya.
Compiler seringkali juga melakukan optimisasi untuk menurunkan waktu eksekusi. Seharusnya compiler juga dapat memberikan petunjuk bagaimana optimisasi dapat dilakukan. Pada Ada, hal ini dilakukan menggunakan pragma.

4.15.2 Linker
Sebelum kode mesin dari compiler dapat dieksekusi, kode ini harus dihubungkan dengan library atau routine lain yang diperlukan. Hal ini menjadi tugas linker. Jadi, linker berfungsi menghubungkan bagian-bagian yang menyusun program. Bagian-bagian ini dapat berupa unit-unit program atau library routine yang dapat di-compile secara terpisah. Linker menentukan bagian mana yang merupakan bagian utama (main) dan mengalokasikan storage space bagi instruksi dan data. Linker juga membuat daftar yang menunjukkan bagaimana unit-unit yang berbeda tersebut dihubungkan.

4.15.3 Debugger
Debugger yang baik memegang peranan penting bagi pengembangan program yang efisien. Debugger umumnya menawarkan fasilitas-fasilitas berikut ini. 4.15.4 Kernel
Kernel bertanggung jawab untuk mengelola resource sistem. Di dalamnya termasuk routine untuk membuat alokasi dan penjadwalan task, mengelola memori, menjalankan algoritma untuk komunikasi interprocessor, menangani egagalan processor (processor failures), dan melakukan operasi input dan output.

Soal 2

Soal 1 . 2 . 3 . 4

Modifikasi example 3.34 (hal 100-101)dari buku:
REAL-TIME SYSTEMS
(penulis: C.M. Khrisma dan Kang G. Shin, penerbit: The McGraw-Hill Companies, Inc., tahun 1997)


Modifikasi dilakukan pada nilai m4 dan o4.
Contoh 3.34. Perhatikan empat task dengan parameter sebagai berikut.

Task Number

mi

oi

ri

Di

1

1

4

0

10

2

1

2

1

12

3

3

3

1

15

4

7

1

2

19


Penjadwalan dilakukan dengan algoritma IRIS1. Tahap pertama yang dilakukan adalah menjalankan algoritma EDF pada task 1-4 dengan waktu eksekusi secara berturut-turut: 5, 3, 6, dan 8, sehingga diperoleh St0 sebagai berikut.

 

 

T1

 

 

 

T2

 

 

 

T3

 

 

 

 

 

T4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

5

 

 

 

 

10

 

 

 

 

15

 

 

 

 

20

Pada gambar di atas, terlihat bahwa task 4 tidak mungkin dapat memenuhi deadline-nya (waktu ke-19), sehingga kita harus melanjutkan ke tahap kedua. Pada tahap kedua, algoritma EDF dijalankan hanya pada bagian mandatory task 1-4, sehingga diperoleh Sm sebagai berikut.

T1

T2

 

T3

 

 

 

 

T4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

5

 

 

 

 

10

 

 

 

 

15

 

 

 

 

20


Pada gambar di atas, seluruh deadline dapat dipenuhi, sehingga dapat dilanjutkan ke tahap ketiga dengan nilai a0= 0, a1= 1, a2= 2, a3= 5, a4= 12. dan, k= 4.
Perhatian pertama diberikan kepada a3. Pada Sm, task T4 dijadwalkan pada interval [a3, a4) sebanyak 7 satuan waktu. Pada Sst0, T4 hanya mendapat bagian sebanyak 5 satuan waktu. Oleh karena itu, Sst0 diubah dengan menambahkan 7-5=2 satuan waktu kepada T4 pada interval waktu [a3, a4) dan mengurangi 2 satuan waktu dari T2 yang pada St0 dijadwalkan pada a3. Hasilnya, penjadwalan T4 diubah menjadi sebanyak 7 satuan waktu sesudah a3. Penjadwalan yang dihasilkan disebut St1. Selanjutnya, kita perhatikan interval [a2, a3).
Pada Sm, T3 dijadwalkan sebanyak 3 satuan waktu. Pada St1, T3 dijadwalkan sebanyak 6 satuan waktu, sesudah a2. T3 memiliki cukup waktu untuk menjalankan bagian mandatory-nya. Oleh karena itu, tidak ada perubahan yang perlu dilakukan.
Selanjutnya, kita lihat [a2, a3). Pada Sm, T2 dijadwalkan pada rentang waktu tersebut. Pada St1, T2 dijadwalkan sebanyak 2 satuan waktu, cukup untuk menjalankan bagian mandatory-nya sehingga tidak ada perubahan yang perlu dilakukan.
Terakhir, pada interval [a0, a1), T1 dijadwalkan sebanyak 1 satuan waktu pada Sm. Pada St1, T1 dijadwalkan sebanyak untuk 5 satuan waktu, lebih dari yang diperlukan oleh bagian mandatory-nya. Sekali lagi, tidak ada perubahan yang perlu dilakukan.
Hasil akhir yang diperoleh adalah St1 sebagai penjadwalan yang optimum.


 

 

T1

 

 

T4

 

T2

 

 

T3

 

 

 

 

 

T4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

5

 

 

 

 

10

 

 

 

 

15

 

 

 

 

20



Soal 3

Soal 1 . 2 . 3 . 4

Topik-topik yang pernah dibahas dalam kuliah

Liveline
Other than deadline, we should also consider liveline or startline as a time constraint factor in a real-time system. There are some cases where the start time is also crucial.
Priority Inversion
Priority inversion happens when a task of lower priority able to delay or preempt other task of higher priority. This may happen when the higher priority task try to access a critical section which is currently locked by the lower priority task.
Priority Inheritance
Priority inheritance is a protocol used to avoid the problem of priority inversion. When a lower priority task is blocking a higher priority task, it inherits the priority of the higher priority task. It gains its priority back when the blocking is over. The bad side of priority inversion is that it can lead to deadlock.
Priority Ceiling
Priority ceiling is a protocol used to avoid deadlock caused by priority inheritance. Basically, it is the same as priority inheritance. The difference is that there is another factor that determine the blocking of a task from entering a critical section. Each critical section has a semaphore. The priority ceiling of the semaphore is the same as the highest priority task that may access the critical section. A task is blocked from entering a critical section when there is a semaphore currently held by a task whose priority ceiling is higher or equal to its priority.

Soal 4

Soal 1 . 2 . 3 . 4

Topik dan kata kunci paper yang akah dibuat

Penerapan Konsep EDELF (Earliest Deadline Earliest Liveline First)
Kata kunci: EDF, EDELF, deadline, liveline


Quiz ini dilaksanakan tanggal: 23 Agustus 2005
Hosted by www.Geocities.ws

1