Как многозадачная операционная система, Linux поддерживает выполнение многих процессов – в основном, программ или команд или аналогичных задач – в фоновом режиме, пока вы продолжаете работать на переднем плане.
Процессы переднего плана
Процесс переднего плана – это любая команда или задача, которую вы запускаете напрямую и ждете ее завершения. Некоторые процессы переднего плана показывают некоторый тип пользовательского интерфейса, который поддерживает постоянное взаимодействие с пользователем, тогда как другие выполняют задачу и «замораживают» компьютер, пока он выполняет эту задачу.
В командной оболочке процесс переднего плана начинается с ввода команды в командной строке. Например, чтобы увидеть простой список файлов в активном каталоге, введите:
$
Ls
Вы увидите список файлов. Пока компьютер готовит и печатает этот список, вы ничего не можете сделать из командной строки.
Фоновый процесс
В отличие от процесса переднего плана, оболочке не нужно ждать окончания фонового процесса , прежде чем она сможет запустить больше процессов. В пределах объема доступной памяти вы можете вводить много фоновых команд одну за другой. Чтобы запустить команду как фоновый процесс, введите команду и добавьте пробел и амперсанд в конце команды. Например:
$
command1 &
Когда вы вводите команду с заключительным амперсандом, оболочка выполнит работу, но вместо того, чтобы заставлять вас ждать завершения команды, вы сразу же вернетесь в оболочку и увидите приглашение оболочки (% для C Shell и $ для Bourne Shell и Korn Shell) возвращаются. На этом этапе вы можете ввести другую команду для переднего или фонового процесса. Фоновые задания выполняются с более низким приоритетом по сравнению с приоритетными.
По завершении фонового процесса вы увидите сообщение на экране.
Переключение между процессами
Если процесс переднего плана занимает слишком много времени, остановите его, нажав CTRL + Z. Остановленное задание все еще существует, но его выполнение приостановлено. Чтобы возобновить работу, но в фоновом режиме, введите bg , чтобы отправить остановленную работу в фоновое выполнение.
Чтобы возобновить приостановленный процесс на переднем плане, введите fg , и этот процесс перейдет к активному сеансу.
Чтобы просмотреть список всех приостановленных процессов, используйте команду jobs или команду top , чтобы отобразить список наиболее ресурсоемких задач, чтобы можно было приостановить или остановить их, чтобы освободить системные ресурсы.
Shell vs. GUI
Многозадачность работает по-разному в зависимости от того, работаете ли вы из оболочки или из графического интерфейса пользователя. Linux из оболочки поддерживает только один активный процесс переднего плана для каждого виртуального терминала. Однако с практической точки зрения пользователя оконная среда (например, Linux с рабочим столом, а не из текстовой оболочки) поддерживает несколько активных окон, которые эффективно служат в качестве нескольких одновременных процессов переднего плана. На практике Linux за кулисами регулирует приоритет процессов в графическом интерфейсе для обеспечения стабильности системы и поддержки обработки конечным пользователем.