поток в статусе running, а другой в другом, например interaptable sleep (а если noninteraptable sleep)?
Ну напиши тест
Зачем изобретать велосипед? Плюс там этих комбинаций много будет
Ну а какое это имеет практическое значение? Никакого. Просто вопрос о работе кода и его внутренних состояний
Имеет или не имеет, это уже другая история, вопрос поставлен, если у вас нет ответа, пройдите мимо плз), если есть, буду благодарен за ответ/ссылку на пояснение
Моё понимание - будет статус R. Пока хоть один поток готов к работе, процесс считается running/runnable
Закат логично, спс, а есть в целом какая статья по этому, ну чтобы не гадать, а почитать? Или такой хардкор только у Таненбаума уже искать?
Где гарантия что это так?
https://tldp.org/LDP/tlk/kernel/processes.html Пойдет ?
Да хотелось бы чего попроще, но все равно спасибо
Нет. Слова threads не встречаются в нужном контекте. Так что или исходник читать или натуральный эксперимент делать
А ведь ты прав. Нет гарантии. Даже наоборот. Чем больше я читаю - тем больше прихожу к выводу что в proc/pid/stat будет лежать статус первого потока. Надо ставить эксперимент
нужно сначала понять чем процесс отличатся от потока в той ос про которую ты спрашиваешь, после этого будет понятнее
А почитать на эту тему можно книгу linux programming interface
В Linux ядре нет отдельного статуса процесса. И процессы и потоки внутри ядра это task, описываемыей task_struct у которой есть PID и TID (thread id). По умолчанию ps/top показывает как процессы те task у которых PID == TID. Посмотреть можно через ps -eLf
Таненбаум со своим сферическим миниксом в вакууме не поможет в понимании потрохов линуха.
Начать можно с Кетова, потом углубить знания через Linux API. Исчерпывающее руководство
статус в где? в хтопе тебе покажут статус треда в котором мейн() ниже остальных.
Обсуждают сегодня