Блок управления файлом

Блок управления файлом (FCB) — структура файловой системы, в которой поддерживается состояние открытого файла. FCB управляется операционной системой, но он находится в памяти программы, которая использует файл, а не в памяти операционной системы. Это позволяет процессу иметь одновременно столько файлов, сколько он хочет, при условии, что он может выделить достаточно памяти для FCB на каждый файл.

FCB берет свое начало в CP/M и присутствует в большинстве версий DOS, но только в качестве меры обратной совместимости в MS-DOS версий 2.0 и более поздних. Полный FCB имеет длину 36 байт; в ранних версиях CP/M он составлял 33 байта. Этот фиксированный размер, который нельзя было увеличить без нарушения совместимости приложений, привел к тому, что FCB в конечном итоге перестал быть стандартным методом доступа к файлам

Значения некоторых полей в FCB различаются между CP/M и DOS, а также в зависимости от выполняемой операции. Следующие поля имеют одинаковые значения[1].

Смещение Байт

размер

Содержание
0x00 1 Номер диска — 0 по умолчанию, 1 для A:, 2 для B
0x01 8 Имя и расширение файла — вместе они образуют имя файла 8.3.
0x09 3
0x0C 20 Зависит от реализации — должен быть инициализирован нулем перед открытием FCB.
0x20 1 Номер записи в текущем разделе файла — используется при последовательном доступе.
0x21 3 Номер записи, используемый при случайном доступе.

Поле длиной 20 байт, начинающееся со смещения 0x0C, содержало поля, которые (среди прочего) предоставляли дополнительную информацию о файле[1].

Смещение Байт

размер

Содержание
0x0E 2 Длина записи файла в байтах.
0x10 4 Общий размер файла в байтах.
0x14 2 Дата последней модификации содержимого файла.
0x16 2 Время последней модификации.

Дальнейшие значения использовались в новых версиях DOS до тех пор, пока новая информация не переставала помещаться в эти 20 байт. Некоторые предшествующие байты «отрицательного смещения» были вытеснены из зарезервированных мест в нулевой странице CP/M и префиксе программного сегмента DOS для хранения атрибутов файлов[1].

Применение

В CP/M, 86-DOS и PC DOS 1.x/MS-DOS 1.xx FCB был единственным методом доступа к файлам. В DOS несколько подфункций INT 21h обеспечивали интерфейс для работы с файлами с помощью FCB[2]. Когда в MS-DOS 2 началась подготовка к поддержке нескольких процессов или пользователей, использованию других файловых систем, кроме FAT, или к обмену файлами по сети в будущем, считалось, что FCB слишком малы для обработки дополнительных данных, необходимых для таких функций, и поэтому FCB считались неадекватными для различных будущих путей расширения. Кроме того, они не предоставляли поля для указания подкаталогов. Выдача данных, связанных с файловой системой, в пользовательское пространство также рассматривалась как риск для безопасности. Таким образом, на смену FCB пришли файловые дескрипторы, используемые в Unix и её производных. Файловые дескрипторы — это просто последовательные целые числа, связанные с определёнными открытыми файлами.

Если программа использует более новый API файловых дескрипторов для открытия файла, операционная система будет управлять своей внутренней структурой данных, связанной с этим файлом, в своей собственной области памяти. Преимущество этого способа заключается в том, что в последующих версиях операционной системы эти структуры могут увеличиваться в размерах, не нарушая совместимости с прикладными программами; недостаток — в том, что, учитывая довольно упрощенное управление памятью в DOS, место для такого количества этих структур, которое может использовать самая «жадная до файлов» программа, должно быть зарезервировано во время загрузки и не может быть использовано для каких-либо других целей во время работы компьютера. Такое резервирование памяти осуществляется с помощью директивы FILES= в файле CONFIG.SYS. Эта проблема не возникает при использовании FCB в DOS 1 или CP/M, так как операционная система хранит все, что ей нужно знать об открытом файле, внутри FCB и, таким образом, не нуждается в использовании памяти для файлов в пространстве памяти операционной системы. При использовании FCB в MS-DOS 3 и более поздних версиях формат FCB зависит от того, загружен ли SHARE.EXE и ссылается ли FCB на локальный или удаленный файл, а также часто ссылается на запись SFT. Из-за этого количество FCB, которые могут быть открыты одновременно в DOS 3 и выше, также ограничено, обычно до 4; с помощью директивы FCBS= в файле CONFIG.SYS оно может быть увеличено сверх этого числа, если это необходимо. В DR-DOS и FILES, и FCBS берутся из одного и того же внутреннего пула доступных структур дескрипторов и назначаются динамически по мере необходимости[3].

