Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!lanai!dan From: dan@Eyring.COM (Dan Fritch) Newsgroups: comp.realtime Subject: Re: Summary of opinions and info on realtime kernels (long) Message-ID: <1991Jun14.221944.28068@Eyring.COM> Date: 14 Jun 91 22:19:44 GMT References: <571@ceco.ceco.com> Organization: Eyring, Inc. Lines: 147 In reviewing the article about "Summary of opinions and info on realtime kernels (long)", we were disappointed that PDOS and its run-time companion, VMEPROM, were not listed in the benchmark timings. We thought this might be of interest. PDOS is a full real-time operating system which supports multi-processing with a rich compliment of development and debugging tools. The following table provides the comparative PDOS time for each test. Also included are comments about the various tests at the end of the table. These tests were run on the same hardware that the other kernels were tested on -- a MVME147S-1 with a 68030 processor running at 25 mHz. Therefore, all timings should be compatible. **************************************************************** * denotes the fastest system for each test pSOS+ VRTX32 LynxOS VxWorks PDOS Creat/Del Task 591 371* --- 1423 1113 Ping Suspend 114 128 --- 117 79* Suspend/Res. 71 83 --- 69 27* Get/Release Sem. 55 63 55 74 2* Interrupt Service Response 6 6 13 6 3* Interrupt Task Response 163 169 175 125 41* All times are in micro-seconds The following tests were not executed because of insufficient descriptions to code them. If someone will send us the algorithms, we will be happy to run these tests as well. Ping Semaphore All Queue tests Memory Alloc/Dealloc tests ***************************************************************** GENERAL COMMENTS Our first design objective in developing PDOS was to provide "Fast Real-Time Response". With this objective in mind, we were very interested in how we compared to the other systems listed. After coding and executing the tests per the descriptions (where possible), PDOS compared very favorably to the other systems. Just as UNIX has been honed over the years as a full-development environment, PDOS has been highly optimized for real-time performance over the last 10 years. During this time we have developed a unique real-time scheduler which is prioritized and pre-emptive in nature, as well as a set of synchronization services that allow very efficient execution of real-time tasks. On the other hand, many vendors have based their designs on UNIX concepts which we do not always find optimal for real-time systems. Because of our unique design, we can provide (what appears from the tests) the fastest realtime system. TEST COMMENTS: Create/Delete Task: PDOS was not the fastest in this case, but PDOS still allows for dynamic creation and deletion of tasks. We feel that critical real-time applications should pre-define tasks anyway. We have spent a great deal of time in optimizing the ability of PDOS to ready and execute tasks. This is clearly demonstrated with the "Ping Suspend Task" and the "Suspend/Resume Task" tests. This optimization provides a very low overhead where multiple tasks must synchronize within the system. Ping Suspend Task: This benchmark shows the time it takes to perform a pre-emptive reschedule to a higher priority task from a lower priority task. PDOS was 35 microseconds or 44% faster. Suspend/Resume Task: This is the time needed to ready a lower priority task in the system. PDOS out performed all others by 42 micro- seconds or by a factor of 2.6 times. Ping Semaphore: We could not tell what exactly needed to be timed with this test. We would appreciate additional information since we feel PDOS may out perform the others because of the previous 2 tests results. Get/Release Semaphores: PDOS provides a unique feature that has been used in numerous applications called Physical Events. This allows for Semaphores to be created that operate at extreme speed when dealing with resource locks. The fastest competitive time listed was 33 us for this test. PDOS can perform the same function in 2us or 16.5 times faster. In regard to interrupts, we understand that real-time systems must respond very optimally to interrupts or they may be forever lost. Processing interrupts should be a key objective of a real- time system since it must schedule tasks according to external or "real world" events. Therefore, the PDOS philosophy has been to optimize the interface between a real-time task and hardware interrupts. We know that critical real-time design problems often occur because the interrupt service window may be small. Interrupt Service Response: The first instruction executed in a standard PDOS interrupt service routine is the first instruction of the routine. We do not add additional overhead to the routine. The time quoted would be the time for the hardware to generate the vector and execute the first instruction. PDOS provides the most optimal approach for performing this test. Interrupt Task Response: We view this as a very critical test since this is the time from when the interrupt occurs to the time the waiting task begins executing. This means that a pre-emptive rescheduling of tasks must occur as a result of the external interrupt. We have worked for years to optimize this portion of our system. Our response time to external interrupts is 44us or 3 times faster than the next kernel listed on the tests. Because PDOS is so fast in scheduling tasks from interrupts, what other systems must do during interrupt service time, PDOS can execute as a task when interrupts are fully enabled. As we previously noted, the first PDOS design objective is "Fast Real-Time Response." We are continuing our efforts to provide real-time software for demanding real-time applications. Additional Information on PDOS and related products as well as any questions on our tests may be obtained from: Eyring Systems Software Division 1455 West 820 North Provo, UT 84601 Phone: 1-800-YES-PDOS or 1-801-375-2434 Fax: 1-801-377-3850 Email: pdos-info@Eyring.COM -- Dan Fritch dan@Eyring.COM uunet!lanai!dan Eyring Inc. +1 801-375-2434 x401