Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
maxvell
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
1

прерывания

25.03.2012, 17:23. Просмотров 1653. Ответов 9
Метки нет (Все метки)

можно ли создать такую программу, которая вообще никак не будет реагировать на прерывания?
на самом деле задался вопросом о вычислении скорости выполнения операций. Написал код, а потом вспомнил о том, как лектор рассказывал о прерываниях и понял, что результат работы программы может быть каким угодно, так как программа может не выполняться, а время будет идти.
Если отключить обработку никак нельзя, не могли бы вы подсказать, где прочитать о том, что можно делать с прерываниями в с/с++.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2012, 17:23
Ответы с готовыми решениями:

Прерывания asm
Не могу использовать прерывания(int) в встроенном ассемблере. Вылезает ошибка...

Условие прерывания цикла
Из-за чего происходит(условие прерывания) выход из цикла? Мои предположения...

Таблица векторов прерывания
Здравствуйте, на одном сайте видел следующую запись: static void (* near...

Механизм прерывания ввода
Ребят, передо мной стоит задание написать функцию, которая принимает в качестве...

Программа обработки прерывания от клавиатуры должна:
1. Распознавать нажатие горячей комбинации клавиш и реагировать на него звуком...

9
NoMasters
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,178
25.03.2012, 18:54 2
Монопольно пользоваться всеми ресурсами, очевидным образом, можно только в однозадачной системе.
0
Kuzia domovenok
2435 / 2142 / 523
Регистрация: 25.03.2012
Сообщений: 7,714
Записей в блоге: 1
25.03.2012, 19:25 3
А какая система то? Что ж ты молчишь? Отвечай!
Ты под Windows пишешь?
Или может быть под DOS?
Или микроконтроллеры программируешь?
0
maxvell
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
25.03.2012, 19:30  [ТС] 4
пишу под linux ubuntu. но могу и под виндой - не принципиально. Интересно, имеется ли вообще такая возможность? или можно ли её как-нибудь эмулировать, если возможно только в однозадачных системах?
0
Kuzia domovenok
2435 / 2142 / 523
Регистрация: 25.03.2012
Сообщений: 7,714
Записей в блоге: 1
25.03.2012, 19:40 5
Цитата Сообщение от maxvell Посмотреть сообщение
пишу под linux ubuntu. но могу и под виндой - не принципиально. Интересно, имеется ли вообще такая возможность? или можно ли её как-нибудь эмулировать, если возможно только в однозадачных системах?
Тебе же сказали, в многозадачных системах работа с прерываниями запрещена и бессмысленна.
Скажи лучше зачем тебе понадобились прерывания.
0
maxvell
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
25.03.2012, 19:48  [ТС] 6
я написал в начале, что нужны не прерывания, а их отсутствие.
нужно протестировать время работы алгоритма. для этого используется clock() из ctime. так вот, чтобы измерения были более точными, нужно, если прерывания вызываются, сохранить текущее значение clock(), а при возврате к программе - измерить clock() заново и продолжить работу. Есть что-нибудь подходящее или где-нибудь можно об этом прочитать?
0
Kuzia domovenok
2435 / 2142 / 523
Регистрация: 25.03.2012
Сообщений: 7,714
Записей в блоге: 1
25.03.2012, 19:55 7
Цитата Сообщение от maxvell Посмотреть сообщение
я написал в начале, что нужны не прерывания, а их отсутствие.
нужно протестировать время работы алгоритма. для этого используется clock() из ctime. так вот, чтобы измерения были более точными, нужно, если прерывания вызываются, сохранить текущее значение clock(), а при возврате к программе - измерить clock() заново и продолжить работу. Есть что-нибудь подходящее или где-нибудь можно об этом прочитать?
Понимаешь, для многозадачных систем ты просишь невозможное (поправьте если я ошибаюсь)
Ну представь ситуацию, пользователь щёлкнул по твоей программе, она стала засекать скорость алгоритма, и тут пользователь одновременно начал играть в "Сапёра".
Как ты запретишь ему это делать?
Отсюда вывод, оценивай производительность алгоритма либо косвенно (добавь в программу счётчик операций)
Либо пиши под DOS.

Кто-нибудь знает ещё варианты?
0
villu
203 / 204 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
25.03.2012, 20:07 8
можно ли создать такую программу, которая вообще никак не будет реагировать на прерывания?
на самом деле задался вопросом о вычислении скорости выполнения операций. Написал код, а потом вспомнил о том, как лектор рассказывал о прерываниях и понял, что результат работы программы может быть каким угодно, так как программа может не выполняться, а время будет идти.
Если отключить обработку никак нельзя, не могли бы вы подсказать, где прочитать о том, что можно делать с прерываниями в с/с++.
А зачем? Если под линукс пишешь, то есть такой вызов clock, (time.h), который
SYNOPSIS
#include <time.h>

clock_t clock(void);

DESCRIPTION
The clock() function returns an approximation of processor time used by the program.

RETURN VALUE
The value returned is the CPU time used so far as a clock_t; to get the number of seconds
used, divide by CLOCKS_PER_SEC. If the processor time used is not available or its value
cannot be represented, the function returns the value (clock_t) -1.
1
maxvell
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
25.03.2012, 20:43  [ТС] 9
можно поподробней, что значит: пиши под DOS?
собственно clock() и пользуюсь. но он выдаёт довольно сильно различающиеся результаты.. я подумал, что это связано с прерываниеми, разве нет?
0
villu
203 / 204 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
25.03.2012, 21:00 10
ну тогда смотри man times, и
man sysconf про _SC_CLK_TCK
и да, "запретить прерывания" может только модуль ядра, а под виндой, полагаю, только драйвер
1
25.03.2012, 21:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2012, 21:00

Изменение цвета символа с использованием системного прерывания BIOS
Всем доброго времени суток помогите пожалуйста дописать программу! Мое задание...

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

Работа с функциями BIOS драйвера клавиатуры с использованием прерывания 16H - С++
Доброго времени суток. Помогите пожалуйста написать программу на языке С++ с...


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

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

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