
- •1. Назначение, основные этапы развития операционных систем
- •2. Современные ос и их классификация
- •3. Основные принципы построения ос
- •4. Мультипрограммность и мультизадачность
- •1. Процесс, ресурс, свойства, классификация
- •2. Концепция виртуализации
- •3. Принципы построения интерфейсов операционных систем. Интерфейсы прикладного программирования
- •4. Концепция прерывания
- •1. Система управления процессами. Процессы, потоки.
- •2. Средства распределения ресурсов
- •3. Система распределения оперативной памяти. Контроль и распределение памяти в ms-dos
- •4. Алгоритм распределения памяти ms_dos
- •5. Блок управления памятью (mcb)
- •1. Файловая система. Концепция управления файлами
- •2. Текстовые файлы. Двоичный файлы
- •2. Создание файла и создание связи с файлом
- •3. Удаление файла и связи с файлом
- •4. Модификация файлов
- •5. Операции с файлами
- •6. Организация данных на внешних носителях. Внешняя память на дисках
- •7. Файловая система fat. Структура и расположение системной информации файловой системы.
- •8. Структура boot
- •9. Таблица расположения файлов fat
- •10. Структура корневого директория root
- •11. Структура директория
- •12. Алгоритм поиска расположения файлов на диске
- •13. Определение начального кластера расположения файла на диске
- •14. Расчет номеров цепочки кластеров расположения фала на диске
- •15. Методы доступа к информации на дисках
- •16. Изменение элементов таблиц fat и root при выполнении команд dos: copy, move, del, rename.
- •1. Общие сведения о механизме прерываний
- •1. Аппаратные прерывания
- •2. Программные прерывания
- •3. Таблица векторов прерываний
- •4. Перехват прерывания
- •5. Каскадная обработка прерывания
- •1. Загрузка и запуск программ ms dos
- •2. Заголовок *.Exe
- •3. Psp текущей задачи
- •4. Дочерние процессы и их запуск
- •5. Среда процесса, наследование среды
- •6. Системные управляющие блоки dos (таблица векторной связи)
- •7. Завершение процесса
- •1. Архитектура ос Windows. Функционирование и взаимосвязь модулей операционной системы
- •2. Понятие окна. Принципы организации графического пользовательского интерфейса.
- •3. Операции с объектом – окно
- •4. Событийное управление программами
- •5. Сообщение. Цикл обработки сообщений. Очередь сообщений.
- •6. Процедура обработки сообщений, ее формат и правила написания
- •7. Синхронные и асинхронные сообщения, их передача и обработка
- •8. Ввод данных с клавиатуры
- •9. Коды oem, ansi, ascii, виртуальные коды
- •10. Фокус ввода
- •11. Обработка сообщений мыши
- •12. Таймер. Программирование таймера
- •1. Графические устройства и их контекст
- •2. Атрибуты контекста устройств
- •3. Логическая и физическая система координат
- •4. Режимы преобразования координат
- •5. Объекты gdi. Создание и использование
- •6. Gdi и векторная модель рисования
- •7. Быстрая векторная графика
- •8. Шрифт. Классификация, параметры шрифта, установка в контексте устройства.
- •Структура logfont
- •9. Атрибуты контекста устройств, влияющие на вывод текста
- •10. Методы gdi вывода текста
- •11. Управление направлением, размером и расстоянием между символами
- •1. Создание процесса
- •2. Описатель процесса
- •3. Командная строка процесса
- •4. Среда процесса.
- •5. Наследование объектов ядра дочерним процессом.
- •6. Класс процесса.
- •7. Текущий директорий процесса.
- •8. Получение инф-ции о процессе
- •9. Окончание процесса
9. Таблица расположения файлов fat
При использовании дисковых накопителей возникает проблема: как операционной системе определить, в каких кластерах размещается файл, в какой последовательности эти кластеры располагаются, а также какие кластеры на диске свободны? Для решения этой проблемы на диске организуется специальная табличная структура, называемая таблицей размещения файлов или FАТ (File Allocation Table).
Основной принцип организации FАТ заключается в создании таблицы, каждый элемент которой соответствует одному кластеру. В зависимости от формата диска FАТ состоит из 12-битовых или 16-битовых элементов. Более современной системой является FAT32.
В качестве примера рассмотрим возможные значения элементов FAT12:
• 000h — соответствующий такому элементу кластер свободен и ранее не использовался для хранения файлов;
• 0FF8h до 0FFFh — кластер, соответствующий этому элементу, является последним в файле, т. е. служит идентификатором конца цепочки кластеров ЕОС (Еnd of Chain);
• 0FF7h—свидетельствует о том, что соответствующий кластер дефектен;
• ХХХh — любые 16-ичные цифры, задающие номер следующего кластера в цепочке кластеров.
10. Структура корневого директория root
ROOT – корневой каталог – вершина иерархии дисковой системы. В отличие от всех остальных каталогов, он имеет фиксированный размер, то есть в нем нельзя располагать сколько угодно файлов или каталогов. Ко всем прочим каталогам это не относится, они могут содержать неограниченное число подэлементов.
Элемент оглавления представляет собой 32-байтную запись следующего формата:
Байты 0—7. Имя файла.
Байты 8—10. Расширение имени
Байт 11. Атрибут файла.
Байты 12—21. Обычно содержат нули. Зарезервированы
Байты 22—23. Время последнего доступа к файлу.
Байты 24—25. Дата последнего доступа к файлу.
Байты 26—27. Номер начального кластера.
Байты 28—31. Размер файла.
11. Структура директория
Любой директорий, отличный от корневого, может иметь неограниченное число подэлементов. Структура системы файлов является иерархической. Элементом каталога может быть такой файл, который сам, в свою очередь является каталогом, разница определяется атрибутом. Все каталоги, не являющиеся корневыми, содержат два элемента с зарезервированными именами «.» и «..», помещаемыми в каталог при его создании. Элемент с именем «..» устанавливает связь с каталогом-родителем (parent directory), то есть того, в котором зарегистрирован данный каталог в качестве каталога-сына. Элемент с именем «.» связывает данный каталог с областью дискового пространства, где размещается файл данного каталога: поле начального кластера этого элемента содержит номер первого кластер в файла данного каталога.
12. Алгоритм поиска расположения файлов на диске
13. Определение начального кластера расположения файла на диске
14. Расчет номеров цепочки кластеров расположения фала на диске
Для того, чтобы определить начальный номер кластера, необходимо считать из корневой директории ROOT или из любой другой 32-байтную запись с информацией о файле. В 26-27 байтах хранится необходимая информация, которая укажет нам номер первого занимаемого файлом кластера. Извлекаем эти 2 байта в переменную типа WORD
Рис. 3. Узнаём номер начального кластера
В памяти число представлено как 02 00, получается, что значение будет 0002. Это и есть номер кластера.
Далее переходим к таблице FAT, и по ней уже определяем всю цепочку кластеров.
Рис. 4. Дамп FAT демонстрирующий цепочку кластеров расположения файла.
Последовательность действий такова:
В нашем случае (12-бит) умножаем номер кластера на 1,5 (2*1,5=3). В случае дробного числа берём только целую часть.
Прочитаем слово по результирующему адресу, то есть смещению от начала FAT (0340, значение 4003). Если номер кластера четный, то берём младшие 12 бит, в случае если номер кластера нечётный берём старшие 12 бит. В нашем случае получаем (003)
Полученный результат даёт нам номер следующего кластера. Проделываем пункты 1-2 до тех пор, пока не получим значение FFF, говорящее о конце файла
В данном случае цепочка кластеров имеет вид: 003-004-005-006-FFF