Come lavora Windows
Il Sistema
Windows prende il suo nome dalla funzionalità intrinseca di
lavorare su finestre. Ogni oggetto visibile in questo sistema viene chiamato
finestra. Ad ogni oggetto viene poi assegnato un handle (maniglia),
cioè un numero che risiede in memoria per fare ad esso riferimento ed un numero
di priorità il quale definisce la posizione di tale finestra sullo schermo (in
sfondo, con priorità normale, davanti alle altre). In questo modo lo schermo del
nostro PC diventa una specie di desktop (scrivania) virtuale in cui
appoggiamo i fogli (i documenti), apriamo le cartelle (diectory), utilizziamo
gli strumenti (calcolatrice, blocco note, foglio di calcolo). Ovviamente le
dimensioni non sono 3 ma 2, quindi qualcosa va nascosto e portato in secondo
piano.
Si dice che la finestra attiva possiede il focus. Anche menu e pulsanti
di vario genere sono considerate delle finestre. Anche essi hanno parametri
simili alle canoniche finestre: posizione, dimensioni, colore, numero di handle,
priorità. Non possiedono alcuni attributi tipo la client area (area per
interagire con l'utente) o le caselle di chiusura e riduzione a icona.
Ogni programma che viene aperto gira in una
macchina virtuale a sè. Ciò vuol dire
che vede assegnata una CPU ed una regione di memoria
esclusiva come se fosse l'unico programma in esecuzione. Siccome, però, non è
l'unico programma in esecuzione al momento, ad esso verrà assegnato un numero di
riferimento (una specie di handle) ed un numero che identifica la priorità. In
questo caso la priorità non è un fattore visivo, ma identifica il tempo di
occupazione della CPU da parte di quel programma. Ogni programma aperto viene
chiamato thread (processo) ed un programma può lavorare con diversi
sottoprocessi aperti (chiamati anch'essi thread o task). In questo modo
non è il programma che smista il lavoro alle varie parti di esso ma viene
utilizzata la funzionalità multithreading (o
multitasking) del Sistema operativo.
Oltre a finestre, handle, thread e macchine virtuali il sistema mette a
disposizione delle risorse. Le risorse consistono in: cache di sistema
(gestione delle informazioni provenienti dai dischi), menu e funzioni condivise
(interfacce comuni tipo la finestra "apri file..."), icone, palette
(tavolozza) di colori, memoria di schermo tipo desktop wallpaper (sfondo)
o screen saver e fonts (caratteri tipografici).
Sistemi di puntamento
In base alla risoluzione dello
schermo, vengono determinate la posizione
e le dimensioni delle finestre che verranno disegnati su di esso. I
sistemi possono essere fissi, come avveniva prima dell'avvento di Windows, oppure
relativi.
Per esempio se volessimo disegnare la nostra finestra grossa come metà schermo
ed in modo che l'angolo superiore sinistro coincida con l'angolo superiore
sinistro dello schermo (tanto per semplificare i calcoli), avremmo nella
modalità fissa:
Risoluzione | Angolo superiore sinistro | Angolo inferiore destro | |
640x480 | 0,0 | 320,240 | |
800x600 | 0,0 | 400,300 | |
1024x768 | 0,0 | 512,384 |
Potremmo quindi programmare il sistema in modo da rilevare la risoluzione e in base alla tabella fornire alla finestra le coordinate corrette. Se però il nostro pc utilizza una scheda che va alla risoluzione 1280x1024, il programma come si comporta? Potrebbe disegnare una finestra che non è metà schermo se viene preso l'ultimo valore disponibile, oppure se il programmatore non ha previsto un simile passaggio potrebbe anche cercare il valore contenuto nella quarta riga (che non esiste) causando un errore e terminando l'esecuzione.
I sistemi a puntamento relativo implicano un calcolo nelle dimensioni di ciò che viene rappresentato. Nel nostro caso se la finestra deve essere metà schermo basta rilevare il numero di pixel massimo e farne il 50%. Così se l'utilizzatore impostasse per assurdo una risoluzione pari a 5680x3540 (che ancora non esiste) il sistema calcolerebbe 5680 * 50 / 100 = 2840 e 3540 * 50 / 100 = 1770. Analogamente se l'angolo superiore non fosse 0,0, ma volessimo fosse al 10% dal bordo dello schermo basterebbe calcolare il valore in base alla risoluzione adottata.
I programmatori ed i progettisti di Windows preferiscono
usare delle unità di misura standardizzate che non siano percentuali o punti, ma
unità reali quali cm, mm, inch (pollici). Vi sono anche delle unità di misura
create arbitrariamente allo scopo quali i twip (usati in alcuni linguaggi di
programmazione) oppure i pica (unità di misura delle dimensioni del carattere
tipografico). Così un carattere che debba essere stampato a 12 pica sarà alto
144 pixel a risoluzione 1024x768 e 90 pixel a
640x480, ma siccome deve avere dimensioni pari a cm.5 circa, a video cambierà
definizione ed in stampa sarà sempre alto cm.5.
Per stampanti e
scanner il sistema di puntamento è determinato in dpi (dot per inch), cioè
punti per pollice. Quindi una immagine da cm.10x10 (in pollici 25,7x25,7)
scannerizzata a 300dpi avrà una risoluzione finale di 7710x7710 pixels.
Non solo stampanti scanner e schermo utilizzano i sistemi di puntamento
relativi, ma anche altri dispositivi di input come il
mouse e le schede di
acquisizione video.
Torna alla Home page Torna a Nozioni di base Torna a Principali applicativi