TRANSCRIPT
Nucleus is the leading Vulnerability Management platform for Large Enterprises, MSPs/MSSPs, and Application Security Teams that want more from their vulnerability management tools. Nucleus, in biology, a specialized structure occurring in most cells (except bacteria and blue-green algae) and separated from the rest of the cell by a double layer, the nuclear membrane. The nucleus controls and regulates the activities of the cell (e.g., growth and metabolism) and carries the genes. Python and C code for reading and writing genomics data. google/nucleus. A Quality Centric Pharmaceutical Company. Nucleus is a pharmaceutical company established in the year 2008 with a group of technocrats having vast experience in the pharmaceutical industry. The Nucleus elevates artists, creatives and brands, with innovative strategy, creative consulting and management. We bring empathy, passion and creativity to every artist, brand and project.
EIE 322 Interface and Embedded SystemsLecture 7 : Introduction to Real-time operating systemChapter 6 of D. Simon E. An Embedded Software Primer QA76.6.S57261999
Dr Jimmy To, EIE, POLYU
1
Introduction to Real-Time Operating System The acronym RTOS (are toss) is used in
Simon. Other use the terms kernel, real-time kernel (RTK). Despite the similar name, most real-time operating systems are rather different from desktop operating systems such as Windows or Unix. RTOS available today: VxWorks, VRTX, pSOS, Nucleus, C Executive, LynxOS, QNX, MultiTask!, AMX and more.Dr Jimmy To, EIE, POLYU
2
Differences Compared to Desktop Operating System Desktop your applications are compiled
separately from the OS.
As you turn-on your desktop, only the OS starts. Embedded system your application is
compiled and linked together with the RTOS . At boot-up time, your application usually gets control first, and it then starts the RTOS. Thus, the application and the RTOS are much more tightly tied to one another. Neither will run by itself.
Dr Jimmy To, EIE, POLYU
3
Differences Compare to Desktop Operating System RTOS do not protect themselves as carefully from your
application as do desktop operating systems. Reason: For better performance. When an Application is down, the RTOS alone cannot do much. To save memory, typically only part of the RTOS (services/routines/functions) that you need to support your embedded application system are compiled. Most RTOSs allow you to configure them extensively before you link them to the application, letting you leave out any functions you dont need.Dr Jimmy To, EIE, POLYU
4
Tasks and Task States The basic building block of software written
under an RTOS is the task. Tasks are very simple to write: under most RTOSs a task is simply a subroutine. (Figure 6.4) Each task in an RTOS is always in one of three states: Running, Ready, Blocked.
Dr Jimmy To, EIE, POLYU
5
Task States
Dr Jimmy To, EIE, POLYU
6
The Scheduler Scheduler part of the RTOS that decides
which task should go next into the running state. Unlike the scheduler in Unix or Windows, the schedulers in most RTOSs are entirely simpleminded about which task should get the processor: highest priority one runs first, and the rest wait in the ready state, regardless of starvation.Dr Jimmy To, EIE, POLYU
7
The Scheduler (cont) A task will block itself when it decides for itself that it
has run out of things to do. A task has to be running just before it is blocked. While a task is blocked, it is inactive and the CPU cannot
be re-acquire by the task itself. Therefore, an interrupt service routine or some other task in the system must be able to detect the occurrence of whatever conditions or events the task is waiting for. Otherwise, the task will be blocked forever.Dr Jimmy To, EIE, POLYU
8
The Scheduler (cont) The shuffling of tasks between the ready and
running states is entirely the work of the scheduler. Tasks can block themselves. Tasks and interrupt routines can move other tasks from the blocked state to the ready state, but the scheduler has control over which task can switch to the running state.
Dr Jimmy To, EIE, POLYU
9
Common Questions How does the scheduler know when a task has
become blocked or unblocked?
The RTOS provides a collection of functions that tasks can call to tell the scheduler what events they want to wait for and to signal that events have happened. What happens if all the tasks are blocked? If all the tasks are blocked, then the scheduler will stay in some tight loop somewhere inside the RTOS, waiting for something to happen. If something happens, an interrupt routine will calls some RTOS function that will unblock a task. Dr Jimmy To, EIE, POLYU10
Common Questions (cont) What if two tasks with the same priority are
ready?
It depends on which RTOS was used. Possible solutions: making it illegal to have two tasks with the same priority or, time-slice between two such tasks. If one task is running and another higher-
priority task unblocks, will the running task get stopped and moved to the ready state right away?
A preemptive RTOS will stop a lower-priority task as soon as the higher-priority task unblocks. A nonpreemptive RTOS will only take the microprocessor Dr Jimmy To, EIE, POLYU away from the lower-priority task when it blocks 11 itself.
Tasks and Data Each task has its own private context, which
includes the register values, a program counter, and a stack. However, all other data global, static, initialized, uninitialized, and everything else is shared among all tasks in the system. Typically, an RTOS has its own private data structures, which are not available to any of the tasks. With data variables shared among tasks, it is easy to pass information from one task to another.Dr Jimmy To, EIE, POLYU
12
Shared-Data Problems Recall in lecture 5 all the potential
problems which are cause by sharing data. Theses problems will also arise in RTOS when data are shared among tasks. Figure 6.7 and Figure 6.8 show an example of how subtle these problems can be.
Dr Jimmy To, EIE, POLYU
13
Reentrancy A reentrant function can be interrupted at
any time and resumed at a later time without loss of data. A reentrant function can be used by more than one task without fear of data corruption. That is, more than one instance of it can be concurrently invoked and executed. One way to avoid the shared data problems is to allow access to shared data only among reentrant functions.Dr Jimmy To, EIE, POLYU
14
Reentrancy (cont)3 rules to decide if a function is reentrant: 1. A reentrant function must not perform any non-atomic access to shared unless they are stored on the stack of the task that called the function, or, they are the private variables of that task. 2. A reentrant function may not call any other functions that are not themselves reentrant. 3. A reentrant function may not use any hardware in a non-atomic way.Dr Jimmy To, EIE, POLYU
15
Examples from the text A Review of C Variable Storage p.150 Figure 6.9 Applying the Reentrancy Rules
Figure 6.10 Violate rule 1,2 How? Atomic? Yes and NoDr Jimmy To, EIE, POLYU
16
Semaphores and Shared Data By switching the CPU from task to task, an
RTOS changes the flow of execution. There, like interrupts, it can also cause a new class of shared-data problems. Semaphores is one of the tools used by the RTOS to solve such problems. Semaphores are used to implement any of : Control access to a shared resource. Signal the occurrence of an event. Allow two tasks to synchronize their activities.Dr Jimmy To, EIE, POLYU
17
Semaphores and Shared Data A semaphore is a key that your code acquires
in order to continue execution. If the semaphore is already in use, the requesting task is suspended until the semaphore is released by its current owner. In other words, the requesting task says:Give me the key. If someone else is using it, I am willing to wait for it!.Dr Jimmy To, EIE, POLYU
18
Semaphores and Shared Data Generally, only three operations can be performed
on a semaphore: INITIALIZE (also called CREATE), WAIT (also called PEND), and SIGNAL (also called POST). The initial value of the semaphore must be provided when the semaphore is initialized. The waiting list of tasks is always initially empty. Figure 6.14 is an example showing how semaphores can be used.Dr Jimmy To, EIE, POLYU
19
Reentrancy and Semaphores
Figure 6.15 from the text.
Dr Jimmy To, EIE, POLYU
20
Multiple Semaphores What is the advantages of having multiple semaphores
instead of a single one that protects all ? This avoids the case when higher priority tasks waiting for lower priority tasks even though they dont share the same data. By having multiple semaphores, different semaphores can correspond to different shared resources.
Dr Jimmy To, EIE, POLYU
21
Home | Nucleus Digital
Multiple Semaphores (cont) How does the RTOS know which semaphore protects
which data? It doesnt. If you are using multiple semaphores, it is up to you to remember which semaphore corresponds to which data.
Dr Jimmy To, EIE, POLYU
22
Semaphores as a Signaling Device Semaphores can also be used as a simple way of
communication between tasks, or between an interrupt routine and its associated task. Figure 6.16 provide a good example of how it can be apply. vPrinterTask( ) prepares a line to be printed in a_chPrint[]. vPrinterInterrupt( ) is an ISR that outputs the character string in a_chPrint[] to the printer. semPrinter is used by vPrinterTask( ) as a signal to vPrinterInterrupt( ) that a new string is Dr Jimmy To, EIE, POLYU 23 ready.
Semaphore Problems Potential problems
Forgetting to take the semaphore Forgetting to release the semaphore Taking the wrong semaphore Holding a semaphore for too long Priority inversion Figure 6.17 Some RTOSs resolve this problem with priority inheritance, they temporarily boost the priority of Task C to that of Task A whenever Task C holds the semaphore and Task A is waiting for it.Dr Jimmy To, EIE, POLYU
24
Semaphore Variants Counting semaphores semaphores that can be
Python API Reference.
taken multiple times. Resource semaphores useful for the shared-data problem. Mutex semaphore automatically deal with the priority inversion problem. If several tasks are waiting for a semaphore when it is released, different RTOS may vary in the decision as to which tas