|
Вопрос по осям - ну уж не 0xff, скорей 0xfe, соседи почти, Как предпочтительней вызывать планировщик |
|
|
|
Jan 29 2007, 01:06
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 29-01-07
Пользователь №: 24 831

|
При окончательном выходе из всех прерываний или можно из них? Я не говорю о переключателе контекста, только о планировщике.
По идее вроде как первый вариант прозрачнее - если несколько прерываний "вложились", и задали несколько условий отличающихся приоритетом и т.п., то на выходе планировщик пусть все разгребает. Чем вызывать его из каких-то под-под-программ и убивать стек почем зря, за и задымлять весь процесс.
С другой стороны, если есть какое-то прерывание, которое нужно ну просто срочняк выполнить, может сделать исключение.
А с третьей стороны, обработчики прерываний должны быть сами по себе быстрыми и на крайняк просто устанавливать скажем, флаг "необходимо перепланировать" (тупо скоректируем системый таймер, или установим его флаг, ну это уже частности)
|
|
|
|
|
 |
Ответов
|
Jan 29 2007, 07:29
|
Местный
  
Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034

|
Цитата(greezol @ Jan 29 2007, 03:06)  ... А с третьей стороны, обработчики прерываний должны быть сами по себе быстрыми и на крайняк просто устанавливать скажем, флаг "необходимо перепланировать" (тупо скоректируем системый таймер, или установим его флаг, ну это уже частности) ОСя ОСи рознь, подходы всякие. Обработчики прерываний конечно должны быть быстрыми, считал данные в буфер, "оживил" ожидающую данные задачу (задачи), и вышел. А "необходимо перепланировать" или не необходимо пусть планировщик и решает.
|
|
|
|
|
Jan 29 2007, 09:49
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 29-01-07
Пользователь №: 24 831

|
Цитата(Alex03 @ Jan 29 2007, 07:29)  Цитата(greezol @ Jan 29 2007, 03:06)  ... А с третьей стороны, обработчики прерываний должны быть сами по себе быстрыми и на крайняк просто устанавливать скажем, флаг "необходимо перепланировать" (тупо скоректируем системый таймер, или установим его флаг, ну это уже частности)
ОСя ОСи рознь, подходы всякие. Обработчики прерываний конечно должны быть быстрыми, считал данные в буфер, "оживил" ожидающую данные задачу (задачи), и вышел. А "необходимо перепланировать" или не необходимо пусть планировщик и решает. Я имею ввиду - само переключение контекстов должно происходить уже все всех прерываний?
|
|
|
|
|
Jan 29 2007, 14:31
|
Частый гость
 
Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687

|
Цитата(greezol @ Jan 29 2007, 09:49)  Я имею ввиду - само переключение контекстов должно происходить уже все всех прерываний? Конечно, т.к. на то оно и "прерывание", что прерывает основную работу, и его, по идее, имеет право приостановить лишь более высокоприоритетное прерывание, но никак не другая задача ОС. В любом случае, нужно взводить флажок о том, что требуется перепланирование, но оно должно происходить после обработки всех ожидающих прерываний. А вообще, см. совет Andy Mozzhevilov - книга действительно стоящая!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|