> man operating_systems
Переход на страницу  [1] 2 3
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
Dreamer
Среда 13.04.2005 17:57

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
Допустим, у нас есть микроядро и есть драйвер дисковой подсистемы, который оформлен в виде отдельного процесса. Какой-то программе захотелось что-то прочитать с диска, и она посылает этому драйверу сообщение. Драйвер это сообщение забирает и начинает читать с диска. А в это время какая-то третья программа тоже захотела прочитать что-то совершенно с другого винчестера или даже CD диска. И она тоже посылает сообщение. Так что это получается: пока драйвер не обработает прежнего сообщения, новое не будет обработано? И при этом теряется драгоценное время. Так что, надо создавать хотя бы копии драйверов для каждого из физических дисков (т.е. винчестеров и CD-ROM'ов)? Объясните, plz.


Жизнь на Линуксе есть!
Наверх
Dron
Среда 13.04.2005 18:20


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Ну в принципе для каждого физического носителя свои драйвера - это логично... еще есть буферизация, организация... ну много всяких моментов...

ТО есть многие могут хотеть... пусть просят... но драйвер не обязан бегать за каждым... он собирает все запросы и смотрит как ему лучше это дело обработать...

А время - ну оно так и так уходит... дисковые операции они почти что самые длительные...


Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
Dreamer
Среда 13.04.2005 22:09

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
То есть для каждого винчестера должен быть свой драйвер? Не жирновато ли?

Жизнь на Линуксе есть!
Наверх
Freeman
Среда 13.04.2005 23:20
ID пользователя #3
Зарегистрирован: Четверг 01.07.2004 14:57
Сообщений: 207
Как в Винде
Наверх
ddc
Четверг 14.04.2005 00:31
Free Software Zealot


ID пользователя #202
Зарегистрирован: Воскресенье 06.02.2005 09:32
Местонахождение: Москва
Сообщений: 189
Dreamer
Вопрос реализации вторичен. Хотя с микроядром эффективней иметь по опии драйвера на каждое устройство. А драйвер должен уметь держать очередь запросов.

Но это всё, конечно, моё сугубо личное мнение...
Наверх
Dron
Четверг 14.04.2005 10:31


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Вот моя система планируется многопоточной, я думаю что один драйвер, но отдельные потоки занимаются менеджментом очереди, другие потоки непосредственно качают...

А насчет одного драйвера/разных драйверов...
Это зависит от устройства... я честно говоря не особо представляю низменную механику работы с приводами... (не дошел еще до этого...)

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
Dron
Четверг 14.04.2005 11:05


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
По любому единообразно работать с сидиромами/харддисками/флопами/флешками можно только на высоком уровне... ибо обрабатываются они по разному...

ЗЫ: А вот это уже вполне содержательное сообщение.

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
vilmor
Четверг 14.04.2005 11:30
ID пользователя #140
Зарегистрирован: Пятница 29.10.2004 17:09
Местонахождение: Tomsk, Russia
Сообщений: 35
Dreamer, твой вопрос относится, пожалуй, не к проблеме микрояда, а к различным видам IPC.

Если процесс драйвера ("сервер") забирает сообщения из очереди в одном треде, то запросы будут обрабатываться последовательно, что станет узким местом в системе. Полоение можно улучшить, если забирать сообщения из очереди сразу в нескольких потоках "сервера", или если брать из очереди следующее сообщение, не дожидаясь завершения обработки предыдущего запроса, выполнение которого можно перенаправить в другой тред "сервера".

Но есть принципиально иной подход к реализации посылки сообщений, при котором вообще нет никаких очередей. Он заключается в том, что пересылка сообщения от клиента к серверу сводится к вызову процедуры в процессе сервера. При этом, эта процедура на сервере будет работать в том же треде, что и клиент. Т.е., тред клиента как бы переходит на время из клиентского процесса в серверный.
Данный способ можно сделать довольно эффективным, но тут ещё надо решить кое-какие проблемы, связанные с безопасностью. Примеры таких систем можно видеть в Spring и EROS.
Наверх
Сайт
sem
Воскресенье 24.04.2005 11:11
ID пользователя #76
Зарегистрирован: Вторник 31.08.2004 23:07
Местонахождение: Молдавия
Сообщений: 27
-----------------
<span class='smallblacktext'>[ Редактирование вторник 26.04.2005 12:40 ]</span>
Наверх
Dron
Понедельник 25.04.2005 10:34


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Нет смысла на каждый винт свой драйвер, вполне логично, если на все винты один драйвер... (хотя буфера по любому надо обособлять... Я так наверное процессы разные порождать буду, всеравно память будет шарится, а буфера по любому разнесены...)

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
Переход на страницу  [1] 2 3  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.