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

прерывания

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

можно ли создать такую программу, которая вообще никак не будет реагировать на прерывания?
на самом деле задался вопросом о вычислении скорости выполнения операций. Написал код, а потом вспомнил о том, как лектор рассказывал о прерываниях и понял, что результат работы программы может быть каким угодно, так как программа может не выполняться, а время будет идти.
Если отключить обработку никак нельзя, не могли бы вы подсказать, где прочитать о том, что можно делать с прерываниями в с/с++.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2012, 17:23
Ответы с готовыми решениями:

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

програмные прерывания
Как вызвать программное прерывание? Читаю книгу по системному программированию и в ней сейчас...

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

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

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

Кто-нибудь знает ещё варианты?
0
204 / 205 / 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
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
25.03.2012, 20:43  [ТС] 9
можно поподробней, что значит: пиши под DOS?
собственно clock() и пользуюсь. но он выдаёт довольно сильно различающиеся результаты.. я подумал, что это связано с прерываниеми, разве нет?
0
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
25.03.2012, 21:00 10
ну тогда смотри man times, и
man sysconf про _SC_CLK_TCK
и да, "запретить прерывания" может только модуль ядра, а под виндой, полагаю, только драйвер
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2012, 21:00

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

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

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

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


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

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

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