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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
maxvell
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
#1

прерывания - C++

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

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

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

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

Таблица векторов прерывания - C++
Здравствуйте, на одном сайте видел следующую запись: static void (* near const _vect)(void) @0xFFC0 = { Dummy_ISR, //...

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

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

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

Прерывания - Assembler
Кто знает как через прерывания узнать свое оборудование на ПК(мать, проц, видяха)? Я читал что это делается через 21 прерывания, но меня...

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

Кто-нибудь знает ещё варианты?
villu
202 / 202 / 4
Регистрация: 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.
maxvell
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
25.03.2012, 20:43  [ТС]     прерывания #9
можно поподробней, что значит: пиши под DOS?
собственно clock() и пользуюсь. но он выдаёт довольно сильно различающиеся результаты.. я подумал, что это связано с прерываниеми, разве нет?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2012, 21:00     прерывания
Еще ссылки по теме:

прерывания - Assembler
Здравствуйте, подскажите, пожалуйста, как осуществить прерывание при нажатии на какую-то кнопку клавиатуры, не используя при этом int16,...

Прерывания - AVR
Здравствуйте, такая проблема: Контроллер ATMega32, при нажатии на кнопку, подключенную к PD2/INT0 должно срабатывать прерывание инт0, но...

C++ прерывания - Visual C++
Подскажите пожалуйста, если кто знает))) У меня программа в DOS, считывает данные с омметра и выводит их на консоль, в постоянном...

Прерывания - Assembler
Знатоки assemblera помогите написать программку Замаскировать прерывания от клавиатуры. По нажатию клавиши Esc розмаскировать

C++ и прерывания - Assembler
Возникла,такая ситуация:при выполнении прерывания (int 10h) в Visual studio и Borland C++ всплывают ошибки, пробовал на Viste sp1, 98se,...


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

Или воспользуйтесь поиском по форуму:
villu
202 / 202 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
25.03.2012, 21:00     прерывания #10
ну тогда смотри man times, и
man sysconf про _SC_CLK_TCK
и да, "запретить прерывания" может только модуль ядра, а под виндой, полагаю, только драйвер
Yandex
Объявления
25.03.2012, 21:00     прерывания
Ответ Создать тему
Опции темы

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