Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Diferença entre job e processo

Prezados, na transcrição da aula é dito que o comando jobs "mostra os processos que estão sendo rodados no bash", no entando reparei que o ID do processo e dos jobs são diferente, e mesmo ao listar os processos que foram iniciados dentro do bash uma aplicação como o Chrome apresenta mais de um processo e apenas um job. Imagino que os dois então não sejam sinônimos. Qual dos dois representam um PCB? Qual a diferença entre eles?

3 respostas

Oi Vinícius, vou escrever o que eu entendi. Um job pode ser composto por um ou mais processos... se vc for no terminal e, por exemplo, digitar assim:

ls | head

Dois processos são disparados, todos a partir do mesmo job.

solução!

Olá Vinícius. Na verdade, o jobs lista os processos que foram abertos pelo terminal e por isso dependem diretamente dele, ou seja, se você fechar o terminal, todos os processo iniciados pelo terminal serão encerrados. Por exemplo: No terminal eu faço gedit & Ele mostra [1] 2123 - o que está entre colchetes é o identificador no jobs e o 2123 é o id do processo. Se eu fizer ps -ef | grep 2123 vai ver que o processo é do gedit (no meu caso). Depois disso se eu fizer jobs, ele irá listar os processos que estão diretamente dependentes do meu terminal, mas não irá listar o id do processo, e sim o identificador do job. Até mais

Obrigado Rogério é Alberto. Realmente, quando inicio um processo, mesmo em background, ele é fechado imediatamente após fechar o terminal. Na documentação do bash eles associam ao job a idéia de um pipeline de processos, daí os IDs diferentes. Se lhes interessar, segue o link: http://www.faqs.org/docs/bashman/bashref_78.html#SEC85

Quanto aos PCBs, aparentemente não muda nada do que tinha entendido. Eles são sinônimos de processo. Se não forem exatamente a mesma coisa, pelo menos têm uma relação biunívoca. (https://en.wikipedia.org/wiki/Process_control_block)