Завершаем уровень ОС. Краткий пересказ по темам
XalionДва месяца назад мы начали проходить уровень операционной системы:
рассказали про назначение и функции, про простые алгоритмы и операции. Позже мы вернёмся к ОС и разберём оставшиеся сложные темы: процессы и параллелизм, очереди, треды, микроядро, семафоры, дэдлок и планирование.
А пока что краткий пересказ по всем темам.
ОС — большая программа из команд ISA и специальных команд ОС. Новые команды называются системными вызовами. Для каждой ОСки — свои команды. Вызов от виндовс не подойдет к линуксу.
Функции ОС: управляет программами, памятью, внешними устройствами и поддерживает видимый интерфейс для пользователя.
В 2018 году существует много операционок под конкретные задачи, но основа любой состоит из пяти пунктов.
- Ядро
- Командный модуль
- Набор драйверов
- Сервисные утилиты
- Оболочка — графический интерфейс или shell
Вспомните тему в вводной статье про ОС.
Виртуальная память
ОС создаёт иллюзию бесконечной оперативной памяти с помощью виртуальной памяти. Она работает по двум механизмам: страничной памяти и сегментной памяти.
Страничная память создаёт виртуальное адресное пространство на жёстком диске и распределяет данные программы по страницам. Первые страницы программы загружаются в оперативную память, потом страницы в оперативке постепенно меняются со страницами с диска.
Страницы сменяются по двум алгоритмам: LRU и FIFO.
LRU — Least Recently Used. Алгоритм удаляет дольше всех не используемую страницу.
FIFO — First-in First-out. Алгоритм удаляет страницу, которая была загружена раньше всех.
Вспомните тему в статье про страничную память и статье про механизмы передачи страниц.
Сегментная память создаёт много виртуальных адресных пространств — сегментов. Каждый сегмент хранит однотипные данные и не зависит от других.
Пример: сегмент для стека вызовов процедур, сегмент для данных или сегмент для буфера.
Сегменты расширяются и уменьшаются без проблем. Страницы так не могут, потому что находятся в одном адресном пространстве. Сегментная память подходит для постоянно меняющихся структур, например, для стека вызовов процедур или буфера обмена.
Вспомните тему в статье про сегментную память.
Виртуализация
Операционная система позволяет запустить внутри себя несколько других, это называется виртуализацией.
Основная операционка называется хост-системой, а созданные ОСки называются гостевыми. Управлением виртуальными машинами и их ОСками занимается программа — гипервизор.
Виртуализация работает программно или с поддержкой железа.
В программной виртуализации, гипервизор работает с железом компьютера через ОС. Такой подход постепенно уходит из использования.
В виртуализации с поддержкой железа, гипервизор работает напрямую с железом. Процессоры Intel используют этот подход с 2004 года в процессоре Pentium 4 662. Процессоры AMD, с 2006 года в процессоре Athlon 64 Orleans.
Виртуальная машина получает конкретное количество ресурсов для своей работы. Сколько ресурсов выдать, решает пользователь при создании виртуальной машины.
Вспомните тему в статье про виртуализацию.
Файлы
Чтобы обезопасить ОС и упростить работу с данными, в неё добавили виртуальные команды ввода-вывода. Команды работают с файлами.
Для домашних операционок, файл — группа байтов в памяти. Такие файлы хранят однотипные или смешанные данные.
Для старых мейнфреймовских ОС, файл — группа логических записей с чёткой структурой.
Для работы, виртуальные команды используют четыре системных вызова: открытия, записи, чтения и закрытия файла.
Вспомните тему в статье о виртуальных командах.
В следующей статье начнём уровень ассемблера.