OSDev

для всех
Текущее время: 28 мар 2024, 22:45

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




Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
СообщениеДобавлено: 23 фев 2015, 19:02 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
Цитата:
клонирование - создание
какая разница
смысл в том что создается новая задача у которой часть или все АП общее с другой задачей

Разница большая. Клонирование - это копирование всего уже существующего. Никакого клонирования нет, есть создание, с установкой указателя директории страниц на уже существующую директорию.
Да, смысл в этом.
Цитата:
ага 25 лет было, а тут раз и пропало
у меня ВыньХП - так что у меня есть

Да чего вы никак не поймете? Механизм есть в x86, но его уже нет после перехода в x64. И при этом даже под x86 его никто не использует. Винда в том числе. В винде переключение сделано программно в ядре.
Мне один участник (Phoenix) писал про багу в VirtualBox, как раз в аппаратном переключении. На что оракулы ответили, что "никто этот механизм все равно не использует, и все популярные ОСи работают на vBox-е и так."


Последний раз редактировалось Bargest 23 фев 2015, 19:09, всего редактировалось 1 раз.

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

Зарегистрирован: 21 фев 2015, 10:39
Сообщения: 50
Bargest писал(а):
Разница большая. Клонирование - это копирование всего уже существующего. Никакого клонирования нет, есть создание, с установкой указателя директории страниц на уже существующую директорию.

андроид - линукс, а раз линукс то значит форк

Цитата:
Да чего вы никак не поймете? Механизм есть в x86, но его уже нет после перехода в x64. И при этом даже под x86 его никто не использует. Винда в том числе. В винде переключение сделано программно в ядре.
Мне один участник писал про багу в VirtualBox, как раз в аппаратном переключении. На что оракулы ответили, что "никто этот механизм все равно не использует, и все популярные ОСи работают на vBox-е и так."

есть в ХП так как там v86 запускается еще, совметимость с досом
в 7 это уже выкинуто и сделали что то типа досбокса

самое главное что от темы темы отошли


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

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
scuter писал(а):
вот это двинули.

Вот пришёл человек с новой "архитектудой", мы пытаемся её подвигать. Всё в порядке.

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

<<< OS Boot Tools. >>>


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

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
imsushka писал(а):
ну они ж реализованы программно, не аппаратно
значит их можно сделать везде

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

imsushka писал(а):
зачем 1 задаче одна страница по двум адресам ?

Зачем - это уже другой вопрос. Я хотел узнать, что в вашем процессоре произойдёт, если одну физическую страницу отобразить на две логических?

imsushka писал(а):
если у нас 1 задача и 1 процессор - проблема будет ?

Ну если вы делаете однозадачный и одноядерный процессор, то проблем не будет. Но в этом случае возвращаемся к вопросу "а в чём преимущества"?

imsushka писал(а):
Yoda писал(а):
Скажите, каким образом передаются сообщения? Что, кем и куда пишется и читается, - процесс опишите, пожалуйста.

а я не знаю :)
я на сообщениях и тормознулся когда ось писал
точнее я тормознулся на всем IPC
соответсвенно в железе тоже не реализовал

Ну вот, видите. Как же можно разрабатывать процессор под ОС, не изучив сначала концепции ОС?
Вкратце поясняю. В процессе передачи сообщений выделяется совместно используемая группа страниц памяти (shared memory). Одна задача что-то пишет в эту память, другая задача читает из неё. Конечно можно изобрести альтернативные аппаратные механизмы, но они (как следствие) будут иметь аппаратные ограничения, что крайне нежелательно. Например, при операциях файлового ввода-вывода объём данных, передаваемых между двумя задачами, может быть вообще ничем не ограничен. Таким образом, отображение одной физической страницы в два разных адресных пространства в двух задачах - совершенно необходимый механизм (а значит должна быть решена и проблема когерентности кешей). А чтобы обмен данными при этом не тормозил напрасно в сотни раз, необходимо, чтобы кеш работал на физических адресах, а не на логических.

imsushka писал(а):
отсутсвие тормозов при постоянном переключении задач (то что решено)

Вообще-то, в классических процессорах нет сильных тормозов при переключении задач (если не считать постепенное вытеснение рабочих данных и кода из кешей 2 и 3 уровней новой задачей, но эту проблему ваш процессор не решит). Парадокс заключается в том, что аппаратное переключение задач на x86 работает медленней, чем программное.

imsushka писал(а):
передача сообщений (не решено)

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

imsushka писал(а):
кароче проц заточенный под микроядро

А поскольку работа микроядра чуть более чем полностью заточена на обмен сообщениями, то ваш процессор именно для этого типа ядер совершенно непригоден.
И опять же, я не вижу, в чём именно вы видите преимущества.

imsushka писал(а):
вот чо я хотел реализовать

То, что описано, - это некоторая программная абстракция, которая должна быть реализована поверх конкретного аппаратного механизма.

imsushka писал(а):
так нужен поток параленьный? ну заводи 2 задачу с мапированной общей памятью данных, объяви эту область не кешируемой (в 1 уровня кеше) и наслаждайся жизнью

Какой жизнью? На двух ядрах в несколько десятков раз медленней, чем на одном?

imsushka писал(а):
смысл в том что создается новая задача у которой часть или все АП общее с другой задачей

Так ведь ваш процессор не позволяет объединять адресное пространство иначе чем через запрет кеширования.

imsushka писал(а):
андроид - линукс, а раз линукс то значит форк

Так ведь у вас и форк работать не будет.

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

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 фев 2015, 16:05 

Зарегистрирован: 21 фев 2015, 10:39
Сообщения: 50
Yoda писал(а):
Но при этом вы получите только часть их функциональности. Как вы уже заметили, в вашем процессоре потоки одной задачи не могут быть запущены на разных ядрах.

на 1 процессоре (4 ядра) могут быть запущены на любом ядре, в любой момент времени, без потери кеша

Цитата:
Зачем - это уже другой вопрос. Я хотел узнать, что в вашем процессоре произойдёт, если одну физическую страницу отобразить на две логических?

да ничо не произойдей, пожалуйста отображай

Цитата:
Ну если вы делаете однозадачный и одноядерный процессор, то проблем не будет. Но в этом случае возвращаемся к вопросу "а в чём преимущества"?

дык из за того что переключается все (регистры, кеш, тлб), процессор видится как 1 ядреный однозадачный


Цитата:
Ну вот, видите. Как же можно разрабатывать процессор под ОС, не изучив сначала концепции ОС?
Вкратце поясняю. В процессе передачи сообщений выделяется совместно используемая группа страниц памяти (shared memory). Одна задача что-то пишет в эту память, другая задача читает из неё. Конечно можно изобрести альтернативные аппаратные механизмы, но они (как следствие) будут иметь аппаратные ограничения, что крайне нежелательно. Например, при операциях файлового ввода-вывода объём данных, передаваемых между двумя задачами, может быть вообще ничем не ограничен. Таким образом, отображение одной физической страницы в два разных адресных пространства в двух задачах - совершенно необходимый механизм (а значит должна быть решена и проблема когерентности кешей). А чтобы обмен данными при этом не тормозил напрасно в сотни раз, необходимо, чтобы кеш работал на физических адресах, а не на логических.

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

Цитата:
Вообще-то, в классических процессорах нет сильных тормозов при переключении задач (если не считать постепенное вытеснение рабочих данных и кода из кешей 2 и 3 уровней новой задачей, но эту проблему ваш процессор не решит). Парадокс заключается в том, что аппаратное переключение задач на x86 работает медленней, чем программное.

то что шас крутиться на классических процессорах - монолит
я же хотел микроядро

Цитата:
Увы, ваш процессор не имеет возможности передавать сообщения, по крайней мере, я пока что такого механизма не вижу.

жерез шаред меморю

Цитата:
А поскольку работа микроядра чуть более чем полностью заточена на обмен сообщениями, то ваш процессор именно для этого типа ядер совершенно непригоден.
И опять же, я не вижу, в чём именно вы видите преимущества.

