Introduzione ai Sistemi Operativi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione ai Sistemi Operativi"

Transcript

1 Introduzione ai Sistemi Operativi Daniel P. Bovet, Vito Asta corso di Sistemi Operativi Facoltà di Ingegneria Università di Roma 1 La Sapienza - sede di Latina Anno Accademico Versione 0.7, aprile 2003 Il materiale contenuto in queste dispense è soggetto al copyright GNU GENERAL PUBLIC LICENSE

2 GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODI- FICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The Program, below, refers to any such program or work, and a work based on the Program means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term modification.) Each licensee is addressed as you. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict

3 the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royaltyfree redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and any later version, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PRO- GRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM AS IS WI- THOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY CO- PYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, IN- CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PRO- GRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS

4 Indice 1 Classificazione dei Sistemi Operativi Introduzione Definizione e ruolo di un Sistema Operativo Software di base Classificazione dei Sistemi Operativi Gestione a lotti Gestione a lotti multiprogrammata Sistemi a partizione di tempo Sistemi personali Sistemi transazionali Sistemi di controllo di processi Una classificazione complementare Sistemi di sviluppo Sistemi paralleli Sistemi distribuiti Sistemi in tempo reale Sviluppi futuri Struttura dei Sistemi Operativi Introduzione Standardizzazione e Sistemi Aperti Componenti di un Sistema Operativo Gestione dei processi Gestione della memoria primaria Gestione della memoria secondaria Gestione del sistema di I/O i

5 ii INDICE Gestione dei file system Sistema di protezione Networking L interprete di comandi Servizi e funzionalità di un Sistema Operativo Panoramica delle chiamate di sistema Chiamate di sistema e API Implementazione di un Sistema Operativo La programmazione di sistema Struttura dei Calcolatori Elettronici Introduzione Architettura dei sistemi di calcolo Interruzioni hardware Interruzioni software I due modi della CPU Protezioni hardware Protezione della CPU Protezione della memoria Protezione dell I/O Acceso diretto alla memoria (DMA) Dispositivi di memorizzazione Il caching Appendice - Gestione dello Stack Software di Base Introduzione Messa a punto di programmi Assemblatori, compilatori e interpreti Linkaggio di programmi Librerie statiche e dinamiche Immissione di programmi Caricamento in memoria di un file eseguibile Supporto durante l esecuzione Salvataggio/ripristino di dati Amministrazione del sistema

6 INDICE iii 5 Il File System Introduzione Ruolo di un file system Protezione delle informazioni Strutturazione di un file system Struttura dei file Struttura dei nomi di file Attributi dei file Struttura e implementazione delle cartelle Operazioni su file e cartelle Implementazione dei file system Dimensione dei blocchi Allocazione di blocchi ai file Gestione dello spazio libero Ottimizzazione delle prestazioni Il file system di Unix Strutturazione del file system File e cartelle Link hard e soft Tipi di file Inode, i-number, descrittore di file Diritti d accesso e file mode Chiamate di sistema per la gestione di file Apertura di un file Indirizzamento di un file Chiusura di un file Cambiamento di nome e cancellazione di file Esempi Appendice - Funzioni di hashing

7 iv INDICE 6 Interfaccia con l Utente Introduzione Interfaccia a menu Interfaccia a comandi Lo shell di Unix Struttura dello shell Interfacce grafiche Interfacce grafiche per Unix Interfaccia grafica o a comandi Gestione dei Processi e della CPU Introduzione Multitasking Cicli di uso della CPU e di I/O Processi Operazioni su processi Stati di un processo Eventi e risorse Descrittore di processo Cambio di contesto Thread Scheduling di processi Code di scheduling Tipi di scheduler Criteri di scheduling Scheduling a breve termine Algoritmi di scheduling della CPU Scheduling a lungo termine Processi Concorrenti Introduzione Programmi concorrenti Controllo di processi in Unix Sincronizzazione tra processi Ruolo delle risorse consumabili

