1 / 18

Embedded systems

Embedded systems. William W. McMillan. 9 April 2013. What embedded systems existed in 1980? How many do you have on your person right now?. Kinds of Real-Time Operations. Monitor and record. Actuate (move, release ). Alarm, shut down, or take other emergency action. Control access.

kumiko
Download Presentation

Embedded systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Embedded systems William W. McMillan 9April 2013

  2. What embedded systems existed in 1980?How many do you have on your person right now?

  3. Kinds of Real-Time Operations • Monitor and record. • Actuate (move, release). • Alarm, shut down, or take other emergency action. • Control access. • Deliver content. • Communicate. • Translate, decode, or interpret.

  4. Challenges of Real-Time • Small memory. • Slow processor. • Low power. • Need to be fast. • Deadlines need to be met. • Concurrent processes. • Need for reliability.

  5. When have you programmed a real-time or embedded system? What challenges did you face?

  6. Management Challenges • Programming language trade-offs. • Choosing hardware platform. • Choosing software platform. • Getting staff who know physics and electronics. • Deciding deployment. • Maintenance.

  7. Decision Tables • “Stimulus-response” table. • E.g., if power low and buffer nearly full, write data in alternate storage. • Arrange by columns: • Condition, action. • Likely preliminary to state diagrams and are less formal.

  8. State Diagrams • A principal tool for real-time systems. • Used in design, of course. • Critical for communicating how system works. • Need to keep up-to-date. • Use software tools to support.

  9. Besides state diagrams, what other UML diagrams come to mind as useful for real-time and embedded systems?

  10. Programming Practices • See reliability engineering. • Special premium on algorithm efficiency. • Memory is precious. • Pack data, e.g., bits for Booleans. • Use short representations when you can. • Need to control access. • Avoid dynamic memory allocation. • Protect stacks, etc. from overflow.

  11. Programming Practices • Can have many “global” devices and data, e.g., • Ports. • Status bits. • Video memory. • Buffers. • Need much more discipline in accessing these. • Code inspection and formal analysis are useful.

  12. Programming Practices • Data structures • Circular queue: • Producer prevented from adding to full queue. • Consumer prevented from taking from empty queue. • Pipeline: • Data handed from process to process. • General: hashing, logarithmic search, etc. • Timing analysis • Model processes to predict. • Based on finite state machines.

  13. Think of a typical programming construct or method that would be inappropriate in many embedded systems.

  14. Ways to Get Data and Status • Keep channels open • Switch-style, continuous communication. • Simplex or duplex. • Polling • Ask devices at regular intervals how things are going, if there are data, etc. • Interrupts • Device has low-level access to event loop. • Actively sends message when needs attention.

  15. Scheduling (OS Issue) • Round robin • Each process gets a time unit in turn. • Priority queue • Most important goes first… • … but do the less important ever get a chance? • Multiple queues, by priority • Higher priority get less time. • As run more often, get more time, but lower priority.

  16. Scheduling (OS Issue) • Shortest first • Run smaller jobs first. • Policy-driven, e.g., • If get less than share of CPU time, raise priority. • If impending deadline, raise priority. • If related to alarm, raise priority.

  17. For a mobile device application, describe a policy for scheduling concurrent processes.

  18. Sticky Wickets (OS Issues) • Deadlock, e.g., • ThreadAholds printer, waits for File1. • ThreadBholds File1, waits for printer. • Race condition, e.g., • ThreadA: if (x == y) • ThreadB: if (x == y) • ThreadA: { x++; } • ThreadB { x++; }

More Related