Inode – эта команда устанвливает право на чтение и запись всех пользователей. Если буква d – для данной группы, и – для данного пользователя.
Структура каталога в целях совместимости разности версий – фиксирована. В корневом каталоге после инсталляции присутствуют bin-каталог для исполняемых файлов общего назначения. В нем размещаются оболочки командной строки, общие команды управления файлами и их архивация.
Boot – содержит файл образа ядра из которого загружается система.
/etc – каталог для конфигурационных файлов общего пользования
/home – доменне каталоги пользователей со всеми их програмамми, личными конфигурационными файлами
/lib – каталог для общесистемных библиотек
/mnt – каталог для мониторинга сменных накопителей или временно подключенных файловых систем.
/proc – виртуальный файл для чтения информации
/sbin двоичные файлы для системного администрирования
/tmp – временные файлы(автоматически очищаются через период времени или при перезагрузке)
/usr – каталог программного предназанчения для пользователя, со всеми компонентами
/log – каталог для изменяющихся файлов – системных, почтовых.
/opt – для опциональных компонентов.
Структура дерева каталога может изменятся пользователем, а также за счет подключения новых файлов системных различных пользователей. При монтаже нужно указать имя, точку.
Лекция 4
Архитектура компьютерной системы Windows NT
Использована концепция микроядра. Согласно концепции ОС розделена на несколько подсистем, каждая из которых выполняетотдельный наборсервисных функций. Каждый из наборов реализован в пользовательском режиме, при этом выполняется цикл и проверки запросов от клиента на одну из сервисных функций. Каждый из наборов реализован в пользовательском режиме, при этом выполняется цикл и проверки запросов от клиента на одну из сервисных функций. В качестве компонентов может быть другой компонент ОС или другая программа (прикладная). Клиент запрашивает сервис, посылая определенное сообщение на сервер. Ядро ОС, работая в привелегированном режиме доставляет сообщение клиента необходимому сервису, сервис выполняет необходимую операцию, а ядро возвращает результаты операции клиенту с помощью другого сообщения. Структурно Windows NT состоит из двух крупных частей, которые работают в режиме пользователя, а второй в режиме ядра. Та часть, которая работает в режиме ядра и содержит компоненты управления виртуальной памятью объектами вводом-выводом файловой системы взаимодействием процессора, частично системой безопасности – называется наполнительной частью NT-executive.
Другая часть ОС, которая работает в режиме пользователя состоит из сервера – защищенные подсистемы. Каждая из сервисоввыполнен в отдельном процессе, память его отделена от других процессов, систем управления виртуальными функциями и др. Эти подсистемы взаимодействуют путем отправки сообщений, проходящих через исполнительную часть. Исполнительная часть работает в пространстве ядра и никогда не сбрасывается на жесткий диск. Ядро выполняет планирование потоков защищенных подсистем, точно так же как поток обычных прикладных процессов
Системные службы
NT Executive
Менеджер клиентов
Менеджер процессов
Менеджер безопасности
Менеджер виртуальной памяти
Менеджер КЭШа
Менеджер plug and play
Менеджер энергопотребления
Менеджер конфигурации
Менеджер локального вызова процедур
Менеджер ввода-вывода
Менеджер Graphic device interface
Файловая система
Ядро Драйвер
Уровень аппаратной абстракции
Аппаратное средство
Менеджер объектов создает и удаляет исполнительные части абстрактными типами данных, которые используются для представоения ресурсов компьютерной системы.
Функции
Выделяет память для объектов
Присоединяет объекту дескриптор безопасности (определяет право доступа и использование объекта)
Создает и управляет структурой каталога объекта в котором хранятся имена объектов
Создает дескриптор объекта и возвращает его к процессу, который вызывает данный объект.
Менеджер процессов и потоков создает и приостанавливает, возобновляет и завершает потоки и процессы, а также хранит информацию хранимых для системы. Менеджер безопасности контролирует правило защиты ресурсов компьютера. Менеджер виртуальной памяти обеспечивает процессом следующие функции:
Управление виртуальным адресным пространством
Разделение памяти между процессами
Защита виртуальной памяти одного процессора от других процессов
Механизмы защиты памяти:
Каждый механизм имеет собственное адресное пространство. Доступ к другим процессам запрещен на аппаратном уровне.
Наличие режимов ядра и пользователя. Потоки имеют доступ к системным данным - в режиме ядра. В режиме пользователя это запрещено.
Страничный механизм защиты – для каждой виртуальной страницы определяется набор признаков, в которых устанавливают разрешенные типы доступа в пользовательском режиме и в режиме ядра.
Защита памяти с использованием объектно-ориентированного подхода
Монитор ссылок безопасности проверяет разрешен ли доступ процессов к какому-либо объекту при каждом открытии процесса указателя на строку памяти.
Менеджер кэш-памяти – обеспечивает хранение в памяти недавно использовавшихся блок-дисков. Определяет какие блоки в ближайшее время могут потребоваться, а какие нет. Взаимодействует с менеджером, виртуальной памятью и файловой системой,причем если используется несколько файловых систем – менеджер кэш-памяти должен их поддерживать.
Менеджер plug and play – в случаях обнаружения нового устройства при загрузке системы или при подключении устройства через систему USB данный менеджер получает сообщение нового устройства и устанавливает соответствующие драйвера.
Менеджер энергопотребления – отключает устройства (монитор и диски), если к ним нету обращения некоторое время, отслеживает заряд и работу аккумулятора. Сообщает инфу пользователю.
Менеджер конфигураций – отслеживает состояние реестра, добавляет новее и ищет необходимые ключи.
Менеджер локального вызова процедур – обеспечивает взаимодействие между процессами и подсистемами. Механизм вызова локальных процедур – является оптимизированным вариантом. Каждая подсистема устанавливает канал, через который могут связываться другие процессы .
Менеджер ввода-вывода – включает менеджер ввода-вывода, который предоставляет средства для выполнения операции не зависящей от устройств.
Файловые системы – NT драйвер, который выполняет файл – ориентированные запросы на ввод-вывод и преобразует их в вызовы обычных устройств.
GDI – управляет графическим изображение поступающим на монитор, или принтер. Не зависит от типа мониторов и принтеров. Исполняется на нижних уровнях представленных ядром.
Функции NT ядра:
Планирование процессов
Обработка прерываний и исключающих ситуаций
Синхронизация процессов
Восстановление системы после сбоев
Ядро работает в привелегированом режиме и никогда не удаляется из памяти, обратится к ядру можно только с использованием механизмов прерывания. Расположено ядро на уровне аппаратных абстракций, в которых собрано большая часть машинных процедур и с аппаратными средствами.
Знание архитектуры ОС является основой практических навыков разработки эффективных приложений. В архитектуре процессоров intel386 а тем более в поздних для защиты кода и данных как от случайного, так и преднамеренного изменения предусмотрено 4 уровня привилегий ;
Windows использует 2 уровня
Режим ядра – наиболее привелированный режим; программы, выполняющиеся в этом режиме, имеют доступ ко всему аппартному обеспечению и и памяти компьютера. Режим пользователя – менее привелегирован – меньше привелегий, не обеспечивает прямой доступ к архитектуре. Ограничен выделенным ему адресным пространством от программ. Для вызова системных сервисов используется интерфейс прикладного программирования (API -интерфейс )
Защищенные подсистемы работают в режиме пользователя и сздаются в WinNT при загрузке системы. Среди защищенных подсистем существуют т.н. подсистемы окружения, реализующие интерфейсы окружения (приложений). Наиболее важной подсистемой является подсистема, которая обеспечивает доступ приложений к 32-битной WinAPI. Он обеспечивает взаимодействие с пользователем и обладает вводом-выводом. Поддерживается подсист. Posix.
Типы Windows-приложений:
Исполняемые программы для Виндоус разделяются на 2 основных типа: консольные и графические.
При запуске консольного приложения запускается текстовое окно. Можно использовать ф-ии WriteConsole() и ReadConsole(). При запуске из другого консольного приложения запускается еще одно окно, программе выделяется текущая консоль до завершения работы в консоли.
В графическом приложении для вывода команд и инфы открываются окна.
Для вывода на экран любого окна программа должна сначала описать его внешний вид и все его свойства. Вместе это называется классом окна. Существует окно с определением класса MessageBox. Представляет собой малое окно с некоторым текстовым сообщением и одной или большим количеством кнопок. В DOS основным средством управления программой являются прерывания.
В Windows прерывания используется системой для своих нужд. Для приложения сущ. аналогический механизм (механизм событий). События преобразуются в сообщения и высылаются обработчикам сообщения. Эти сообщения можно программировать из основной программы.
Одной из основ идеологии Виндоус является меню.
Иконки и элементы меню записываются в файл ресурсов:
*.RS – текстовый файл, *.RES –бинарный файл.
Для реализации действий в приложении используются диалоги, создаваемые пользователями (редактор диалогов).
Объекты в WIN 32
В основе NT лежат объекты. За счет использования объектно-ориентированных возможностей и подходов достигаются основные преимущества NT: единообразная форма именования, учета и использования системных ресурсов, система обеспечения безопасности и возможность модификации. В WinNT любой ресурс одновременно может быть использован больше, чем 1 процессом, включая файлы, совместно использующие память, физические устройства. Реализуется в виде объекта и управляется характерным для него набором функций.
При разработке исполнительной части NT использует объекты для представления системных ресурсов, так как они обеспечивают централизацию средства выполнения трех важных задач ОС:
1)Поддержки воспринимаемых человеком имен системных ресурсов;
2)Разделение ресурсов и даннх между программами;
3)Защита ресурсов от несанкционированного доступа.
В виде объектов реализованы только такие данные, которые нужно разделять, именовать, защищать или делать видимыми для пользовательского режима с помощью системных функций.
Основные виды объекта:
файл;
процесс – один из объектов, создаваемых и управляемых менеджером объектов. Объект имеет заголовок, который инициализирует менеджер объектов;
поток –выполняемая единица, которая располагается в адресном пространстве процесса и использует выделяемые ему ресурсы.
нить
Менеджер процессов определяет атрибуты ,хранимые в теле объекта «процесс» и обеспечивает сервис для изменения и восстановления этих атрибутов.
Атрибуты:
идентификатор процесса;
Токен доступа – обеспечение безопасности
Базовый приоритет – основа для использования приоритета потока внутри данного процесса
Процессорная совместимость – список процессоров, на которых может выполнятся процесс
Квоты – предельное значение – максимальное количество страничной и нестраничной системной памяти ,дискового пространства, процессорного времени, которые доступны для использования этим процессом.
Время выполнения – значение времени, за которое выполняются процессы.
Управляющий менеджер объектов имеет такие атрибуты:
Идентификатора потока – уникальное значение, которое идентифицирует поток при его обращении к серверу;
Контекст потока – информация, необходимая ОС для того, чтобы обеспечивать выполнение потока в случае его прерывания. Содержится текущее состояние регистров, стеков и индивидуальной области памяти.
Динамический приоритет – значение приоритета потока в конкретный момент времени
Базовый приоритет – нижнее значение дин. приоритете потока
Процессорная совместимость потока – перечень типов процессоров, на которых данный поток может выполнятся
Время выполнения потока – время выполнения потока в режиме потока и в режиме ядра за время существования потока
Состояние предупреждения – флаг, который показывает,что поток должен выполнять вызов асинхронно процедуры
Счетчик приостановок – текущее количество приостановок выполнения поток.
В последних версиях ОС NT появилось понятие нити (fiber)
Способ переключения между частями потока предпочтителен, если нужно оптимизировать для Windows код, написанный для других ОС.
Каждая нить – объект(поток) в данный момент времени.
Лекция №6
Процесс – единица, претендующая на определенное количество ресурсов в системе. Является носителем данных и выполняет определенные функции. В памяти компьютера одновременно присутствуют системные процессы и процессы пользователя.
Системные процессы управляются различными системными ресурсами, поэтому не могут конкурировать друг с другом.
Процессы пользователя отправляют запросы системным процессам
Системные процессы не могут использовать другие системные процессы.
Пользовательские процессы не могут порождать другие процессы.
Пользовательский процесс может запросить некоторый ресурс, а системному процессу изначально выделяется необходимый ресурс или он сам управляет этим ресурсо.
Существует 4 типа процессов, которые выполняются в режиме пользователя:
Постоянные процессы – автоматически запускаются на выполнение после загрузки системы (управляются сеансом регистрации). Такие процессы не запускаются подсистемой управления службами.
Процессы-службы – особенный вид приложения, выполняющий свою работу для других приложения. Запускается при загрузке ОС.
Пользовательские процессы (приложения) – обычные приложения, выполняются для решения конкретных задач. Могут быть 4 типов – Win32, MSDOS, WIN 3.1, POSIX.
подсистемы среды – позволяют использовать Posix в виндоус и наоборот.Службы не связаны с конкретным пользователем, который регистрируется в системе. Наиболее часто службы реализуют функцию сервера. Подсистема управления службами может использоваться для удаленного администрирования. Для администрирования есть утилита Microsoft Management Console. Позволяет управлять любыми приложениями, в т.ч. и службами (планировщик задач, инсталлятор, большое количество серверных процедур).
Состояния пользовательских процессов:
пассивное – находится в памяти, но не готов к выполнению
готовность – готов к выполнению и ожидает кванта времени процессора
выполнение – выделен квант времени процессора
ожидание – выполнение процесса прервано в связи с ожиданием необходимых ему ресурсов (завершение операции ввода-вывода и т.д.)
Диаграмма состояния процесса:
Из готовности переходят к выполнению с помощью службы планирования и диспетчеризации процесса, они же переводят процесс в состояние готовности после выделения кванта времени.
Если исполняемый процесс запросил ресурс ввода-вывода, то он переводится в состояние ожидания и находится в этом состоянии до завершения запрошенной операции. В это время потоку кванты времени не выделяются.
Если в процессе ввода-вывода обнаружена ошибка, процесс вводится в пассивный режим. Из выполнения процесс может перейти в пассивное состояние при завершении процесса. Из пассивного в состояние готовности происходит переход при активизации приложения (повторном его запуске).