8 INDICE v Paradigma della mutua esclusione Paradigma produttore/consumatore Primitive di sincronizzazione Primitive di sincronizzazione in Unix Stallo tra processi Programmazione in tempo reale Spazio degli Indirizzi di un Processo Introduzione Indirizzi e regioni Modifiche dello spazio degli indirizzi Linking dinamico Mapping di file in memoria Altri tipi di mapping Struttura Interna del Nucleo Introduzione Nucleo e processi Che cosa è il Nucleo Ruolo dei segnali di interruzione Gestori delle interruzioni Implementazione delle chiamate di sistema Descrittori di risorse Interrompibilità del Nucleo Microkernel e kernel monolitici Implementazione dei processi in Linux Scelta del linguaggio di programmazione Gestione della Memoria Primaria Introduzione Indirizzamento della RAM Paginazione Indirizzi logici riservati ai programmi del Nucleo L algoritmo Buddy System Estensioni del Buddy System Demand Paging Swapping

9 vi INDICE 12 Gestione della Memoria Secondaria Introduzione Gestione dello spazio su disco Scheduling del disco Scheduling FCFS Scheduling SSTF Scheduling SCAN Scheduling C-SCAN Scheduling LOOK e C-LOOK Gestione dei dischi Formattazione dei dischi Gestione del blocco di bootstrap Gestione dei blocchi difettosi Gestione della zona di swap Gestione dei Dispositivi di I/O Introduzione Architettura di I/O Dispositivi di I/O riconosciuti dal file system Programmazione di un device file Supporto del Nucleo Sincronizzazione tra CPU e dispositivo di I/O Uso di cache nei driver per dischi

10 Elenco delle tabelle 4.1 Confronto tra linguaggi compilati e interpretati Differenza di produttività indotta dal multitasking Esempio di processi per l algoritmo di scheduling SJF Esempio di processi per gli algoritmi di scheduling SJF e RR vii

11 viii ELENCO DELLE TABELLE

12 Elenco delle figure 1.1 Componenti di un sistema di calcolo - schema Organizzazione della memoria RAM per un sistema batch monoprogrammato Organizzazione della memoria RAM per un sistema batch multiprogrammato Stati dei task in un sistema a partizione di tempo Schema architetturale di un sistema SMP Esecuzione di una chiamata di sistema mediante Trap API, chiamate di sistema e Nucleo Architettura di un sistema di calcolo Struttura della ALU Struttura fisica di un disco Gerarchia dei dispositivi di memorizzazione Organizzazione di uno stack Un esempio di riferimenti tra moduli Un esempio di collegamento tra moduli Fasi di messa a punto di un programma Organizzazione di un file system di Unix Collocazione dei file nello spazio dei nomi Tecnica delle tabelle di hashing Architettura minima di riferimento per un sistema concorrente Un esempio di esecuzione multitasking di programmi Stati di un processo e relative transizioni ix

13 x ELENCO DELLE FIGURE 7.4 Commutazione e cambio di contesto tra due processi Code di scheduling dei processi Migrazione dei processi tra le code di scheduling Diagramma degli stati dei processi e ruolo degli scheduler Punti di intervento dello scheduler di CPU Scheduling FCFS, primo caso Scheduling FCFS, secondo caso Scheduling FCFS, senza prelazione Scheduling FCFS, con prelazione Scheduling SJF, confronto con RR Scheduling RR Un esempio di sincronizzazione tra processi Creazione di una pipe e condivisione con un processo figlio Interazione tra processi di sistema in un sistema per la gestione a lotti Esempio di stallo tra due processi Spazio degli indirizzi di un processo Struttura interrupt driven del Nucleo Esecuzione di una chiamata di sistema da parte del Nucleo Esecuzione annidata di programmi del Nucleo Chiamata di sistema che pone il processo in uno stato di attesa Esecuzione di un processo prioritario con gestione interruzione incompiuta Interazione client/server tra processo utente e processo di sistema Trasformazione di un indirizzo logico in un indirizzo fisico Swapping Architettura di I/O