вот и надо придумать :)

Цитата:
То, что описано, - это некоторая программная абстракция, которая должна быть реализована поверх конкретного аппаратного механизма.

да, но идея хороша


Цитата:
Какой жизнью? На двух ядрах в несколько десятков раз медленней, чем на одном?

??????????????????????


Цитата:
Так ведь ваш процессор не позволяет объединять адресное пространство иначе чем через запрет кеширования.

кеш 1 уровня да, на 2 уровне нет запрета


Цитата:
Так ведь у вас и форк работать не будет.



злые вы


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 фев 2015, 17:34 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
imsushka писал(а):
Yoda писал(а):
Я хотел узнать, что в вашем процессоре произойдёт, если одну физическую страницу отобразить на две логических?

да ничо не произойдей, пожалуйста отображай

Хорошо, спрошу по-другому. Если два разных логических адреса отображены на один физический, что будет, если произвести запись по первому адресу, а затем чтение по второму?

imsushka писал(а):
Yoda писал(а):
Ну если вы делаете однозадачный и одноядерный процессор, то проблем не будет. Но в этом случае возвращаемся к вопросу "а в чём преимущества"?

дык из за того что переключается все (регистры, кеш, тлб), процессор видится как 1 ядреный однозадачный

Так я пока что из-за такого переключения вижу только проблемы, а не преимущества!

imsushka писал(а):
ну просто я не смог реализовать красиво, и потом приорететы поменялись (жизненные) вот и не доделал
просто я не хотел через шаред, а через шаред пожалуйста работает

Вы не поняли. Ваша беда в том, что у вас и "через шаред" не работает. Собс-но, с этого мы и начали, открутите цепочку цитат назад.

imsushka писал(а):
то что шас крутиться на классических процессорах - монолит
я же хотел микроядро

Объясните, пожалуйста, чем отличаются механизмы переключения задач в монолите и микроядре?

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

жерез шаред меморю

Так ведь у вас shared memory невозможна.

imsushka писал(а):
Yoda писал(а):
И опять же, я не вижу, в чём именно вы видите преимущества.

вот и надо придумать :)

Вот и придумайте!

imsushka писал(а):
Yoda писал(а):
Какой жизнью? На двух ядрах в несколько десятков раз медленней, чем на одном?

??????????????????????

Ну вы же говорите, что для разделения памяти надо отключать её кеширование. А это значит, снижать производительность в десятки, а то и в сотни раз. А т.к. для двух потоков вся память совместная, значит, всё приложение замедлится в сто раз.

imsushka писал(а):
Yoda писал(а):
Так ведь ваш процессор не позволяет объединять адресное пространство иначе чем через запрет кеширования.

кеш 1 уровня да, на 2 уровне нет запрета

То есть, страница должна иметь два разных флага - запрет на кеширование вообще и запрет только на кеширование первого уровня, о чём я вам раньше и говорил.
Но даже в этом случае ваша архитектура будет сильно тормозить при работе потоков (см выше) и крайне неэффективно расходовать драгоценное место на кристалле (вот эти самые 1024 буфера задач размером до 8 мегабайт), но я, пожалуй, не буду объяснять, почему.

imsushka писал(а):
злые вы

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

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

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 фев 2015, 18:05 

Зарегистрирован: 21 фев 2015, 10:39
Сообщения: 50
да тяжело гениям

проц состоит из 4 (или больше) ядер, регистрового файла и кеша 2 уровня
у ядер нету собственного ничего, только декодирование инструкций и АЛУ

регистровый файл состоит из блоков (от 1 до ...)
каждый блок состоит из РОНа, кеша д/к, тлб и еще чавонить

ядра могут обращаться к блокам произвольным образом, естественно к 1 блоку может единовременно обратиться только одно ядро

в кеше 1 уровня используются логические адреса которые относятся только к 1 адресному пространсву
в кеше 2 уровня адреса физические

кеш 2 уровня общий для всего проца

тут все понятно ?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4, 5

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


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

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


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

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