Буферизация данных при обмене информацией между процессами 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Буферизация данных при обмене информацией между процессами



Буферизация данных при обмене информацией между процессами

Обмен информацией с файлом может быть непосредственным или буферизованным.

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

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

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

Логическая организация механизма передачи информации

10.Алгоритмы планирования (Дисциплины диспетчеризации)

Диспетчеризация связана с понятием задачи (потока). Если ОС не поддерживает механизма потоков, то понятие задачи можно заменить на понятие процесса.

Известно большое количество правил, в соответствии с которыми формируется очередь (список) готовых к выполнению задач.

Имеются два больших класса дисциплин обслуживания:

- бесприоритетные:

- приоритетные.

Бесприоритетные дисциплины обслуживания делятся на следующие:

- линейные:

· в порядке очереди;

· случайный выбор процесса;

- циклический:

· циклический алгоритм;

· многоприоритетный циклический алгоритм.

Приоритетные дисциплины обслуживания делятся на следующие:

- с фиксированным приоритетом:

· с относительным приоритетом;

· с абсолютным приоритетом;

· адаптивное обслуживание;

· приоритет зависит от времени ожидания;

- с динамическим приоритетом:

· приоритет зависит от времени ожидания;

· приоритет зависит от времени обслуживания.

Свойства приоритетов:

- приоритет, присвоенный задаче, может являться величиной постоянной;

- приоритет задачи может изменяться в процессе ее решения.

Самой простой в реализации является дисциплина FCFS (first come – first served), задачи обслуживаются в порядке очереди. Задачи, приостановленные для ожидания какого-либо ресурса, после перехода в состояние готовности становятся в эту очередь перед задачами, которые еще не выполнялись.

Образуются две очереди:

- новые задачи;

- ранее выполнявшиеся, но попавшие в состояние ожидания.

Аппаратные средства поддержки многозадачности.

Многозадачность (multitasking) – это способность операционной системы выполнять несколько программ одновременно.

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

однозадачные (например, MS-DOS, MSX) и

многозадачные (OC EC, OS/2, UNIX, Windows 95).

 

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

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

Реализация процедуры диспетчера процессов.

Реализация карусельной многозадачности.

Методы адресации памяти

Методы адресации — в вычислительной технике способы указания на определённую ячейку (ячейки) памяти ЭВМ процессору с целью записи, чтения данных или передачи управления.

Способы адресации

Подразумеваемый операнд

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

Подразумеваемый адрес

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

Непосредственная адресация

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

Прямая адресация

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

Относительная (базовая) адресация

 

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

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

Укороченная адресация

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

Адресация с регистром страницы, является примером сокращённой адресации. При этом, вся память разбивается на блоки-страницы. Размер страницы диктуется длиной адресного поля.

Регистровая адресация

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

Косвенная адресация

Адресный код команды в этом случае указывает адрес ячейки памяти, в которой находится адрес операнда или команды. Косвенная адресация широко используется в малых и микроЭВМ, имеющих короткое машинное слово, для преодоления ограничений короткого формата команды (совместно используются регистровая и косвенная адресация).

Адресация слов переменной длины

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

Стековая адресация

Стековая память, реализующая безадресное задание операндов, особенно широко используется в микропроцессорах и Мини-ЭВМ.

Автоинкрементная и автодекрементная адресации

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

Буферизация данных при обмене информацией между процессами

Обмен информацией с файлом может быть непосредственным или буферизованным.

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

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

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



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 159; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.199.50 (0.014 с.)