14 Premessa La presente dispensa è una versione derivata da quella omonima scritta dal Prof. Daniel P. Bovet, con adattamenti ed ampliamenti a cura dell ing. Vito Asta, ed è destinata ai corsi di Sistemi Operativi tenuti da quest ultimo per i corsi di laurea e di laurea specialistica in Ingegneria Gestionale, Ingegneria delle Telecomunicazioni e Ingegneria Elettronica dell Università Tor Vergata - Roma 2, nonché per i corsi di laurea in Ingegneria Informatica e Ingegneria delle Telecomunicazioni dell Università La Sapienza - Roma 1 (sede distaccata di Latina). La maggior parte degli argomenti trattati è accompagnata, ovunque possibile, con esempi concreti di codice in ambiente Unix/Linux, in particolare per illustrare l uso reale delle chiamate di sistema o funzioni di libreria trattate. Ogni esempio di codice è preceduto dalla sua esposizione sintetica in pseudo-codice, per facilitarne la comprensione ed eventualmente per permettere anche al lettore non pratico del linguaggio C di capirne il significato e la logica. Nel testo, i riferimenti a comandi, chiamate di sistema e funzioni di libreria sono annotati in questa font di caratteri; i corrispondenti riferimenti a pagine di manuale sono invece annotati secondo la convenzione invalsa nella documentazione del Sistema Operativo Unix, nome(sezione). Così read() è un generico riferimento alla omonima chiamata di sistema, mentre read(2) è un riferimento alla relativa pagina di manuale, nella sezione 2 (e quindi un esplicito invito al lettore a consultarla). Per informazioni sulla strutturazione delle sezioni della manualistica Unix, si veda Asta [3]. La dispensa è al momento in uno stato non ancora definitivo; pertanto alcuni degli argomenti sono accennati solo schematicamente. Lo studente è invitato, per queste parti, a far riferimento alle dispense dalle lezioni, pubblicate sul sito WEB del corso: 1

15 Capitolo 1 Classificazione dei Sistemi Operativi 1.1 Introduzione Lo studio del software di base in generale e dei Sistemi Operativi in particolare si rivela complesso in quanto doppiamente condizionato, sia dalla architettura (hardware) del calcolatore per cui è progettato tale software, sia dalle diverse esigenze dell utenza a cui il sistema finale (hardware più software) è destinato. L approccio seguito in questo testo è quello di scindere, per quanto possibile, le esigenze dell utenza, e quindi le caratteristiche funzionali del software di base, dalle tecniche di realizzazione. A tale scopo, si introducono in questo capitolo alcuni concetti preliminari attinenti alla definizione stessa e al ruolo di un Sistema Operativo, quindi all area del software di base; successivamente si illustrano, prescindendo dai criteri realizzativi, le funzionalità di varie classi di Sistemi Operativi, mettendo in evidenza al tempo stesso l evoluzione storica che tali sistemi hanno subìto in funzione delle innovazioni tecnologiche conseguite. Tecnicamente parlando, un Sistema Operativo consiste essenzialmente in quattro moduli principali: un programma di inizializzazione che viene eseguito quando viene avviato l elaboratore 1 ; un Nucleo che esegue chiamate di sistema, ossia particolari procedure mediante le quali i programmi possono richiedere uno dei vari servizi offerti dal Nucleo 2 ; un sistema d archiviazione (file system) 3 ; un interfaccia che consente all utente di esprimere le proprie richieste 4. 1 Questo argomento è trattato nel Paragrafo 10.3 pag Argomento trattato nel Paragrafo pag Argomento trattato nel Capitolo 5. 4 Argomento trattato nel Capitolo 6. 2

16 1.2. DEFINIZIONE E RUOLO DI UN SISTEMA OPERATIVO 3 In effetti, i testi di Sistemi Operativi più accreditati si limitano a trattare i suddetti argomenti. Dato il carattere introduttivo di questo testo, si ritiene tuttavia opportuno studiare i Sistemi Operativi seguendo un approccio top down, partendo quindi da una descrizione delle varie componenti di un sistema di calcolo, fino ad arrivare (nei prossimi capitoli) all analisi delle varie componenti importanti di un Sistema Operativo. 1.2 Definizione e ruolo di un Sistema Operativo A differenza di altre macchine, il calcolatore, considerato come congerie di circuiti hardware, non è un oggetto facilmente utilizzabile di per se stesso: esso è in grado di eseguire istruzioni e quindi programmi, purché tali programmi siano scritti in linguaggio macchina binario, l unico riconosciuto dal calcolatore. Inoltre, quando un calcolatore inizia ad operare in seguito all accensione, esso cerca in una area di memoria (generalmente, su una traccia di disco prefissata) le istruzioni da caricare in memoria e da eseguire per prime. Com è ovvio, questa inizializzazione della macchina, chiamata bootstrapping, sarà effettuata con successo, a condizione che la traccia di disco letta contenga effettivamente un programma scritto in linguaggio macchina. Si desume da quanto appena detto che è praticamente impossibile per l utente utilizzare direttamente l hardware di un calcolatore, anche accettando di programmare in linguaggio binario, a meno di non disporre di strumenti che gli consentano, da un lato, di immettere programmi nella macchina e, dall altro, di estrarre dalla memoria verso l esterno i risultati dei calcoli eseguiti. È da queste considerazioni, ed altre ad esse correlate, che scaturisce la necessità di disporre di Sistemi Operativi. Un Sistema Operativo è un programma (o un insieme di programmi) che agisce da intermediario tra l hardware e l utente. Gli scopi di un Sistema Operativo sono fondamentalmente due: eseguire programmi dell utente e rendere più facile la soluzione dei suoi problemi; rendere il calcolatore conveniente ed efficiente da usare. Si noti, ed è questo un dettaglio non da poco, che i termini convenienza (cioè facilità d uso) ed efficienza sono spesso in contraddizione tra loro: molto spesso la facilità d uso viene ottenuta ampliando gli strati intermedi di software, per aggiungere funzionalità più sofisticate o più ergonomiche, e ciò appesantisce inevitabilmente il sistema globale. Si pensi, per fare un esempio tipico, alla pesantezza (in termini di risorse di calcolo, di dispositivi hardware, di spazio in memoria centrale e su disco) di un qualunque sistema di interfaccia grafica: tale interfaccia è con tutta evidenza piacevole e potente, tanto da permettere tipicamente l uso di un calcolatore anche a persone senza nessuna esperienza informatica; ma è estremamente più pesante rispetto ad una semplice interfaccia a carattere (cioè a riga di comando), come quella offerta dallo shell di Unix 5. 5 Lo shell di Unix viene trattato nel Paragrafo pag. 90; si veda inoltre Asta [3] e [4].

17 4 CAPITOLO 1. CLASSIFICAZIONE DEI SISTEMI OPERATIVI User 1 User 2 User 3 User N... Compilatore Assembler Editor di testo Sistema di database Software di base Nucleo Hardware del computer Figura 1.1: Componenti di un sistema di calcolo - schema. Da un punto di vista macroscopico, un Sistema Operativo può pensarsi diviso in due componenti principali 6 : un Nucleo, o Kernel, che è la parte residente di un Sistema Operativo (sempre in memoria e sempre pronta ad eseguirsi); Un insieme di programmi 7 e di funzioni di libreria a corredo, facente parte stabile della distribuzione del Sistema Operativo, detto software di base. Tale insieme, commentato più in dettaglio nel Paragrafo 1.3, comprende a sua volta diverse categorie. Allargando la visuale, e ricordando come detto che il Sistema Operativo fa da intermediario tra l hardware e l utente, si può dire che le componenti di un sistema di calcolo sono dunque quattro, illustrate nella Figura 1.1: hardware fornisce le risorse di calcolo basilari: CPU (unità centrale), memoria, dispositivi di I/O (ingresso/uscita); Nucleo controlla e coordina l uso dell hardware tra i vari programmi per tutti gli utenti; come già detto, è la parte di un Sistema Operativo sempre in memoria e sempre pronta a eseguirsi; 6 Alcuni autori tendono a definire un Sistema Operativo come la sola parte sempre residente in memoria, cioè lo identificano col solo Nucleo. 7 Tali programmi sono talvolta divisi in due gruppi: programmi detti di sistema e programmi applicativi di base; la distinzione comunque non è netta ed univoca nella letteratura.

18 1.3. SOFTWARE DI BASE 5 software di base tale strato definisce i modi in cui le risorse del sistema vengono usate per risolvere i problemi computazionali degli utenti, e comprende tra l altro compilatori 8, sistemi di data base, sistemi di automazione d ufficio, etc. utenti sono in definitiva coloro che devono usufruire delle capacità dei sistemi di calcolo, e possono essere, in pratica, non solo persone fisiche, ma anche macchine dedicate, o altri calcolatori. 1.3 Software di base Si è già accennato, in apertura di capitolo, alla necessità di disporre di adeguati strati di software che permettano all utente di non dover gestire l hardware di un calcolatore in modo diretto; da ciò scaturisce, tra l altro, l esigenza di disporre di programmi di base e di funzioni di libreria che permettano all utente di porsi ad un livello più macroscopico ma più agevole nel servirsi di una macchina da calcolo. Fortunatamente, già negli anni 40 i progettisti delle prime macchine scoprirono che era conveniente sviluppare programmi in maniera modulare, introducendo sottoprogrammi (o subroutine) generiche richiamabili dal programma principale; il concetto si è poi esteso a programmi standard di uso comune, presenti nella distribuzione di un dato Sistema Operativo: era nato, in nuce, il software di base, inteso come corredo di programmi e funzioni di libreria standard accessibili all utente con lo scopo di facilitare l interazione uomo/macchina. Da allora, il software di base è evoluto di pari passo all hardware con delle marcate interdipendenze: sviluppi nel campo delle architetture e delle apparecchiature periferiche rendono necessario lo sviluppo di nuovo software di base; allo stesso tempo, tecniche di programmazione collaudate condizionano la progettazione dei più recenti microprocessori. Anche se non esistono definizioni rigorose, si indica dunque come software di base l insieme di programmi e funzioni di libreria, a disposizione di tutti gli utenti di un sistema, che complementano il Nucleo nel fornire le funzionalità di un Sistema Operativo. Il software di base fornisce un ambiente standard per lo sviluppo e l esecuzione di programmi e di procedure di comandi, e più in generale per l utilizzazione pratica del sistema. Il software di base può essere diviso in varie categorie 9 : Programmi a complemento delle funzionalità del kernel (lilo, init, etc.; vari daemon 10 : telnetd, ftpd, httpd, sendmail, etc.) 8 Il meccanismo di funzionamento di compilatori ed interpreti verrà descritto più in dettaglio nel Paragrafo pag Per ognuna delle categorie si danno esempi reali, propri del Sistema Operativo Linux; per maggiori dettagli, si veda Asta [3], o si consultino le relative pagine di manuale: ad es., init(8), bash(1), cc(1); per le librerie di funzioni, si consulti intro(3). 10 Il termine daemon, in ambiente Unix, indica genericamente un programma che funge da server per un applicazione di rete; così ad esempio ftpd indica il server per l applicazione FTP (File Transfer Protocol) di trasferimento di file su reti di tipo Internet, cioè basate

