Все о моделировании в Компас-3D LT
   Главная Статьи Файлы Форум Ссылки Категории новостей
July 27 2024 06:30:06   
Навигация
Главная
Статьи
Файлы
FAQ
Форум
Ссылки
Категории новостей
Обратная связь
Фото галерея
Поиск
Разное
Карта Сайта
Популярные статьи
Что необходимо ... 65535
4.12.1 Професси... 33480
Учимся удалять!... 32096
Примеры, синони... 23451
Просмотр готовы... 22724
Декартовы коорд... 22284
FAST (методика ... 21491
содержание - се... 20755
Просмотр готовы... 19416
Работа с инстру... 14874
Сейчас на сайте
Гостей: 6
На сайте нет зарегистрированных пользователей

Пользователей: 9,955
новичок: Logyattella
Друзья сайта
Ramblers Top100
Рейтинг@Mail.ru

Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ по Delphi
Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog
5.3 WRIТЕ
Синтаксис вызова системной функции write (писать):
number = write(fd, buffer, count);
где переменные fd, buffer, count и number имеют тот же смысл, что и для вызова системной функции read. Алгоритм записи в обычный файл похож на алгоритм чтения из обычного файла. Однако, если в файле отсутствует блок, соответствующий смещению в байтах до места, куда должна производиться запись, ядро выделяет блок, используя алгоритм alloc, и присваивает ему номер в соответствии с точным указанием места в таблице содержимого индекса. Если смещение в байтах совпадает со смещением для блока косвенной адресации, ядру, возможно, придется выделить несколько блоков для использования их в качестве блоков косвенной адресации и информационных блоков. Индекс блокируется на все время выполнения функции write, так как ядро может изменить индекс, выделяя новые блоки; разрешение другим процессам обращаться к файлу может разрушить индекс, если несколько процессов выделяют блоки одновременно, используя одни и те же значения смещений. Когда запись завершается, ядро корректирует размер файла в индексе, если файл увеличился в размере.
Предположим, к примеру, что процесс записывает в файл байт с номером 10240, наибольшим номером среди уже записанных в файле. Обратившись к байту в файле по алгоритму bmap, ядро обнаружит, что в файле отсутствует не только соответствующий этому байту блок, но также и нужный блок косвенной адресации. Ядро назначает дисковый блок в качестве блока косвенной адресации и записывает номер блока в копии индекса, хранящейся в памяти. Затем оно выделяет дисковый блок под данные и записывает его номер в первую позицию вновь созданного блока косвенной адресации.
Так же, как в алгоритме read, ядро входит в цикл, записывая на диск по одному блоку на каждой итерации. При этом на каждой итерации ядро определяет, будет ли производиться запись целого блока или только его части. Если записывается только часть блока, ядро в первую очередь считывает блок с диска для того, чтобы не затереть те части, которые остались без изменений, а если записывается целый блок, ядру не нужно читать весь блок, так как в любом случае оно затрет предыдущее содержимое блока. Запись осуществляется поблочно, однако ядро использует отложенную запись (раздел 3.4) данных на диск, запоминая их в кеше на случай, если они понадобятся вскоре другому процессу для чтения или записи, а также для того, чтобы избежать лишних обращений к диску. Отложенная запись, вероятно, наиболее эффективна для каналов, так как другой процесс читает канал и удаляет из него данные (раздел 5.12). Но даже для обычных файлов отложенная запись эффективна, если файл создается временно и вскоре будет прочитан. Например, многие программы, такие как редакторы и электронная почта, создают временные файлы в каталоге «/tmp» и быстро удаляют их. Использование отложенной записи может сократить количество обращений к диску для записи во временные файлы.
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Случайные статьи
Среда передачи данных
Особенности челов...
Точность и аккурат...
Глобальная система...
5.17 АБСТРАКТНЫЕ О...
Глава 2. Pocket N...
Конфигурация ядра
2.4. Цифровые кана...
Карты в руки!
Методы «точно в ср...
Характерис...
9.2.1.2 Функция ex...
8.3.2 Внутренние с...
Установление разли...
2.4.7.4 Построение...
Глава 5. Основы GPS
6.2 ФОРМАТ ПАМЯТИ ...
Интернет-система, ...
4.9 ВЫВОДЫ
Глава 4. ROADINFORMER
4.12.3.4 Структурн...
10.4 ПОТОКИ
Рекламная эйфория
2.2.2. Беспроводн...
Компьютерные файлы
Синтаксис 2
9.4. Интегрирован...
Группа 2 — програм...
Содержание - сетев...
Необходимые предпо...
Применение атрибута
Глава 12. BOTTOM L...
8. При выделении п...
2.1.1. Уровень 1 ...
9. Продукции типа...
Глава 16. Raymarin...
8.1.2 Параметры ди...
4.5 Управление пот...
Точность GPS
3.2. Уровни зрелости
Мини-чат
Вам необходимо залогиниться.

Нет присланных сообщений.
Copyright © 2009