Anteprima
Vedrai una selezione di 8 pagine su 32
Orale Parte 1 Ambienti di programmazione Pag. 1 Orale Parte 1 Ambienti di programmazione Pag. 2
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Orale Parte 1 Ambienti di programmazione Pag. 6
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Orale Parte 1 Ambienti di programmazione Pag. 11
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Orale Parte 1 Ambienti di programmazione Pag. 16
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Orale Parte 1 Ambienti di programmazione Pag. 21
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Orale Parte 1 Ambienti di programmazione Pag. 26
Anteprima di 8 pagg. su 32.
Scarica il documento per vederlo tutto.
Orale Parte 1 Ambienti di programmazione Pag. 31
1 su 32
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Descrizione delle proprietà del processo

%CPU: percentuale di utilizzo della CPU dall'avvio del programma.

%MEM: percentuale di utilizzo della memoria da parte del processo.

CODE: ammontare di memoria fisica utilizzata dal processo per il suo codice eseguibile.

DATA: ammontare di memoria fisica utilizzata dal processo per i suoi dati.

RES: ammontare di memoria fisica utilizzata dal processo (uguale a CODE + DATA).

S: stato del processo (analogo a STAT di ps).

SHR: ammontare di memoria condivisa, rappresenta la memoria potenzialmente condivisibile con altri processi.

SWAP: ammontare di memoria virtuale di un processo presente nella swap.

TIME+: tempo di CPU utilizzato dall'avvio del programma, con granularità fino al centesimo di secondo.

Totale memoria virtuale usata dal processo.

include tutto il codice, i dati e le librerie condivise più le pagine che sono state messe su (uguale a +).

SWAP REST

Tabella 1.12: Proprietà dei processi e nome della relativa colonna nella visualizzazione effettuata da .top

In generale le informazioni riportate nelle colonne stampate da ps sono simili a quelle di top, anche se in alcuni casi esse vengono indicate diversamente. Le principali proprietà mostrate da ps sono riportate in tab. 1.12, per quelle comuni non presenti in detta tabella si faccia riferimento alle omonime di top riportate in tab. 1.11.

Come accennato se viene usato in modalità interattiva diventa possibile inviare una serie di comandi da tastiera, ad esempio con “ ” si può inviare un segnale (di default è , vedik SIGTERM sez. 1.3.3) mentre con “ ” si può cambiare la priorità (vedi sez. 1.3.4) di un processo. Con il comando “ ” si possono selezionare i processi di un utente, con “ ”, si può alternare

fra lau cstampa del nome comando e della riga completa, con & cambiare il periodo di aggiornamentoddei risultati. L'elenco completo, oltre ad essere riportato nella pagina di manuale, può esserestampato a video con & . Si noti che nelle righe iniziali mostrate in precedenza riporta anche delle statistiche com-topplessive sull'uso della memoria, queste possono essere ottenute separatamente tramite il comando, che mostra un riassunto generale dell'impiego della memoria all'interno del sistema, confreeun qualcosa del tipo: 1. L'architettura di un sistema GNU/Linux 43 freepiccardi@anarres:~$total used free shared buffers cached Mem: 775444 759364 16080 0 213276 316908 -/+ buffers/cache: 229180 546264 Swap: 498004 34708 463296 La prima riga riporta l'uso della memoria fisica, mentre l'ultimo quello della (se questaswapè attiva, torneremo sull'argomento in sez. 5.1.7). La riga centrale ci dice quanto della memoriaè

occupata o libera dal punto di vista delle applicazioni, per cui al valore alle colonne used riportato nella prima riga viene rispettivamente sottratta e aggiunta la somma delle colonne free e buff/cache, dato che esse indicano i dati temporanei che possono essere scartati qualora sia necessaria altra memoria per le applicazioni. In questo modo si ottiene la memoria usata direttamente dalle applicazioni e il totale di quella che potrebbe essere loro messa a disposizione.

