Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Переключение процессов

Ответить
Настройки темы
Переключение процессов

Новый участник


Сообщения: 35
Благодарности: 0

Профиль | Отправить PM | Цитировать


У меня в прошлом семестре был курс операционных систем. А вот только теперь меня заинтересовал такой вопрос. Мы в лабах организовывали процесс переключения процессов по прерыванию от таймера (т.е. раз в 55мс). Подскажите, как зделать это чаще. Насколько я знаю, в Windows интервал равен примерно 1мс.

Отправлено: 00:10, 17-03-2006

 

редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Перепрограммировать таймер, например.

-------
http://ivank.ru


Отправлено: 01:11, 17-03-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

lehha


Сообщения: n/a

Профиль | Цитировать


Вместо таймера поставить задержки при переключении что то вроде sleep(1);

Отправлено: 08:18, 17-03-2006 | #3


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Интервал переключения процессов называется джиффисом и для большинства операционных систем равен 10мс. Потому что 10мс это золотая середина - не забывай, чем чаще переключаешь процесс, тем больше процессорного времени тратится на переключение контекстов и меньше на решение задач. В ядрах реального времени это значение немного уменьшают. В Linux для этого изменяют значение символа HZ и перекомпилируют ядро (могу немного ошибиться в названии символа - кому нужно найдет). Как это можно изменить в Windows не знаю.

Отправлено: 23:22, 25-03-2006 | #4


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вообще, непонятно чего ты хочешь. Если ты пишешь свою ОС, то используй аппаратную многозадачность. Если ты пытаешься организовать диспетчер для нескольких своих процессов внутри готовой операционной системы, то возникает куча вопросов. Sleep() - это совершенно искуственное решение проблемы - тебе придется точно рассчитывать места ее установки. Честное слово - проще перекомпилировать ядро Linux и забыть про решение в Windows. Однако, если ты хочешь сделать все так, как вы делали это в своих лабораторных работах, то у тебя два варианта:

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

Отправлено: 23:32, 25-03-2006 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Переключение процессов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - C# Приоритет процессов Jonik-Mnimonik Программирование и базы данных 1 07-09-2008 22:26
Блокировка процессов AntiNIK Microsoft Windows 2000/XP 3 27-03-2007 23:55
Описание процессов 13ThDAY Хочу все знать 7 18-05-2006 21:34
Сканер процессов studentrsu Защита компьютерных систем 3 06-03-2005 22:57
Порождение процессов. iSage Программирование и базы данных 2 19-10-2004 17:06




 
Переход