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

⏱ 20 мин · 🧩 заданий: 4

Зачем нужна ОС

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

Операционная система — комплекс программ, который (1) управляет ресурсами вычислительной системы и (2) предоставляет программам удобный интерфейс к аппаратуре.

Роль 1: менеджер ресурсов

Ресурсы компьютера: процессор, память, устройства ввода-вывода, файлы, сеть. ОС решает:

  • кому выдать ресурс (планирование);
  • как защитить ресурс одного процесса от другого (изоляция, права доступа);
  • как разделить ресурс между многими (мультиплексирование во времени — процессор; в пространстве — память, диск).

Роль 2: расширенная машина

Программисту не нужно знать, как устроен контроллер диска. ОС предлагает абстракции:

Аппаратура Абстракция ОС Интерфейс
процессор процесс, поток fork, exec, pthread_create
физическая память виртуальное адресное пространство mmap, brk
диск файл, каталог open, read, write
сеть сокет socket, connect, send
терминал файл устройства /dev/tty read, write, ioctl

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

Аналогия

ОС — администратор гостиницы. Постояльцы (процессы) получают «свои» номера (адресные пространства) и пользуются общими лифтами и ресторанами (устройствами) по очереди, а администратор следит, чтобы никто не зашёл в чужой номер.

Ядро и пространство пользователя

Центральная часть ОС — ядро (kernel). Оно работает в привилегированном режиме ядра процессора. Остальные программы — в режиме пользователя и не могут напрямую трогать устройства, таблицы страниц или чужую память.

┌────────────────────────────────────────────────────────┐ │ прикладные программы: bash, firefox, bind, gcc, fdisk │ режим │ библиотеки: libc, libpthread │ пользователя ├──────────────── системные вызовы ──────────────────────┤ │ ядро: процессы и планирование, виртуальная память, │ режим │ VFS и файловые системы, сеть, драйверы, IPC, сигналы │ ядра ├──────────────── прерывания, MMU ───────────────────────┤ │ аппаратура: CPU (регистры, MMU, TLB), RAM, диски, сеть│ └────────────────────────────────────────────────────────┘

Попасть в ядро можно только через определённые «двери»: системные вызовы, прерывания от устройств и исключения процессора. Подробно — через урок.

Подсистемы ядра

Подсистема Чем занимается Где встретим в курсе
управление процессами создание (fork), планирование, завершение модуль «Процессы»
сигналы асинхронные уведомления модуль «Сигналы»
управление памятью таблицы страниц, страничные отказы, замещение модуль «Виртуальная память»
файловая подсистема VFS, конкретные ФС, кеш страниц модуль «Файловые системы»
IPC каналы, разделяемая память, семафоры модуль «Синхронизация»
драйверы работа с устройствами урок про устройства

Стандарт POSIX

Чтобы программы переносились между Unix-подобными системами (Linux, FreeBSD, macOS), интерфейс ОС стандартизован: POSIX описывает системные вызовы и функции (fork, exec, kill, mmap, pthread_*), сигналы, утилиты shell. Всё, что мы изучаем, — POSIX плюс особенности Linux.

Итог

  • ОС управляет ресурсами и даёт программам удобные абстракции.
  • Абстракции: процесс, виртуальная память, файл, сокет.
  • Ядро работает в привилегированном режиме; программы попадают в него через системные вызовы, прерывания и исключения.

Практика решено 0 из 4

Вы не вошли — ответы проверяются, но прогресс не сохранится. Войти или зарегистрироваться.
Задание 1 Несколько вариантов

Какими ресурсами управляет операционная система?

Задание 2 Один вариант ответа

Что означает «ОС как расширенная (виртуальная) машина»?

Задание 3 Заполнить таблицу

Какая абстракция ОС заменяет каждый аппаратный ресурс?

Процесс / потокВиртуальная памятьФайлСокет
Процессор
Физическая память (RAM)
Блоки диска
Сетевая карта
Отметьте ячейку — «+», пустая — «−».
Задание 4 Один вариант ответа

Чем режим ядра отличается от режима пользователя?

Войдите, чтобы отмечать пройденные уроки.