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