close

Вход

Забыли?

вход по аккаунту

?

Bilet 6

код для вставкиСкачать
Билет 6
1. Процессы в Windows и UNIX.
Windows: Unix
Каждый процесс в Windows представлен блоком процесса, создаваемым исполнительной системой (EPROCESS).
* Блок процесса EPROCESS содержит следующие поля:
* блок процесса ядра KPROCESS (PCB) содержит базовую информацию, необходимую для планирования потоков (указатель на каталог страниц, базовый приоритет по умолчанию, выделяемый квант процессорного времени, маска привязки к процессорам, суммарное время работы процесса в режиме ядра и в пользовательском режиме, список блоков потоков ядра KTHREAD)
* идентификаторы процесса и процесса-родителя
* время создания и завершения
* статус завершения
* указатель на следующий блок в очереди планировщика
* блок квот
* дескрипторы виртуальных адресов
* текущий, пиковый, минимальный и максимальные размеры рабочего набора
* счетчик числа ошибок страниц
* текущий и пиковый размер виртуальной памяти
* карта устройств
* блок переменных окружения
Множество, в которое входят программа, данные, стеки и атрибуты процесса, называется образом процесса.
Дополнительно поддерживается блок PEB с данными, располагаемый в адресном пространстве процесса, который содержит следующие поля:
* базовый адрес образа
* список модулей
* содержимое локальной памяти потока
* тайм-аут критической секции
* число и размер куч
* указатель на кучу процесса
* информация о версии ОС
* информация о версии образа
* маска привязки образа
* таблица разделяемых описателей
родительский и дочерний процессы имеют собственные адресные пространства, различные изначально
* процессы в Windows идентифицируются как дескрипторами, так и идентифик. процессов!родительский и дочерний процессы имеют адресные пространства, изначально эквивалентные
!процессы в UNIX идентифицируются идентификаторами процессов
!ядро имеет массив структур proc - таблица процессов
!таблица процессов всегда доступна ядру структура proc
* идентификаторы процесса, группы, сеанса PID, GID, SID
* расположение карты адресов ядра
* текущее состояние процесса
* указатели на предыдущий и следующий процессы в очереди планировщика
* канал "сна" для заблокированных процессов
* приоритеты планирования
* информация об обработке сигналов (маски игнорируемых, блокируемых, передаваемых и обрабатываемых сигналов)
* информация для управления памятью
* указатели, связывающие структуру со списками активных, свободных или завершенных процессов
!в пространстве процесса находится структура u, видимая только в момент выполнения и содержит данные, необходимые только в период выполнения процесса * структура u (user area)
* указатель на структуру proc
* реальные и эффективные UID, GID
* входные аргументы и возвращаемые значения от текущего системного вызова
* обработчики сигналов и связанная с ними информация
* таблица дескрипторов открытых файлов
* статистика использования процессора
* информация о квотах
* используется для сохранения аппаратного контекста процесса, если процесс не выполняется
2. Рандеву
Как правило, используется буфер из определенного количества элементов, тип которых задается при создании ящика . Для реализации механизма достаточно двух примитивов: send - отправить, и receive - принять. Примитивы имеют два парамет-ра , один из которых - собственно сообщение или его адрес, второй параметр указывает или идентификатор взаимодейст-
вующего процесса , или идентификатор почтового ящика . Еще один вариант организации сообщений - не использовать буферизацию . В этом случае , если send выполняется раньше receive, посылающий процесс блокируется до выполнения receive, когда сообщение может быть напрямую скопировано от производителя к потребителю без промежуточной буферизации и
наоборот . Этот метод называется рандеву , он легче реализуется, чем схема с буферизацией, однако процессы должны быть жестко синхронизированы. Примитивы send и receive имеют скрытый механизм взаимоисключения, а в большинстве систем и блокировки при чтении из пустого ящика или записи в заполненный . Однако, несмотря на простоту использования, это
решение менее производительно.
3. Защита памяти и режимы доступа
Защита от неверной адресации может быть реализована хранением и проверкой дополнительного бита valid-invalid в каждом элементе таблицы страниц. Значение valid указывает, что страница с данным номером принадлежит логической памяти процесса, значение invalid - что это не так.
Режим прямого доступа к памяти (ПДП, DMA - Direct Memory Access)
устройство может передать/принять данные напрямую из памяти * Одноканальные контроллеры: * один набор управляющих регистров = один канал
* выполняют одну операцию за один раз
* Многоканальные: * несколько каналов, каждый со своим набором управляющих регистров
* Режим обмена между УВВ
* контроллер устройства пересылает слово данных контроллеру DMA
* Контроллер DMA выставляет на шину еще один запрос для передачи данных адресату
Такая схема позволяет передать данные напрямую между устройствами, минуя память
требует лишнего цикла шины
Ряд контроллеров DMA (например, SPARC) работает не только с физическим адресом, но и с виртуальным адресом
контроллер DMA использует менеджер памяти MMU для преобразования адреса
MMU должен быть частью памяти, а не процессора
____________________________________________________________________________________________
* Режим захвата цикла: требует выставления запроса при передаче каждого слова, забирая случайный цикл шины у ЦП
ЦП программирует контроллер DMA, указывая, какие данные и куда перемещать
ЦП дает команду контроллеру диска прочитать данные во внутренний буфер
Контроллер диска сообщает, что операция выполнена
Контроллер DMA выставляет запрос на захват шины для переноса одного слова
ЦП завершает выполнение текущей операции и предоставляет управление шиной контроллеру DMA
Контроллер DMA получает доступ к шине и управляет обменом данными, после чего освобождает шину Если ЦП в этот момент нужна шина, он ожидает, так как шина занята DMA _______________________________________________________________________________________
* Пакетный режим: запрос выставляется один раз на серию пересылок; ЦП может простаивать достаточно долго, ожидая освобождения шины запрос выставляется один раз на серию пересылок
по завершении операции переноса данных, контроллер DMA инициирует прерывание процессора, сообщая, что перенос данных завершен
если ЦП в этот момент нужна шина, он ожидает, так как шина занята DMA
=>ОС нет необходимости заниматься переносом данных в память, они уже там
ЦП может заниматься другими задачами
Как правило, контроллер DMA значительно медленнее ЦП
Архитектура без DMA дешевле
4.Непрерывная организация файлов на диске, связные списки, i-узлы
Организация файла на диске
Непрерывный - файл занимает соседние блоки диска
a. легко организовать
b. высокой производительностью
c. очень быстро фрагментируется
d. вариант широко используется в СD-ROМ
связные списки - в начале каждого блока, принадлежащего файлу, находится указатель на следующий блок
Таблица связных списков
Общая для всех (FAT - file allocation table)
Для ускорения доступа заголовки блоков выносятся в общую таблицу
Для ускорения операций таблица полностью хранится в памяти
При большом разделе (много блоков) - большой размер таблицы
Низкая надежность - при повреждении сектора с таблицей теряется вся информация
i-узлы-содержат атрибуты файла и дисковые адреса его блоков. при использовании i-узла появляется возможность найти все блоки файла. В памяти хранятся i-узлы только открытых файлов
Использование блоков двойной и тройной косвенной адресации позволяет поддерживать файлы больших размеров. Используется UNIX, а также в ФС HPFS, NTFS
Документ
Категория
Без категории
Просмотров
41
Размер файла
149 Кб
Теги
bilet
1/--страниц
Пожаловаться на содержимое документа