
- •1. Эволюция операционных систем Операционные системы
- •Эволюция ос
- •2. Операционные системы (ос). Классификация ос по особенностям алгоритмов управления.
- •4. Поддержка многонитевости систем
- •3. Операционная система. Классификация спо по особенности аппаратных платформ.
- •1. Ос больших машин
- •Особенности методов построения.
- •5. Процесс, состояния процесса, свойства процессов.
- •Свойства процессов.
- •Процесс. Классификация процессов.
- •7. Ресурс, свойства ревурсов.
- •Свойства ресурсов
- •Ресурсы. Классификация ресурсов
- •6.По функциональной избыточности (изменчивости):
- •8.По восстанавливаемости:
- •9.По характеру использования:
- •Реализация понятия последовательного процесса в операционной системе
- •Потоки (нити, треды)
- •Дисциплины диспетчеризации
- •Планирование и диспетчеризация процессов и задач
- •10. Прерывания
- •Виды прерываний:
- •Дисциплины диспетчеризации
- •12. Архитектура ос.
- •Вспомогательные модули
- •Средства аппаратной поддержки ос
- •Микроядерная архитектура
- •2.Расширяемость
- •15. Файловая система. Структура магнитного диска.
- •16. Физическая организация fat
- •Загрузочная запись dos
- •17. Файловая система hpfs
- •Структура раздела hpfs.
- •18. Ntfs
- •19.Проектирование взаимодействующих вычислительных процессов (взаимное исключение). Синхронизация посредством операции ‘проверка - устаовка’.Семафоры.
- •1.Проектирование взаимодействующих вычислительных процессов (взаимное исключение).
- •2.Синхронизация посредством операции«проверка и установка»
- •3.Семафоры
- •20. Мониторы хоара. Почтовые ящики, конвейеры, тупики. Мониторы хоара.
- •Почтовые ящики
- •Конвейеры
- •Тупики:
- •21. Структура современных систем программирования.
- •22. Основные принципы построения транслятора.
- •4. Построение на основе хэш – функции.
- •23. Лексический анализатор, синтаксический разбор основные принципы построения транслятора.
- •24. Семантический анализ, подготовка к генерации кода, генерация кода основные принципы построения транслятора.
- •25. Регистры общего назначения. Команда mov.
- •Команда mov.
- •26. Назначение сегментов. Реализация арифметических операций на ассемблере. Назначение сегментов
- •Операция умножения
- •Операция деления
- •Определение данных. Организация условного и безусловного перехода на ассемблере
- •28. Логика и организация циклических вычислений с помощью команды loop
- •Команды логических операций
- •29. Регистрфлагов
- •30. Команды обработки строковых данных в ассемблере.
- •Команды обработки строк
- •31. Понятие объектно-ориентированной модели программных компонент delphi
- •31. Структура интерфейса визуальной среды delphi
- •35. Объект: понятие, свойства.
- •Понятие Свойства и События
- •34.Основные события
- •32.Описание и назначение основных компонент выбора вариантов стандартной панели
- •Отладка модулей проекта
- •Отладка синтаксических ошибок
- •Отладка логических ошибок
- •37. Графические компоненты
23. Лексический анализатор, синтаксический разбор основные принципы построения транслятора.
Транслятор – программа, которая переводит входную программу на исходном языке на эквивалентную ей выходную программу на результирующем языке.
ПРИМЕР: трансляция программы с языка Паскаль на язык Ассемблер.
Компилятор – транслятор, который осуществляет перевод исходной программы и эквивалентную ей объектную программу на языке машинных команд. (язык Ассемблер)
Интерпретатор – программа, которая воспринимает входную программу на исходном языке и выполняет ее; но, в отличие от транслятора, интерпретаторы не порождают результирующую программу.
На этапе АНАЛИЗА выполняется распознавание исходной программы, создание и заполнение таблиц идентификатора.
На этапе СИНТЕЗА на основании внутреннего представления программ, а также информации, находящейся в таблице идентификатора, порождается результирующая программа.
Лексический анализатор (скаля)– читает исходную программу и выделяет в её тексте лексемы входного языка, которые заносит в таблицу лексем.
Например:
begin
for i:=1 to N do
fg;=fg*0.5
лексема |
тип |
значение |
begin for i := 1 to N do fg := fg * 0.5 |
ключевое слово ключевое слово идентификатор знак присвоения целочисленная константа ключевое слово идентификатор ключевое слово идентификатор знак присвоения идентификатор знак арифметической операции константа |
x1 x2 i:1 := 1 x3 N:2 x4 fg:3 := fg:3 * 0.5 |
(Таблица идентификаторов i, N, fg и т.д.)
Строится на основе КА, но должен также
а) четко определять границы лексем, т.е. выделять строки из входного потока символов для распознавания (как правило, границы лексем определяются по пробелам, символам комментариев, разделителям ( , ; и т.д.))
б) выполнять действия для сохранения информации об обнаруженной лексеме.
Синтаксический разбор – выявляет основные синтаксические конструкции входного языка, устанавливает их тип и проверяет правильность.
В нем исследуется таблица лексем, которая поступает на его вход. Синтаксический анализатор исследует только тип лексемы.
Строится на основе МП-автомата.
24. Семантический анализ, подготовка к генерации кода, генерация кода основные принципы построения транслятора.
Транслятор – программа, которая переводит входную программу на исходном языке на эквивалентную ей выходную программу на результирующем языке.
ПРИМЕР: трансляция программы с языка Паскаль на язык Ассемблер.
Компилятор – транслятор, который осуществляет перевод исходной программы и эквивалентную ей объектную программу на языке машинных команд. (язык Ассемблер)
Интерпретатор – программа, которая воспринимает входную программу на исходном языке и выполняет ее; но, в отличие от транслятора, интерпретаторы не порождают результирующую программу.
На этапе АНАЛИЗА выполняется распознавание исходной программы, создание и заполнение таблиц идентификатора.
На этапе СИНТЕЗА на основании внутреннего представления программ, а также информации, находящейся в таблице идентификатора, порождается результирующая программа.
4. Семантический анализ – проверяет правильность текста исходной программы с точки зрения семантики входного языка, а также преобразует текст, в соответствии с семантикой входного языка.
Входные данные: таблица идентификаторов; результаты разбора синтаксических конструкций входного языка.
Этапы семантического анализа:
а) проверка соблюдения во входной программе семантических соглашений входного языка:
– каждая метка, на которую есть ссылка должна присутствовать;
– идентификатор должен быть описан один раз;
– типы должны быть согласованы между собой;
– число фактических параметров должно быть согласовано с числом и типом формальных параметров.
б) дополнение внутреннего представления программы в компиляторе операторами и действиями, неявно предусмотренными семантикой языка: связано с преобразованием типов операндов в выражениях и при передаче параметров в процедуры и функции.
Это выполняется с помощью библиотек функций преобразования типов, которые должны быть встроены во внутреннее представление программы в компиляторе.
в) проверка элементарных смысловых норм языков программирования, напрямую не связанные с входными языками.
Например: – каждая переменная должна хотя бы раз использоваться в программе;
– цикл должен быть завершен;
– выполнение операторов условий по каждой из своих ветвей и т.д.
5. Подготовка к генерации кода – выполнение предварительных действий, непосредственно связанных с синтезом текста результирующей программы, но еще не ведущие к порождению текста на выходном языке:
а) идентификация элементов языка – установление соответствия между объектами и их именами в тексте исходной программы:
– имена локальных переменных дополняются именами блоков, в которых они описаны;
– имена процедур и функций модифицируются в зависимости от типов их формирующих аргументов и т.д.
б) распределение памяти – установление соответствия лексических единиц исходной программы, адрес, размер и атрибуты области памяти, необходимой для этой лексической единицы.
Например: – для массивов – произведение числа элементов в массиве на размер памяти для одного элемента;
– для записей – сумма размеров памяти по всем полям структуры и т.д.
6. Генерация кода – порождение команд, составляющих предложения выходного языка и в целом результирующей программы.