<Предыдущая | Содержание: | Следующая>
Более того, Linux основан на UNIX, где была распространена политика, когда несколько пользователей выполняли несколько команд одновременно и в одной системе. Очевидно, что необходимо принять меры, чтобы ЦП управлял всеми этими процессами, и эту функциональность необходимо предоставить таким образом, чтобы пользователи могли переключаться между процессами. В некоторых случаях процессы придется продолжать работать, даже если пользователь, запустивший их, выйдет из системы. А пользователям нужны средства для повторной активации прерванных процессов.
Мы объясним структуру процессов Linux в следующих разделах.
4.1.2. Типы процессов
4.1.2.1. Интерактивные процессы
Интерактивные процессы инициализируются и управляются через терминальный сеанс. Другими словами, чтобы запустить эти процессы, к системе должен быть подключен кто-то; они не запускаются автоматически как часть системных функций. Эти процессы могут выполняться на переднем плане, занимая терминал, запустивший программу, и вы не можете запускать другие приложения, пока этот процесс выполняется на переднем плане. Кроме того, они могут работать в фоновом режиме, чтобы терминал, на котором вы запустили программу, мог принимать новые команды во время работы программы. До сих пор мы в основном фокусировались на программах, работающих на переднем плане - время, затрачиваемое на их запуск, было слишком коротким, чтобы его можно было заметить, - но просмотр файла с Меньше command - хороший пример команды, занимающей сеанс терминала. В этом случае активированная программа ждет, что вы что-то сделаете. Программа все еще подключена к терминалу, с которого была запущена, и терминал полезен только для ввода команд, которые эта программа может понять. Другие команды просто приведут к ошибкам или
невосприимчивость системы.
Однако пока процесс выполняется в фоновом режиме, пользователю не запрещается выполнять другие действия в терминале, в котором он запустил программу, во время ее выполнения.
Оболочка предлагает функцию под названием контроль работы что позволяет легко управлять несколькими процессами. Этот механизм переключает процессы между передним и задним планами. Используя эту систему, можно сразу запускать программы в фоновом режиме.
Запуск процесса в фоновом режиме полезен только для программ, которым не требуется ввод данных пользователем (через оболочку). Перевод задания в фоновый режим обычно выполняется, когда ожидается, что выполнение задания займет много времени. Чтобы освободить терминал выдачи после ввода команды, добавляется амперсанд в конце. В примере, используя графический режим, мы открываем дополнительное окно терминала из существующего:
Билли: ~> xterm &
[1] 26558
Билли: ~> работе
[1] + Бег
xterm &
Билли: ~> xterm &
[1] 26558
Билли: ~> работе
[1] + Бег
Функции полного управления заданиями подробно описаны в колотить Информационные страницы, поэтому здесь перечислены только часто используемые приложения для управления заданиями:
Таблица 4-1. Контролирующие процессы
(часть) команды | Смысл |
регулярная_команда | Выполняет эту команду на переднем плане. |
команда & | Выполните эту команду в фоновом режиме (отпустите терминал) |
работе | Показать команды, работающие в фоновом режиме. |
Ctrl+Z | Приостановить (остановить, но не завершить) процесс, запущенный на переднем плане (приостановить). |
Ctrl+C | Прерывание (завершение и завершение) процесса, запущенного на переднем плане. |
%n | Каждому процессу, работающему в фоновом режиме, присваивается номер. Используя выражение%, можно ссылаться на задание по его номеру, например fg %2. |
bg | Реактивировать приостановленную программу в фоновом режиме. |
fg | Возвращает задание на передний план. |
убивать | Завершить процесс (также см. Встроенные команды оболочки на информационных страницах колотить) |
Более практические примеры можно найти в упражнениях.
Большинство систем UNIX, вероятно, смогут работать экран, что полезно, когда вы действительно хотите, чтобы другая оболочка выполняла команды. По звонку экран, создается новый сеанс с сопутствующей оболочкой и / или указанными командами, которые затем можно убрать. В этом новом сеансе вы можете делать все, что хотите. Все программы и операции будут выполняться независимо от выпускающей оболочки. Затем вы можете отсоединить этот сеанс, в то время как программы, которые вы в нем запустили, продолжают работать, даже когда вы выходите из исходной оболочки и выбираете свой экран снова вставай в любое время, когда захочешь.
Эта программа берет свое начало с тех времен, когда виртуальные консоли еще не были изобретены, и все нужно было делать с помощью одного текстового терминала. Для наркоманов это все еще имеет значение в Linux, хотя виртуальные консоли существуют уже почти десять лет.
4.1.2.2. Автоматические процессы
Автоматические или пакетные процессы не связаны с терминалом. Скорее, это задачи, которые могут быть помещены в очередь в область диспетчера очереди печати, где они ожидают выполнения по принципу FIFO (first-in, first-out). Такие задачи могут быть выполнены по одному из двух критериев:
• В определенную дату и время: выполняется с помощью at команда, которую мы обсудим во второй части этой главы.
• Иногда, когда общая нагрузка на систему достаточно мала для выполнения дополнительных заданий: выполняется с помощью партия команда. По умолчанию задачи помещаются в очередь, где они ожидают выполнения, пока загрузка системы не станет ниже 0.8. В больших средах системный администратор может предпочесть пакетную обработку, когда необходимо обработать большие объемы данных или когда задачи, требующие большого количества системных ресурсов, должны выполняться в уже загруженной системе. Пакетная обработка также используется для оптимизации производительности системы.
4.1.2.3. Демоны