GeoSELECT.ru



Компьютеры / Реферат: Модель системы массового обслуживания на Симуле (Компьютеры)

Космонавтика
Уфология
Авиация
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Аудит
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника
Бухгалтерский учет
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Инвестиции
Иностранные языки
Информатика
Искусство и культура
Исторические личности
История
Кибернетика
Коммуникации и связь
Компьютеры
Косметология
Криминалистика
Криминология
Криптология
Кулинария
Культурология
Литература
Литература : зарубежная
Литература : русская
Логика
Логистика
Маркетинг
Масс-медиа и реклама
Математика
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Мифология
Москвоведение
Музыка
Муниципальное право
Налоги
Начертательная геометрия
Оккультизм
Педагогика
Полиграфия
Политология
Право
Предпринимательство
Программирование
Психология
Радиоэлектроника
Религия
Риторика
Сельское хозяйство
Социология
Спорт
Статистика
Страхование
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Физика
Физкультура
Философия
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
   

Реферат: Модель системы массового обслуживания на Симуле (Компьютеры)



I. Постановка задачи.

В студенческом машинном зале расположены две мини-ЭВМ и одно
устройство подготовки данных (УПД). Студенты приходят с интервалом 8±3 мин.
и треть из них хочет испытать УПД и ЭВМ, а остальные только ЭВМ. Допустимое
количество студентов в машинном зале 4 чел., включая работающего на УПД.
Работа на УПД занимает 9±4 мин. Работа на ЭВМ - 15±10 мин.; 20%
работавших на ЭВМ возвращаются для повторного использования УПД и ЭВМ и
остаются при этом в машинном зале.
Если студент пришел в машинный зал, а там уже есть 4 чел., то он ждет
не более 15±2 мин. в очереди в машинный зал и, если нет возможности в
течение этого времени начать работать, то он уходит.
Смоделировать работу в машинном зале в течение 48 часов.
Определить:
- загрузку УПД и обеих ЭВМ,
- максимальную длину очереди в машинный зал,
- среднее время ожидания в очереди в машинный зал,
- распределение общего времени работы студента в машинном зале,
- количество студентов, которые не дождались возможности поработать и
ушли.

II. Решение задачи.

1. Текст программы.

Текст программы полностью приведен в конце данного документа.

2. Схема решения в терминах предметной области.

Собираясь приступить к работе в машинном зале, студент подходит к нему
и проверяет, есть ли очередь в машинный зал. Если таковой нет, то он ищет в
последнем свободное место, а если очередь есть, то становится в ее конец.
Затем, либо входит в машинный зал, либо создает очередь, состоящую из
одного человека (его самого). После этого ждет в течение 15±2 мин. Если за
это время место в зале не освобождается, студент уходит, в противном же
случае, он покидает очередь и попадает в машинный зал.
Работа студента в машинном зале происходит следующим образом. Студент
определяет, приступить ли ему к работе УПД, а затем на одной из ЭВМ (по
условию задачи, число таких студентов составляет треть от общего числа
посетителей) или пройти сразу к ЭВМ (все остальные). После работы на ЭВМ
каждый студент может либо покинуть машинный зал, либо приступить к
повторной работе (20%), теперь уже точно на УПД и ЭВМ.

3. Схема решения задачи в терминах языка Симула.
1. Глобальные переменные и массивы.

M,U,C,P – целые числа, служащие для создания в программе четырех
различных потоков независимых величин;
I – счетчик цикла FOR (используется для вывода таблицы);
MZCap – целое число, обозначающее число мест в машинном зале;
Num – число студентов, покинувших очередь;
Nmb – число студентов, дождавшихся обслуживания;
MAX – максимальная длина очереди;
Toz – суммарное время ожидания в очереди;
Pupd – время простоя УПД;
Pcomp – время простоя обеих ЭВМ;
QUEUE – очередь в машинный зал;
QUPD – очередь на УПД;
QCOMP – очередь на ЭВМ;
UPD1 – ссылка на УПД;
COMP1 – ссылка на пару ЭВМ;
Std – массив действительных чисел из 10 элементов, в которые
помещаются данные о числе студентов, проделавших работу за i-й
интервал времени [Ti-1,Ti];
Tim – массив действительных чисел, в котором хранятся границы
временных интервалов Ti.

2. Процессы.

GENER – процесс, имитирующий появление студента у машинного зала;
STUDENT – процесс, описывающий действия студента;
COMP – процесс, изображающий работу двух мини-ЭВМ;
UPD – процесс, изображающий работу УПД;

3. Получение результатов.

Для получения результатов используются перечисленные в пункте 2.3.1
глобальные переменные и следующие соотношения:

Загрузка УПД = 1 - ;
Загрузка ЭВМ = 1 - ;
Число ушедших студентов = Num;
Максимальная длина очереди = MAX;
Среднее время ожидания в очереди = .

Распределение общего времени работы студента в машинном зале получено
в виде массивов std и tim.

4. Комментарии к программе.

Подробные комментарии приведены в тексте программы в конце данного
документа.

5. Результаты.

Загрузка УПД = 33,8%;
Загрузка ЭВМ = 82,1%;
Число ушедших студентов = 109;
Максимальная длина очереди = 3;
Среднее время ожидания в очереди = 9,79 мин.
Распределение общего времени работы студентов в машинном зале
приведено в таблице 2.1.

Таблица 2.1

|Число студентов |Интервалы времени |
|14 |0 – 15 |
|86 |15 – 30 |
|56 |30 – 45 |
|20 |45 – 60 |
|19 |60 – 75 |
|24 |75 – 90 |
|12 |90 – 105 |
|9 |105 – 120 |
|8 |120 – 135 |

III. Исследование адекватности модели.

1. Метод исследования.

Рассмотренный далее метод не претендует на абсолютную точность, но,
тем не менее, позволяет примерно оценить соответствие модели реальной
ситуации.
Метод заключается в использовании внесения изменений в начальные
данные. При этом анализируются изменения получаемых результатов.

2. Применение метода к поставленной задаче.

Вся информация по измененным входным данным и полученным результатам
представлена в таблице 3.1 Знаком “|” отделяются значения для исходной
задачи от значений для задачи, получаемой в результате внесения изменений.
Таблица 3.1
|Параметр |Загрузка |Загрузка |Максима|Среднее |Число |
| |УПД, % |ЭВМ, % |льная |время |ушедших |
| | | |длина |ожидания, |студентов, |
| | | |очереди|мин. |чел. |
| | | |, чел. | | |
|Время | | | | | |
|работы | | | | | |
|системы |33,8 | |81,2 | |3 | 3 |9,79 | 9,72|109 | 324 |
|48 | 100 |32,0 |83,1 | | | |
|часов | | | | | |
|Число | | | | | |
|мини-ЭВМ |33,8 | |81,2 | |3 | 3 |9,79 | |109 | 229 |
|2 | 1 |21,4 |81,0 | |12,12 | |
|шт. | | | | | |
|Число | | | | | |
|человек в|33,8 | |81,2 | |3 | 3 |9,79 | 9,76|109 | 149 |
|зале |31,8 |83,6 | | | |
|4 | 2 | | | | | |
|Интервал | | | | | |
|между | | | | | |
|приходами|33,8 | |81,2 | |3 | 18 |9,79 | |109 | 2650 |
|студентов|34,0 |83,2 | |14,36 | |
| | | | | | |
|8±3 | 1 | | | | | |
|Число | | | | | |
|желающих | | | | | |
|использов|33,8 | |81,2 | |3 | 3 |9,79 | |109 | 192 |
|ать УПД и|47,1 |76,6 | |11,17 | |
|ЭВМ | | | | | |
|33 | 66 | | | | | |
|% | | | | | |

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

IV. Сравнительный анализ моделей.

