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