СПОСОБ И УСТРОЙСТВО ХРАНЕНИЯ, ЧТЕНИЯ И ЗАПИСИ СОСТАВНОГО ДОКУМЕНТА

1. Способ хранения составного документа, включающий этапы, на которых:
предварительно выделяют для внутреннего потока управления составного документа начальную область памяти, состоящую из непрерывных секторов или кластеров секторов;
сохраняют внутренний поток управления в начальной области памяти.
2. Способ по п.1, дополнительно включающий этап, на котором:
предварительно выделяют вторую область памяти для хранения внутреннего потока управления, если его размер превышает размер начальной области памяти, причем вторая область памяти также состоит из непрерывных секторов или кластеров секторов.
3. Способ по п.1, в котором внутренним потоком управления является один или более из следующих компонентов: главная таблица выделения секторов, таблица выделения секторов, поток контейнера коротких потоков, таблица выделения коротких секторов и поток каталога.
4. Способ по п.3, в котором, если внутренний поток управления состоит из более, чем одного из следующих компонентов: главная таблица выделения секторов, таблица выделения секторов, поток контейнера коротких потоков, таблица выделения коротких секторов и поток каталога, то вместо предварительного выделения одной начальной области памяти для одного внутреннего потока управления выполняют предварительное выделение разных начальных областей памяти для внутренних потоков управления разных типов.
5. Способ по п.2, дополнительно включающий этап, на котором:
если размер внутреннего потока управления превышает размер второй области памяти, предварительно выделяют новую область памяти для хранения такого потока согласно стратегии предварительного выделения пространства памяти,
причем в соответствии со стратегией предварительного выделения пространства памяти предусмотрено, что, если уже выделенной области памяти недостаточно для хранения внутреннего потока управления, всегда предварительно выделяют новую область памяти, и каждая из предварительно выделенных областей памяти состоит из непрерывных секторов или кластеров секторов.
6. Способ по п.5, в котором под кластером секторов понимают непрерывную область размером 8 КБ; причем в стратегии предварительного выделения пространства памяти размер предварительно выделяемой начальной области памяти составляет 8 КБ, а размеры предварительно выделяемых новых областей памяти составляют по порядку 80 КБ, 800 КБ и 1 МБ; причем если размер предварительно выделенной области памяти составляет 1 МБ, то размер каждой следующей выделяемой области памяти также составляет 1 МБ.
7. Способ по п.1, дополнительно содержащий этапы, на которых:
резервируют пространство памяти для потока данных открытого в текущий момент составного документа;
сохраняют поток данных составного документа в зарезервированном для него пространстве памяти;
освобождают неиспользуемое пространство зарезервированной для потока данных памяти при закрытии составного документа.
8. Способ по п.7, дополнительно содержащий этапы, на которых:
регистрируют состояние зарезервированного пространства памяти для потока данных открытого в текущий момент составного документа;
причем при резервировании пространства памяти, для потока данных открытого в текущий момент составного документа выполняют следующие действия: при необходимости запросить зарезервированное пространство памяти для потока данных составного документа запрашивают неиспользуемые сектора или кластеры секторов в таблице выделения секторов; проверяют, не зарезервированы ли неиспользуемые сектора или кластеры секторов в качестве пространств памяти для потоков данных; неиспользуемые сектора или кластеры секторов, не зарезервированные в качестве пространств памяти для потоков данных, выделяют в качестве зарезервированного пространства памяти для потока данных составного документа;
причем при освобождении неиспользуемого пространства зарезервированной для потока данных памяти при закрытии составного документа удаляют информацию о состоянии пространства памяти, зарезервированного для потока данных этого документа.
9. Способ чтения и записи составного документа, для хранения внутреннего потока управления которого, используют способ по п.1, включающий этапы, на которых:
оценивают при чтении сектора или кластера секторов внутреннего потока управления, хранится ли в одном или нескольких секторах или кластерах секторов, соседних с этим сектором или кластером секторов, внутренний поток управления того же типа, что и в данном секторе или кластере секторов;
при положительном результате оценки единовременно считывают в память данные, хранящиеся в этом секторе или кластере секторов и одном или нескольких секторах или кластерах секторов, соседних с данным сектором или кластером секторов.
10. Способ по п.9, в котором составной документ использует зарезервированное для потока данных пространство памяти для хранения потока данных, причем указанный способ чтения и записи составного документа дополнительно содержит этапы, на которых:
определяют при чтении потока данных имеются ли в нем непрерывные блоки данных и при наличии в потоке таких блоков выполняют пакетное чтение потока данных с учетом максимальной длины непрерывных блоков;
определяют при выделении и освобождении списка, связанного с сектором, является ли соответствующая запись внутреннего потока управления непрерывной; если результат определения является положительный, то выполняют пакетную обработку непрерывной записи внутреннего потока управления.
11. Устройство хранения составного документа, содержащее:
первый модуль предварительного выделения памяти для потока управления, выполненный с возможностью предварительного выделения начальной области памяти для внутреннего потока управления составного документа, причем начальная область памяти состоит из непрерывных секторов или кластеров секторов;
второй модуль предварительного выделения памяти для потока управления, выполненный с возможностью хранения внутреннего потока управления в начальной области памяти.
12. Устройство по п.11, в котором второй модуль предварительного выделения памяти для потока управления выполнен также с возможностью предварительного выделения второй области памяти для хранения внутреннего потока управления, когда его размер превышает размер начальной области памяти, причем вторая область памяти также состоит из непрерывных секторов или кластеров секторов.
13. Устройство по п.11, в котором внутренним потоком управления является один или более из следующих компонентов: главная таблица выделения секторов, таблица выделения секторов, поток контейнера коротких потоков, таблица выделения коротких секторов и поток каталога;
причем, если внутренний поток управления состоит из более, чем одного из следующих компонентов: главная таблица выделения секторов, таблица выделения секторов, поток контейнера коротких потоков, таблица выделения коротких секторов и поток каталога, первый модуль предварительного выделения памяти для потока управления служит для предварительного выделения разных начальных областей памяти для внутренних потоков управления разных типов.
14. Устройство по п.12, дополнительно содержащее модуль стратегии предварительного выделения памяти для потока управления, выполненный с возможностью предварительного выделения новой области памяти для внутреннего потока управления согласно стратегии предварительного выделения пространства памяти, когда размер внутреннего потока управления превышает размер второй области памяти;
причем в соответствии со стратегией предварительного выделения пространства памяти предусмотрено, что, если выделенной области памяти недостаточно для хранения внутреннего потока управления, всегда предварительно выделяют новую область памяти, и все предварительно выделенные области памяти состоят из непрерывных секторов или кластеров секторов.
15. Устройство по п.11, дополнительно содержащее:
модуль резервирования памяти для потока данных, выполненный с возможностью резервирования пространства памяти для потока данных открытого в текущий момент составного документа;
модуль хранения потока данных, выполненный с возможностью хранения потока данных составного документа в зарезервированном для этого потока пространстве памяти;
модуль освобождения зарезервированной памяти для потока данных, выполненный с возможностью освобождения неиспользуемого пространства зарезервированной для потока данных памяти при закрытии составного документа.
16. Устройство по п.15, дополнительно содержащее:
модуль регистрации состояния, выполненный с возможностью регистрации состояния зарезервированного пространства памяти для потока данных открытого в текущий момент составного документа;
причем модуль резервирования памяти для потока данных выполнен также с возможностью запроса неиспользуемых секторов или кластеров секторов в таблице выделения секторов, проверки, не зарезервированы ли неиспользуемые сектора или кластеры секторов в качестве пространств памяти для потоков данных, и выделения неиспользуемых секторов или кластеров секторов, не зарезервированных в качестве пространств памяти для потоков данных, в качестве зарезервированного пространства памяти для потока данных составного документа, когда необходимо запросить такое пространство;
причем модуль освобождения зарезервированной памяти для потока данных также выполнен с возможностью удаления информации о состоянии зарезервированных пространств памяти потоков данных составного документа при закрытии составного документа.
17. Устройство чтения и записи составного документа, для хранения внутреннего потока управления которого используют устройство по п.11, содержащее:
модуль оценки сектора, выполненный с возможностью определения, при чтении сектора или кластера секторов внутреннего потока управления, хранится ли в одном или более секторах или кластерах секторов, соседних с этим сектором или кластером секторов, внутренний поток управления того же типа, что и в данном секторе или кластере секторов;
модуль чтения потока управления, выполненный с возможностью при положительном результате оценки единовременного считывания в память данных, хранящихся в этом секторе или кластере секторов и одном или более секторах или кластерах секторов, соседних с данным сектором или кластером секторов.
18. Устройство по п.17, в котором внутренним потоком управления является один из следующих компонентов: главная таблица выделения секторов, таблица выделения секторов, поток контейнера коротких потоков, таблица выделения коротких секторов и поток каталога;
причем для хранения потока данных составного документа используется пространство памяти, зарезервированное для этого потока; при этом указанное устройство чтения и записи составного документа дополнительно содержит:
модуль чтения потока данных, выполненный с возможностью выявления при чтении потока данных наличия в нем непрерывных блоков данных и выполнения пакетного чтения потока с учетом максимальной длины непрерывных блоков, при наличии в потоке таких блоков;
модуль оценки записи потока управления, выполненный с возможностью оценки, при выделении и освобождении списков, связанных с сектором, является ли соответствующая запись внутреннего потока управления непрерывной;
модуль пакетной обработки, выполненный с возможностью пакетной обработки непрерывной записи внутреннего потока управления при положительном результате указанной оценки.