Sistem Operasi Real Time

Sistem Operasi Real Time

Sistem Operasi Real Time – Bagian di bawah ini menguraikan konsep dasar dan terminologi yang terkait dengan sistem operasi real-time.

Apa itu OS Real-Time?

Secara umum, sistem operasi (OS) bertanggung jawab untuk mengelola sumber daya perangkat keras dari sebuah komputer dan hosting aplikasi yang berjalan di komputer. RTOS melakukan tugas-tugas ini, tetapi juga dirancang khusus untuk menjalankan aplikasi dengan pengaturan waktu yang sangat tepat dan tingkat keandalan yang tinggi. Ini bisa menjadi sangat penting dalam sistem pengukuran dan otomatisasi di mana waktu henti sangat mahal atau penundaan program dapat menyebabkan bahaya keselamatan. bet88

Sistem Operasi Real Time

Untuk dianggap “real-time”, sistem operasi harus memiliki waktu maksimum yang diketahui untuk setiap operasi kritis yang dilakukannya (atau setidaknya dapat menjamin maksimum itu sebagian besar waktu). Beberapa operasi ini termasuk panggilan OS dan penanganan interupsi. Sistem operasi yang benar-benar dapat menjamin waktu maksimum untuk operasi ini biasanya disebut sebagai “waktu nyata keras”, sedangkan sistem operasi yang hanya dapat menjamin waktu maksimum sebagian besar disebut sebagai “waktu nyata lunak”. Dalam praktiknya, kategori ketat ini memiliki kegunaan terbatas setiap solusi RTOS menunjukkan karakteristik kinerja yang unik dan pengguna harus hati-hati menyelidiki karakteristik ini. www.mustangcontracting.com

Untuk memahami konsep-konsep ini sepenuhnya, ada baiknya mempertimbangkan contoh. Bayangkan Anda sedang merancang sistem airbag untuk mobil model baru. Dalam hal ini, kesalahan kecil dalam pengaturan waktu (menyebabkan airbag terlalu dini atau terlalu terlambat) bisa menjadi bencana besar dan menyebabkan cedera. Oleh karena itu, diperlukan sistem waktu-nyata yang sulit; Anda perlu jaminan sebagai perancang sistem bahwa tidak ada operasi tunggal yang akan melampaui batasan waktu tertentu. Di sisi lain, jika Anda mendesain ponsel yang menerima streaming video, mungkin tidak apa-apa kehilangan sejumlah kecil data sesekali meskipun rata-rata penting untuk mengikuti aliran video. Untuk aplikasi ini, sistem operasi waktu nyata yang lembut mungkin sudah cukup.

Poin utamanya adalah, jika diprogram dengan benar, RTOS dapat menjamin bahwa suatu program akan berjalan dengan waktu yang sangat konsisten. Sistem operasi waktu-nyata melakukan ini dengan memberikan kepada para programmer suatu tingkat kontrol yang tinggi atas bagaimana tugas-tugas diprioritaskan, dan biasanya juga memungkinkan pengecekan untuk memastikan bahwa tenggat waktu yang penting dipenuhi.

Berbeda dengan sistem operasi waktu nyata, sistem operasi yang paling populer untuk penggunaan komputer pribadi (seperti Windows) disebut sistem operasi tujuan umum. Sementara informasi teknis yang lebih mendalam tentang perbedaan sistem operasi waktu nyata dari sistem operasi serba guna diberikan pada bagian di bawah ini, penting untuk diingat bahwa ada kelebihan dan kekurangan kedua jenis OS. Sistem operasi seperti Windows dirancang untuk menjaga respons pengguna dengan banyak program dan layanan berjalan (memastikan “keadilan”), sementara sistem operasi real-time dirancang untuk menjalankan aplikasi penting secara andal dan dengan waktu yang tepat (memperhatikan prioritas programmer).

Terminologi dan Konsep Penting

Determinisme: Aplikasi (atau bagian penting dari suatu aplikasi) yang berjalan pada sistem operasi real-time yang keras disebut sebagai deterministik jika waktunya dapat dijamin dalam margin kesalahan tertentu.

Soft vs Hard Real-Time: OS yang benar-benar dapat menjamin waktu maksimum untuk operasi yang dilakukannya disebut sebagai real-time yang sulit. Sebaliknya, OS yang biasanya dapat melakukan operasi dalam waktu tertentu disebut soft-time.

Jitter: Jumlah kesalahan dalam waktu tugas atas iterasi selanjutnya dari suatu program atau loop disebut sebagai jitter. Sistem operasi real-time dioptimalkan untuk memberikan jumlah jitter yang rendah ketika diprogram dengan benar; tugas akan sangat dekat dengan jumlah waktu yang sama untuk dieksekusi setiap kali dijalankan.

Contoh Aplikasi Real-Time

Sistem operasi real-time dirancang untuk dua kelas umum aplikasi: respons peristiwa dan kontrol loop tertutup. Aplikasi respons peristiwa, seperti inspeksi visual otomatis untuk komponen jalur perakitan, memerlukan respons terhadap stimulus dalam jumlah waktu tertentu. Dalam sistem inspeksi visual ini, misalnya, setiap bagian harus difoto dan dianalisis sebelum jalur perakitan bergerak.

Dengan secara hati-hati memprogram aplikasi yang berjalan pada sistem operasi real-time yang keras, desainer yang bekerja pada aplikasi respons peristiwa dapat menjamin bahwa respons akan terjadi secara deterministik (dalam jumlah waktu tertentu). Mempertimbangkan contoh inspeksi bagian, menggunakan gen eral-purpose OS dapat mengakibatkan bagian yang tidak diperiksa dalam waktu – karena itu menunda jalur perakitan, memaksa bagian yang akan dibuang, atau mengirimkan bagian yang berpotensi rusak.

Sebaliknya, sistem kontrol loop tertutup, seperti sistem kontrol jelajah otomotif, terus memproses data umpan balik untuk menyesuaikan satu atau lebih output. Karena setiap nilai output tergantung pada pemrosesan data input dalam jumlah waktu yang tetap, sangat penting bahwa tenggat waktu loop terpenuhi untuk memastikan bahwa output yang benar dihasilkan. Apa yang akan terjadi jika sistem cruise control gagal menentukan pengaturan throttle pada titik waktu tertentu? Sekali lagi, sistem operasi real-time yang keras dapat menjamin bahwa data input sistem kontrol diproses dalam jumlah waktu yang konsisten (dengan maksimum kasus terburuk tetap).

Juga harus dicatat bahwa banyak aplikasi yang harus dijalankan untuk waktu yang lama dapat mengambil manfaat dari keandalan yang disediakan RTOS. Karena sistem operasi real-time biasanya menjalankan perangkat lunak minimal daripada banyak aplikasi dan proses pada saat yang sama, mereka sangat cocok untuk sistem yang memerlukan operasi 24-7 atau di mana down-time tidak dapat diterima atau mahal.

Bagaimana OS Real-Time Berbeda dari OS

Sistem operasi seperti Microsoft Windows dan Mac OS dapat menyediakan platform yang sangat baik untuk mengembangkan dan menjalankan aplikasi pengukuran dan kontrol yang tidak penting. Namun, sistem operasi ini dirancang untuk kasus penggunaan yang berbeda dari sistem operasi waktu nyata, dan bukan platform yang ideal untuk menjalankan aplikasi yang membutuhkan waktu yang tepat atau waktu yang diperpanjang. Bagian ini akan mengidentifikasi beberapa perbedaan utama yang tersembunyi di antara kedua jenis sistem operasi, dan menjelaskan apa yang dapat Anda harapkan saat memprogram aplikasi real-time.

Menentukan Prioritas

Saat memprogram aplikasi, sebagian besar sistem operasi (dari jenis apa pun) memungkinkan pemrogram untuk menentukan prioritas untuk keseluruhan aplikasi dan bahkan untuk berbagai tugas dalam aplikasi (utas). Prioritas ini berfungsi sebagai sinyal ke OS, yang menentukan operasi mana yang dirasa paling penting oleh desainer. Tujuannya adalah bahwa jika dua atau lebih tugas siap dijalankan pada saat yang sama, OS akan menjalankan tugas dengan prioritas yang lebih tinggi.

Dalam praktiknya, sistem operasi untuk tujuan umum tidak selalu mengikuti prioritas yang diprogram ini dengan ketat. Karena sistem operasi untuk keperluan umum dioptimalkan untuk menjalankan berbagai aplikasi dan proses secara bersamaan, mereka biasanya bekerja untuk memastikan bahwa semua tugas menerima setidaknya beberapa waktu pemrosesan. Akibatnya, tugas-tugas berprioritas rendah dalam beberapa kasus dapat meningkatkan prioritas mereka di atas tugas-tugas prioritas lebih tinggi lainnya. Ini memastikan sejumlah run-time untuk setiap tugas, tetapi berarti bahwa keinginan perancang tidak selalu diikuti.

