Все о моделировании в Компас-3D LT
   Главная Статьи Файлы Форум Ссылки Категории новостей
October 11 2026 18:06:18   
Навигация
Главная
Статьи
Файлы
FAQ
Форум
Ссылки
Категории новостей
Обратная связь
Фото галерея
Поиск
Разное
Карта Сайта
Популярные статьи
Что необходимо ... 65535
4.12.1 Професси... 37247
Учимся удалять!... 33668
Примеры, синони... 24700
Декартовы коорд... 24368
Просмотр готовы... 24098
FAST (методика ... 22802
содержание - се... 22168
Просмотр готовы... 21205
Работа с инстру... 16886
Сейчас на сайте
Гостей: 2
На сайте нет зарегистрированных пользователей

Пользователей: 9,955
новичок: Logyattella
Друзья сайта
Ramblers Top100
Рейтинг@Mail.ru

Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ по Delphi
Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog
10.4.2 Анализ потоков
Ричи упоминает о том, что им была предпринята попытка создания потоков только с процедурами "вывода" или только с процедурами обслуживания. Однако, процедура обслуживания необходима для управления потоками данных, так как модули должны иногда ставить данные в очередь, если соседние модули на время закрыты для приема данных. Процедура "вывода" так же необходима, поскольку данные должны иногда доставляться в соседние модули незамедлительно. Например, строковому интерфейсу терминала нужно вести эхо-сопровождение ввода данных на терминале в темпе с процессом. Системная функция write могла бы запускать процедуру "вывода" для следующей очереди непосредственно, та, в свою очередь, вызывала бы процедуру "вывода" для следующей очереди и так далее, не нуждаясь в механизме диспетчеризации. Процесс приостановился бы в случае переполнения очередей для вывода. Однако, со стороны ввода модули не могут приостанавливаться, поскольку их выполнение вызывается программой обработки прерываний, иначе был бы приостановлен совершенно безобидный процесс. Связь между модулями не должна быть симметричной в направлениях ввода и вывода, хотя это и делает схему менее изящной.
Также было бы желательно реализовать каждый модуль в виде отдельного процесса, но использование большого количества модулей привело бы к переполнению таблицы процессов. Модули наделяются специальным механизмом диспетчеризации — программным прерыванием, независимым от обычного планировщика процессов. По этой причине модули не могут приостанавливать свое выполнение, так как они приостанавливали бы тем самым произвольный процесс (тот, который прерван). Модули должны хранить внутри себя информацию о своем состоянии, что делает лежащие в их основе программы более громоздкими, чем если бы приостановка выполнения была разрешена.
В реализации потоков можно выделить несколько отклонений или несоответствий:
• Учет ресурсов процесса в потоках затрудняется, поскольку модулям необязательно выполняться в контексте процесса, использующего поток. Ошибочно предполагать, что все процессы одинаково используют модули потоков, поскольку одним процессам может потребоваться использование сложных сетевых протоколов, тогда как другие могут использовать простые строковые интерфейсы.
• Пользователи имеют возможность переводить терминальный драйвер в режим без обработки, в котором функция read возвращает управление через короткий промежуток времени в случае отсутствия данных (например, если newtty.c_cc[VMIN] = 0 на Рисунке 10.17). Эту особенность сложно реализовать в потоковой среде без подключения специальной программы на уровне заголовка потока.
• Потоки выступают средствами линейной связи и не могут позволить производить с легкостью мультиплексирование на уровне ядра. В примере использования окон, рассмотренном в предыдущем разделе, выполнялось мультиплексирование на уровне пользовательского процесса.
Несмотря на эти несоответствия, с потоками связываются большие надежды в совершенствовании разработки модулей драйвера.
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Случайные статьи
Загрузка карт
Конфигурация ядра
Быстрое продление ...
Код Хемминга
Методы «точно в ср...
4.7 Защита от пере...
Прокладка маршрута
Глава вторая
Глава 8. Acer n35
4.12.3.4 Структурн...
До 300 долларов
6.5.6 Освобождение...
5.6 CLOSЕ
Альтернативные» се...
3. Декомпозиция пр...
Настройки телефона...
ОГЛАВЛЕНИЕ
Разрешенные связи
КРАТКОЕ ЗАКЛЮЧЕНИЕ
ГЛАВА 11. ВЗАИМОДЕ...
ГЛАВА 8. ДИСПЕТЧЕР...
Глава четвертая. ...
2.4.7.1 Идея цикли...
3.3 МЕХАНИЗМ ПОИСК...
Технические характ...
2. Подходы к оптим...
Программное обеспе...
Что для нас будет ...
Правила
Калибруем
Среда передачи данных
Страница «Информац...
Проверка внедрения
Глава 3. Принцип р...
Сильные и направле...
2.2.1. Проводные к...
Рассуждения по ан...
Уникальный идентиф...
Экран
Метод доступа в се...
Мини-чат
Вам необходимо залогиниться.

Нет присланных сообщений.
Copyright © 2009