Sistem terbenam: Perbedaan antara revisi
penambahan kata pengantar |
Reno-Sifana (bicara | kontrib) k Perbaikan Kosmetika |
||
(46 revisi perantara oleh 26 pengguna tidak ditampilkan) | |||
Baris 1: | Baris 1: | ||
[[Berkas:ADSL modem router internals labeled.jpg|thumb|300px|Gambar rangkaian elektronik dari Netgear DG632 [[ADSL]] [[Modem]]/[[Router]]. Salah satu contoh sistem benam modern.]] |
|||
{{terjemah|Inggris|topik=teknologi informasi}} |
{{terjemah|Inggris|topik=teknologi informasi}} |
||
[[Berkas:ADSL modem router internals labeled.jpg|jmpl|250px|Gambar rangkaian elektronik dari [[modem]]/[[perute]] [[ADSL]] Netgear DG632. Salah satu contoh sistem terbenam modern.]] |
|||
'''Sistem benam''' adalah sistem [[komputer]] tujuan-khusus, yang seluruhnya dimasukkan ke dalam alat yang dia kontrol.Kata benam (''embedded'') menunjukkan bahwa sistem ini merupakan bagian yang tidak dapat berdiri sendiri. Sebuah sistem benam memiliki kebutuhan tertentu dan melakukan tugas yang telah diset sebelumnya, tidak seperti [[komputer pribadi]] serba guna. Contoh sistem atau aplikasinya antara lain adalah instrumentasi medik, ''process control'', ''automated vehicles control'', dan perangkat komunikasi. Sistem benam biasanya diimplementasikan dengan menggunakan [[mikrokontroler]]. |
|||
[[Berkas:DHCOM Computer On Module - AM35x.jpg|jmpl|Sistem terbenam pada kartu [[colok-masuk]] dengan [[prosesor]], [[memori]], [[catu daya]], dan antarmuka eksternal]] |
|||
'''Sistem terbenam''', '''sistem tersemat''', atau '''sistem tertanam''' ({{lang-en|Embedded system}}) adalah sistem [[komputer]] tujuan-khusus dengan seluruh bagian yang diperlukan dimasukkan menjadi satu dalam perangkat tersebut. Kata terbenam atau tersemat (''embedded'') menunjukkan bahwa sistem ini merupakan perangkat lengkap yang termasuk bagian dari sistem mekanik dan elektrik. Sebuah sistem terbenam memiliki kebutuhan tertentu dan melakukan tugas yang telah diatur sebelumnya, tidak seperti [[komputer pribadi]] serba guna. Contoh sistem atau aplikasinya antara lain adalah instrumentasi medis, ''process control'', ''automated vehicles control'', dan perangkat komunikasi. Sistem terbenam biasanya diimplementasi menggunakan [[mikrokontroler|pengendali mikro]]. |
|||
== Contoh Sistem Terbenam == |
|||
== Sejarah == |
|||
<!-- |
|||
== History == |
|||
[[Berkas:Apollo-guidance-computer.jpg|thumb|300px|right|Apollo Guidance Computer.{{br}}''source:'' The Computer History Museum ([http://www.computerhistory.org/copyright/ fair use])]] |
|||
The first recognizably modern embedded system was the [[Apollo Guidance Computer]], developed by [[Charles Stark Draper]] at the [[MIT Instrumentation Laboratory]]. Each flight to the moon had two. |
|||
They ran the [[inertial guidance system]]s of both the command module and [[Lunar Excursion Module|LEM]]. |
|||
At the project's inception, the Apollo guidance computer was considered the riskiest item in the Apollo project. The use of the then new monolithic [[integrated circuit]]s, to reduce the size and weight, increased this risk. |
|||
[[Berkas:Minuteman I Computer D-17.jpg|thumb|left|Autonetics D-17 guidance computer from a Minuteman I missile.]] |
|||
The first mass-produced embedded system was the guidance computer for the [[Minuteman missile]] in 1961. It was the Autonetics D-17 guidance computer, built using discrete [[transistor]] logic and a [[hard disk]] for main memory. When the Minuteman II went into production in 1966, the D-17 was replaced with a new computer that used integrated circuits, and was the first volume user of them. Without this program, integrated circuits might never have reached a usable price-point. |
|||
The crucial design features of the Minuteman computer were that its guidance algorithm could be reprogrammed later in the program, to make the missile more accurate, and the computer could also test the missile, saving cable and connector weight. |
|||
--> |
|||
== Contoh dari sistem benam == |
|||
<!-- this section goes first to give people an idea of what we're talking about --> |
<!-- this section goes first to give people an idea of what we're talking about --> |
||
* [[atm| |
* [[atm|Anjungan Tunai Mandiri]] (ATM) |
||
* [[Telepon genggam]] dan [[telephone switch]] |
* [[Telepon genggam]] dan [[telephone switch|saklar telepon]] |
||
* Peralatan [[jaringan komputer]], termasuk [[router]], [[timeserver]] dan [[firewall (networking)|firewall]] |
* Peralatan [[jaringan komputer|jejaring komputer]], termasuk [[router|penghala]], ''[[timeserver]]'' dan [[firewall (networking)|''firewall'']] |
||
* [[printer komputer]] |
* [[printer komputer|Mesin cetak]] |
||
* [[copier]] |
* [[copier|Mesin salin]] |
||
* [[disk drive]] ( |
* [[disk drive|Kandar cakram]] (kandar cakram liuk dan cakram keras) |
||
* [[electronic control unit| |
* [[electronic control unit|Pengendali mesin dalam]] dan [[antilock brake controller|pengendali rem anti-kunci]] untuk mobil |
||
* |
* [[home automation|Produk rumahan yang diotomatiskan]], seperti [[thermostat|termostat]], [[pendingin ruangan]], ''[[sprinkler]]'', dan sistem [[security monitoring|kamera keamanan]] |
||
* [[kalkulator |
* [[kalkulator|Mesin hitung genggam]] |
||
* |
* [[Peralatan rumah tangga|Perabotan rumah]], termasuk [[microwave|ketuhar gelombang mikro]], [[mesin cuci]], [[televisi|seperangkat TV]], ataupun [[DVD|pemutar/perekam DVD]] |
||
* [[inertial guidance system]] |
* [[inertial guidance system|Sistem pemanduan lembam]] (''inertial guidance system''), perangkat keras/lunak kendali penerbangaan, dan sistem terpadu lainnya pada [[pesawat udara]] dan [[rudal]] |
||
* [[medical equipment]] |
* [[medical equipment|Peralatan kesehatan]] |
||
* [[ |
* [[Alat ukur]] seperti [[osiloskop|osiloskop berpenyimpanan digital]], [[logic analyzer|penganalisis logika]], dan [[spectrum analyzer|penganalisis spektrum]] |
||
* [[Jam tangan]] serbaguna |
|||
* multifunction [[wristwatch]]es |
|||
* [[multifunction printer| |
* [[multifunction printer|Mesin cetak serbaguna]] (MFP) |
||
* [[ |
* [[Asisten digital pribadi]] (PDA) yang mana adalah komputer genggam kecil dengan [[personal information manager|PIM]] dan aplikasi lainnya |
||
* [[mobile phones]] |
* [[mobile phones|Ponsel]] dengan kemampuan tambahan, misalnya, asisten digital ginerak yang terdapat PDA dan adanya dukungan [[Java programming language|Java]] ([[MIDP]]) |
||
* [[programmable logic controller]] |
* [[programmable logic controller|Pengendali logika tertataolahkan]] (PLC) untuk pengawasan dan automasi di bidang industri |
||
* [[Konsol permainan video|Konsol permainan]] dan [[konsol permainan genggam|konsol genggam]] yang ajek |
|||
* stationary [[videogame console]]s and [[handheld game console]]s |
|||
* [[wearable computer]] |
* [[wearable computer|Komputer mampu dikenakan]] |
||
<!-- |
<!-- |
||
==Characteristics== |
==Characteristics== |
||
Baris 54: | Baris 35: | ||
Since many embedded systems are mass-produced by the millions, reducing cost is a major concern. Some embedded systems do not require great processing power or resources and this allows production costs to be minimized by using a (relatively) slow processor and a small memory size. |
Since many embedded systems are mass-produced by the millions, reducing cost is a major concern. Some embedded systems do not require great processing power or resources and this allows production costs to be minimized by using a (relatively) slow processor and a small memory size. |
||
[[Firmware]] is the name for [[software]] that is embedded in hardware devices, e.g. in one or more [[read-only memory|ROM]]/[[Flash memory|Flash]] memory [[integrated circuit|IC]] chips. |
[[Firmware]] is the name for [[software]] that is embedded in hardware devices, e.g. in one or more [[read-only memory|ROM]]/[[Flash memory|Flash]] memory [[integrated circuit|IC]] chips. |
||
Programs on an embedded system often run with [[real-time]] constraints with limited [[computer hardware|hardware]] resources: often there is no disk drive, operating system, keyboard or screen. The software may not have anything remotely like a file system, or if one is present, a [[flash drive]] may replace rotating media. If a user interface is present, it may be a small keypad and [[liquid crystal display]]. |
Programs on an embedded system often run with [[real-time]] constraints with limited [[computer hardware|hardware]] resources: often there is no disk drive, operating system, keyboard or screen. The software may not have anything remotely like a file system, or if one is present, a [[flash drive]] may replace rotating media. If a user interface is present, it may be a small keypad and [[liquid crystal display]]. |
||
Baris 63: | Baris 44: | ||
--> |
--> |
||
== Rancangan |
== Rancangan Sistem Terbenam == |
||
Peralatan elektronik biasanya menggunakan [[mikroprosesor]] atau sebuah [[mikrokontroler]]. |
Peralatan elektronik biasanya menggunakan [[mikroprosesor|pengolah mikro]] atau sebuah [[mikrokontroler|pengendali mikro]]. |
||
Beberapa sistem besar atau tua menggunakan |
Beberapa sistem besar atau tua menggunakan [[mainframe|komputer kerangka utama]] serba guna atau [[komputer mini]]. |
||
<!-- |
<!-- |
||
=== User interfaces === |
=== User interfaces === |
||
Baris 79: | Baris 59: | ||
For example, Boeing's standard test interface is a button and some lights. When you press the button, all the lights turn on. When you release the button, the lights with failures stay on. The labels are in [[Basic English]]. |
For example, Boeing's standard test interface is a button and some lights. When you press the button, all the lights turn on. When you release the button, the lights with failures stay on. The labels are in [[Basic English]]. |
||
Another e |
|||
xample is probably right next to you. Look at a computer printer. Very often the lights are labelled with stick-on labels that can be printed in any language. In some markets, devices are delivered with several sets of labels, so customers can pick the most comfortable language. |
|||
Designers use colors. Red means the users can get hurt (think of blood). Yellow means something might be wrong. Green means the status is OK/good. This is intentionally like a stop-light, because most people understand those. |
Designers use colors. Red means the users can get hurt (think of blood). Yellow means something might be wrong. Green means the status is OK/good. This is intentionally like a stop-light, because most people understand those. |
||
Baris 86: | Baris 66: | ||
Most designs arrange for a display to change immediately after a user action. If the machine is going to do anything, it usually starts within 7 seconds, or gives progress reports. |
Most designs arrange for a display to change immediately after a user action. If the machine is going to do anything, it usually starts within 7 seconds, or gives progress reports. |
||
If a design needs a screen, many designers use plain text. It's preferred because users have been reading signs for years. A [[GUI]] is pretty and can do anything, but typically adds a year from artist, approval and translator delays and one or two programmers to a project's cost, without adding any value. Often, an overly-clever [[GUI]] actually confuses users, because it can use unfamiliar symbols. |
If a design needs a screen, many designers use plain text. It's preferred because users have been reading signs for years. A [[GUI]] is pretty and can do anything, but typically adds a year from artist, approval and translator delays and one or two programmers to a project's cost, without adding any value. Often, an overly-clever [[GUI]] actually confuses users, because it can use unfamiliar symbols. |
||
If a design needs to point to parts of the machine (as in copiers), these are often labelled with numbers on the actual machine, that are visible with the doors closed. |
If a design needs to point to parts of the machine (as in copiers), these are often labelled with numbers on the actual machine, that are visible with the doors closed. |
||
Baris 111: | Baris 91: | ||
--> |
--> |
||
=== |
=== Pelantar === |
||
Ada banyak [[arsitektur CPU]] berbeda yang digunakan dalam rancangan |
Ada banyak [[arsitektur CPU]] berbeda yang digunakan dalam rancangan terbenam seperti [[ARM]], [[MIPS]], [[Coldfire]]/68k, [[PowerPC]], [[X86]], [[PIC]], [[8051]], dll. |
||
<!-- |
<!-- |
||
This in contrast to the '''desktop computer''' market, which [[as of 2003|as of this writing (2003)]] is limited to just a few competing architectures, mainly the [[Intel]]/[[AMD]] [[x86]], and the [[Apple Computer|Apple]]/[[Motorola]]/[[IBM]] [[PowerPC]], used in the [[Apple Macintosh]]. Side note: with the growing acceptance of [[Java programming language|Java]] in this field, there is a tendency to even further eliminate the dependency on specific CPU/hardware (and OS) requirements. |
This in contrast to the '''desktop computer''' market, which [[as of 2003|as of this writing (2003)]] is limited to just a few competing architectures, mainly the [[Intel]]/[[AMD]] [[x86]], and the [[Apple Computer|Apple]]/[[Motorola]]/[[IBM]] [[PowerPC]], used in the [[Apple Macintosh]]. Side note: with the growing acceptance of [[Java programming language|Java]] in this field, there is a tendency to even further eliminate the dependency on specific CPU/hardware (and OS) requirements. |
||
Baris 120: | Baris 99: | ||
A common configuration for very-high-volume embedded systems is the [[system on a chip]], an [[application-specific integrated circuit]], for which the CPU was purchased as intellectual property to add to the IC's design. A related common scheme is to use a [[field-programmable gate-array]], and program it with all the logic, including the CPU. Most modern [[FPGA]]s are designed for this purpose. |
A common configuration for very-high-volume embedded systems is the [[system on a chip]], an [[application-specific integrated circuit]], for which the CPU was purchased as intellectual property to add to the IC's design. A related common scheme is to use a [[field-programmable gate-array]], and program it with all the logic, including the CPU. Most modern [[FPGA]]s are designed for this purpose. |
||
===Tools=== |
===Tools=== |
||
Baris 142: | Baris 120: | ||
===Debugging=== |
===Debugging=== |
||
[[Debugging]] is usually performed with an [[in-circuit emulator]], or some type of debugger that can [[interrupt]] the microcontroller's internal [[microcode]]. |
[[Debugging]] is usually performed with an [[in-circuit emulator]], or some type of debugger that can [[interrupt]] the microcontroller's internal [[microcode]]. |
||
The microcode interrupt lets the debugger operate in hardware in which only the CPU works. The CPU-based debugger can be used to test and debug the electronics of the computer from the viewpoint of the CPU. This feature was pioneered on the [[PDP-11]]. |
The microcode interrupt lets the debugger operate in hardware in which only the CPU works. The CPU-based debugger can be used to test and debug the electronics of the computer from the viewpoint of the CPU. This feature was pioneered on the [[PDP-11]]. |
||
Baris 154: | Baris 132: | ||
Most such open environments have a reference design that runs on a [[personal computer]]. Much of the software for such systems can be developed on a conventional PC. However, the porting of the open environment to the specialized electronics and the development of the device drivers for the electronics are usually still the responsibility of a classic embedded software engineer. In some cases, the engineer works for the integrated circuit manufacturer, but there is still such a person somewhere. |
Most such open environments have a reference design that runs on a [[personal computer]]. Much of the software for such systems can be developed on a conventional PC. However, the porting of the open environment to the specialized electronics and the development of the device drivers for the electronics are usually still the responsibility of a classic embedded software engineer. In some cases, the engineer works for the integrated circuit manufacturer, but there is still such a person somewhere. |
||
==PC or mainframe programmers first encountering this sort of programming often become confused about design priorities and acceptable methods. Mentoring, code-reviews and egoless programming are recommended. |
|||
As the complexity of embedded systems grows, higher level tools and operating systems are migrating into machinery where it makes sense. For example, [[cellphone]]s, [[personal digital assistant]]s and other consumer computers often need significant software that is purchased or provided by a person other than the manufacturer of the electronics. In these systems, an open programming environment such as [[Linux]], [[OSGi]] or [[Embedded Java]] is required so that the third-party software provider can sell to a large market. |
|||
=== Start-up === |
|||
Most such open environments have a reference design that runs on a [[personal computer]]. Much of the software for such systems can be developed on a conventional PC. However, the porting of the open environment to the specialized electronics and the development of the device drivers for the electronics are usually still the responsibility of a classic embedded software engineer. In some cases, the engineer works for the integrated circuit manufacturer, but there is still such a person somewhere. |
|||
All embedded systems have start-up code. Usually it disables interrupts, sets up the electronics, tests the computer (RAM, CPU and software), and then starts the application code. Many embedded systems recover from short-term power failures by restarting (without recent self-tests). Restart times under a tenth of a second are common. |
|||
Many designers have found one or more hardware plus software-controlled [[light-emitting diode|LED]]s useful to indicate errors during development (and in some instances, after product release, to produce [[troubleshooting]] diagnostics). A common scheme is to have the electronics turn on all of the LED(s) at reset (thereby proving that power is applied and the LEDs themselves work), whereupon the software changes the LED pattern as the [[Power-On Self Test]] executes. After that, the software may blink the LED(s) or set up light patterns during normal operation to indicate program execution progress and/or errors. This serves to reassure most technicians/engineers and some users. |
|||
== Types of embedded software architectures == |
|||
There are several basically different types of software architectures in common use. |
|||
=== The control loop === |
=== The control loop === |
||
Baris 174: | Baris 147: | ||
Any expected hardware event should be backed-up with a software timer. Hardware events fail about once in a trillion times. That's about once a year with modern hardware. With a million mass-produced devices, leaving out a software timer is a business disaster. |
Any expected hardware event should be backed-up with a software timer. Hardware events fail about once in a trillion times. That's about once a year with modern hardware. With a million mass-produced devices, leaving out a software timer is a business disaster. |
||
State machines may be implemented with a function-pointer per state-machine (in C++, C or assembly, anyway). A change of state stores a different function into the pointer. The function pointer is executed every time the loop runs. |
State machines may be implemented with a function-pointer per state-machine (in C++, C or assembly, anyway). A change of state stores a different function into the pointer. The function pointer is executed every time the loop runs. |
||
Many designers recommend reading each IO device once per loop, and storing the result so the logic acts on consistent values. |
Many designers recommend reading each IO device once per loop, and storing the result so the logic acts on consistent values. |
||
Baris 191: | Baris 164: | ||
Another major weakness of this system is that it can become complex to add new features. Algorithms that take a long time to run must be carefully broken down so only a little piece gets done each time through the main loop. |
Another major weakness of this system is that it can become complex to add new features. Algorithms that take a long time to run must be carefully broken down so only a little piece gets done each time through the main loop. |
||
This system's strength is its simplicity, and on small pieces of software the loop is usually so fast that nobody cares that it is not predictable. |
This system's strength is its simplicity, and on small pieces of software the loop is usually so fast that nobody cares that it is not predictable. |
||
Another advantage is that this system guarantees that the software will run. There is no mysterious operating system to blame for bad behavior. |
Another advantage is that this system guarantees that the software will run. There is no mysterious operating system to blame for bad behavior. |
||
Baris 203: | Baris 176: | ||
=== Preemptive timers === |
=== Preemptive timers === |
||
Take any of the above systems, but add a timer system that runs subroutines from a timer interrupt. This adds completely new capabilities to the system. For the first time, the timer routines can occur at a guaranteed time. |
Take any of the above systems, but add a timer system that runs subroutines from a timer interrupt. This adds completely new capabilities to the system. For the first time, the timer routines can occur at a guaranteed time. |
||
Also, for the first time, the code can step on its own data structures at unexpected times. The timer routines must be treated with the same care as interrupt routines. |
Also, for the first time, the code can step on its own data structures at unexpected times. The timer routines must be treated with the same care as interrupt routines. |
||
=== Preemptive tasks === |
=== Preemptive tasks === |
||
Take the above nonpreemptive task system, and run it from a preemptive timer or other interrupts. |
Take the above nonpreemptive task system, and run it from a preemptive timer or other interrupts. |
||
Suddenly the system is quite different. Any piece of task code can damage the data of another |
Suddenly the system is quite different. Any piece of task code can damage the data of another task-they must be precisely separated. Access to shared data must be rigidly controlled by some synchronization strategy, for example message queues or semaphores. (Recently [[non-blocking synchronization]] strategies have been developed). |
||
Often, at this stage, the developing organization buys a [[real-time operating system]]. This can be a wise decision if the organization lacks people with the skills to write one, or if the port of the operating system to the hardware will be used in several products. Otherwise, be aware that it usually adds six to eight weeks to the schedule, and forever after programmers can blame delays on it. |
Often, at this stage, the developing organization buys a [[real-time operating system]]. This can be a wise decision if the organization lacks people with the skills to write one, or if the port of the operating system to the hardware will be used in several products. Otherwise, be aware that it usually adds six to eight weeks to the schedule, and forever after programmers can blame delays on it. |
||
Baris 218: | Baris 191: | ||
* Operating systems are specially-packaged libraries of reusable code. If the code does something useful, the designer saves time and money. If not, it's worthless. |
* Operating systems are specially-packaged libraries of reusable code. If the code does something useful, the designer saves time and money. If not, it's worthless. |
||
* Operating systems for business systems lack interfaces to embedded hardware. Example: if one uses Linux to write a motor controller or telephone switch, most of the real control operations end up as numbered functions in an IOCTL call. Meanwhile, the normal read, write, fseek, interface is purposeless. So the operating system actually interferes with development. |
* Operating systems for business systems lack interfaces to embedded hardware. Example: if one uses Linux to write a motor controller or telephone switch, most of the real control operations end up as numbered functions in an IOCTL call. Meanwhile, the normal read, write, fseek, interface is purposeless. So the operating system actually interferes with development. |
||
* Most embedded systems perform no office work, so most code of office operating systems is wasted. Example: most embedded systems never use a file system or screen, so file system and GUI logic is wasted. Unused code is just a reliability liability. |
* Most embedded systems perform no office work, so most code of office operating systems is wasted. Example: most embedded systems never use a file system or screen, so file system and GUI logic is wasted. Unused code is just a reliability liability. |
||
* Office style operating systems protect the hardware from user programs. That is, they interfere with embedded systems development profoundly. |
* Office style operating systems protect the hardware from user programs. That is, they interfere with embedded systems development profoundly. |
||
* Operating systems must invariably be ported to an embedded system. That is, the hardware driver code must always be written anyway. This is the most difficult part of the operating system, so little is saved by using one. |
* Operating systems must invariably be ported to an embedded system. That is, the hardware driver code must always be written anyway. This is the most difficult part of the operating system, so little is saved by using one. |
||
* The genuinely useful, portable features of operating systems are small pieces of code. Examples: a basic TCP/IP interface is about 3,000 lines of C code; as is a simple file system. If a design needs these, they can be had for less than 10% of the typical embedded system's development budget, without royalty, just by writing them. And, if the needed code is sufficiently generic, the back of embedded systems magazines typically have vendors selling royalty-free C implementation. |
* The genuinely useful, portable features of operating systems are small pieces of code. Examples: a basic TCP/IP interface is about 3,000 lines of C code; as is a simple file system. If a design needs these, they can be had for less than 10% of the typical embedded system's development budget, without royalty, just by writing them. And, if the needed code is sufficiently generic, the back of embedded systems magazines typically have vendors selling royalty-free C implementation. |
||
Baris 235: | Baris 203: | ||
* Hire a real system programmer. They cost a little more, but can save years of debugging, and the associated loss of revenue. |
* Hire a real system programmer. They cost a little more, but can save years of debugging, and the associated loss of revenue. |
||
* RMA ([[rate monotonic analysis]]), can be used to find whether a set of tasks can run under a defined hardware system. In its simplest form, the designer assures that the quickest-finishing tasks have the highest priorities, and that on average, the CPU has at least 30% of its time free. |
* RMA ([[rate monotonic analysis]]), can be used to find whether a set of tasks can run under a defined hardware system. In its simplest form, the designer assures that the quickest-finishing tasks have the highest priorities, and that on average, the CPU has at least 30% of its time free. |
||
* Harmonic tasks optimize CPU efficiency. Basically, designers assure that everything runs from a heartbeat timer. It's hard to do this with a [[real-time operating system]], because these usually switch tasks when they wait for an I/O device. |
* Harmonic tasks optimize CPU efficiency. Basically, designers assure that everything runs from a heartbeat timer. It's hard to do this with a [[real-time operating system]], because these usually switch tasks when they wait for an I/O device. |
||
* Systems with exactly two levels of priority (usually ''running'', and ''interrupts-disabled'') cannot have [[Priority inversion]] problems in which a higher priority task waits for a lower priority task to release a semaphore or other resource. |
* Systems with exactly two levels of priority (usually ''running'', and ''interrupts-disabled'') cannot have [[Priority inversion]] problems in which a higher priority task waits for a lower priority task to release a semaphore or other resource. |
||
* Systems with monitors can't have deadlocks. A [[Critical sections|monitor]] locks a region of code from interrupts or other preemption. If the monitor is only applied to small, fast pieces of code, this can work acceptably well. |
* Systems with monitors can't have deadlocks. A [[Critical sections|monitor]] locks a region of code from interrupts or other preemption. If the monitor is only applied to small, fast pieces of code, this can work acceptably well. |
||
Baris 248: | Baris 212: | ||
== Lihat pula == |
== Lihat pula == |
||
* [[Real-time|Waktu nyata]] |
|||
* [[Sistem operasi waktu-nyata]] (''Real-Time Operating System'', RTOS) |
|||
{{wikibookspar|Wikiversity|Embedded System Engineering}} |
|||
* [[Synchronous programming language|Bahasa penataolahan selaras]] |
|||
* [[Real-time]] |
|||
* [[Mikroprosesor|Pengolah mikro]] |
|||
* [[Sistem operasi waktu-nyata]] (Real-time operating system, RTOS) |
|||
* [[ |
* [[Teknik peranti lunak]] |
||
* [[List of software engineering topics|Daftar topik rekayasa peranti lunak]] |
|||
* [[Mikroprosesor]] |
|||
* [[Firmware|Peranti tegar]] |
|||
* [[Teknik piranti lunak]] |
|||
* [[Information appliance|Perkakas informasi]] |
|||
* [[List of software engineering topics]] |
|||
* [[Bahasa pemrograman|Bahasa penataolahan]] untuk sistem terbenam |
|||
* [[Firmware]] |
|||
** [[Ada programming language|Ada]] |
|||
* [[Information appliance]] |
|||
{{wikibookspar|Programming|Ada}} |
|||
* [[Bahasa pemrograman]] untuk sistem benam |
|||
** [[Ada programming language|Ada]] |
|||
** [[Forth programming language|Forth]] |
** [[Forth programming language|Forth]] |
||
** [[Java programming language|Java]] |
** [[Java programming language|Java]] |
||
* [[operating system| |
* [[operating system|Sistem operasi]] untuk sistem terbenam |
||
** [[Embedded Linux]] |
** [[Embedded Linux|Linux terbenam]] |
||
** [[JavaOS]] |
** [[JavaOS]] |
||
** [[LynxOS]] |
** [[LynxOS]] |
||
Baris 274: | Baris 235: | ||
== Pranala luar == |
== Pranala luar == |
||
{{Commons category|Embedded systems}} |
|||
* [http://www.FreeRTOS.org/implementation/ How a real time operating system works] |
|||
* [ |
* [https://www.youtube.com/watch?v=H-OKGOMoCSI&list=PLo7bVbJhQ6qwlDa-R6pz7tA7kPzn1s5Ae Embedded Systems course with mbed] (2015) di YouTube |
||
* [http://geer.tinho.net/geer.nro.6xi13.txt Trends in Cyber Security and Embedded Systems] Dan Geer, November 2013 |
|||
* [http://msdn.microsoft.com/embedded/ Windows Embedded Developer Center] |
|||
* [https://www.youtube.com/playlist?list=PLPW8O6W-1chwyTzI3BHwBLbGQoPFxPAPM Modern Embedded Systems Programming Video Course] (2013) di YouTube |
|||
* [http://www.vliw.org/book Embedded systems and VLIW processors] |
|||
* [http://www.esweek.org/ Embedded Systems Week (ESWEEK)] acara tahunan dengan konferensi, lokakarya, dan tutorial yang mencakup semua aspek sistem dan perangkat lunak terbenam |
|||
* [http://www.caravan.net/ec2plus/ Embedded C++ Homepage] |
|||
* [http://www.emsig.net/conf/2015/wese/ Workshop on Embedded and Cyber-Physical Systems Education] {{Webarchive|url=https://web.archive.org/web/20180211173413/http://www.emsig.net/conf/2015/wese/ |date=2018-02-11 }}, lokakarya yang mencakup aspek pendidikan sistem terbenam |
|||
* [http://www.qnx.com QNX Homepage] |
|||
* [http://www.embeddedrelated.com Embedded Systems Discussion Groups, Books, Jobs, and More] |
|||
{{Pengendali mikro}} |
|||
* [http://www.eventhelix.com/RealtimeMantra/ Embedded Software Design] |
|||
{{Authority control}} |
|||
* [http://www.emlabs.info/ Universities that have Embedded Systems Research groups] |
|||
* [http://www.embedded.com/ Embedded Systems Programming] |
|||
* [http://ee.cleversoul.com/ The EE Compendium - Electronic Engineering and Embedded Systems Programming] |
|||
[[Kategori:Sistem |
[[Kategori:Sistem terbenam| ]] |
||
{{Komputer-stub}} |
|||
[[als:Eingebettetes System]] |
|||
[[ar:نظام مضمن]] |
|||
[[bg:Вградена система]] |
|||
[[ca:Sistema incrustat]] |
|||
[[cs:Vestavěný systém]] |
|||
[[da:Indlejret system]] |
|||
[[de:Eingebettetes System]] |
|||
[[en:Embedded system]] |
|||
[[es:Sistema embebido]] |
|||
[[fa:سامانه توکار]] |
|||
[[fi:Sulautettu järjestelmä]] |
|||
[[fr:Système embarqué]] |
|||
[[he:מערכת משובצת מחשב]] |
|||
[[hi:एम्बेडेड सिस्टम]] |
|||
[[hu:Beágyazott rendszer]] |
|||
[[it:Sistema embedded]] |
|||
[[ja:組み込みシステム]] |
|||
[[ko:임베디드 시스템]] |
|||
[[ml:എംബെഡഡ് സിസ്റ്റം]] |
|||
[[nl:Embedded system]] |
|||
[[nn:Innbaka system]] |
|||
[[no:Innebygd system]] |
|||
[[pl:System wbudowany]] |
|||
[[pt:Sistema embarcado]] |
|||
[[ro:Sistem înglobat]] |
|||
[[ru:Встраиваемая система]] |
|||
[[simple:Embedded system]] |
|||
[[sk:Vnorený systém]] |
|||
[[sr:Уграђени систем]] |
|||
[[sv:Inbyggt system]] |
|||
[[ta:பதிகணினியியல்]] |
|||
[[th:ระบบฝังตัว]] |
|||
[[tr:Gömülü sistem]] |
|||
[[uk:Вбудована система]] |
|||
[[ur:نظام مدفون]] |
|||
[[vi:Hệ thống nhúng]] |
|||
[[zh:嵌入式系统]] |
Revisi terkini sejak 13 Juli 2024 02.04
Artikel ini perlu diterjemahkan dari bahasa Inggris ke bahasa Indonesia. |
Sistem terbenam, sistem tersemat, atau sistem tertanam (bahasa Inggris: Embedded system) adalah sistem komputer tujuan-khusus dengan seluruh bagian yang diperlukan dimasukkan menjadi satu dalam perangkat tersebut. Kata terbenam atau tersemat (embedded) menunjukkan bahwa sistem ini merupakan perangkat lengkap yang termasuk bagian dari sistem mekanik dan elektrik. Sebuah sistem terbenam memiliki kebutuhan tertentu dan melakukan tugas yang telah diatur sebelumnya, tidak seperti komputer pribadi serba guna. Contoh sistem atau aplikasinya antara lain adalah instrumentasi medis, process control, automated vehicles control, dan perangkat komunikasi. Sistem terbenam biasanya diimplementasi menggunakan pengendali mikro.
Contoh Sistem Terbenam
[sunting | sunting sumber]- Anjungan Tunai Mandiri (ATM)
- Telepon genggam dan saklar telepon
- Peralatan jejaring komputer, termasuk penghala, timeserver dan firewall
- Mesin cetak
- Mesin salin
- Kandar cakram (kandar cakram liuk dan cakram keras)
- Pengendali mesin dalam dan pengendali rem anti-kunci untuk mobil
- Produk rumahan yang diotomatiskan, seperti termostat, pendingin ruangan, sprinkler, dan sistem kamera keamanan
- Mesin hitung genggam
- Perabotan rumah, termasuk ketuhar gelombang mikro, mesin cuci, seperangkat TV, ataupun pemutar/perekam DVD
- Sistem pemanduan lembam (inertial guidance system), perangkat keras/lunak kendali penerbangaan, dan sistem terpadu lainnya pada pesawat udara dan rudal
- Peralatan kesehatan
- Alat ukur seperti osiloskop berpenyimpanan digital, penganalisis logika, dan penganalisis spektrum
- Jam tangan serbaguna
- Mesin cetak serbaguna (MFP)
- Asisten digital pribadi (PDA) yang mana adalah komputer genggam kecil dengan PIM dan aplikasi lainnya
- Ponsel dengan kemampuan tambahan, misalnya, asisten digital ginerak yang terdapat PDA dan adanya dukungan Java (MIDP)
- Pengendali logika tertataolahkan (PLC) untuk pengawasan dan automasi di bidang industri
- Konsol permainan dan konsol genggam yang ajek
- Komputer mampu dikenakan
Rancangan Sistem Terbenam
[sunting | sunting sumber]Peralatan elektronik biasanya menggunakan pengolah mikro atau sebuah pengendali mikro. Beberapa sistem besar atau tua menggunakan komputer kerangka utama serba guna atau komputer mini.
Pelantar
[sunting | sunting sumber]Ada banyak arsitektur CPU berbeda yang digunakan dalam rancangan terbenam seperti ARM, MIPS, Coldfire/68k, PowerPC, X86, PIC, 8051, dll.
Lihat pula
[sunting | sunting sumber]- Waktu nyata
- Sistem operasi waktu-nyata (Real-Time Operating System, RTOS)
- Bahasa penataolahan selaras
- Pengolah mikro
- Teknik peranti lunak
- Daftar topik rekayasa peranti lunak
- Peranti tegar
- Perkakas informasi
- Bahasa penataolahan untuk sistem terbenam
- Sistem operasi untuk sistem terbenam
Pranala luar
[sunting | sunting sumber]- Embedded Systems course with mbed (2015) di YouTube
- Trends in Cyber Security and Embedded Systems Dan Geer, November 2013
- Modern Embedded Systems Programming Video Course (2013) di YouTube
- Embedded Systems Week (ESWEEK) acara tahunan dengan konferensi, lokakarya, dan tutorial yang mencakup semua aspek sistem dan perangkat lunak terbenam
- Workshop on Embedded and Cyber-Physical Systems Education Diarsipkan 2018-02-11 di Wayback Machine., lokakarya yang mencakup aspek pendidikan sistem terbenam