sistem mikroprosesor

Diagram Alir Perangkat Lunak

Dalam dunia perangkat lunak dikenal berbagai teknik untuk memodelkan perangkat lunak. Salah satu model yang sering dipakai adalah flowchart (diagram alir).

Diagram alir adalah sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah. Diagram ini bisa memberi solusi selangkah demi selangkah untuk penyelesaian masalah yang ada di dalam proses atau algoritma tersebut

Secara umum diagram alir dipakai untuk melakukan analisa, perancangan, dokumentasi, ataupun manajemen suau proses atau program dalam berbagai bidang ilmu.

Dalam tulisan ini disajikan penggunaan diagram alir untuk melihat perbedaan antara 3 macam perangkat lunak:

  • Perangkat lunak desktop
  • Perangkat lunak sistem mikroprosesor tanpa sistem operasi
  • Perangkat lunak sistem mikroprosesor dengan sistem operasi

Diagram Alir Perangkat Lunak Desktop

Perangkat lunak desktop yang dibahas di sini maksudnya adalah perangkat lunak yang dijalankan pada suatu sistem operasi (misal Windows / Linux). Perangkat lunak seperti ini dijalankan pada suatu saat dan kemudian selesai pada beberapa waktu kemudian. Jadi pada perangkat lunak ini ada bagian START sebagai permulaan dan ada bagian END yang menyatakan akhir pelaksanaan perangkat lunak tersebut.

Diagram alir perangkat lunak desktop

Diagram alir perangkat lunak desktop

Pada contoh di atas, program melaksanakan 3 buah pekerjaan yaitu Inisialisasi, Proses 1 dan Proses 2, kemudian berhenti. Pekerjaan dapat bermacam-macam, namun intinya adalah ada START di awal dan END di akhirnya.

Contoh perangkat lunak seperti ini misalnya adalah web browser yang anda pakai sekarang (Firefox,Chrome, Internet Explorer, Safari, dsb). Contoh lainnya adalah perangkat lunak command line di Windows maupun Linux.

Diagram Alir Perangkat Lunak Berbasis Super Loop Tanpa Interupsi

Model berikutnya adalah model perangkat lunak yang umum dipakai pada sistem mikroprosesor/mikrokontroler. Pada sistem mikroprosesor perangkat lunak diharapkan untuk berjalan selamanya sampai perangkat tersebut dimatikan atau direset. Ciri diagram alir pada sistem ini adalah ada bagian START namun tidak END, dan ada suatu loop yang dijalankan selamanya. Karena ada loop yang dijalankan selamanya ini, maka arsitektur seperti ini sering disebut sebagai superloop.

Bagian utama software ada 2 yaitu bagian inisialisasi dan proses/pekerjaan. Bagian inisialisasi hanya dilakukan satu kali saja di awal, umumnya untuk melakukan konfigurasi pada sistem mikroprosesor yang digunakan. Contohnya adalah mengaktifkan port-port tertentu sebagai input maupun output, mengatur port serial, mengatur timer/pewaktu, dan lain-lain perangkat di dalam mikroprosesor/mikrokontroler tersebut.

Diagram alir superloop tanpa interupsi

Diagram alir superloop tanpa interupsi

Teknik pembuatan superloop dalam bahasa C umumnya menggunakan loop while(1) {} ataupun  for(;;){}.

Diagram Alir Perangkat Lunak Berbasis Super Loop Dengan Interupsi

Model ini adalah perkembangan dari model sebelumnya. Perbedaannya adalah pada perangkat lunak ini ada fungsi / subroutine yang bertugas menangani adanya interupsi. Software untuk menangani interupsi ini sering disebut juga sebagai Interrupt Service Routine (ISR).

ISR ini berjalan seolah-olah tidak tergantung pada diagram alir utama, sehingga untuk memodelkan perangkat lunak ISR kita mesti membuat sebuah diagram alir terpisah. ISR dimulai dari adanya sebuah IRQ (Interrupt Request) yaitu sinyal dari hardware yang menandakan adanya suatu interupsi yang mesti dilayani. Setelah IRQ tersebut, maka ISR melaksanakan proses yang diperlukan untuk melayani IRQ tersebut sampai selesai. Setelah selesai maka ISR akan menjalankan RETI (Return from Interrupt) untuk mengakhiri ISR.

Diagram alir superloop dengan interupsi

Diagram alir superloop dengan interupsi

Suatu perangkat lunak dapat memiliki beberapa ISR, sehingga untuk masing-masing ISR ini mesti dibuatkan flowchart sendiri. Pada contoh berikut ini ada 2 buah interupsi, yaitu IRQ 1 yang menjalankan Proses 3, dan IRQ 2 yang menjalankan Proses 4.

 

Diagram alir superloop dengan 2 interupsi

Diagram alir superloop dengan 2 interupsi

Diagram Alir Perangkat Lunak Berbasis Sistem Operasi

Berikutnya yang paling kompleks adalah diagram alir perangkat lunak dengan sistem operasi multithread. Pada perangkat lunak ini terdapat superloop dan interupsi seperti sebelumnya, namun ada lagi 1 fitur software yang tidak ada di software sebelumnya, yaitu multithreading. Pada multithreading, sistem mikroprosesor dapat menjalankan beberapa thread software sekaligus walaupun hanya memiliki 1 CPU saja. Tekniknya adalah dengan membagi waktu CPU antara beberapa thread yang aktif, sehingga meskipun hanya ada 1 CPU namun seolah-olah komputer ini memiliki beberapa CPU yang masing-masing menjalankan program tersendiri.

Perbedaan utamanya adalah pada multithread kita dapat membuat beberapa superloop, 1 di main loop, sedangkan loop lain dapat diaktifkan sebagai thread.

 

Diagram alir perangkat lunak dengan sistem operasi

Diagram alir perangkat lunak dengan sistem operasi

Contoh sistem operasi yang dapat dipakai pada sistem semacam ini adalah FreeRTOS (http://www.freertos.org/)  dan CoOS  (https://github.com/coocox/CoOS)

 

Daftar Istilah

  • ISR (Interrupt Service Routine)
  • IRQ (Interrupt Request)

Referensi

Leave a Reply

Your email address will not be published. Required fields are marked *

Powered by: Wordpress