Завершаем уровень ОС. Краткий пересказ по темам

Завершаем уровень ОС. Краткий пересказ по темам

Xalion

Два месяца назад мы начали проходить уровень операционной системы:
рассказали про назначение и функции, про простые алгоритмы и операции. Позже мы вернёмся к ОС и разберём оставшиеся сложные темы: процессы и параллелизм, очереди, треды, микроядро, семафоры, дэдлок и планирование.
А пока что краткий пересказ по всем темам.

ОС — большая программа из команд ISA и специальных команд ОС. Новые команды называются системными вызовами. Для каждой ОСки — свои команды. Вызов от виндовс не подойдет к линуксу.

Функции ОС: управляет программами, памятью, внешними устройствами и поддерживает видимый интерфейс для пользователя.

В 2018 году существует много операционок под конкретные задачи, но основа любой состоит из пяти пунктов.

  1. Ядро
  2. Командный модуль
  3. Набор драйверов
  4. Сервисные утилиты
  5. Оболочка — графический интерфейс или shell

Вспомните тему в вводной статье про ОС.


Виртуальная память

ОС создаёт иллюзию бесконечной оперативной памяти с помощью виртуальной памяти. Она работает по двум механизмам: страничной памяти и сегментной памяти.

Страничная память создаёт виртуальное адресное пространство на жёстком диске и распределяет данные программы по страницам. Первые страницы программы загружаются в оперативную память, потом страницы в оперативке постепенно меняются со страницами с диска.

Страницы сменяются по двум алгоритмам: LRU и FIFO.
LRU
Least Recently Used. Алгоритм удаляет дольше всех не используемую страницу.
FIFO
First-in First-out. Алгоритм удаляет страницу, которая была загружена раньше всех.

Вспомните тему в статье про страничную память и статье про механизмы передачи страниц.


Сегментная память создаёт много виртуальных адресных пространств — сегментов. Каждый сегмент хранит однотипные данные и не зависит от других.
Пример: сегмент для стека вызовов процедур, сегмент для данных или сегмент для буфера.

Сегменты расширяются и уменьшаются без проблем. Страницы так не могут, потому что находятся в одном адресном пространстве. Сегментная память подходит для постоянно меняющихся структур, например, для стека вызовов процедур или буфера обмена.

Вспомните тему в статье про сегментную память.


Виртуализация

Операционная система позволяет запустить внутри себя несколько других, это называется виртуализацией.

Основная операционка называется хост-системой, а созданные ОСки называются гостевыми. Управлением виртуальными машинами и их ОСками занимается программа — гипервизор.

Хост-система — Mac OS High Sierra
Гостевая система — Windows 10

Виртуализация работает программно или с поддержкой железа.

В программной виртуализации, гипервизор работает с железом компьютера через ОС. Такой подход постепенно уходит из использования.

В виртуализации с поддержкой железа, гипервизор работает напрямую с железом. Процессоры Intel используют этот подход с 2004 года в процессоре Pentium 4 662. Процессоры AMD, с 2006 года в процессоре Athlon 64 Orleans.

Виртуальная машина получает конкретное количество ресурсов для своей работы. Сколько ресурсов выдать, решает пользователь при создании виртуальной машины.

Вспомните тему в статье про виртуализацию.


Файлы

Чтобы обезопасить ОС и упростить работу с данными, в неё добавили виртуальные команды ввода-вывода. Команды работают с файлами.

Для домашних операционок, файл — группа байтов в памяти. Такие файлы хранят однотипные или смешанные данные.

Для старых мейнфреймовских ОС, файл — группа логических записей с чёткой структурой.

Для работы, виртуальные команды используют четыре системных вызова: открытия, записи, чтения и закрытия файла.

Вспомните тему в статье о виртуальных командах.


В следующей статье начнём уровень ассемблера.

Report Page