O que é Linux para OpenVMS DCL Ctrl/T?

O que é Linux para OpenVMS DCL Ctrl/T?

DeOpenVMS Dicionário DCL:

A função Ctrl/T exibe uma única linha de informações estatísticas sobre o processo atual. Quando você pressiona Ctrl/T durante uma sessão de terminal interativo, ele interrompe momentaneamente o comando, procedimento de comando ou imagem atual para exibir estatísticas. As informações estatísticas incluem os nomes dos nós e dos usuários, a hora atual, o processo atual, o uso da CPU, o número de falhas de página, o nível de atividade de E/S e o uso da memória. Por exemplo:

BOSTON::SMITH  16:21:04 EDT       CPU=00:00:03.33 PF=778 IO=296 MEM=277

O que é Linux para OpenVMS DCL Ctrl/T?

Responder1

Sinceramente duvido que exista um análogo exato. A natureza de um processo Linux (e consequentemente de execução de um comando) é tão diferente da natureza de um processo VMS e de como ele executa um comando que nada parecido com isso pode realmente existir.

Pelo que entendi VMS, quando você executa um comando como TYPE SOMEFILE.TXT, DCL lê o TYPE.EXE na memória domesmo processoem que o DCL é executado, corrige todas as realocações que o TYPE.EXE precisa e então pula para a primeira instrução do TYPE.EXE. Quando TYPE.EXE termina seu trabalho, o sistema operacional retorna o controle para o código DCL que ainda reside no mesmo processo que TYPE.EXE.

Esse processo pesado, que inclui DCL, uma tabela de léxicos e uma conhecida tabela de salto de endereços de várias coisas, permite que Ctrl-T funcione. Essa sequência de teclas é apenas uma forma especial de interrupção do teclado, e o código DCL em qualquer processo pode fazer o trabalho que você descreve.

Um processo Linux nem sempre possui um shell (analógico DCL). Um processo Linux pode nem ter código manipulador de interrupção de teclado registrado no kernel, o que significaria que qualquer interrupção de teclado (Ctrl-C ou Ctrl-) faz com que o kernel faça com que o processo seja encerrado.

Responder2

A família BSD UNIX suporta sinal SIGINFO [1] e caractere de controle VSTATUS [2], normalmente vinculado a Ctrl/T. A saída é semelhante a esta:

load: 0.12  cmd: cat 13579 [ttyraw] 0.00u 0.00s 0% 880k

[1] sinal(7) [2] stty(1)

Responder3

No Linux, dd suporta SIGUSR1 para status: http://man7.org/linux/man-pages/man1/dd.1.html

  Sending a USR1 signal to a running 'dd' process makes it print I/O
  statistics to standard error and then resume copying.

No BSD, dd suporta SIGINFO para status: https://www.freebsd.org/cgi/man.cgi?query=dd&sektion=1

Se dd receber um sinal SIGINFO (veja o argumento de status para stty(1)), as contagens atuais de blocos de entrada e saída serão gravadas na saída de erro padrão no mesmo formato da mensagem de conclusão padrão. Se dd receber um sinal SIGINT, as contagens atuais dos blocos de entrada e saída serão gravadas na saída de erro padrão no mesmo formato da mensagem de conclusão padrão e dd será encerrado.

BTW: O programa VMS BACKUP tem uma boa saída para Control-T.

informação relacionada