Файл: Функции операционных систем персональных компьютеров.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 26.06.2023

Просмотров: 64

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Программа в формате EXE может иметь любой размер. В самом начале файла программы содержится заголовок (у COM-файла заголовка нет). Этот заголовок используется операционной системой в процессе загрузки программы в память для правильной установки сегментных регистров. Заголовок EXE-файла нужен только при загрузке; когда программа загружена и готова к работе, самого заголовка уже нет в памяти.

Заголовок EXE-файла состоит из форматированной зоны и таблицы расположения сегментов (Relocation Table).

Таблица расположения сегментов программы начинается сразу после форматированной области и состоит из четырехбайтовых значений в формате "смещение:сегмент".

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

Загрузка COM- и EXE-программ происходит по-разному, однако есть некоторые действия, которые операционная система выполняет в обоих случаях одинаково.

Определяется наименьший сегментный адрес свободного участка памяти для загрузки программы (обычно DOS загружает программу в младшие адреса памяти, если при редактировании не указана загрузка в старшие адреса).

Создаются два блока памяти (и, следовательно, два блока MCB, описанные ранее) - блок памяти для переменных среды и блок памяти для PSP и программы.

В блок памяти переменных среды помещается путь файла программы.

Заполняются поля префикса сегмента программы PSP в соответствии с характеристиками программы (количество памяти, доступное программе, адрес сегмента блока памяти, содержащего переменные среды и т.д.)

Устанавливается адрес области Disk Transfer Area (DTA) на вторую половину PSP (PSP:0080).

Анализируются параметры запуска программы на предмет наличия в первых двух параметрах идентификаторов дисковых устройств. По результатам анализа устанавливается содержимое регистра AX при входе в программу. Если первый или второй параметры не содержат правильного идентификатора дискового устройства, то соответственно в регистры AL и AH записывается значение FF.

А дальше действия системы по загрузке программ форматов COM и EXE будут различаться.

Для COM-программ, которые представляют собой двоичный образ односегментной программы, выполняется чтение файла программы с диска и запись его в память по адресу PSP:0100. Вообще говоря, программы типа COM могут состоять из нескольких сегментов, но в этом случае они должны сами управлять содержимым сегментных регистров, используя в качестве базового адреса адрес PSP.


После загрузки файла операционная система для COM-программ выполняет следующие действия:

- сегментные регистры CS, DS, ES, SS устанавливаются на начало PSP;

- регистр SP устанавливается на конец сегмента PSP;

- вся область памяти после PSP распределяется программе;

- в стек записывается слово 0000;

Указатель команд IP устанавливается на 100h (начало программы) с помощью команды JMP по адресу PSP:100.

Загрузка EXE-программ происходит значительно сложнее, так как связана с настройкой сегментных адресов:

Считывается во внутренний буфер DOS форматированная часть заголовка файла.

Определяется размер загрузочного модуля по формуле:

size=((file_size*512)-(hdr_size*16)-part_pag (1)

Определяется смещение начала загрузочного модуля в EXE-файле как hdr_size*16.

Вычисляется сегментный адрес для загрузки START_SEG, обычно используется значение PSP+10h.

Загрузочный модуль считывается в память по адресу START_SEG:0000.

Сканируются элементы таблицы перемещений, располагающейся в EXE-файле со смещением relt_off.

Для каждого элемента таблицы:

1. Считывается содержимое элемента таблицы как два двухбайтных слова (OFF,SEG).

2. Вычисляется сегментный адрес ссылки перемещения

REL_SEG = (START_SEG + SEG) (2)

3. Выбирается слово по адресу REL_SEG:OFF, к этому слову прибавляется значение START_SEG, затем сумма записывается обратно по тому же адресу.

Заказывается память для программы, исходя из значений min_mem и max_mem.

Инициализируются регистры, и программа запускается на выполнение.

При инициализации регистры ES и DS устанавливаются на PSP, регистр AX устанавливается так же, как и для COM-программ, в сегментный регистр стека SS записывается значение START_SEG + ss_reg, а в SP записывается sp_reg.

Для запуска программы в CS записывается START_SEG+cs_reg, а в IP - ip_reg. Такая запись невозможна напрямую, поэтому операционная система сначала записывает в свой стек значение для CS, затем значение для IP и после этого выполняет команду дальнего возврата RETF (команда возврата из дальней процедуры).

Программа может при необходимости запустить другую программу формата EXE или COM. Для ассемблерных программ существует функция 4Bh прерывания INT 21h, для программ, составленных на языке Си - разнообразные функции, входящие в состав стандартной библиотеки.

4 Обеспечение системы организации и хранения файлов


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

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

Рассматривая файл, изначально обратимся к имени файла. Файл – это программа или данные, имеющие имя и хранящиеся в долговременной памяти. Имя файла состоит из 2-х частей: имя самого файла и расширением, определяющим тип файла. В основном имя файлу дает пользователь, а тип файла определяет программой автоматически при его создании.

Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. Так в файловой системе FAT длина имен ограничивается (8 символов – имя, 3 символа – расширение имени), а в ОС UNIX System V имя содержит менее 14 символов. Windows в своей файловой системе устанавливает, что имя файла может содержать до 255 символов.

Файлы бывают разных типов: специальные файлы, обычные файлы, и файлы-каталоги.

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

Специальные файлы бывают: блок-ориентированные, байт-ориентированные.

Обычные файлы делятся на:

− текстовые (состоят из строк символов, представленных в ASCII кодировке);

− двоичные (не используют ASCII кодировку, он имеет более сложную структуру).

Каталог – это файл, содержащий системную информацию о группе файлов, его составляющих. В каталоге содержится список файлов, устанавливаются соответствия между файлами и их характеристиками.

Иерархия каталогов может иметь вид дерева или сети. Каталоги образуют дерево, если файлу можно входить только в один каталог, а если сеть, то файлу разрешено входить сразу в несколько каталогов. Например, MS‐DOS каталоги образуют структуру дерева, а в UNIX - сеть.

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


Бывают два основных подхода к определению прав доступа: избирательный доступ; мандатный подход.

Файловая система – это средство для организации хранения файлов на каком-либо носителе.

Классификация файловых систем по предназначению:

- Для носителей с произвольным доступом (например, жёсткий диск): FAT32, HPFS, ext2 и др. Поскольку доступ к дискам в несколько раз медленнее, чем доступ к оперативной памяти, для прироста производительности во многих файловых системах применяется асинхронная запись изменений на диск. Для этого применяется либо журналирование, например в ext3, ReiserFS, JFS, NTFS, XFS, либо механизм soft updates и др. Журналирование широко распространено в Linux, применяется в NTFS. Soft updates — в BSD системах.

- Для носителей с последовательным доступом (например, магнитные ленты): QIC и др.

- Для оптических носителей — CD и DVD: ISO9660, HFS, UDF и др.

- Виртуальные файловые системы: AEFS и др.

- Сетевые файловые системы: NFS, CIFS, SSHFS, GmailFS и др.

- Для флэш-памяти: YAFFS, ExtremeFFS, exFAT.

Немного выпадают из общей классификации специализированные файловые системы: ZFS (собственно файловой системой является только часть ZFS), VMware VMFS (т.н. кластерная файловая система, которая предназначена для хранения других файловых систем) и др.

Рассмотрим файловую систему NTFS – основную файловую систему, используемую в различных версиях операционной системы Windows. Впервые появившись в июле 1993г., она постоянно развивается. Файловая система NTFS обеспечивает надежное хранение информации, поскольку любые изменения, происходящие в файловой системе, выполняются с использованием механизма транзакций. Файловая система NTFS имеет множество возможностей, обеспечивающих удобство работы пользователей и администраторов.

Файловая система NTFS (New Technology File System) в настоящее время является основной файловой системой различных версий Windows. Она постоянно развивается.

Существует несколько версий этой файловой системы. Рассмотрим вначале основные возможности и характеристики версии NTFS для операционных систем семейства Windows.

Прежде всего, необходимо сказать о надежности NTFS. Любые изменения, происходящие в файловой системе, выполняются с использованием механизма транзакций. Журнал изменений, в котором отражаются все модификации объектов файловой системы, произошедшие с момента начала очередной транзакции, позволяет восстановить корректное состояние в случае, например, сбоя электропитания. NTFS поддерживает систему метаданных и использует специализированные структуры данных для хранения информации о файлах для улучшения производительности, надёжности и эффективности использования дискового пространства. NTFS хранит информацию о файлах в главной файловой таблице – Master File Table (MFT).


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

Далее перечислены основные возможности, предоставляемые файловой системой NTFS:

- атрибуты безопасности, или «разрешения NTFS», которые могут быть установлены для отдельных файлов и для папок. Атрибуты безопасности позволяют разграничить доступ разных пользователей к объектам файловой системы;

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

- шифрующая файловая система (Encrypting File System, EFS) – надстройка над NTFS, обеспечивающая шифрование файлов пользователей;

- распределенная файловая система (Distributed File System, DFS) дает возможность создать одно дерево каталогов, включающее несколько файловых серверов и общие файлы для группы, отдела или организации. Это упрощает поиск файлов и папок, распределенных по сети;

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

- дисковые квоты, с помощью которых можно управлять объемом дискового пространства, выделяемого конкретным пользователям;

- автономные файлы – возможность, позволяющая продолжать работать с файлами, находящимся в сетевой общей папке, даже при разрыве сетевого соединения;

- отслеживание изменившихся связей. Средства отслеживания изменения связей и файловая система NTFS позволяют клиентским приложениям отслеживать связанные ресурсы при их перемещении. Например, клиентское приложение всегда будет иметь доступ к связанной базе данных, даже если она будет перемещена;

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

Распределенная файловая система (DFS) обеспечивает упрощенный отказоустойчивый доступ к файлам и репликации по глобальным сетям. Распределенная файловая система состоит из двух технологий: