Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Логическая организация файла






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

В первом случае, когда все действия, связанные со структуризацией и интерпретацией содержимого файла целиком относятся к ведению приложения, файл представляется ФС неструктурированной последовательностью данных. Приложение формулирует запросы к файловой системе на ввод-вывод, используя общие для всех приложений системные средства, например, указывая смещение от начала файла и количество байт, которые необходимо считать или записать. Поступивший к приложению поток байт интерпретируется в соответствии с заложенной в программе логикой. Например, компилятор генерирует, а редактор связей воспринимает вполне определенный формат объектного модуля программы. При этом формат файла, в котором хранится объектный модуль, известен только этим программам. Подчеркнем, что интерпретация данных никак не связана с действительным способом их хранения в файловой системе.

Модель файла, в соответствии с которой содержимое файла представляется неструктурированной последовательностью (потоком) байт, стала популярной вместе с ОС UNIX, а теперь она широко используется в большинстве современных ОС, в том числе в MS-DOS, Windows NT/2000, NetWare. Неструктурированная модель файла позволяет легко организовать разделение файла между несколькими приложениями: разные приложения могут по-своему структурировать и интерпретировать данные, содержащиеся в файле.

Другая модель файла, которая применялась в ОС OS/360, DEC RSX и VMS, а в настоящее время используется достаточно редко, — это структурированный файл. В этом случае поддержание структуры файла поручается файловой системе. Файловая система видит файл как упорядоченную последовательность логических записей. Приложение может обращаться к ФС с запросами на ввод-вывод на уровне записей, например «считать запись 25 из файла FILE.DOC». ФС должна обладать информацией о структуре файла, достаточной для того, чтобы выделить любую запись. ФС предоставляет приложению доступ к записи, а вся дальнейшая обработка данных, содержащихся в этой записи, выполняется приложением. Развитием этого подхода стали системы управления базами данных (СУБД), которые поддерживают не только сложную структуру данных, но и взаимосвязи между ними.

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

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

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

К числу таких способов структуризации относится представление данных в виде записей, длина которых фиксирована в пределах файла (рис. 5, а). В таком случае доступ к n-й записи осуществляется либо путем последовательного чтения (n-1) предшествующих записей, либо прямо по адресу, вычисленному по ее порядковому номеру. Например, если L — длина записи, то начальный адрес n-й записи равен Lxn. Заметим, что при такой логической организации размер записи фиксирован в пределах файла, а записи в различных файлах, принадлежащих одной и той же файловой системе, могут иметь различный размер.

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

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

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

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

7. Требования, предъявляемые к многопользовательским ОС.

 

Главным требованием к операционной системе является выполнение ею основных функций эффективного управления ресурсами и обеспечение удобного интерфейса для пользователя и прикладных программ. Современная ОС, как правило, должна поддерживать мультипрограммную обработку, виртуальную память, свопинг, многооконный графический интерфейс пользователя, а также выполнять многие другие необходимые функции и услуги. Кроме этих требований функциональной полноты, к операционным системам предъявляются не менее важные эксплуатационные требования, которые перечислены ниже.

 

Расширяемость. В то время как аппаратная часть компьютера устаревает за несколько лет, полезная жизнь операционных систем может измеряться десятилетиями. Примером может служить ОС UNIX. Поэтому операционные системы всегда изменяются со временем эволюционно, и эти изменения более значимы, чем изменения аппаратных средств. Изменения ОС обычно заключаются в приобретении ею новых свойств, например, поддержке новых типов внешних устройств или новых сетевых технологий. Если код ОС написан таким образом, что дополнения и изменения могут вноситься без нарушения целостности системы, то такую ОС называют расширяемой. Расширяемость достигается за счет модульной структуры ОС, при которой про- граммы строятся из набора отдельных модулей, взаимодействующих только через функциональный интерфейс.


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

 

Совместимость. Существует несколько «долгоживущих» популярных операционных систем (разновидности UNIX, MS-DOS, Windows З.х, Windows NT, OS/2), для которых наработана широкая номенклатура приложений. Некоторые из них пользуются широкой популярностью. Поэтому для пользователя, переходящего по тем или иным причинам с одной ОС на другую, очень привлекательна возможность запуска в новой операционной системе привычного приложения. Если ОС имеет средства для выполнения прикладных программ, написанных для других операционных систем, то про нее говорят, что она обладает совместимостью с этими ОС. Следует различать совместимость на уровне двоичных кодов и совместимость на уровне исходных текстов. Понятие совместимости включает также поддержку пользовательских интерфейсов других ОС.

Надежность и отказоустойчивость. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемыми, а приложения не должны иметь возможности наносить вред ОС. Надежность и отказоустойчивость ОС прежде всего определяются архитектурными решениями, положенными в ее основу, а также качеством ее реализации (отлаженностью кода). Кроме того, важно, включает ли ОС программную поддержку аппаратных средств обеспечения отказоустойчивости, таких, например, как дисковые массивы или источники бесперебойного питания.

Безопасность. Современная ОС должна защищать данные и другие ресурсы вычислительной системы от несанкционированного доступа. Чтобы ОС обладала свойством безопасности, она должна как минимум иметь в своем составе средства аутентификации - определения легальности пользователей, авторизации - предоставления легальным пользователям дифференцированных прав доступа к ресурсам, аудита - фиксации всех «подозрительных» для безопасности системысобытий. Свойство безопасности особенно важно для сетевых ОС. В таких ОС к задаче контроля доступа добавляется задача защиты данных, передаваемых по сети.

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

 

 

8. Мультипрограммирование в системах пакетной обработки, в системах разделения времени, в системах реального времени.

 

Мультипрограммирование или многозадачность (multitasking) – это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько процессов (задач).

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

 

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

 

Диаграммы выполнения процессов А и В в однозадачном режиме (а) и многозадачном режиме (б) Общее время выполнения смеси задач оказывается меньше, чем их суммарное время последовательного выполнения. Однако выполнение отдельной задачи в мультипрограммном режиме может занять больше времени, чем при монопольном выделении процессора этой задаче. Действительно, при совместном использовании процессора в системе могут возникать ситуации, когда задача готова выполняться, но процессор занят выполнением другой задачи. В системах пакетной обработки переключение процессора с одной задачи на другую происходит по инициативе самой активной задачи. Поэтому существует высокая вероятность того, что одна задача может надолго занять процессор. Кроме того, выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающейся в системе, то есть выбирается " выгодное" задание. Следовательно, в ВС под управлением пакетных ОС невозможно гарантировать выполнение заданий в течение определенного периода времени. §4.1.3.Мультипрограммирование в системах разделения времени.

 

Системы разделения времени призваны исправить основной недостаток систем пакетной обработки – изоляцию пользователя от процесса выполнения его задач. Критерием эффективности систем разделения времени является не максимальная пропускная способность, а удобство и эффективность работы пользователя. Каждому пользователю системы разделения времени предоставляется терминал, с которого он может вести диалог со своей программой. Так как в системах разделения времени каждой задаче выделяется только квант процессорного времени, ни одна задача не занимает процессор надолго, и время ответа оказывается приемлемым. Если квант выбран достаточно малым, то у всех пользователей, одновременно работающих на одной и той же машине, складывается впечатление, что каждый из них единолично использует машину. Системы разделения времени обладают меньшей пропускной способностью, чем системы пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая " выгодна" системе. Кроме того, имеются дополнительные расходы вычислительной мощности на более частое переключение процессора с задачи на задачу. Мультипрограммирование в системах реального времени. Системы реального времени применяются для управления различными техническими объектами (станок, спутник, научная экспериментальная установка) или технологическими процессами (гальваническая линия, доменный процесс и т.п.). Критерием эффективности для систем реального времени является их способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата (управляющего воздействия). Это время называется временем реакции системы, а соответствующее свойство системы – реактивностью.

 

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

 

9. Логическая организация ФС. Структура файловой системы жёсткого диска.

 

Логическая модель файловой системы материа­лизуется в виде дерева каталогов, в символьных составных именах фай­лов, в командах работы с файлами. Базовым элементом этой модели является файл, который так же, как и файловая система в целом, может характеризоваться как логической, так и физической структурой.

 

При включении РС процессор должен начать обработку данных. Однако системная память пуста и процессор ничего не имеет для выполнения и даже не знает, куда обращаться. Чтобы РС можно было всегда загрузить независимо от имеющегося в нем BIOS, производители микросхем и BIOS сделали так, что при включении процессор всегда начинает выполнение с одного и того же места (адреса) FFFF0h.

Аналогичным образом каждый жесткий диск должен иметь согласованную " начальную точку", где хранится ключевая информация о диске, числе разделов, типах разделов и т.д. Должно также быть нечто такое, чтобы BIOS мог бы загрузить начальную программу загрузки, которая запускает процесс загрузки операционной системы. Место, где хранится вся эта информация, называется главной загрузочной записью (Master Boot Record - MBR), а также главным загрузочным сектором (master boot sector).

Главная загрузочная запись всегда находится по трехмерным координатам - цилиндр 0, голова 0 и сектор 1, т.е. в первом секторе диска. Это и есть согласованная " начальная точка", которую всегда использует диск. Когда BIOS загружает компьютер, он берет отсюда команды и информацию о том, как загрузить операционную систему. Главная загрузочная запись содержит следующие структуры:

· Главная таблица разделов: Эта небольшая таблица содержит описания разделов, имеющихся на жестком диске. В главной таблице разделов отведено место только для информации, описывающей четыре раздела. Следовательно, жесткий диск может иметь только четыре истинных раздела, называемых также первичными разделами. Все дополнительные разделы являются логическими разделами, которые " привязаны" к одному из первичных разделов.

· Главный код загрузки: Главная загрузочная запись содержит небольшую программу начальной загрузки, которую BIOS загружает и выполняет для инициирования процесса загрузки. Эта программа по окончании передает управление программе загрузки, которая хранится в том разделе, который используется для загрузки РС.

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.