Вопросы по теме 'context-switch'

Действительно ли потоки из нескольких процессов выполняются одновременно?
В операционной системе Windows с 2 физическими процессорами x86/amd64 (P0 + P1), запущенными 2 процессами (A + B), каждый с двумя потоками (T0 + T1), возможно (или даже часто) увидеть следующее: P0:A:T0 работает одновременно с P1:B:T0 затем,...
1288 просмотров

Process.Start() не создает новый процесс под тем же пользователем
У меня всегда было впечатление, что когда вы запускаете процесс как (domain\user) mydomain\myuser , при использовании Process.Start() он запускает этот новый процесс, используя те же учетные данные - mydomain\myuser . Проблема, с которой я...
4082 просмотров

в ядре linux структура данных thread_struct содержит как поля esp0, так и esp, в чем разница?
Это мое предположение: esp0 инициализируется с помощью верхнего адреса стека ядра. когда стек ядра выделен и используется во время переключения процесса для инициализации tss->esp0, чтобы при переключении контекста из пользовательского режима в...
1862 просмотров
schedule 04.03.2024

VMM типа 1 и кольцо 1
Недавно я делаю домашнее задание по виртуализации. У меня вопрос, как VMM передает управление гостевому ядру и запускает этот код в кольце 1? VMM типа 1: это классический VMM с ловушкой и эмуляцией. VMM работает непосредственно на оборудовании,...
626 просмотров

Предотвратить переключение контекста в синхронизированном разделе кода (или измерить, а затем вычесть время, фактически не потраченное в потоке)
У меня многопоточное приложение, и в определенном разделе кода я использую Stopwatch для измерения времени операции: MatchCollection matches = regex.Matches(text); //lazy evaluation Int32 matchCount; //inside this bracket program should not...
4501 просмотров

Ленивое объединение FPU в Cortex-M4F
Я пишу код многопоточности для Cortex M4F. Все работает, и теперь я пытаюсь сделать переключение контекста FPU более эффективным с помощью ленивого стекирования. Я прочитал AN298 и I. реализовал альтернативный подход, основанный на отключении...
2168 просмотров
schedule 16.06.2022

Возможно ли, чтобы ЦП выполнял переключение контекста после запуска исходного кода графического процессора (ядра cuda), который не был завершен?
По сути, при взаимодействии ЦП и ГП, если процесс, работающий на ЦП, инициирует ядро ​​cuda, процесс все равно может выдавать свой код, если он не зависит от результата ядра cuda. Но возможно ли, чтобы процесс, работающий над процессором, выполнял...
195 просмотров
schedule 28.09.2022

Почему регистры FPU не сохраняются и не восстанавливаются при «переключении контекста»?
Насколько я знаю, при переключении контекста некоторые регистры сохраняются и восстанавливаются, но почему регистры FPU не сохраняются? Нет ли огромного риска потерять их контент, если расписание появится в неподходящий момент?
740 просмотров
schedule 03.11.2022

Точность clock_gettime() в сценарии переключения контекста
Я пытаюсь «примерно» рассчитать время переключения контекста потока в системе Linux. Я написал программу, которая использует каналы и многопоточность для достижения этой цели. При запуске программы расчетное время явно неверно (см. вывод ниже). Я...
277 просмотров
schedule 26.07.2023

Почему Golang сохраняет только %rsp, %rip и %rbp (никаких других регистров, сохраняемых вызываемым пользователем) при переключении контекста?
В общих реализациях переключения контекста пользовательского потока (например, setjmp/longjmp и способ function return ) мы сохраняем и восстанавливаем регистры, сохраненные вызываемым пользователем, но golang сохраняет и восстанавливает только...
313 просмотров

Как компьютеры переключаются между различными процессами (в основном это связано с ОС)?
How do computers switch between different processes (is it mainly an OS thing)? c5f104380d2f4c4bf0c587f790a21817 Ранние компьютеры, такие как ENIAC, должны были вручную изменять свою программную память (также известную как память инструкций) для...
32 просмотров