Process Explorer è la migliore utilità per visualizzare e gestire i processi

Esistono numerose utilità utilizzate per gestire in un modo o nell'altro i processi in esecuzione nel sistema operativo. Consideriamo solo le utilità di base. Nella tabella 1 mostra un elenco dei principali programmi progettati in un modo o nell'altro per controllare i processi.

Tabella1. Programmi di gestione dei processi

Descrizione del programma

Esegue i comandi in un momento specifico

Esegue i comandi quando il carico del sistema lo consente

Esegue i comandi secondo una pianificazione predefinita

Ti consente di lavorare con i file crontab dei singoli utenti

Interrompe l'esecuzione di un processo

Modifica la priorità di un processo prima che inizi

Consente l'esecuzione di un processo dopo che l'utente si è disconnesso

Visualizza informazioni sui processi

Modifica la priorità di un processo in esecuzione

Mostra chi sta attualmente lavorando nel sistema e con quali programmi

Questa utilità permette di organizzare un processo in background che continua a funzionare anche quando l'utente si è disconnesso dal terminale, a differenza del comando &, che non lo consente. Per organizzare un processo in background, è necessario eseguire il seguente comando:

nohup running_ background_command &

In un terminale appena avviato, il processo non può essere visualizzato utilizzando il comando jobs, poiché il comando jobs elenca i processi del terminale corrente, quindi dopo essersi collegati al terminale è necessario utilizzare il comando ps con il parametro –A.

Il programma ps è progettato per ottenere informazioni sui processi esistenti nel sistema operativo. Questo comando ha molte opzioni diverse, ma ci concentreremo su quelle più comunemente usate. Ricevere informazioni dettagliate vedere la pagina man di questo programma.

La semplice esecuzione di ps senza parametri produrrà un elenco di programmi in esecuzione sul terminale. Di solito questo elenco è molto piccolo:

PID TTY TEMPO CMD

885 ttyl 00:00:00 accedi

893 ttyl 00:00:00 bash

955 ttyl 00:00:00 ps

La prima colonna è pid (numero identificativo del processo). Come già accennato, ogni processo in esecuzione nel sistema riceve un identificatore univoco, con l'aiuto del quale il processo viene controllato. Ad ogni processo appena avviato viene assegnato il successivo PID libero. Quando un processo termina, il suo numero viene rilasciato. Al raggiungimento del PID massimo il successivo numero libero verrà preso da quello più piccolo liberato.

La colonna successiva, tty, mostra su quale terminale è in esecuzione il processo. L'esecuzione del comando ps senza parametri mostrerà i processi in esecuzione sul terminale corrente.

La colonna del tempo mostra la quantità di tempo CPU in esecuzione nel processo. Non è il momento esatto da quando il processo è iniziato perché Linux è un sistema operativo multitasking. Le informazioni elencate nella colonna del tempo mostrano il tempo effettivamente impiegato dal processore nell'esecuzione del processo.

La colonna CMD(COMMAND) mostra il nome del programma. Viene visualizzato solo il nome, le opzioni della riga di comando non vengono visualizzate.

Per ottenere un elenco esteso dei processi in esecuzione sul sistema, utilizzare il seguente comando:

Le opzioni fornite al programma in questo esempio fanno sì che venga stampato non solo i nomi dei programmi, ma anche un elenco delle opzioni con cui i programmi sono stati eseguiti.

È apparsa una nuova colonna: STAT. Questa colonna visualizza lo stato del processo. Elenco completo puoi leggere nella descrizione del programma ps. Descriviamo gli stati chiave:

– la lettera R indica un processo in esecuzione in un dato momento;

– la lettera S indica un processo dormiente: il processo è in attesa di qualche evento necessario per attivarlo;

– la lettera Z è usata per denotare processi “zombi” (zombi) – questi sono processi il cui processo genitore ha cessato di esistere, lasciando i processi figli come lavoratori.

Se presti attenzione alla colonna TTY, noterai che molti processi situati nella parte superiore della tabella contengono un "?" in questa colonna. invece di un terminale. Ciò denota processi avviati da un terminale che non è più attivo. Di norma, si tratta di tutti i tipi di servizi di sistema.

