Please enable JavaScript.
Coggle requires JavaScript to display documents.
Архитектура информационных систем - Coggle Diagram
Архитектура информационных систем
Файловые системы
Типы локальных файловых систем
FAT
В начале тома помещается таблица размещения файлов, от которой и происходит название системы
Состоят из кластеров одного и того же размера, количество которых не превышает 65,536 и surplus sectors, которые являются, грубо говоря, остаток от деления на кластеры заданного размера и не могут использоваться для хранения информации.
Не имеют чёткой организации, файлам присваиваются первые доступные адреса кластеров на томе. Каждый кластер содержит ссылку на следующий или указатель на то, что он является конечным.
NTFS
Делит всё пространство на кластеры любого размера
Первые 12% диска отводит под MFT, в которой хранится информация о содержимом тома.
Запись в эту область невозможна, что делается для того, чтобы таблица не фрагментировалась при росте.
Остальные 88% отводятся для обычного хранения файлов
Состоит из 16 метафайлов - служебных областей, выполняющих различные функции NTFS
1) $MFT - основная таблица MFT
2) $MFTmirr - копия 16 первых записей MFT
3) $Boot - загрузчик, размещается только на первичном томе
4) $. - корневой каталог
1 more item...
Имеет возможность ограничивать доступ к данным для различных пользователей и назначать ограничения для пользователей.
FAT32
Отличается от FAT увеличенным максимальным количество кластеров до 268,435,445
Распределённые файловые системы
Типы распределённых файловых систем
Кластерная система
Содержит несколько серверов в общей сети
Распределённая система
Содержит несколько серверов, объединённых по глобальной сети WAN
Параллельные файловые системы
Предоставляют параллельный доступ к серверам для хранения каждого клиента
Используются в высокопроизводительных компьютерных системах
Полностью параллельные файловые системы
Подгруппа параллельных файловых систем
Параллельно распределяют не только данные, но и метаданные
Сетевая система
Содержит один сервер с обслуживающимися им компьютерами в локальной сети
Файловая система, распределённая между несколькими серверами
Динамические библиотеки (DLL)
Динамические библиотеки, позволяющие многократное использование различными приложениями, что позволяет повысить эффективность повторным использованием кода
Ветвь зависимостей
При открытие рекурсивно проверяет следующее:
Наличие отсутствующих модулей DLL
Наличие недопустимых файлов или DLL
Соответствие функций импорта и экспорта
Наличие циклической зависимости
Наличие недопустимых модулей, находящихся в другой системе
Не имеет ни стека, ни очереди сообщений
Функции, помещённые в DLL, выполняются в контексте вызвавшего приложения, пользуясь его стеком.
При использовании сторонних библиотек необходимо обратить внимание на согласование вызова функции и её прототипа
Параметры заносятся в стек слева направо
Вызывающая программа отвечает за их удаление из стека при выходе из функции и расширении её имени
Расширение имён позволяет редактору связей различать перегруженные функции
Возможные действия с DLL: подключение/освобождение, создание/завершение потока, созданного подключившим DLL процессом и т.д.
DLL библиотеки являются файлами, находящимися в файловых системах
Процессы и потоки
Процесс
Экземпляр выполняемого приложения, под который выделяется память при запуске программы
Процесс является совокупностью набора команд, ассоциированных с ним ресурсов и информацией о текущем моменте его исполнения, находящуюся под управлением операционной системы.
В общем случае процессы обособлены и не имеют прямого доступа к командам и данным друг друга.
Такая обособленность нужна для защиты одного процесса от другого в следствии их конкуренции за ресурсы вычислительной системы
У каждого процесса есть свой уникальный идентификатор - целое число, назначаемое операционной системой при создании процесса.
Изменением состояния процессов занимается ОС, совершая над ним различные операции, такие как: создание/завершение процесса, запуск/приостановка и блокирование/разблокирование
Передача информации от одного процесса другому
Разделяемая память
Каналы - псевдофайл, в который один процесс пишет, а второй читает
Сокеты - поддерживаемый ядром механизм, скрывающий особенности среды и позволяющий единообразно взаимодействовать процессам как на одном компьютере, так и в сети
Вызов удалённой процедуры А с целью получить обратно данные из процесса В
Диспетчеризация процессора
Распределение времени процессора вместо процессами в системе. Цель диспетчеризации - максимально эффективная загрузка процессора, достигаемая с помощью мультипрограммирования
Исполнение любого процесса можно рассматривать как чередование периодов ожидания ввода-вывода и использования процессора
Типы диспетчеризации
С фиксированным приоритетом
Облуживание всех процессов из основной очереди, затем обслуживание фоновой.
Выделение отрезка времени
Каждая очередь получает некоторой отрезок времени ЦП, который она может распределять между процессами
Поток
Объект внутри процесса, отвечающий за выполнение кода и получающий для этого процессорное время
Потоки появились как средство уменьшения затрат ресурсов на изоляцию процессов посредству работы в одном адресном пространстве процесса.
Свойства потоков
Не могут существовать отдельно от процесса и выполняют код только в его адресном пространстве
Не может выполнять код чужого процесса
Типы потоков
Потоки уровня пользователя
Управляются пользователем
Быстро создаются и легко управляются
Может работать в любой операционной системе
Переключение не требует привилегий режима ядра
Потоки уровня ядра
Управляются операционной системой
Ядро может одновременно планировать несколько потоков из одного процесса
Если один поток в процессе заблокирован, ядро может запланировать другой поток того же процесса
Сами подпрограммы ядра могут быть многопоточными
Файловые дескрипторы
Неотрицательное число, определяющие поток ввод-вывода для объекта
При создании файла или его открытии ему присваивается свободный номер дескриптора
Режим, в котором открыт объект, индексируется в таблицу индексных дескрипторов, каждый из которых хранит атрибуты и расположение дисковых блоков переданного объекта
При завершении работы с файлом его дескриптор освобождается и снова доступен для выделения под новый файл.
Возможности использования файловых дескрипторов
Работа с файлом даже после перемещения/изменения прав/удаления - при известном дескрипторе с файлом можно продолжать работать
С помощью файлового дескриптора можно узнать объём объектов, что помогает понять, какое приложение имеет смысл удалить