Si noti che in genere la RAM libera è sempre molto poca; questo è corretto, in quanto non ha senso lasciare inutilizzata la RAM, per cui viene impiegata dai buffer del kernel (per gestire più efficacemente il trasferimento dei dati verso i dispositivi) e per mantenere dati temporanei, come riportato nelle colonne buffers e cached.

Il comando non ha argomenti e prende come opzioni -b, -k e -m per stampare i dati di utilizzo rispettivamente in byte, kilobyte (il default) e megabyte. Inoltre lo si

può mantenere attivo in modo da osservare continuamente lo stato della memoria usando l'opzione -s, seguita dal numero di secondi che passano fra un controllo e l'altro. L'elenco completo delle opzioni ed i relativi dettagli sono al solito riportati nella pagina di manuale, accessibile con man free. Infine, qualora si voglia ricercare il valore del PID di un certo programma, invece di andare a cercare nell'output di ps, si può utilizzare pidof. Il comando prende come argomento una lista di nomi dei programmi di cui si vuole conoscere il PID ed esegue automaticamente una ricerca nella tabella dei processi, stampando la lista dei PID di tutti i processi che corrispondono. Il comando prende l'opzione -s, che richiede, in caso di più processi che corrispondono allo stesso programma, di stampare un solo PID, mentre gli si può dire di omettere un PID passandolo come parametro per l'opzione -o. Per i dettagli del funzionamento e l'elenco completo delle opzioni, si può consultare la pagina di manuale.

Per consultare le opzioni, puoi consultare la pagina di manuale accessibile con .man pidof.

Il comando viene usato in genere negli script di shell (vedi sez. 2.1.5) per controllare se un certo programma è in esecuzione; infatti se nella ricerca non viene trovato nessun processo il comando non stampa niente ma ritorna uno stato di uscita indicante un errore, che può essere usato per prendere delle decisioni. Si tenga presente che la ricerca viene eseguita sul nome del programma, se esistono diversi programmi con lo stesso nome per avere la certezza di scegliere quello voluto è necessario indicare un assoluto.pathname.

1.4.1 I permessi dei file

La gestione dei permessi dei file in un sistema unix-like è tutto sommato abbastanza elementare; esistono estensioni che permettono di renderla più sottile e flessibile, ma nella maggior parte questa funzionalità viene fornita direttamente dalle librerie fondamentali del sistema (la glibc) tramite il Name Service Switch (vedi sez. 4.3.6).

come già detto gli interessati possono trovare una trattazione dell'argomento nella sezione 3.3 di [GaPiL].61 Control List),come le ACL (Access introdotte ufficialmente a partire dai kernel 2.6, o altri meccanismispecialistici ancora più sofisticati (come SELinux, cui abbiamo già accennato).1. L'architettura di un sistema GNU/Linux 43dei casi il controllo di accesso standard è più che sufficiente. In sostanza per il sistema esistono tre livelli di privilegi:i privilegi dell'utente, indicati con la lettera , (dall'inglese ).• userui privilegi del gruppo, indicati con la lettera , (dall'inglese• group).gi privilegi di tutti gli altri, indicati con la lettera , (dall'inglese ).• otheroe tre permessi base:permesso di lettura, indicato con la lettera , (dall'inglese ).• readrpermesso di scrittura, indicato con la lettera , (dall'inglese• write).wpermesso di esecuzione, indicato con la lettera ,

(dall’inglese• execute).x62il cui significato è abbastanza ovvio.Ogni file è associato ad un utente, che è detto proprietario del file e ad un gruppo (dettoa sua volta gruppo proprietario), per ciascuno dei tre livelli di privilegio (utente, gruppo e altri)è possibile specificare uno dei tre permessi (lettura, scrittura, esecuzione). Questi vengonoriportati nella versione estesa dell’output del comando :lsls -lpiccardi@anarres:~/GaPiL$total 2996-rw-r--r-- 1 piccardi piccardi 67 Feb 9 17:01 AUTHORS-rw-r--r-- 1 piccardi piccardi 8436 Feb 9 17:01 biblio.bib-rw-r--r-- 1 piccardi piccardi 29247 Feb 9 17:01 build.tex-rw-r--r-- 1 piccardi piccardi 7286 Feb 9 17:01 ChangeLog-rw-r--r-- 1 piccardi piccardi 29941 Feb 9 17:01 errors.tex-rw-r--r-- 1 piccardi piccardi 17277 Feb 9 17:01 fdl.tex-rw-r--r-- 1 piccardi piccardi 297727 Feb 9 17:01 fileadv.tex-rw-r--r-- 1 piccardi piccardi 415730 Feb 9 17:01 filedir.tex-rw-r--r-- 1 piccardi piccardi 205773 Feb 9 17:01

fileio.tex-rw-r--r-- 1 piccardi piccardi 5117 Feb 9 17:01 gapil.tex
drwxr-xr-x 3 piccardi piccardi 4096 Feb 9 17:01 htgapil
-rw-r--r-- 1 piccardi piccardi 7592 Feb 9 17:01 htgapil.cfg
-rwxr-xr-x 1 piccardi piccardi 175 Feb 9 17:01 htmakeindex.sh
drwxr-xr-x 3 piccardi piccardi 4096 Feb 9 17:01 html
-rwxr-xr-x 1 piccardi piccardi 2256 Feb 9 17:01 htmlize.sh
drwxr-xr-x 3 piccardi piccardi 4096 Feb 9 17:01 img
-rw-r--r-- 1 piccardi piccardi 84338 Feb 9 17:01 intro.tex

che ci mostra nella prima colonna i permessi secondo lo schema riportato in fig. 1.5. La lettura dell’output di questo comando ci permette di vedere che i sorgenti dei programmi contenuti nella directory in oggetto hanno quelli che sono in genere i permessi di default per i file di dati, si ha cioè il permesso di scrittura solo per il proprietario, quello di lettura per tutti quanti (proprietario, gruppo e altri) e l’assenza completa del permesso di esecuzione. Nel caso di un programma o uno script (tratteremo gli script

in sez. 2.1.5) invece i permessidi default sono diversi, come per nell’esempio precedente, ed oltre a quelli presentihtmlize.shper i normali file di dati si ha anche il permesso di esecuzione, che è abilitato per il proprietario,per il gruppo e per tutti gli altri.62 almeno fintanto che si fa riferimento ad un file normale, vedremo a breve che le cose cambiano quando sitratta di directory, link simbolici o dispositivi.

1. L’architettura di un sistema GNU/Linux 45

Legenda dei permessi dell’output diFigura 1.5: .lsIn generale un utente potrà effettuare solo le azioni per le quali ha i permessi, nel caso deipermessi appena illustrati questo comporta che un utente può leggere i file di un altro ma non puòmodificarli o cancellarli. In realtà il meccanismo del controllo è abbastanza peculiare, e questo,63se non capito fino in fondo, può dar luogo a qualche confusione. La verifica dei permessi diaccesso ad un file prevede infatti i seguenti passi, eseguiti

  1. se il processo viene eseguito dall'amministratore l'accesso viene sempre garantito, senza che sia eseguito nessun controllo;
  2. se il processo viene eseguito dal proprietario del file allora:
    • vengono controllati i permessi corrispondenti all'utente (i primi tre di fig. 1.5), e se questi sono assegnati per l'operazione richiesta, l'accesso è consentito;
    • altrimenti l'accesso è negato;
  3. se il processo viene eseguito da un utente che appartiene al gruppo proprietario del file allora:
    • vengono controllati i permessi corrispondenti al gruppo (i centrali in fig. 1.5), e se...
Dettagli
Publisher
A.A. 2019-2020
32 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher antonio199696 di informazioni apprese con la frequenza delle lezioni di Ambienti di programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università della Calabria o del prof Folino Gianluigi.