В приведенной ниже таблице даны искомые значения, полученные при
помощи двух моделей: в реализации на GPSS и в реализации на языке Симула.

Таблица 4.1

|Величина |GPSS |Симула |
|Загрузка УПД |55,2 |33,8 |
|Загрузка ЭВМ |96,5 |81,2 |
|Число ушедших |78 |109 |
|студентов | | |
|Максимальная длина |4 |3 |
|очереди | | |
|Среднее время |9,02 |9,79 |
|ожидания | | |

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




Реферат на тему: Модель файловой системы FAT

ОДЕССКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ХОЛОДА
Институт информационных технологий
кафедра информационных систем


кУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ
“тЕОРИЯ ОПЕРАЦИОННЫХ СИСТЕМ”

“модель файловой системы FAT”


Выполнил студент 322Б группы Холод Денис.
Руководитель Чмырь И.А.



ОДЕССА
1997
Содержание:

|Цель курсовой работы |3 |
|Идея программы |3 |
|О системе FAT |4 |
|Структура системы файлов FAT |5,6 |
|О реализации задания |7 |
|О примененных уровнях абстракции |8 |
|Об интерфейсе |9 |
|Исходный текст: Макросы, вызываемые событиями |10 |
|Исходный текст: Базовые события |13 |
|Исходный текст: Макросы нижнего уровня абстракции |15 |
|Список литературы, примененной при подготовке курсовой |17 |
|работы | |


Цель:

Разработка программы, моделирующей организацию файловой системы FAT.

Идея программы:

Программа позвовяет экспериментально исследовать логическую структуру
файловой системы FAT, состоящую из трех областей: FAT (File Allocation
Table), корневой каталог и область файлов.[1] Имеется панель описания
операций с файлами, находящимися на диске, а именно: добавить файл, удалить
файл, перезаписать файл (с изменением размера). Кроме того, предоставлена
возможность графического отображения соответствия файлов секторам на диске.

Файловая Система FAT:

Так называемая файловая система FAT использовалась во всех версиях
МСДОС и в первых двух выпусках OS/2 (версии 1.0 и 1.1). Каждый логический
том имеет собственный FAT, который выполняет две функции: содержит
информацию распределения для каждого файла в томе в форме списка связей
модулей распределения (кластеров) и указывает, какие модули распределения
свободны.
Когда FAT был изобретен, это было превосходное решение для управления
дисковым пространством, главным образом потому что гибкие диски, на которых
он использовался, редко были размером более, чем несколько Mb. FAT был
достаточно мал, чтобы находиться в памяти постоянно, позволял обеспечивать
очень быстрый произвольный доступ к любой части любого файла. Когда FAT был
применен на жестких дисках, он стал слишком большим для резидентного
нахождения в памяти и ухудшал производительность системы. Кроме того, так
как информация относительно свободного дискового пространства
рассредотачивалась "поперек" большого количества секторов FAT, он был
непрактичен при распределении файлового пространства, и фрагментация файлов
оказалась препятствием высокой эффективности.
Кроме того, использование относительно больших кластеров на жестких
дисках привело к большому количеству неиспользуемых участков, так как в
среднем для каждого файла половина кластера была потрачена впустую.
Ограничения FAT на наименование файлов и каталогов унаследованы из
CP/M. Когда Paterson создавал 86DOS, одной из его первых целей было
облегчить импорт из CP/M в его новую операционную систему. А следовательно
принятые в CP/M ограничения на имена файлов и расширений перенеслись в
86DOS.
В течение нескольких лет Microsoft и IBM сделали попытку продлить
жизнь файловой системы FAT благодаря снятию ограничений на размеры тома,
улучшению cтратегий распределения, кэширования имен пути, и перемещению
таблиц и буферов в расширенную память. Но они могут расцениваться только
как временные меры, потому что файловая система просто не подходила к
большим устройствам произвольного доступа.
Структура системы файлов FAT
|00Н |01Н |Идентификатор дисковода |
|01Н |09Н |Имя файла (8 символов) |
|09Н |0СН |Расширение (3 символа) |
|0СН |0ЕН |Номер текущего блока |
|0ЕН |10Н |Размер записи |
|10Н |14Н |Размер файла |
|14Н |16Н |Дата создания (обновления) |
|16Н |18Н |Время создания (обновления) |
|18Н |20Н |Зарезервировано |
|20Н |21Н |Номер текущей записи |
|21Н |25Н |Номер относительной записи |