Sebaliknya, sistem operasi real-time mengikuti prioritas programmer jauh lebih ketat. Pada sebagian besar sistem operasi waktu nyata, jika tugas prioritas tinggi menggunakan 100% prosesor, tidak ada tugas prioritas rendah lainnya yang akan berjalan sampai tugas prioritas tinggi selesai. Oleh karena itu, perancang sistem waktu-nyata harus memprogram aplikasi mereka dengan hati-hati dengan prioritas dalam pikiran. Dalam aplikasi waktu nyata yang khas, seorang perancang akan menempatkan kode kritis waktu (mis. Respons acara atau kode kontrol) di satu bagian dengan prioritas yang sangat tinggi. Kode lain yang kurang penting seperti masuk ke disk atau komunikasi jaringan dapat digabungkan dalam bagian dengan prioritas lebih rendah.

Latensi

Latensi interupsi diukur sebagai jumlah waktu antara saat suatu perangkat menghasilkan interupsi dan ketika perangkat itu diservis. Sementara sistem operasi untuk keperluan umum mungkin memerlukan sejumlah waktu variabel untuk menanggapi interupsi yang diberikan, sistem operasi waktu nyata harus menjamin bahwa semua interupsi akan dilayani dalam jumlah waktu maksimum tertentu. Dengan kata lain, latensi interupsi sistem operasi waktu-nyata harus dibatasi.

Sistem Operasi Real Time

Performa

Satu kesalahpahaman umum adalah bahwa sistem operasi waktu nyata memiliki kinerja yang lebih baik daripada sistem operasi tujuan umum lainnya. Sementara sistem operasi waktu nyata dapat memberikan kinerja yang lebih baik dalam beberapa kasus karena kurang multitasking antara aplikasi dan layanan, ini bukan aturan. Kinerja aplikasi aktual akan tergantung pada kecepatan CPU, arsitektur memori, karakteristik program, dan banyak lagi.

Meskipun sistem operasi real-time mungkin atau tidak dapat meningkatkan kecepatan eksekusi, mereka dapat memberikan karakteristik waktu yang jauh lebih tepat dan dapat diprediksi daripada sistem operasi tujuan umum.

Bagaimana Cara CPU Bekerja?

Bagaimana Cara CPU Bekerja?

Bagaimana Cara CPU Bekerja? – Central processing unit (CPU) atau prosesor, adalah unit yang melakukan sebagian besar pemrosesan di dalam komputer. Ini memproses semua instruksi yang diterima oleh perangkat lunak yang berjalan pada PC dan oleh komponen perangkat keras lainnya, dan bertindak sebagai kalkulator yang kuat.

CPU ditempatkan ke soket berbentuk persegi khusus yang ditemukan di semua motherboard dengan memasukkan konektor logam atau pin yang ditemukan di bagian bawah. Setiap soket dibangun dengan tata letak pin khusus untuk mendukung hanya jenis prosesor tertentu. https://www.mustangcontracting.com/

Karena CPU modern menghasilkan banyak panas dan cenderung terlalu panas, mereka harus tetap dingin dengan kipas atau sistem ventilasi yang tepat, dan ditutupi dengan pendingin dan pasta termal. slot online

Untuk mengontrol instruksi dan aliran data ke dan dari bagian lain dari komputer, CPU sangat bergantung pada chipset, yang merupakan kelompok microchip yang terletak di motherboard.

Bagaimana Cara CPU Bekerja?

Istilah ini juga dikenal sebagai prosesor pusat, mikroprosesor atau chip.

Dua komponen utama dari sebuah prosesor

  • Unit kontrol – CU
  • Unit aritmatika dan logis – ALU

Unit Kontrol – CU

Unit kontrol CU adalah bagian dari CPU yang membantu mengatur eksekusi instruksi. Ia memberi tahu apa yang harus dilakukan. Menurut instruksi, ini membantu mengaktifkan kabel yang menghubungkan CPU ke bagian lain dari komputer termasuk ALU. Unit kontrol adalah komponen pertama dari CPU yang menerima instruksi untuk diproses.

Ada dua jenis unit kontrol:

  • Unit Kontrol Bawaan.
  • Unit Kontrol Mikroprogrammable (Mikroprogram).

Unit kontrol bawaan adalah perangkat keras dan membutuhkan perubahan pada perangkat keras untuk menambahkan memodifikasinya berfungsi di mana sebagai unit kontrol dapat diprogram untuk mengubah perilaku itu. Hardwired CU lebih cepat dalam memproses instruksi sedangkan mikroprogrammable lebih fleksibel.

Unit aritmatika dan logis – ALU

Unit aritmatika dan logis ALU seperti namanya melakukan semua perhitungan aritmatika dan logis. ALU melakukan operasi seperti penambahan, pengurangan. ALU terdiri dari sirkuit logika atau gerbang logika yang melakukan operasi ini.

Kebanyakan gerbang logika menerima dua input dan menghasilkan satu output

Penyimpanan – Register dan Memori

Tugas utama CPU adalah menjalankan instruksi yang diberikan kepadanya. Untuk memproses instruksi ini sebagian besar waktu, itu membutuhkan data. Beberapa data adalah data antara, beberapa di antaranya adalah input dan lainnya adalah output. Data-data ini bersama dengan instruksi disimpan dalam penyimpanan berikut:

Register adalah seperangkat tempat kecil di mana data dapat disimpan. Register adalah kombinasi dari kait. Kait juga dikenal sebagai sandal jepit adalah kombinasi dari gerbang logika yang menyimpan 1 bit informasi.

Sebuah kait memiliki dua kabel input, kabel tulis dan input dan satu kabel output. Kami dapat mengaktifkan kabel tulis untuk membuat perubahan pada data yang disimpan. Ketika kabel tulis dinonaktifkan, output selalu tetap sama.

Kait SR, dibangun dari sepasang gerbang NOR yang berpasangan silang

CPU memiliki register untuk menyimpan data output. Mengirim ke memori utama (RAM) akan menjadi lambat karena merupakan data antara. Data ini dikirim ke register lain yang terhubung oleh BUS. Register dapat menyimpan instruksi, data output, alamat penyimpanan atau jenis data apa pun.

Ram adalah kumpulan register yang diatur dan dipadatkan bersama dengan cara yang dioptimalkan sehingga dapat menyimpan jumlah data yang lebih tinggi. RAM (Random Access Memory) volatile dan datanya hilang ketika kita mematikan daya. Karena RAM adalah kumpulan register untuk membaca / menulis data, RAM mengambil input dari alamat 8bit, input data untuk data aktual yang akan disimpan dan akhirnya membaca dan menulis enabler yang berfungsi seperti halnya untuk kait.

Instruksi

Instruksi adalah perhitungan tingkat granular yang dapat dilakukan komputer. Ada berbagai jenis instruksi yang dapat diproses CPU.

Instruksi meliputi:

  • Aritmatika seperti menambah dan mengurangi
  • Instruksi logika seperti dan, atau, dan tidak
  • Instruksi data seperti memindahkan, input, output, memuat, dan menyimpan
  • Instruksi Kontrol Aliran seperti goto, jika … goto, panggilan, dan kembali
  • Beritahu CPU bahwa program telah berhenti

Instruksi diberikan ke komputer menggunakan bahasa rakitan atau dihasilkan oleh kompiler atau ditafsirkan dalam beberapa bahasa tingkat tinggi.

Instruksi ini tertanam di dalam CPU. ALU berisi aritmatika dan logis di mana sebagai aliran kontrol dikelola oleh CU.

Dalam satu siklus clock komputer dapat melakukan satu instruksi tetapi komputer modern dapat melakukan lebih dari satu instruksi.

Sekelompok instruksi yang dapat dilakukan komputer disebut set instruksi.

Jam CPU / CPU Clock

Siklus jam / Clock cycle

Kecepatan komputer ditentukan oleh siklus jamnya. Ini adalah jumlah periode jam per detik yang digunakan komputer. Satu siklus jam sangat kecil seperti sekitar 250 * 10 * -12 detik. Semakin tinggi clock cycle, semakin cepat prosesornya.

Siklus jam CPU diukur dalam gHz (Gigahertz). 1gHz sama dengan 10 ⁹ Hz (hertz). Hertz berarti satu detik. Jadi 1Gigahertz berarti 10 ⁹ siklus per detik.

Semakin cepat siklus clock, semakin banyak instruksi yang dapat dijalankan CPU.

Siklus jam = laju 1 / jam

Waktu CPU = jumlah siklus / laju jam

Ini berarti untuk meningkatkan waktu CPU kita dapat meningkatkan laju jam atau mengurangi jumlah siklus jam dengan mengoptimalkan instruksi yang kami berikan ke CPU. Beberapa prosesor memberikan kemampuan untuk meningkatkan siklus clock tetapi karena perubahan fisik mungkin ada pemanasan yang berlebihan dan bahkan kebakaran.

Bagaimana cara instruksi dijalankan

Instruksi disimpan pada RAM secara berurutan. Untuk Instruksi CPU hipotetis terdiri dari kode OP (kode operasional) dan memori atau alamat register.

Ada dua register di dalam register Instruksi Unit Kontrol (IR) yang memuat kode OP dari instruksi dan register alamat Instruksi yang memuat alamat arus instruksi pelaksanaan. Ada register lain di dalam CPU yang menyimpan nilai yang disimpan dalam alamat 4 bit terakhir dari instruksi.

Mari kita ambil contoh dari serangkaian instruksi yang menambahkan dua angka. Berikut ini adalah instruksi bersama dengan deskripsi di sana:

LANGKAH 1 – LOAD_A 8:

Instruksi awalnya disimpan dalam RAM seperti katakanlah <1100 1000>. 4 bit pertama adalah kode op. Ini menentukan instruksi. Instruksi ini diambil ke IR dari unit kontrol. Instruksi diterjemahkan menjadi load_A yang artinya perlu memuat data dalam alamat 1000 yang merupakan 4 bit terakhir dari instruksi untuk mendaftar A.

LANGKAH 2 – LOAD_B 2

Mirip dengan di atas ini memuat data dalam alamat memori 2 (0010) ke register CPU B.

LANGKAH 3 – TAMBAHKAN B A

Sekarang instruksi selanjutnya adalah menambahkan dua angka ini. Di sini CU memberitahu ALU untuk melakukan operasi penambahan dan menyimpan hasilnya kembali untuk mendaftar A.

LANGKAH 4 – STORE_A 23

Ini adalah seperangkat instruksi yang sangat sederhana yang membantu menambah dua angka.

Kita telah berhasil menambahkan dua angka!

BUS

Semua data antara CPU, register, memori dan perangkat IO ditransfer melalui bus. Untuk memuat data ke memori yang baru saja ditambahkan, CPU menempatkan alamat memori ke bus alamat dan hasil penjumlahan ke bus data dan memungkinkan sinyal yang tepat di bus kontrol. Dengan cara ini data dimuat ke memori dengan bantuan bus.

Cache

CPU juga memiliki mekanisme untuk mengambil instruksi sebelum di-cache. Seperti yang kita ketahui ada jutaan instruksi yang dapat diselesaikan prosesor dalam satu detik. Ini berarti bahwa akan ada lebih banyak waktu yang dihabiskan untuk mengambil instruksi dari RAM daripada mengeksekusi mereka. Jadi cache CPU lebih dulu mengambil beberapa instruksi dan juga data sehingga eksekusi menjadi cepat.

Jika data dalam cache dan memori operasi berbeda, data ditandai sebagai bit yang kotor.

Instruksi pipelining

CPU modern menggunakan pipeline Instruksi untuk paralelisasi dalam eksekusi instruksi. Ambil, Dekode, Jalankan. Ketika satu instruksi berada dalam fase decode, CPU dapat memproses instruksi lain untuk mengambil fase.

Ini memiliki satu masalah ketika satu instruksi bergantung pada instruksi lainnya. Jadi prosesor menjalankan instruksi yang tidak tergantung dan dalam urutan yang berbeda.

Komputer multi-inti / Multi core computer

Ini pada dasarnya adalah CPU yang berbeda tetapi memiliki beberapa sumber daya bersama seperti cache.

Performa

Kinerja CPU ditentukan oleh waktu eksekusi itu.

Kinerja = 1 / waktu eksekusi

katakanlah membutuhkan waktu 20ms untuk sebuah program untuk dieksekusi. Kinerja CPU adalah 1/20 = 0,05 ms

Kinerja relatif = waktu eksekusi 1 / waktu eksekusi 2

Faktor yang dipertimbangkan untuk kinerja CPU adalah waktu pelaksanaan instruksi dan kecepatan jam CPU. Jadi untuk meningkatkan kinerja suatu program kita perlu menambah kecepatan clock atau mengurangi jumlah instruksi dalam suatu program. Kecepatan prosesor terbatas dan komputer modern dengan multi-core dapat mendukung jutaan instruksi per detik. Tetapi jika program yang kami tulis memiliki banyak instruksi, ini akan menurunkan kinerja keseluruhan.

Bagaimana Cara CPU Bekerja?

Notasi O besar menentukan dengan input yang diberikan, bagaimana kinerja akan terpengaruh.

Ada banyak optimasi yang dilakukan dalam CPU untuk membuatnya lebih cepat dan melakukan sebanyak yang dia bisa. Saat menulis program apa pun kita perlu mempertimbangkan bagaimana mengurangi jumlah instruksi yang kami berikan ke CPU akan meningkatkan kinerja program komputer.