19 6 CAPITOLO 1. CLASSIFICAZIONE DEI SISTEMI OPERATIVI Interfaccia utente (sh, ksh, bash, etc.) Librerie di funzioni standard di uso comune (libc, libm, libcrypt, etc.) Supporto per linguaggi di programmazione (cc, as, ld, ar, pc, perl, python, javac, etc.) Caricamento, esecuzione e profiling di programmi (sh, adb, sdb, prof, time, etc.) Modifica di file (ed, vi, emacs, etc.) Manipolazione di file e cartelle (cp, mv, rm, mkdir, etc.) Informazione sullo stato del sistema (date, ls, who, df, du, etc.) Comunicazione (vari client: telnet, ftp, mutt 11, netscape, rlogin, rcp, rsh, ping, etc.) A tal proposito, è importante notare che la maggior parte degli utenti vede (e giudica) un Sistema Operativo proprio dai programmi appartenenti al software di base, e non dalle chiamate di sistema e dalle funzioni di libreria; i primi sono di fatto l interfaccia verso l utente, e quindi costituiscono l interfaccia di base tra l utente e il Sistema Operativo(interfaccia utente), mentre le seconde realizzano un secondo tipo di interfaccia (interfaccia di programmazione), che però è visibile solo a quel sottoinsieme di utenti che scrivono programmi. A differenza dei programmi applicativi veri e propri, che servono, come il nome indica, a specializzare il calcolatore per risolvere problemi legati al mondo della produzione e del lavoro, i programmi nell area del software di base si collocano a un livello intermedio tra l hardware e i programmi applicativi. Anche qui la linea di demarcazione è alquanto soggettiva, ma si può dire ad esempio che un programma di gestione magazzino sviluppato per una azienda è senz altro un esempio di programma applicativo; viceversa, un programma flessibile che consente, partendo da uno schema generale, di costruire un programma di gestione magazzino, fornendo informazioni specifiche sul modo in cui l azienda registra i prodotti immagazzinati, può essere considerato software di base. 1.4 Classificazione dei Sistemi Operativi Risulta opportuno, prima di procedere oltre nello studio dei Sistemi Operativi, dare una schematica classificazione di tali sistemi che metta in evidenza le sulla suite di protocolli TCP/IP. Il nome di questi server, come si può notare dagli esempi, termina di solito con la lettera d, che sta appunto ad indicare che si tratta di un daemon. Il client corrispondente (cioè il programma che viene attivato dall utente e interagisce con esso, richiedendo servizi al server con il quale si collega) di norma ha lo stesso nome, ma senza la d finale; così il client FTP si chiama appunto ftp. I server (o daemon) sono programmi che di regola vengono lanciati automaticamente all avvio del sistema, e non terminano mai (se non all arresto del sistema). Per approfondimenti sulle reti di calcolatori e sulla programmazione TCP/IP secondo il paradigma client-server, si veda Tanenbaum [16] e Stevens [14]. 11 Mutt è un client molto potente del protocollo SMTP (Simple Mail Transfer Protocol), per la gestione della posta elettronica.

20 1.4. CLASSIFICAZIONE DEI SISTEMI OPERATIVI 7 caratteristiche dell utenza che essi devono soddisfare, più che le tecniche realizzative hardware e software. Com è ovvio, sono possibili più tipi di classificazioni, che riflettono differenti approcci di analisi. Una prima suddivisione, che tiene in conto sia aspetti funzionali che di cronologia evolutiva, distingue quattro tipi principali di Sistemi Operativi, chiamati rispettivamente: sistemi batch (o a lotti) si dividono a loro volta in sistemi batch monoprogrammati sistemi batch multiprogrammati sistemi interattivi (o a partizione di tempo; in inglese, time-sharing) sistemi personali sistemi dedicati divisibili anch essi in sistemi transazionali sistemi per il controllo di processi I Sistemi Operativi dei primi tre tipi offrono all utente la possibilità di scrivere, mettere a punto ed eseguire programmi arbitrari scritti in uno dei linguaggi di programmazione supportati dal sistema. L utente tipico di tali sistemi, che saranno descritti nel seguito del paragrafo, è quindi in molti casi un programmatore, che accede al calcolatore tramite un terminale. Il dialogo utente-sistema si svolge normalmente inviando comandi da terminale e ricevendo in risposta messaggi audiovisivi dal sistema. Come si vedrà in seguito, le funzioni del Sistema Operativo nell assistere il programmatore vanno ben oltre la semplice compilazione ed esecuzione controllata di programmi, per cui si parla comunemente di ambiente di sviluppo offerto dal Sistema Operativo, intendendo con tale termine l insieme di servizi offerti che consentono una maggiore facilità nella progettazione, nella stesura e nella verifica di nuovo software. Come meglio evidenziato nel seguito del capitolo, invece, i sistemi del quarto gruppo sono dedicati ad un tipo specifico di applicazione, e non permettono lo sviluppo di nuovi programmi Gestione a lotti Tralasciando le primissime implementazioni, che risalgono alla prima metà del secolo trascorso, la prima forma sufficientemente organizzata di Sistema Operativo vide la luce grazie all introduzione di lettori di schede perforate. Nacque così, all inizio degli anni 50, una modalità di colloquio chiamata gestione a lotti (batch processing). Le principali caratteristiche di tale forma di colloquio possono così essere sintetizzate: Le richieste degli utenti sono costituite da pacchi di schede perforate; ogni pacco, chiamato lavoro o job inizia con una scheda di identificazione dell utente e consiste in una sequenza di passi o step. Il job viene fisicamente

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Protocolli di Sessione TCP/IP: una panoramica

Protocolli di Sessione TCP/IP: una panoramica Protocolli di Sessione TCP/IP: una panoramica Carlo Perassi carlo@linux.it Un breve documento, utile per la presentazione dei principali protocolli di livello Sessione dello stack TCP/IP e dei principali

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

Sistemi operativi e reti A.A. 2013-14. Lezione 2

Sistemi operativi e reti A.A. 2013-14. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 2 Giovedì 10-10-2013 1 Sistemi a partizione di tempo (time-sharing) I

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 4-Panoramica delle generazioni 1 Prerequisiti Monoprogrammazione e multiprogrammazione Multielaborazione Linguaggio macchina Linguaggi di programmazione e compilatori Struttura

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Rack Station RS407, RS408, RS408-RP

Rack Station RS407, RS408, RS408-RP Rack Station RS407, RS408, RS408-RP Guida di Installazione Rapida ISTRUZIONI PER LA SICUREZZA Leggere accuratamente le presenti avvertenze ed istruzioni prima dell uso e conservarle per riferimenti futuri.

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

Le Infrastrutture Software ed il Sistema Operativo

Le Infrastrutture Software ed il Sistema Operativo Le Infrastrutture Software ed il Sistema Operativo Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Il Sistema Operativo (S0) (Inf.) E' l'insieme dei programmi che consentono

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

Dettagli

SDD System design document

SDD System design document UNIVERSITA DEGLI STUDI DI PALERMO FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESINA DI INGEGNERIA DEL SOFTWARE Progetto DocS (Documents Sharing) http://www.magsoft.it/progettodocs

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1 Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Secondo biennio Articolazione Informatica TPSIT Prova Quarta Sistema operativo: gestione memoria centrale La Memoria Virtuale consente di superare i limiti della Memoria Centrale : A. no B. a volte C. si, ma non sempre e' adeguata D. si, attraverso tecniche di gestione

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 : Un Sistema Operativo è un insieme complesso di programmi che, interagendo tra loro, devono svolgere una serie di funzioni per gestire il comportamento del computer e per agire come intermediario consentendo

Dettagli

Licenze OpenSource Libertà Digitali. by Stefano (zeno), Donato (scorpio2002) Antonio (Hawkeye)

Licenze OpenSource Libertà Digitali. by Stefano (zeno), Donato (scorpio2002) Antonio (Hawkeye) Licenze OpenSource Libertà Digitali by Stefano (zeno), Donato (scorpio2002) Antonio (Hawkeye) Licenze e Modello OpenSource Compreresti mai una macchina col cofano sigillato?!? Codice Sorgente Linguaggio

Dettagli

Il Software. Il software del PC. Il BIOS

Il Software. Il software del PC. Il BIOS Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Gestione del processore e dei processi

Gestione del processore e dei processi Il processore è la componente più importante di un sistema di elaborazione e pertanto la sua corretta ed efficiente gestione è uno dei compiti principali di un sistema operativo Il ruolo del processore

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

TEORIA DEI SISTEMI OPERATIVI

TEORIA DEI SISTEMI OPERATIVI TEORIA DEI SISTEMI OPERATIVI Classificazione dei sistemi operativi (Sistemi dedicati, Sistemi batch, Sistemi interattivi multiutente) CLASSIFICAZIONE DEI SISTEMI OPERATIVI Le tre principali configurazioni

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Informatica - A.A. 2010/11

Informatica - A.A. 2010/11 Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire

Dettagli

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU Il sistema operativo Sistema operativo Gestione della CPU Primi elaboratori: Monoprogrammati: un solo programma in memoria centrale Privi di sistema operativo Gestione dell hardware da parte degli utenti

Dettagli

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera CPU Memoria principale Il Sistema Operativo Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010 ALU Unità di controllo Registri A indirizzi

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica SOFTWARE Francesco Tura francesco.tura@unibo.it 1 Le componenti del calcolatore: HARDWARE E SOFTWARE HARDWARE parti che compongono fisicamente il calcolatore componente multifunzionale

Dettagli

Software di base. Corso di Fondamenti di Informatica

Software di base. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Software di base Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi Marco Lapegna Laboratorio di Programmazione Dalla precedente lezione 6. I sistemi operativi LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica I Sistemi Operativi Il linguaggi di programmazione

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Come funziona un sistema di elaborazione

Come funziona un sistema di elaborazione Introduzione Cosa è un Sistema Sste aoperativo? Come funziona un sistema di elaborazione Proprietà dei Sistemi Operativi Storia dei Sistemi di Elaborazione Sistemi Mainframe Sistemi Desktop Sistemi i Multiprocessori

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Organizzazione Monolitica

Organizzazione Monolitica Principali componenti di un sistema Applicazioni utente Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del processore / Scheduler(s) Gestore della memoria Gestore delle periferiche/

Dettagli

1) GESTIONE DELLE POSTAZIONI REMOTE

1) GESTIONE DELLE POSTAZIONI REMOTE IMPORTAZIONE ESPORTAZIONE DATI VIA FTP Per FTP ( FILE TRANSFER PROTOCOL) si intende il protocollo di internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. Per l utilizzo

Dettagli

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore Contenuti Introduzione 1 Introduzione 2 3 4 5 71/104 Il Calcolatore Introduzione Un computer...... è una macchina in grado di 1 acquisire informazioni (input) dall esterno 2 manipolare tali informazioni

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Il Sistema Operativo Gerarchia del software

Dettagli

HARDWARE. Relazione di Informatica

HARDWARE. Relazione di Informatica Michele Venditti 2 D 05/12/11 Relazione di Informatica HARDWARE Con Hardware s intende l insieme delle parti solide o ( materiali ) del computer, per esempio : monitor, tastiera, mouse, scheda madre. -

Dettagli

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1 SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA Fornitore: Publisys Prodotto: Intranet Provincia di Potenza http://www.provincia.potenza.it/intranet Indice 1. Introduzione... 3 2. I servizi dell Intranet...

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli