Как Linux обрабатывает несколько процессов?

Я новичок в Linux-технологиях и сценариях bash.

На данный момент у меня есть простой сценарий bash, который извлекает одну дорожку субтитров из заданного MKV, используя mkvextract .

Мне было интересно: если несколько пользователей использовали этот скрипт (например, через команду bash, например), в том же или другом файле mkv, как Linux реагирует на это?

Создает ли он «систему последовательности» самостоятельно или параллельно обрабатывает каждую команду?

Это задание для планировщика процессов (см. Также).

Как правило, когда вы используете какую-либо команду, можно сказать (не вдаваясь в подробности), что вы спросите ядро ​​Linux (думаю, OS) создать отдельный процесс, который будет обрабатывать его работу.

Теперь процесс помещается в очередь, а затем всем процессам предоставляется доступ к ресурсам ПК. Это обрабатывается некоторым алгоритмом планирования. Самый простой, о котором я могу думать, это FIFO – First in, First out – первый, кого спросить – это первый, кто получает ресурсы. Вы даете ресурсы на короткий промежуток времени, а затем возвращаете их в очередь.

Что касается обработки в параллели: это зависит. Вообще Linux использует несколько ядер, и вы можете сказать, что некоторые задачи выполняются параллельно, но многие задачи выполняются путем создания иллюзии параллельного выполнения – они просто переключаются так быстро, что вы думаете, что они паралель.

Чтобы полностью ответить на ваш вопрос: когда вы извлекаете данные, он, вероятно, просто читается, а не удаляется – поэтому несколько команд на одном или разных mkv, которые выполняют только чтение, не должны быть проблемой.

Для получения дополнительной информации вы можете использовать «Планировщик Google», «Планировщик Linux».