Porting:
Operazione con cui un programma, sviluppato originariamente per una
piattaforma, viene "ritoccato"
nel suo codice sorgente (vd.
compilatore) in modo da poter essere utilizzato
in un'altra piattaforma.
L'operazione solitamente non e' banale, soprattutto se il porting avviene
tra piattaforme molto differenti a livello
architetturale (ad esempio, da
Amiga a Digital Alpha). Esistono, comunque, delle linee guida tramite le
quali e' possibile scrivere programmi facilmente "portabili".
Talvolta il porting puo' anche essere impossibile, il piu' delle volte
per il fatto che il programma fa delle assunzioni particolari sulla
piattaforma in cui deve essere eseguito (ad esempio, utilizza un
particolare componente
hardware non presente in nessun'altra
piattaforma).
Redatto da Marco Lizza
Ecco il contributo di
Angelo Cresta:
il termine porting si usa nell ambito della ricompilazioni di
programmi da una piattaforma ad un'altra, come puo' essere per esempio un
programma scritto per macchine Windows e poi
portato su macchine
Linux (in
questo caso il processore e'
lo stesso, ma potrebbe anche non esserlo).
Anche il famoso MS-DOS
e' risultato di un porting, infatti Bill Gates (vd.DOS) non ha
scritto il codice del DOS, ma ne ha preso uno che girava sulle macchine di
allora, ne ha comprato la licenza, e lo ha "adattato" ai processori 8086
dell'epoca, dandogli il nome di MSDOS.
Att. Compilatore.
POST: Power-On Self Test, procedura di autocollaudo.
Serie di test, nella fase di bootstrap,
sui principali componenti del PC. Diagnostica atta a
garantire il corretto funzionamento dei componenti necessari (hardware)
per il caricamento del sistema operativo.
All'accensione del PC il POST (programma contenuto nel BIOS)
e' il primo passo eseguito, prima di ogni altro, nella fase di bootstrap.
Si riportano di seguito i componenti piu' rilevanti controllati
da questa serie di test: processore
(inizializzazione dei registri della CPU),
controller tastiera, CMOS, dischi,
scheda video, RAM, controller
DMA.
Se in questi rapidissimi test preparatori per il caricamento del sistema operativo
si dovesseri riscontrare dei problemi, viene visualizzato un errore sul video, oppure,
dallo speaker del PC vengono emessi uno o piu' bip che informano l'utente sul tipo
di disguido. Ciascuna sequenza di bip, stabilita dal costruttore del BIOS, indica un
particolare guasto. Sfortunatamente il guasto puo' sussistere anche se non viene
emesso alcun bip! Diversamente, un eventuale bip all'avvio del PC con visualizzazione
su monitor della fase di caricamento del sistema operativo, e' indice di un boot corretto.
Posting: I singoli messaggi degli utenti.
Powerbook: In figura uno dei primi powerbook
(Powerbook 100, 1991) di Apple.
Il disk drive, ossia il lettore dei
floppy disk da 3,5 pollici, e' posto accanto al
portatile.
PowerPC: Il processore RISC sviluppato congiuntamente da Apple,
Motorola e IBM; vedi
descrizione tecnica introduttiva PowerPC.
PPP: Point-to-Point Protocol:
E' un protocollo
punto a punto byte oriented
operante al
livello Data Link (come HDLC e
l'obsoleto SLIP).
Stabilisce un metodo d'accesso ad Internet in cui il
computer dell'utente tramite
modem, si collega al
server del provider
(anch'esso provvisto di modem) tramite linea telefonica.
Il protocollo e' adatto anche per le connessioni punto punto tra due router
p.e. su linea CDN.
Con PPP, il computer dell'utente connesso ad Internet
diventa un host della rete ed appare come una porta
Ethernet della rete locale del server.
La connessione tramite PPP e' diretta, ossia i
pacchetti di dati possono viaggiare dalla rete
verso il computer dell'utente e viceversa, eliminando l'intermediazione del server.
PPP adotta un metodo di framing
(divisione dei pacchetti in pacchetti piu' piccoli)
E' presente il checksum per una connessione
affidabile.
PPP adotta il protocollo NCP
per negoziare le seguenti opzioni del Livello Network:
stabilisce un collegamento Internet temporaneo;
il server infatti assegna un indirizzo IP temporaneo
(detto indirizzo IP dinamico)
al computer dell'utente connesso in quel momento tramite modem.
Il collegamento dura fino a quando l'utente non interrompe la connessione,
andando a liberare la sua linea telefonica nonche' il modem remoto del server e
quindi l'indirizzo IP dinamico. Quest'ultimo potra' essere assegnato
dal server ad un altro utente abbonato allo stesso provider (nota: se si tenta la
connessione ad Internet via modem ma la linea telefonica risulta occupata, molto
probabilmente i modem del provider sono tutti utilizzati per permettere ad altri
utenti la connessi ad Internet).
Con NCP il PPP rispetto a SLIP e' molto piu` potente e flessibile poiche'
e' in grado di trasportare non solo pacchetti
IP, ma anche quelli di altri protocolli (ad es. IPX, AppleTalk,
IP v6)
Con LCP il PPP testa la linea telefonica, quindi
mantiene la connessione o la fa cadere.
Approfondimenti:
Consente una maggiore capacita' di negoziare varie opzioni
con l'altra estremita':
compressione VJ, netmask (vedi
Subnetting), default
gateway, autenticazione.
PPTP: Point to Point Tunneling Protocol.
Il Point-to-Point Tunneling Protocol
(PPTP) e' un protocollo di rete che attiva una trasmissione sicura di dati
tra un client remoto ad un
server di una qualche azienda per esempio.
Questo viene fatto creando una rete privata virtuale (VPN) basata sulla rete
TCP/IP.
PPTP supporta
protocolli di rete multiple
(IP, IPX, e NetBEUI)
puo' essere usata per networking privati su reti pubbliche o private
(EDI). Il PPTP
permette reti virtuali sicure su linee dial-up,
LAN,
WAN, Internet, o
qualsiasi altra rete basata sul protocollo TCP/IP.
Ecco un documento reperito in rete: (pdf)
http://support.3com.com/infodeli/tools/remote/general/pptp/draft-00.pdf
Mandateci un messaggio se questo link
non dovessere essere piu' attivo.
Redatto da Angelo Cresta
PRAM: parametric RAM
, memoria di dimensioni ridotte interna ai
Macintosh alimentata da una batteria a
forma di cilindro (3,6 V) o di pastiglia, dipende dai modelli
(costo medio 17 mila Lit). Questa memoria mantiene data, ora,
risoluzione, impostazioni personali
dell'utente.
Preemption: Vedi
deadlock.
Printer:
Vedi stampante.
Privilegiate: sono privilegiate le
istruzioni
che possono essere eseguite solo in Supervisor mode
(vedi anche SVC. Se la CPU
incontra una istruzione di questo tipo mentre e' in
user mode, generera' una $exception$
tipo "privilege violation" o analoga.
Spesso le istruzioni privilegiate, per dare un'idea, sono
istruzioni molto particolari, che permettono di interagire
direttamente con certi aspetti della CPU, tipo istruzioni
che modificano il contenuto dei
registri di stato, o
che operano sulle
cache o sui registri
dell'MMU.
Spesso sono istruzioni che vengono usate solo dal
kernel, che
viene nella maggior parte dei casi eseguito in supervisor mode.
(redatto da Manta/Elven 11)
Processing parallelo:
Tecnica costruttiva per cui si realizzano piu'
unita' distinte all'interno della CPU che lavorano
tutte contemporaneamnte su compiti diversi (vedi anche Sottounita' di elaborazione,
Architettura, parallelo).
Processo: Puo' essere identificato grossolanamente
con il termine generico
di programma che svolge determinati compiti.
Un processo e' definito
con una terna (S,f,s):
S e' l'insieme di variabili di stato del processo;
f e' il prog. che definisce per qualunque stato qual'e' lo stato
successivo;
s e' lo stato iniziale del processo attivo o che puo' evolvere;
gli stati possibili sono:
- waiting: il processo non puo' evolvere,
attende dati dall'esterno o da un altro processo.
- ready: e' pronto ma non sta evolvendo.
- exec: sta evolvendo, il kernel
gli ha assegnato il processore.
Un processo puo' essere creato solo da un altro processo, utente o di
kernel. Le diversita' sono le rispettive autorizzazioni ereditate dal processo padre
(privilegi, priorita', file, dispositivi o device di
I/O);
relazioni dinamiche: processo padre prosegue o
aspetta oppure il processo figlio non conserva relazioni (
detached);
relazioni di contenuto con il p.padre: il processo figlio e' copia del processo padre
oppure esegue un programma diverso.
- terminazione - una syscall exit causa la conclusione delle
operazioni di I/O bufferizzate e
il rilascio delle risorse del processo (memoria fisica e virtuale, I/O device,
trasmissione di dati al p.padre se ce ne sono, distruzione del descrittore).
Con la kill il processo termina a causa di un altro processo in modo controllato
secondo privilegi e/o protezioni.
relazioni dinamiche: 1) il processo figlio risveglia il processo padre in attesa;
2) la terminazione del processo padre causa la terminazione dei processi figli (orfani),
questi possono essere adottati da un altro processo; 3) i processi
detached non sono influenzati dalla terminazione del
processo che li ha creati.
Processore: unità che esegue un processo,
generalmente identificabile con la CPU. Anche la FPU è un processore, chiamato anche coprocessore
matematico.
Prodotto cartesiano:
Il prodotto cartesiano di n insiemi qualsiasi
(A1 X A2 X... X An) e' un
insieme i cui elementi sono ennuple ordinate (a1,a2,...,an).
Facendo un esempio specifico, se A1 = {1,2} e A2 = {a,b} allora
A1 X A2 = {(1,a), (1,b), (2,a), (2,b)} ossia l'insieme costituito
dalla combinazione di tutte le coppie che hanno i due numeri come primo elemento
e le due lettere come secondo elemento. Le coppie in numero sono 4 (=2*2),
in generale con n insiemi sono |A1|*|A2|*..*|An|
ove con |Ax| si indica la cardinalita' di un insieme ossia il numero totale di elementi
di quell'insieme.
Attinenze: Base di dati relazionale, COBOL.
Programma: insieme di
istruzioni sintatticamente corrette per l'elaboratore.
Questa condizione e' necessaria ma non sufficiente per considerare un programma privo di errori.
Infatti l'elaborazione dei dati in ingresso (input),
deve essere anche semanticamente corretta, ossia l'algoritmo deve
restituire informazioni corrette, utili. Nota: per il programmatore
gli errori semantici sono piu' difficili da individuare, rispetto a quelli sintattici.
Argomenti correlati debugger,
software e algoritmo.
Programmazione: Creazione di
programmi, definizione di automatismi per mezzo di uno
specifico linguaggio di programmazione.
Per la programmazione e' spesso necessaria un'attenta analisi
della realta' e degli elementi da simulare.
Vedi anche Algoritmo.
PROLOG: Linguaggio di programmazione realizzato
a Marsiglia tra il 1972 e il 1973 dal Prof.
Alain Colmerauer e dal suo gruppo.
Il nome di questo linguaggio e'
ottenuto dalla contrazione dei due termini PROgramming e LOGic.
Tale linguaggio e' nato grazie anche allo sviluppo della programmazione
logica
durante gli anni '60 negli Stati Uniti per la ricerca nel campo dell'Intelligenza Artificiale.
Solo nel 1977 si ha il primo compilatore Prolog sviluppato all'universita' di Edimburgo.
Prolog: clicca qui per vedere alcuni esercizi svolti.
Alcuni punti importanti per la programmazione Prolog:
La programmazione in Prolog risolve problemi riguardanti oggetti e loro relazioni.
Il nome della relazione e' detto predicato (vedi p.e. il predicato
lunghezza negli esercizi svolti).
I fatti sono composti da predicati e oggetti conclusi dal punto(.) .
Le regole sono del tipo [testa] :- [corpo].
Nota: i due caratteri
":-" stanno per se, quindi [testa] e' TRUE se
e' TRUE [corpo]. Anche le regole sono concluse dal punto(.).
L'insieme dei fatti costituisce un database.
Le domande (query) vengono poste sui fatti e loro relazioni.
Le clausole sono fatti e regole insieme.
Qualsiasi nome che inizi con la lettera maiuscola e' una variabile (es: X,XY,Ls,ecc.).
Prompt: segnale di disponibilità, spesso formato dal nome della
macchina seguito da un numero di comando e dal carattere ">". In un
PC
sotto sistema operativo MS-DOS (vedi DOS) il
prompt è "C:\>".
Protocollo:
Insieme di regole standard che permettono il
trasferimento delle informazioni tra macchine. I
computer per comunicare tra loro
hanno bisogno di una regola, di un codice di trasmissione chiamato appunto protocollo.
Pensiamo alla trasmissione di dati tra 2 computer non compatibili via Modem: se il file inviato
(upload) da uno computer viene
trasmesso in codice ASCII e l'altro computer e'
disposto a ricevere (download)
solo file in codice
"ASCII non puro" (es: l'arcaico ma glorioso Commodore 64), allora la
comunicazione anche se avviene, può risultare indecifrabile per
l'utente. Esempi di protocolli: IP,
TCP, UDP,
FTP,
HTTP, SMTP,
NNTP (protocollo
per le newsgroup) ecc.
Provider: fornitore di servizi di rete Internet chiamato anche network provider o
service provider. Egli è
generalmente collegato a ad una linea telefonica speciale chiamata T-1.
Proxy:
Nodo di Internet
(o di una LAN ecc..) compreso di
software di gestione che
si interpone fra l'host dell'utente e il resto della rete.
PROXY SERVER: si intende una macchina che appena riceve una richiesta tipo
URL
cerca il file nella sua cache locale.
Se trova il documento associato a quell'URL lo invia al
browser che lo ha richiesto immediatamente altrimenti
lo preleva dal sito associato a quell'URL. Questo processo permette un risparmio di
tempo e di traffico in Internet.
Il server comunque mantiene nella cache i documenti
secondo un criterio basato sulla loro data, grandezza e numero di accessi.
Il proxy server e' utile per memorizzare su una cache tutti i file raccolti
p.e. durante le navigazione in Web,
per cui permette di rivisitare siti gia' visti senza dover effettuare una nuova
connessione con il sito remoto. Facendo un esempio
nell'hard disk dei alcuni
provider sono raccolte tutte le
ultime pagine lette degli abbonati.
PROXY ARP: in una rete il proxy server puo' definire quali macchine di una
LAN possono accedere ad internet e quali no. In questo caso il server che gestisce
la sua LAN risponde ad una richiesta fatta da un host secondo il protocollo
ARP e controlla la sua identita'. Se l'host richiedente ha
i permessi per entrare in Interent la richiesta verra accettata e sara' permesso l'accesso all'indirizzo scelto,
altrimenti la richiesta verra rifiutata.
PSP: vedi
Estensioni
PSTN: Acronimo di Public Switched
Telephone Network. La sigla della
normale linea telefonica analogica.
(Redatto da Angelo Cresta)
PSX: Playstation™.
Punto a punto: per connessione punto a punto (point
to point) si intende una comunicazione di dati solo tra due macchine.
Se le macchine connesse tra loro sono in numero maggiore di 2 allora si ha una
connessione in rete. Vedi anche PPP
Termini mancanti/suggerimenti ?
© Copyright 1997-2001 by
Francesco Longo,
flongo@dsi.unive.it