Concept_questions.md
June 20, 2026 ยท View on GitHub
๐ Practice these embedded interview questions interactively
Get these as a community-ranked, searchable question bank with model answers, upvotes, and real "I was asked this" data on EmbeddedInterviewLab.
๐ Open the Interview Question Bank โ ย ยทย ๐ Browse all knowledge topics โ
Interview Conceptual Questions
Conceptual Questions and Links Table
Index | Question | Diffculty | Importance
--|-----------------|----------|---|---
1 | What is Deadlock? How to avoid and prevent? | Easy | *****
2 | What is the basic difference between #include
Peripheral devices often have access to processor interrupts to get the attention of the processor when certain events happens. Please simply describe this interrupt mechanism.
Points to consider:
-
What is Interupt?
An interrupt is a signal to the processor emitted by hardware or software indicating an event that needs immediate attention.
There are two types of interrupt: Software and Hardware.
hareware interrupt (external interrupt) can be divided into two catagories: blockable interrupt and unblockable interrupt.
Blockable interrupt are interrupts that can be blocked, usually issues by not so important peripheral devices such as printer. Unblockable interrupts must be served by the operating system such as disk reading error.
-
What happen during an interrupt operation?
Whenever an interrupt occurs, the controller completes the execution of the current instruction and starts the execution of an Interrupt Service Routine (ISR) or Interrupt Handler. ISR tells the processor or controller what to do when the interrupt occurs. The interrupts can be either hardware interrupts or software interrupts.
- How is interrupt implemented?
- It is often simpler to put a significant code in the interrupt handler, but this can lead to poor results in practice. Why is that?
- Upper half/bottom half
- tasklet
Useful Links:
Interrupts, Exceptions, and System Calls
What are semaphore and mutex? What is priority inversion? How is mutex different from semaphore in FreeRTOS?
-
Semaphore and mutex are inter-task synchronization and signaling mechanisms.
-
Semaphore is a signaling mechanism and has two categories:
-
Counting Semaphore: most often used to manage a shared resource that has limitation on the number of simultaneous users. e.g. The number of simultaneous Socket connections.

-
Binary semaphore is counting semaphore with counts up to 1, usually used for synchronization purpose.

-
-
Howevevr, using binary semaphore may cause priority inversion, in which a lower-priority tasks takes precedence over a higher-priority task.

-
In FreeRTOS, mutex differs from binary Semaphore in the way that task with acquired mutex lock will get a priority boost in which the scheduler will temporarily boost the task holding the lock so that other task will not be able to prempt it. Its priority will fall back to normal once mutex lock is release. This way, it resolves the priority inversion problem binary semaphore has.
