OSDev

для всех
Текущее время: 24 авг 2025, 02:42

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 179 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 18  След.
Автор Сообщение
СообщениеДобавлено: 06 фев 2012, 03:18 

Зарегистрирован: 25 май 2010, 20:58
Сообщения: 136
iz56 писал(а):
http://www.mobile-review.com/articles/2011/android-multitask.shtml материал про многозадачность в андроид

Спасибо, хорошая статья!
iz56 писал(а):
Вытесняющую можно реализовать программно - без TSS. Ну и технически красиво когда всем задачам процессорное время поровну. К тому же программы для такой ос (вытесн.) могут ничего и не знать о том что ос многозадачная.

TSS, как его не назови, (хоть сегмент состояния задачи, хоть область памяти для хранения контекста потока) не начнёт от этого меньше весить. Технически красиво, когда логика работы системы не нарушает логику работы программы. Потоки в вытесняющей ос не могут не знать о том, что система многозадачная, т.к. явно вызывают функции синхронизации.
{На базе вытесняющей системы (со всеми её достоинствами) можно в любой момент реализовать кооперативную систему в одном из потоков. Обратная ситуация - невозможна или нецелесообразна.} <- главный аргумент.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 фев 2012, 03:31 
Аватара пользователя

Зарегистрирован: 16 апр 2010, 10:10
Сообщения: 320
Откуда: Псковская обл.
Mr.McD. писал(а):
Не знаю, возможно-ли здесь даже отказаться от страничной памяти, представленной в виде кучи, в пользу некой "файловой системы". Чего-то, наподобие RAM-диска...

Даже если забыть о производительности - то всё равно излишняя сложность - файловая система специально придумана для организации дисковой памяти. Видимо проще тогда как-то более сложно именовать части-куски памяти - типа как в БД.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 фев 2012, 03:31 

Зарегистрирован: 25 май 2010, 20:58
Сообщения: 136
iz56 писал(а):
В случае запуска приложений дос в ос Windows NT,XP - приложения эти работают не зная что они "многозадачные".

Прошу не путать виртуализацию и многозадачность. Но даже если запустить Дос в отдельном потоке, а не виртуальном окне, то станет вопрос: а смысл? - всё равно он не сможет общаться с остальными потоками, т.к. придётся явно вызывать механизмы ядра, и придётся считаться с остальными потоками: в этот порт не лезь, в эту память не пиши, прерывания не запрещай... Т.е. ему ПРИДЁТСЯ знать о системе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 фев 2012, 03:36 

Зарегистрирован: 25 май 2010, 20:58
Сообщения: 136
iz56 писал(а):
Даже если забыть о производительности - то всё равно излишняя сложность - файловая система специально придумана для организации дисковой памяти. Видимо проще тогда как-то более сложно именовать части-куски памяти - типа как в БД.

Лично для меня кудааа сложнее представление в виде БД:) Не шарю я в них.. А файловая система - это условно. "Древовидная структура" или "Снежинка" куда ближе подходит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 фев 2012, 03:41 
Аватара пользователя

Зарегистрирован: 16 апр 2010, 10:10
Сообщения: 320
Откуда: Псковская обл.
Mr.McD. писал(а):
Потоки в вытесняющей ос не могут не знать о том, что система многозадачная, т.к. явно вызывают функции синхронизации.

Потоки - да , а программы - приложения могут с помощью "обёрток" системы. Есть какие-то старые оси существующие в вариантах одно и много-задачности. Советские вроде. Приложения работают.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 фев 2012, 03:45 

Зарегистрирован: 25 май 2010, 20:58
Сообщения: 136
iz56 писал(а):
Потоки - да , а программы - приложения могут с помощью "обёрток" системы. Есть какие-то старые оси существующие в вариантах одно и много-задачности. Советские вроде. Приложения работают.

Значит виртуализация... или режим бога;)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 фев 2012, 11:39 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
О, тролл-вечеринка все еще в разгаре! )))

В кооперативке тоже нужно где-то сохранять контексты потоков.

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

Некоторые синхронизирующие вызовы не относятся к взаимодействию с другими процессами/потоками в явном виде, к примеру тот же waitevent (у меня это чисто консольный механизм, поэтому даже в setevent/resetevent нет указания на получателя в явном виде). Поэтому я бы сказал, что некоторые программы могут и не знать, что они выполняются в многозадачной системе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 фев 2012, 12:45 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 977
Откуда: Дагоба
Himik писал(а):
В кооперативке переключения происходят без сохранения контекста

Ошибочно считать, что в кооперативке нет сохранения контекста. Может быть, не требуется сохранения четырёх регистров - EAX, EBX, EDX, ECX, ESI, EDI (хотя я бы во избежание глюков сохранял бы и их), но контекст всё же гораздо больше этого набора регистров (не только регистры описывают состояние задачи) и всё остальное должно сохраняться при переключении задачи.

Himik писал(а):
Представь, что компьютер управляет звездолётом, который питается от тусклого света звёзд :-)

При управлении звездолётом простая оптимизация даст на порядок больший эффект, чем отказ от сохранения 6 регистров :)

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 фев 2012, 13:23 

Зарегистрирован: 25 май 2010, 20:58
Сообщения: 136
Удивительное явление!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 фев 2012, 13:44 

Зарегистрирован: 25 май 2010, 20:58
Сообщения: 136
Да нету в кооперативке такого понятия как контекст. Нету, и всё. Всё - один поток кода. Регистры в перименных сохраняются. Тупо в перименных. Этим компилятор занимается, не разработчик ядра ос. Обычное выражение на паскале: А:=А+1 выглядит как: мув ах, а адд ах, 1 мув а, ах <- ключевой момент. Да и в любой момент "критичные потоки ядра" можно реализовать с вытеснением. А вы знаете что такое "Алгоритм Банкиров"? Это когда нужно просчитать все потенциальные взаимные блокировки в многопоточной вытесняющей системе. С матрицами здесь все "на ура"?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 179 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 18  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB