Embedded Software Engineer

  Home  Engineering  Embedded Software Engineer


“Embedded Software Engineer Frequently Asked Questions in various Embedded Software Engineer job interviews by interviewer. The set of questions are here to ensures that you offer a perfect answer posed to you. So get preparation for your new job interview”



100 Embedded Software Engineer Questions And Answers

41⟩ Explain difference between RISC and CISC processor?

RISC (Reduced Instruction Set Computer) could carry out a few sets of simple instructions simultaneously. Fewer transistors are used to manufacture RISC, which makes RISC cheaper. RISC has uniform instruction set and those instructions are also fewer in number. Due to the less number of instructions as well as instructions being simple, the RISC computers are faster. RISC emphasise on software rather than hardware. RISC can execute instructions in one machine cycle.

CISC (Complex Instruction Set Computer) is capable of executing multiple operations through a single instruction. CISC have rich and complex instruction set and more number of addressing modes. CISC emphasise on hardware rather that software, making it costlier than RISC. It has a small code size, high cycles per second and it is slower compared to RISC.

 207 views

42⟩ Tell me what happens when recursive functions are declared inline?

Inlining an recursive function reduces the overhead of saving context on stack. But, inline is merely a suggestion to the compiler and it does not guarantee that a function will be inlined. Obviously, the compiler won't be able to inline a recursive function infinitely. It may not inline it at all or it may inline it, just a few levels deep.

 188 views

43⟩ Please explain what is semaphore?

Semaphore is actually a variable or abstract data type which controls access to a common resource by multiple processes. Semaphores are of two types -

☛ Binary semaphore – It can have only two values (0 and 1). The semaphore value is set to 1 by the process in charge, when the resource is available.

☛ Counting semaphore – It can have value greater than one. It is used to control access to a pool of resources.

 183 views

44⟩ Tell me what is difference between binary semaphore and mutex?

The differences between binary semaphore and mutex are as follows -

☛ Mutual exclusion and synchronization can be used by binary semaphore while mutex is used only for mutual exclusion.

☛ A mutex can be released by the same thread which acquired it. Semaphore values can be changed by other thread also.

☛ From an ISR, a mutex can not be used.

☛ The advantage of semaphores is that, they can be used to synchronize two unrelated processes trying to access the same resource.

☛ Semaphores can act as mutex, but the opposite is not possible.

 167 views

45⟩ Tell me what is RTOS?

In an operating system, there is a module called the scheduler, which schedules different tasks and determines when a process will execute on the processor. This way, the multi-tasking is achieved. The scheduler in a Real Time Operating System (RTOS) is designed to provide a predictable execution pattern. In an embedded system, a certain event must be entertained in strictly defined time.

To meet real time requirements, the behaviour of the scheduler must be predictable. This type of OS which have a scheduler with predictable execution pattern is called Real Time OS(RTOS). The features of an RTOS are

☛ Context switching latency should be short.

☛ Interrupt latency should be short.

☛ Interrupt dispatch latency should be short.

☛ Reliable and time bound inter process mechanisms.

☛ Should support kernel preemption.

 186 views

46⟩ Explain what are the essential components of embedded system?

Essential components of embedded system includes:

☛ Hardware

☛ Processor

☛ Memory

☛ Timers

☛ I/O circuits

☛ System application specific circuits

☛ Software

☛ It ensures the availability of System Memory

☛ It checks the Processor Speed availability

☛ The need to limit power lost when running the system continuously

☛ Real Time Operating System

☛ It runs a process as per scheduling and do the switching from one process to another

 188 views

47⟩ Tell me what is a Watchdog Timer?

A watchdog timer is an electronic device or electronic card that execute specific operation after certain time period if something goes wrong with an electronic system.

 179 views

48⟩ Tell me can include files be nested?

Yes. Include files can be nested any number of times. But you have to make sure that you are not including the same file twice. There is no limit to how many header files that can be included. But the number can be compiler dependent, since including multiple header files may cause your computer to run out of stack memory.

 193 views

49⟩ Tell me what is ISR?

An ISR(Interrupt Service Routine) is an interrupt handler, a callback subroutine which is called when a interrupt is encountered.

 180 views

50⟩ Tell me why does pre-emptive multi-threading used to solve the central controller problem?

Multi-threading provide lot of functionality to the system to allow more than one task can be run at a time. It allows a process to execute faster with less difficulty. But, if there any problem comes in any program or the process than the entire system comes to a halt and slows down the whole system. To control the behavior of this the preemptive multi-threading is used. The control in this case is being shifted from one process to another at any time according to the requirement provided. It allows the program to give the control to another program that is having the higher priority. It includes of many problems like giving of a control by a process half way through in execution and the preemption of the process takes place then the data will be entered as corrupted in the memory location, multi-threading keeps the synchronization that is to be performed between different components of the system and the program and try to avoid the problem mentioned above.

 202 views

51⟩ Can you please explain the difference between mutexes vs semaphores?

Semaphores is a synchronization tool to overcome the critical section problem.

A semaphore S is basically an integer variable that apart from initialization is accesses only through atomic operations such as wait() and signal().

