The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Представлен модуль ядра, способный в разы ускорить OpenVPN"
Отправлено Sw00p aka Jerom, 23-Сен-21 02:09 
>На первый вопрос ты сам чуть ниже ответил, непонятно, зачем меня спрашивал.

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

А теперь по статье построчно:

Вопрос: что такое "контекст" и "переключение контекста"

Ответ: In computing, a context switch is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point. This allows multiple processes to share a single central processing unit (CPU), and is an essential feature of a multitasking operating system.

Дополнение: The precise meaning of the phrase “context switch” varies. In a multitasking context, it refers to the process of storing the system state for one task, so that task can be paused and another task resumed. A context switch can also occur as the result of an interrupt, such as when a task needs to access disk storage, freeing up CPU time for other tasks. Some operating systems also require a context switch to move between user mode and kernel mode tasks.


Вопрос: В каких случаях происходит "переключение контекста"

Ответ: Когда имеет место быть - Multitasking, Interrupt handling, User and kernel mode switching (тут надо выделить слово mode)


Вопрос: "Цена переключения"

Ответ: Context switches are usually computationally intensive, and much of the design of operating systems is to optimize the use of context switches. Switching from one process to another requires a certain amount of time for doing the administration – saving and loading registers and memory maps, updating various tables and lists, etc. What is actually involved in a context switch depends on the architectures, operating systems, and the number of resources shared (threads that belong to the same process share many resources compared to unrelated non-cooperating processes).

Дополнение: For example, in the Linux kernel, context switching involves switching registers, stack pointer (it's typical stack-pointer register), program counter, flushing the translation lookaside buffer (TLB) and loading the page table of the next process to run (unless the old process shares the memory with the new).

Дополнение: Furthermore, analogous context switching happens between user threads, notably green threads, and is often very lightweight, saving and restoring minimal context. In extreme cases, such as switching between goroutines in Go, a context switch is equivalent to a coroutine yield, which is only marginally more expensive than a subroutine call.


> А на второй ответа нет. В том смысле, что непонятно о
> чём вопрос.

Думаю прочли дополнение ответа первого вопроса выше, вот там часто мелькает слово task, так вот вопрос был в том, кто управляет этими tasks и делает "context switch".

> то кто во всех этих ситуациях переключает контекст?

это и был собственно вопрос

> Единственный верный ответ, который мне приходит в голову -- CPU

Приходит или вы это прочли где-то? Если прочли, то ссылку в студию.

> ведь именно CPU занят сохранением значений регистров и восстановлением
> их.

Нет, не всегда, читаем по ссылке раздел Switching cases параграф Interrupt handling


> И что? Я контексты могу переключать не вылезая из юзерспейса, более того
> я делал это, потому что это очень занятная задачка -- будет
> нечем заняться, очень рекомендую. Только переключения оказываются софтварными и контексты
> самодельные, но так даже интереснее.

Вот поэтому я вам ссылку указал где поясняется, что подразумевается под понятием "context switch", а то что вы делаете там из юзерспейса - называйте как хотите. Даже банальный вызов функций в одном процессе есть своего рода "context switch".


> Ты бы ещё статью по C открыл, и
> попытался бы там найти упоминаний микроядер.

Ваше же утверждение "Микроядро -- это ещё больше переключений контекста."?, по ссылке выше про микро-ядро ни слово.


> зачем я буду читать статью о них? Чем это поможет данному разговору?

Внесет ясность в вопрос ```Истинно ли данное утверждение - "Микроядро -- это ещё больше переключений контекста."?```

> За кого ты себя мнишь, указывая тут мне, что мне делать, и
> не приводя, при этом, никаких обоснований этим указаниям?

На утверждение "Микроядро -- это ещё больше переключений контекста." жду пояснений, так и написал в коменте "а вот тут поподробней".


> Мы о чём вообще говорим сейчас? Ты не потерял тему разговора случаем?

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

> Я, совершенно определённо потерял, для меня выглядит так, что ты сам
> с собой вдруг начал разговаривать -- рецидив бредового состояния?

Это все лишнее, сконцентрируйтесь на вопросах.

> Что именно тебе непонятно?

выше все описано


 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру