- •Лексический анализатор, назначение, проблема определения границ лексем
- •Простейшие методы построения таблиц идентификаторов
- •Структура и основные компоненты вычислительной системы. Регистры, система прерываний.
- •Какие цели преследуется при организации таблицы символов?
- •Назначение и принципы организации таблиц идентификаторов. Хэш-адресация с использованием метода цепочек. Комбинированные способы построения таблиц идентификаторов.
- •Какими характеристиками могут обладать лексические элементы исходной программы? Какие характеристики являются обязательными?
- •Процессы и потоки в спо.
- •Построение таблиц идентификаторов по методу бинарного дерева.
- •Вопросы планирования процессов в спо
- •Назначение лексического анализатора
- •Назначение и принципы организации таблиц идентификаторов. Хэш- функции и хэш-адресация. Хэш- адресация с рехэшированием.
- •Проблема определения границ лексем
- •Мультипрограммный режим работы вычислительной системы
- •Преимущества и недостатки древовидной организации таблиц идентификаторов
- •Классификации ос. Основные функции ос
- •В чем заключается алгоритм логарифмического поиска? Какие преимущества он дает по сравнению с простым перебором и какие он имеет недостатки
- •Однозадачные ос. Подсистемы ms dos, общая схема работы
- •Построение лексических анализаторов (сканеров)
- •Многозадачные ос. Архитектура многозадачных ос
- •Общий алгоритм функционирования лексического анализатора
- •Ядро многозадачных ос
- •Проблема возникновения коллизий при формировании таблиц идентификаторов.
Преимущества и недостатки древовидной организации таблиц идентификаторов
Преимущества:
– позволяет сократить время поиска искомого элемента в таблице идентификатора, не увеличивая значительно время, необходимое на ее заполнение.
Недостатки:
– возможность вырождения последовательности идентификаторов в упорядоченный однонаправленный связный список,
– необходимость хранить две дополнительные ссылки на левую и правую ветви в каждом элементе дерева,
– работа с динамическим выделением памяти при построении дерева.
Классификации ос. Основные функции ос
Классификация ОС:
1. Однозадачные ОС. Под задачей принято понимать совокупность программ и данных, требующих для своей реализации ресурсов ЭВМ (ВУ, ОП, процессорное время). Если требуется обработать по тому же алгоритму (программе) другие данные, то надо создать другую задачу. Пример однозадачных ОС: MS DOS.
2. ОС, работающие в режиме разделения времени. В таких системах каждому пользователю отводится некоторый участок. Каждый пользователь обслуживается только в течение определенного промежутка (кванта) времени. Величина кванта зависит в основном от быстродействия ЭВМ и объема ОП. Если по истечении кванта времени задача не завершена, она снова ставится в очередь и может быть удалена из ОП во внешнюю память. Процессор тем временем приступает к выполнению следующей задачи.
ОС, работающие в режиме разделения времени подразделяются на:
Многозадачные однопользовательские системы (OS/2, Windows 95/98), в функции системы не входит защита ресурсов от других пользователей.
Многозадачные многопользовательские системы (Unix, Windows NT, OS/400). Здесь ОС должна обеспечить распределение ресурсов между пользователями и их учет, а также защиту программ и данных пользователя от доступа к ним других пользователей.
Гигаресурсные системы (VSE, VM, OS/390): ресурсы, управляемые ими, на несколько порядков большие. Их аппаратной платформой являются мэйнфреймы, в которых соотношение производительность/цена существенно выше, чем в компьютерах малой и средней мощности, но для того, чтобы это преимущество проявилось, производительность должна быть востребована в полном объеме. Поэтому в таких системах значительно больше внимания уделяется эффективности управления ресурсами.
3. ОС реального масштаба времени: обеспечивают немедленную реакцию на предусмотренные события. Работа в реальном масштабе времени означает, что поступающая в систему информация должна быть обработана в течение заданного интервала времени, с тем, чтобы результат был готов к моменту выдачи необходимых данных или управляющих воздействий. Работа в реальном масштабе времени характерна для систем управления. Примеры ОС реального времени: RT, QNX, Windows CE.
4. Распределенные ОС многопроцессорных ВС и сетей. Распараллеливание вычислительных процессов, дающее возможность повысить производительность ВС или организовать обмен информацией между ее источниками и потребителями, требует и специализированных ОС, обладающих многими качествами, не присущими ОС отдельной ЭВМ, даже работающей в локальной сети. Различаются два типа организации распределенных вычислений: на общем поле памяти и на разделенной памяти. ОС для первого случая решает задачи инициации выполнения процесса, завершения его и синхронизация протекания процессов относительно друг друга. При работе с разделяемой памятью каждый процесс имеет свой ресурс и свою локальную ОС.
Иногда используется классификация ОС по решаемым задачам:
Пакетные – выполняют задания без непосредственного взаимодействия с пользователем или объектом;
Интерактивные – работают в режиме диалога с пользователем;
Серверные - работают в режиме диалога с компьютерами локальной сети (ЛС).
Современная ОС представляет собой очень большой комплекс программ. Их можно подразделить на управляющие и системные. К первым относятся программы управления заданиями, задачами (супервизоры), данными и программы начальной загрузки и генерации ОС. Ко вторым относятся редактор связей, загрузчик и вспомогательные программы (утилиты), такие, как программы сортировки и слияния, переписи информации с носителей и т.д.
Программы управления заданиями обеспечивают считывание входных потоков заданий, анализируют паспорта задач, выделяют ресурсы машины в соответствии с требованиями задания, т.е. проделывают работу, необходимую для подготовки заданий к выполнению.
Программы управления задачами (супервизоры) – центральная часть ОС. Они осуществляют обработку всех типов прерываний, следят за ходом выполнения задач и, если нужно, вмешиваются в порядок их выполнения; организуют выделение памяти по требованиям задач и ее защиту; обеспечивают совмещение работы каналов с процессором, предоставляя процессор задаче, уже готовый к обработке информации, каналы ввода/вывода тем задачам, которым это необходимо; управляют службой времени.
Программы управления данными реализуют ввод/вывод на внешние устройства и с внешних устройств; объединяют отдельные записи в блоки; анализируют и обрабатывают ошибки в операциях ввода/вывода; переводят условные символьные наименования внешних устройств в их физические адреса. Они обеспечивают независимость программ от конкретных внешних устройств, реализуют каталогизацию информации, ее поиск и редактирование.
Программы начальной загрузки и генерации ОС осуществляют загрузку генератора ОС в «пустую» ОП и саму генерацию ОС.
Редактор связей объединяет отдельные объектные модули прикладных программ и создает новый объектный модуль или модуль, готовый к выполнению (загрузочный). Загрузчик осуществляет загрузку готовых к выполнению частей программ и их настройку по месту в ОП.
Вспомогательные программы служат для перезаписи информации с одного носителя на другой, вывода на внешние устройства, печати каталогов, создания и обновления библиотек, сортировки и слияния данных, учета работ и т.д.
Введем еще два определения ОС, уже более профессиональные:
1. ОС есть набор программ, которые распределяют ресурсы процессам.
Это взгляд со стороны внутренней структуры системного ПО.
Ресурс - это аппаратные и программные средства и данные, которые необходимы для выполнения задачи. Ресурсы можно подразделить на первичные, которые обеспечиваются аппаратными средствами (процессор, память, устройства и т.д.), и вторичные, порождаемые ОС (системные коды и структуры, файлы, семафоры, очереди и т.д.).
С точки зрения ОС процесс - это "юридическое лицо", которое получает в свое распоряжение ресурсы. Неточное, но интуитивно понятное определение процесса - "программа в стадии выполнения".
2. ОС есть набор программ, которые скрывают от пользователя детали управления оборудованием и обеспечивают ему более удобную среду.
Основные функции ОС
1). Интерфейс с пользователем. Интерфейс – это связь между двумя системами (объектами);
2). Интерфейс с внешними устройствами;
3). Управление ресурсами (ОЗУ, файловая система, и т.д.);
4). Запуск, надзор за работой и завершение прикладных программ.
Отдельно в списке возможностей, предоставляемых ОС, стоит использование системных возможностей и ресурсов со стороны прикладного ПО.
ОС загружается в память при включении компьютера автоматически и, в свою очередь, помогает загружать в ОП прикладные программы, передает им управление компьютером и, в то же время, следит за правильностью их работы, помогает их исполнению, выгружает отработавшие программы и их данные из ОП и т.д.
ОС играет роль прослойки между процессами пользователей и оборудованием системы. Процессы пользователей не имеют непосредственного доступа к системным ресурсам. Если процессу необходимо выполнить операцию с системным ресурсом, в том числе и с оборудованием, процесс выдает системный вызов. ОС интерпретирует системный вызов, проверяет его корректность, возможно, помещает в очередь запросов и выполняет его. Если выполнение вызова связано с операциями на оборудовании, ОС формирует и выдает на оборудование требуемые управляющие воздействия. Оборудование, выполнив операцию, заданную управляющими воздействиями, сигнализирует об этом прерыванием. Прерывание поступает в ядро ОС, которое анализирует его и формирует отклик для процесса, выдавшего системный вызов. Если выполнение системного вызова не требует операций на оборудовании, отклик может быть сформирован немедленно.