Уровни вычислительной системы
Многоуровневая модель
Вычислительную систему удобно представлять как «слоёный пирог»: каждый уровень пользуется услугами нижнего и предоставляет услуги верхнему. В классическом курсе операционных систем выделяют такие уровни:
Уровни 2 и 3 вместе — это операционная система (её ядро).
Что на каждом уровне
1. Аппаратный уровень
Всё, что реализовано «в железе»: процессор с регистрами, MMU (блок трансляции адресов), TLB, контроллеры прерываний, память, устройства. Сюда относится регистр cr3 в i386: он хранит физический адрес каталога страниц текущего процесса, и MMU берёт его оттуда при каждом обходе таблиц.
2. Управление физическими ресурсами
Часть ядра, которая работает непосредственно с аппаратурой:
- драйверы устройств и обработчики прерываний;
- распределение физической памяти (кадров);
- таблицы страниц — структуры, которые ядро заполняет, а MMU читает;
- страничный демон (в Linux — поток ядра
kswapd) — освобождает кадры, выгружая страницы.
3. Управление логическими ресурсами
Часть ядра, которая предлагает абстракции: процессы, файлы и каталоги (через VFS), виртуальное адресное пространство, сокеты. Псевдофайловая система /proc — тоже логический ресурс: «файл» /proc/cpuinfo не лежит на диске, ядро генерирует его текст при чтении.
4. Системы программирования
Всё, что нужно, чтобы создавать и запускать программы: компиляторы, ассемблер, компоновщик, динамический загрузчик ld-linux.so, стандартные библиотеки, отладчики, make, ldd.
5. Прикладные системы
Программы, решающие задачи пользователя: браузер, СУБД, DNS-сервер bind, веб-сервер. Утилиты администрирования (fdisk, mount, ps) — тоже обычные программы режима пользователя, которые пользуются интерфейсом ядра.
Как определять уровень
Задайте себе три вопроса:
- Это «железо» или программа? Регистр, TLB, MMU — аппаратура.
- Если программа — где выполняется: в ядре или в пространстве пользователя? Код ядра — уровни 2–3; процессы — уровни 4–5.
- С какими сущностями работает? С физическими (кадры, устройства, прерывания) — уровень 2; с абстракциями (файлы, процессы) — уровень 3; с программами (компиляция, компоновка, загрузка) — уровень 4; с задачами пользователя — уровень 5.
Ответ поясните
В задаче 2 сказано: «если к нескольким — перечислите все» и «ответ поясните». Баллы ставят за рассуждение. Хороший ответ: «Таблица страниц — уровни 1 и 2: это структура данных ядра (подсистема управления физической памятью заполняет её при страничных отказах и fork), а аппаратура — MMU — читает её при каждой трансляции адреса, если в TLB нет нужной записи».
Разбор восьми компонентов из экзамена
| Компонент | Уровень | Почему |
|---|---|---|
fdisk |
прикладной (утилита администратора) | процесс пользователя; читает и пишет таблицу разделов через файл блочного устройства /dev/sda, то есть пользуется услугами ядра |
ldd |
системы программирования | показывает разделяемые библиотеки программы и где их найдёт динамический загрузчик — понятия компоновки |
/proc/cpuinfo |
управление логическими ресурсами (+ отражает аппаратуру) | псевдофайл procfs: ядро генерирует содержимое при чтении; сведения — об аппаратуре процессора |
| таблица страниц | аппаратура + управление физическими ресурсами | ядро заполняет, MMU обходит при промахе TLB |
| инвертированная таблица страниц | управление физическими ресурсами (+ аппаратура на некоторых архитектурах) | по одной записи на физический кадр: какая страница какого процесса в нём лежит; на PowerPC её (хешированную) просматривает аппаратура |
| страничный демон | управление физическими ресурсами | поток ядра: следит за числом свободных кадров, выгружает страницы, использует биты A и D |
DNS-сервер bind |
прикладные системы | обычный сетевой сервер в пространстве пользователя |
регистр cr3 |
аппаратура (загружается ядром) | регистр процессора с адресом каталога страниц; ядро переписывает его при переключении контекста, при этом сбрасывается TLB |
А если преподаватель использует модель из 4 уровней?
Иногда используют упрощённую модель: аппаратура → ядро ОС → системное ПО (утилиты, библиотеки, компиляторы) → прикладное ПО. Тогда:
fdisk,ldd— системное ПО;/proc/cpuinfo, таблицы страниц, страничный демон — ядро (таблицы страниц и cr3 — ещё и аппаратура);bind— прикладное ПО.
Суть рассуждений не меняется: «кто выполняет» и «с чем работает». Назовите модель, которой пользуетесь, и объясните.
Итог
- Уровни: аппаратура → управление физическими ресурсами → управление логическими ресурсами → системы программирования → прикладные системы.
- Уровни 2–3 — ядро ОС.
- Компонент может относиться к нескольким уровням: таблица страниц — ядро и аппаратура.
- На экзамене главное — объяснение: кто выполняет и с какими сущностями работает.
Практика решено 0 из 4
Расположите уровни вычислительной системы снизу вверх:
- Программное обеспечение управления физическими ресурсами
- Программное обеспечение управления логическими ресурсами
- Прикладные системы
- Аппаратный уровень
- Системы программирования
Отнесите компоненты к уровням вычислительной системы (это задача 2 экзамена). Отметьте все подходящие уровни. В спорных ячейках принимается любой ответ — главное уметь объяснить.
| Аппаратура | Упр. физическими ресурсами (ядро) | Упр. логическими ресурсами (ядро) | Системы программирования | Прикладные системы | |
|---|---|---|---|---|---|
| fdisk | |||||
| ldd | |||||
| /proc/cpuinfo | |||||
| таблица страниц | |||||
| инвертированная таблица страниц | |||||
| страничный демон | |||||
| DNS-сервер bind | |||||
| регистр cr3 (i386) |
Почему таблицу страниц относят сразу к двум уровням?
Что относится к системам программирования?
Войдите, чтобы отмечать пройденные уроки.