Основы UNIX
Определение операционной системы
Операционная система — набор программ и данных (таблиц, структурированных данных), позволяющих общаться с аппаратными средствами вычислительной системы и предоставляющих интерфейс для работы с системой и прикладным программным обеспечением.
Ресурсы, которыми управляет ОС
- Процессорное время
- Оперативная память
- Устройства ввода/вывода
- Сетевые интерфейсы
- Программы и данные
Ресурсы делятся на выгружаемые (можно отнять у процесса, например процессорное время) и невыгружаемые (нельзя отнять, например принтер во время печати).
Функции ОС
- Распределение и перераспределение оперативной памяти
- Управление устройствами ввода/вывода
- Управление процессами и потоками
- Распределение внешней памяти
- Обработка прерываний
- Учёт и контроль
- Предоставление интерфейса для доступа к ресурсам
- Предоставление инструментов для разработки ПО
Функции 1–6 предоставляет ядро ОС.
Основные характеристики UNIX-подобных ОС
| Характеристика | Описание |
|---|---|
| Разделение времени | Многозадачность на основе принципов разделения времени |
| Унификация ресурсов | Все ресурсы (файлы, устройства, потоки) представлены как файлы |
| Ориентация на сеть | Изначально разрабатывалась с поддержкой распределённых вычислений |
| Мобильность | Легко адаптируется для разных аппаратных платформ |
| Инструментальность | Богатый набор встроенных утилит |
Проблемы UNIX-подобных систем
- Отсутствие реального времени — программы не могут выполняться с жёсткими временными ограничениями нативно.
- Снижение эффективности при одновременной обработке большого числа однотипных задач.
- Слабая устойчивость к аппаратным сбоям — частично решается механизмами отказоустойчивости.
Структура Linux
Ядро
Ядро управляет всеми основными функциями системы и отвечает за взаимодействие аппаратных и программных компонентов.
Программы в оперативной памяти
- Секция управляющих структур — таблицы ядра (дескрипторы процессов и др.).
- Диспетчер процессов — машинно-независимая часть, легко переносится между платформами.
- Диспетчер внешних устройств — машинно-зависимая часть для управления подключёнными устройствами.
Состояния операционной системы
| Состояние | Описание |
|---|---|
| Система | Выполняются системные вызовы или обработка прерываний |
| Процесс | Выполняются команды пользовательского процесса |
| Ожидание | ОС ожидает появления готовых к выполнению процессов |
Состояния процесса
У каждого процесса может быть одно из трёх состояний:
- Выполняется — процессор выделен процессу прямо сейчас.
- Готов — процесс ждёт, когда система предоставит ему процессор.
- Блокирован — процесс ждёт завершения ввода/вывода или наступления события.
Квант времени в UNIX — 100 мс (параметр можно изменить). Чем меньше номер процесса, тем выше его приоритет.
Принципы современных ОС
- Единообразное именование устройств — все устройства имеют единообразные имена.
- Многослойность — архитектура разбита на изолированные функциональные модули.
- Независимость устройств — устройства функционируют независимо друг от друга.
- Стандартизированное взаимодействие — взаимодействие между устройствами и системой стандартизировано.
Дисциплины линий передачи данных
| Режим | Описание | Пример |
|---|---|---|
| Симплекс | Передача только в одном направлении | Радиовещание |
| Полудуплекс | В обоих направлениях, но не одновременно | Рация |
| Дуплекс | Одновременно в обоих направлениях | Телефон, Ethernet |