FCB поддерживались во всех версиях MS-DOS и Windows до появления файловой системы FAT32. Windows 95, Windows 98 и Windows Me не поддерживают использование FCB на дисках FAT32 из-за их 32-битных кластерных номеров, за исключением чтения метки тома. Это привело к тому, что некоторые старые DOS-приложения, включая WordStar, не работают под этими версиями Windows.

Интерфейс FCB также не работает должным образом в Windows NT, 2000 и т. д. — WordStar не функционирует должным образом в этих операционных системах. Эмуляторы DOS DOSEMU и DOSBox реализуют интерфейс FCB должным образом, поэтому они позволяют запускать старые DOS-программы, которым нужен FCB, на современных операционных системах.

Область передачи данных на диск

Сопутствующей структурой данных, используемой вместе с FCB, была Disk Transfer Area (DTA). Так назывался буфер, в который считывалось/записывалось содержимое файла (записи). Функции доступа к файлам в DOS, использующие FCB, предполагали фиксированное местоположение DTA, изначально указывающее на часть PSP это местоположение можно было изменить, вызвав функцию DOS, при этом последующие обращения к файлам неявно использовали новое местоположение.

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

Префикс сегмента программы и инициализация программы

Каждый исполняемый файл DOS, запускаемый из оболочки (COMMAND.COM), снабжался предварительно заполненной структурой данных длиной 256 байт, называемой префиксом сегмента программы (PSP). Соответствующие поля в этой структуре включают

Смещение Байт

размер

Содержание
0x02 2 Доступная память для программы в 16-байтовых чанках.
0x2C 2 Адрес сегмента, содержащего переменные окружения программы.
0x5C 16 Подготовил FCB для первого аргумента командной строки (не открыт).
0x6C 20 Подготовил FCB для второго аргумента командной строки (не открыт).
0x80 1 Длина командной строки.
0x81 127 Содержание командной строки.

Эта структура данных находилась в начале сегмента данных, адрес которого DOS указывала при старте программы в сегментных регистрах DS и ES. Помимо предоставления командной строки программы дословно по адресу 0x81, DOS также попыталась построить два FCB, соответствующих первым двум словам в командной строке, с целью сэкономить работу программиста в распространенном случае, когда эти слова были именами файлов, с которыми нужно было работать. Поскольку эти FCB оставались не открываемыми, никаких проблем не возникло бы, даже если бы эти слова командной строки не относились к файлам.

Начальный адрес DTA был установлен так, чтобы перекрывать область в PSP (по адресу 0x80), где хранились аргументы командной строки, так что программа должна была анализировать эту область на предмет аргументов командной строки перед вызовом функций DOS, использующих DTA (например, чтение записи файла), если только программа не позаботилась о том, чтобы изменить адрес DTA на какую-то другую область памяти (или вообще не использовать функции DTA/FCB, которые вскоре были упразднены в пользу файловых дескрипторов)

Примечания

Ссылки

  • FCB. stanislavs.org. Дата обращения: 15 июня 2024.
  • NWDOSTIP. www.antonis.de. Дата обращения: 15 июня 2024.
  • CPM Operating System Internals (англ.). obsolescence. Дата обращения: 15 июня 2024.
  • lorihollasch Структура FCB - Windows drivers (рус.). learn.microsoft.com (14 июня 2023). Дата обращения: 15 июня 2024.

Read other articles:

Guatemalan football club This article is about the Guatemalan football club. For the Canadian soccer club, see Aurora FC (Canada). Football clubAuroraFull nameAurora Fútbol ClubNickname(s)Los Militares (The Military)Founded1945; 78 years agoGroundEstadio Cementos ProgresoCapacity14,022ChairmanArmy of GuatemalaManagerGabriel CastilloLeaguePrimera DivisiónApertura 2023Group B 5th (Quarterfinals) Home colours Away colours Aurora Fútbol Club is a Guatemalan professional football club. They are...

 

Fallen AstronautPatung Astronaut yang Gugur dan sebuah plakat nama di permukaan BulanSenimanPaul Van HoeydonckTahun1971 (1971)MediumAluminiumUkuran8.9 cm (3.5[1] in)LokasiBulan, Hadley RilleKoordinat26°07′56″N 3°38′02″E / 26.13222°N 3.63386°E / 26.13222; 3.63386Koordinat: 26°07′56″N 3°38′02″E / 26.13222°N 3.63386°E / 26.13222; 3.63386 Fallen Astronaut (Astronaut yang Gugur) adalah sebuah patung ...

 

