Este programa requer um sistema capaz de marcar processos. Não será executado de maneira confiável (ou de todo) em um ambiente puramente interpretado, como o console JavaScript de um navegador da Web. Ele foi projetado para sistemas semelhantes a Unix (Linux, MacOS).  
 Este programa usa o `OS.Fork ()` do Python para criação de processos. Lembre -se de que criar um grande número de processos pode sobrecarregar seu sistema. Teste com pequenos valores de `n` primeiro.   
 `` `Python 
 OS de importação 
 Importar sistemas  
 def create_binary_tree (profundidade, nível =0):
 "" " 
 Cria recursivamente uma árvore binária de processos.  
 Args:
 Profundidade:a profundidade desejada da árvore. 
 Nível:o nível atual na árvore (começa em 0). 
 "" "  
 Se nível 
 print (f "Process {os.getpid ()} no nível {nível}") # Imprima o ID do processo e o nível 
 
 # Criar filho esquerdo 
 pid_left =os.fork () 
 Se pid_left ==0:# Processo infantil 
 create_binary_tree (profundidade, nível + 1) 
 OS._EXIT (0) # IMPORTANTE:Saia do processo infantil para evitar recursão infinita 
 
 # Crie filho certo 
 pid_right =os.fork () 
 Se pid_right ==0:# Processo infantil 
 create_binary_tree (profundidade, nível + 1) 
 OS._EXIT (0) # IMPORTANTE:Saia do processo infantil para evitar recursão infinita 
 
 # Processo dos pais espera que as crianças terminem (opcional, mas boa prática) 
 
 os.waitpid (pid_left, 0) 
 os.waitpid (pid_right, 0) 
 
 
 Se __name__ =="__main__":
 Se Len (sys.argv)! =2:
 Print ("Uso:Python binary_tree.py ") 
 sys.exit (1) 
 
 tentar:
 profundidade =int (sys.argv [1]) 
 Se profundidade <0:
 impressão ("A profundidade deve ser um número inteiro não negativo.") 
 sys.exit (1) 
 create_binary_tree (profundidade) 
 Exceto ValueError:
 Imprima ("Valor da profundidade inválida. Digite um número inteiro.") 
 sys.exit (1) 
 
 `` ` 
 
 
  Como correr: 
 
 1.  Salvar: Salve o código como `binário_tree.py`. 
 2.  Corra da linha de comando: `python binary_tree.py ` onde `` é a profundidade desejada da árvore (por exemplo, `python binary_tree.py 3`). 
 
  Considerações importantes: 
 
 *  Manuseio de erro: O código inclui manuseio básico de erro para argumentos de linha de comando inválidos. 
 *  Terminação do processo: As chamadas `OS._Exit (0)` são cruciais. Sem eles, cada processo filho criaria recursivamente mais processos, levando a uma explosão não controlada de processos. 
 *  Uso do recurso: Esteja atento ao crescimento exponencial dos processos. Uma profundidade de 4 já criará muitos processos. Uma profundidade de 10 provavelmente travará seu sistema. 
 *  Gerenciamento de processos: As chamadas `os.waitpid ()` são opcionais, mas recomendadas para melhor gerenciamento de processos. Eles garantem que o processo dos pais aguarde que seus filhos terminem antes de sair. Sem eles, seu processo pai pode terminar antes que alguns processos infantis tenham concluído. 
 *  Limitações do sistema operacional: O número máximo de processos que você pode criar é limitado pelo seu sistema operacional. 
 
 
 Esta versão aprimorada fornece melhor manuseio de erros e gerenciamento de processos, tornando -o mais seguro e mais robusto. Lembre -se de sempre começar com pequenos valores de `n` para testar e entender o comportamento antes de tentar valores maiores.