Логические ошибки в подсистемах ввода-вывода современных операционных систем
Аннотация
Современные операционные системы используют уровни абстракции для описания интерфейса ввода-вывода данных. Построенные по этим принципам операционные системы обычно соответствуют стандарту POSIX, описывающему синтаксис и семантику системных вызовов. Тем не менее, применение стандартов не гарантирует согласованности программных компонент и корректности использованных алгоритмов. В данной работе описано несколько логических ошибок, типичных для сложных систем, разные части которых разрабатывались независимо. Анализ описанных ошибок дает основания утверждать, что детальное описание программных моделей систем ввода-вывода для их формальной верификации и тестирования создаваемого кода могут значительно увеличить надежность операционных систем и прикладных программ.
Ключевые слова
Об авторах
А. Б. БетелинРоссия
Москва
А. А. Прилипко
Россия
Москва
Г. А. Прилипко
Россия
Москва
С. Г. Романюк
Россия
Москва
Д. В. Самборский
Россия
Москва
Список литературы
1. Стандарт POSIX.1-2017. The Open Group Base Specifications Issue 7, 2018 edition IEEE Std 1003.1-2017.
2. Gregg, Brendan. Linux Systems Performance. Portland, OR: USENIX Association, 2019.
3. Сайт "A journal for MD/RAID5", https://lwn.net/Articles/665299
4. Сайт "Partial Parity Log for MD RAID 5", https://lwn.net/Articles/715280
5. J. Gray, et al. The transaction concept: Virtues and limitations, VLDB. – 1981. – Т. 81. – С. 144-154.
6. Сайт "Add 'failfast' support for raid1/raid10", https://lwn.net/Articles/706865
7. Сайт "Timeout Mismatch", https://raid.wiki.kernel.org/index.php/Timeout_Mismatch
8. Сайт "Many (long) HDD default timeouts cause data loss or corruption (silent controller resets)", https://www.smartmontools.org/ticket/658
9. Сайт "PostgreSQL's handling of fsync() errors is unsafe and risks data loss at least on XFS", https://lwn.net/Articles/752093
10. Сайт «Руководство PostgreSQL. Часть III. Администрирование сервера. Глава 29. Надёжность и журнал предзаписи», https://postgrespro.ru/docs/postgresql/13/wal-reliability
11. Klein, Gerwin, June Andronick, Kevin Elphinstone, Toby Murray, Thomas Sewell, Rafal Kolanski, and Gernot Heiser. Comprehensive formal verification of an OS microkernel. ACM Transactions on Computer Systems (TOCS) 32, no. 1 (2014): 1-70.
Рецензия
Для цитирования:
Бетелин А.Б., Прилипко А.А., Прилипко Г.А., Романюк С.Г., Самборский Д.В. Логические ошибки в подсистемах ввода-вывода современных операционных систем. МАТЕМАТИЧЕСКОЕ И КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ СЛОЖНЫХ СИСТЕМ: ТЕОРЕТИЧЕСКИЕ И ПРИКЛАДНЫЕ АСПЕКТЫ. 2022;12(4):50-55.
For citation:
Betelin A.B., Prilipko A.A., Prilipko G.A., Romanyuk S.G., Samborskiy D.V. Logical errors in the input/output subsystems of modern operating systems. МАТЕМАТИЧЕСКОЕ И КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ СЛОЖНЫХ СИСТЕМ: ТЕОРЕТИЧЕСКИЕ И ПРИКЛАДНЫЕ АСПЕКТЫ. 2022;12(4):50-55. (In Russ.)