Se vuoi vedere ancora più informazioni sui processi in esecuzione, prova a eseguire il comando:

Sono inoltre apparse le seguenti colonne:

    UTENTE: mostra con quale utente è stato avviato questo processo;

    %CPU, %MEM - mostrano rispettivamente quanto tempo del processore e la quantità di RAM utilizzata richiede questo processo;

    TIME - ora di avvio del programma.

Un'altra utilità con la quale è possibile ottenere informazioni sui processi in esecuzione nel sistema operativo. Per usarlo, esegui semplicemente il comando top. Questa utilità visualizza un elenco di processi sul sistema, ordinati in ordine decrescente in base alle risorse utilizzate.

All'inizio del messaggio visualizzato sullo schermo sono presenti informazioni a livello di sistema: da esse è possibile scoprire l'ora di avvio del sistema operativo, il tempo di funzionamento del sistema operativo dall'ultimo riavvio del sistema, il numero di utenti attualmente registrato nel sistema operativo, nonché il carico minimo, massimo e medio dei sistemi del sistema operativo. Inoltre, viene visualizzato il numero totale di processi e il loro stato, quale percentuale delle risorse di sistema viene utilizzata dai processi utente e dai processi di sistema, l'utilizzo RAM e "scambiare".

La tabella seguente è molto simile all'output del programma ps. Il numero identificativo del processo, il nome utente del proprietario del processo, la priorità del processo, la dimensione del processo, il suo stato, la RAM e la risorsa del processo centrale utilizzata dal processo, il tempo di esecuzione e, infine, il nome del processo.

Una volta avviata, l'utilità principale aggiorna periodicamente le informazioni sullo stato dei processi nel sistema operativo, consentendo di ottenere dinamicamente informazioni sul caricamento del sistema.

Il programma kill è progettato per inviare segnali appropriati al processo specificato. Di norma, ciò accade quando alcuni processi iniziano a comportarsi in modo inappropriato. L'uso più comune del programma è interrompere l'esecuzione dei processi.

Per arrestare un processo è necessario conoscere il PID del processo o il suo nome. Ad esempio, per terminare il processo 123, basta eseguire il comando seguente:

Come al solito, per terminare un processo, l'utente deve essere il proprietario del processo. L'utente root può terminare qualsiasi processo sul sistema.

A volte il programma di kill standard non fa il lavoro. Di solito ciò accade perché il processo è bloccato o sta eseguendo un'operazione che, a suo avviso, non può essere interrotta immediatamente. Per interrompere questo processo, è possibile utilizzare il seguente comando:

In generale, il programma kill è progettato per inviare segnali di controllo ai processi, uno dei quali è il segnale sigterm (termina). Questo segnale viene inviato a un processo quando esegue il programma kill per impostazione predefinita. Il processo che riceve questo segnale deve terminare correttamente il suo lavoro (chiudere i file in uso, resettare i buffer di I/O, ecc.). L'interruttore -9 dice al programma kill di inviare un diverso tipo di segnale al processo: sigkill. Ciò porta al fatto che il processo non termina correttamente, ma cessa immediatamente la sua attività. Oltre a questi segnali, hai a tua disposizione tutta una serie di segnali diversi. Un elenco completo dei segnali può essere ottenuto utilizzando il comando chiamata di aiuto.

Un'altra variante del programma kill. Utilizzato per terminare processi che hanno lo stesso nome. Ad esempio, sul sistema sono in esecuzione diversi programmi mc. Per terminare questi programmi contemporaneamente, basta eseguire il seguente comando:

Naturalmente, questo non è l'unico utilizzo di questo comando. Con il suo aiuto, puoi inviare segnali a un gruppo di processi con lo stesso nome. Per ulteriori informazioni su questo comando, consultare la relativa pagina man.

Modificapriorità di esecuzione del processo

Nel sistema operativo Linux ogni processo ha la propria priorità di esecuzione. È molto conveniente. Poiché il sistema operativo è multitasking, viene assegnato un certo tempo per l'esecuzione di ciascun processo. Per alcune attività è necessario allocare di più, per altre puoi allocare di meno. Ecco a cosa serve la priorità del processo. La priorità del processo è controllata dai programmi nice e renice.

