
- •Вопрос 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.
Вопрос 16. Управление процессами и потоками в Windows 2000/xp.
В операционной системе Windows 2000 есть множество концепций для управления центральным процессором и объединения ресурсов.
Основные понятия.
Каждый процесс содержит, по крайней мере, один поток, содержащий, в свою очередь, как минимум одно волокно (облегченный поток).
Для управления определенными ресурсами процессы могут объединяться в задания. Все вместе - задания, процессы, потоки и волокна - образует общий набор инструментов для управления ресурсами и реализации параллельного выполнения, как на однопроцессорных, так и на многопроцессорных машинах.
Краткое описание этих четырех понятий приведено в. табл. 13.2.
Табл. 13.2. Основные понятия, используемые для управления процессами и ресурсами
системы Windows 2000
Процессы.
Процессы представляют собой контейнеры для ресурсов.
У каждого процесса есть 4-гигабайтное адресное пространство, в котором пользователь занимает нижние 2 Гбайт (в версиях Windows 2000 Advanced Server и Datacenter Server этот размер может быть по желанию увеличен до 3 Гбайт), а операционная система занимает остальную его часть.
Таким образом, операционная система присутствует в адресном пространстве каждого процесса, хотя она и защищена от изменений с помощью аппаратного блока управления памятью MMU.
У процесса есть
идентификатор процесса,
один или несколько потоков,
список дескрипторов объектов (управляемых в режиме ядра),
маркер доступа, хранящий информацию защиты.
Процессы создаются с помощью вызова Win32, который принимает на входе имя исполняемого файла, определяющего начальное содержимое адресного пространства, и создает первый поток.
Каждый процесс начинается с одного потока, но новые потоки могут создаваться динамически.
Потоки
Потоки формируют основу диспетчеризации центрального процессора, так как операционная система всегда для запуска выбирает поток, а не процесс.
Соответственно, у каждого потока есть состояние (готовый, работающий, блокированный и т. д.), тогда как у процессов состояний нет. Потоки могут динамически создаваться вызовом Win32, которому в адресном пространстве процесса задается адрес начала исполнения. У каждого потока есть идентификатор потока, выбираемый из того же пространства, что и идентификаторы процессов, поэтому один и тот же идентификатор никогда не будет использован одновременно для процесса и для потока.
Как правило, поток работает в пользовательском режиме, но когда он обращается к системному вызову, то переключается в режим ядра, после чего продолжает выполнять тот же поток, с теми же свойствами и ограничениями, которые были у него в режиме пользователя.
У каждого потока есть два стека, один используется в режиме ядра, а другой в режиме пользователя.
Помимо состояния, идентификатора и двух стеков, у каждого потока есть
контекст (в котором сохраняются его регистры, когда он не работает),
приватная область для локальных переменных,
Когда поток завершает свою работу, он может прекратить свое существование.
Когда прекращает существование последний активный поток, процесс завершается.
Потоки представляют собой концепцию диспетчеризации, а не концепцию владения ресурсами.
Любой поток может получить доступ ко всем объектам его процесса. Все, что ему для этого нужно сделать - это заполучить дескриптор и обратиться к соответствующему вызову Win32. Система не следит за тем, какой объект, каким потоком создан. Как только дескриптор объекта помещен в таблицу дескрипторов процесса, любой поток процесса может его использовать.
Помимо нормальных потоков, работающих в процессах пользователя, в операционной системе Windows 2000 есть множество процессов-демонов, не связанных ни с каким пользовательским процессом (они ассоциированы со специальной системой или простаивающими процессами).
Некоторые демоны выполняют административные задачи, как, например, запись «грязных» страниц на диск, тогда как другие формируют пул, и ими могут пользоваться компоненты исполняющей системы или драйверы, которым нужно выполнить какие-либо асинхронные задачи в фоновом режиме.
Волокна
Переключение потоков в операционной системе Windows 2000 занимает довольно много времени, так как для этого необходимо переключение в режим ядра, а затем возврат в режим пользователя.
Для предоставления сильно облегченного псевдопараллелизма в Windows 2000 используются волокна.
Волокна подобны потокам, но планируются в пространстве пользовательского процесса.
У каждого потока может быть несколько волокон, так же как у процесса может быть несколько потоков, с той разницей, что когда волокно логически блокируется, оно помещается в очередь блокированных волокон после чего для работы выбирается другое волокно в контексте того же потока.
Операционная система не знает о смене волокон, так как все тот же поток продолжает работу.
Так как операционная система ничего не знает о волокнах , то с ними, в отличие от заданий, процессов и потоков, не связаны объекты исполняющей системы.
Для управления волокнами нет и настоящих системных вызовов. Однако для этого есть вызовы Win32 API. Они относятся к тем вызовам Win32 API, которые не обращаются к системным вызовам.