- •Лексический анализатор, назначение, проблема определения границ лексем
- •Простейшие методы построения таблиц идентификаторов
- •Структура и основные компоненты вычислительной системы. Регистры, система прерываний.
- •Какие цели преследуется при организации таблицы символов?
- •Назначение и принципы организации таблиц идентификаторов. Хэш-адресация с использованием метода цепочек. Комбинированные способы построения таблиц идентификаторов.
- •Какими характеристиками могут обладать лексические элементы исходной программы? Какие характеристики являются обязательными?
- •Процессы и потоки в спо.
- •Построение таблиц идентификаторов по методу бинарного дерева.
- •Вопросы планирования процессов в спо
- •Назначение лексического анализатора
- •Назначение и принципы организации таблиц идентификаторов. Хэш- функции и хэш-адресация. Хэш- адресация с рехэшированием.
- •Проблема определения границ лексем
- •Мультипрограммный режим работы вычислительной системы
- •Преимущества и недостатки древовидной организации таблиц идентификаторов
- •Классификации ос. Основные функции ос
- •В чем заключается алгоритм логарифмического поиска? Какие преимущества он дает по сравнению с простым перебором и какие он имеет недостатки
- •Однозадачные ос. Подсистемы ms dos, общая схема работы
- •Построение лексических анализаторов (сканеров)
- •Многозадачные ос. Архитектура многозадачных ос
- •Общий алгоритм функционирования лексического анализатора
- •Ядро многозадачных ос
- •Проблема возникновения коллизий при формировании таблиц идентификаторов.
Многозадачные ос. Архитектура многозадачных ос
Архитектура ОС
Все ОС строятся по модульному принципу (планирование процессов, управление памятью, подсистема ввода-вывода и т.д.), и для них очень важны способы взаимодействия между модулями (межмодульный интерфейс), для каждого из которых определены спецификации функционирования и интерфейсы. ОС, однако, различаются по способам оформления модулей и связей между ними. Модульный состав и организация межмодульного взаимодействия и составляют архитектуру ОС.
Первой из четко сформулированных архитектурных концепций ОС была иерархия абстрактных машин. Самый нижний уровень иерархии составляет реальная машина с ее интерфейсом оборудования. Нижний слой программного обеспечения составляет первый уровень. Совместно с аппаратными средствами он представляет некоторую абстрактную машину со своим, более высокоуровневым интерфейсом оборудования. На основе этого интерфейса строится абстрактная машина второго уровня и т.д. Последовательным наращиванием слоев программного обеспечения интерфейс абстрактной машины доводится до уровня интерфейса процессов.
Следует отдельно рассмотреть архитектурную концепцию, получившую название ОС виртуальных машин. В ОС виртуальных машин интерфейс процесса выглядит как интерфейс оборудования. В предельном случае внешние формы этих двух интерфейсов совпадают полностью. В этом случае процессу доступны все команды из набора команд вычислительной системы. Но на самом деле выдача процессом привилегированной команды вызывает прерывание-ловушку. Обрабатывая ловушку, ОС выполняет для процесса требуемую команду или моделирует выполнение этой команды на виртуальном оборудовании. У процесса создается иллюзия, что в его полном распоряжении находится реальная вычислительная система
Концепция микроядра подразумевает наличие «мини-ОС», реализующей наиболее фундаментальные, критичные по времени и аппаратно-зависимые функции управления, чаще всего это: управление реальной памятью, переключение процессов, средства обмена сообщениями между процессами, а в мультипроцессорных системах - и управление загрузкой процессоров. Концепция микроядра предполагает оформление модулей ОС в виде процессов. ОС, построенные на базе микроядра обладают гибкостью в настройке, т.к. модули ОС, не входящие в микроядро могут легко заменяться, и потенциальной переносимостью, т.к. для перенесения ОС на другую платформу достаточно только переписать микроядро.
В объектно-ориентированных ОС ресурсы представляются в виде объектов - полностью инкапсулированных структур данных. Для каждого типа объектов определен набор допустимых операций над ним. Наряду с общими преимуществами, обеспечиваемыми ОО-подходом (полиморфизм, инкапсуляция), такие ОС позволяют обеспечить надежную защиту системных и пользовательских ресурсов.
Реальные ОС, как правило, сочетают в себе комбинацию различных архитектурных подходов.
Общий алгоритм функционирования лексического анализатора
Алгоритм работы сканера:
- просматривается входной поток символов программы на исходном языке до обнаружения очередного символа, ограничивающего лексему;
- для выбранной части входного потока выполняется функция распознавания лексемы;
- при успешном распознавании информация о выделенной лексеме заносится в таблицу лексем, и алгоритм возвращается к первому этапу;
- при неуспешном распознавании выдается сообщение об ошибке, а дальнейшие действия зависят от реализации сканера: либо его выполнение прекращается, либо делается попытка распознать следующую лексему.