Unit Iii Programming Concepts and Embedded Programming in C, C++
Unit Iii Programming Concepts and Embedded Programming in C, C++
Unit Iii Programming Concepts and Embedded Programming in C, C++
What are advantages of writing embedded software in Assembly Language? It gives a precise control of the processor internal devices. The machine codes are compact. Device driver codes may need only a few assembly instructions 2.What are advantages of writing embedded software in C Language? The development cycle is short for complex systems. Type checking makes the program less prone to error. Control Structures make the program- flow path design tasks simple. Portability. 3. What is the use of type checking? Type checking makes the program less prone to error. For eg. It does not provide subtraction, multiplication and division on the char data types. 4. Define Configuration files. Configuration files are the files for the configuration of the system. Device configuration codes can be put in a file of basic variables and included when needed. 5. What is difference between function and macrofuction? A macro function is a collection of codes that is defined in a program by a name. It differs from a function in the sense that once a macro is defined by a name, the compiler puts the corresponding codes for it at every place where that macro name appears. But the codes for a function are compiled once only. 6. What is recursive and reentrant function? Recursive Function: It is a function that calls itself. It must be a reentrant function also. Most often its use is avoided in embedded systems due to memory constraints. Reentrant Function: It is a function that is usable by the several tasks and routines at the same time. All its argument values are retrievable from the stack. 7. What is the use of modifier register? When a modifier register is inside a function block, a CPU register is temporarily allocated when needed. There is no ROM or RAM allocation. 8. Define Queue. It is a data structure into which elements can be sequentially inserted and retrieved in a FIFO mode. It needs two pointers, one for the queue tail for insertion and other for the queue head for deletion.
9. Define Stack. A stack is a data structure in which elements can be pushed in or pulled out. It works on the principle of Last-In-First-Out (LIFO). 10. Explain briefly First In Provisionally Out (FIPO). FIPO has three pointers; one for the front (*QHEAD) a second for the back (*QTAIL) and a third pointer is tempfront (*QACK). Two pointers are the same as in every queue. The pointer defines a point upto, which an acknowledgement has been received. 11. How interrupts are handled in Queue? Queuing of pointers to the function on interrupts and later on calling the functions from this queue is a better approach as it provides the use of short execution time interrupt-service routines. 12. Define Compiler. Compiler is a program in the host computer, which does the development, and design testing and debugging. It converts high- level language into a machine language. The complier can be turbo C, turbo C++ or Borland C, Borland C++. 13. Define Cross Compiler. The cross compiler runs on a host but develops the machine codes for a targeted system. 14. Explain briefly stack overhead. The repeated call to recursive function may cause the stack to full. This leads to insufficient memory. Hence the stack overhead may occur which is primarily due to overflow of the stack. 15. What is meant by inline assembly? Inserting the assembly language codes in between the high- level language codes are called inline assembly. It gives the benefits of processor specific instructions and addressing modes. 16. What is Optimization of memory? When codes are made compact and fitted in small memory without affecting the code performance, it is called memory optimization. 17. Define scalar data types? The character, integer, unsigned integer, floating point number, long and double are called scalar data types. Unlike an array data consists of one single element. 18. Give some examples for reference data types. Arrays and strings are examples of reference data types.
19. What is meant by platform independence? A code that can port on different machine and operating systems is said to be platform independent. 20. What are preprocessor directives? Program statements and directives for the compiler before the main function to define global variable, global macro, new data type and global constants. 21. What are the differences between including a header file and a text file or data file? The differences between including a header file and a text file or data file are, The header files are well tested and debugged modules. They provide access to standard libraries. The header file can include several text file or C files. A text file is description of the text that contains specific information. 22. What is the use of void pointers? Void pointers can be used to point to the memory location of any data type. 23. How can optimization be used to eliminate the disadvantages in embedded C++ programs? Optimization can be used as follows. Declare private as many classes as possible. Use of char, int and boolean in place of the objects as arguments Use local variables as much as feasible. Recover memory already used by changing the reference to an object to NULL. 24. Name some features of source code engineering tools for embedded C++. Some features of source code engineering tools for embedded C++ are, It searches and lists the dependencies and hierarchies of included header files. It browses through object component relationship. 25. What is embedded C++? Embedded C++ is a version of C++ that provides for a selective disabling which is the disadvantage in C++. So, there is a less run-time overhead and less run-time library.
UNIT IV REAL TIME OPERATING SYSTEMS 1. Define RTOS. Operating System with real time task scheduling, interrupt- latency control, Synchronization of tasks with IPCs, predictable timing and synchronization behavior of the system. 2. What is Round Robin or cyclic scheduling? A scheduling algorithm in which the tasks are scheduled in sequence from a list of ready tasks. 3. Explain briefly about Preemptive scheduling. A scheduling algorithm in which a higher priority task is forced (Preempted) to block by the scheduler. 4. What is Time Slicing and Fixed real time scheduling? Time Slicing Scheduling A scheduling algorithm in which each task is allotted a time slice after which it is blocked and waits for its turn on the next cycle. Fixed Real Time Scheduling A scheduling strategy in which the time for each task is fixed 5. Explain briefly the term Process. A code that has its independent program counter values and an independent stack. A single CPU system runs one process (or one thread of a process) at a time. It defines sequentially executing (running) program and its state. A state, during the running of a process, is represented by its status (running, blocked or finished), its control block, called process control block (PCB) or process structure, its data, objects and resources. 6. What is Task? A task is for the service of specific actions and may also correspond to the codes, which execute for an interrupt. A task is an independent process that takes control of the CPU when scheduled at an OS. Every task has a TCB ( Task Control Block). 7. What is Task State? A state of a task that changes on scheduler directions. A task at an instance can be in one of the four states, idle, ready, blocked ad running that are controlled by the scheduler. 8. Define inter process communication. An output from one task (or process) passed to another task through the scheduler and use of signals, exceptions, semaphores, queues, mailboxes, pipes, sockets, and remote procedure call is known as inter process communication.
9. Define Semaphore. Semaphore is a special variable or function that is used to take note of certain actions to prevent another task or process from proceeding. 10. What is shared data problem? If a variable is used in two different processes (tasks) and another task if interrupts without before the operation on that is completed, then the shared data problem arises. 11. What is priority inversion problem? How it can be solved? A problem in which a low priority task inadvertently does not release the process for a higher priority task. An operating system can take care of this it by appropriate provisions. This problem can be solved by temporarily boosting the low priority task to higher priority task which is called as priority inheritance. 12. Explain briefly Deadlock situation. A task waiting for some semaphore the release of a semaphore from a task and another a different task waiting for another semaphore release to run. None of these is able to proceed further. An operating system can take care of this it by appropriate provisions. 13. Explain the term (i) Message Queue (ii) Mailbox (iii) Pipe (iv) Socket. Message Queue A task sending the multiple FIFO or priority message into a queue for use by another task(s) using queue message as an input. Mailbox A message(s) or message pointer from a task that is addressed to another task. Pipe A task sending the messages used by and another task using these as input. A pipe can be a device like file which is also a virtual device. Socket It provides the logical link using a protocol between the tasks in a clientserver or peer-to-peer environment. 14. What is the use of Remote Procedure Call? A method used for connecting two remotely placed methods by first using a protocol for connecting the processes. It is used in the cases of distributed tasks. 15. Define Thread. A minimum unit for a scheduler to schedule the CPU and other system resources. A process may consist of multiple threads. A thread has an independent process control block like a task control block and a thread also executes codes under the control of a scheduler.
16. Difference between Mutex and Counting Semaphore. Mutex Semaphore Counting Semaphore A special variable used to take note of Certain actions to prevent any task or Process from proceeding further and at the same time let another task exclusively proceed further A semaphore in which the value of which can be incremented and decremented and which is not a Boolean variable
17. Explain the uses of Task Control Block(TCB)? A memory block holds information of program counter, memory map, the signal (message) dispatch table, signal mask, task ID,CPU state (registers etc) and a kernel stack (for executing system calls, etc.). 18. What are the problems that may arise while using semaphores? The problems that may while using semaphores are, (i) Sharing of two semaphores creates a deadlock problem. (ii) Without a timeout an ISR worst-case latency may exceed the deadline. (iii) A semaphore not taken, and another task uses a shared variable. (iv) When using multiple semaphores, if an unintended task takes the semaphore, it creates a problem. (v) It may introduce priority inversion problem. 19. Explain any two features of RTOS. The two features of RTOS are, (i) Each queue for a message may need initialization before using the functions in the scheduler for the message queue. (ii) There may be a provision for multiple queues for the multiple types or destination of messages. Each queue may have an id. 20. What are the strategies used by RTOS on interrupt source calls? The strategies used by RTOS on interrupt source calls are, (i) Direct call to ISR by an interrupting source. (ii) Direct call to RTOS by an interrupting source and temporary suspension of a scheduled task (iii) Direct call to RTOS by an interrupting source and scheduling of tasks as well as ISRs by RTOS. 21. Name some RTOS services. (i) Basic OS functions (ii) RTOS Main functions (iii) Time Management (iv) Predictability