Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
22700_62_OSBD_Prakticheskie.doc
Скачиваний:
20
Добавлен:
11.02.2015
Размер:
1.03 Mб
Скачать

3.5. Вопросы и литература

1. Сколько процессов (программ) может считаться одновременно загруженными в память?

2. Что такое «фрагментация»?

3. Какова фрагментация при страничном распределении памяти?

4. Когда возникают страничные прерывания?

5. Чем определяется размер виртуальной таблицы?

6. Когда принимается решение о вытеснении страницы?

7. Что такое «свопинг»?

8. Что означает «грязная страница»?

Учебник / Учебное пособие

Раздел

Страницы

Таненбаум Э. Современные операционные системы. 3-е изд. - СПб.: Питер, 2010. - 1120 е.: ил.

3.1-3.5,4.1.1-4.1.6, 4.2.1-4.2.4, 4.3.4-4.3.7

217-275, 308-316

, 320-325, 336-345

4. Файловая система

4.1. Цель практического занятия

Целью практического занятия является более подробное ознакомление с построением и функциями файловой системы.

4.2. План занятия

4.3 . Используемые технологии

Для лучшего усвоения материала желательно проведение занятия с использованием компьютера.

4.4. Примеры для анализа

Понятие файлиспользуется для того, чтобыабстрагироваться от носителей и устройств, предназначенных для постоянного или временного хранения данных, и от данных.

Файловая система (ФС) является собой часть ОС, которая отвечает за преобразование «файла» от абстрактного представления файла до конкретного физического, которое характеризуется конкретным физическим адресом и форматом внутреннего (двоичного) представления. В самом общем виде такое отображение на физический уровень выглядит следующим образом:

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

Логическая ФС трактует файл как единицу хранения. Эта единица имеет имя, и ее описание находится в системном справочнике (каталоге, или директории). Правила именования могут быть разными в различных ОС.

Каталоги могут быть одноуровневыми - описания файлов сведены в одну таблицу.

Косвенным файлом (indirect file) или символьной связью (symbolic link), или мягкой связью (soft link) называетсяэлемент каталога, которыйссылаетсяна другойэлемент каталога. Ссылка производится обычно путем указания полного символьного имени каталога. Физически символьные связи представляются файлами специального типа, содержащими ссылки. Могут обеспечиватьсяи многоуровневыесимвольные связи. Подобно косвенным файлам, могут быть и косвенные каталоги. Принципиальное отличие косвенных файлов от алиасов - в том, что имена косвенных файлов имеют неравные права с основным именем. Только один элемент каталога (основной) ссылается на физический файл, остальные же - на элемент каталога. Поэтому удаление физического файла возможно только по основному имени, удаления же по косвенным именам удаляют только элементы каталогов. Если файл удален по основному имени, то косвенные ссылки на него, как правило, остаются в каталогах и обращения по косвенным именам приведут к ошибкам. Задача чистки каталогов от неактуальных косвенных имен может возлагаться либо на пользователей - владельцев каталогов, либо на администратора системы, в распоряжении которого должны быть соответствующие утилиты.

На программном уровне обычно определяется примерно следующий состав атрибутов файла данных:

Атрибут

Значение

Защита

Кто и каким образом может получить доступ к файлу

Пароль

Пароль для получения доступа к файлу

Создатель

Идентификатор создателя файла

Владелец

Текущий владелец

Флаг «только для чтения»

0 — для чтения-записи; 1 — только для чтения

Флаг «скрытый»

0 — обычный; 1 — не предназначенный для отображения в перечне файлов

Флаг «системный»

0 — обычный; 1 — системный

Флаг «архивный»

0 — прошедший резервное копирование; 1 — нуждающийся в резервном копировании

Флаг ASCII-двоичный

0 —ASCII; 1 — двоичный

Флаг произвольного доступа

0 — только последовательный доступ; 1 — произвольный до­ ступ

Флаг «временный»

0 — обычный; 1 — удаляемый по окончании работы процесса

Флаги блокировки

0 — незаблокированный; ненулевое значение — заблокиро­ ванный

Длина записи

Количество байтов в записи

Позиция ключа

Смещение ключа внутри каждой записи

Длина ключа

Количество байтов в поле ключа

Время создания

Дата и время создания файла

Время последнего доступа

Дата и время последнего доступа к файлу

Время последних изменений

Дата и время внесения в файл последних изменений

Текущий размер

Количество байтов в файле

Максимальный размер

Количество байтов, до которого файл может увеличиваться

Для конкретизации в качестве логического представления данных рассматривается класс CFile из библиотеки MFC:

Конструктор

CFile::CFile - Создание объекта CFile по указанию дескриптора пути или файла.

Открытые методы

CFile::Open - Открытие файла.

CFile::Close - Закрытие файла и удаление объекта.

CFile::Abort - Закрытие файла, игнорируя все предупреждения и ошибки.

Методы для действийнад данными

CFile::Read - Считывание (небуферизованных) данных из файла в текущей позиции файла.

CFile::Write - Запись (небуферизованных) данных в текущей позиции файла.

CFile::Flush – Сброс содержимого из файловых буферов.

CFile::LockRange - Блокирует диапазон байтов в файле.

CFile::UnlockRange - Разблокирует диапазон байтов в файле.

Методы для действий с указателем

CFile::Seek - Позиционирование указателя файла.

CFile::SeekToBegin - Позиционирует указатель текущего файла на начало файла.

CFile::SeekToEnd - Позиционирует указатель текущего файла на конец файла.

Свойства объекта

CFile::GetFileName - Получение имени.

CFile::GetFilePath - Получение полного пути

CFile::GetLength - Получение размера в байтах.

CFile::GetPosition – Получение текущей позиции указателя файла.

CFile::GetStatus - Получение состояния открытия файла.

CFile::SetFilePath - Задание полного пути к файлу.

CFile::SetLength - Изменение размера файла.

CFile::SetStatus - Установка состояния указанного файла (статического виртуальная функция).

Переменные класса

CFile::m_hFile - дескриптор файла.

CFile::m_pTM - Указатель на объект CAtlTransactionManager.

С целью обсуждения рассматриваются функции управления каталогами:

CreateDirectory

Creates a new directory.

CreateDirectoryEx

Creates a new directory with the attributes of a specified template directory.

CreateFile

Creates or opens a file object.

DeleteFile

Deletes an existing file.

FindCloseChangeNotification

Stops change notification handle monitoring.

FindFirstChangeNotification

Creates a change notification handle.

FindFirstFile

Searches a directory for a file or subdirectory whose name matches the specified name.

FindNextChangeNotification

Requests that the operating system signal a change notification handle the next time it detects an appropriate change.

FindNextFile

Continues a file search.

GetCurrentDirectory

Retrieves the current directory for the current process.

MoveFile

Moves an existing file or a directory.

ReadDirectoryChangesW

Retrieves information describing the changes occurring within a directory.

RemoveDirectory

Deletes an existing empty directory.

SetCurrentDirectory

Changes the current directory for the current process.