- •/Классификация операционных систем
- •Сравнительные характеристики ос.
- •/Процессы и примитивы.
- •Примитивы.
- •Процессы.
- •/Предполагаемая среда выполнения процессов.
- •/ Диаграмма переходов.
- •/Создание процессов.
- •/Уровневое представление ос unix
- •/Функции ядра операционной системы.
- •/Понятие прерываний в ос
- •/Структура ос
- •/Обзор подсистем ядра Unix
- •Описание подсистем ядра unix
- •Планирование но наивысшему приоритету (hpf)
- •Метод круговорота (карусель)
- •Очереди с обратной связно (fв)
- •Планирование в unix.
- •Типы многозадачности.
- •Состав планировщика
- •Зависимости подсистем ядра
- •Контроллер памяти (Метоrу Manager)
- •Механизм свопинга (Swapping)
- •Механизм пейджинга (Paging)
- •Внешний интерфейс
- •Verify_area()– проверка прав на доступ к выделенному региону памяти; get_free_page() / free_page() – выделение и освобождение физической памяти.
- •Реализация программ выделения памяти
- •Сборка мусора
- •Типы сборщиков памяти
- •Взаимодействие внутренних модулей мм
- •Архитектура vfs
- •Интерфейсы файловой системы
- •Ioctlo: установить атрибуты файла;
- •Защита файлов
- •Списки прав доступа
- •Механизмы обмена данными в vfs
- •Буферный кэш.
- •Механизмы обмена данными.
- •Логическая файловая система
- •Физическая организация файловой системы
- •Структура файла обычного типа
- •Примечания к физической организации vfs
- •Сетевая подсистема (Net)
- •Состав сетевой подсистемы
- •Представление и структуры данных
- •Внутренняя структура подсистемы
- •Зависимости сетевой подсистемы
- •Подсистема межпроцессного взаимодействия
Логическая файловая система
Хотя доступ к физическим устройствам может осуществляться через их драйверы, более общими предпочтительным механизмом является использование логической файловой системы (LFS). LFS может быть смонтирована как обычная файловая система. Это значит, что у всех физических устройств, входящих в LFS, будет одна структура информации и, следовательно, одинаковый доступ к файлам и каталогам. так, например, в настоящее время ОС Linux поддерживает одновременно до пятнадцати файловых систем.
Когда файловая система устройства смонтирована, вся структура устройства становится доступна как подкаталог, начиная от корневого каталога устройства, который становится монтируемым подкаталогом LFS.
Пользователю VFS нет необходимости знать, как реализуется доступ к устройству, так как для него это становится просто подкаталог в LFS. этот уровень абстракции позволяет обеспечить высокую гибкость как в работе с конкретными физическими устройствами, так и с логической файловой системой. А это в свою очередь способствует успешности использования системы Unix.
Системная функция mount (монтировать) связывает файловую систему из указанного раздела на диске с существующей логической файловой системой, а функция umount (демонтировать) исключает файловую систему устройства из LFS. Функция mount, таким образом, дает пользователям возможность обращаться к данным, расположенным на некотором диске, как к разделу логической файловой системы, а не как к отдельному устройству.
Синтаксис вызова функции mount: mount(special pathname, directory pathname, options);
где special pathname -имя специaльного файла устройства, соответствующего дисковому разделу с монтируемой файловой системой. Directory pathname - каталог в существующей иерархии, где будет монтироваться файловая система (другими словами, точка или место монтирования). А options указывает, следует ли монтировать файловую систему "только для чтения" (при этом не будут выполняться такие функции, как write() и create(), которые производят запись в файловую систему). Например, если процесс вызывает функцию mount следующим образом: mount ("/dev/dskl ", "/usr",0); ядро присоединяет файловую систему, находящуюся в дисковом разделе с именем "/dev/dskl", к каталоту "/usr" в существующем дереве файловых систем.
Физическая организация файловой системы
Физическая организация файловой системы на диске показана на рис. 3.10 и включает:
Загрузочный блок - самый первый блок диска (блок 0) содержит информацию, необходимую для первоначальной загрузки ОС. Блок загрузки располагается в начале пространства отведенного под файловую систему, обычно в первом секторе, и содержит программу начальной загрузки, которая считы вается в машину при загрузке или инициализации операционной системы. Хотя для запуска системы требуется только один блок загрузки, каждая файловая система имеет свой (возможно даже пустой) блок загрузки.
Суперблок (super_bоск): Фактически первый блок локальной файловой системы каждого конкретного устройства, который содержит информацию обо всей файловой системе устройства и о точке монтирования файловой
Суперблок состоит из следующих полей:
-
размер файловой системы,
-
количество свободных блоков в файловой системе,
-
список свободных блоков, имеющихся в файловой системе,
-
индекс следующего свободного блока в списке свободных блоков,
-
размер списка индексов, количество свободных индексов в файловой системе,
-
список свободных индексов в файловой системе,
-
следующий свободный индекс в списке свободных индексов,
-
заблокированные поля для списка свободных блоков и свободных индексов,
-
флаг, показывающий, что в суперблок были внесены изменения.
I узлы (i-node): I-узлы представляют собой последовательность блоков, расположенную за суперблоком, каждый из которых содержит ссылки на просто блоки. В ОС i-узел является также структурой данных в памяти Вычислительной системы, которая необходима ядру для выполнения операций обмена данными с устройствами. Один i-узел может быть использован несколькими процессами. В i-узле хранится вся информация, которая необходима ядру для работы с файлом. Дисковые индексные узлы включают в себя следующие поля:
Идентификатор владельца файла. Права собственности разделены между индивидуальным владельцем и "групповым" и тем самым помогают определить круг пользователей, имеющих права доступа к файлу. Суперпользователь имеет право доступа ко всем файлам в системе.
Тип файла. Файл может быть файлом обычного типа, каталогом, специальным файлом, соответствующим устройствам ввода-вывода символами или блоками, а также абстрактным файлом канала (организующим обслуживание запросов в порядке поступления, "первым пришел - первым вы -шел"). Вообще говоря, в Unix существуют восемь типов файлов:
-
Обычные файлы;
-
Каталоги;
-
Специальные файлы бит-ориентированных устройств;
-
Специальные файлы байт-ориентированных устройств;
-
Специальные файлы для работы в сети - сокеты;
-
Жесткие ссылки;
-
Гибкие ссылки (псевдонимы);
-
Каналы (именованные каналы ).
Права доступа к файлу. Система разграничивает права доступа к файлу для трех классов пользователей: индивидуального владельца файла, группового владельца и прочих пользователей; каждому классу выделены определенные права на чтение, запись и исполнение файла, которые устанавливаются индивидуально. Поскольку каталоги как файлы не могут быть исполнены, разрешение на исполнение в данном случае интерпретируется как право производить поиск в каталоге по имени файла.
Календарные сведения, характеризующие работу с файлом: время внесения последних изменений в файл, время последнего обращения к файлу, время внесения последних изменений в индекс.
Число указателей на файл, означающее количество имен, используемых при поиске файла в иерархии каталогов.
Таблица адресов на диске, в которых располагается информация файла. Хотя пользователи трактуют информацию в файле как логический поток байтов, ядро может расположить эти данные в несоприкасающихся дисковых блоках. Дисковые блоки, содержащие информацию файла, указываются в индексе.
Размер файла. Данные в файле адресуются с помощью смещения в байтах относительно начала файла, начиная со смещения, равного 0, поэтому размер файла в байтах на 1 больше максимального смещения. Например, если пользователь создает файл и записывает только 1 байт информации по адресу со смещением 1000 от начала файла, размер файла составит 1001 байт. В индексе отсутствует составное имя файла, необходимое для осуществления доступа к файлу.
Информационные блоки - физические блоки занимают оставшееся место на физическом устройстве. В этих блоках хранится находящаяся в файлах информация. Отдельно взятый информационный блок может принадлежать одному и только одному файлу в файловой системе.
