Google+ Quarta Info B: ottobre 2012

martedì 30 ottobre 2012

LA RIVOLUZIONE FRANCESE-INTRODUZIONE

La rivoluzione francese inizia con una serie di avvenimenti a partire dal 1789 al 1815. La fase più propriamente rivoluzionaria dura fino al 1794.
Questa scoppia per colpa della crisi finanziaria dello stato francese, dove è presente un deficit di 116 milioni di lire tornesi, con un pesante debito pubblico. I ministri delle finanze eletti da Luigi XVI, cercano di introdurre delle riforme per migliorare la situazione trovando contrapposizione con i privilegiati (nobili, clero ecc). Successivamente, dopo una serie di fallimenti, vengono convocati gli Stati Generali a Versailles il 5 maggio 1789, dove questi sono l'assemblea dei 3 ordini in cui è divisa la società francese, cioè, nobiltà,clero e terzo stato.
La causa di fondo è il fatto che l'Antico Regime non reggeva più come forma di società. In Francia ci sono ormai forze sociali e culturali, in grado di farsi carico del progetto di trasformazione. Le forze sociali sono composte principalmente da persone del Terzo Stato, composto a sua volta da dal popolo e i borghesi, mentre le forze culturali comprendono gli illuministi e il loro movimento.
L'elezione negli Stati Generali veniva fatta per "testa", cioè contando ogni singolo componente, ma ci sono voluto 2 mesi per accordarsi su questo metodo.
Successivamente il Terzo Stato si autoproclama Assemblea Nazionale, stufo di aspettare. Il re poi invita gli altri ordini a unirsi a questa, con l'obbiettivo di emanare una nuova Costituzione, creando così l'Assemblea Nazionale Costituente.
Nel contempo a Parigi e nel resto della Francia, il popolo si mette in moto, facendo l'assalto alla Bastiglia il 14 luglio del 1789. A partire dal 20 luglio 1789 anche i contadini si ribellarono a propri signori.
I principali provvedimenti dell'assemblea sono stati:
-4 agosto, abolizione dei diritti feudali
-26 agosto, dichiarazione dei diritti dell'uomo e del cittadino, creando una sorta di monarchia costituente con la divisione dei poteri, esecutivo al Re, legislativo all'Assemblea Legislativa e legge elettorale. Questo è il tipo di stato che verrà utilizzato a partire dal settembre del 1791.
-nazionalizzazione dei beni della Chiesa
-costituzione civile del Clero, dove i sacerdoti diventano funzionari dello stato francese.
 

lunedì 29 ottobre 2012

IL PRINCIPE (Niccolò Machiavelli)

Il principe, scritto da Machiavelli, è un libretto di 26 capitoli, dal capitolo 1 al numero 11 si parla dei principati, dal 12° al 14° del problema degli eserciti, dal 15° al 23° delle qualità di un principe, il capitolo 24 parla delle cause della crisi degli stati italiani. Nel capitolo 25 si parla, invece, del rapporto tra virtù e fortuna, infine il 26° è composto dall'esortazione a liberare "la Italia".
Esso viene scritto nell'anno 1513 a seguito delle "Guerre d'Italia", che vedono scontrarsi la Spagna e la Francia per l'egemonia sul territorio italiano.

IL TRATTATO POLITICO

Un grande cambiamento del trattato politico si ebbe con Niccolò Macchiavelli (1469-1527) e Francesco Guicciardini (1483-1540), nati entrambi nell'epoca di Lorenzo Il Magnifico, in un clima di crisi e incertezza nella penisola italiana. Nel 1512 viene restaurato il potere dei Medici a Firenze, ma dopo il 1527 vengono cacciati e viene restaurata la repubblica; nel 1530 Alessandro De Medici torna al potere per soli 7 anni, dopodiché viene assassinato da una congiura fatta dal cugino Lorenzino.
La riflessione nei trattati cerca strade nuove, diventando sempre più un interpretazione personale; mutando il trattato politico in una forma di moderna saggistica. I due autori, Macchiavelli e Guicciardini non scrivono più per celebrare un principe, ma per cercare di trovare le soluzioni e i rimedi, per la crisi italiana.

LA PROSA-IL GENERE DEL TRATTATO

Nascita e struttura:
I trattati sono dei particolari testi in prosa di tipo narrativo, con una tesi e delle argomentazioni a favore di essa. Il genere in esame si afferma durante il 400, nella forma del dialogo. Questo influisce molto nel genere del trattato, dove scambio e confronto assumono un valore fondamentale; il dialogo diventa la forma letteraria più consona al trattato.
La lingua:
La lingua più utilizzata nei trattati è il latino, spesso linguaggio degli intellettuali d'Europa; solamente quando lo scrittore è interessato ad espandere il suo trattato ad un pubblico più popolare, viene utilizzata la lingua volgare, in modo da permettere a tutti di poterlo leggere.
Nel 500:
Nel cinquecento la trattatistica, assume un ruolo centrale nella scrittura europea. Questo genere è dedicato alla ricerca di regole nei campi delle principali attività umane, come la politica e la cultura.

lunedì 22 ottobre 2012

Sistemi: Multiprocesso, la sua gestione e concetti fondamentali

*Overhead= in generale, sovraccarico del sistema
*Time sharing: è praticamente il concetto della multiprogrammazione, si cerca di spartire il tempo di utilizzo della CPU tra le task di utenti diversi.

Processo:  è un insieme di istruzioni in sequenza che vengono eseguite e dalla memoria utilizzata dallo stesso.
Un programma, sotto richiesta di un utente, può diventare un processo.
Un processo avrà in memoria 3 segmenti: un di stack, uno data e uno di codice.
Un S.O. basato sulla multiprogrammazione deve poter distinguere i processi l'uno dall'altro. I processi hanno una variabile, detta anche pid, che contiene un numero intero ( che parte da 1) che contraddistingue una task dall'altra. Tutti i processi sono raccolti in una tabella dei processi che contiene i nomi dei processi, la CPU utilizzata, la memoria utilizzata.
Questa tabella viene utilizzata da un programma interno del S.O. chiamato scheduler.
Lo scheduler ha il compito di scegliere il processo da eseguire tra la tabella dei processi tramite un algoritmo; esso dovrà avere alcune caratteristiche per eseguire il suo lavoro in maniera ottimale:
- Dovrà essere equo con i processi, senza monopolizzare le risorse ad un unico processo
- Dovrà essere rapido nella scelta del processo da eseguire, indipendentemente dal numero di processi da eseguire
Naturalmente dovrà rispettare anche la gerarchia dei processi: un processo in kernel mode avrà sicuramente più privilegi di un processo in user mode.

Ad ogni cambio di processo avviene anche un cambio di contesto: I dati del processo vengono salvati in memoria insieme ad altri dati come lo stato della CPU, il numero dell'istruzione a cui il processo è arrivato e altri dati.

Per passare da un processo all'altro intercorre un tempo chiamato time slice: questi tempo serve per permettere il passaggio da un contesto all'altro (cioè di cambiare ambiente del processo).
Questo tempo su i sistemi con kernel Linux può essere modificato a piacere, ma può essere dannoso per l'affidabilità di un computer mettere un tempo troppo piccolo, perché il S.O. potrebbe non riuscire a cambiare contesto in tempo, mentre se si mette un tempo troppo elevato ne risentiranno le prestazioni del PC.


Processi:
Un processo su una CPU uniprocessore può essere in quattro stati distinti:
- Running: Il processo è in esecuzione e sta svolgendo le sue istruzioni
- Ready: Il processo può essere eseguito dalla CPU
- Wait o Block: il processo è in attesa,  ad esempio di dati ecc...
- Zombie: è un processo che ha finito la sua esecuzione, ma possiede ancora un pid è una variabile da far ritornare al padre, come un intero, un float, una stringa...
Questo tipo di processo si crea quando un padre di un processo genera un processo figlio e non aspetta il ritorno del valore dal figlio.




Un job che sta girando sul processore può subire un'interruzione se deve eseguire dei trasferimento dati in input/output facendo una system call andando in wait, oppure ha superato il quanto di tempo ha sua disposizione ( Time out) verrà interrotto, andando nello stato Ready. ( Un quanto è un periodo di tempo che il S.O. dedica ad un singolo processo. Più il quanto sarà grande, più il sistema sarà orientato verso il CPU-bound, cioè sistemi che vanno a scatti ma che ha a disposizione più tempo per sfruttare la CPU; il contrario invece, cioè un quanto più piccolo per processo si avrà un sistema predisposto per verso il I/O- bound [ Input/output], dando però un passaggio un sistema più fluido).
Dopo aver ricevuto i dati che gli servivano il processo andrà nello stato di Ready.