Feng Congde 封從德Lahir1966Sichuan, TiongkokAlmamaterSorbonne Universitas PekingDikenal atasUnjuk rasa Lapangan Tiananmen 1989Suami/istriChai Ling ​ ​(m. 1988; bercerai 1990)​ Dalam nama Tionghoa ini, nama keluarganya adalah Feng. Feng Congde (Hanzi sederhana: 封从德; Hanzi tradisional: 封從德; Pinyin: Fēng Cóngdé, lahir 5 Maret 1966 di Szechuan)[1] adalah seorang pembelot Tiongkok dan aktivis Restorasi Republik ...

Toro Rosso STR3 Descrizione generale Costruttore  Toro Rosso Categoria Formula 1 Squadra Scuderia Toro Rosso Progettata da Adrian NeweyGeoff WillisRob MarshallPeter Prodromou Sostituisce Toro Rosso STR2B Sostituita da Toro Rosso STR4 Descrizione tecnica Meccanica Telaio Monoscocca con struttura in materiale composito Motore Ferrari 056 V8 di 90° 2398 cc Trasmissione Cambio longitudinale, semiautomatico 7 rapporti Altro Carburante Shell Pneumatici Bridgestone Avversarie Vetture di Formu...

 

Measure of relative information in probability theory Information theory Entropy Differential entropy Conditional entropy Joint entropy Mutual information Directed information Conditional mutual information Relative entropy Entropy rate Limiting density of discrete points Asymptotic equipartition property Rate–distortion theory Shannon's source coding theorem Channel capacity Noisy-channel coding theorem Shannon–Hartley theorem vte Venn diagram showing additive and subtractive relationshi...

 

Review of the topic Ron Paul for President 1988CampaignU.S. presidential election, 1988CandidateRon Paul U.S. Representative from Texas(1976–1977)(1979–1985)(1997-2013)AffiliationLibertarian PartyKey peopleAndre Marrou(running mate) This article is part of a series aboutRon Paul Political positions Electoral history Campaign for Liberty F.R.E.E Early life and career U.S. Representative from Texas Early congressional career (1976–1985) Later congressional career (1997–2013) Presid...

American rapper and singer-songwriter (1998–2018) XXXTentacionXXXTentacion in 2016BornJahseh Dwayne Ricardo Onfroy(1998-01-23)January 23, 1998Plantation, Florida, U.S.DiedJune 18, 2018(2018-06-18) (aged 20)Deerfield Beach, Florida, U.S.Cause of deathMurder (multiple gunshot wounds to the neck)Resting placeGardens of Boca Raton Memorial ParkBoca Raton, Florida, U.S.[1]Other namesXXXXTriple XJahYoung Dagger Dick[2]OccupationsRappersingersongwriterAgentSolomon So...

 

827–902 Aghlabid campaign against the Byzantines Muslim conquest of SicilyPart of the Muslim conquests and the Arab–Byzantine warsTopographic map of SicilyDateJune 827 – August 902[1]LocationSicilyResult Aghlabid victoryTerritorialchanges Aghlabid conquest of SicilyBelligerents Byzantine Empireoccasional assistance from:Venice Abbasid CaliphateAghlabid emirate of Ifriqiyaoccasional assistance from:Emirate of CordobaDuchy of NaplesCommanders and leaders BalataGiustiniano Particip...

 

County in Mississippi, United States County in MississippiForrest CountyCountyHattiesburg Municipal Court.Location within the U.S. state of MississippiMississippi's location within the U.S.Coordinates: 31°11′N 89°16′W / 31.19°N 89.26°W / 31.19; -89.26Country United StatesState MississippiFounded1908[1]Named forNathan B. ForrestSeatHattiesburgLargest cityHattiesburgArea • Total470 sq mi (1,200 km2) • Land4...

Mexican writer and journalist Juan VilloroJuan Villoro in Mexico City, January 2009BornJuan Antonio Villoro Ruiz (1956-09-24) 24 September 1956 (age 67)Mexico City, MexicoAlma materUniversidad Autónoma MetropolitanaOccupation(s)Writer and journalist Juan Antonio Villoro Ruiz (born 24 September 1956, in Mexico City) is a Mexican writer and journalist and the son of philosopher Luis Villoro. He has been well known among intellectual circles in Mexico, Latin America and Spain for year...

 

池州府明朝、清朝的府1361年-1912年池州府在安徽省的位置(1820年)首府贵池县(今池州市贵池区城区)歷史 • 成立 1361年• 废除 1912年 貨幣大明宝钞、永乐通宝、康熙通宝等 前身 继承 池州路 芜湖道 今属于 中国安徽省 池州市 铜陵市(除枞阳县) 池州府,元朝至正二十一年(1361年),朱元璋改九华府置,治所在贵池县(今安徽省池州市贵池区)。辖境相...

 

蘇祿省省 旗幟圖章在菲律賓的位置坐标:6°N 121°E / 6°N 121°E / 6; 121國家菲律宾政域民答那峨穆斯林自治區建立於1917年3月10日首府和樂政府 • 省長Abdusakur Tan • 總督Abdusakur Tan II (自由黨)面积 • 总计1,600.4 平方公里(617.9 平方英里)面积排名全國第15小區域 • 高度都市化城市0 • 組合城市0 • 自治市19...

Chronologies Données clés 1240 1241 1242 1243 12441245 1246 1247 1248 1249Décennies :1210 1220 1230  1240  1250 1260 1270Siècles :XIe XIIe  XIIIe  XIVe XVeMillénaires :-Ier Ier  IIe  IIIe Calendriers Romain Chinois Grégorien Julien Hébraïque Hindou Hégirien Persan Républicain modifier Les années 1240 couvrent la période de 1240 à 1249. Évènements Septième croisade : prise de Damiette en 1249 Vers 1240 : création de l'Emp...

 

S.K. Guria LanchkhutiCalcio Segni distintiviUniformi di gara Casa Trasferta Colori sociali Giallo, blu Dati societariCittàLanchkhuti Nazione Georgia ConfederazioneUEFA Federazione GFF CampionatoErovnuli Liga 2 Fondazione1952 Presidente Kakhaber Ebralidze Allenatore Teimuraz Makharadze StadioStadio Evgrapi Shevardnadze(22 000 posti) PalmarèsTrofei nazionali1 Coppa di Georgia Dati aggiornati al 1º marzo 2019Si invita a seguire il modello di voce Il Sapekhburto K'lubi Guria Lanc...

 

Tate Modern UbicazioneStato Regno Unito LocalitàLondra IndirizzoBankside Coordinate51°30′28″N 0°05′58″W51°30′28″N, 0°05′58″W CaratteristicheTipopittura, scultura Intitolato aHenry Tate Istituzione1992 FondatoriHenry Tate Apertura11 maggio 2000 DirettoreFrances Morris, Lars Nittve, Vicent Todolí Cervera e Chris Dercon Visitatori1 156 037 (2021) Sito web Modifica dati su Wikidata · Manuale La Tate Modern è un museo che fa parte del complesso Tate del ...

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (ديسمبر 2018) بطولة العالم للدراجات على المضمار 1937 التفاصيل التاريخ 1937 الموقع  الدنمارك (كوبنهاغن) نوع السباق سباق ا...

 

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (ديسمبر 2018) الدوري البلجيكي الدرجة الأولى الموسم 1951–52 البلد بلجيكا  المنظم الاتحاد الملكي البلجيكي لكرة القدم ...

 

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (فبراير 2016) زراعة القمح في بحيرة الحولة شمال إسرائيل حقول البرتقال الجليل جزء من سلسلة مقالات حولدولة إسرائيل الجغر�...

Roman Catholic religious order White Friars redirects here. For the White Canons, see Premonstratensians. For the White Monks, see Cistercians. See also: Discalced Carmelites Order of the Brothers of the Blessed Virgin Maryof Mount CarmelOrdo Fratrum Beatissimæ Virginis Mariæ de Monte Carmelo (Latin)Coat of arms of the orderAbbreviationOCarmFormationLate 12th centuryFoundersEarly hermits of Mount CarmelFounded atMount CarmelTypeMendicant order of pontifical rightLegal statusInstitute o...

 

A questa voce o sezione va aggiunto il template sinottico {{Militare}} Puoi aggiungere e riempire il template secondo le istruzioni e poi rimuovere questo avviso. Se non sei in grado di riempirlo in buona parte, non fare nulla; non inserire template vuoti. Emmanuel Van der Linden Emmanuel Van der Linden barone di Hooghvorst (Bruxelles, 7 giugno 1781 – Bruxelles, 15 aprile 1866) è stato un generale e politico belga. Tendenzialmente cattolico, ha ricoperto un ruolo impor...