|00Н |01Н |0FFH |
|01Н |06Н |Зарезервировано |
|06Н |07Н |Байт атрибута |
|07Н |08Н |Идентификатор дисковода |
|08Н |10Н |Имя файла (8 символов) |
|10Н |13Н |Расширение (3 символа) |
|13Н |15Н |Номер текущего блока |
|15Н |17Н |Размер записи |
|17Н |1ВН |Размер файла |
|1BН |1DН |Дата создания (обновления) |
|1DН |1FН |Время создания (обновления) |
|1FН |27H |Зарезервировано |
|27H |28H |Номер текущей записи |
|28H |2CH |Номер относительной записи |

Резюме

Резюме.


О реализации задания

Модель файловой системы представляет собой рабочий лист Microsoft
Excel, на котором в виде ячеек представлены три логические структуры
файловой системы:

. Каталог файлов
. Таблица распределения
. Область файлов

На рабочем листе также расположены две панели управления:

1. Операции с файлами
2. добавить
3. удалить
4. перезаписать
5. Визуализация FAT
6. показать файл
7. убрать стрелки

Исходя из контекста вопроса параллельное выполнение процессов или
потоков (MultiThreading) реализовывать нет необходимости. Учитывая эти
факторы, а также необходимость разработки “дружественного” интерейса с
применением графических примитивов, было решено использовать язык
программирования VisualBasic (VBA) от фирмы Microsoft и электронную таблицу
Excel 5.0 фирмы Microsoft.
Так как модель является типичной управляемой событиями системой, то
алгоритм ее работы достаточно прост, а точнее представляет собой ряд
алгоритмов, которые пересекаются только в среднем уровне абстракции. (см.
ниже) События вызываются пользователем посредством воздействия на органы
управления.

О примененных уровнях абстракции

Все возможные события были тщательно проанализированы автором и
разделены на три категории, или на три уровня абстракции:
. События, вызываемые внешними воздействиями. Таковыми являются все
события, вызываемые пользователем посредством вызова пунктов из групп
операций с файлами.[2]
. События фундаментальной природы, т.е. базовые события, порождаемые
предудущими. Их значительно меньше, и они никак не вникают в суть
породивших из внешних событий.[3]
. События низкого уровня абстракции, которые являются искуственно
синтезированными из предыдущих двух групп событиями и имеют целью
понизить сложность системы за счет абстрагирования от непринципиальных
тонкостей и усложнений в системе, диктуемых контекстом. Таковыми,
например, являются события обработки неправильных ситуаций.[4]

Об интерфейсе

Интерфейс является интуитивно понятным и не навязчивым, всегда,
насколько это возможно, является “демократичным” по отношению к
пользователю. В программах, написанных таким стилем, очень четко
прослеживается причинно-следственная связь, хорошо знакомая любому человеку
и являющаяся неотъемлемой частью образного мышления. Это делат программу
весьма простой в использовании, а алгоритм работы простым в понимании. Вся
необходимая для работы информация представлена в диалогах, о неправильных
ситуциях программа сообщает пользователю и это единственный (и законный)
случай нарушения свободы действий пользователя.

Далее приводится исходный текст программы с обширными комментариями,
в которых делается упор не на особенности языка программирования и
конкретной реализации, а на представление составляющих файловой системы как
объектов, а процедур и функций как методов, применяемых к этим объектам.
Макросы, вызываемые событиями
Public Type FileID 'Тип, описывающий файл: имя,размер и точка входа в FAT
Name As String
Size As Integer
First As Integer
End Type

Sub PressAddFile() 'Макрос, вызываемый кнопкой "Добавить Файл"
DialogSheets("Add").EditBoxes("Name").Text = "" 'подготовка диалога
"Добавление файла"
DialogSheets("Add").EditBoxes("Size").Text = "" 'очистка полей ввода
Sheets("Add").Show 'Вызов диалога "Добавление файла"
With DialogSheets("Add") 'Проверка на правильность введенных данных
If (.EditBoxes("Name").Text = "") Or (.EditBoxes("Size").Text = "")
Or (.EditBoxes("Size").Text = "0") Then Exit Sub
End With
Dim NewFile As FileID 'Экземпляр переменной с описанием создаваемого
файла
With DialogSheets("Add")
NewFile.Name = .EditBoxes("Name").Text
NewFile.Size = .EditBoxes("Size").Text
End With
Call AddFile(NewFile) 'Вызов процедуры добавления файла
Refresh 'обновили графическое изображение размещения файлов
End Sub

Sub PressDeleteFile() 'в основном рабочем листе нажата кнопка Удалить Файл
temp = 4
With DialogSheets("Delete") 'подготавливаем к работе диалог Delete
.ListBoxes("Name").RemoveAllItems
While Sheets("Sheet").Cells(temp; 2) "" 'заполняем список
имеющимися в каталоге файлами
.ListBoxes("Name").AddItem
Text:=Worksheets("Sheet").Cells(temp; 2).Value; Index:=temp - 3
temp = temp + 1
Wend
.Show 'показываем диалог Delete
If .ListBoxes("Name") = 0 Then Exit Sub
Dim File As FileID 'переменная для идентификатора удаляемого
файла.Передается процедуре DeleteFile
File.Name = Sheets("Sheet").Cells(.ListBoxes("Name") + 3; 2)
File.Size = Sheets("Sheet").Cells(.ListBoxes("Name") + 3; 3)
File.First = Sheets("Sheet").Cells(.ListBoxes("Name") + 3; 4)
Call DeleteFile(File) 'Вызываем процедуру удаления файла
Refresh 'обновили графическое изображение размещения файлов
End With
End Sub

Sub PressRemakeFile() 'нажата кнопка Изменить_размеры_файла
'по этому поводу подготавливаем к работе диалог Remake
temp = 4
With DialogSheets("Remake")
.ListBoxes("Name").RemoveAllItems
.EditBoxes("Size").Text = ""
While Sheets("Sheet").Cells(temp; 2) "" 'заполняем список
имеющимися в каталоге файлами
.ListBoxes("Name").AddItem
Text:=Worksheets("Sheet").Cells(temp; 2).Value; Index:=temp - 3
temp = temp + 1
Wend
.Show 'показываем диалог Remake
'при нажатии кнопки OK в диалоге запустится макрос DialogRemakePressOK
End With
End Sub

Sub DialogRemakePressName() 'в диалоге Перезапись выбран файл из списка
With DialogSheets("Remake") 'и поэтому в диалоге Перезапись обновляем
поле размера файла в соотв. с выбранным файлом
.EditBoxes("Size").Text = Sheets("Sheet").Cells(3 +
.ListBoxes("Name").ListIndex; 3).Value
End With
End Sub

Sub DialogRemakePressOK() 'в диалоге изменение размеров файла нажата кнопка
OK
With DialogSheets("Remake")
.Hide 'убрали с экрана диалог
If .ListBoxes("Name").ListIndex = 0 Then Exit Sub
Dim File As FileID 'Экземпляр типа FileID - идентификатор файла
File.Name = Sheets("Sheet").Cells(3 + .ListBoxes("Name").ListIndex;
2).Text
File.Size = Sheets("Sheet").Cells(3 + .ListBoxes("Name").ListIndex;
3).Value
File.First = Sheets("Sheet").Cells(3 +
.ListBoxes("Name").ListIndex; 4).Value
'проверка на наличие изменений
If .EditBoxes("Size").Text = File.Size Or .EditBoxes("Size").Text =
"0" Then Exit Sub
'проверка на помещаемость
If .EditBoxes("Size").Text > (FreeSize + ((File.Size - 1) 8 + 1)
* 8) Then
temp = MsgBox("Файл " & File.Name & " размером " &
.EditBoxes("Size").Text & " не может быть размещен"; vbExclamation;
"Перезапись файла")
Exit Sub
End If 'перезапись: удаление, а затем запись файла, но с другим
размером
Call DeleteFile(File) 'удалили
File.Size = .EditBoxes("Size").Text 'изменили размер
Call AddFile(File) 'записали
Refresh 'обновили таблицу распределения файлов
End With
End Sub

Sub Visualisation() 'визуализация файла
temp = 4
With DialogSheets("Visualisation") 'подготавливаем к работе диалог
Visualisation
.ListBoxes("Name").RemoveAllItems
While Sheets("Sheet").Cells(temp; 2) "" 'заполняем список
имеющимися в каталоге файлами
.ListBoxes("Name").AddItem
Text:=Worksheets("Sheet").Cells(temp; 2).Value; Index:=temp - 3
temp = temp + 1
Wend
.Show 'показываем диалог Visualisation
If .ListBoxes("Name") = 0 Then Exit Sub 'выбрали ли что-нибудь ?
Dim NumberFile As Integer
NumberFile = .ListBoxes("Name").ListIndex 'номер по каталогу
визуализируемого файла
Sheets("Sheet").Cells(NumberFile + 3; 2).ShowDependents 'показываем
линии, проходящие от ячейки каталога с именем визуализируемого файла до
всех занятых им ячеек области файлов
End With
End Sub

Базовые события

Const ColorOfPaper = 33 'цвет фона области файлов
Const ColorUsedPartOfFAT = 2 'цвет занятой части области файлов

Sub AddFile(NewFile As FileID) 'Процедурa добавления файла
'Проверка наличия присутствия в достаточном для создания файла
количестве свободного пространства
If NewFile.Size > FreeSize Then
temp = MsgBox("Файл " + NewFile.Name + " не может быть размещен из-
за нехватки свободного места."; vbExclamation; "Процесс создания файла")
Exit Sub
End If
count = NewFile.Size 'счетчик уже записанной части файла
NewFile.First = NextFreeCellFAT ' задание точки входа в FAT для данного
файла
Dim PreviousCellFAT As Integer 'Номер последней модифицировавшейся
ячейки FAT
PreviousCellFAT = NextFreeCellFAT
Call ToFAT(PreviousCellFAT; 0) 'Записали в нее ноль-признак того, что
это последний (пока) кластер данного файла
count = count - 8 'как минимум 8 байт файла уже размещены
While count > 0 'пока весь файл не разместился
Call ToFAT(PreviousCellFAT; NextFreeCellFAT) 'в последнюю
модифицировавшуюся ячейку FAT вносим указатель на следующую свободную
ячейку
PreviousCellFAT = NextFreeCellFAT
Call ToFAT(PreviousCellFAT; 0) 'Записали в нее ноль-признак того,
что это последний (пока) кластер данного файла
count = count - 8 'как минимум 8 байт файла уже размещены
Wend
Call AddFileToCatalog(NewFile) 'добавили файл в каталог
End Sub

Sub DeleteFile(File As FileID) 'процедура удаляет заданный файл без
разговоров
Call DeleteCellFromFAT(File.First)
Call DeleteFileFromCatalog(File.Name)
End Sub

Sub Refresh() 'обновление изображения области файлов
With Sheets("Sheet")
.Range("F6:U13").Interior.ColorIndex = ColorOfPaper 'окрасили
область файлов в цвет фона
.Range("F6:U13").Value = "" 'очистили все ячейки области файлов
.Range("F6:U13").NumberFormat = "0" 'формат числа для области
файлов-целые числа
.ClearArrows 'убрали все стрелки
Dim PointerToFile As String
NumberFile = 1
While .Cells(NumberFile + 3; 2) "" 'последовательно
просматриваем область файлов. Для каждого файлавыполняется следующая
процедура:
NumberCellFAT = .Cells(NumberFile + 3; 4) 'точка входа в FAT N-
ного файла
PointerToFile = "=R" & NumberFile + 3 & "C2" 'указатель на
ячейку каталога с именем N-ного файла
Relation = (.Cells(NumberFile + 3; 3) - 1) Mod 8 'смещение.
Являет собой размер неполностью заполненного кластера
While .Cells(3; NumberCellFAT + 5) 0 'просмотр FAT до
признака конца цепочки
.Range(Cells(6; NumberCellFAT + 5); Cells(6 + 7;
NumberCellFAT + 5)).Interior.ColorIndex = ColorUsedPartOfFAT + NumberFile
'выделение цветом очередного непоследнего кластера N-ного файла
.Range(Cells(6; NumberCellFAT + 5); Cells(6 + 7;
NumberCellFAT + 5)).Font.ColorIndex = ColorUsedPartOfFAT + NumberFile
.Range(Cells(6; NumberCellFAT + 5); Cells(6 + 7;
NumberCellFAT + 5)).Formula = PointerToFile 'каждая ячейка этого кластера
теперь указывает на ячейку с именем файла в каталоге
NumberCellFAT = .Cells(3; NumberCellFAT + 5) 'взяли
следующую ячейку FAT из цепочки
Wend 'теперь обработка последнего кластера N-ного файла.
Отличается тем, что он может быть занят не полностью
.Range(Cells(6; NumberCellFAT + 5); Cells(6 + Relation;
NumberCellFAT + 5)).Interior.ColorIndex = ColorUsedPartOfFAT + NumberFile
.Range(Cells(6; NumberCellFAT + 5); Cells(6 + Relation;
NumberCellFAT + 5)).Font.ColorIndex = ColorUsedPartOfFAT + NumberFile
.Range(Cells(6; NumberCellFAT + 5); Cells(6 + Relation;
NumberCellFAT + 5)).Formula = PointerToFile

NumberFile = NumberFile + 1 'работаем со следующим файлом
Wend
End With
End Sub


Макросы нижнего уровня абстракции

Function FreeSize() As Integer 'Функция для определения количества
свободного места в области файлов
FreeSize = 0
temp = 6
While temp < 22 'просмотр области FAT
If Sheets("Sheet").Cells(3; temp).Value = "" Then _
FreeSize = FreeSize + 8 'если ячейка FAT пуста, то
своб.места в ней 8 байт
temp = temp + 1
Wend
End Function

Function NextFreeCellFAT() As Integer 'Функция возвращает номер первого
найденного свободного элемента FAT
NextFreeCellFAT = 1
While NextFreeCellFAT < 17
If Sheets("Sheet").Cells(3; NextFreeCellFAT + 5).Value = "" Then
Exit Function
NextFreeCellFAT = NextFreeCellFAT + 1
Wend
End Function

Sub AddFileToCatalog(File As FileID) 'добавление файла в область каталога
temp = 4
With Sheets("Sheet")
While .Cells(temp; 2) ""
temp = temp + 1 'поиск свободного места в каталоге файлов
Wend 'кто дочитает до этого места-бутылка шампанского !
.Cells(temp; 2) = File.Name 'Запись в каталог информации о файле
.Cells(temp; 3) = File.Size
.Cells(temp; 4) = File.First
End With
End Sub

Sub DeleteFileFromCatalog(NameDeletedFile As String) 'удаление информации о
файле из каталога
Position = 4
While Sheets("Sheet").Cells(Position; 2).Text NameDeletedFile
Position = Position + 1
Wend
For temp = Position To 16 + 3 'следующие за удаляемым файлом ячейки
сдвигаются, _
затирая запись об удаляемом файле
Sheets("sheet").Range(Cells(temp; 2); Cells(temp; 4)).Value = _
Sheets("sheet").Range(Cells(temp + 1; 2); Cells(temp + 1;
4)).Value
Next
End Sub

Sub ToFAT(NumberCell As Integer; Value As Integer) 'Процедура записи в
заданную ячейку FAT заданного значения
Sheets("Sheet").Cells(3; NumberCell + 5).Value = Value
End Sub

Sub DeleteCellFromFAT(StartCell As Integer) 'рекурсивная функция удаления
цепочки из FAT _
Вызывается с номером точки входа
' MsgBox ("DeleteCellFromFAT, StartCell=" & StartCell)
If Sheets("Sheet").Cells(3; 5 + StartCell).Value = 0 Then 'если в
рассматриваемой точке - 0, _
то это значит, что она является указателем конца файла
Sheets("Sheet").Cells(3; 5 + StartCell) = "" 'и поэтому очищаем эту
ячейку FAT
Else 'в противном случае это указатель на следующую ячейку FAT -
вызываем эту же процедуру
DeleteCellFromFAT (Sheets("sheet").Cells(3; 5 + StartCell).Value)
'но с новым номером ячейки FAT
Sheets("sheet").Cells(3; 5 + StartCell) = "" 'и затем ее очищаем
End If
End Sub

Список литературы, примененной при подготовке курсовой работы.


|Microsoft Systems Journal, Sept 1989. Получен из Computer Library |
|Periodicals, Jan 1990, Doc #14753 |
|Профессиональная работа в MS-DOS, Р.Данкан, Мир, 1993 |
|Excel 5.0 для профессионалов, Н.Николь, Р. Альбрехт, Москва, “Эком”,|
|1996 |

-----------------------
[1] Необходимо заметить, что именно такая структура использовалась в первой
версии MS-DOS.
[2] PressAddFile
PressDeleteFile
PressRemakeFile
DialogRemakePressName
DialogRemakePressOK
Visualisation

[3] AddFile
DeleteFile
Visualisation
Refresh

[4] FreeSize
ToFAT
NextFreeCellFAT
AddFileToCatalog
DeleteCellFromFAT
DeleteFileFromCatalog

-----------------------
Файл Д

Файл В

Файл Б

Каталог

Файл Г

Каталог

Каталог

Файл А

Идентификатор
дисковода

Корневой каталог
(метка тома)



Типичный блок управления файлом

Элементы структуры

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

Относительный начальный адрес в байтах



Расширенный блок управления файлом

Относительный начальный адрес в байтах

Элементы структуры

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






Новинки рефератов ::

Реферат: Методы диагностики тревоги и тревожности младших школьников (Психология)


Реферат: Швейцария (Политология)


Реферат: Эстетика (Искусство и культура)


Реферат: Знание первобытных людей (Культурология)


Реферат: Основание прекращения трудового договора (Трудовое право)


Реферат: Приемственность музыкального воспитания школьников и дошкольников (Педагогика)


Реферат: Компьютерные сети (Программирование)


Реферат: Сильно Действующие Ядовитые Вещества (Военная кафедра)


Реферат: Образовательная система Италии (Педагогика)


Реферат: Реклама в структуре FM-вещания Санкт-Петербурга (Журналистика)


Реферат: Социология конфликтов (Социология)


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


Реферат: Государственный бюджет. Дефицит государственного бюджета и пути его устранения. Международный опыт (Государство и право)


Реферат: Алкоголизм, табакокурение и наркомания. Подверженность молодежи к алкоголизму (Социология)


Реферат: Интеграция стран Западной Европы: взгляд в будущее (География)


Реферат: Виды налогов за рубежом (Право)


Реферат: Страхование (Страхование)


Реферат: Что такое информация (Программирование)


Реферат: Шпоры для сдачи риторики (Риторика)


Реферат: Звуковой аналитико-синтетический метод профилактики дислексии у дошкольников с общим недоразвитием речи (Педагогика)



Copyright © GeoRUS, Геологические сайты альтруист