Semaphore object basically acts as a counter to monitor the number of threads accessing a resource.

Mutex is also a tool that is used to provide deadlock free mutual exclusion. It protects access to every critical data item. If the data is locked and is in use, it either waits for the thread to finish or awakened to release the lock from its inactive state.

 205 views

52⟩ Explain how does combination of functions reduce memory requirements in embedded systems?

The amount of code that has to be dealt with is reduced thus easing the overhead and redundancy is eliminated in case if there is anything common among the functions.

Memory allocation is another aspect that is optimized and it also makes sense to group a set of functions related in some way as one single unit rather than having them to be dispersed in the whole program.

In case of interactive systems display of menu list and reading in the choices of user's could be encapsulated as a single unit.

 230 views

53⟩ Computer Science Job Interview Questions

☛ What’s RISC architecture?

☛ What are the differences between analytical and computational modeling?

☛ Why is it better to use multi-threading polling instead of a single threading model?

☛ Can you name the differences between object-oriented and component-based design?

 165 views

54⟩ Profesional Embedded Software Engineer Interview Questions

☛ What Source Control systems have you worked with?

☛ What is Continuous Integration? Have you used it and why is it important?

☛ Describe a software development life cycle that you've managed.

☛ How do you react to people criticizing your code/documents?

☛ Whose blogs or podcasts do you follow? Do you blog or podcast?

☛ Tell me about some of your hobby projects that you've written in your off time.

☛ What is the last programming book you read?

☛ Describe, in as much detail as you think is relevant, as deeply as you can, what happens when I type "cnn.com" into a browser and press "Go".

☛ Describe the structure and contents of a design document, or a set of design documents, for a multi-tiered web application.

☛ What's so great about <cool web technology of the day>?

☛ How can you stop your DBA from making off with a list of your users’ passwords?

☛ What do you do when you get stuck with a problem you can't solve?

☛ If your database was under a lot of strain, what are the first few things you might consider to speed it up?

☛ What is SQL injection?

☛ What's the difference between unit test and integration test?

☛ Tell me about 3 times you failed.

☛ What is Refactoring ? Have you used it and it is important? Name three common refactorings.

☛ You have two computers, and you want to get data from one to the other. How could you do it?

☛ Left to your own devices, what would you create?

☛ Given Time, Cost, Client satisfaction and Best Practices, how will you prioritize them for a project you are working on? Explain why.

☛ What's the difference between a web server, web farm and web garden? How would your web application need to change for each?

☛ What value do daily builds, automated testing, and peer reviews add to a project? What disadvantages are there?

☛ What elements of OO design are most prone to abuse? How would you mitigate that?

☛ When do you know your code is ready for production?

☛ What's YAGNI? Is this list of questions an example?

☛ Describe to me some bad code you've read or inherited lately.

 194 views

55⟩ General Embedded Software Engineer Job Interview Questions

☛ What's the difference between Locking and Lockless (Optimistic and Pessimistic) concurrency models?

☛ What kinds of problems can you hit with locking model? And a lockless model?

☛ What trade offs do you have for resource contention?

☛ How might a task-based model differ from a threaded model?

☛ What's the difference between asynchrony and concurrency?

☛ Are you still writing code? Do you love it?

☛ You've just been assigned to a project in a new technology how would you get started?

☛ How does the addition of Service Orientation change systems? When is it appropriate to use?

☛ What do you do to stay abreast of the latest technologies and tools?

☛ What is the difference between "set" logic, and "procedural" logic. When would you use each one and why?

 152 views

56⟩ Behavioral Embedded Software Engineer Interview Questions

☛ What are the most common errors you’ve found in embedded systems and how have you resolved them?

☛ How do you learn about the latest technology trends?

☛ Describe a time when you collaborated with designers and engineers to deploy a new product. What was your role?

 178 views

57⟩ Tell me when one must use recursion function? Mention what happens when recursion functions are declared inline?

Recursion function can be used when you are aware of the number of recursive calls is not excessive. Inline functions property says whenever it will called, it will copy the complete definition of that function. Recursive function declared as inline creates the burden on the compilers execution.

 224 views

58⟩ Tell me what is the difference between hard real-time and soft real-time OS?

A Hard real-time system strictly adheres to the deadline associated with the task. If the system fails to meet the deadline, even once, the system is considered to have failed. In case of a soft real-time system, missing a deadline is acceptable. In this type of system, a critical real-time task gets priority over other tasks and retains that priority until it completes.

 193 views

60⟩ Do you know what is the function of Watchdog timer in embedded system?

The embedded system should have a function that can allow the fixing the system if anything goes wrong with it. Watchdog timer is a tool that is used in embedded system and having a long-fuse that runs several seconds. Watchdog timer includes the automated timing control that count down the number from max to 0 and when the counter reaches the zero, this WDT reset the micro-controller that gets turned off when the timer was in initial phases. Watchdog require the user to put some value before it runs out of time and reset the whole process as this can harm the data and the system. Resetting by WDT can be done when the process is half complete. Watchdog timer have the counter that is used to watch the processes that are running and if there is any issue occurs then WDT itself times out. The resetting of the system will be done to always give it the best possible way to execute the process.

 187 views