информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеГде водятся OGRыСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / operating systems
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
На той ОСРВ, на которой мне довелось поработать,... 17.03.04 15:45  Число просмотров: 1586
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 17.03.04 16:04  Количество правок: 3
<"чистая" ссылка>
> чем меньше этот интервал тем быстрее шедулер сможет
> получить управление и переключить выполнение задачи с одной
> на другую (страдает производительность, но увеличивается
> реалтаймость системы)
На той ОСРВ, на которой мне довелось поработать, переключение контекстов происходило не только по таймеру. По таймеру оно тоже, конечно когда-то происходило, если приложение долго (в зависимости от его приоритета) занимало процессорное время. Основное перекоючение контекстов происходило по внешним событиям, хотя, может оно и не происходило. Система находилась либо в состоянии останова ( выполнив инструкцию HATL), либо в состоянии ожидания вызова системной функции задачей, которая была активна. Чаще в состоянии останова - при набирании текста в редакторе задача (редактор) обращался к системе "жду нажатия клавиши". Как только клавиша была нажата выполнялся обработчик системы (драйвер) и иногда обработчик редактора не в зависимости от требований процессора другой задачей.
В том, что Вы описываете никакой реалтаймовости не видно или я что-то не понял. По вашему получается что пользователь, работая в редакторе нажал кнопку. Драйвер, обрабатывая прерывание, поставил символ в очередь ввода (буфер). Прошло 100 милисекунд, произошло прерывание от таймера, система посмотрела, что есть задача, которая ждет ввода и в буфере что-то есть, прекючила контекст на редактор, редактор вытащил символ из очереди и обработал его. Мне думается, что реалтаймовость, это когда любая активная задача отрабатывает события, которые к ней относятся сразу же, как они происходят в не зависимости от загруженности ЦПУ другими процессами, так, что создается иллюзия, что програма работает только сама одна.
На ПиДиПишках таймер тикает с фиксированным интервалом = 50Гц. Медленновато задачки при таком таймере переключаться будут, однако.
И еще в системе должны быть предусмотрены процессы ввода/вывода без ожидания, с вызовом обработчиков (функций в задачах) асинхронных системных прерываний, установкой / снятием флагов событий (семафоров). Т.е. в функции read() должны быть предусмотрены еще следующие параметры "производится ли чтение с ожиданием завершения или нет", "адрес функции-обработчика завершения ввода", "номер семафора" и прочие.
<operating systems> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach