Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
diGiorgioDavanzo
Sistemi Operativi
Sistema Operativo
Il Sistema Operativo (SO) un programma che gestisce e coordina le risorse disponibili, sia hardware (es: accessoad un disco) che software (es: pi programmi che voglionoessereeseguiti contemporaneamente). Il SO permette anche di condividere le risorse: se due programmi vogliono accedere in contemporanea al disco rigido, sar il sistema operativo a fare da mediatoretra i due, senza che questiseneaccorgano. Interfaccia Utente: il SO serve anche a creare programmi uniformi: si occupa lui di disegnarele finestre, pulsanti, eccin modo che tutteleapplicazionisianoesteticamentesimiliogniSOmoderno ha due interfacce utente:unanongrafica(stileDOS),dettaterminale,edunagrafica(stilewindows) dettaappuntointerfacciagrafica. Architettura CPU: i SO sonopredispostiperalcunetipologiediCPU(RISC/CISC,32/64bit,ecc).A volte,lostessoSOvienericompilatoperfunzionaresupiarchitetturediverse. API: il SO espone le proprie funzionalit tramite le Application Programming Interface, ovvero dei punti di accesso richiamabili da altri programmi. Es: quando in Java scriviamo System.out.println(), linterprete sa in base al SO in cui si trova quale API richiamare per effettuare la stampa del testo sullo schermo. Ogni SO utilizza delle API diverse: questo il motivo per cui un programma compilatoperLinuxnonpuessereusatosuOSXoWindows.
Programmi e Kernel
Processi e Task: un programmain esecuzione viene chiamato processo, ed identificato da un numero intero detto PID (Process ID) se avvio pi volte lo stesso programma, creer pi processi aventi lo stesso nome ma PID diverso. Ogni processo pu essere composto da pi task, ovvero elementi dello stesso processo che sono contemporaneamente in esecuzione e che possono compunicare tra di loro. Es: il processo Word ha un task che si occupa di leggere la tastiera, uno chesioccupadiscrivereavideoiltestoedunocheeseguecontinuamenteilcontrolloortografico. Path: una variabile stringa del sistema operativo al suo interno sonosalvati tutti ipercorsi in cui cercareilprogrammadaeseguirequandonevienespecificatosoloilnome. Kernel:ilkernelilnucleodelSO,permetteaivariprogrammidiaccedereallerisorse. Esecuzioneapplicazioni:ogniapplicazionepuessereeseguitainduecontesti, Kernel Space: accesso diretto alle risorse hardware (memoria, periferiche, ecc). Qui si possonofaredanniveri! UserSpace:laccessoallerisorseavvienetramiteilKernel Blue Screen of Death: messaggio dato da Windows quando qualcosa in esecuzione in Kernel Spacegeneraunerrore. Tipi di Kernel: ma cosa deve stare dentro allouserspaceecosadentroalkernelspace?Dipende dacosadecidedifareilproduttoredelSO.Cisonoduestrategie: Micro Kernel: il Kernel quanto pi piccolo possibile, ma pu essere espanso con laggiunta di altro codice.Problema:devocrearetantipuntidiaccessoalmiosistema,etanti elementiprodottidaaltridovrannopoteraccedereadelementidelicatidelKernel. Kernel Monolitico: il Kernel contienequante pi cose possibile. Problema: seunodiquesti elementi di rompe, tutto il Kernel si rompe. Vantaggi: quasi tutte le periferiche funzionano senzacomponentiaggiuntivi. Drivers: i drivers (moduli in linux) sono le aggiunte al Kernel che permettono di comunicare con dispositivi Hardware. Sono moltodelicati,perchpossonoaccedereadareedelcomputercon cuisi possonocreareproblemi. SequenzadiavviodelPC:
FondamentidiInformatica 1. 2. 3. 4. 5.
diGiorgioDavanzo
FondamentidiInformatica
diGiorgioDavanzo
inseritiinunacoda(spool)chelimandapoiallastampante. Servizi e Demoni: sono dei programmi che vengono eseguiti automaticamente senza alcuna interazione con lutente (servizi il nome windows, demoni in Unix). In windows, i servizi sono eseguitidalprogrammasvchost.exe,chepucontenerepiservizialsuointerno. Impostazioni programmi: quasi tutti i SO le conservano in piccoli files di testo. Solo windows le raccoglie tutte in ununico file, chiamato Registro di Sistema. Il registro si accede con il comando regedit, e si presentacome un albero.Cisono impostazionicomuniatuttigliutenti(LocalMachine), altre legate al singolo utente. Le impostazioni dellutente corrente sono copiate al login in un ramo dellalberochiamatoCurrentUser.