Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Параллелизм на уровне инструкций




Наиболее низкий уровень параллелизма, осуществляемый на уровне параллельной обработки процессором нескольких инструкций. На этом же уровне находится пакетная обработка нескольких элементов данных одной командой процессора. Программа представляет собой поток инструкций выполняемых процессором. Можно изменить порядок этих инструкций, распределить их по группам, которые будут выполняться параллельно, без изменения результата работы всей программы. Это и называется параллелизмом на уровне инструкций. Для реализации данного вида параллелизма в микропроцессорах используется несколько конвейеров команд, такие технологии как предсказание команд, переименование регистров.

14. Каким образом файлы, процессы и потоки могут быть использованы для синхронизации?

Сотрудничество с использованием разделения:

Этот случай охватывает процессы (потоки), взаимодействующие с другими процессами (потоками) без наличия явной информации о них. Например, несколько потоков могут обращаться к разделяемым переменным (глобальным) или совместно используемым файлам или базам данных. Поскольку данные хранятся в ресурсах (устройствах, памяти), в этом случае также возможны проблемы взаимоблокировок, взаимоисключения и голодания. Единственное отличие в том, что доступ к данным может осуществляться в двух режимах – чтения и записи, и взаимоисключающими должны быть только операции записи. Однако в этом случае вноситься новое требование синхронизации процессов для обеспечения согласованности данных.

Сотрудничество с использованием связи:

В этом случае различные процессы принимают участие в общей работе, которая их объединяет. Связь обеспечивает возможность синхронизации, или координации, различных действий процессов. Поскольку в процессе передачи сообщений не происходит какого-либо совместного использования ресурсов, взаимоисключение не требуется, хотя проблемы взаимоблокировок и голодания остаются актуальными.

15. Какие методы могут использоваться для ликвидации тупиковых ситуаций?

I. Принудительная выгрузка ресурсов. Способность забирать ресурс у процесса, отдавать его другому процессу, а затем возвращать назад так, что исходный процесс не замечает этого, в значительной мере зависит от ресурсов устройства. Выйти из тупика, таким образом, зачастую трудно или невозможно.

II. Восстановление через откат. В этом способе процессы должны периодически создавать контрольные точки, позволяющие запустить процесс с его предыстории. Когда взаимоблокировка обнаружена, достаточно просто понять, какие ресурсы нужны процессам. Чтобы выйти из тупика, процесс, занимающий необходимый ресурс, откатывается к тому моменту времени, перед которым он получил данный ресурс, для чего запускается одна из его контрольных точек. Вся работа, выполненная после этой контрольной точки, теряется. Если возобновленный процесс вновь попытается получить этот ресурс, ему придется ждать, пока ресурс станет доступным.

III. Восстановление путем уничтожения одного или более процессов – грубейший, но простейший выход из тупика. Проблема, какой процесс уничтожать.

16. Приведите пример использования семафора. Что такое мьютекс, как он используется?

Семафор представляет собой целую переменную, принимающую неотрицательные значения, доступ любого процесса к которой, за исключением момента ее инициализации, может осуществляться только через две атомарные операции: P (проверять) и V (увеличивать). Подобные переменные-семафоры могут быть с успехом применены для решения различных задач организации взаимодействия процессов.

Мьютекс (взаимное исключение) – упрощенный семафор, неспособный считать, он может управлять лишь взаимным исключением доступа к совместно используемым ресурсам и кодам. Реализация мьютекса полезна в случае потоков, действующих только в пространстве пользователя.

17. Перечислите методы взаимоисключений процессов.

Основным требованием поддержки параллельных процессов является обеспечение взаимоисключений — возможность выполнения только одного процесса с блокированием работы всех остальных процессов. Существуют 3 подхода к обеспечению взаимоисключений: программный, аппаратный механизм, средствами операционный системы (ОС). Современные ОС имеют различные собственные средства, обеспечивающие параллельные вычисления. К этим средствам относятся семафоры, мониторы, очереди сообщений, почтовые ящики, конвейеры. Семафоры являются простейшими из них.

18. Когда возникает необходимость в синхронизации процессов?

Потребность в синхронизации потоков возникает только в мультипрограммной операционной системе и связана с совместным использованием аппаратных и информационных ресурсов вычислительной системы. Синхронизация необходима для исключения гонок и тупиков при обмене данными между потоками, разделении данных, при доступе к процессору и устройствам ввода-вывода.

Любое взаимодействие процессов или потоков связано с их синхронизацией, которая заключается в согласовании их скоростей путем приостановки потока до наступления некоторого события и последующей его активизации при наступлении этого события. Синхронизация лежит в основе любого взаимодействия потоков, связано ли это взаимодействие с разделением ресурсов или с обменом данными. Например, поток-получатель должен обращаться за данными только после того, как они помещены в буфер потоком-отправителем. Если же поток-получатель обратился к данным до момента их поступления в буфер, то он должен быть приостановлен.

При совместном использовании аппаратных ресурсов синхронизация также совершенно необходима. Когда, например, активному потоку требуется доступ к последовательному порту, а с этим портом в монопольном режиме работает другой поток, находящийся в данный момент в состоянии ожидания, то ОС приостанавливает активный поток и не активизирует его до тех пор, пока нужный ему порт не освободится. Часто нужна также синхронизация с событиями, внешними по отношению к вычислительной системе, например реакции на зажатие комбинации клавиш Ctrl+C.

Ежесекундно в системе происходят сотни событий, связанных с распределением и освобождением ресурсов, и ОС должна иметь надежные и производительные средства, которые бы позволяли ей синхронизировать потоки с происходящими в системе событиями.

19. Дайте определение иерархической памяти.

Иерархическая память - структура соподчиненности запоминающих устройств в организации внешней памяти. Иерархическая память предоставляется системой управления иерархией запоминающих устройств.

20. Назовите задачи распределения памяти.

Задача распределения ОП распадается на три взаимосвязанные задачи: учета, выделения, возврата.

Учету по определенным правилам подвергаются либо только дыры, либо, более часто, дыры и занятые участки.

Задача выделения заключается в выборе по некоторому правилу дыры подходящего размера. Поиск подходящей дыры при этом может производится по одному из трех алгоритмов: поиск от начала, поиск от конца, оптимальный поиск. В первых двух случаях производится выделение первой обнаруженной (при просмотре списка дыр от начала и от конца, соответственно) подходящей дыры, в последнем случае выбирается подходящая дыра наименьшего размера. Более сложные алгоритмы распределения предполагают выделение участка памяти даже в том случае, когда дыра подходящего размера в ОП отсутствует. В этом случае производится некоторое переупорядочение дыр, имеющее целью объединение множества мелких дыр в единое целое.

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

21. Дайте определение виртуальной памяти. Перечислите варианты организации такой памяти.

Под виртуализацией ОП понимают временную выгрузку неактивных процессов, находящихся в ожидании каких-либо ресурсов, на диск к моменту, когда подойдет очередь выполнения выгруженного процесса, его образ будет возвращен с диска в ОП. Если при этом обнаружится, что свободного места в ОП не хватает, на диск будет выгружен другой процесс, освобождая место загружаемому. Это позволяет повысить уровень мультипрограммирования, так как объем ОП уже не так жестко ограничивает число одновременно выполняемых процессов. При этом суммарный объем ОП, занимаемый образами процессов может существенно превосходить размер физической ОП.

Размер дискового пространства, который можно выделить для организации виртуальной памяти ограничивает возможностями ЦП по адресации и составляет 2^32 ≈ 4 ГБ степени для 32-х разрядных процессоров и 2^64 для 64-х разрядных ЦП.

Виртуализация ОП осуществляется совокупностью аппаратных и программных средств в вычислительных системах (схемами центрального процессора и возможностями ОС) автоматически без участия пользователя.

 

Для виртуализации используют 2 возможных подхода:

1. Свопинг – образы процессов выгружаются на диск и возвращаются в ОП целиком.

2. Виртуальная память – между ОП и диском перемещаются части образов (сегменты, страницы, блоки и т. д.) процессоров.

Недостатки свопинга:

● избыточность перемещаемых данных и в силу этого замедление работы системы и неэффективное использование памяти.

● невозможность загрузки процесса, размеры которого превышают имеющуюся в наличии ОП.

Достоинства свопинга:

По сравнению с виртуальной памятью заключается в меньших затратах времени на преобразование адресов поскольку оно делается один раз при загрузке с диска в память.

Виртуальная память не имеет указанных недостатков, но её проблемой является значительные затраты времени на преобразование виртуальных адресов в физические, сложность программной и аппаратной поддержки.

 

22. Что такое подкачка страниц?

Подкачка страниц (англ. термин — англ. Paging) — один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ на жёсткий диск, освобождая ОЗУ для загрузки других фрагментов памяти. Такими фрагментами в современных ЭВМ являются страницы памяти.

23. Охарактеризуйте проблему защиты памяти.

Защита памяти - аппаратные и программные средства для предотвращения записи или воспроизведения информации по неразрешенному адресу памяти вычислительной системы или машины. Сущность З. п. заключается в том, что память ЦВМ программно или аппаратно разбивается на ряд участков и каждому участку или группе участков присваивается код-ключ, который запоминается в той же или специальной памяти. При обращении к памяти определяется её участок и соответствующий ключ, который сравнивается с разрешённым ключом З. п., указанным в самой команде или диспетчером-программой. Несоответствие ключей рассматривается как нарушение З. п. и выполнение программы прерывается. Прерывание программы организуется так, чтобы содержание защищённой области памяти осталось без изменения. З. п. функционирует при каждом обращении к памяти либо в режиме записи информации, либо в режиме воспроизведения информации, либо в обоих режимах. З. п. выполняет следующие функции: защиту содержимого определенных областей памяти от потери информации во время выполнения программ из-за ошибочных засылок информации, вызванных отказами и сбоями оборудования или диспетчер-программы ЦВМ, ошибками программиста или пользователя; защиту информации от попадания её в руки постороннего пользователя при несанкционированном случайном или намеренном вмешательстве.

 

К аппаратным средствам З. п. относятся: запоминающее устройство ключей защиты, ёмкость которого соответствует числу защищаемых участков, а быстродействие на порядок больше, чем у основной памяти ЦВМ; схемы сравнения ключей защиты, прерывания и индикации при нарушении З. п. К программным средствам З. п. относятся: программы контроля участков памяти, их кодирования и составления таблиц соответствия; программы динамического перераспределения З. п. по распоряжениям потребителей, по параметрам одновременно решаемых задач; программы анализа причин нарушений З. п. и принятия решений по их устранению. З. п. повышает эффективность работы ЦВМ, сокращая временные затраты на поиск ошибок, неисправностей и на повторные вычисления из-за потери информации. З. п. необходима при одновременном решении нескольких задач одной ЦВМ в режиме разделения времени, одновременном обслуживании нескольких пользователей, наличии библиотек программ, архивов, принадлежащих определённым потребителям, одновременной работе нескольких устройств в составе ЦВМ.

24. Нужно ли бороться с фрагментацией памяти? Какие методы для этого существуют?

Фрагментация файла присуща жёсткому диску, которая давно была создана для получения как можно большего пространства на диске. Отсюда становится видно, что любой жёсткий диск, используемый в различных целях, включая RAID, зеркальные системы или резервные копии, подвержен фрагментации.

В мире информационных технологий каждый знает, что фрагментация замедляет работу. Но не всем известно, что фрагментация негативно влияет на надёжность системы. Начиная загрузкой и кончая выключением компьютера, фрагментированный диск является причиной проблем при выполнении практически любого действия в Windows. В качестве главного примера можно взять тот факт, что операционная система Windows постоянно использует файлы с диска, поэтому надёжность диска критически важна для безотказной работы системы. Если проблема фрагментации возникнет с файлом, то это может привести к "превышению виртуальной памяти" и потере данных. Проследить негативное влияние фрагментации можно также и на главной файловой таблице (таблица, используемая NTFS для размещения файлов, файловая система Windows): фрагментированная главная файловая таблица может замедлить процесс загрузки компьютера с ОС (операционной системой) Windows.

 

 

Фрагментация файла также причиняет серьёзный физический ущерб жёстким дискам: происходит увеличение движения головки жёсткого диска, так как жёсткому диску необходимо найти данные, находящиеся на фрагментированных файлах. Чем больше движений головки жёсткого диска, тем меньше средняя наработка на отказ (MTBF) и работоспособность жёсткого диска. Именно средней наработкой на отказ определяется надёжность жёсткого диска.

Фрагментация диска становится хуже вместе с увеличением количества информации, которая хранится на жёстком диске.

Существует ли решение данной проблемы? Конечно, фрагментацию диска может предотвратить дефрагментация. Регулярная дефрагментация способствует:

- повышению надёжности жёсткого диска, поддерживая дефрагментированными файлы и главную файловую таблицу;

- увеличению срока службы жёсткого диска, уменьшая движения его головки.

В связи с тем, что сегодня используются продвинутые системы (благодаря глобализации многие сайты сегодня 24X7), важно использовать определённую технологию дефрагментации. Большинство сайтов используют запланированную дефрагментацию для того, чтобы она проводилась регулярно. Однако сегодня из-за того, что диски имеют большой объём, файлы имеют большой размер и на компьютере выполняется большой объём работы, про дефрагментацию часто забывают. Между плановыми загрузками, фрагментация продолжает негативно влиять на работу жёсткого диска. Можно привести также множество примеров, демонстрирующих, что запланированная дефрагментация никак не влияет на фрагментацию.

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

25. Что такое прямой доступ к памяти?

Прямой доступ к памяти (англ. Direct Memory Access, DMA) — режим обмена данными между устройствами или же между устройством и основной памятью (RAM), без участия Центрального Процессора (ЦП). В результате скорость передачи увеличивается, так как данные не пересылаются в ЦП и обратно.

Кроме того, данные пересылаются сразу для многих слов, расположенных по подряд идущим адресам, что позволяет использование т.н. «взрывного» (burst) режима работы шины — 1 цикл адреса и следующие за ним многочисленные циклы данных. Аналогичная оптимизация работы ЦП с памятью крайне затруднена.

26. Как организуется управляемый прерываниями ввод-вывод?

Всякий раз, когда передача данных в или из управляемого оборудования может быть отложена по любой причине, автору драйвера следует реализовывать буферизацию. Буферы данных помогают отделить передачу и приём данных от системных вызовов write и read, а также повысить общую производительность системы.

Хороший буферный механизм приводит к вводу/выводу, управляемому прерываниями, в котором входной буфер заполнен во время прерывания и очищается процессом, которые читает устройство; выходной буфер заполняется процессами, которые пишут в устройство, и опустошается во время прерывания. Примером управляемого прерыванием вывода является реализация /dev/shortprint. Чтобы управляемая прерыванием передача данных происходила успешно, оборудование должно быть способно генерировать прерывания со следующей семантикой:

• Для ввода, устройство прерывает процессор, когда получены новые данные и они готовы для получения процессором системы. Фактические действия для выполнения зависят от того, использует ли устройство порты ввода/вывода, отображение на память, или DMA.

• Для вывода, устройство обеспечивает прерывание или когда оно готово принять новые данные, или для подтверждения успешной передачи данных. Устройства, использующие отображение на память, и DMA-совместимые устройства обычно генерируют прерывания, чтобы сообщить системе, что они завершили работу с буфером.

 

27. Что дает многоуровневая организация физической памяти современных ЭВМ?

Многоуровневая память [ multilevel memory ] - Организация памяти, состоящая из нескольких уровней запоминающих устройств с различными характеристиками и рассматриваемая со стороны пользователей как единое целое. Для многоуровневой памяти характерна страничная организация, обеспечивающая “прозрачность” обмена данными между ЗУ разных уровней.

Современные системы памяти основаны на идее использования иерархии запоминающих устройств. При перемещении слева направо от наиболее быстрых элементов к самым медленным происходит следующее:

ü снижается стоимость бита;

ü возрастает емкость;

ü возрастает время доступа;

ü снижается частота обращения процессора к памяти.

28. Как связан уровень мультипрограммирования с объемом оперативной памяти?

Объём ОП существенно влияет на характер вычислительного процесса, так как он ограничивает число одновременно выполняющихся программ, то есть уровень мультипрограммирования.

29. Что такое виртуальная память? Какие подходы к организации виртуальной памяти используются в ЭВМ?

Под виртуализацией ОП понимают временную выгрузку неактивных процессов, находящихся в ожидании каких-либо ресурсов, на диск к моменту, когда подойдет очередь выполнения выгруженного процесса, его образ будет возвращен с диска в ОП. Если при этом обнаружится, что свободного места в ОП не хватает, на диск будет выгружен другой процесс, освобождая место загружаемому. Это позволяет повысить уровень мультипрограммирования, так как объем ОП уже не так жестко ограничивает число одновременно выполняемых процессов. При этом суммарный объем ОП, занимаемый образами процессов может существенно превосходить размер физической ОП.

Размер дискового пространства, который можно выделить для организации виртуальной памяти ограничивает возможностями ЦП по адресации и составляет 2^32 ≈ 4 ГБ степени для 32-х разрядных процессоров и 2^64 для 64-х разрядных ЦП.

Виртуализация ОП осуществляется совокупностью аппаратных и программных средств в вычислительных системах (схемами центрального процессора и возможностями ОС) автоматически без участия пользователя.

 

Для виртуализации используют 2 возможных подхода:

1. Свопинг – образы процессов выгружаются на диск и возвращаются в ОП целиком.

2. Виртуальная память – между ОП и диском перемещаются части образов (сегменты, страницы, блоки и т. д.) процессоров.

Недостатки свопинга:

● избыточность перемещаемых данных и в силу этого замедление работы системы и неэффективное использование памяти.

● невозможность загрузки процесса, размеры которого превышают имеющуюся в наличии ОП.

Достоинства свопинга:

По сравнению с виртуальной памятью заключается в меньших затратах времени на преобразование адресов поскольку оно делается один раз при загрузке с диска в память.

Виртуальная память не имеет указанных недостатков, но её проблемой является значительные затраты времени на преобразование виртуальных адресов в физические, сложность программной и аппаратной поддержки.


 

30. Что такое свопинг? Для чего он используется?

Свопинг — один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ на жёсткий диск, освобождая ОЗУ для загрузки других фрагментов памяти. Такими фрагментами в современных ЭВМ являются страницы памяти.

Временно выгруженные из памяти страницы могут сохраняться на внешних запоминающих устройствах как в файле, так и в специальном разделе на жёстком диске (partition), называемые соответственно swap-файл и swap-раздел. В случае откачки страниц, соответствующих содержимому какого-либо файла (например, memory-mapped files), они могут удаляться. При запросе такой страницы она может быть считана из оригинального файла.

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

31. Назовите функции ОС по управлению памятью.

● отслеживание и учет свободной и занятой памяти.

● первоначальное и динамическое выделение памяти процессом и самой ОС и освобождение памяти по завершению работы процесса.

● настройка адресов программы на конкретную область физической памяти.

● полное или частичное вытеснение кодов и данных процессов из ОП на диск в случае, когда размеры ОП недостаточны для размещения всех процессов и возвращение их в ОП при появлении свободного места в ней.

● защита памяти выделенной процессу от возможных вмешательств со стороны других процессов.

● дефрагментация памяти.

 

32. Что понимается под дефрагментацией памяти?

Дефрагментация — процесс обновления и оптимизации логической структуры раздела диска с целью обеспечить хранение файлов в непрерывной последовательности кластеров. После дефрагментации ускоряется чтение и запись файлов, а следовательно и работа программ. Другое определение дефрагментации: перераспределение файлов на диске, при котором они располагаются в непрерывных областях.

Кластер - это наименьшее место на диске, которое может быть выделено для хранения файла.

 

33. Раскройте понятия: логический, математический, виртуальный и физический адреса.

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

Физические адреса соответствуют номерам ячеек ОП, где в действительности будут располагаться переменные и команды.

Совокупность виртуальных адресов называется виртуальным адресным пространством. Диапазон адресов виртуального пространства у всех процессов один и тот же и определяется разрядностью и типом процессора.


 

34. В чем суть страничной организации виртуальной памяти?

Страничная виртуальная память – организует перемещение данных между основной памятью и диском страницами – частями виртуального адресного пространства, фиксированного и сравнительно небольшого размера.

При страничной организации виртуальное адресное пространство (ВАП) каждого загруженного приложения (процесса) делится на одинаковые фиксированные для данной системы части, называемые виртуальными страницами.

Обычно размер ВАП при делении на размер одной страницы дает дробную величину, что говорит о том, что его размер не кратен размеру виртуальной страницы. Поэтому последняя страница, как правило, дополняется неиспользованной фиксированной областью.

Оперативная память компьютера также делится на страницы, называемые физическими. Их размер, как правило, совпадает с размерами виртуальной страницы. Размер страницы всегда выбирается кратным степени двойки (1024, 2048, 4096,…).

При создании процессов ОС загружает в ОП несколько его виртуальных страниц – начальные страницы кодового сегмента и сегмент исходных данных.

Копия всего виртуального пространства находится на диске.

