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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
Mindsurfer
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 15
#1

Как реализовать обработку прерываний в С++? - C++

24.12.2012, 14:05. Просмотров 2323. Ответов 11
Метки нет (Все метки)

Надо разработать три программных модуля, каждый процесс после запуска представляет уникальный процесс, работа которого предполагает экранную визуализацию; процессы не бесконечны, и завершаются не одновременно
2. разработать планировщик задач, запускающий процессы на выполнение из очереди готовых процессов, согласно выбранной схеме (любой из вариантов, хоть один!).

Вариант 1. Реализация планировщика с двумя состояниями:
ГОТОВ <-> ВЫПОЛНЕНИЕ


Вариант 2. Реализация планировщика с тремя состояниями:
ГОТОВ <-> ВЫПОЛНЕНИЕ -> ОЖИДАНИЕ

В качестве ожидаемого события может быть выбрано нажатие определенной клавиши.

Вариант 3. Реализация планировщика с тремя состояниями, где величина кванта зависит от приоритета процесса, приоритет можно повысить или понизить.

Например: Процесс блокируется по нажатию определенной клавиши.
(+ / -) – (увеличение / уменьшение) приоритета.
Пробуждение – по нажатию той же клавиши.

1.4. Общая схема работы

1. запуск планировщика
2. инициализация процессов и постановка их в очередь готовых к выполнению
3. выбор первого процесса из очереди готовых
4. обращение к контексту процесса и запуск процесса
5. в каждом элементарном цикле обработка счетчика тиков и проверка истечения кванта:
если квант закончился – передача управления планировщику, нет продолжение работы процесса
6. для прерванного процесса запоминается контекст, а процесс ставится в очередь готовых
7. если очередь не пуста – возврат на 3, иначе завершение программы

1.5. Требования к реализации (для всех вариантов)
  • три программных модуля + планировщик
  • наличие структуры, имитирующей БУП
  • обязательно инициализируемая в начале работы очередь готовых процессов
  • возможность изменения кванта
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 14:05     Как реализовать обработку прерываний в С++?
Посмотрите здесь:

Вызов функций через таблицу прерываний C++
Организация обработки прерываний C++
Создать динамический массив. ввод,вывод и обработку элементов массива реализовать через функции C++
Организация прерываний в DOS C++
C++ Необходимо реализовать обработку исключительных ситуаций в программе
Реализовать ввод, формирование/обработку и вывод массивов с при-менением функций C++
C++ Обработчик прерываний
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.12.2012, 14:12     Как реализовать обработку прерываний в С++? #2
Прерывания - это низкий уровень, так что тебе в раздел ассемблера, паскаля, может быть решётки и джавы. На плюсах прерываний просто нет, есть: события, хуки, сигналы.
Mindsurfer
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 15
24.12.2012, 14:21  [ТС]     Как реализовать обработку прерываний в С++? #3
Господин преподаватель желает видеть в С++

Добавлено через 3 минуты
Или просто в С, да хотя бы в С#, но как-то так =_="
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
24.12.2012, 14:33     Как реализовать обработку прерываний в С++? #4
Цитата Сообщение от taras atavin Посмотреть сообщение
решётки и джавы
Откуда в них то? C++ уж более низкоуровнев.

Mindsurfer, ассемблерные вставки вам в помощь.
Mindsurfer
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 15
24.12.2012, 14:54  [ТС]     Как реализовать обработку прерываний в С++? #5
Это как? Просто ассемблер мы абсолютно не проходили... За 2 дня успею освоить настолько, чтобы справиться с этим?
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
24.12.2012, 15:24     Как реализовать обработку прерываний в С++? #6
Mindsurfer, ну тут уже все от Вас зависит.
Kastaneda
Форумчанин
Эксперт С++
4468 / 2830 / 224
Регистрация: 12.12.2009
Сообщений: 7,200
Записей в блоге: 1
Завершенные тесты: 1
24.12.2012, 15:39     Как реализовать обработку прерываний в С++? #7
При чем тут обработка прерываний если речь идет об имитации планировщика?
Это все можно сделать гораздо проще, чем кажется. По нажатию клавиши менять задачу, сохраняя ее контекст. Сомневаюсь, что нужно сохранять стек-фрейм и все регистры, достаточно сохранить значение всех переменных (т.е. ни какого ассемблера) и точку останова.

Добавлено через 1 минуту
А не, я что-то внимания не обратил на это
Цитата Сообщение от Mindsurfer Посмотреть сообщение
Надо разработать три программных модуля, каждый процесс после запуска представляет уникальный процесс
все немного сложнее
Mindsurfer
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 15
24.12.2012, 15:52  [ТС]     Как реализовать обработку прерываний в С++? #8
Но надежда у меня есть?
Kastaneda
Форумчанин
Эксперт С++
4468 / 2830 / 224
Регистрация: 12.12.2009
Сообщений: 7,200
Записей в блоге: 1
Завершенные тесты: 1
24.12.2012, 15:55     Как реализовать обработку прерываний в С++? #9
Если уверенно С++'ом владеешь, то есть
Mindsurfer
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 15
24.12.2012, 16:35  [ТС]     Как реализовать обработку прерываний в С++? #10
Можешь помочь?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.12.2012, 17:00     Как реализовать обработку прерываний в С++? #11
Цитата Сообщение от Toshkarik Посмотреть сообщение
C++ уж более низкоуровнев.
Он даже ОО.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2012, 07:22     Как реализовать обработку прерываний в С++?
Еще ссылки по теме:

Обработка прерываний C++
Обработка прерываний с клавиатуры на С++ с применением библиотеки dos.h C++
C++ Литература для написания обработчика прерываний MS DOS
Как распараллелить обработку массива данных? C++
C++ Реализовать обработку и файловую запись/чтение массива с большим количеством элементов

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

Или воспользуйтесь поиском по форуму:
silent_1991
29.12.2012, 07:22     Как реализовать обработку прерываний в С++?
  #12

Не по теме:

Цитата Сообщение от taras atavin Посмотреть сообщение
Он даже ОО.
Нет, он с поддержкой ОО-парадигмы. Писать в чисто процедурном стиле никто не запрещает, в отличие от чисто-ОО языков.

Yandex
Объявления
29.12.2012, 07:22     Как реализовать обработку прерываний в С++?
Ответ Создать тему
Опции темы

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