
- •Вопрос 1. Логическая организация файлов. Атрибуты и данные файла. Типы файлов. Операции с файлами.
- •Файл представляет собой последовательность логических записей разной длины.
- •Rename (переименование).
- •Вопрос 2.Модели хранения информации в файловых системах. Надежность и непротиворечивость файловой системы. Решение проблемы непротиворечивости файловых систем.
- •1.Традиционные фс.
- •3.Транзакционная файловая система.
- •Вопрос 3. Методы физической реализации хранения атрибутов и данных файлов.
- •1. Непрерывные файлы
- •2. Связные списки.
- •3. Связный список при помощи таблицы в памяти
- •Вопрос 4. Концепция файловой системы fat. Структура логического диска с файловой системой fat.
- •Вопрос 5. Основные характеристики файловой системы ntfs.
- •Вопрос 6. Структура раздела с файловой системой ntfs.
- •Вопрос 7. Главная файловая таблица mft файловой системы ntfs. Структура таблицы mft.
- •Вопрос 8. Атрибуты файлов в файловой системе ntfs. Структура записи mft.
- •Вопрос 9. Хранение данных в файловой системе ntfs. Потоки данных.
- •Вопрос 10. Структура файловой системы unix. Типы файлов ос unix.
- •Вопрос 11. Жесткая и символическая связь имен с данными файла в файловой системе unix.
- •Вопрос 12. Структура индексного узла файловой системы unix. Адресация блоков данных.
- •Вопрос 13. Архитектура Windows 2000/xp. Компоненты исполнительной системы.
- •Вопрос 14. Объектная модель Windows 2000/xp и менеджер объектов.
- •Вопрос 15. Управление оперативной и виртуальной памятью в Microsoft Windows 2000/xp.
- •Вопрос 16. Управление процессами и потоками в Windows 2000/xp.
- •Вопрос 17. Состояния потока в Windows 2000/xp.
- •Вопрос 18. Общая архитектура системы unix. Модули ядра.
- •Вопрос 19.Системные вызовы и выполнение кода ядра ос unix.
- •Вопрос 20.Управлене процессами в ос unix.
- •Вопрос 21. Состояния процесса в ос Unix.
- •Вопрос 22.Распределение памяти процессов в unix.
Вопрос 21. Состояния процесса в ос Unix.
Возможный набор состояний процесса содержится в следующем перечне:
1. Процесс выполняется в режиме задачи.
2. Процесс выполняется в режиме ядра.
3. Процесс не выполняется, но готов к запуску под управлением ядра.
4. Процесс приостановлен и находится в оперативной памяти.
5. Процесс готов к запуску, но программа подкачки (нулевой процесс) должна еще загрузить процесс в оперативную память, прежде чем он будет запущен под управлением ядра.
6. Процесс приостановлен и программа подкачки выгрузила его во внешнюю память, чтобы в оперативной памяти освободить место для других процессов.
7. Процесс возвращен из привилегированного режима (режима ядра) в непривилегированный (режим задачи), ядро резервирует его и переключает контекст на другой процесс.
8. Процесс вновь создан и находится в переходном состоянии; процесс существует, но не готов к выполнению, хотя и не приостановлен. Это состояние является начальным состоянием всех процессов, кроме нулевого.
9. Процесс вызывает системную функцию exit и прекращает существование. Однако, после него осталась запись, содержащая код выхода, и некоторая хронометрическая статистика, собираемая родительским процессом. Это состояние является последним состоянием процесса.
Вопрос 22.Распределение памяти процессов в unix.
На рис. 14.9 показана схема адресных пространств двух процессов.
У каждого из процессов имеется собственное логическое адресное пространство.
Обычно адресное пространство процесса разделено на две части.
В одной из них резидентно располагается ядро UNIX, которое для каждого процесса находится по одним и тем же логическим адресам. Диспетчер памяти блокирует доступ по этим адресам, когда процесс выполняется в пользовательском режиме.
Другая часть адресного пространства предназначена собственно для процесса. При переключении контекста вся она может откачиваться на диск с целью освобождения памяти для других процессов.
Доступная пользовательскому коду часть адресного пространства делится на три логических сегмента:
текст (программный код),
данные
и стек.
Сегмент текста защищен от записи и может использоваться совместно с другими процессами для выполнения общей программы.
Сегменты стека и данных приватны для процесса.
Эти сегменты называются логическими, поскольку каждый из них занимает непрерывную область логического адресного пространства процесса, однако на практике при использовании страничного управления памятью они нередко располагаются в физической памяти отдельными фрагментами и даже могут быть выгружены на диск.
При компиляции исходного кода программы формируется виртуальное адресное пространство процесса. При этом для каждого из сегментов предусматривается свой диапазон виртуальных адресов. В 32-х разрядных операционных системах, где максимально допустимый размер адресуемой памяти составляет 4 ГБ, виртуальное адресное пространство делится на т.н. квадранты, имеющие размер 1 ГБ каждый. Первый квадрант содержит сегмент кода, второй – сегмент данных, третий и четвертый – разделяемую память, разделяемые библиотеки и файлы, отображаемые на память. Таким образом, начальные виртуальные адреса для каждого из сегментов фиксированы.
В UNIX адресное пространство процесса состоит из регионов. Регион это логическое понятие, обозначающее непрерывный диапазон виртуальных адресов процесса, который может рассматриваться как самостоятельный объект с точки зрения защиты или совместного использования. Обычно сегменты загружаются в отдельные регионы. Так любой процесс состоит из регионов кода, данных и стека, кроме того дополнительно могут быть созданы специальные регионы разделяемой памяти, памяти отображаемой на файл и т.д. Для каждого региона в отдельности можно указать права доступа по чтению, чтению-записи и чтению-исполнению.
Регион может находиться в исключительном пользовании одного процесса или совместно использоваться несколькими. Разделение региона данных происходит только по прямому указанию пользователя и при явном взаимном согласии обоих процессов Регион - понятие логическое, они должны каким-то образом отображаться на физическое адресное пространство. Если бы регионы отображались в непрерывные диапазоны физических адресов памяти, возникала бы проблема фрагментации, поэтому регион отображается на некоторую совокупность страниц памяти. Это означает, что для каждого региона существует свое оглавление - список страниц, образующих его адресное пространство.
Каждый процесс хранит в своем контексте таблицу регионов процесса с указанием виртуальных адресов начала региона, его длины и атрибутов доступа к региону: право чтения, записи и чтения-исполнения. Кроме того для каждого региона хранится ссылка на таблицу размещения региона в памяти
Таким образом, в UNIX применена многоуровневая система отображения адресного пространства процесса сначала на регион, затем на страницы фиксированного размера и лишь последние отображены на физическую память компьютера.