Смежные виртуальные страницы необязательно должны находиться в смежных физических страницах. Их расположение произвольно. Для каждого процесса ОС создает таблицу страниц – специальную информационную структуру, содержащую записи обо всех виртуальных страницах процесса.

35. В чем суть сегментной организации виртуальной памяти?

Сегментная виртуальная память – предусматривает перемещение данных сегментами – частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных.

При сегментной организации виртуального адресного пространство оно делится на равные части механически без учета смыслового значения данных. Для многих задач наличие двух и более отдельных виртуальных адресных пространств может оказаться лучшим решением.

В настоящее время современные ЭВМ обеспечиваются множеством полностью независимых адресных пространств, называемых сегментами. Каждый сегмент содержит линейную последовательность адресов от 0 до некоторого максимума. Сегменты могут быть различной длины. Их размер может меняться во время выполнения. Поскольку каждый сегмент представляет собой отдельное адресное пространство, разные сегменты могут менять свои размеры независимо друг от друга.

Чтобы определить адрес такой памяти программы используют адрес, состоящий из двух частей – номера сегмента и адреса внутри сегмента. Максимальный размер сегмента определяется разрядностью виртуального адреса (для 32-х разрядного Pentium’а 2^32≈4Гб).

Сегмент, в первую очередь, логический объект, что должен учитывать программист в процессе написания программы.

 

36. В чем суть сегментно-страничной организации виртуальной памяти?

Сегментно-страничная виртуальная память – использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а сегменты на страницы. Единицей перемещения является страница.

Сочетает достоинства страничного и сегментного метода управления памятью. В нем адресное пространство пользователя разбивается на ряд сегментов по усмотрению программиста. Каждый сегмент разбивается на страницы фиксированного размера, равные по величине страницам физической памяти. С точки зрения программиста логический адрес состоит из номера сегмента и смещения в нем, а с точки зрения ОС смещение рассматривается как номер страницы внутри сегмента и смещения в ней. Возросла сложность системы управления. С каждым процессом связана одна таблица сегментов и несколько, по одной на каждый сегмент, таблиц страниц.

При работе определенного процесса в регистре процессора хранится начальный адрес соответствующей таблицы сегментов. Получив виртуальный адрес, процессор использует его часть, представляющую номер сегмента, в качестве индекса в таблице сегментов для поиска таблицы страниц. После этого часть адреса, представляющая адрес страницы, используется для поиска номера физической страницы в таблице страниц. Затем часть адреса, представляющая смещение, используется для получения искомого физического адреса путем добавления к начальному адресу физической страницы.

Сегментация удобна для реализации защиты и совместного использования сегментов разными процессами. Поскольку каждая запись в таблице сегментов включает начальный адрес и значение его длины программа не в состоянии преднамеренно обратиться за его границы.

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

Более экономичным для ОС является метод создания разделяемого виртуального сегмента – перемещение его в общую часть ВАП, которое обычно используется для модулей ОС. В этом случае настройка соответствующей записи для разделяемого сегмента выполняется только один раз, а все процессы пользуются этой настройкой и совместно используют часть ОП.

37. Основные компоненты подсистемы ввода-вывода.

Основные компоненты: драйверы, файловая система, система прерываний.

Устройства ввода-вывода по функциональному назначению принято делить на три основные группы:

1. Устройства, работающие с пользователем – обеспечивают связь пользователя с компьютером (принтеры, дисплей, клавиатура, манипуляторы и др.)

2. Устройства, работающие с компьютером – обеспечивают связь с электронным оборудованием (дисковые устройства, датчики, контроллеры, преобразователи и др.)

3. Коммуникации – обеспечивают связь с удаленными устройствами в сети (модемы, сетевые платы и др.)

38. Основные функции подсистемы ввода-вывода.

1) Организация параллельной работы устройств ввода-вывода и процессора.

2) Согласование скоростей обмена и кэширования данных

3) Разделение устройств и данных между процессами

4) Обеспечение удобного логического интерфейса между устройствами и остальной частью системы

5) Поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера

6) Динамическая загрузка и выгрузка драйверов

7) Поддержка нескольких файловых систем

8) Поддержка синхронных и асинхронных операций ввода-вывода.


 

39. Три основных метода организации параллельной работы устройств ввода-вывода и процессора.

