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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Alexandr1966
26 / 26 / 1
Регистрация: 17.12.2012
Сообщений: 438
#1

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

23.12.2012, 15:07. Просмотров 1359. Ответов 3
Метки нет (Все метки)

Здравствуйте! Пытаюсь разобраться с механизмом обработки прерывания. Нужно написать такую программку, чтобы показать программное прерывание процесса, ДРУГИМ процессом с ВЫСШИМ ПРИОРИТЕТОМ. Допустим, изначально был запущен какой то базовый процесс, и тут происходит запуск одного из процессов с более высоким приоритетом. Вследствие чего базовый процесс находится в ожидании завершения запущенного процесса.
Буду рад и благодарен вашим предложениям и программным кодам
Программу реализовать желательно в консольном приложении Visual Studio 2008.
Реализовать можно на цифрах, вот примерно так как реализован планировщик вот здесь Алгоритм планирования Round Robin с квантом времени (переделать программу)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2012, 15:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Организация обработки прерываний (C++):

Организация прерываний в DOS - C++
Доброе время суток. Возникла проблема с прерываниями в DOS. Недавно начал изучать их использование в написании программ, так что заранее...

Обработка прерываний - C++
Доброго времени суток. Пытаюсь выполнить пример программы с использованием прерывания, взятый из справки Borland C++. #include <stdio.h>...

Обработчик прерываний - C++
Есть такое задание: "При нажатии символьной клавиши с нажатой клавишей Shift выводить её код. Для вывода использовать прерывание...

[VM] Реализация аппаратных прерываний - C++
Доброго времени суток, CyberForum. Уже как 2 месяца я пишу свой велосипед - эмулятор платформы Intel 80286. Реализовал некоторые команды,...

Как реализовать обработку прерываний в С++? - C++
Надо разработать три программных модуля, каждый процесс после запуска представляет уникальный процесс, работа которого предполагает...

Вызов функций через таблицу прерываний - C++
Уважаемые участники форума cyberforum.ru, очень нужна ваша помощь. Столкнулся с такой вот проблемой: написал класс обработки 64-битных...

3
eremeeva14
-3 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 14
24.12.2012, 05:55 #2
может тебе это материал поможет http://www.intuit.ru/department/hardware/archhard2/14/ =))
0
Alexandr1966
26 / 26 / 1
Регистрация: 17.12.2012
Сообщений: 438
26.12.2012, 03:16  [ТС] #3
я уже ознакамливался с этим материалом, и все равно не могу понять что к чему(((

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

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

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

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

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

Прерывания - также зависят от поддержки аппаратного обеспечения. При поступлении прерывания от устройств контроллер кидает процессору (одному из, в случае многопроцессорности) сигнал. При этом процессор прерывает работу выполняющегося потока, сохраняет его контекст в стеке и переходит по заранее заданному адресу в одной из системных таблиц к выполнению процедуры, связанной с данным конкретным прерыванием, при этом прерывания с тем же и более низким приоритетом маскируются (запрещаются). При поступлении прерывания с более высоким приоритетом - ситуация повторяется (т.е. процессор переходит к обработке более приоритетного прерывания и откладывает текущее на потом). После обработки прерываний продолжается исполнение прерванного потока или отложенного прерывания.
1
26.12.2012, 10:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2012, 10:31
Привет! Вот еще темы с ответами:

Обработка прерываний с клавиатуры на С++ с применением библиотеки dos.h - C++
Добрый день! Очень сильно нуждаюсь в вашей помощи. Вот в чем вопрос: Осуществить коррекцию прерывания Int 9 (от клавиатуры) так,...

Литература для написания обработчика прерываний MS DOS - C++
Нужна литература чтобы выполнить лабораторную по теме "Использование стандартных функций и разработка собственных прерываний в ОС MSDOS"....

Создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка С, но не применять их в своей функции - C++
Доброго времени суток! Крайне необходима помощь экспертов в С++! Кто может - не оставьте меня в беде))) Вот задания: 3. Создать...

Используя подсистему прерываний написать программу, которая выводит на экран информацию о параметрах НЖМД - C++
Используя подсистему прерываний написать программу, которая выводит на экран информацию о параметрах НЖМД. $ 13 - дисковые службы ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru