Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВОПРОСЫ К ЭКЗАМЕНУ ОС.doc
Скачиваний:
11
Добавлен:
23.09.2019
Размер:
612.35 Кб
Скачать

28 Последовательность обработки прерываний нижним уровнем ос.

1. Сохранить все регистры (включая PSW), которые еще не были сохранены аппаратурой, вызвавшей прерывание.

2. Установить контекст для процедуры обработки прерывания. Здесь может быть задействована установка TLB, MMU и таблицы страниц.

3. Установить стек для процедуры обработки прерывания.

4. Послать подтверждение контроллеру прерываний. В отсутствие централизованного контроллера прерываний разрешить прерывания.

5. Скопировать регистры из того мета, где они были сохранены (возможно, из какого-нибудь стека), в таблицу процессов.

6. Запустить процедуру обработки прерывания, которая извлечет информацию из регистров контроллера устройства, вызвавшего прерывание.

7. Выбрать следующий запускаемый процесс. Если прерывание привело к готовности какого-то ранее заблокированного процесса, имеющего высокий уровень приоритета, то теперь может быть выбран запуск именно этого процесса.

8. Установить контекст MMU для следующего запускаемого процесса. Могут потребоваться и некоторые установки TLB.

9. Загрузить регистры нового процесса, включая его PSW.

10. Запустить выполнение нового процесса.

29 Поток. Определение. Отличие потока от процесса. Примеры применения потоков.

Приложение, разработанное для Windows, состоит из одного или более процессов (рис. 1.3). Процесс - это, попросту говоря, выполняемая программа. Ему принадлежат адресное пространство и выделенные ресурсы, а также один или более потоков, выполняющихся в его контексте.

Рис. 1.3 Приоритеты потоков

Поток - это основная единица, которой операционная система выделяет процессорное время, и минимальный "квант" кода, который может быть запланирован для выполнения. Кроме того, это часть процесса, выполняющаяся в каждый момент времени. Поток работает в адресном пространстве процесса и использует ресурсы, выделенные процессу.

Любой процесс содержит хотя бы один поток. Каждый процесс 16-разрядного Windows-приложения или программы MS-DOS имеет только один поток, тогда как процессы 32-разрядных Windows-приложений могут включать их несколько.

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

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

Процесс располагает определенными ресурсами. Он размещен в некотором виртуальном адресном пространстве, содержащем образ этого процесса. Кроме того, процесс управляет другими ресурсами (файлы, устройства ввода / вывода и т.д.).

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

Если рассматривать эти характеристики независимо друг от друга (как это принято в современной теории ОС), то:

владельцу ресурса, обычно называемому процессом или задачей, присущи:

виртуальное адресное пространство;

индивидуальный доступ к процессору, другим процессам, файлам, и ресурсам ввода - вывода.

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

состояние выполнения (активное, готовность и т.д.);

сохранение контекста потока в неактивном состоянии;

стек выполнения и некоторая статическая память для локальных переменных;

доступ к пространству памяти и ресурсам своего процесса.

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