Classificazione del software

Documenti analoghi
Il Sistema Operativo (1)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Corso di Informatica

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

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

Dispensa di Informatica I.1

Introduzione al sistema operativo Il file system: file, directory,...

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

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

Introduzione ai Sistemi Operativi

CdL in Medicina Veterinaria - STPA AA

TITLE Sistemi Operativi 1

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

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

Corso di Informatica

GLI ARCHIVI DI DATI. File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Approccio stratificato

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

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

MODULO 02. Iniziamo a usare il computer

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

PARTE 4 La Macchina Software

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

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

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

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

Il Sistema Operativo

Architettura di un sistema operativo

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Software di base. Corso di Fondamenti di Informatica

Sistemi operativi. Esempi di sistemi operativi

Gestore di Memoria. Gestire le richieste di risorse di memoria Liberare le risorse non più utilizzate. Gestire la memoria virtuale (swap su disco)

Il Software. Il software del PC. Il BIOS

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

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

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

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

Funzioni del Sistema Operativo

Il sistema operativo

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Il computer: primi elementi

Le Infrastrutture Software ed il Sistema Operativo

PowerPoint 2007 Le funzioni

Il software. la parte contro cui si può solo imprecare. Il software

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

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Organizzazione Monolitica

Il database management system Access

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

Informatica DR KLOE Calcolo

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino

Gestione della memoria centrale

Informatica per la Storia dell Arte. Anno Accademico 2014/2015

Software di base e software applicativo. Titolo: dic (1 di 9)

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

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

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Sistemi Operativi: avvio

Infrastrutture Software

COMPETENZE INFORMATICHE DI BASE PER ADULTI

Creare una Rete Locale Lezione n. 1

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

InitZero s.r.l. Via P. Calamandrei, Arezzo

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

Informatica e Bioinformatica: Sistemi Operativi

IL SISTEMA OPERATIVO

Hardware delle reti LAN

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

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Capitolo 4 Pianificazione e Sviluppo di Web Part

1. BASI DI DATI: GENERALITÀ

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Introduzione al sistema operativo. Laboratorio Software C. Brandolese

TEORIA DEI SISTEMI OPERATIVI

Estensioni e modelli. Ancora poco conosciuti, consentono di estendere la suite per l ufficio. Ecco come servirsene

EXPLOit Content Management Data Base per documenti SGML/XML

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

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

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

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Elementi di Informatica e Programmazione

Laboratorio di Informatica

Il software. Capitolo 3 La potenza non è nulla senza il software. Informatica di Base -- R.Gaeta 1

Come usare P-touch Transfer Manager

PROCEDURE DI FIRMA PER I PIP PRESENTATI NEI BANDI APPRENDISTATO

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI STRUTTURE DEI SISTEMI OPERATIVI

Informatica - A.A. 2010/11

Informatica. Teoria. L architettura dei PC Storia dell informatica Periferiche Reti - Software. Marco Brama

Corso di: Abilità informatiche

Calcolatori Elettronici A a.a. 2008/2009

Altre due categorie non rientrano né nel software di sistema, né in quello applicativo pur contenendo elementi tipici di entrambi sono:

2. Strutture dei Sistemi Operativi

Introduzione a Dev-C++

CALCOLATORI ELETTRONICI A cura di Luca Orrù

Informatica: il sistema operativo

Transcript:

Classificazione del software

Classificazione dei software Sulla base del loro utilizzo, i programmi si distinguono in: SOFTWARE Sistema operativo Software applicativo

Sistema operativo: una definizione apparentemente complessa Un sistema operativo è un complesso insieme di componenti software che ha il compito di gestire l esecuzione dei programmi applicativi, garantendo un utilizzo, facile, efficiente e sicuro delle risorse fisiche che la macchina mette a disposizione. E un intermediario fra i dispositivi che costituiscono un sistema di elaborazione e i programmi degli utenti: nasconde i molteplici e complessi dettagli operativi interni e realizza al di sopra della macchina reale una macchina virtuale utilizzabile con relativa facilità mediante un insieme organico di comandi.?

Macchine virtuali e macchine reali Si è visto che a livello fisico un sistema di elaborazione è costituito da un insieme di dispositivi elettronici, elettro-meccanici, magnetici e ottici destinati a realizzare delle funzioni fondamentali. Per mezzo di questi dispositivi, denominati hardware, è possibile eseguire programmi dedicati al soddisfacimento delle esigenze degli utenti, indicati con il termine software Sebbene hardware e software operino a livelli distinti nella struttura di elaborazione (HW a livelli di tensioni, correnti, stati magnetizzati, il SW a livello di istruzioni) un programmatore di applicativi non dovrebbe prescindere dalla conoscenza specifica del modo di operare dei dispositivi fisici

Macchine virtuali e macchine reali: esempio Esempio: Un programmatore di applicativi sta progettando un software di videoscrittura, dove all interno del quale è previsto la lettura dei dati attraverso un lettore DVD Il programmatore dovrà prevedere delle specifiche apposite che operino a livello fisico della macchina (interagire direttamente con il lettore DVD, conoscere gli indirizzi di memoria della memoria di massa, etc ) Questo aspetto è impraticabile almeno per due motivi fondamentali: q renderebbe la scrittura di programmi particolarmente complessa e pesante q legherebbe il programma scritto, allo specifico sistema hardware per il quale è stato scritto.

Macchine virtuali e macchine reali 3 Per far fronte a questi problemi risulta opportuno suddividere il software di un sistema di elaborazione in due livelli distinti q Sistema operativo (operating system) che comprende i programmi dedicati alla gestione del livello fisico delle macchine; q Applicazioni (application software) che comprendono i programmi destinati al soddisfacimento delle esigenze specifiche degli utenti. Una suddivisione di questo tipo fa si che le applicazioni interagiscono con l hardware della macchina solo indirettamente, tramite l intermediazione del sistema operativo

Macchine virtuali e macchine reali: Kernel e API In questo modo: Software applicativi Interfaccia di programmazione verso le applicazioni SiISTEMA OPERATIVO (API) processore memoria dispositivi I/O L interfaccia che il S.O. mette a disposizione delle applicazioni è detta interfacce di programmazione verso le applicazioni o API (Application Programming Interface) sono un insieme di comandi o primitive, dette chiamate di sistema (system call), che posso essere utilizzate dal programmatore delle applicazioni come se fossero normali istruzioni in linguaggio macchina

Macchine virtuali e macchine reali: Kernel e API Interfaccia di programmazione verso le applicazioni (API) Questi comandi messi a disposizione fanno si che il programmatore delle applicazioni non necessariamente conosca il linguaggio del sistema fisico, sopperendo così a quella complessità descritta precedentemente. Inoltre definiamo Kernel quella parte del sistema operativo che si colloca immediatamente sopra all hardware, con il compito di nascondere ai livelli sovrastanti i dettagli più complessi e fungere da gestore delle risorse Interfaccia di programmazione verso le applicazioni (API) KERNEL

Uso delle API nell esempio di software di videoscrittura Esempio: Un programmatore di applicativi sta progettando un software di videoscrittura, dove all interno del quale è previsto la lettura dei dati attraverso un lettore DVD Il programmatore non dovrà prevedere più delle specifiche apposite che operino a livello fisico della macchina, ma basti che usi i comandi messi a disposizione delle API per impartire i comandi appositi

Organizzazione a livelli di un sistema di elaborazione Utenti Livello utenti Programmatore di applicazioni grafica browser editor Livello delle applicazioni Programmatore di sistema Interfaccia di programmazione verso le applicazioni (API) nucleo del sistema operativo (Kernel) Livello sistema operativo Sistema Operativo processore memoria dispositivi I/O Livello fisico

Uso delle API nell esempio di software di videoscrittura Il sistema operativo, sviluppato dai programmatori di sistema, opera direttamente al di sopra dell hardware del calcolatore e costituisce l interfaccia della macchina fisica verso i programmatori di applicazioni Le applicazioni costituiscono un intermediario fra il sistema di elaborazione e gli utenti. Questi non accedono direttamente né al sistema operativo né tantomeno al sistema fisico, ma solo alle specifiche interfacce che le diverse applicazioni rendono disponibili i programmatori di applicazioni non necessitano di una conoscenza diretta dell hardware, ma solo la conoscenza delle API oltre al linguaggio di programmazione. i programmatori di sistema necessitano una conoscenza diretta dell hardware

Esempio Un utente di un sistema di videoscrittura vede il calcolatore solo attraverso l interfaccia dell applicazione specifica (le finestre, i menù, i comandi, le icone) e mediante la quale è in grado di scrivere testi e controllare il formato stampa senza doversi preoccupare di quanto accade al di sotto del livello al quale opera. macchina per l utente Utente

Macchina virtuale: definizione In questo senso, ogni livello al di sopra della macchina fisica, definisce una nuova macchina, più semplice, efficace e sicura per la classe di utenti alla quale si rivolge Le macchine realizzate dal sistema operativo o dalle applicazioni non sono ovviamente macchine fisiche, anche se sono del tutto reali: accettano un insieme finito di comandi e rispondono a tali comandi con azioni ben precise. Per tali motivi, le macchine che i livelli software realizzano al di sopra della macchina fisica, prendono il nome di macchine virtuali. Essa è costituita da: q Interfaccia attraverso la quale gli utenti della macchina virtuale possono interagire con essa, utilizzando un insieme definito di comandi. q corpo interno alla macchina e non visibile dall esterno, in grado di eseguire i comandi ricevuti utilizzando a sua volta i servizi offerti da una macchina sottostante

Macchina virtuale: traduttore Ogni macchina virtuale si appoggia quindi su una macchina sottostante, in un certo senso non è altro che un traduttore che traduce i comandi ricevuti (espressi nel proprio linguaggio) in comandi accettati da una macchina di livello inferiore. Macchina virtuale (livello applicazioni) Traduce i comandi ricevuti dall utente in comandi accettati dal S.O Macchina virtuale (livello sistema operativo) Traduce i comandi ricevuti dall applicativo in comandi accettati dal livello fisico Hardware (livello fisico) La macchina di livello più basso è la macchina fisica che, finalmente esegue direttamente i comandi ricevuti (le istruzioni macchina) per mezzo delle risorse hardware del calcolatore

Sistema operativo: shell Il livello delle applicazioni comprende una grande varietà di programmi q di videoscrittura per elaborazione testi e gestione di fogli elettronici q di grafica, per l elaborazione di immagini e/o disegni q Per la gestione di grandi quantità di dati (archivi e database) A questo livello appartiene l interfaccia testuale e grafica del sistema operativo verso gli utenti detta interprete dei comandi (shell)

Sistema operativo: shell Osservazione L interprete dei comandi (shell) è confuso spesso con il sistema operativo. I comandi, ben noti a molti utenti, che permettono di: ü organizzare i file in cartelle ü eliminare file ü spegnere il sistema ü mettere in esecuzione un programma non sono il sistema operativo e nemmeno l interfaccia di programmazione verso le applicazioni (API) ma semplicemente un applicazione che permette di interfacciare il sistema operativo verso i propri utenti.

Sistema operativo: una definizione più chiara Un sistema operativo è un complesso insieme di componenti software che ha il compito di gestire l esecuzione dei programmi applicativi, garantendo un utilizzo, facile, efficiente e sicuro delle risorse fisiche che la macchina mette a disposizione. E un intermediario fra i dispositivi che costituiscono un sistema di elaborazione e i programmi degli utenti: nasconde i molteplici e complessi dettagli operativi interni e realizza al di sopra della macchina reale una macchina virtuale utilizzabile con relativa facilità mediante un insieme organico di comandi.!

Componenti di un sistema operativo I nuovi sistemi operativi, presentano al loro interno un elevata complessità strutturale. Al loro interno è possibile distinguere un certo numero di unità operative che si prendono carico di fornire uno o più servizi a programmatori e utenti q Gestore dei processi q Gestore della memoria principale q Gestore dei dispositivi Input-output (I/O) q Gestore del file system q Meccanismi di protezione (gestione della sicurezza)

Componenti di un sistema operativo: Gestore dei processi Ricordiamo che un processo rappresenta il modo in cui un programma viene eseguito nel tempo mentre il programma è un entità statica data da un insieme di istruzioni in cui non specifica la distribuzione nel tempo dell esecuzione. Il gestore dei processi è l elemento che si occupa di organizzare l esecuzione dei programmi sul processore. Periodicamente o in seguito ad operazioni di I/O, il gestore dei processi sceglie fra i processi pronti per l esecuzione e istruisce il processore affinché venga eseguito. Proprio in base alla suddivisione del periodo di gestione dei processi il sistema operativo può lavorare in: Multiprogrammazione Time sharing

Gestore dei processi: multiprogrammazione Si dice che un sistema operativo lavori in multiprogrammazione quando durante i periodi di I/O di un processo vengono eseguiti altri processi Lo scopo principale della multiprogrammazione è quello di cercare di sfruttare la meglio le risorse del calcolatore. Questo è particolarmente utile nei sistemi multiutenti (per esempio i server); ma anche nei sistemi monoutente esistono innumerevoli attività che possono essere eseguite in modo parallelo, per esempio è possibile utilizzare un riproduttore multimediale mentre si lavora con un editore testi. contemporaneamente

Gestore dei processi: time sharing Si dice che un sistema operativo lavori in time sharing quando l esecuzione del processore viene suddivisa in un certo numero di quanti temporali. Allo scadere di un quanto, il processo corrente viene interrotto e l esecuzione passa ad un altro processo Il concetto di time sharing è l estensione logica della multiprogrammazione: invece di alternare l uso del processore ogni qual volta viene eseguita un operazione di I/O, il sistema operativo passa da un processo all altro periodicamente, dando a tutti i processi una possibilità di avanzare nel loro programma. I passaggi avvengono così frequentemente (nell ordine di centinaia di migliaia di volte al secondo) che i programmi interattivi danno l impressione di avanzare come se avessero un processore dedicato.

Storia dei sistemi operativi Generazione 0 Primo tentativo di costruzione di una macchina programmabile ad opera di Babbage (1792-1871). Purtroppo la tecnologia dell epoca non era sufficientemente avanzata per la costruzione di tale macchina. Generazione 1 (1944-1955) I primi calcolatori programmabili vennero costruiti nel 1944. Queste macchine erano sprovvisti di un sistema operativo, il che significava che poteva essere eseguito un solo programma alla volta. Generazione 2 (1955-1965) A partire dal 1955 i nuovi elaboratori sono acquistabili sul mercato. Anche se vengono dotati di S.O (ancora rudimentali) potevo essere eseguiti un processo alla volta, ciò nonostante era possibile inserire più programmi nel calcolatore ed il sistema operativo si occupava di eseguirli uno dopo l altro

Storia dei sistemi operativi 2 Generazione 3 (1965 1980) A partire dagli anni 60 gli enormi progressi nel campo dei circuiti integrati permisero di costruire calcolatori sempre più potenti. In questo periodo vennero sviluppati due concetti di fondamentale importanza per i sistemi operativi: la multiprogrammazione e il time sharing Generazione 4 (1980- ) A partire dagli ani 80, nasce l ultima generazione dei sistemi operativi utilizzati per controllare i personal computer a basso costo.

Sistemi operativi moderni Sistemi operativi Microsoft I sistemi Microsoft sono sicuramente i più diffusi. Esistono due grandi famiglie dei prodotti software nel campo dei sistemi operativi: 1. La prima famiglia comprendeva, Windows 95, Windows 98 e Millenium Edition. Tutti traggono origini dai vecchi sistemi operativi DOS, aggiungendo (anche se in modo incompleto funzioni di time sharing e multiprogrammazioni) 2. La seconda famiglia, che include sistemi quali Windows NT, Windows 2000, Windows XP, Windows 7, è caratterizzata da funzioni moderne di time sharing e multiprogrammazione Sistemi operativi commerciali basati su UNIX Unix è sistema operativo sviluppato negli anni 70 ed è oggi presente sotto forma di numerosi sistemi operativi commerciali e non, quali, MAC OS, Solaris SUN Sistemi operativi open source Oltre alla versioni commerciali di UNIX, le idee rappresentate da UNIX hanno dato origine a numerosi progetti Open Source, fra cui il più noto è certamente LINUX