Реферат Курсовая Конспект
Реализация потоков в пространстве пользователя, ядра и смешанное - раздел Философия, Реализация Потоков В Пространстве Пользователя, Ядра И ...
|
Реализация потоков в пространстве пользователя, ядра и смешанное
В случае потоков в пространстве пользователяядро о потоках ничего не знает. Каждому процессу необходима таблица потоков, аналогичная таблице процессов.
Преимущества случая потоков в пространстве пользователя:
· Такую многопоточность можно реализовать на ядре, не поддерживающим многопоточность
· Более быстрое переключение, создание и завершение потоков
· Процесс может иметь собственный алгоритм планирования.
Недостатки случая потоков в пространстве пользователя:
· Отсутствие прерывания по таймеру внутри одного процесса
· При использовании блокирующего (процесс переводится в режим ожидания, например: чтение с клавиатуры, а данные не поступают) системного запроса все остальные потоки блокируются.
· Сложность реализации
Поток ядра может содержать несколько потоков пользователя.
Примитивы взаимодействия процессов
Вводится понятия двух примитивов.
sleep - системный запрос, в результате которого вызывающий процесс блокируется, пока его не запустит другой процесс.
wakeup - системный запрос, в результате которого блокированный процесс будет запущен.
Основное преимущество - это отсутствие активного ожидания..
Проблема заключается в следующем, если спулер пуст, то wakeup срабатывает в пустую.
Своппинг
(от англ. слова swapping - подкачка, обмен) механизм выгрузки для высвобождения места из оперативной памяти в виртуальную память временно не используемых данных, и подкачки в оперативную память недостающей страницы виртуальной памяти, затребованной программой.
Виртуальная память
Сочетание памяти ОЗУ и временного хранилища на жестком диске. Когда памяти ОЗУ недостаточно, данные из оперативной памяти помещаются в хранилище под названием файл подкачки. Перемещение данных в файл подкачки и из него освобождает достаточно оперативной памяти для выполнения операции.
Как правило, чем больше объем установленного в компьютере ОЗУ, тем быстрее работают программы. Если нехватка оперативной памяти замедляет работу компьютера, то для ее восполнения можно увеличить размер виртуальной памяти. При этом необходимо учитывать, что чтение данных из ОЗУ выполняется значительно быстрее, чем с жесткого диска, поэтому в качестве решения больше подойдет добавление ОЗУ.
Совместно используемые страницы
Два процесса могут содержать в таблицах страниц указатели на общие страницы. В случае разделения пространств команд и данных это легко реализуется. Эти данные используются в режиме чтения.
В UNIX, когда создается дочерний процесс, у родительского и дочернего процесса общее пространство данных, и только если один из процессов попытается изменить данные, происходит прерывание и создание копии этой страницы, если записи не происходит, то оба процесса продолжают работать с общей памятью. Это приводит к экономии памяти.
Политика очистки страниц. Сборка мусора
Лучше всегда держать в запасе свободные блоки, освобождая их заранее, чем при нехватке памяти, искать и освобождать их.
Страничный демон - программа, периодически проверяющая состояние памяти, если занято много блоков, то производит выборочную выгрузку страниц.
Блочные устройства
Блочное устройство (block device) — вид файла устройств в UNIX/Linux-системах, обеспечивающий интерфейс к устройству, реальному или воображаемому, в виде файла в файловой системе.
С блочным устройством обеспечивается обмен данными блоками данных. Как правило, это устройства произвольного доступа, то есть можно указать, из какого именно места должен быть прочитан или записан блок данных. Данные при чтении или записи на блочное устройство буферизуются.
Типичные примеры блочных устройств: жёсткий диск, CD-ROM, НГМД.
Символьные устройства
Символьное устройство — (character device) — вид файла устройства в UNIX/Linux-системах, обеспечивающий интерфейс к устройству, реальному или воображаемому, с возможностью посимвольного обмена информацией.
В отличие от блочного устройства символьное устройство, как правило, не обладает возможностями произвольного доступа. В большинстве своём, чтение и запись данных в символьное устройство не буферизуется.
Типичные примеры символьных устройств: стриммер, модем, телетайп или терминал.
Что такое контроллер прерываний
Контроллер прерываний — микросхема или встроенный блок процессора, отвечающий за возможность последовательной обработки запросов на прерывание от разных устройств.
Прерывание - сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код
– Конец работы –
Используемые теги: Реализация, потоков, пространстве, пользователя, ядра, Смешанное0.054
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Реализация потоков в пространстве пользователя, ядра и смешанное
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов