Как в linux создать общие сетевые диски. Доступ к общей папке Windows из Linux. Гостевой полный доступ к сетевой папке на Линукс
Каждое периферийное устройство имеет свою специфику характера обмена данными, определяемую природой его внешней (по отношению к компьютеру) стороны. По характеру обмена устройства можно разделить на три основных типа.
блочные устройства, например, дисковые накопители. Обмен с ними возможен только блоками фиксированного размера - кластерами. При обмене с физическим диском нельзя останавливаться посреди передачи блока.
поточные устройства, примерами которых являются принтеры и сканеры Принтеру посылают поток данных, которые он по мере своих электромеханических способностей выводит в виде изображения на бумагу. Поток можно приостановить в любой момент, а затем продолжить передачу безо всяких побочных эффектов.
регистро-ориентированные устройства, которые, как правило, не являются источниками или приемниками большого объема данных. Программам обычно требуется знать текущее состояние данных устройств или (и) формировать текущие управляющие воздействия. Регистро-ориентированными, как правило, являются различные устройства сопряжения с технологическим оборудованием, компьютеризированные измерительные комплексы, джойстик (программа в определенные моменты опрашивает текущее состояние кнопок и координатных датчиков) и т. п.
Во многих устройствах присутствует смесь этих основных типов, так, даже принтер имеет и регистро-ориентированную часть - кроме приема потока oн передает сигналы текущего состояния (ошибка, конец бумаги).
Весьма важной является задача буферизации данных . Пропускная способность внутренних компонентов современной вычислительной системы - процессора и оперативной памяти - чрезвычайно высока в обоих направлениях (и на прием, и на передачу), а пропускная способность подавляющего большинства внешних устройств на несколько порядков ниже и варьируется в весьма широких пределах. Данные, передаваемые из оперативной памяти на внешнее устройство, поступают с очень высокой скоростью, как правило, в виде пакета. Эти данные целесообразно сохранить во внутреннем буфере контроллера интерфейса и в дальнейшем соответствующими порциями выдать во внешнее устройство. При передаче в обратном направлении данные от внешнего устройства опять-таки целесообразно накопить в буфере контроллера интерфейса, чтобы не «дергать» оперативную память "по мелочам". Когда накоплен значительный объем данных, они все одним пакетом могут быть быстро переданы в оперативную память. Таким образом, для обеспечения минимального времени обладания интерфейсом (а значит и ресурсами оперативной памяти) контроллер соответствующего интерфейса должен работать с использованием буферов.
Буфер представляет собой набор внутренних ячеек оперативной памяти с определенными правилами доступа как со стороны контроллера ПУ, так и со стороны «центра». Размер буфера и дисциплина его обслуживание выбираются, исходя из технических (скорость и объем информации, допустимые задержки) и экономических (цена) соображений.
Для блочных устройств обычно применяют буфер, минимальный размер которого равен размеру блока.
Контроллеры локальных сетей тяготеют к блочным устройствам - они передают данные целыми пакетами, которые должны приниматься и посылаться с определенной скоростью (100М бит/с, 1000М бит/с, 10Г бит/с - для первых трех поколений Ethernet). Для них объем, и организация буфера зависят от скорости среды передачи и производительности интерфейса, к которому они подключены.
Для потоковых устройств часто применяют буфер с дисциплиной обслуживания FIFO (First In - First Out, первым вошел - первым вышел). Размер такого буфера, как правило, невелик (например, 16, 64 байт). Буфер ставится между «центром» и устройством, с одной стороны он наполняется, с другой - опорожняется. Опорожняющая сторона может извлекать данные из буфера, лишь, когда наполняющая сторона их туда положит. Попытка извлечения данных из пустого буфера является ошибкой опустошения (underflow), попытка помещения в заполненный буфер - ошибкой переполнения (overflow). Логика буфера следит за степенью наполнения буфера и сообщает «центру» о критических ситуациях. Когда «центр» (программа, исполняемая процессором) выводит данные через FIFO, логика следит за снижением наполнения буфера ниже порога опустошения и в случае такового сигнализирует (обычно прерыванием) о необходимости вывода следующей порции данных. Логика также препятствует переполнению, отвергая попытки записи лишних данных и немедленно сообщая об ошибке (обычно через соответствующий программно-читаемый бит состояния). При вводе данных через буфер FIFO его логика следит за наличием свободного места в буфере и при превышении порога заполнения также сигнализирует прерыванием. Аналогично, она не позволяет считать данные из пустого буфера и сообщает об этом соответствующим битом. Также логика буфера должна позволять его очищать по инициативе процессора, сообщать о количестве (или хотя бы о наличии) данных в буфере по запросу процессора. Управляемость порогов позволяет программе в зависимости от внешнего темпа обмена данными, возможностей и текущей загруженности компьютера выбрать оптимальный режим обмена, позволяющий и не «суетиться по мелочам», и не допускать переполненный/опустошений буфера. У двунаправленных устройств, как правило, имеется пара FIFO-буферов (для полного дуплекса), для симплексных устройств достаточно одного.
Буферы современных устройств внешней памяти имеют более сложную организацию, обеспечивающую кэширование данных; однако и они используют вышеописанные принципы организации. Однопортовые буферы большого объема, как уже говорилось, могут вносить заметную задержку. Для потоковых применений (например, для воспроизведения мультимедийных файлов) эта задержка обычно не очень существенна и на производительность не влияет. Однако для приложений «петлеобразного» характера, когда буфер оказывается в цепочке запрос-ответ, его задержка может приводить к снижению производительности. Так, например, передача данных по сети обычно представляет собой последовательность кадров данных, на каждый из которых передающая сторона ожидает кадр подтверждения. Если каждый кадр будет «просиживать» в буфере, естественно, производительность снизится. От этой беды спасает метод «скользящего окна», при котором передающая сторона допускает некоторое отставание приема подтверждений.
3.8. Буферизация
Ввод и вывод для дисков в операционной системе MS-DOS буферизован. Это означает, что данные не сразу записываются на диск, а накапливаются в специальном массиве (буфере). По мере заполнения буфер сбрасывается на диск. При чтении информация заполняет весь входной буфер, независимо от количества байт, которые программа читает из файла. В дальнейшем если программе потребуются данные, которые уже были считаны с диска и записаны во входной буфер, она получит их непосредственно из этого буфера без обращения к диску.
Буферизация сокращает затраты времени на ввод и вывод, особенно в тех случаях, когда программе периодически требуется одни и те же участки файлов. При копировании файлов буферизация сокращает время на перемещение головок от исходного файла к выходному и обратно, причем эффект получается тем больше, чем больше размер используемого буфера.
Операционная система MS-DOS может создать несколько буферов. Их количество зависит от оператора BUFFERS из файла config.sys . Этот оператор позволяет определить от 2 до 99 буферов. Если файл config.sys не содержит оператора BUFFERS, по умолчанию используются два буфера.
При увеличении количества буферов увеличивается вероятность того, что нужная часть файла уже считана и находится в оперативной памяти. Однако необходимо учитывать, что для хранения буферов расходуется основная оперативная память. Кроме того, с ростом количества буферов увеличивается время, необходимое операционной системе на анализ состояния буферов, что может привести к снижению производительности. Значительное снижение скорости работы наступает при количестве буферов порядка 50.
Еще один способ организовать буферизацию данных для жестких дисков и устройств CD-ROM - использовать драйвер smartdrv.exe . Этот драйвер позволяет создать для диска кеш-память в расширенной памяти.
Кеш-память особенно эффективна при работе с базами данных, когда вам периодически требуется одна и та же информация. Если создать кеш-память достаточно большого размера, можно значительно сократить количество обращений к диску.
Буферизация данных имеет и свои недостатки. Если в результате аварии в питающей сети или по какой-то другой причине компьютер выключился, то информация, хранящаяся в буферах и не записанная на диск, будет потеряна.
При закрытии файла все буферы, связанные с ним,
сбрасываются на диск. Если вам надо сбросить
буферы, не закрывая файл, это можно сделать с
помощью функции 68h прерывания INT 21h:
При вызове этой функции дополнительно обновляется дескриптор файла в каталоге, а именно поля времени, даты и размера файла.
Наименование параметра | Значение |
Тема статьи: | Буферизация |
Рубрика (тематическая категория) | Компьютеры |
Особенности передачи информации с помощью линий связи
Однонаправленные и двунаправленные связи между процессами
При прямой адресации только одно данное средство связи должна быть задействовано для обмена данными между двумя процессами, и только эти два процесса бывают ассоциированы с ним. При непрямой адресации может существовать более двух процессов, использующих один и тот же объект для данных, и более одного объекта должна быть использовано двумя процессами.
Выделяют два вида связи :
Однонаправленную связь;
Двунаправленную связь.
При однонаправленной связью каждый процесс, ассоциированный с ней, может использовать средство связи либо только для приема информации, либо только для ее передачи. При двунаправленной связи каждый процесс, участвующий в общении, может использовать связь и для приема, и для передачи данных. В коммуникационных системах принято называть однонаправленную связь симплексной , двунаправленную связь с поочередной передачей информации в разных направлениях – полудуплексной , а двунаправленную связь с возможностью одновременной передачи информации в разных направлениях – дуплексной . Прямая и непрямая адресация не имеют непосредственного отношения к направленности связи.
Передача информации между процессами посредством линий связи является достаточно безопасной по сравнению с использованием разделяемой памяти и достаточно информативной по сравнению с сигнальными средствами коммуникации. Вместе с тем, разделяемая память не должна быть использована для связи процессов, функционирующих на различных КС. Возможно, именно в связи с этим каналы связи получили наибольшее распространение среди других средств коммуникации процессов. С логической реализацией канальных средств коммуникации связаны буферизация, поток ввода/вывода и сообщения.
Линия связи сохраняет информацию, переданную одним процессом, до ее получения другим процессом в буфере. Выделим три варианта объёмов буфера канала связи :
1. Буфер нулевой емкости или отсутствует. Никакая информация не может сохраняться на линии связи. В этом случае процесс, посылающий информацию, должен ожидать, пока процесс, принимающий информацию, не соблаговолит ее получить, прежде чем заниматься своими дальнейшими делами.
2. Буфер ограниченной емкости. Размер буфера равен n
, то есть линия связи не может хранить до момента получения более чем n
единиц информации. В случае если в момент передачи данных в буфере хватает места͵ то передающий процесс не должен ничего ожидать. Информация просто копируется в буфер.
Размещено на реф.рф
В случае если же в момент передачи данных буфер заполнен или места не достаточно, то крайне важно задержать работу процесса отправителя до появления в буфере свободного пространства.
3. Буфер неограниченной емкости. Теоретически это возможно, но практически вряд ли реализуемо. Процесс, посылающий информацию, никогда не ждет окончания ее передачи и приема другим процессом.
При использовании канального средства связи с непрямой адресацией под емкостью буфера обычно принято понимать количество информации, ĸᴏᴛᴏᴩᴏᴇ должна быть помещено в промежуточный объект для хранения данных.
2) Поток ввода/вывода и сообщения
Существует две модели передачи данных по каналам связи :
Поток ввода-вывода;
Сообщения.
В модели сообщений процессы налагают на передаваемые данные некоторую структуру. Весь поток информации они разделяют на отдельные сообщения, вводя между данными границы сообщений. Вместе с тем, к передаваемой информации должна быть присоединены указания на то, кем конкретное сообщение было послано и для кого оно предназначено. Все сообщения могут иметь одинаковый фиксированный размер или бывают переменной длины. В КС используются разнообразные средства связи для передачи сообщений: очереди сообщений, sockets (сокеты) и т.д.
И потоковые линии связи, и каналы сообщений могут иметь или не иметь буфер.
Размещено на реф.рф
Емкость буфера для потоков данных измеряется ее в байтах, а емкость буфера для сообщений измеряется в сообщениях.
Буферизация - понятие и виды. Классификация и особенности категории "Буферизация" 2017, 2018.