<<

INTER- COMMUNICATION AND SYNCHRONISATION: Lesson-6: Signal Related OS Functions

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 1 Raj Kamal, Publs.: McGraw-Hill EducationInc. 1. Signal

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 2 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal

 One way for messaging is to use an OS function ( ).

 Provided in , and several RTOSes.

 Unix and Linux OSes use signals profusely and have thirty-one different types of signals for the various events.

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 3 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal

 A signal is the software equivalent of the flag at a register that sets on a hardware  Unless masked by a signal mask, the signal allows the execution of the signal handling function and allows the handler to run just as a hardware interrupt allows the execution of an ISR

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 4 Raj Kamal, Publs.: McGraw-Hill EducationInc.

Signal…

 Signal is an IPC used for signaling from a process A to OS to enable start of another process B

 Signal is a one or two byte IPC from a process to the OS.

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 5 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal …

 Signal provides the shortest communication.  The signal ( ) sends a one-bit output for a process, which unmasks a signal mask of a process or task (called signal handler)  The handler has coding similar to ones in an ISR runs in a way similar to a highest priority ISR.

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 6 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal …

 An ISR runs on an hardware interrupt provided that interrupt is no masked.  The signal handler also runs on signal provided that signal is no masked

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 7 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal …

 Signal ( ) forces a signaled process or task called signal handler to run.  When there is return from the signaled or forced task or process, the process, which sent the signal, runs the codes as happens on a return from the ISR.

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 8 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal ...

 OS connects a signal to a process or ISR j (called signal handler function), and resets the signal mask of j.

 Then the j runs after all higher than j priority processes (or ISRs) finish.

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 9 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal ...

 An OS provision for signal as an IPC function means a provision for interrupt-message from a process or task to another process or task

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 10 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal ( ) IPC function

 SigHandler ( ) to create a signal handler corresponding to a signal identified by the signal number and define a pointer to signal context

 The signal context saves the registers on signal.

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 11 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal ( ) Connect function

 Connect an interrupt vector to a signal number, with signaled handler function and signal handler arguments

 The interrupt vector provides the program counter value for address of signal handler function

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 12 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal ( ) IPC functions

 signal ( ) to send a signal identified by a number to a signal handler task

 Mask the signal

 Unmask the signal

 Ignore the signal

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 13 Raj Kamal, Publs.: McGraw-Hill EducationInc. 2. Comparison between signal and

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 14 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal and Semaphore

 Some OSes provide the signal and semaphore both IPC functions

 Every OS provides semaphore IPC functions.

 When the IPC functions for signal are not provided by an OS, then the OS employs semaphore for the same purpose.

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 15 Raj Kamal, Publs.: McGraw-Hill EducationInc. Task A sending signal sB to initiate Task B (signal handler) to run

OS Task B signal Task A mask B start B

Send sB

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 16 Raj Kamal, Publs.: McGraw-Hill EducationInc. Task A sending semaphore as flag semi to initiate a task section waiting to take semi before it could run

OS Task B signal Task A mask B

semi Change

semi = 1 Take semi = 0 Release semi Start

semi

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 17 Raj Kamal, Publs.: McGraw-Hill EducationInc. 3. Example of using signal ( )

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 18 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal ( ) Example

 Handling of exception.

 An exception is a process that is executed on a specific reported run-time condition.

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 19 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal ( ) Example A signal reports an error (called 'Exception') during the running of a task and then lets the scheduler initiate an error-handling process or ISR, for example, initiate error-login task. - Handling of signal is similar to an ISR handling function using an interrupt vector.

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 20 Raj Kamal, Publs.: McGraw-Hill EducationInc. 4. Advantage of using a Signal

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 21 Raj Kamal, Publs.: McGraw-Hill EducationInc. Advantage of using a Signal

 Unlike semaphores, it takes the shortest possible CPU time. The signals are the flag or one or two byte message used as the IPC functions for synchronizing the concurrent processing of the tasks.

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 22 Raj Kamal, Publs.: McGraw-Hill EducationInc. Signal handler Tasks B, , and D Synchronizing their execution by signals s1, s2 and s3

Task A Task B Task C Task D Start B Start C Start D

Send s2 Send s3 Send s1

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 23 Raj Kamal, Publs.: McGraw-Hill EducationInc. Task i sending signal s to initiate signal handler ISR j

Execute signal ( ) OS ISR j signal Task i mask j start j

Send sj Return

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 24 Raj Kamal, Publs.: McGraw-Hill EducationInc. Advantage of using a Signal

1. A signal is the software equivalent of the flag at a register that sets on a hardware interrupt. 2. It is sent on some exception or on some condition, which can set during running of a process or task or . 3. Sending a signal is software equivalent of throwing exception in C/C++ or Java program

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 25 Raj Kamal, Publs.: McGraw-Hill EducationInc. Advantage of using a Signal

4. Unless process is masked by a signal mask, the signal allows the execution of the signal handling process, just as a hardware interrupt allows the execution of an ISR

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 26 Raj Kamal, Publs.: McGraw-Hill EducationInc. Advantage of using a Signal

5. A signal is identical to setting a flag that is shared and used by another interrupt servicing process. 6. A signal raised by one process forces another process to interrupt and to catch that signal provided the signal is not masked at that process.

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 27 Raj Kamal, Publs.: McGraw-Hill EducationInc. 5. Drawbacks of using a Signal

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 28 Raj Kamal, Publs.: McGraw-Hill EducationInc. Drawbacks of using a Signal 1. Signal should be handled only in a very high priority process (service routine), else that may disrupt the usual schedule and usual priority inheritance mechanism. 2. Signal may cause problem [process not retuning to state identical to the one before signal handler process executed].

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 29 Raj Kamal, Publs.: McGraw-Hill EducationInc. Summary

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 30 Raj Kamal, Publs.: McGraw-Hill EducationInc. We learnt  Signal, the simplest IPC for messaging and synchronizing processes is signal  Signal, the shortest message.  Uses: Initiating another ISR or task and error handling process called signal handler.  Signal is equivalent throwing exception in Java/C/C++ or setting of an interrupt flag

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 31 Raj Kamal, Publs.: McGraw-Hill EducationInc. End of Chapter 9 Lesson-06 on Signal Related OS Functions

Chapter-9 L06: "Embedded Systems - Architecture, Programming and Design", 2015 32 Raj Kamal, Publs.: McGraw-Hill EducationInc.