Этот конспект не сохранится

Закроешь вкладку — потеряешь. Зарегистрируйся — и он будет в библиотеке навсегда.

Telegram

Ваш конспект

YouTubeЧто такое операционная система и как она работает

🖥️ Что такое операционная система и как она работает

Ключевые тезисы:

  • 🔄 Операционная система (ОС) — это посредник между пользователем/программой и аппаратурой компьютера.
  • 🎭 Главная задача ОС — создать у каждого процесса иллюзию монопольного использования компьютера.
  • 🧩 ОС предоставляет программистам высокоуровневые абстракции (процессы, файлы, память), скрывая сложность оборудования.
  • ⚙️ Работа ОС реактивна: она отвечает на события (системные вызовы, прерывания от оборудования).
  • 🔀 Механизм прерываний — ключевой аппаратный способ, позволяющий ОС управлять выполнением процессов.

🌍 Где живут операционные системы?

ОС окружают нас повсюду. Они работают не только в компьютерах и телефонах, но и во многих других устройствах:

  • 📱 Смартфоны и планшеты
  • 💻 Ноутбуки и десктопы
  • 📚 Электронные книги
  • 🏧 Банкоматы
  • 📶 Роутеры и точки доступа
  • 📺 Умные телевизоры
  • 🚗 Автомобили (включая локальные CAN-сети внутри машины)

👨‍💻 Взгляд пользователя и программиста

Для пользователя ОС — это прежде всего интерфейс: графический (иконки, окна) или текстовый (консоль/терминал), через который он запускает приложения.

Для программиста ОС — это набор системных вызовов (API), которые его программа использует для взаимодействия с железом. Даже простая программа Hello World делает множество скрытых системных вызовов для своей работы (загрузка в память, вывод на экран).


🎯 Ключевые задачи операционной системы

1. Создание иллюзии монопольной машины

Каждому запущенному процессу (приложению) ОС создаёт впечатление, что весь компьютер (процессор, память) принадлежит только ему. Это называется виртуализацией ресурсов.

2. Управление и изоляция процессов

  • 🚀 Многозадачность: ОС позволяет запускать множество процессов одновременно, даже если физических ядер процессора меньше.
  • 🛡️ Изоляция: Если одно приложение падает (например, "Выполнена недопустимая операция"), это не должно влиять на другие приложения или саму ОС.
  • 💾 Управление памятью: ОС выделяет каждому процессу его собственное адресное пространство и может создавать иллюзию большего объёма памяти, чем есть физически (виртуальная память).

3. Предоставление общих абстракций и сервисов

ОС скрывает разнообразие железа за универсальными интерфейсами. Основные абстракции:

  • Процессы и потоки — единицы выполнения.
  • Файлы и файловая система — универсальный интерфейс для работы с данными и устройствами.
  • Адресное пространство — "личная" память процесса.
  • Сокеты и протоколы — средства коммуникации.

⚙️ Как устроена операционная система изнутри?

Уровни архитектуры

  1. Оборудование (Hardware): процессор, память, диски, сетевые платы.
  2. Драйверы устройств: переводят команды ОС в специфичные команды для конкретного железа.
  3. Ядро ОС (Kernel): содержит основные сервисы (управление процессами, памятью, безопасностью).
  4. Системные вызовы (System Call Interface): мост между программами пользователя и ядром.
  5. Пользовательское пространство (User Space): здесь работают приложения пользователя.

Ключевые механизмы работы

🔀 Прерывания (Interrupts)

Прерывание — это аппаратный сигнал, который жёстко останавливает выполнение текущей инструкции процессора и передаёт управление специальному обработчику в ОС. Без прерываний реализовать ОС было бы невозможно.

Типы прерываний:

  • ⏰ Таймера: срабатывают через заданные интервалы. Основа многозадачности.
  • 🖥️ Системные вызовы: специальные прерывания, которые приложение вызывает само, чтобы обратиться к сервисам ОС (открыть файл, выделить память).
  • ⚠️ Исключительные ситуации: например, попытка доступа к запрещённой памяти.

🔄 Планировщик (Scheduler) и многозадачность

Как это работает:

  1. При загрузке ОС создаёт первый процесс (например, логин или графическую оболочку).
  2. ОС программирует таймер на генерацию прерываний через фиксированные кванты времени (например, каждые 20 мс).
  3. При срабатывании прерывания таймера управление возвращается ядру.
  4. Планировщик решает, какой процесс из состояния "готов" перевести в состояние "активен" и поставить на процессор.
  5. Происходит смена контекста: состояние регистров текущего процесса сохраняется, состояние следующего — загружается.

Состояния процесса:

  • ▶️ Active (Активен): выполняется на процессоре.
  • ⏸️ Ready (Готов): готов к выполнению, но ждёт своей очереди на процессор.
  • ⏳ Waiting (Ждёт): ожидает завершения операции (например, чтения с диска).

🧠 Управление памятью и виртуальная память

  • Каждый процесс работает с логическими адресами в своём адресном пространстве (например, от 0 до 4 ГБ для 32-битной системы).
  • Аппаратный модуль MMU (Memory Management Unit) транслирует логические адреса в физические адреса реальной оперативной памяти.
  • Виртуальная память (своппинг) позволяет "обмануть" процессы, предоставив им больше памяти, чем есть физически, за счёт выгрузки неактивных страниц памяти на диск (в файл подкачки).
  • При обращении к "выгруженной" странице возникает page fault (отказ страницы) — прерывание, обработчик которого загружает нужную страницу с диска обратно в память.

📌 Основные абстракции ОС в деталях

Процесс vs Поток

  • Процесс — это контейнер ресурсов. Это абстракция виртуального компьютера: у процесса есть своя память, файлы, состояние. Это единица изоляции.
  • Поток (нить) — это поток исполнения внутри процесса. Потоки одного процесса разделяют общие ресурсы (прежде всего, память).

Метафора: Процесс — это аквариум с водой, растениями (ресурсы). Потоки — это рыбы, которые плавают в этом аквариуме и используют общие ресурсы.

⚠️ Проблемы многопоточности: синхронизация и взаимные блокировки

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

Критическая секция — участок кода, где поток работает с разделяемым ресурсом. Доступ к этой секции должен быть взаимоисключающим.

Классическая проблема — Взаимная блокировка (Deadlock):
Ситуация, когда два или более потока ждут освобождения ресурсов, захваченных друг другом, и ни один не может продолжить работу.

Пример (Deadlock):
Поток 1 захватил ресурс A и хочет захватить B.
Поток 2 захватил ресурс B и хочет захватить A.
Оба будут ждать вечно.


🚀 Заключение и выводы

  1. ОС — фундаментальный посредник, без которого современное использование компьютеров было бы невозможным.
  2. Главная философия ОС — предоставление удобных, высокоуровневых абстракций, скрывающих сложность и разнообразие аппаратуры.
  3. Ключевые механизмы — прерывания, планировщик, виртуальная память — работают согласованно, чтобы создать иллюзию "персонального компьютера" для каждого процесса.
  4. Многозадачность и изоляция — сложные задачи, решаемые ОС, которые мы воспринимаем как данность.
  5. Разработка под ОС означает опору на её API (системные вызовы), что обеспечивает переносимость программ между разным железом.
🖥️ Основы операционных систем: как работает ОС — конспект на EchoNote