Sistemi Operativi Da Unix a GNU/Linux (parte 1)
|
|
- Alberto Volpi
- 6 anni fa
- Visualizzazioni
Transcript
1 Sistemi Operativi Da Unix a GNU/Linux Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega
2 Genesi 1 DTSS (Dartmouth College Time Sharing System, 1964) Il primo elaboratore multi-utente a divisione di tempo Programmato in BASIC e ALGOL Presto soppiantato da CTSS (MIT Compatible Time Sharing System, in versione sperimentale dal 1961) Enorme successo nella comunità scientifica Induce MIT, Bell Labs e GE alla collaborazione nel progetto di MULTICS (Multiplexed Information and Computing Service, 1965) Quando Bell Labs abbandona il progetto, Ken Thompson, uno degli autori di MULTICS, ne produce in assembler una versione a utente singolo UNICS (UNiplexed ICS, 1969) UNIX Sistemi Operativi - C. Palazzi 303
3 Genesi Nuova versione di UNIX per PDP-11 completamente riscritta in C con Dennis Ritchie PDP-11 (Programmed Data Processor) 2 KB cache, 2 MB RAM Linguaggio C definito appositamente come evoluzione del rudimentale BCPL (Basic Combined Programming Language) Enorme successo grazie alla diffusione di PDP-11 nelle università 1979 Rilascio di UNIX v7, la versione di riferimento Perfino Microsoft lo ha inizialmente commercializzato! Sotto il nome di Xenix, ma solo a costruttori dell hardware degli elaboratori (p.es.: Intel) Sistemi Operativi - C. Palazzi 304
4 Genesi 3 Portabilità di programmi Programma scritto in un linguaggio ad alto livello dotato di compilatore per più elaboratori È desiderabile che anche il compilatore sia portabile Dipendenze limitate ad aspetti specifici della architettura di destinazione Dispositivi di I/O, gestione interruzioni, gestione di basso livello della memoria Diversificazione degli idiomi ( ) Avvento di v7 e divaricazione in due filoni distinti System V (AT&T Novell Santa Cruz Operation) Incluso Xenix (Microsoft) 4.x BSD (Berkeley Software Distribution) Incluso Virtual Memory e TCP/IP Sistemi Operativi - C. Palazzi 305
5 Genesi 4 Standardizzazione (1986 ) POSIX (Portable Operating System Interface for UNIX) racchiude elementi selezionati di System V e BSD I più maturi e utili secondo l opinione di esperti neutrali incaricati da IEEE e ISO/IEC Definisce l insieme standard di procedure di libreria utili per operare su S/O compatibili La maggior parte contiene chiamate di sistema Servizi utilizzabili da linguaggi ad alto livello Sistemi Operativi - C. Palazzi 306
6 Genesi 5 Scelte architetturali per cloni UNIX Micro-kernel : MINIX (Tanenbaum, 1987) Nel nucleo solo processi e comunicazione (affidabile e efficiente) Il resto dei servizi (p.es. : FS) realizzato in processi utente MINIX non copre tutti i servizi UNIX Nucleo monolitico : GNU/Linux (Linus Torvalds, da v0.01 nel maggio 1991 a v3.8 di oggi) Clone completo aderente a POSIX con qualche libertà Il meglio di BSD e System V Modello open-source (scritto nel C compilato da gcc GNU C compiler) Da non perdere: Linux is obsolete Sistemi Operativi - C. Palazzi 307
7 Livelli gerarchici Sistema multi-programmato multi-utente Architettura a livelli gerarchici Interfaccia utente Interfaccia di libreria Interfaccia di sistema Chiamate di sistema Chiamate di libreria Utente 1 Programmi di utilità (shell, compilatori, editori, GUI, ) Librerie standard (fork, exec, open, close, ) Utente N nucleo di S/O monolitico (gestione processi, memoria, I/O, FS, ) Elaboratore hardware Sistemi Operativi - C. Palazzi 308
8 Interfaccia utente UNIX nasce con I/F per linea di comando (shell) Più potente e flessibile di GUI ma destinato a utenti esperti Una shell per ogni terminale utente (xterm) Lettura dal file standard input Scrittura sul file standard output o standard error Inizialmente associati al terminale stesso (visto come file) Possono essere re-diretti < per stdin, > per stdout Caratteri di prompt (%, $) indicano dove editare il comando Comandi compositi possono associare uscita di comandi ad ingresso di altri mediante (pipe) e combinati in sequenze interpretate (script) In modalità normale la shell esegue un comando alla volta Comandi possono essere inviati all esecuzione liberando la shell (&, background) Sistemi Operativi - C. Palazzi 309
9 Gestione dei processi (UNIX) 1 Processo La principale entità attiva nel sistema Inizialmente definito come sequenziale Ossia dotato di un singolo flusso di controllo interno Concorrenza a livello di processi Molti processi attivati direttamente dal sistema (daemon) appuntamenti Creazione mediante fork() Clone con stessa memoria all inizio e accesso a file aperti La discendenza di un processo costituisce un gruppo Comunicazione mediante scambio messaggi (pipe) e invio di segnali (signal) entro un gruppo Processi figli hanno memoria identica quella del processo genitore solo all inizio Poi indipendente alla prima modifica Sistemi Operativi - C. Palazzi 310
10 Gestione dei processi (UNIX) 2 Processi con più flussi di controllo interni Detti thread La creazione di un thread gli assegna identità, attributi, compito e argomenti res = pthread_create( &tid, attr, fun, arg ) Thread condividono tutte le risorse logiche e fisiche del processo genitore (inclusi valori di variabili in uso) Sistemi Operativi - C. Palazzi 311
11 Gestione dei processi (UNIX) 3 Completato il proprio lavoro il thread termina se stesso volontariamente Invocando la procedura pthread_exit Un thread può sincronizzarsi con la terminazione di un suo simile Invocando la procedura pthread_join L accesso a risorse condivise viene sincronizzato mediante semafori a mutua esclusione Tramite le procedure pthread_mutex{_init, _destroy} L attesa su condizioni logiche (p.es. : risorsa libera) avviene mediante variabili speciali simili a condition variables (ma senza monitor) Sistemi Operativi - C. Palazzi 312
12 Gestione dei processi (UNIX) 4 Tabella dei processi Permanentemente in RAM e per tutti i processi Parametri di ordinamento (p.es. : priorità, tempo di esecuzione cumulato, tempo di sospensione in corso, ) Descrittore della memoria virtuale del processo Lista dei segnali significativi e del loro stato Stato, identità, relazioni di parentela, gruppo di appartenenza Sistemi Operativi - C. Palazzi 313
13 Esecuzione di comando di shell 1 Codice semplificato di un processo shell while (TRUE) { type_prompt(); // mostra prompt sullo schermo } 1 2 read_command(cmd, par); // legge linea comando pid = fork(); if (pid < 0) { printf( Errore di attivazione processo.\n ); continue; // ripeti ciclo }; if (pid!= 0) { waitpid(-1, &status, 0); // attende la terminazione // di qualunque figlio } else { execve( cmd, par, 0); } Codice eseguito dal padre Codice eseguito dal figlio Sistemi Operativi - C. Palazzi 314
14 Esecuzione di comando di shell Il processo chiamante passa in modo nucleo e prova a inserire i propri dati per il figlio nella Tabella dei Processi (incluso il PID). Se riesce, alloca memoria per stack e dati del figlio. A questo punto il codice del figlio è ancora lo stesso del padre. La linea di comando emessa dall utente viene passata al processo figlio come array di stringhe. La exec, che opera in modo nucleo, localizza il programma da eseguire e lo sostituisce al codice del chiamante, passandogli la linea di comando e le definizioni di ambiente specifiche per il nuovo processo Sistemi Operativi - C. Palazzi 315
15 Esecuzione di comando di shell 3 Modo normale cmd = [ cp, uno, due ] Processo sh PID = 36 Processo sh PID = 70 Processo cp PID = 70 Processo cp PID = 70 fork() exec( ) exit( ) waitpid( ) Modo nucleo Vedi anche Fig nel libro di testo (terza edizione) Sistemi Operativi - C. Palazzi 316
16 Gestione dei processi (UNIX) 5 fork() duplica il processo chiamante creando un processo figlio uguale ma distinto Che accade se questi include più thread? Vi sono 2 possibilità Tutti i thread del padre vengono clonati Difficile gestire il loro accesso concorrente ai dati e alle risorse condivise con thread del padre Solo un thread del padre viene clonato Possibile sorgente di inconsistenza rispetto alle esigenze di cooperazione con le thread non clonate Dunque il multi-threading aggiunge gradi di complessità Al FS Più difficile assicurare consistenza nell uso concorrente di file Alla comunicazione tra entità attive Come decidere il thread destinazione di un segnale inviato a un processo? Un thread era bloccato da lettura da tastiera, i nuovi thread anche? E chi riceverà i caratteri digitati? Sistemi Operativi - C. Palazzi 317
17 Gestione dei processi (GNU/Linux) 6 Maggior granularità nel trattamento della condivisione di strutture di controllo nella creazione di processi e thread figli Chiamata di sistema alternativa a fork() pid = clone(function, stack_ptr, ctrl, arg); function programma da eseguire nel nuovo task (processo o thread) con argomento par Stack_ptr indirizzo dello stack assegnato al nuovo task ctrl grado di condivisione desiderato tra il nuovo task e l ambiente del chiamante Spazio di memoria, FS, file, segnali, identità Es. Solo copia o stesso address space? Sistemi Operativi - C. Palazzi 318
18 Ordinamento dei processi (GNU/Linux) 1 I thread sono gestiti direttamente dal nucleo Ordinamento per task (thread o processo indistintamente) Selezione distinta tra classi distinte Prerilascio per fine quanto o per attesa di evento 3 classi di priorità di task Tempo reale con politica FCFS a priorità senza prerilascio A priorità uguale viene scelto il task in attesa da più tempo Tempo reale con politica RR a priorità Prerilascio per quanti con ritorno in fondo alla coda Divisione di tempo RR a priorità (Timesharing) Priorità dinamica con premio o penalità rispetto al grado di interattività con I/O (alta premio, bassa penalità) Nuovo valore assegnato al task all esaurimento del suo quanto corrente Sistemi Operativi - C. Palazzi 319
19 Ordinamento dei processi (GNU/Linux) 2 Priorità numerica Importanza relativa Ampiezza del quanto Livello nice Silberschatz, Galvin and Gagne 2005 Sistemi Operativi - C. Palazzi 320
20 Ordinamento dei processi (GNU/Linux) 3 Vettore dei task attivi Quando il vettore attivo si svuota si scambia ruolo con quello scaduto Vettore dei task scaduti Ogni task migra da un vettore all altro appena esaurisce il proprio quanto Silberschatz, Galvin and Gagne 2005 Sistemi Operativi - C. Palazzi 321
21 Ordinamento dei processi (GNU/Linux) 4 Per versione < 2.6 l attività dei processi in modo nucleo non ammetteva prerilascio Ma questo naturalmente causava pesanti problemi di inversione di priorità Con versione 2.6 si usa granularità più fine Inibizione selettiva di prerilascio Per sezioni critiche corte Uso di semafori convenzionali Per sezioni critiche lunghe Uso minimale di disabilitazione delle interruzioni La parte immediata (top half) dei gestori disabilita La parte differita (bottom half) non disabilita ma il completamento della sua esecuzione viene preferito a ogni altra Tranne che di altre parti immediate Sistemi Operativi - C. Palazzi 322
22 Ordinamento dei processi (GNU/Linux) 5 Silberschatz, Galvin and Gagne 2005 Sistemi Operativi - C. Palazzi 323
23 Inizializzazione (GNU/Linux) 1 BIOS carica l MBR (Master Boot Record) da primo settore su disco di boot in RAM e lo esegue MBR = 1 settore di disco = 512 B L MBR carica il programma di boot dal corrispondente blocco della partizione attiva Lettura della struttura di FS, localizzazione e caricamento del nucleo di S/O Il programma di inizializzazione del nucleo è scritto in assembler (specifico per l elaboratore!) Poche azioni di configurazione di CPU e RAM Il controllo passa poi al main di nucleo Configurazione del sistema con caricamento dinamico dei gestori dei dispositivi rilevati Inizializzazione e attivazione del processo 0 Sistemi Operativi - C. Palazzi 324
24 Inizializzazione (GNU/Linux) 2 Processo 0 Configurazione degli orologi, installazione del FS di sistema, creazione dei processi 1 (init) e 2 (daemon delle pagine) Processo 1 Configurazione modo utente (singolo, multi) Esecuzione script di inizializzazione shell (/etc/rc etc.) Lettura numero e tipo terminali da /etc/ttys fork() terminale abilitato ed exec( getty ) Processo getty Configurazione del terminale e attivazione del prompt di login Al login di utente, exec( [/usr]/bin/login ) con verifica della password d accesso (criptate in /etc/passwd) Infine exec( shell ) Sistemi Operativi - C. Palazzi 325
25 Inizializzazione (GNU/Linux) 3 Sistemi Operativi - C. Palazzi 326
ACSO Programmazione di Sistema e Concorrente
ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività
Sistemi Operativi: Concetti Introduttivi
Sistemi Operativi: Concetti Introduttivi 1.1 Principali funzioni di un Sistema Operativo 1.2 Cenni Storici 1.3 Classificazione dei Sistemi Operativi 1.4 Struttura dei Sistemi Operativi 1.5 Processi e gestione
il tipo di parallelismo dipende dal grado di cooperazione
Thread Settembre 2009 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio d informazione) necessario tra attività svolte in parallelo processo macchina virtuale
System Calls per la Gestione dei Processi
System Calls per la Gestione dei Processi Domenico Cotroneo Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II Roadmap Process Context Identificativi getpid() getppid()
Sistema operativo (SO)
Diagramma a cipolla Sistema operativo (SO) Il calcolatore elabora informazioni codificate in sequenza di bit I dispositivi si interfacciano con il calcolatore tramite complessi protocolli di comunicazione
Concetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi
Concetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi 3.3 Silberschatz, Galvin and Gagne 2005 1 Un SO esegue diversi tipi di programmi Sistema
Sistemi Operativi. Lezione 4 I processi: implementazioni
Lezione 4 I processi: implementazioni UNIX Creazione di un processo Assegna al processo un identificatore univoco Alloca spazio per il processo Inizializza il PCB Predisponi gli opportuni agganci con strutture
I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.
I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo
Sistemi Operativi Il Sistema Operativo Windows (parte 2)
Sistemi Operativi Il Sistema Operativo Windows (parte 2) Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Gestione della memoria 1 Ogni processo dispone
System call per la gestione di processi
System call per la gestione di processi Chiamate di sistema per creazione di processi: fork() sostituzione di codice e dati: exec...() terminazione: exit() sospensione in attesa della terminazione di figli:
Organizzazione di un SO monolitico
Organizzazione di un SO monolitico Applicazioni Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del Gestore delle processore / Gestore della periferiche/ Scheduler(s) memoria dispositivi
Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:
Bootstrap Bootstrap All accensione di un calcolatore vengono attivati programmi di diagnostica scritti nella ROM (Read Only Memory) che verificano l assenza di guasti Poi viene attivato il programma di
Gerarchia fisica di memoria 1. Gerarchia fisica di memoria 2. Gerarchia fisica di memoria 3. Ricapitolazione di concetti base
Gerarchia fisica di memoria 1 Tempo di accesso Capacità tipica Ricapitolazione di concetti base Sistemi Operativi - T. Vardanega Pagina 92/113 Gerarchia fisica di memoria 2 La cache è suddivisa in blocchi
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 20 Martedì 16-12-2014 1 System call per la gestione dei processi Creazione
Interfaccia. Due sono i tipi di interfaccia più diffusi per interagire con un computer:
Interfaccia Due sono i tipi di interfaccia più diffusi per interagire con un computer: Interfacce a caratteri, anche dette a riga di comando (CLI, command line interfaces) Interfacce grafiche (GUI, graphical
Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it e 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
Principles of Concurrent Programming
Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 9 Giovedì 2-11-2017 Comunicazione con pipe Oltre che con la memoria condivisa
Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1
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
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale
Sistemi operativi. Fondamenti di Informatica
Sistemi operativi Fondamenti di Informatica Scratch https://scratch.mit.edu/studios/3840177/ Software ed Hardware Software Hardware Kernel Software Kernel Hardware Sistema operativo Processi: un programma
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
Sistema Operativo (Software di base)
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:
Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2
Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:
Introduzione a. Funzioni di Ingresso e Uscita. Compilazione
Introduzione a Funzioni di Ingresso e Uscita Compilazione 2 Come si termina...... un programma in esecuzione (processo)? Ctrl + C In UNIX ci si basa sul concetto di terminale Anche da GUI, quello che si
2. Nucleo del sistema operativo (la gestione dei processi)
Struttura interna del sistema operativo Linux 2. Nucleo del sistema operativo (la gestione dei processi) Architettura (struttura) del sistema operativo shell Programmi utente Modo utente Interfaccia delle
Il Sistema Operativo
Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche
I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.
I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non
Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB)
Processi Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi 1 Il descrittore di processo (PCB) Il S.O. gestisce i processi associando a ciascuno di essi
Principles of Concurrent Programming
Principles of Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Overview Concetti preliminari Interazione fra processi
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 20 Giovedì 22-12-2016 Comunicazione: pipe In Unix, processi possono comunicare
Il Concetto di Processo
Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono
Sistemi Operativi Il Sistema Operativo Windows (parte 1)
Sistemi Operativi Il Sistema Operativo Windows (parte 1) Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Genesi 1 MS-DOS (MicroSoft Disk Operating
Modelli di programmazione parallela
Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici
Sistemi in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15
Sistemi in tempo reale: applicazioni alla robotica Sistemi in tempo reale: applicazioni alla robotica p.1/15 Sistemi operativi Hardware Firmware Kernel Driver Applicazioni Interfacce Sistemi in tempo reale:
Esame del Sistema Operativo Windows. Esame del Sistema Operativo Windows. Esame del Sistema Operativo Windows. Esame del Sistema Operativo Windows
Parte 1 - Indice 1. Genesi 2. Interfaccia di programmazione 3. Architettura di sistema 4. Gestione dei processi 5. Ordinamento dei processi 6. Inizializzazione Genesi - 1 MS-DOS Mono-utente, modalità command
I THREAD O PROCESSI LEGGERI
I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine
Informatica Generale 07 - Sistemi Operativi:Gestione dei processi
Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei
Lezione 1: Introduzione alla Shell di Unix
Lezione 1: Introduzione alla Shell di Unix Laboratorio di Elementi di Architettura e Sistemi Operativi 5 Marzo 2013 Chi è UNIX? UNIX è il nome di una famiglia di sistemi operativi, con diverse implementazioni
SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.
SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a
IL SISTEMA OPERATIVO
IL SISTEMA OPERATIVO... è l insieme dei programmi che agisce come intermediario tra l utente del computer e l hardware Il suo scopo è quello di rendere agevole l uso dell hardware, mascherando le caratteristiche
Il software di sistema
Il software di sistema Il software in un calcolatore è organizzato in due parti distinte: Il Software di Sistema o Sistema Operativo, che comprende una serie di programmi atti a gestire le risorse fisiche
LinuxThreads: I thread nel sistema operativo LINUX: Linuxthreads. LinuxThreads. LinuxThreads
I thread nel sistema operativo LINUX: Linuxthreads : Caratteristiche Processi leggeri realizzati a livello kernel System call clone: int clone(int (*fn) (void *arg), void *child_stack, int flags, void
Introduzione. P4 termina prima di P3, P2 e P3 prima di P1 P1 P2 P3 P4 P1 P1 P2 P3 P4. Padre. P1,..., P4 sono processi. Figlio
Processi Introduzione Processo = entità attiva 1. esiste per un certo lasso di tempo 2. utilizza risorse Ogni processo ha un identificatore intero (PID: process identifier) Tutti i processi UNIX hanno
I Processi. Il Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
Introduzione al Multithreading
Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui
Il Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione l di un processo è sequenziale (le istruzioni vengono eseguite
Il processo figlio : utilizza lo stesso codice che sta eseguendo il padre ;
La creazione di un nuovo processo in UNIX int fork(void); Viene creato un nuovo processo (figlio) identico (stesso codice, area dati copiata) al processo (padre) che ha invocato la fork Solo il valore
14 - INTRODUZIONE AL SISTEMA OPERATIVO LINUX
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 14 - INTRODUZIONE AL SISTEMA OPERATIVO LINUX Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico
Elementi di informatica
Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come
La memoria secondaria
La memoria secondaria E di solito un disco rigido che contiene dati e programmi in modo permanente (può essere anche un cd-rom, floppy disk, etc). Tempi di accesso: Floppy: O(100) ms Hard disk: O(10) ms
Controllo dei Processi 1
Controllo dei Processi 1 I processi Nei sistemi Unix/Linux ogni processo ne può generare altri. Il processo che li genera è detto processo padre (parent process), mentre i processi generati sono detti
Processi. Introduzione. Effective user/group id. Fork
Introduzione Processi = entità attiva 1. esiste per un certo lasso di tempo 2. utilizza risorse Ogni processo ha un identificatore intero (PID: process identifier) Tutti i processi UNIX hanno un genitore
Sistema operativo & file system 1
Il software (sw) Software di sistema e file system Lezione 1b L esecuzione di programmi è lo scopo di un elaboratore I programmi sono algoritmi codificati in un particolare linguaggio di programmazione
Personal Computer: introduzione
I.I.S. Benvenuto Cellini Corso di formazione tecnica Personal Computer: introduzione Prof. Alessandro Pinto v.2009 Architettura di Von Neumann Unità centrale di elaborazione Input Unità aritmetico-logica
Sistemi Operativi Ricapitolazione di Concetti di Base
Sistemi Operativi Concetti di Base Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Gerarchia fisica di memoria 1 Tempo di accesso Capacità tipica
Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.
Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca
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
Come funzionano i computer
Fluency Come funzionano i computer Capitolo 6 Cosa sanno fare Esecuzione deterministica istruzioni per elaborare dati Devono ricevere una serie di istruzioni da seguire Cosa non sanno fare Non hanno immaginazione
Struttura Logica del S.O:
Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è
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
2. Nucleo del sistema operativo (la gestione dei processi)
Architettura del sistema operativo Struttura interna del sistema operativo Linux shell Programmi utente Modo utente 2. Nucleo del sistema operativo (la gestione dei processi) - 31 marzo 2008 - Interfaccia
Introduzione ai sistemi operativi
Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica Reti e sistemi operativi Introduzione ai sistemi operativi Contatti Docente: Alberto Pretto Ricevimento pretto@dis.uniroma1.it Appuntamento
Esercitazione n.1 24 Ottobre Obiettivi:
Esercitazione n.1 24 Ottobre 2013 Obiettivi: Gestione dei thread mediante libreria pthreads: creazione: pthread_create terminazione: pthread_exit join: pthread_join 1 Richiami sui thread 2 Processi Immagine
Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU
Operazioni di I/O 1 Schema di collegamento fra dispositivi periferici e CPU Memoria CPU buffer interfaccia Registro di controllo Registro Di stato Unità di controllo Dispositivo fisico 2 1 Unità di interfaccia
TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati
TEORIA DEI SISTEMI OPERATIVI Sistemi monoprogrammatie multiprogrammati 1 STRUTTURA DEL SISTEMA OPERATIVO UTENTE La struttura di un sistema operativo è di tipo gerarchico: i programmi che lo compongono
Il software: Istruzioni per il computer
Il software: Istruzioni per il computer Software applicativo aiuta a svolgere operazioni utili in vari campi programmi di videoscrittura, fogli elettronici, videogiochi Software di sistema permette l utilizzo
Il Sistema Operativo Linux
Il Sistema Operativo Linux Sistema Linux storia Unix deriva da Unix open source software libero software open source GNU, GPL, LGPL storia Linux amministrazione struttura concetti base comandi shell Unix
Lezione 5: Software. Firmware Sistema Operativo. Laboratorio di Informatica
Lezione 5: Software Firmware Sistema Operativo Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software 2 Architettura del Calcolatore
2. Strutture dei Sistemi Operativi. 2.2 Interfaccia col Sistema Operativo Interprete dei comandi
1 2. Strutture dei Sistemi Operativi Quali servizi un generico sistema operativo mette a disposizione degli utenti, e dei programmi che gli utenti vogliono eseguire? interfaccia col sistema operativo stesso
Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.
Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio
Corso di Laboratorio di Sistemi Operativi
Corso di Laboratorio di Sistemi Operativi Lezione 7 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Threads Un thread è l unità di base per l utilizzo della CPU. Composto
C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O
Il linguaggio C C O P Y R I G H T ( C ) 2 0 0 8 W W W. F O N D A M E N T I. I N F O P E R M I S S I O N I S G R A N T E D T O C O P Y, D I S T R I B U T E A N D / O R M O D I F Y T H I S D O C U M E N
INFORMATICA. L informatica comprende:
Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione
AlmaWeb Universita` di Bologna. Master in Tecnologia del Software Libero e Open Source
AlmaWeb Universita` di Bologna Master in Tecnologia del Software Libero e Open Source Corso di Sistemi Operativi Prof. Anna Ciampolini aciampolini@deis.unibo.it Dott. Stefano Zacchiroli zack@bononia.it
Il modello a thread : motivazioni
Sistemi Operativi Giuseppe Prencipe Il modello a thread : motivazioni Nel modello a processi, ogni processo ha il suo spazio di indirizzamento privato ed il modo per interagire è quello di utilizzare i
Il supporto al sistema operativo
Politecnico di Milano Il supporto al sistema operativo Prof. Mariagiovanna Sami sami@elet.polimi.it 2007- Obiettivi e Funzioni Perché introdurre il sistema operativo? Convenienza Rende più facile usare
Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni
Anno Accademico 2011/2012 Segnali: Interrupt software per la gestione di eventi asincroni Concetto di segnale Un segnale è un interrupt software Un segnale può essere generato da un processo utente o dal
Sistemi Operativi. Prof. Alberto Broggi. Dip. di Ingegneria dell Informazione Università di Parma
Sistemi Operativi Prof. Alberto Broggi Dip. di Ingegneria dell Informazione Università di Parma Crediti Il corso offre 6 crediti (48 ore) Lezioni (circa 36 ore) Esercitazioni (circa 10 ore) Prova in itinere
6 Il Sistema Operativo Indice. 6.2 Classificazione e definizioni. Livello macchina virtuale Generalità Livello macchina virtuale - 1
6 Il Sistema Operativo Indice 6.1 Generalità 6.1 Generalità Livello macchina virtuale - 2 Obiettivi del Sistema Operativo (S/O) Facilitare l uso dell elaboratore (macchina hardware) Consentire uso e gestione
Input/Output (Cap. 7, Stallings)
Input/Output (Cap. 7, Stallings) Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi Tutti più lenti della CPU e della RAM Necessità di avere moduli
I Processi nel SO UNIX
I Processi nel SO UNIX 1 Processi UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice
I Processi nel Sistema Operativo Unix
I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo
Sistemi Operativi Gestione della Memoria (parte 1)
Sistemi Operativi Gestione della Memoria Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Considerazioni preliminari 1 Nell ottica degli utenti applicativi
Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico
Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema
Sistemi Operativi Teledidattico
Sistemi Operativi Teledidattico Anno 2002 3a esercitazione 5/10/2002 Paolo Torroni processi fork (creazione di un figlio) exec (sostituzione di codice del programma in esecuzione) wait (attesa della terminazione
Sistemi Operativi. Lezione 3 Processi e Thread
Lezione 3 Processi e Thread Introduzione Sino ai sistemi batch la CPU di un sistema svolgeva un attività, la portava a termine e solo allora avviava un altra attività Con l avvento della multiprogrammazione
SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)
SEMAFORI 1 SEMAFORI Variabile intera non negativa con valore iniziale >= 0 Al semaforo è associata una lista di attesa Qs nella quale sono posti i descrittori dei processi che attono l autorizzazione a
2. I THREAD. 2.1 Introduzione
2. I THREAD 2.1 Introduzione Il tipo di parallelismo che è opportuno avere a disposizione nelle applicazioni varia in base al grado di cooperazione necessaria tra le diverse attività svolte in parallelo:
Sistemi Operativi. Des crizione e controllo dei proces s i
Sistemi Operativi Des crizione e controllo dei proces s i Servizi di un Sistema Operativo Permettere ad un utente di creare processi (lanciare programmi) Interallacciare l esecuzione di diversi processi,
SCD. Correttezza temporale. Correttezza temporale. Premesse 2. Politiche di ordinamento 1. Premesse 1
Premesse 2 Anno accademico 2014/15 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD I sistemi a tempo reale devono assicurare correttezza temporale oltre che funzionale
Livelli del sottosistema di I/O
Input/Output 1 Livelli del sottosistema di I/O Software di I/O di livello utente Software di sistema indipendente dal dispositivo Driver dei dispositivi Gestori delle interruzioni Hardware Modo utente
Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario
Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi
5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche
Device driver - gestori delle periferiche Struttura interna del sistema operativo Linux Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici Interagiscono con
Componenti di un sistema operativo
Componenti di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Componenti di un S.O. Gestione dei processi Gestione della memoria primaria Gestione della memoria secondaria
Introduzione al Linguaggio C ed all IDE DEV-C++
Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ 1 Le Esercitazioni in Laboratorio! MTA + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato! Orario: Giovedì 14:30-17:30!
SISTEMI OPERATIVI alla base di tutto. Informatica Applicata Prof.Emanuela Zilio
SISTEMI OPERATIVI alla base di tutto 1 Sistemi Operativi: avvio All avvio del computer, terminate le verifiche del BIOS, il controllo passa al sistema operativo. Il Sistema Operativo opera come intermediario
Corso di Laboratorio di Sistemi Operativi
Corso di Laboratorio di Sistemi Operativi Lezione 4 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Approfondimento su make http://http://capone.mtsu.edu/csdept/facilitiesandresources/make.htm
Genesi 1. Mono-utente in modalità command line Non multi-programmato Inizialmente ispirato a CP/M
Genesi 1 MS-DOS Mono-utente in modalità command line Non multi-programmato Inizialmente ispirato a CP/M 1981 : 1.0 (8 KB) PC IBM 8088 (16 bit) 1986 : 3.0 (36 KB) PC IBM/AT (i286 @ 8 MHz, 16 MB) Windows
Ambienti Operativi: Introduzione
DTI / ISIN / Titolo principale della presentazione Ambienti Operativi: Introduzione Amos Brocco, Ricercatore, DTI / ISIN 1 Architettura di un computer CPU Memoria Bus Dispositivi I/O 3 Esecuzione del software