Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Неструктурированной последовательностью (потоком) байт, стала популярной



Вместе с ОС UNIX, а теперь она широко используется в большинстве

Современных ОС (MS-DOS, Windows2000/NT, NetWare).

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

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

Структурировать и интерпретировать данные, содержащиеся в файле.

Другая модель файлов, которая применялась в ОС OS/360, DEC RSX, VMS, а в

Настоящее время используется достаточно редко – это структурированный файл.

В этом случае поддержание структуры файла поручается ОС. ФС видит файл как

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

обращаться к ФС с запросами на ввод-вывод на уровне записей, например,

«считать запись 25 из файла FILE.DOC». ФС должна обладать информацией о

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

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

содержащаяся в этой записи, выполняется приложением. Замечание. Развитием

Этого подхода стали СУБД.

Физическая организация файла (ФОФ) – это способ размещения файла на

диске. Основные критерии эффективности физической организации файлов:

 Скорость доступа к данным.

 Объем адресной информации файла.

 Степень фрагментированнности дискового пространства.

 Максимально возможно размер файла.

Фрагментация – это наличие большого числа несмежных участков свободной

памяти очень маленького размера (фрагментов). Настолько маленького, что ни

Одна из вновь поступающих программ не может поместиться ни в одном из

Участков, хотя суммарный объем фрагментов может составить значительную

Величину, намного превышающую требуемый объем памяти.

Существует несколько способов физической организации файла.

Непрерывное размещение – это простейший вариант ФОФ, при котором файлу

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

участок дисковой памяти:

Достоинства способа: высокая скорость доступа, так как

Затраты на поиск и считывание кластеров файла

Минимальны, отсутствие фрагментации на уровне файла,

Минимален объем адресной информации – достаточно

Хранить только номер первого кластера и объем файла.

Недостатки невозможно сказать, какого размера должна

Быть непрерывная область, выделяемая файлу, так как файл при каждой

Модификации может увеличить свой размер, фрагментация на уровне кластеров,

Из-за которой нельзя выбрать место для размещения файла целиком. Из-за этих

Недостатков на практике используются другие методы, при которых файл

Размещается в нескольких, в общем случае несмежных областях диска.

Интерфейс управления виртуальной машиной

На представленом скриншоте основного окна приложения,

Моделирующего работу операционной системы.

Порядок действий при работе с системой следующий:

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

Нажать кнопку «Запустить систему».

Создать процесс, указав для него параметр функционирования (зависит

от алгоритма планирования) и конфигурацию адресного пространства

Для активного процесса выполнить команду путем нажатия на

Соответствующую кнопку

Вкладка " Процессы" предназначена для работы с подсистемой управления

процессами. На данной вкладке реализованы следующие функции:

Запуск/остановка системы; выбор алгоритмов управления процессами, памятью

И диском; создать/удалить процесс; выполнить пустую команду; чтение/запись

По виртуальному адресу; работы с файлом.

Рисунок 4 - Основное окно системы

Пример задания структуры адресного пространства – 3 сегмента размером

И 1000 байт соотвественно показан на рисунке 4.

Рисунок 5 - Пример задания структуры адресного пространства

На рисунке 5 представлена команда процесса, не связанная с обращением к

Памяти или диску.

Рисунок 6 - Команда процесса, не связанная с обращением к памяти или

Диску

Для осуществления чтения байта из адресного пространства процесса по

Линейному адресу необходимо ввести адрес в ячейку, показанную на рисунке

7 и нажать кнопку " Чтение".

Рисунок 7 - Команда чтения байта из адресного пространства процесса по

Линейному адресу

Для осуществления записи байта в адресное пространство процесса по

Линейному адресу необходимо ввести адрес в ячейку, показанную на

рисунке 7, ввести значение в поле " Значение" и нажать кнопку " Запись".

Рисунок 8 - Команда записи байта в адресное пространство процесса по

Линейному адресу

Для осуществления чтения байта из адресного пространства процесса по

Номеру сегмента и смещению необходимо ввести соответствующие значения

Сегмента и его смещения в показанные на рисунке 7 поля и нажать кнопку

" Чтение".

Рисунок 9 - Команда чтения байта из адресного пространства процесса по

Номеру сегмента и смещению

Для осуществления записи байта в адресное пространство процесса по

Номеру сегмента и смещению необходимо ввести соответствующие значения

Сегмента, его смещения и значение в показанные на рисунке 24 поля и нажать

кнопку " Запись".

Рисунок 10 - Команда записи байта в адресное пространство процесса по

Номеру сегмента и смещению.

Для осуществления чтения (записи) данных из файла в адресное

Пространство процесса необходимо задать имя файла, смещение в файле и

количество считываемых (записываемых) байт и нажать кнопку " Чтение"

(" Запись" ), показанные на рисунке 10.

Рисунок 11 - Команда чтения (записи) данных из файла в адресное

Пространство процесса

Вкладка " Память", показанная на рисунке 11 отображает карту памяти, с

Закрашиванием блоков, используемых процессами.

Рисунок 12 - Вкладка " Память"

Для отображения содержимого участка памяти необходимо ввести

соответствующее значения адреса в поле " Адрес" и нажать кнопку

" Содержимое", показанное на рисунке 12.

Рисунок 13 - Показать содержимое участка памяти (256 байт) виртуальной

Машины начиная с указанного адреса

Вкладка " Диск" предназначена для работы с подсистемой управления

диском, позволяет осуществлять следующие функции: создавать, удалять файл;

Считывать, изменять содержимое файла; отображать содержимое файла,

Показана на рисунке 13.

Рисунок 14 - Вкладка " Диск"

Для работы с файлом необходимо нажать соответствующую кнопку, что

Показано на рисунке 13.

Рисунок 13 - Работа с файлом, выбранным в каталоге.

Для отображения содержимого диска необходимо ввести в поле значение

сектора и нажать кнопку " Содержимое", что показано на рисунке 13.

Рисунок 14 - Отобразить содержимое указанного сектора.

Для выполнения данного задания запускаем, исходники проекта,

выбираем необходимый вариант задания.

Рисунок 15 - Отобразить содержимое указанного сектора.

Ниже приведем исследовательскую часть, задания которая

опишет исполнение данных алгоритмов задания.

ИССЛЕДОВАТЕЛЬСКАЯ ЧАСТЬ

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

Control.cpp

#include " control.h"

#include < stdio.h>

//-------------------------------------------------------------

// методы для получения текущего состояние машины

//-------------------------------------------------------------

// запуск подсистем управления

DLLFUNC void Start() {

AddLog(" Start\r\nНачинаем работу\r\n" );

}

// остановка подсистем управления

DLLFUNC void Stop() {

AddLog(" Stop\r\nПрекращаем работу\r\n" );

}

//enum eProcessStatus = { NotExist = 0, Execute = 1, Ready = 2, Wait = 3};

// получить информацию о процессах в системе

// размер буфера = 100

// lpProcStatusBuffer - буфер для сохранения информации о статусе

Процесса

// lpProcData - буфер для сохранения дополнительной информации о

Процессе

// 1. Гарантированное планирование - номер пользователя от имени

Которого запущен процесс

// 2. SJF с предсказанием - текущая оценка процесса

// 3. Вытесняющий SJF - оставшееся время выполнения процесса

// 4. Приоритетное планирование с абсолютным приоритетом - номер

Приоритета

// 5. Многоуровневая очередь - номер приоритета

DLLFUNC void GetProcessStatus(BYTE * lpProcStatusBuffer, double *

lpProcData) {

lpProcStatusBuffer[0] = Execute;

lpProcData[0] = 5.0;

lpProcStatusBuffer[1] = Ready;

lpProcData[1] = 3.5;

lpProcStatusBuffer[2] = Ready;

lpProcData[2] = 2.0;

for (int i=3; i< 100; i++) {

lpProcStatusBuffer[i] = NotExist;

lpProcData[i] = 0.0;

}

}

//----------------------------------------

// получить количество блоков

DLLFUNC int GetPhysMemoryBlockCount() {

return 1;

}

// получить описание блоков

// lpBlockList - список описания блоков

DLLFUNC void GetPhysMemoryBlockList(PHYS_MEMORY_BLOCK *

lpBlockList) {

// количество блоков не должно превышать число, возращаемое


Поделиться:



Популярное:

  1. Изобель перестала двигаться. Она резко обернулся к Гвен.
  2. Метод тестов получил широкое распространение. Новый шаг в его развитии был сделан французским врачом и психологом А. Бине (1857—1911), создателем самой популярной серии тестов.
  3. Метод тестов получил широкое распространение. Новый шаг в его развитии был сделан французским врачом и психологом А. Бине (1857—1911), создателем самой популярной серии тестов.
  4. От королевства Джакомона осталась лишь одна колонна
  5. ПОЧЕМУ МАРИНА НЕ СТАЛА КОСМОНАВТОМ
  6. Ростовская область с давних пор стала малой родиной для многих национальностей: русских, украинцев, армян, евреев, цыган, белорусов, татар, греков. Смешанные браки – здесь обычное явление.
  7. Собственно совокупность этих явлений и стала питательной средой, благодаря которой весьма кстати появившееся учение Фрейда начало завоевывать мир.
  8. Ступень №1. Я признаю, что у меня возникла зависимость от вареной еды и моя диета стала неконтролируемой.
  9. Я не стала продлевать бюллетень, чтобы избежать комиссии, и вышла на работу с физиономией, сильно напоминающей бифштекс.


Последнее изменение этой страницы: 2016-05-28; Просмотров: 802; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.043 с.)
Главная | Случайная страница | Обратная связь