Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВОПРОСЫ К ЭКЗАМЕНУ ОС.doc
Скачиваний:
14
Добавлен:
23.09.2019
Размер:
612.35 Кб
Скачать

30 Реализация потоков в пространстве пользователя и в ядре. Схема и отличия.

Есть два основных способа реализации набор потоков: в пользовательском пространстве и в ядре. Первый способ – это поместить весь набор потоков в пользовательском пространстве, об этом наборе ядру нечего не известно, ядро управляет обычными однопотоковыми процессами. Первое преимущество состоит в том, что набор потоков на пользовательском уровне может быть реализован в операционной системе которая не поддерживает потоки. При этом подходе потоки реализованы с помощью библиотеке. Потоки запускаются поверх системы поддержки исполнения программ, которые представляют собой набор процедур, управляющих потоками. Когда поток управляется в пользовательском пространстве, каждом процессу необходимо иметь свою собственную таблицу потоков, что бы отслеживать потоки, имеющиеся в этом процессе. Таблица потоков управляется системой поддержки исполнения программ, когда поток переводиться в состояние готовности или блокировки, информация, необходимая для возобновления его выполнения сохраняется в таблице потоков. А второй же способ – если ядро будет знать о потоках и управлять ими, тут уже не нужна система поддержки исполнения программ, и здесь нет таблицы процессов в каждом потоке, т.к. у ядра есть таблица потоков, в которой отслеживаются все потоки имеющиеся в системе. Когда потоку нужно создать новый или уничтожить существующий поток, он обращается к ядру которое затем производит создание или разрушение путём обновления таблицы потоков в ядре. Таблице потоков, находящейся в ядре, содержатся регистры каждого потока, состояние и другая инф.

31 Всплывающие потоки. Проблемы при переводе программы из однопоточной в многопоточную.

Поток который вынуждает систему создать новый поток для его обработки, наз. всплывающим потоком. Основное преимущество всплывающих потоков заключается в том, что они создаются заново и не имеют прошлого – никаких регистров, стеков и всего остального, что должно быть восстановлено, создания таких потоков довольно быстро. Код потока обычно содержит несколько процедур, у этих процедур могут быть локальные и глобальные переменные , а так же и параметры, Локальные переменные и параметры проблем не создают, проблемы возникают с глобальными переменными. Глобальность этих переменных заключается в то, что их использует множество процедур внутри потока, но другие потоки логически должны их оставить в покое. Проблемой возникающей при превращении однопоточной программы в многопоточную, является отсутствие возможности повторного входа во многие библиотечные процедуры, то есть они не создавались в расчётом на то, что каждая отдельна взятая процедура будет вызываться повторно ещё до того, как завершиться её предыдущий вызов.

32 Межпроцессорное взаимодействие. Состояние состязания. Примеры. 4 условия для эффективной совместной работы процессов.

Межпроцессные взаимодействия – Inter Process Communication или IPC. Когда два или более процесса считывают или записывают какие – нибудь общие данные, а окончательный результат зависит от того, какой процесс и когда именно выполняется наз. состязательной ситуацией. Пример если процессу нужно распечатать какой либо файл он помещает имя файла в каталог спулера, другой процессор под наз. печать проверяет наличия файла для печати, если такие файлы имеется он их распечатывает и удаляет имена файла из каталога. Процесс А и Б решают поставить файлы в очередь на печать, Процесс А считывает значении е и сохраняет знач. 1 в локальной переменной, сразу после этого происходит прерывания по таймеру, центральный процессор решает что процесс А проработал долго и переходит к процессу Б.Процесс Б так же считывает значения и так же получает 1, он сохраняет его в свое локальной переменной. Оба процесса полагают что след. Свободная область будет 1. Процесс Б продолжает выполнение, сохраняя своё имя файла в области 1 и присваивает след. переменной значение 2. Процесс А возобновляет свою деятельность с того места где прервался . Он считывает значение переменой 1 и записывает туда имя своего файла затирает имя файла Б и присваивает след. переменной значение 2. В каталоге спулера нет ни каких противоречий по этому процесс печать не заметит не каких изменений, но процесс Б не когда не получт выход на печать. Критической областью наз. программа в которой используется доступ к общей памяти. 4 условия для эффективной совместной работы процессов. 1) Два процесса не могут одновременно находиться в своей критической области. 2) Не должны выстраиваться никакие предположения по поводу скорости или количества центральных процессов. 3) Никакие процессы, выполняемые за пределами своей критической области, не могут блокировать другие процессы. 4) Процессы не должны находиться в вечном ожидании входа в свои критические области.