RTOS



RTOS Question:

What is RTOS?
Real-Time Operating System is a multitasking operating system intended for real-time applications. It is used on every device/system needing real time operations that means operations based not only on correctness but also upon the time (clock cycles) in which they are performed.
In general, an operating system (OS) is responsible for managing the hardware resources of a computer and hosting applications that run on the computer. An RTOS performs these tasks, but is also specially designed to run applications with very precise timing and a high degree of reliability. This can be especially important in measurement and automation systems where downtime is costly or a program delay could cause a safety hazard. To be considered “real-time”, an operating system must have a known maximum time for each of the critical operations that it performs (or at least be able to guarantee that maximum most of the time). Some of these operations include OS calls and interrupt handling. Operating systems that can absolutely guarantee a maximum time for these operations are commonly referred to as “hard real-time”, while operating systems that can only guarantee a maximum most of the time are referred to as “soft real-time”.
Example: Imagine that you are designing an airbag system for a new model of car. In this case, a small error in timing (causing the airbag to deploy too early or too late) could be catastrophic and cause injury. Therefore, a hard real-time system is needed; you need assurance as the system designer that no single operation will exceed certain timing constraints. On the other hand, if you were to design a mobile phone that received streaming video, it may be ok to lose a small amount of data occasionally even though on average it is important to keep up with the video stream. For this application, a soft real-time operating system may suffice. An RTOS can guarantee that a program will run with very consistent timing. Real-time operating systems do this by providing programmers with a high degree of control over how tasks are prioritized, and typically also allow checking to make sure that important deadlines are met.
 How Real-Time OSs Differ from General-Purpose OSs?
Operating systems such as Microsoft Windows and Mac OS can provide an excellent platform for developing and running your non-critical measurement and control applications. However, these operating systems are designed for different use cases than real-time operating systems, and are not the ideal platform for running applications that require precise timing or extended up-time. This section will identify some of the major under-the-hood differences between both types of operating systems, and explain what you can expect when programming a real-time application. 
Interrupt Latency
Interrupt latency is measured as the amount of time between when a device generates an interrupt and when that device is serviced. While general-purpose operating systems may take a variable amount of time to respond to a given interrupt, real-time operating systems must guarantee that all interrupts will be serviced within a certain maximum amount of time. In other words, the interrupt latency of real-time operating systems must be bounded
 Unanswered Interview Questions :(If you know comment as reply)
What is the use of Passive error node?
Error Passive receivers can no longer interrupt the data transfer as a recessive Error Flag does not influence the bus levels. An Error Passive transmitter can still interrupt its own message by sending a passive Error Flag. Attention, if one Receiver is in error passive mode no data consistency is guaranteed any more.
How to find the bug in code using debugger if pointer is  pointing to a  illegal value?
If two CAN messages with same ID sending at a same time, different data which can node will gain arbitration? How to test it?
Is it possible to declare struct and union one inside other? Explain with example
  1. Spi and I2C difference.?
  2. What is UDS advantages?
  3. What is cross compiler
  4. Unit/integration/all testings.
  5. Regression testing.
  6. Test case types.
  7. Malloc calloc
  8. Function pointers Advantage where it is used?
How many can database files are required for CAN Network simulation in CANoe tool.
what is the difference between CANalyzer,CANoe and CANape tools?
Mention the few uses of the CANoe tool?
what is a panel is CANoe Tool and its Use?
Why CAPL scripting is used in CANoe tool?
Is it possible to simulate other ECU’s Except Test ECU without CAPL Scripting in CANoe tool?
what is purpose of CCP protocol which is also used in CANape tool?
Embedded Development Documents:




RTOS

1. What is a Real-Time System?

2. Does the RTOS give you a flexible set of scheduling policies?

3. Does the RTOS use the dynamic object’s address as its identifier?

4. Are interrupts handled with a macro/function or do you have to write your own prologue (entry) and epilogue (exit)?

5. How does the RTOS synchronize with events? Do your event synchronization objects automatically clear with a task release or can events be missed? Can multiple tasks wait on a single event? Can a single task wait on multiple events?

6. Does the RTOS allow you to count both periodic or aperiodic ticks?

7. Can the RTOS count ticks other than time?

8. Are Timers/Alarms globally available so that they can be used by multiple tasks or are they tied to a single task? Does the RTOS allow you to define future actions to be taken when any counter reaches a predefined value?

9. Does the RTOS manage RAM with a heap that can create non-deterministic response and fragmentation?

10.Does the RTOS provide multiple data passing options?

11. Does the RTOS allow data to be passed between tasks and ISRs (or just between tasks)?

12. How does the RTOS provide exclusive access to resources? Does it use binary semaphores or mutexes?

13. Does the RTOS have a mechanism to prevent priority inversion—when a low priority task has control of a resource that is required by a higher priority task?

14. How the RTOS is coded. Is it designed for deterministic operation? Does it ensure low system overhead? Low latency? Responsive services?

15. Write a code to connect Hardware interrupt to ISR?

16. What is priority inversion ? and What is the solution ?

17. Explain Priority Inheritance

18. Explain various types of Scheduling

19. Which RTOS supports Non-Preemptive scheduling ? Why other scheduling methods are supported by such Oses?

20. RTOS vs OS

21. what is a non re-entrant code?

22. Is unix a multitasking or multiprocessing operating system? whats the difference between the two?

23. What is stack overflow and heap overflow?

24. What is a core dump?

25. Windows also has multiple processes has process priotities switches between multiple process, how RTOS is different from that?

26. what is paging, segmentation Why do we need it?

27. write a code to check wther a stack grows upwards or downwards?

28. Why do we require semaphore mutex?

29. write a small piece of code protecting a shared memory variable with a semaphore?


What is RTOS?
Real-Time Operating System is a multitasking operating system intended for real-time applications. It is used on every device/system needing real time operations that means operations based not only on correctness but also upon the time (clock cycles) in which they are performed.
In general, an operating system (OS) is responsible for managing the hardware resources of a computer and hosting applications that run on the computer. An RTOS performs these tasks, but is also specially designed to run applications with very precise timing and a high degree of reliability. This can be especially important in measurement and automation systems where downtime is costly or a program delay could cause a safety hazard. To be considered “real-time”, an operating system must have a known maximum time for each of the critical operations that it performs (or at least be able to guarantee that maximum most of the time). Some of these operations include OS calls and interrupt handling. Operating systems that can absolutely guarantee a maximum time for these operations are commonly referred to as “hard real-time”, while operating systems that can only guarantee a maximum most of the time are referred to as “soft real-time”.
Example: Imagine that you are designing an airbag system for a new model of car. In this case, a small error in timing (causing the airbag to deploy too early or too late) could be catastrophic and cause injury. Therefore, a hard real-time system is needed; you need assurance as the system designer that no single operation will exceed certain timing constraints. On the other hand, if you were to design a mobile phone that received streaming video, it may be ok to lose a small amount of data occasionally even though on average it is important to keep up with the video stream. For this application, a soft real-time operating system may suffice. An RTOS can guarantee that a program will run with very consistent timing. Real-time operating systems do this by providing programmers with a high degree of control over how tasks are prioritized, and typically also allow checking to make sure that important deadlines are met.
 How Real-Time OSs Differ from General-Purpose OSs?
Operating systems such as Microsoft Windows and Mac OS can provide an excellent platform for developing and running your non-critical measurement and control applications. However, these operating systems are designed for different use cases than real-time operating systems, and are not the ideal platform for running applications that require precise timing or extended up-time. This section will identify some of the major under-the-hood differences between both types of operating systems, and explain what you can expect when programming a real-time application. 
Interrupt Latency
Interrupt latency is measured as the amount of time between when a device generates an interrupt and when that device is serviced. While general-purpose operating systems may take a variable amount of time to respond to a given interrupt, real-time operating systems must guarantee that all interrupts will be serviced within a certain maximum amount of time. In other words, the interrupt latency of real-time operating systems must be bounded
 Unanswered Interview Questions :(If you know comment as reply)
What is the use of Passive error node?
Error Passive receivers can no longer interrupt the data transfer as a recessive Error Flag does not influence the bus levels. An Error Passive transmitter can still interrupt its own message by sending a passive Error Flag. Attention, if one Receiver is in error passive mode no data consistency is guaranteed any more.
How to find the bug in code using debugger if pointer is  pointing to a  illegal value?
If two CAN messages with same ID sending at a same time, different data which can node will gain arbitration? How to test it?
Is it possible to declare struct and union one inside other? Explain with example
  1. Spi and I2C difference.?
  2. What is UDS advantages?
  3. What is cross compiler
  4. Unit/integration/all testings.
  5. Regression testing.
  6. Test case types.
  7. Malloc calloc
  8. Function pointers Advantage where it is used?

No comments:

Post a Comment