Il simpatico programma ti consente di eseguire un comando con una priorità di esecuzione predefinita, che viene specificata sulla riga di comando. Durante l'avvio normale, tutte le attività hanno la stessa priorità e il sistema operativo distribuisce uniformemente il tempo della CPU tra di esse. Tuttavia, puoi utilizzare l'utilità simpatica per abbassare la priorità di un'attività, dando così agli altri processi più tempo CPU. Solo l'utente root ha il diritto di aumentare la priorità di una particolare attività. La sintassi per usare nice è:

Carino - numero comando

Il livello di priorità del processo è determinato dal parametro numero, un valore più alto significa una priorità più bassa del processo. Il valore predefinito è 10 e numero rappresenta il numero di cui ridurre la priorità.

Ad esempio, il processo principale ha una priorità pari a -5. Per abbassare di dieci la priorità di esecuzione di un processo, dobbiamo eseguire il seguente comando:

Di conseguenza, il processo superiore ha una priorità pari a 5.

Solo l'utente root può aumentare la priorità di un processo utilizzando negativo valore del parametro numero.

Il programma renice, a differenza del programma nice, permette di cambiare la priorità di un processo già in esecuzione. Il formato di lancio del programma è il seguente:

renice - numero PID

In generale il programma renice funziona esattamente come nice. Il livello di priorità del processo è determinato dal parametro numero, un valore più alto significa una priorità più bassa del processo. Il valore predefinito è 10 e numero rappresenta il numero di cui ridurre la priorità del processo.

Solo l'utente root può aumentare la priorità di un processo utilizzando negativo il valore del parametro numerico.

Esegui processi in orari specificati

Uno dei compiti principali dell'automazione dell'amministrazione di un sistema operativo è l'esecuzione dei programmi in un determinato momento o con una determinata frequenza. Per risolvere questi problemi, esistono diverse utilità che consentono di avviare i processi al momento giusto.

Per eseguire uno o più comandi in anticipo certo tempo Viene utilizzato il comando at. In questo comando è possibile definire l'ora e la data per l'esecuzione di un particolare comando. Il comando at richiede almeno due parametri: il tempo di esecuzione del programma e il programma da avviare con i suoi parametri di avvio.

L'esempio seguente eseguirà il comando alle 01:01. Per fare ciò, inserisci tutto ciò che segue dal terminale, terminando ogni riga con una sequenza di tasti e dopo aver inserito l'intero comando - +per completarlo.

echo "L'ora è 1:01"

Il comando at può specificare oltre all'ora anche la data di inizio dell'esecuzione del programma.

L'utente root può utilizzare quasi tutti i comandi senza restrizioni. Per gli utenti normali, i permessi per utilizzare il comando at sono determinati dai file /etc/at.allow e /etc/at.deny. Il file /etc/at.allow contiene un elenco di coloro a cui è consentito utilizzare il comando at, mentre il file /etc/at.deny contiene un elenco di coloro a cui è vietato utilizzarlo.

Il comando batch è sostanzialmente uguale al comando at. Inoltre, batch è un alias per il comando at -b. L'utente desidera eseguire un backup la sera. Tuttavia, in questo momento il sistema è molto occupato e l'esecuzione di un backup del sistema ne paralizza praticamente il funzionamento. Questo è il motivo per cui esiste il comando batch: il suo utilizzo consente al sistema operativo di decidere quando arriva il momento giusto per eseguire un'attività in un momento in cui il sistema non è pesantemente caricato.

Il formato del comando batch è semplicemente un elenco di comandi da eseguire, seguendo il comando sulle righe; l'elenco termina con una combinazione di tasti +. Puoi anche inserire l'elenco dei comandi in un file e reindirizzarlo allo standard input del comando batch.

Cron è un programma che esegue lavori in base a una pianificazione, ma a differenza del comando at, consente di eseguire lavori più volte. L'utente definisce gli orari e le date in cui deve essere eseguito un particolare programma. Orari e date possono essere specificati in minuti, ore, giorni del mese, mesi dell'anno e giorni della settimana.

Il programma cron viene eseguito una volta, una volta all'avvio del sistema. All'avvio cron, controlla la coda dei lavori at e i lavori dell'utente nei file crontab. Se non viene trovato alcun lavoro da eseguire, cron eseguirà il controllo successivo entro un minuto.

Programma di controllo SRV– un analogo del sistema operativo, gestisce i processi e l'allocazione delle risorse nell'SRV, avvia e arresta i processi corrispondenti per l'elaborazione dei segnali di ingresso e distribuisce le risorse di memoria e processore. Tuttavia, i programmi di controllo di solito non dispongono di strumenti specifici del sistema operativo più complessi, come gli strumenti di gestione dei file.

Nonostante il fatto che sul mercato prodotti software Esistono diversi programmi di controllo RTS; spesso sono progettati in modo indipendente come parti di sistemi a causa dei requisiti speciali per RTS specifici.

I componenti del programma di controllo (Fig. 2.1) dipendono dalle dimensioni e dalla complessità del sistema di controllo progettato. Tipicamente, i programmi di controllo, ad eccezione di quelli più semplici, sono costituiti da seguenti componenti.

1. Orologio in tempo reale una componente di un programma di controllo che fornisce periodicamente informazioni per la pianificazione del processo.

2. Gestore delle interruzioni un componente del programma di controllo che gestisce le richieste aperiodiche ai servizi.

Z. Programma di pianificazione un componente del programma di controllo che esamina l'elenco dei processi pianificati per l'esecuzione e ne seleziona uno.

4. Amministratore delle risorse un componente del programma di controllo che, dopo aver ricevuto un processo pianificato per l'esecuzione, alloca la memoria necessaria e le risorse del processore.

5. Dispincisore (nucleo) un componente di un programma di controllo che avvia un processo da eseguire.

Riso. 2.1. Componenti di un programma di controllo in tempo reale

I segnali di ingresso elaborati dall'RTS hanno solitamente diversi livelli di priorità. Per alcuni segnali, come quelli associati a situazioni di eccezione, è importante che la loro elaborazione venga completata entro un certo intervallo di tempo. Se un processo con priorità più alta richiede un servizio, gli altri processi devono essere sospesi. Di conseguenza, l'amministratore di sistema deve essere in grado di gestire almeno due livelli di priorità dei processi di sistema.

1. Livello di interruzione processi del sistemalivello più alto priorità assegnate a quei processi a cui è necessario rispondere rapidamente. Un esempio di tale processo sarebbe il processo dell'orologio in tempo reale.

2. Livello dell'orologio Il livello di priorità dei processi di sistema assegnato ai processi periodici.

Un altro livello di priorità può essere quello dei processi in background, la cui esecuzione non è soggetta a rigidi limiti temporali (ad esempio il processo di autotest). Questi processi vengono eseguiti quando sono disponibili risorse del processore libere.

All'interno di ciascun livello di priorità, è possibile assegnare priorità diverse a diverse classi di processi. Ad esempio, potrebbero esserci più livelli di interruzione. Per evitare la perdita di dati, un'interruzione proveniente da un dispositivo più veloce deve impedire l'elaborazione dell'interruzione da parte di un dispositivo più lento.

Gestione dei processi– questa è la selezione di un processo per l'esecuzione, l'allocazione di memoria e risorse del processore per esso e l'avvio del processo.

I processi periodici sono processi che devono essere eseguiti in un periodo di tempo fisso e predeterminato (ad esempio, quando si raccolgono dati o si controllano attuatori). Il programma di controllo SRV utilizza il suo orologio in tempo reale per determinare quando inizia il processo. La maggior parte degli RTS hanno diverse classi di processi periodici con periodi (intervalli di tempo tra le esecuzioni dei processi) e durate di esecuzione diversi. Il programma di controllo deve essere in grado di selezionare in qualsiasi momento il processo assegnato per l'esecuzione.

Un orologio in tempo reale è configurato per emettere periodicamente un segnale di clock, solitamente con un periodo di pochi millisecondi tra i segnali. Il segnale di clock avvia un processo a livello di interruzione che esegue uno schedulatore di processi per gestire i processi periodici. Un processo a livello di interruzione in genere non gestisce da solo i processi periodici perché l'elaborazione dell'interruzione deve essere completata il più rapidamente possibile.

Le azioni eseguite dal programma di controllo durante il controllo dei processi periodici sono mostrate in Fig. 2.2. Lo scheduler esamina l'elenco dei processi periodici e seleziona da esso un processo da eseguire. La scelta dipende dalla priorità del processo, dal periodo del processo, dalla durata prevista di esecuzione e dal termine ultimo per il completamento del processo. A volte, nello stesso periodo tra i segnali di clock, è necessario eseguire due processi con tempi di esecuzione diversi. In tale situazione, un processo deve essere sospeso per un tempo corrispondente alla sua durata.

Riso. 2.2. Azioni del programma di controllo all'avvio del processo

Se il programma di controllo registra un'interruzione, significa che è stata effettuata una richiesta ad uno dei servizi. Il meccanismo di interruzione trasferisce il controllo a una posizione di memoria predefinita che contiene un comando per passare ai servizi di interruzione. Questo programma dovrebbe essere semplice, breve e veloce da eseguire. Durante la gestione degli interrupt, tutti gli altri interrupt vengono ignorati dal sistema. Per ridurre la probabilità di perdita di dati, il tempo in cui il sistema rimane in questo stato dovrebbe essere minimo.

Un programma che esegue una funzione di servizio deve bloccare l'accesso agli interrupt successivi per non interrompersi. Deve identificare la causa dell'interruzione e avviare un processo ad alta priorità per gestire il segnale che ha causato l'interruzione. In alcuni sistemi di acquisizione dati ad alta velocità, il gestore dell'interruzione memorizza i dati presenti nel buffer al momento della ricezione dell'interruzione per l'elaborazione successiva. Dopo l'elaborazione dell'interrupt, il controllo ritorna al programma di controllo.

In qualsiasi momento possono essere assegnati più processi all'esecuzione con diversi livelli di priorità. Lo scheduler imposta l'ordine in cui i processi vengono eseguiti. Una pianificazione efficace gioca un ruolo importante se si vogliono soddisfare i requisiti dell’EAS. Esistono due strategie principali per la pianificazione del processo.

1. Pianificazione non preventiva strategia di pianificazione del processo, quando un processo è pianificato per l'esecuzione, si avvia e viene eseguito fino al completamento oppure viene bloccato per qualche motivo durante l'attesa dell'input dei dati. Con tale pianificazione possono sorgere problemi dovuti al fatto che nel caso di più processi con priorità diverse un processo ad alta priorità deve attendere il completamento di un processo a bassa priorità.

2. Pianificazione preventiva– una strategia di schedulazione dei processi in cui l'esecuzione di un processo può essere sospesa se il servizio riceve richieste da processi con priorità più elevata. Un processo con un livello di priorità più alto ha la precedenza su un processo con un livello di priorità più basso e gli viene quindi allocata una CPU.

All'interno di queste strategie sono stati sviluppati molti algoritmi di pianificazione diversi. Questi includono la pianificazione round-robin, in cui ciascun processo viene eseguito a turno, e la pianificazione basata sulla velocità, in cui ai processi di breve durata viene data una priorità più alta la prima volta che vengono eseguiti. Ogni algoritmo di pianificazione presenta alcuni vantaggi e svantaggi.

Le informazioni sul processo assegnato all'esecuzione vengono trasmesse all'amministratore delle risorse. Alloca la memoria necessaria per il processo selezionato e, in un sistema multiprocessore, alloca anche il processore. Il processo viene quindi inserito nella "lista delle destinazioni", ovvero all'elenco dei processi pianificati per l'esecuzione. Quando il processore termina l'esecuzione di un processo e si libera, viene chiamato il dispatcher. Esamina l'elenco disponibile, seleziona un processo che può essere eseguito su un processore libero e lo avvia per l'esecuzione.

Esploratore di sistema

Esploratore sistema è strumento moderno, che combina gli strumenti Process Hacker e Process Explorer. Inoltre, puoi usarlo per verificare la sicurezza dei programmi in esecuzione.

L'interfaccia di questo programma è semplice e intuitiva. Dopo aver avviato il software, si apre finestra di lavoro, dove nella scheda "Processi" le applicazioni sono allineate nella colonna di sinistra e i dati su di esse sono raggruppati nella colonna di destra. Sono inoltre disponibili le schede "Prestazioni", "Connessione", "Cronologia" e altre da visualizzare informazioni aggiornate sul funzionamento di tutti i processi e servizi in esecuzione.

Il vantaggio di questo programma è la sua interfaccia in lingua russa, compatibilità con tutti quelli rilasciati sistemi operativi, disponibilità di versioni di installazione e portatili.

Processo Lazo

Process Lasso è più di un task manager. Si tratta di un ottimizzatore di attività che fornisce a ciascun utente una serie di strumenti che gli consentono di assicurarsi che il sistema funzioni davvero correttamente. La caratteristica più importante di questo programma è ProBalance. Questa è l'adeguamento dei processi di sistema e la loro ottimizzazione. Viene eseguito automaticamente, senza l'intervento dell'utente.

Il programma è gratuito con supporto in lingua russa. Esiste però anche una versione a pagamento con funzionalità avanzate.

Gestore attività AnVir

Un'utilità di sistema gratuita progettata per pieno controllo su tutti i processi in esecuzione sul computer. Il programma fornisce all'utente informazioni complete sui processi, ha il suo riga di comando, DLL caricate, traffico in entrata e in uscita, icona della barra delle applicazioni, connessioni Internet, finestre, thread e aprire file. AnVir Task Manager consente di eseguire una serie di operazioni di base per tutti i processi: chiusura, ripristino e modifica della priorità.

I processi forniscono “vita” a un computer, così come possono portarlo alla “morte”.

Pertanto è consigliabile controllarli di tanto in tanto. Per questo sono stati creati programmi speciali.

Uno di questi è PC Hunter. È progettato con lo stesso scopo di Task Manager, ma con molto di più un gran numero opzioni.

Il programma è progettato per visualizzare, controllare e gestire (chiudere) i processi informatici per rilevare virus e fornire accesso a informazioni su libri, hardware, software, reti e molto altro ancora.

Non è necessario installarlo: è portatile. Potete scaricarlo dal link alla fine del post. Lì nell'archivio troverai due versioni per 32 e 64 bit.

Rimarrai sorpreso quando lo eseguirai e vedrai quanto bene può essere ispezionato il sistema.

L'unico inconveniente è che non esiste la lingua russa, ma ci sono molte opzioni dal punto di vista dell'analisi del sistema.

Caratteristiche del programma per i processi informatici - PC Hunter

Nella finestra principale vedrai un ricco menu che include la visualizzazione di processi, moduli, reti, voci, file, informazioni di avvio, gestione e molto altro.

La visualizzazione viene effettuata nel menu "processo". Puoi eliminarlo o chiuderlo. Per eliminarlo, selezionarlo e fare clic con il tasto destro, quindi fare clic sulla riga "Elimina file dopo la terminazione".

Se il processo è sconosciuto, puoi verificarlo facendo clic sulla riga "Analizza online". Per chiudere il processo, fare clic sulla parola "Uccidi".

Come puoi vedere, nonostante Lingua inglese, la gestione avviene senza complicazioni.

PC Hunter ti mostrerà ogni parte del sistema in dettaglio e ti permetterà di scegliere tra diverse azioni per ogni file o processo che ti interessa.


Ad esempio, puoi scansionare processi e file per chiudere o eliminare file non necessari.

Fai solo attenzione, le modifiche errate diventano importanti file di sistema il computer potrebbe causare problemi.

In conclusione, PC Hunter è molto buono, ricco di informazioni che offre analisi avanzate del vostro sistema. Il programma funziona su tutti gli attuali Versioni di Windows, incluso Windows 10. Buona fortuna.

Sviluppatore:
http://www.epoolsoft.com/

Sistema operativo:
XP, Windows 7, 8, 10

Interfaccia:
Inglese