Автор работы: Пользователь скрыл имя, 19 Января 2015 в 18:43, реферат
Операционные системы реального времени (ОСРВ) предназначены для обеспечения интерфейса к ресурсам критических по времени систем реального времени. Основной задачей в таких системах является своевременность (timeliness) выполнения обработки данных.
В качестве основного требования к ОСРВ выдвигается требование обеспечения предсказуемости или детерминированности поведения системы в наихудших внешних условиях, что резко отличается от требований к производительности и быстродействию универсальных ОС. Хорошая ОСРВ имеет предсказуемое поведение при всех сценариях системной загрузки (одновременные прерывания и выполнение потоков).
1. Введение: Особенности операционных систем реального времени
1.1. Процессы, потоки, задачи
1.2. Планирование, приоритеты
1.3. Память
1.4. Прерывания
1.5. Часы и таймеры
1.6. Стандарты ОСРВ
1.6.1. POSIX
1.6.2. DO-178B
1.6.3. ARINC-653
1.6.4. OSEK
1.6.5. Стандарты безопасности
1.7. Настраиваемость операционных систем
2. Краткие характеристики наиболее распространенных ОСРВ
2.1. VxWorks
2.2. QNX Neutrino RTOS
2.3. RTEMS
2.4. ChorusOS
2.5. Расширения реального времени для Windows NT
2.5.1. RTX для Windows NT
2.5.2. INtime
2.5.3. Microsoft Windows Embedded
2.6. TinyOS
2.7. OSEK/VDX
2.8. OSE RTOS
2.9. Contiki
2.10. pSOS
2.11. INTEGRITY
2.12. LynxOS
2.13. Microware OS-9
2.14. GRACE-OS
2.15. C EXECUTIVE
2.16. CMX-RTX
2.16.1. CMX-TINY+
2.17. Inferno
3. ОС, разработанные специально для портативных устройств
3.1. ITRON
3.2. Windows CE
3.3. JavaOS
3.4. Jbed
3.5. Nucleus RTOS
3.6. EMERALDS
3.7. CORTEX
3.8. DeltaOS
3.9. Palm OS
3.10. Symbian OS (EPOC)
4. Настраиваемость операционных систем
4.1. Адаптация, осуществляемая человеком
4.1.1. Статическая адаптация, инициированная проектировщиком
4.1.2. Динамическая адаптация, инициированная администратором
4.2. Адаптация, инициированная приложением
4.2.1. Адаптация с уровня приложения
4.2.2. Адаптация на уровне ядра
4.3. Автоматическая адаптация
5. Сводные таблицы характеристик свойств ОСРВ
Таблица 2. Характеристики многозадачной обработки
ОСРВ |
Модель защиты |
Поддержка MMU |
Виртуаль-ная память |
Подкачка |
Вызов стр. по запросу |
VxWorks |
-без защиты |
не требуется, но поддерживается для VxVMI |
да (для VxVMI) |
нет |
нет |
QNX |
защита виртуальной памяти |
Да |
да |
да |
нет |
Windows CE |
- защита виртуальной памяти |
да или нет (зависит от конфигурации) |
да |
да, но можно запретить |
да, но можно запретить |
pSOS |
- без защиты, |
не требуется |
нет |
нет |
нет |
ChorusOS |
-без защиты, |
да или нет (зависит от конфигурации) |
да |
да |
да |
OSE |
Да |
||||
OS-9 |
Да |
||||
C EXEC-UTIVE |
Нет |
||||
CMX-RTX |
Да |
||||
INTEG-RITY |
Да |
||||
INtime |
Да |
||||
LynxOS |
Да |
||||
RTX |
Да |
Таблица 3. Характеристики управления памятью
ОСРВ |
Управление прерываниями |
Управление временем | |||
Прерывания |
Контекст |
Стек |
Взаимодействие прерываний с задачами |
||
VxWorks |
Вложенные, с приоритетами |
Обработчики прерываний выполняются в отдельном контексте |
Специальный стек для прерываний. Если архитектура этого не позволяет, то используется стек прерванной задачи |
Рразделяемая память и циклические. буфера, семафоры, очереди сообщений, каналы, сигналы |
Часы (clock), интервальный таймер |
QNX |
Вложенные, с приоритетами |
Прерывание обрабатывается в контексте потока |
Прерывание имеет свой собственный стек |
Сигналы и импульсы |
Часы (clock), интервальный таймер |
Windows CE |
Вложенные, с приоритетамиIST используется для обработки большинства прерываний |
ISR выполняется. в специальном контексте, при этом ISR использует виртуальные адреса, статическое. отображение. OEM. IST выступает как обычный поток приложения и имеет свой собственный контекст и приоритет. |
IST выступает как обычный поток
приложения и имеет свой |
Из ISR можно подать сигнал в IST только с помощью события. OEM может создать область разделяемой памяти с помощью статического отображения области памяти в адресное пространство ISR. |
Часы (clock), интервальный таймер |
pSOS |
Вложенные, с приорите-тами |
Прерывание выполняется в контексте потока |
Стек ядра или стек прерывания в зависимости от целевой платформы |
Через объекты взаимодействия и синхронизации |
Часы (clock), интервальный таймер |
ChorusOS |
Обработчики прерываний выполняются в отдельном контексте |
Флаги событий, MIPC |
Универсальное интервальное время, виртуальный таймер, универсальное. время. часы истинного времени, сторожевой таймер, оценочный таймер |
Таблица 4. Характеристики управления прерываниями, синхронизацией и временем различных ОСРВ
API
– программный интерфейс
BSP – Board Support Package – комплект конфигурационных и инициализационных модулей.
CPU – центральный процессор.
DSP – Digital Signal Processor.
EDF – Earliest Deadline First – динамические алгоритмы планирования.
FIFO
– First in First Out – политика планирования
обработки процессов по
GUI
– графический
IPC
– Interprocess Communication – межпроцессное
взаимодействие (возможность операционной
системы, позволяющая задачам или
процессам обмениваться
ISR
– interrupt servicing routine – программа обработки
прерывания (программа низкого уровня
в ядре с ограниченными
IST – interrupt servicing thread – поток обработки прерывания (поток уровня приложения, который управляет прерыванием, с доступом ко всем системным вызовам).
MMU
– memory management unit – специальное аппаратное
устройство для поддержки
NFS – Network File System.
OLE – Object Linking and Embedding – связывание и внедрение объектов. С помощью этой технологии приложения могут обмениваться информацией с другими приложениями через стандартные интерфейсы, доступ к которым возможен из множества различных языков программирования.
OEM – original equipment manufacturer.
RAM
– random access memory – память (запоминающее
устройство) с произвольной выборкой;
оперативное запоминающее
RMS – Rate Monotonic Scheduling – статические алгоритмы планирования.
ROM
– read-only memory – постоянная память,
постоянное запоминающее
RRS – round-robin scheduling – циклическое планирование.
RTAPI – Real-Time Application Programming Interface.
RTOS – Realtime Operating System.
RTX – Real Time Extension.
SNMP – Simple Network Management Protocol.
SRT – soft real-time.
UART – universal asynchronous receiver-transmitter, модуль асинхронной последовательной передачей данных
Condition variables – |
переменные состояния |
Deadline – |
директивный срок задачи, до которого задача должна обязательно (для систем мягкого реального времени – желательно) выполниться |
Deadline-driven |
политика планирования, управляемая дедлайнами |
Host – |
инструментальный компьютер |
Interrupt Latence Time – |
время задержки прерывания |
Kernel или nucleus – |
микроядро |
Light-weight process – |
подпроцесс, или легковесный процесс |
Paging – |
страничная организация памяти |
Pre-emptable OS – |
ОС, допускающая вытеснение |
Preemption – |
приоритетное прерывание обслуживания |
Scheduling – |
планирование задач |
Spawn – |
порождение нового процесса |
Target – |
целевой компьютер |
Thread – |
поток |
Time slicing – |
квантование времени |
Timeliness – |
своевременность |
Ticker – |
часовой механизм |
Инструментальный компьютер – |
host |
Квантование |
time slicing |
Микроядро – |
kernel или nucleus |
Планирование |
scheduling |
Подпроцесс или легковесный процесс – |
light-weight process |
Политика планирования, управляемая дедлайнами – |
deadline-driven scheduling |
Поток – |
thread |
Приоритетное прерывание обслуживания – |
preemption |
Своевременность – |
timeliness |
Страничная организация памяти – |
paging |
Целевой компьютер – |
target |
Циклическое планирование – |
round-robin scheduling |
[2K] http://choices.cs.uiuc.edu/2K/
[CEXEC] http://www.jmi.com/
[CHORUSOS] http://docs.sun.com/app/docs/
[CMXRTX] http://www.cmx.com/rtx.htm
[CMXTINY] http://www.cmx.com/tiny.htm
[DEDSYS] http://www.dedicated-systems.
[DO178B] http://www.rtca.org/
[EPOC] http://www.symbian.com/about/
[INFERNO] http://www.vitanuova.com/
[INTEGRITY] http://www.ghs.com/products/
[INTIME] http://www.tenasys.com/intime.
[ITRON] http://www.sakamura-lab.org/
[LynxOS] http://www.lynuxworks.com/
[MSEmb] http://msdn.microsoft.com/
[NUCLEUS] http://www.
[OS-9] http://www.microware.com/
[OSEK] http://www.osek-vdx.org/
[OSERTOS] http://www.ose.com/
[PALMOS] http://www.palmsource.com/
[PSOS] http://www.windriver.com/
[QNX] http://www.qnx.com/
[RTEMS] http://www.rtems.com/
[RTX] http://www.vci.com/
[VxWorks] http://www.windriver.com/
[Velosity] http://www.ghs.com/products/
[VSPWorks]
Wind River VSPWorks, technical brief http://www.transtech-dsp.com/
[WinCE] http://msdn.microsoft.com/
[BSP95] B. N. Bershad, S. Savage, P. Pardyak, E. G. Sirer, D. Becker, M. Fiuczynski, C. Chanbers, and S. Eggers. Extensibility, safety and performance in the SPIN operating system. Proc. of the 15th ACM Symposium on Operating Systems Principles, 1995.
[Beu99] D. Beuche et al. The PURE Family of Object-Oriented Operating Systems for Deeply Embedded Systems. Proc. 2nd IEEE Int’l Symp. Object-Oriented Real-Time Distributed Computing, IEEE Press, Piscataway, N.J., 1999.
[CC99]
Common Criteria for Information Technology Security Evaluation (CC),
Version 2.1, 1999. ISO/IEC 15408. http://csrc.nist.gov/cc/CC-v2.
[CIR93] R. Campbell, N. Islam, D. Raila, and P. Madany. Designing and implementing Choices: an object-oriented system in C++. Commun. ACM 36, 9, 117–126, 1993.
[CRJ87] R. Campbell, V. Russo, and G. M. Jonston. The design of a multiprocessor operating system. Proceedings of the USENIX C++ Workshop, 109–125, 1987.
[CD94] D.R. Cheriton, and K.J. Duda. A caching model of operating system kernel functionality. In Operating Systems Design and Implementation. 179–193, 1994.
[CBK96] C. Cowan, A. Black, C. Krasic, C. Pu, J. Walpole, C. Consel, and E. Volanschi. Specialization classes: An object framework for specialization. Proc. of the 5th International Workshop on Object-Orientation in Operating Systems (IWOOOS ’96), 1996.
[EKO95] D. R. Engler, F. Kaashoek, and J. O’Toole. Exokernel: An operating system architecture for application-level resource management. Proc. of the 15th ACM Symposium on Operating Systems Principles. 251–266, 1995.
[DGV04] A. Dunkels, B. Grцnvall, T. Voigt. Contiki – A Lightweight and Flexible Operating System for Tiny Networked Sensors. 29th Annual IEEE International Conference on Local Computer Networks (LCN'04), pp. 455-462, November 16-18, 2004, Tampa, Florida, USA.
[DoD85] Department of Defense Trusted Computer System Evaluation Criteria. – DoD 5200.28 – STD, December 26, 1985.
[DPM02] G. Denys, F. Piessens, and F. Matthijs. A survey of customizability in operating systems research. ACM Computing Surveys (CSUR), 34(4):450-468, December 2002.
[FBB97] B. Ford, G. Back, G. Benson, J. Lepreau, A. Lin, and O. Shivers. The flux OSKit: A substrate for kernel and language research. Proc, of the 16th ACM Symposium on Operating Systems Principles. 38-51, 1997.
[FHL96] B. Ford, M. Hibler, J. Lepreau, P. Tullmann, G. Back, and S. Clawson. Microkernels meet recursive virtual machines. Proc. of the 2nd Symposium on Operating Systems Design and Implementation. 137–151, 1996.
[HPM98] M. Horie, J. Pang, E. Manning, and G. Shoja. Using meta-interfaces to support secure dynamic system reconfiguration. Proc. of the 4th International Conference on Configurable Distributed Systems (ICCDS’98), 1998.
[HSW00] J. Hill, R. Szewczyk, A. Woo, S. Hollar, D. Culler, and K. Pister. System architecture directions for networked sensors. In Proc. ASPLOS-IX, November 2000.
[Jbed98] Oberon Microsystems, Jbed Whitepaper: Component Software and Real-time Computing, tech. report, 1998; http://www.oberon.ch .
[KLM93] G. Kiczales, J. Lamping, C. Maeda, D. Keppel, and D. McNamee. The need for customizable operating systems. Proc. of the 4th Workshop on Workstation Operating Systems, 1993.
[LC02] P. Levis and D. Culler. Matй: A tiny virtual machine for sensor networks. In Proc. ASPLOS-X, October 2002.
[LL73] C. L. Liu, J. W. Layland. Scheduling Algorithms for Multi-Programming in a Hard Real-Time Environment. Journal of the Association for Computing Machinery 20, 1 (January 1973): 40-61.
[Lie93] J. Liedtke. Improving IPC by kernel design. Proc. of the 14th ACM Symposium on Operating System Principles (SOSP), 1993.
[Lie95] J. Liedtke. On microkernel construction. Proc. of the 15th ACM Symposium on Operating System Principles, 1995.
[Lie96] J. Liedtke. Toward real microkernels. Commun. ACM 39, 9, 70–77, 1996.
[POSIX] IEEE Std 1003.1, 2004 Edition. The Open Group Technical Standard. Base Specifications, Issue 6. Включает IEEE Std 1003.1-2001, IEEE Std 1003.1-2001/Cor 1-2002 and IEEE Std 1003.1-2001/Cor 2-2004. System Interfaces.
[MBG00] K. Magoutis, J. C. Brustoloni, E. Garber, W. T. Ng, and A. Silberschatz. Building appliances out of reusable components using pebble. Proc. of the 9th ACM SIGOPS European Workshop, 2000.
[MMO95] A. B. Montz, D. Mosberger, S. W. O’Malley, L. L. Peterson, and T. A. Proebsting. Scout: A communications-oriented operating system. Proc. of the 5th Workshop on Hot Topics in Operating Systems. 1995.
[Nec97] G. C. Necula. Proof-carrying code. In Conference Record of POPL ’97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 106–119, 1997.
[PBK91] D. Probert, J. Bruno, and M. Karzaorman. Space: a new approach to operating system abstraction. Proc. of the International Workshop on Object Orientation in Operating Systems. 133–137, 1991.
[POSIXTestSuite] National Institute of Standards and Technology, PCTS: 151-2, POSIX Test Suite.
[SM99] T. Saulpaugh and C. Mirho. Inside the JavaOS Operating System. Addison Wesley, Reading, Mass., 1999.
[SS97] M. I. Seltzer, and C. Small. Self-monitoring and self-adapting operating systems. Proc. of the 6th Workshop on Hot Topics in Operating Systems, 1997.
[SSF99] J. S. Shapiro, J. M. Smith, and D. J. Fabrer. EROS: a fast capability system. Proc. 17th ACM Symp. Operating Systems Principles, ACM Press, New York, 1999.
[SP97] O. Spatscheck, and L. Peterson. Escort: a path-based os security architecture. Tech. Rep. TR97-17, Dept. of Computer Science, University of Arizona, 1997.
[VH96] A. Veitch and N. Hutchinson. Kea – a dynamically extensible and configurable operating system kernel. Proc. of the 3rd Conference on Configurable Distributed Systems, 1996.
[WLA93] R. Wahbe, S. Lucco, T. E. Andersen, and S. L. Graham,. Efficient software-based fault isolation. ACM SIGOPS Operating Systems Review 27, 5 (December), 203–216, 1993.
[YN03] W. Yuan, K. Nahrstedt. Energy-Efficient Soft Real-Time CPU Scheduling for Mobile Multimedia Systems. ACM Symposium on Operating Systems Principles (SOSP), 2003.
[ZS01] K. M. Zuberi, K. G. Shin: EMERALDS: A Small-Memory Real-Time Microkernel. IEEE Trans. Software Eng. 27(10): 909-928 (2001)