Форум программистов, компьютерный форум CyberForum.ru

Организация обработки прерываний - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
23.12.2012, 15:07     Организация обработки прерываний #1
Здравствуйте! Пытаюсь разобраться с механизмом обработки прерывания. Нужно написать такую программку, чтобы показать программное прерывание процесса, ДРУГИМ процессом с ВЫСШИМ ПРИОРИТЕТОМ. Допустим, изначально был запущен какой то базовый процесс, и тут происходит запуск одного из процессов с более высоким приоритетом. Вследствие чего базовый процесс находится в ожидании завершения запущенного процесса.
Буду рад и благодарен вашим предложениям и программным кодам
Программу реализовать желательно в консольном приложении Visual Studio 2008.
Реализовать можно на цифрах, вот примерно так как реализован планировщик вот здесь Алгоритм планирования Round Robin с квантом времени (переделать программу)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eremeeva14
-3 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 14
24.12.2012, 05:55     Организация обработки прерываний #2
может тебе это материал поможет http://www.intuit.ru/department/hardware/archhard2/14/ =))
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
26.12.2012, 03:16  [ТС]     Организация обработки прерываний #3
я уже ознакамливался с этим материалом, и все равно не могу понять что к чему(((

Добавлено через 3 часа 8 минут
готов еще посмотреть ваши предложения и советы))

Добавлено через 2 часа 59 минут
кто-нибудь сталкивался с такой реализацией??

Добавлено через 2 часа 24 минуты
друзья, кто-нибудь подскажите как сделать код...

Добавлено через 12 часов 28 минут
кто ОС изучает, помогите разобраться)
WhiteP
605 / 203 / 23
Регистрация: 20.11.2012
Сообщений: 419
26.12.2012, 10:31     Организация обработки прерываний #4
Alexandr1966,
Что значит процесс с более высоким приоритетом? И причем тут прерывания? Не понятно о чем речь - о планировании потоков планировщиком, или же все-таки прерывания?

Единицей исполнения в реальной системе является поток, а не процесс (хотя приоритет для процессов тоже устанавливается, который влияет в конечном счете на приоритет потоков данного процесса). Процесс в обычном случае (вернее его потоки) с более низким приоритетом не будет ждать, пока выполнится процесс с более высоким, т.к. при нехватке процессорного времени Windows периодически динамически повышает приоритет голодающего потока до уровня Time Critical. Несколько иная ситуация с потоками реального времени... В многопроцессорной (многоядерной) системе планирование ко всему прочему учитывает состояние каждого из процессоров, и выполняет готовые потоки на простаивающем процессоре. Планирование производится по аппаратному прерыванию от системных часов.

Прерывания - также зависят от поддержки аппаратного обеспечения. При поступлении прерывания от устройств контроллер кидает процессору (одному из, в случае многопроцессорности) сигнал. При этом процессор прерывает работу выполняющегося потока, сохраняет его контекст в стеке и переходит по заранее заданному адресу в одной из системных таблиц к выполнению процедуры, связанной с данным конкретным прерыванием, при этом прерывания с тем же и более низким приоритетом маскируются (запрещаются). При поступлении прерывания с более высоким приоритетом - ситуация повторяется (т.е. процессор переходит к обработке более приоритетного прерывания и откладывает текущее на потом). После обработки прерываний продолжается исполнение прерванного потока или отложенного прерывания.
Yandex
Объявления
26.12.2012, 10:31     Организация обработки прерываний
Ответ Создать тему
Опции темы

Текущее время: 13:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru