View in Telegram
⌨️ Биография. Вспоминаем и делимся #process_management Прошлый пост о процессах нагнал безысходности, но не всё так печально, давайте немного конкретики, попробуем представить более или менее реальный процесс, скажем процесс относящийся к веб-серверу, apache или nginx не столь важно. Попробуем написать краткую биографию этого процесса и хоть в своей сути это будет всё тот-же лайф цикл Born-Life-Death, сосредоточимся в этом посте на второй стадии. I.Родился (Born or forked) Веб-сервер запускается, и для обработки запросов может создать несколько дочерних процессов или потоков с помощью системного вызова fork(). Наш герой один из них. II.Жажда служения (Ready to run or runnable): Процесс находится в состоянии готовности к выполнению и ждёт процессорного времени. Он ожидает получения запроса от клиента (например, HTTP-запрос). III. Бег (Running in user space or running in kernel space): Процесс начинает обрабатывать входящий запрос, возможно передавая его другим компонентам, таким как PHP для динамических страниц. В зависимости от задачи, процесс может работать в пространстве пользователя или ядра (например, выполняя системные вызовы для чтения файлов с диска). IV. Небег (Blocked, Waiting, Sleeping, in an Interruptable sleep, or in an Uninterruptable sleep): Если запрос требует ввода-вывода (например, чтение данных с диска или из базы данных), процесс переходит в состояние ожидания завершения операции ввода-вывода. V. Дремлет чутко на работе (The process is sleeping, but it is present in main memory): Когда запрос обработан и сервер ждёт следующий запрос, процесс может оставаться в состоянии ожидания в оперативной памяти, готовый к быстрой активации. VI. Спит крепко на дальних рубежах (The process is sleeping, but it is present in secondary memory storage): В случае, если сервер сильно нагружен и система вынуждена освобождать память, процесс может быть выгружен в swap, чтобы освободить оперативную память для более активных задач. VII. Конечная (Terminated): Процесс завершает работу, когда веб-сервер завершает свою сессию или получает команду остановки. Так вот то что между Родился и Конечная цикл может повториться энное количество раз и вариативно. Скажем Родился -> Жажда -> Бег -> Небег -> Бег -> Дремота -> Жажда -> Бег -> Небег -> Сон -> Конечная.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram Center
Telegram Center
Channel