I processi tra di loro possono comunicare (IPC, Inter Process Communication). Naturalmente i processi devono essere predisposti per lo scambio di dati.

I processi che non hanno una fine, tipo l'interrupt per aumentare l'ora dell'orologio, quello della tastiera, del mouse ecc.. su Linux si chiamano demoni (daemons), ed essendo processi anch'essi utilizzeranno memoria.
I processi tra di loro possono avere in comune solo il code segment ma solo se lo permette il S.O.
In generale, non condividono memoria.

*Un processo figlio comunica una sola volta con il padre, quando termina e va ritornare un valore.

Capitolo 1-Richiami sulle funzioni, insiemi numerici e insiemi di punti

Funzione: Dati 2 insiemi non vuoti X e Y si chiama applicazione o funzione da X a Y una relazione tra i 2 insiemi che ad ogni x appartenente all'insieme X, fa corrispondere uno e un solo y appartenente a Y.
Dominio: Se y è l'immagine di x tramite f, si scrive y=f(x) dove "f" sta a indicare la funzione e l'insieme X è il dominio di essa.
Codominio: è il sottoinsieme proprio o improprio di Y formato dagli elementi che hanno almeno una controimmagine nell'insieme X.
Classificazione funzioni
                                                      /                                                   \
                                           algebriche                                            trascendenti
                          (funzioni letterali, numeriche...)   (funzioni goniometriche,esponenziali e logaritmiche)
                        /                      |                        \
razionali intere            razionali fratte           irrazionali

Funzione pari: Si dice pari se il suo grafico è simmetrico rispetto all'asse y e se f(-x)=f(x)
Funzione dispari: Si dice dispari se il suo grafico è simmetrico rispetto all'origine e se f(-x)=-f(x)
Funzione crescente: Una funzione si dice strettamente crescente nel suo dominio D se:
 x1<x2 ==> f(x1)<f(x2)

Funzione crescente: Una funzione si dice strettamente decrescente nel suo dominio D se:
 x1<x2 ==> f(x1)>f(x2)
Funzione monotona: Quando la funzione è sempre crescente o decrescente in senso stretto.
Funzione costante: x1,x2   f(x1)=f(x2)
Funzione iniettiva: x1=x2 ==> f(x1)=f(x2)
Funzione suriettiva: Una funzione "f" da X a Y si dice suriettiva se il suo codominio coincide con Y.
Funzione biunivoca: Quando la funzione è sia iniettiva che suriettiva.
Funzione periodica: Una funzione si dice periodica di periodo T se vale: f(x+kT)=f(x) dove k è un numero intero e T deve essere un numero positivo il più piccolo possibile per cui vale l'uguaglianza.
Insieme numerico: Un insieme i cui elementi siano numeri.
Maggiorante:Preso un sottoinsieme di un insieme più grande, un maggiorante è un numero maggiore di tutti i numeri del sottoinsieme.
Estremo superiore: è il più piccolo maggiorante.
Insieme superiormente limitato: è un insieme che ammette l'estremo superiore.

Per dimostrare che un numero "s" è l'estremo superiore di un determinato insieme (E) di numeri reali, si devono far valere 2 proprietà:
- s risulti un maggiorante effettivo dell'insieme E(x<=s)
- Comunque si prenda un numero più piccolo di "s" a piacere, non deve essere un maggiorante, cioè deve esistere almeno un elemento di E maggiore di quel numero preso.
Insieme completo: Particolare insieme che non contiene buchi al suo interno.
Intorno di un numero: Qualsiasi sottoinsieme [a;b] contenente il numero stesso.
Punto di accumulazione: Dato un punto c, che può anche non appartenere all'insieme, è un punto di accumulazione o limite di un insieme lineare se, in ogni intorno di c, esistono infiniti punti dell'insieme.
Il numero 0 è un particolare numero, in quanto è sempre un punto di accumulazione.
Massimo assoluto di una funzione: è il punto "massimo" o più alto che il grafico della funzione può assumere.
Minimo assoluto di una funzione: è il punto "minimo" o più basso che il grafico della funzione può assumere.

martedì 16 ottobre 2012

Java: un linguaggio ad oggetti

La programmazione ad oggetti prevede di raggruppare in una zona circoscritta del codice ,ovvero la classe,  la dichiarazione delle strutture dati, attributi,  e delle procedure,i metodi,  che operano su di esse.

Un programma ad oggetti è un interazione fra più oggetti ( formati da metodi + attributi). 2 oggetti con con le stesse caratteristiche si dicono appartenenti alla stessa classe.

Classe : tipologia di oggetti definiti dallo stesso insieme di attributi e metodi. 
da cui deriva --> classificazione : insieme di oggetti con le stesse caratteristiche e proprietà strutturali

Incapsulamento: possibilità di poter stabilire quali dati possono essere pubblici privati o protetti.

Ereditarietà: permette di derivare nuove classi a partire da quelle già definite. Una classe creata da una classe già esistente , detta sottoclasse, ha già i metodi e le gli attributi della classe padre.

Polimorfismo: si intende la possibilità di dare lo stesso nome a sottoprogrammi che fanno cose diverse.
In java un esempio di polimorfismo può essere il "+" 
Esempi 5 + 3 (somma tra interi)
              1.5 +0.3 (somma tra float)
              "lodato"+"è"+"gay" (concatenazione tra più stringhe)

La decisione sul valore del "+" varia a seconda del tipo degli operandi 

Astrazione : classe astratta -> classe non istanziabile che può avere  metodi astratti
                     metodo astratto -> metodo di una classe astratta di cui non viene definito
                                                      il corpo     (viene definito dalle sottoclassi della classe                                                                    astratta)

Informatica: Appunti in generale

Informatica: scienza dell'informazione e gestione automatica dell'informazione

Piattaforma=S.operativo + CPU

Problema della portabilità del software: consentirne l'utilizzo su ambienti diversi.

Compilazione in Java: crea un file bytecode che verrà poi interpretato dalle varie macchine virtuali.

Interpretazione: ogni istruzione è letta, tradotta, ed eseguita al momento dal processore.

Svantaggi:
maggior tempo di esecuzione e maggior impiego di risorse del sistema
Vantaggi:
Più facilità nelle operazioni di debugging e operazioni di compilazione più rapide.

Macchina Virtuale: insieme di software che consente di eseguire lo stesso programma su piattaforme diverse.


Compilazione: traduzione del codice sorgente in linguaggio macchina.
Fasi:
1- Preprocessing( toglie ciò che non serve come commenti e spazi)
2- Analisi lessicale(controlla se conosce tutti i simboli presenti)
3- Analisi sintattica(guarda se c'è qualche errore di sintassi es. true treu )
4- Analisi semantica(studia il significato : errori a parametri e tipi)

Vantaggio linguaggi compilati:
Velocità della compilazione: minor "peso" a tempo di esecuzione , sia di tempo sia di memoria.
Svantaggi:
Quando vi è un errore in esecuzione , va riscritto e ricompilato, per poi rieseguirlo.


martedì 9 ottobre 2012

Sistemi: L'evoluzione dei computer

La nascita dei computer risale nel XIX secolo, quando Charles B. e Ada Lovelace sviluppano il primo automa, facendo diventare Ada la prima programmatrice della storia.
I computer li possiamo suddividere in 4 grandi generazioni: 
La prima è quella dagli anni quaranta a gli anni circa metà anni cinquanta. I computer più rappresentativi di questa epoca sono L'ENIAC e la Bomba ( Derivato dal suo ticchettio che produceva mentre lavorava).
L'ENIAC è un calcolatore sviluppato negli USA, la Bomba invece è un computer Polacco, poi utilizzato dagli Inglesi, per decifrare il codice Enigma dei Tedeschi nella seconda guerra mondiale.
I calcolatori di questa generazione si distinguono per il non possedere un S.O. e per utilizzare valvole termoionica al posto dei più moderni transistor, i dati in input erano gestiti tramite dei nastri perforati, scritti grazie a speciali macchine da scrivere. Questi calcolatori potevano eseguire solo semplici algoritmi e non potevano essere programmate.

La seconda generazione di computer (dal '55 al '65)  non ha ancora dei dispositivi come il mouse, la tastiera e il monitor. Tutto l'operazione di input si svolge tramite nastri perforati, che possono contenere dei programmi. Il programmatore deve scrivere il programma, tradurlo personalmente in linguaggio macchina istruzione per istruzione ed infine creare il nastro perforato.
Questi sistemi si chiamano batch system, cioè la macchina può eseguire solo un processo alla volta, eseguendo le istruzioni una dopo l'altra. Questi sistemi sono di tipo main frame, cioè grossi computer con alte capacità di calcolo ed affidabilità per gestire una grande quantità di dati.

La terza generazione di computer ( '65- '80) sono formati da poche migliaia di transistor, derivando il nome di mini computer.  Questa nuova generazione introduce il concetto di multiprogrammazione, cioè ottimizzare l'utilizzo della CPU. Quando eseguiamo un processo, esso potrebbe avere bisogno di alcuni dati che devono essere forniti all'utente. Perciò la macchina si mette in attesa, sprecando tempo prezioso (A quei tempi poter eseguire il maggior numero di operazioni possibile alla macchina era fondamentale, soprattutto sotto il punto di vista economico, per poter far funzionare sempre la CPU, sfruttandola al massimo). E la multiprogrammazione serve per evitare questo: quando un processo è in attesa può passare ad un altro processo per ottimizzare i tempi e le operazioni eseguite.
Un esempio per rendere più chiaro l'importanza dei sistemi a multiprocesso può essere:
Prendiamo 3 processi p1, p2, p3 che abbiano rispettivamente 10s, 5s e 8s di tempo per completare la loro esecuzione.
In un sistema batch, cioè quelli della 2° generazione, il tempo che ci impiega teoricamente (senza contare il tempo che ci impiega avviare i processi, caricare i dati ecc..) ci impiegherebbe 10+5+8= 23s di esecuzione.
In un computer di 3° generazione invece, i processi vengono tutti caricati sulla memoria della macchina:

Questo è uno schema di come potrebbe essere gestito un gruppo di 3 processi, soffermandoci solo sulla parte iniziale.


Il sistema avvia il primo processo p1, che dopo 22ms per motivi vari (da una chiamata di sistema, oppure sta aspettando dei dati in input dall'utente) si interrompe. Ed è qui il vantaggio della multiprocesso: sfruttando i tempi morti dei processi si possono portare avanti delle altre task (task, job e processo indicano la stessa cosa, tranne job che può essere un insieme di tasks). Perciò, si avvierà il processo 2, che interromperà a sua volta per far incominciare p3 e così via. Per concludere, se consideriamo il time slice, cioè il tempo per passare da processo a processo e altri fattori (come l'avanzamento dei vari processi e la distribuzione dei tempi morti ecc..)  possiamo concludere 3 processi in 12s (+o-).

I computer di 4° generazione, detti anche micro computer, corrispondono ai computer moderni, con sistemi con milioni o addirittura miliardi di transistor.


lunedì 8 ottobre 2012

La Gerusalemme Liberata- Il Proemio

1°Strofa
Gli elementi che differiscono dalla Gerusalemme Liberata, di Torquato Tasso, all'Orlando Furioso, di Ariosto, sono principalmente 2. Il primo è la religione, alla quale, nel primo poema viene data una grande importanza nella storia e nelle vicende, a differenza dell'altro. La seconda differenza sostanziale era quella delle due guerre combattute all'interno del romanzo; la prima, Gerusalemme Liberata, fu ambientata nel periodo delle crociate e ne narra le vicende, mentre la seconda, l'Orlando Furioso, è ambientata in una storia immaginaria e inventata da Ariosto.
2°Strofa

Nella seconda strofa troviamo "l'invocazione" ad una Musa, una creatura celeste dell'epoca classica, ornata di una corona d'oro di stelle immortali. Questo sta a confermare che nel poema della "Gerusalemme Liberata" è presente anche un tema religioso e solenne, a differenza di quello di Ariosto, dove il linguaggio è più schietto e superficiale.
3°Strofa
In questa parte il Tasso cerca di raccontare storie e vicende che trattano di guerre e battaglie, ingannando il lettore, in modo di fargli leggere le avventure delle Crociate, senza però farlo apparire in modo evidente. Riesce ad attrarre i lettori che prima disprezzavano questi tipi di storie.
4°Strofa
Qui troviamo la dedica al duca Alfonso, dove gli chiede di aiutarlo a farsi notare e di accettare il suo poema, considerandolo un omaggio e un voto(dedica) verso costui.
5°Strofa
Si parla di una nuova crociata che serve per poter togliere ai mussulmani il Santo Sepolcro che detengono; ridandolo ai cristiani con armi e navi da battaglia. Questo viene utilizzato da Torquato Tasso come forma di incitamento verso il duca Alfonso, a ricompiere l'impresa di Goffredo nella prima Crociata.

mercoledì 3 ottobre 2012

Sistemi - Riepilogo comandi da console Linux accennati

Sistemi - Riepilogo comandi da console Linux accennati

Generali:.cd: [change - directory] : cambia la cartella dell'ambiente
.cfdisk: tabella partizioni del disco
.q [quit] : esci
.sudo [super user do] : sintassi --> sudo "processo"
.reboot [riavvia il sistema]
.pstree --> "Albero genialogico dei processi" (per ricordare tree--> albero ps --> process)
.man "nome comando" --> formato help di un comando
.mkdir [make - directory]: crea una cartella vuota

Supporto [Non spiegati]

.ps -ef [trova il pid (process identifier) di un processo]

.ls -all  [listare il contenuto di una directory]
.kill -9 [Sterminato dal sistema operativo]
.kill -15[Suicidati]
.clear - pulisce schermo

.mv [Rinomina il file]-  Sintassi:  mv nome_file_da_rinominare     nuovo_nome_file



Compilatore:

.gedit nomefile.estensione [Apre il file nel editor di linux]
.gcc -o  nomefileoutput.out  nomefile.c  [compila nomefile e crea nome file output]

opzioni da aggiungere al compilatore : -wall [warning all]
                                                                     -pedantic[pedante]




Creare Live USB Linux

Questa guida fa riferimento alla distribuzione Ubuntu, ma è valida per tutte le distribuzioni.

Pre-requisiti: L’immagine ISO dell’ultima versione di Ubuntu scaricabile dal sito italiano ufficiale. Il programma Linux live USB Creator.
Innanzitutto installate l’LinuxUSBLiveCreator(Lili) ed in seguito inserite la penna usb nel computer per poi avviare il programma.
Una volta avviata l’utility:
Innanzitutto la prima cosa da fare è quella di scegliere la chiavetta(o hard disk esterno) dove vogliamo installare Ubuntu.

Selezioniamo la ISO di Ubuntu,possiamo eventualmente scegliere di effettuare il download dell’iso, anche se consiglio di scaricare prima il file immagine che volete avviare da usb.
Adesso nello step 3 dobbiamo lasciare "Live USB", altrimenti apportate le modifiche che volete(vi consiglio di lasciare così per lo scopo che abbiamo).
Ora possiamo scegliere se formattare la nostra chiavetta USB e se vogliamo nascondere i file di installazione(il mio consiglio è di formattarla se non avete dei dati a cui tenete).
Una volta finito, clicchiamo sul fulmine in basso e attendiamo che la procedura finisca.
Fatto ciò la nostra chiavetta è pronta per installare Ubuntu su altri computer(o per provarlo).

Spostiamoci sul computer su cui vogliamo installarlo, prima però quest'ultimo deve essere spento, inseriamo la chiavetta, accendiamo il PC e poi clicchiamo subito il pulsante "ESC"(può darsi che con altri BIOS diversi non sia lo stesso pulsante, comunque solitamente è quello), ci apparirà la sequenza di boot e da qui selezioniamo la nostra chiavetta USB con il tasto ENTER. Attendiamo il caricamento per qualche minuto e poi potremo scegliere se installare Ubuntu o provarlo.

Se avete qualche problema scrivete nei commenti.

Sistemi: Primi accenni dei sistemi operativi, HDD

Transistor: creazione di una porta And e di una porta Or





Porta And fatta con i transistor.

               I1  I2  |  Y
               0    0      0
               0    1      0
               1    0      0
               1    1      1









Porta Or

                I1   I2  |  Y
                0    0       0
                0    1       1
                1    0       1
                1    1       1










Sistema Operativo (S.O.)
Con sistema operativo si intende l'insieme di programmi che gestiscono l'astrazione dell'hardware e delle risorse del computer.
Praticamente il S.O. deve poter permettere all'utente o al programmatore di modificare, di scrivere su dei file, su dei dispositivi, di poter accedere alle periferiche ecc..

Nei sistemi multiprocesso (SMP, Symmetric MultiProcessing) il S.O. deve fare la distinzione tra i processi kernel ( cioè i processi con i privilegi più alti che servono per la gestione del S.O.) e quelli user ( i processi avviati dall'utente).
Chiamata di sistema: un processo che non possiede i privilegi richiede al S.O. un servizio a livello del kernel. (Praticamente chiede al S.O. qualcosa che non avrebbe i privilegi di fare).
Il Kernel (dall'inglese nucleo)  il software vero e proprio del S.O. e può essere di vari tipi:
-Modulare: Questo è il kernel che si è affermato , ad ogni driver aggiunto semplicemente "appende" le righe di codice che gli servono per il corretto funzionamento del dispositivo al software, al kernel.
-MicroKernel: è un kernel con solo le istruzioni base per eseguire le il minimo indispensabile, ha bisogno di software esterni contenenti i driver per il corretto funzionamento dei dispositivi (es. è il microkernel basato su unix è composto da circa 10000 righe di codice, per uno spazio occupato da compresso di circa 2 Mb)

* Per passare da un processo all'altro si utilizzano degli interap o la chiamata di sistema SVC ( SuperVisor Call) che permettono l'interruzione di un processo per passare all'esecuzione di un'altro.*

Quando accendiamo un computer le prime operazioni che svolge sono di controllo dell'hardware, questa fase è indicata con la sigla POST (Power On Self Test) ed è eseguita dal BIOS. Finito il controllo si passa alla fase del Boot Loader, cioè la macchina ricerca nell'hard disk il primo settore (512Kb) del S.O. per iniziare a caricare il kernel dalla memoria secondiaria (dall'hard disk) alla memoria primaria (la ram). Questo settore è chiamato anche Master Boot Record (MSR). Finito la fase di boot loader il BIOS termina e incomincia il S.O.
* Se sono presenti più sistemi operativi ( dovuto a delle partizioni del disco che contengono loro stessi un S.O. ) si può selezionare quale far avviare tramite il boot maneger *

Disco fisso (HDD): è composto da dei dischi, dei piatti costituiti da un materiale magnetico dove è possibile memorizzare dei dati (sia sopra che sotto al piatto). Lo spazio negli HDD viene diviso in settori, su cui è possibile l'accesso tramite 3 variabili: C,H,S che stanno per Cylinder, Head, Sector (Cilindro, Testina, Settore). Questa tecnologia si è poi evoluta in LBA che sta per Large Block Addressing per via dei limiti di memoria accessibile tramite il vecchio sistema CHS.
Gli HHD possono avere al massimo 4 partizioni primarie più una estesa, che è possibile dividere in altre 64 sottopartizioni. Su ogni partizione primaria è possibile installare un S.O.
Nel MBR è contenuto anche la tabella delle partizioni dell'hard disk (Primarie + l'eventuale logica). Le sottopartizioni della partizione logica, se esiste, è contenuta nel root sector.
* La partizione logica non può contenere i file system!*
Per gestire le varie partizioni dell'hard disk esistono programmi (su linux, ad esempio, fdisk). --> GParted
Esiste anche un altra partizione del HDD che è la memoria di swap: la memoria di swap serve in caso se la macchina esaurisse lo spazio sulla memoria primaria, perciò si utilizza della memoria secondaria come memoria primaria. Ma essendo la memoria secondaria molto più lenta della memoria primaria, questo va ad influire sulle capacità della macchina stessa.

I sistemi operativi moderni posseggono una interfaccia grafica, dove l'utente possa gestire la macchina in modo semplice ed intuitivo. Ma negli anni precedenti non esistevano le interfaccia grafiche ( chiamate anche GUI, Graphical User Interface) , esistevano sole le interfaccie caratteri, le così dette Shell ( come il Dos).
La GUI è limitata nelle azioni che si possono fare, mentre la Shell non ha limiti sulle operazioni che può eseguire.

* Il boot può anche avvenire tramite il collegamento con un server: il computer scarica il kernel , scarica i moduli necessari per il S.O. , infine associa ogni modulo al suo dispositivo associato *



lunedì 1 ottobre 2012

Societò di Antico Regime e ordini

SOCIETA' DI ANTICO REGIME:
Modello di società che domina in Europa tra metà '600 e metà '700.
I protagonisti della rivoluzione francese che si avviavano al cambiamento hanno dato il nome di "società di antico regime" alla società "vecchia" che stavano per rinnovare.

Nella società di Antico Regime le gerarchie non erano determinate dalla posizione economica dell'individuo e quindi non era una società di classi ma di ordini: l'appartenenza di un individuo ad un ordine è definita giuridicamente.
Abbiamo tre ordini:
-Clero
-Nobiltà
-Terzo stato (borghesi e contadini non appartenenti a nessuno dei primi due ordini)

(   Adalberone di Laon già secoli prima aveva dato un proprio concetto di divisione della società:
    oratores che pregavano, bellatores che combattevano e laboratores che lavoravano per il    
    mantenimento della società. )

CLERO [Pag 33]

Il clero aveva il monopolio totale dell'istruzione e della pubblica assistenza.
Godeva di particolari immunità:
 -Immunità personale: il sacerdote veniva giudicato da un tribunale ecclesiastico anche per reati comuni.
 -Immunità locale: sottraeva i luoghi sacri all'autorità della polizia o delle magistrature.
 -Immunità  reale: esentava i beni della chiesa dal pagamento delle imposte.

Inoltre i beni e le proprietà della chiesa erano soggette al vincolo della manomorta ovvero l'impedimento di divisione e vendita di questi.

Suddivisione
-Clero regolare
 Ordini religiosi caratterizzati da grande forza economica e culturale

-Clero secolare
 Corpo di sacerdoti al di fuori di un'organizzazione monastica che si divide a sua volta in:
 
     -Alto clero: comprendeva i vertici elle gerarchie ecclesiastiche, dotati di una cultura raffinata e
       notevole forza politica.

    -Basso clero:popolazione contadina e piccolo-borghese dal tenore di vita molto modesto.



NOBILTA' [Pag 35]

Nobile è chi dispone di un titolo che lo riconosce tale. (Concesso in origine dal sovrano).
Carattere distintivo della nobiltà era il mettere in discussione il fatto che ci fosse un ceto superiore agli altri e riconoscersi in esso.
Il titolo che possedeva il nobile concedeva determinati privilegi.
Tra '600 e '700 vive un periodo di crisi dovuta all'emergere di nuovi poteri e ricchezze legate all'attività borghese e dall'affermarsi di uno stato moderno che gli aveva sottratto potere e autonomia.
Importante è la distinzione tra nobiltà di sangue o "spada" e nobiltà di toga; la prima era ottenuta per discendenza la seconda era ottenuta per l'acquisto di una carica pubblica o per servizi svolti al favore del re. Questo faceva sì che anche i borghesi potessero ottenere il tanto desiderato titolo, seppur a prezzo molto caro.

Era comunque dalla terra che la nobiltà traeva la maggiorparte della sua ricchezza.
Persistono in Europa tracce della feudalità; infatti, il signore aveva rendite sia dalle terre coltivate da lui per mezzo di affittuari  o mezzadri sia per gli appezzamenti lavorati dai contadini che dovevano pagare un tot in denaro o natura. Quindi con le tasse da parte dei signori, le decime dalla chiesa e le imposte dallo stato i contadini non se la passavano bene.
Corti signorili dove potevano restare i contadini e lavorare senza doversi preoccupare di guadagnarsi da vivere ma stando comunque sotto il controllo di un signore.

TERZO STATO

- Contadini
- Borghesi (diverse figure sociali e professionali.)
- Popolo multiforme

Nelle grandi città si addensava il popolo multiforme: alcuni dediti a vari mestieri e altri che vivevano in miseria e precarietà.
Quindi aumentano a dismisura mendicità e vagabondaggio.
Per risolvere il problema vengono istituite delle case lavoro dove le persone erano costrette a lavorare.