7.-Конспект-лекций.-ОП.01-ОСиСреды.-09.02.07_compressed. Конспекты лекций по дисциплине оп. 01 Операционные системы и среды
Скачать 1 Mb.
|
Часть файла, размещаемая в записи MFT, называется резидентной частью, а остальные части - нерезидентными. Адресная информация об отрезках, содержащих нерезидентные части файла, размещается в атрибутах резидентной части. MFT делится на несколько отрезков. В первый отрезок помещаются 16 стандартных, создаваемых при форматировании записей о системных файлах NTFS и системные файлы NTFS. Некоторые системные файлы являются полностью резидентными, а некоторые имеют и нерезидентные части, которые располагаются после первого отрезка MFT. Нулевая запись MFT содержит описание самой MFT, в том числе и такой ее важный атрибут, как адреса всех ее отрезков. Во второй отрезок помещаются нерезидентные части системных файлов и резидентные части обычных файлов и каталогов. В третьем отрезке находятся дополнительные записи MFT, используемые при размещении очень больших и сверхбольших файлов. Из приведенного описания видно, что сама таблица MFT рассматривается как файл, к которому применим метод размещения в томе в виде набора произвольно расположенных нескольких отрезков. Каждый файл и каталог в томе NTFS состоит из набора двенадцати системных атрибутов, определяемых файловой системой NTFS и неопределенного количества атрибутов, которые для каждого файла или каталога могут быть определены пользователем. Важно отметить, что имя файла и его данные также рассматриваются как атрибуты файла. То есть в трактовке NTFS, кроме атрибутов у файла нет никаких других компонентов. Существуют два способа хранения атрибутов файла - резидентное хранение в записях таблицы MFT и нерезидентное хранение вне ее, во внешних отрезках. Таким образом, резидентная часть файла состоит из резидентных атрибутов, а нерезидентная - из нерезидентных атрибутов. Сортировка может осуществляться только по резидентным атрибутам. Основными системными атрибутами всех файлов являются: − имя файла (FN — file name) - этот атрибут содержит длинное имя файла в формате Unicode, а также номер входа в таблице MFT для родительского каталога; если этот файл содержится в нескольких каталогах, то у него будет несколько атрибутов типа File Name; этот атрибут файла всегда резидентный; − данные (Data) - содержит обычные данные файла; − дескриптор безопасности (SD — security descriptor) - этот атрибут содержит информацию о защите файла: список прав доступа ACL и поле аудита, которое определяет, какого рода операции над этим файлом нужно регистрировать; +- список атрибутов (AL - attribute list) - список атрибутов, из которых состоит файл; содержит ссылки на номер записи MFT, где расположен каждый атрибут; этот редко используемый атрибут нужен только в том случае, если атрибуты файла не умещаются в основной записи и занимают дополнительные записи MFT; − стандартная информация (SI — standard information) - этот атрибут хранит всю остальную стандартную информацию о файле, которую трудно связать с каким-либо другим атрибутом файла, например, время создания файла, время обновления и другие. Файлы NTFS в зависимости от размера делятся на небольшие, большие, очень боль-шие и сверхбольшие. Каждый тип файла имеет свои особенности размещения в томе NTFS. Контрольные вопросы 1. Что такое логическая организация ФС; 2. Что такое физическая организация ФС; 3. Как работают таблицы размещения файлов; 5. Назовиет отличия нежурналируемых и журналируемых ФС. Лекция 18 Программное обеспечение таймеров План 1. Служба времени в ПК и ОС; 2. Программное обеспечение таймеров; 3. Функции управления таймерами Функциональность, связанная с использованием и контролем времени, скорее всего, будет доступна в ОС реального времени. Возможности будут отличаться в зависимости от ОСРВ, но мы рассмотрим общедоступные. В любом случае таймер реального времени — это обязательный элемент для функционирования любого из этих сервисов. Системное время Простое системное время, или «тактовый таймер», доступно почти всегда. Это просто счетчик (как правило, 32 бита), который увеличивается с помощью процедуры обслуживания прерываний в режиме реального времени и может устанавливаться и считываться через вызовы API. Тайм-ауты вызова служб Обычно ОСРВ разрешает блокирующие вызовы API, то есть вызывающая задача приостанавливается (блокируется), пока запрашиваемый сервис не будет предоставлен. Обычно эта блокировка является неопределенной, но некоторые ОСРВ предлагают тайм- аут, за время выполнения которого вызов возвращается, когда истекает время ожидания, если сервис продолжает оставаться недоступным. Таймауты вызовов API поддерживаются не всеми ОСРВ. Состояние сна задачи Обычно задачи имеют возможность приостанавливать себя на фиксированный период времени. Это обсуждалось ранее в разделе «Управление задачами». Программные таймеры Чтобы программные задачи выполняли функции отсчета времени, большинство ОСРВ предлагают объекты таймера. Это независимые таймеры, обновляемые обработчиком прерываний таймера реального времени, которые могут контролироваться вызовами API. Такие вызовы настраивают, контролируют и отслеживают работу таймера. Как правило, они могут быть установлены для однократного срабатывания или автоматического перезапуска. Также обычно поддерживается подпрограмма истечения срока действия, функция, которая выполняется каждый раз, когда таймер завершает цикл. В следующей статье будет больше информации о программных таймерах и описание их реализации. Использование таймеров Программные таймеры могут быть настроены на однократное срабатывание, то есть они запускаются, а затем, после указанного периода времени, просто завершают цикл. Либо таймер может быть настроен на перезапуск: после завершения счета таймер автоматически перезапускается. Время работы после перезапуска может отличаться от первичного времени работы. Кроме того, таймер можно опционально настроить на выполнение специальной функции завершения, которая выполняется когда (или каждый раз когда) таймер завершает рабочий цикл. Настройка таймеров Количество таймеров Как и для большинства аспектов Nucleus SE, настройка таймеров управляется директивами #define в nuse_config.h. Основным параметром является NUSE_TIMER_NUMBER, который определяет сконфигурированные в приложении таймеров. По умолчанию это значение равно нулю (то есть в приложении таймеры не используются), и может принимать значения вплоть до 16. Некорректное значение приведет к ошибке компиляции, которая будет сгенерирована проверкой в файле nuse_config_check.h (этот файл входит в nuse_config.c и компилируется вместе с ним), что приведет к срабатыванию директивы #error. Выбор ненулевого значения является главным активатором таймеров. Этот параметр используется при определении структур данных, и от его значения зависит их размер. Кроме того, ненулевое значение активирует настройки API. Активация функции завершения В Nucleus SE я пытался найти возможность сделать функционал опциональным, там, где это позволит сэкономить память. Хорошим примером является поддержка функций завершения таймеров. Помимо того, что эта возможность опциональна для каждого таймера, механизм может быть активирован (или нет) для всего приложения при помощи параметра NUSE_TIMER_EXPIRATION_ROUTINE_SUPPORT в nuse_config.h. Присвоение этому параметру значения FALSE блокирует определение двух структур данных в ПЗУ, которые будут подробно описаны в этой статье. Активация API Каждая функция API (служебный вызов) в Nucleus SE имеет активирующую директиву #define в nuse_config.h. Для таймеров к таким символам относятся: NUSE_TIMER_CONTROL NUSE_TIMER_GET_REMAINING NUSE_TIMER_RESET NUSE_TIMER_INFORMATION NUSE_TIMER_COUNT По умолчанию, всем активаторам присвоено значение FALSE, таким образом, все служебные вызовы отключены, блокируя включение реализующего их кода. Для настройки таймеров в приложении нужно выбрать необходимые служебные вызовы API и присвоить им значение TRUE Службы таймеров Фундаментальные операции, которые можно выполнять с таймером, это управление (запуск и остановка) и считывание текущего значения. Nucleus RTOS и Nucleus SE предоставляют два базовых служебных вызова API для этих операций. Управление таймером Служебный вызов Nucleus RTOS API для управления таймером позволяет активировать и деактивировать таймер (запускать и останавливать). Nucleus SE предоставляет аналогичный функционал. Вызов для управления таймером в Nucleus RTOS Прототип служебного вызова: STATUS NU_Control_Timer (NU_TIMER *timer, OPTION enable); Считывание таймера Для получения оставшегося времени таймера служебный вызов Nucleus RTOS API возвращает количество тактов до истечения срока его действия. Nucleus SE предоставляет аналогичный функционал. Вызов для получения оставшегося времени в Nucleus RTOS Прототип служебного вызова: STATUS NU_Get_Remaining_Time (NU_TIMER *timer, UNSIGNED *remaining_time); Параметры: timer – указатель на предоставленный пользователем блок управления таймером; remaining_time – указатель на хранилище значения оставшегося времени, которое является переменной типа UNSIGNED. Возвращаемое значение NU_SUCCESS – вызов был успешно завершен; NU_INVALID_TIMER – некорректный указатель на таймер. Вызов для получения оставшегося времени в Nucleus SE Этот вызов API поддерживает полный функционал Nucleus RTOS API. Сброс таймера Этот вызов API сбрасывает таймер в исходное, неиспользуемое состояние. Таймер может быть активирован или деактивирован после завершения этого вызова. Его можно использовать только после того, как таймер был отключен (при помощи NUSE_Timer_Control()). В следующий раз когда таймер будет активирован, он будет инициализирован с параметром NUSE_Timer_Initial_Time[]. Nucleus RTOS позволяет предоставить новое исходное состояние и провести перепланирование времени, а также указать функцию завершения при сбросе таймера. В Nucleus SE эти значения устанавливаются во время настройки и не могут быть изменены, поскольку они хранятся в ПЗУ. Контрольные вопросы 1. Как организована служба времени в ПК и ОС? 2. Что такое программное обеспечение таймеров? 3. Опишите основные функции управления таймерами. Лекция 19 Основные понятия безопасности План 1. Типы угроз в ОС; 2. Критерии безопасной ОС 3 Основные принципы обеспечения безопасности. Безопасная система должна обладать свойствами конфиденциальности, доступности и целостности. Любое потенциальное действие, которое направлено на нарушение конфиденциальности, целостности и доступности информации, называется угрозой. Реализованная угроза называется атакой. Конфиденциальная (confidentiality) система обеспечивает уверенность в том, что секретные данные будут доступны только тем пользователям, которым этот доступ разрешен (такие пользователи называются авторизованными). Под доступностью (availability) понимают гарантию того, что авторизованным пользователям всегда будет доступна информация, которая им необходима. И наконец, целостность (integrity) системы подразумевает, что неавторизованные пользователи не могут каким-либо образом модифицировать данные. Умышленные угрозы подразделяются на активные и пассивные. Пассивная угроза – несанкционированный доступ к информации без изменения состояния системы, активная – несанкционированное изменение системы. Пассивные атаки труднее выявить, так как они не влекут за собой никаких изменений данных. Защита против пассивных атак базируется на средствах их предотвращения. Типы угроз: 1. Проникновение в систему под видом легального пользователя. 2. Нежелательные действия легальных пользователей. 3. Функционирование вирусов и прочих червей. Базовые принципы проектирования системы безопасности ОС (по Зальтцер (Saltzer) и Шредер (Schroeder)): · Проектирование системы должно быть открытым. Нарушитель и так все знает (криптографические алгоритмы открыты). Не должно быть доступа по умолчанию. Ошибки с отклонением легитимного доступа будут обнаружены скорее, чем ошибки там, где разрешен неавторизованный доступ. · Нужно тщательно проверять текущее авторство. Так, многие системы проверяют привилегии доступа при открытии файла и не делают этого после. В результате пользователь может открыть файл и держать его открытым в течение недели и иметь к нему доступ, хотя владелец уже сменил защиту. · Давать каждому процессу минимум возможных привилегий. · Защитные механизмы должны быть просты, постоянны и встроены в нижний слой системы, это не аддитивные добавки (известно много неудачных попыток "улучшения" защиты слабо приспособленной для этого ОС MS-DOS). · Важна физиологическая приемлемость. Если пользователь видит, что защита требует слишком больших усилий, он от нее откажется. Ущерб от атаки и затраты на ее предотвращение должны быть сбалансированы. Внешний урованеь защиты ОС: · возможность для администратора настраивать доступ к тем или иным ресурсам пользователей и групп пользователей; · настройка параметров учетных записей, парметров авторизации; · настройка пользователями прав доступа к соответствующим данным. Глубинный уровень безопасности: · шифрование в системе данных, подлежащих защите; · разделение физической и виртуальной памяти для предотвращения доступа к данным не имеющими на это права пользователями и приложениями. Функции безопасности Windows NT: · Информация о доменных правилах безопасности и учетная информация хранятся в каталоге Active Directory. · В Active Directory поддерживается иерархичное пространство имен пользователей, групп и учетных записей машин (учетные записи могут быть сгруппированы по организационным единицам). · Административные права на создание и управление группами учетных записей пользователей могут быть делегированы на уровень организационных единиц (возможно установление дифференцированных прав доступа к отдельным свойствам пользовательских объектов). Контрольные вопросы 1. Назовите и охарактеризуйте основные типы угроз в ОС; 2. Опишите критерии безопасной ОС 3 Опишите основные принципы обеспечения безопасности в ОС. |