Самое интересное, что за время пути собака могла подрасти — то есть, если посмотреть характеристики постов-победителей вот прямо сейчас (просмотры и закладки), то они уже будут другими.
Как минимум, эти данные есть по приведенной в тексте ссылке. Ну Ок, можно было скопировать сюда. Но объема бы эти два числа несильно добавили.
Про тест — говорю же- это другая история, которая может и случится, но значительно позже.
А скажите, вот я правда не понимаю — какой еще информации не хватает в этой новости? Тестдрайв провести — да, хотелось бы. Но это — отдельная история, а все остальное тут точно есть.
Ну хоть один неосвещенный вопрос задайте, плиз.
Зашла специально сказать, что это — великий пост. Я уже ровно 4 года посылаю к нему всех, интересующихся FLOPS, и они больше даже ничего не спрашивают — все понятно отныне и вовеки веков. Спасибо еще раз!
1)В в принципе можно. Но так создал бог захотел автор. За подробностями — к нему.
2)Хороший вопрос, спасибо. Но нет. Когда речь идет об удаленном использовании, репликатор каналов прекрасно осуществит бинарную трансляцию.
3) ну это как раз реализуется проще всего.
Для чтения с диска:
1. Привилегированная задача, обслуживающая диск, экспортирует некоторый канал. Канал, к примеру, может содержать поля с намером цилиндра, головки, сектора и типом операции, а также место под данные сектора.
2. Задача, желающая прочитать данные, импортирует этот канал, заполняет поля — цилиндр, головка, сектор, чтение — и передает упраление привилегированной задаче (yield-to).
3. Привилегированная задача получает управление, программирует аппаратуру в соответствии с запросом, перехватывает прерывание (запрашивает от ядра системы через системный канал) и «засыпает».
4. По завершении операции чтения аппаратура генерирует прерывание, привилегированная задача получает управление, проверяет данные, если надо — копирует их в канал (если аппаратура не может скопировать данные по адресу канала — например, он располагается слишком высоко в физической памяти), а потом передает управление обратно задаче-клиенту (yield-to).
5. Клиент просыпается — а у него в канале уже лежат данные нужного сектора диска.
Надеюсь, что это понятно (мне — да :) ) Но, если нет, советую написать автору — его контакт в тексте есть.
Спасибо за вопрос.
в частном случае каналов с кодом — да, это очень похоже на dll, об этом есть упоминание в тексте.
И да, если ничего не делать специально — применять ключи, цифровые подписи и прочие механизмы защиты, то вероятность подмены канала есть.
Но никто не мешает: 1) не пользоваться каналами с кодом для важных программ, и 2)ввести механизмы защиты, описанные выше.
В функции ОС вообще не входит защита программ от подобного фишинга, это задача самих приложений. ОС должна уметь защищать себя, и она это умеет.
Канал – это и есть разделяемая память в рамках локальной системы, так что задачи ничего лишнего не копируют, а спокойно работают с данными в канале. Неизбежные копирования возникнут только при репликации канала на удаленные системы.
Диспетчер задач не имеет непосредственного отношения к каналам, просто задачи могут легко передавать управление своим контрагентам, чтобы избежать неэффективных (во многих случаях) схем постоянного опроса данных.
Экспорт и импорт – это просто API для установления взаимодействия между задачами: одна задача должна сообщить окружающим, что она готова предоставить какую-то услугу и что эта услуга называется так-то и так-то и физически материализуется в такой-то память такого-то размера, а другая задача отображает эту материализованную услугу к себе в память и начинает общаться с первой.
Наоборот, процесс отладки и тестирования упрощается, потому что все взаимодействия конкретной задачи с «внешним миром» известны менеджеру каналов и планировщику задач и могут быть сохранены и представлены задаче-отладчику в виде отдельного канала.
К сожалению, объем статьи не позволяет детально рассмотреть все аспекты ОС, но поверьте на слово, что вопросы отладки, трассирования и измерения производительности рассматривались и учитывались с самого начала. Есть несколько вариантов организации отладки: (1) непосредственное исполнение отлаживаемой задачи в контексте привилегированной задачи-отладчика (так как код любой задачи не зависит от адреса загрузки и от адресов отображения каналов) и (2) расширение системного канала (и, соответственно, ядра ОС), позволяющее получать привилегированным задачам информацию о поведении и производительности других задач, ну а также (3) любые комбинации подходов 1 и 2.
Нет, увы, вы поняли неправильно. Менеджер задач — отдельная сущность, так же как и менеджер памяти. а канал -это канал :) данные копироваться не будут, будут отображаться. А насчёт сетевых приложений — да, для них тоже.
потому, что годного софта на них за несколько десятилетий в мире уже много понаписано, да и число годных программистов на них очень велико. Но тут по языковому принципу никого не дискирминируют. Пусть будет и rust, если сможет
Про тест — говорю же- это другая история, которая может и случится, но значительно позже.
Ну хоть один неосвещенный вопрос задайте, плиз.
создал богзахотел автор. За подробностями — к нему.2)Хороший вопрос, спасибо. Но нет. Когда речь идет об удаленном использовании, репликатор каналов прекрасно осуществит бинарную трансляцию.
3) ну это как раз реализуется проще всего.
Для чтения с диска:
1. Привилегированная задача, обслуживающая диск, экспортирует некоторый канал. Канал, к примеру, может содержать поля с намером цилиндра, головки, сектора и типом операции, а также место под данные сектора.
2. Задача, желающая прочитать данные, импортирует этот канал, заполняет поля — цилиндр, головка, сектор, чтение — и передает упраление привилегированной задаче (yield-to).
3. Привилегированная задача получает управление, программирует аппаратуру в соответствии с запросом, перехватывает прерывание (запрашивает от ядра системы через системный канал) и «засыпает».
4. По завершении операции чтения аппаратура генерирует прерывание, привилегированная задача получает управление, проверяет данные, если надо — копирует их в канал (если аппаратура не может скопировать данные по адресу канала — например, он располагается слишком высоко в физической памяти), а потом передает управление обратно задаче-клиенту (yield-to).
5. Клиент просыпается — а у него в канале уже лежат данные нужного сектора диска.
Надеюсь, что это понятно (мне — да :) ) Но, если нет, советую написать автору — его контакт в тексте есть.
в частном случае каналов с кодом — да, это очень похоже на dll, об этом есть упоминание в тексте.
И да, если ничего не делать специально — применять ключи, цифровые подписи и прочие механизмы защиты, то вероятность подмены канала есть.
Но никто не мешает: 1) не пользоваться каналами с кодом для важных программ, и 2)ввести механизмы защиты, описанные выше.
В функции ОС вообще не входит защита программ от подобного фишинга, это задача самих приложений. ОС должна уметь защищать себя, и она это умеет.
Диспетчер задач не имеет непосредственного отношения к каналам, просто задачи могут легко передавать управление своим контрагентам, чтобы избежать неэффективных (во многих случаях) схем постоянного опроса данных.
Экспорт и импорт – это просто API для установления взаимодействия между задачами: одна задача должна сообщить окружающим, что она готова предоставить какую-то услугу и что эта услуга называется так-то и так-то и физически материализуется в такой-то память такого-то размера, а другая задача отображает эту материализованную услугу к себе в память и начинает общаться с первой.
К сожалению, объем статьи не позволяет детально рассмотреть все аспекты ОС, но поверьте на слово, что вопросы отладки, трассирования и измерения производительности рассматривались и учитывались с самого начала. Есть несколько вариантов организации отладки: (1) непосредственное исполнение отлаживаемой задачи в контексте привилегированной задачи-отладчика (так как код любой задачи не зависит от адреса загрузки и от адресов отображения каналов) и (2) расширение системного канала (и, соответственно, ядра ОС), позволяющее получать привилегированным задачам информацию о поведении и производительности других задач, ну а также (3) любые комбинации подходов 1 и 2.
Я знаю про ROS, но там только одна R значащая, а здесь ROSOS.