Для современных персональных ЭВМ операции ввода-вывода могут выполняться тремя способами:

1. С помощью программируемого ввода-вывода. В случае обработки процессором команды ввода-вывода он выполняет ее, посылая соответствующую команду контроллеру ввода-вывода. Контроллер выполняет требуемое действие, а процессор находится в режиме ожидания, периодически проверяя завершение операции ввода-вывода. ЦП непосредственно управляет операциями ввода-вывода, определяет состояние устройств ввода-вывода и осуществляет передачу данных. Основным недостатком этого метода является значительный по времени простой ЦП в ожидании.

2. Ввод-вывод, управляемый прерываниями. ЦП посылает необходимые команды контроллеру и продолжает выполнять текущий процесс, если нет необходимости в ожидании операции ввода-вывода. В противном случае текущий процесс приостанавливается до получения сигналов прерывания о завершении ввода-вывода, а процессор переключается на выполнение другого процесса. Наличие прерываний ЦП проверяет в конце каждого цикла команд. Данный метод достаточно эффективен т.к. исключает бесполезный простой ЦП. Но и здесь ввод-вывод потребляет значительное кол-во времени ЦП т.к. каждое слово, передаваемое из памяти в контроллер (или обратно) проходит через ЦП.

3. Прямой доступ к памяти (DMA - Direct Memory Access). В этом случае специальный модуль прямого доступа к памяти управляет обменом данными между основной памятью и контроллером. ЦП посылает запрос на передачу блока данных модулю DMA, а прерывание происходит только после передачи всего блока данных. DMA-контроллер имеет доступ к системной шине независимо от ЦП. Он содержит несколько регистров, доступных ЦП. Они задают, какой порт ввода-вывода должен быть использован, направление переноса данных, единицы переноса информации (байт, бит, слово…), а также число байтов, переносимых за одну операцию

40. Методы согласования скоростей работы периферийных устройств.

При обмене данными возникает задача согласования разноскоростных устройств. Решение этой задачи достигается буферизацией данных. Возможно использовать буферизацию в ОЗУ, однако ее применение ограничивается относительно небольшим размером буфера и большой разницей скоростей работы ОЗУ и устройств ввода-вывода.

Для увеличения объема буфера и снижения его скорости работы часто используют винчестер, создавая на нем специальный дисковый файл, используемый в качестве буфера (спул файл/спулинг файл).

Другим решением может быть использование большой буферной памяти в контроллере устройства. Это позволяет избежать медленных операций чтения/записи на диск и значительно повысить скорость работы. Например, графические платы используют буферную память соизмеримую по объему с ОЗУ и превосходящую ее по скорости работы.

Простейший тип поддержки со стороны ОС представлен одинарным буфером. В тот момент, когда процесс выполняет запрос ввода-вывода, ОС назначает ему буфер в ОЗУ. Сначала осуществляется передача входных данных в системный буфер. Затем процесс перемещает блок в пользовательское пространство и запрашивает следующий блок данных. Это называется опережающим считыванием (упреждающим вводом). За счет этого увеличивается скорость, так как процесс может обрабатывать один блок данных в то время, когда идет загрузка следующего блока ввода в буфер.

Улучшение данной схемы возможно путем использования двух буферов. Это позволяет осуществлять передачу данных в один буфер, в то время как ОС освобождает другой. Двойная буферизация избавляет процесс от необходимости ожидания завершения операции ввода-вывода.

Если двойной буферизации недостаточно, применяют подход, основанный на наращивании количества буферов. Если буферов больше двух, система называется циклической буферизацией.


 

41. Понятие буферизации.

Буферизация — метод организации обмена, в частности, ввода и вывода данных в компьютерах и других вычислительных устройствах, который подразумевает использование буфера для временного хранения данных. При вводе данных одни устройства или процессы производят запись данных в буфер, а другие — чтение из него, при выводе — наоборот. Процесс, выполнивший запись в буфер, может немедленно продолжать работу, не ожидая, пока данные будут обработаны другим процессом, которому они предназначены. В свою очередь, процесс, обработавший некоторую порцию данных, может немедленно прочитать из буфера следующую порцию. Таким образом, буферизация позволяет процессам, производящим ввод, вывод и обработку данных, выполняться параллельно, не ожидая, пока другой процесс выполнит свою часть работы. Поэтому буферизация данных широко применяется в многоза

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...