Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / СПО3.doc
Скачиваний:
63
Добавлен:
11.02.2014
Размер:
552.71 Кб
Скачать

Особенности ntfs:

-высокая надежность за счет механизма транзакций, при котором осуществляется журналирование файловых операций (фиксирование в специальный служебный файл происходящих изменений);

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

-поддержка POSIX (Portable operation system for computing environments). Международный стандарт на машинно-независимый интерфейс компьютерной среды, основное внимание в требованиях которого уделяется взаимодействию прикладных программ с ОС (т.е. программы в данном стандарте легко переносить из одной ОС в другую).

- гибкость - размер кластера может изменяться от 512 байт до 64 Кбайт,

Трансляторы, компиляторы и интерпретаторы

Транслятор - программа, которая переводит входную программу на исходном (входном) языке в эквивалентную ей выходную программу на результирующем (выходном) языке.

ПРИМЕР: трансляция программы с языка Паскаль на язык Ассемблер.

Компилятор - это транслятор, который осуществляет перевод исходной программы и эквивалентную ей объектную программу на языке машинных команд или языке ассемблера.

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

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

Процесс компиляции состоит из двух основных этапов - синтеза и анализа. На этапе АНАЛИЗА выполняется распознавание текста исходной программы, создание и заполнение таблиц идентификаторов. Результатом его работы служит некое внутреннее представление программы, понятное компилятору.На этапе СИНТЕЗА на основании внутреннего представления программ, а также информации, находящейся в таблице идентификаторов, порождается текст результирующей программы. Результатом этого этапа является объектный код.

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

Лексический анализ (сканер) - это часть компилятора, которая читает исходную программу и выделяет в её тексте лексемы входного языка, которые заносит в итоговую таблицу лексем.

Лексема (лексическая единица языка) - это структурная единица языка, которая состоит из элементарных символов языка и не содержит в своем составе других структурных единиц языка. Лексемами языков программирования являются идентификаторы, константы, ключевые слова языка, знаки операций и т.п.

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

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

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

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

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

Этапысемантического анализа:

--проверка соблюдения во входной программе семантических соглашений входного языка:

-каждая метка, на которую есть ссылка должна присутствовать;

-идентификатор должен быть описан один раз;

-типы должны быть согласованы между собой;

-число фактических параметров должно быть согласовано с числом и типом формальных параметров.

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

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

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

Например: - каждая переменная должна хотя бы раз использоваться в программе;

-цикл должен быть завершен;

-выполнение операторов условий по каждой из своих ветвей и т.д.

Подготовка к генерации кода - это фаза, на которой компилятором

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

--идентификация элементов языка - установление соответствия между объектами и их именами в тексте исходной программы:

-имена локальных переменных дополняются именами блоков, в которых они описаны;

-имена процедур и функций модифицируются в зависимости от типов их формирующих аргументов и т.д.

--распределение памяти - это процесс, который ставит в соответствие лексическим единицам исходной программы адрес, размер и атрибуты области памяти, необходимой для этой лексической единицы.

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

Таблицы идентификаторов.

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

Эти таблицы могут хранить следующую информацию:

Для переменных - имя переменной, тип данных, область памяти;

Для констант - имя, значение;

Для функций - имя, количество и тип формальных аргументов, тип результата, адрес кода;

Понятие сетевых и распределенных ОС.

В зависимости от того, какой виртуальный образ создает ОС для того, чтобы подменить им реальную аппаратуру персональной сети разделяют:

а) сетевой ОС (СОС),

б) распределенная ОС (РОС)

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

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

-Как ОС отдельного компьютера, способного работать в сети, т.е. если ОС отдельного компьютера позволяет ему работать в сети, т.е. предоставляет свои ресурсы в общее пользование и (или) потреблять ресурсы других ЭВМ в сети.

Соседние файлы в папке лекции