Genesi 1 UNIX. Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 1
|
|
- Beata Guerra
- 4 anni fa
- Visualizzazioni
Transcript
1 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 Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 1
2 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) Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 2
3 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 4.x BSD (Berkeley Software Distribution) Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 3
4 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 Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 4
5 Genesi 5 Scelte architetturali per cloni UNIX Micro-kernel : MINIX (Tanenbaum, 1987) Nel nucleo solo processi e comunicazione 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 v2.6 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) Parallelo al progetto GNU (GNU is NOT UNIX!) Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 5
6 Visione generale 1 Sistema multi-programmato multi-utente Orientato allo sviluppo di applicazioni Progettato per semplicità, eleganza e consistenza NO a complessità da compromessi di compatibilità verso il passato SI a specializzazione e flessibilità Ogni servizio fa una sola cosa (bene) Facile combinare liberamente più servizi per realizzare azioni più sofisticate Architettura a livelli gerarchici Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 6
7 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 Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 7
8 Architettura di nucleo UNIX Struttura monolitica = insieme staticamente fissato di moduli oggetto Interfaccia di sistema Interfaccia eventi Gestore terminale utente Modalità non canonica (raw) Modalità canonica (cooked) Gestore dispositivi a carattere (terminali) Gestore interfaccia rete Protocolli di rete Gestore dispositivi a carattere (reti) FS Gestore memoria virtuale Gestore cache su RAM Gestore dispositivi a blocco (dischi) Gestore processi (creazione, rimozione, comunicazione, ordinamento, esecuzione) Elaboratore hardware Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 8
9 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) Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 9
10 Gestione dei processi (UNIX) 1 Processo La sola 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) Creazione mediante fork() La discendenza di un processo costituisce un gruppo Comunicazione mediante scambio messaggi (pipe) e invio di segnali (signal) entro un gruppo Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 10
11 Gestione dei processi (UNIX) 2 Processi con più flussi di controllo interni Detti thread 2 scelte realizzative possibili per gestire thread Nello spazio di nucleo Nello spazio di utente Più facile da aggiungere Il nucleo però ordina solo i processi POSIX non impone una particolare scelta Un thread può svolgere compiti specializzati La creazione di un thread gli assegna identità, attributi, compito e argomenti res = pthread_create( &tid, attr, fun, arg ) Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 11
12 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) Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 12
13 Gestione dei processi (UNIX) 4 Un thread può avere 2 modi operativi Modo normale Esecuzione nello spazio di utente con diritti, memoria virtuale, risorse distinti da quelli del nucleo Modo nucleo Esecuzione con privilegi, memoria virtuale e risorse di nucleo Il cambio di modo consegue a una chiamata di sistema Chiamata incapsulata in una procedura di libreria per consentirne l invocazione da programmi scritti in C Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 13
14 Gestione dei processi (UNIX) 5 Il nucleo impiega 2 strutture per gestire processi 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 Descrittore degli utenti In RAM solo per i processi attualmente attivi Parte del contesto (immagine dei registri dell elaboratore) Stato dall ultima chiamata di sistema (parametri, risultato) Tabella dei descrittori dei file aperti Crediti del processo Stack da usare in modo nucleo Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 14
15 Esecuzione di comando di shell 1 Codice semplificato di un processo shell while (TRUE) { type_prompt(); // mostra prompt sullo schermo 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 } 1 2 } else { execve( cmd, par, 0); } Codice eseguito dal padre // di qualunque figlio Codice eseguito dal figlio Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 15
16 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 Le aree dati e codice sono copiate per il figlio solo se questi le modifica (copy-on-write) e caricate solo quando riferite (paging-on-demand) Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 16
17 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 Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 17
18 Gestione dei processi (UNIX) 6 fork() duplica il processo chiamante creando un processo figlio uguale ma distinto Che accade se questi include più thread? Vi sono 2 possibilità Tutte i thread del padre vengono clonati Difficile gestire il loro accesso concorrente ai dati e alle risorse condivise con le 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? Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 18
19 Gestione dei processi (GNU/Linux) 7 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(fun, stack, ctrl, par); fun = programma da eseguire nel nuovo task (processo o thread) con argomento par stack = 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à Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 19
20 Ordinamento dei processi (UNIX) 1 Sistema destinato a uso interattivo Politica di ordinamento con prerilascio Deve garantire buoni tempi di risposta e soddisfare le aspettative degli utenti Algoritmo di ordinamento a 2 livelli Livello basso (dispatcher) Seleziona un processo tra quelli pronti (in RAM) Secondo le indicazioni fornite dallo scheduler Livello alto (scheduler) Assicura che tutti i processi abbiano opportunità di esecuzione spostando processi tra RAM e disco Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 20
21 Ordinamento dei processi (UNIX) 2 Politica di ordinamento Selezione per priorità decrescente Priorità alta (< 0) per esecuzione in modo nucleo Priorità bassa (> 0) per esecuzione in modo normale Più processi possono avere la stessa priorità 1 coda di processi livello di priorità Selezione round robin da testa della coda Esecuzione a quanti con ritorno in fondo alla coda Aggiornamento periodico della priorità dei processi Priorità = consumo + cortesia + urgenza Esecuzione media per 1 s (>0) Importanza evento atteso (<0) Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 21
22 Ordinamento dei processi (UNIX) 3 Coda dei processi per livello di priorità Livelli di priorità Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 22
23 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à 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 Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 23
24 Ordinamento dei processi (GNU/Linux) 2 Priorità numerica Importanza relativa Ampiezza del quanto Livello nice Silberschatz, Galvin and Gagne 2005 Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 24
25 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 Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 25
26 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 Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 26
27 Ordinamento dei processi (GNU/Linux) 5 Silberschatz, Galvin and Gagne 2005 Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 27
28 Inizializzazione (GNU/Linux) 1 BIOS carica l MBR 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 Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 28
29 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 ) e poi si procede come mostrato alle pagine Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 29
30 Inizializzazione (GNU/Linux) 3 Da UNIX a GNU/Linux (p Sistemi Operativi - T. Vardanega 30
Sistemi Operativi Da Unix a GNU/Linux (parte 1)
Sistemi Operativi Da Unix a GNU/Linux Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Genesi 1 DTSS (Dartmouth College Time Sharing System, 1964)
Genesi 1. Genesi 2. Genesi 4. Genesi 3. Visione generale 1. Genesi 5. Da UNIX a GNU/Linux (parte 1) Standardizzazione (1986 )
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,
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
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 1. Lezione III: Concetti fondamentali. Mattia Monga. 7 marzo 2008
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 7 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
Sistemi Operativi 1. Mattia Monga. 7 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 7 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
Gestione della memoria 1
Gestione della memoria 1 Massima semplicità per massima portabilità su architetture fisiche diverse Ogni processo possiede un proprio spazio di indirizzamento privato (memoria virtuale) Suddiviso in 4
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
LINUX: struttura generale
LINUX: struttura generale User Interface The layers of a UNIX system. 1 Processi in LINUX Ogni processo nasce con un solo thread Un processo gira in modalità utente; quando effettua una system call passa
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
Sistemi Operativi Da Unix a GNU/Linux (parte 2)
Sistemi Operativi Da Unix a GNU/Linux Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Gestione della memoria 1 Massima semplicità per massima portabilità
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()
Sistemi operativi 2003/2004. Linux
Sistemi operativi 2003/2004 Linux Unix 1969: Bell Labs (Ken Thompson) http://www.levenez.com/unix/ Struttura Utility standard Unix e il C 1972: Bell Labs (Dennis Ritchie) Il kernel viene riscritto in C
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 Esercizi File System. Docente: Claudio E. Palazzi
Sistemi Operativi Esercizi File System Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Appello AE-2 del 14/9/2005 Esercizi di ricapitolazione Sistemi Operativi - C. Palazzi 93 Soluzione Esercizi di
Introduzione ai thread
Introduzione ai thread Processi leggeri. Immagine di un processo (codice, variabili locali e globali, stack, descrittore). Risorse possedute: : (file aperti, processi figli, dispositivi di I/O..),. L immagine
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
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:
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
Dipartimento di Giurisprudenza Prof. Michele Perilli Conoscenze Informatiche
Dipartimento di Giurisprudenza Prof. Michele Perilli Conoscenze Informatiche michele.perilli@unifg.it mlperilli@gmail.com Sistema Operativo: funzionalità Gestire le risorse della macchina (CPU, memoria,
Corso di Informatica Modulo T3 1-Nucleo e processi
Corso di Informatica Modulo T3 1-Nucleo e processi 1 Prerequisiti Concetto stack Programmazione elementare Struttura elementare del computer Concetto intuitivo di sottoprogramma 2 1 Introduzione Vediamo
Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013
Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013 Processi bash 1 Sommario I processi Comando ps (process status) Terminazione di un processo CTRL-C Kill Controllo dei processi Processi in background
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
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 S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
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
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
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
Gestione dei Processi
Gestione dei Processi Informatica B Che cosa è un processo per il SO? Processo programma! Rappresenta un istanza di un programma composta da: codice eseguibile (il programma stesso) dati del programma
Il sistema operativo
Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali Indice Architettura Gestione dei processi Gestione della memoria centrale Driver Gestione dei file 2 1 Il sistema operativo E uno
Prestazioni e affidabilità dei dischi
Prestazioni e affidabilità dei dischi le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, - per aumentare le prestazioni si può pensare di far operare in parallelo più dischi:
Programma e Modalità d Esame
Programma e Modalità d Esame Come programma di esame si assumono tutti gli argomenti trattati dai docenti del corso nelle videolezioni. Tali argomenti sono riepilogati di seguito: I. Concetti base dei
Sistemi Operativi Da Unix a GNU/Linux (parte 3)
Sistemi Operativi Da Unix a GNU/Linux Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Caratteristiche del File System 1 File visto da FS come sequenza
Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata
di un Lezione 2 di un Sistemi operativi 23 marzo 2017 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 17 2.1 Di cosa parliamo in questa lezione? di un È ancora una lezione
Lezione 2. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.
di un Lezione 2 di un Sistemi operativi 23 marzo 2017 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 17 2.1 Di cosa parliamo in questa lezione? di un È ancora una lezione
Sistemi Operativi e Laboratorio, Prova del?/?/?
Nome: Cognome: Matricola: fla: posto: corso: Esercizio 1 Quali delle seguenti operazioni possono essere eseguite da un processo in stato utente? Operazione: Invocare l istruzione TSL (test and set lock-tipo
IL SISTEMA OPERATIVO
IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE La gestione delle periferiche
Simulazione 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
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
Sistemi Operativi 1. Lezione IV: Processi e thread. Mattia Monga. 11 marzo 2008
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
SISTEMI OPERATIVI. Processi in Linux. Giorgio Giacinto Sistemi Operativi
SISTEMI OPERATIVI Processi in Linux 2 Creazione di processi concorrenti» La creazione di un processo figlio consente di far eseguire alcune funzionalità del programma in modo concorrente» Opzione 1 il
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
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
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
C: primi elementi. Lezione 4
C: primi elementi Lezione 4 Evoluzione del BCPL (1967) e B (1970), entrambi typeless Sviluppato da Dennis Ritchie nel 1972 ed implementato per il PDP-11 Usato per lo sviluppo del sistema operativo UNIX
Prima Esercitazione. Unix e GNU/Linux. Fork. Stefano Monti Eugenio Magistretti
Prima Esercitazione Fork Eugenio Magistretti emagistretti@deis.unibo.it Stefano Monti smonti@deis.unibo.it Unix e GNU/Linux Unix: sviluppato negli anni '60-'70 presso Bell Labs di AT&T, attualmente sotto
Sistema operativo e processi. Il Sistema Operativo ed i Processi. Il sistema operativo. Il sistema operativo
Il Sistema Operativo ed i Processi Giuseppe Pozzi Impianti di Elaborazione Facoltà di Ingegneria di Como Politecnico di Milano giuseppe.pozzi@polimi.it - versione del 22 ottobre 2003 - Sistema operativo
Libreria Linux Threads. Threads nel S.O. Linux. Primitive per la gestione dei thread. Portabilità: libreria pthreads (Posix).
Threads nel S.O. Linux Il thread è un processo leggero che può condividere uno spazio di indirizzi (o parte di esso) con il padre e gli altri processi della gerarchia cui appartiene. Realizzato a livello
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
Il Sistema Operativo Ripasso
ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Concetti di base Sistema Operativo Risorse Funzioni e Struttura Bootstrap, Kernel, Shell Gestione dei Processi Processo e PCB Algoritmi
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 10 Martedì 7-11-2017 Thread a livello kernel Modello da uno a uno La
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
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
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
Sistema operativo: Introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Introduzione La presente dispensa e da utilizzarsi
SISTEMI OPERATIVI - canale 2
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2016/2017-2 anno SISTEMI OPERATIVI - canale 2 ING-INF/05-6 CFU - 1 semestre Docente
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. 2018-2019 Pietro Frasca Lezione 5 Martedì 16-10-2018 Operazioni sui processi Nella maggior parte dei
Corso di Informatica
Corso di Informatica Modulo T2 1-Concetti fondamentali 1 Prerequisiti Hardware e software Uso pratico elementare di un sistema operativo Software di base e software applicativo 2 1 Introduzione Iniziamo
Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito B
Nome: Cognome: Matricola: corso: fila: posto: sercizio 1 (5 punti) Un sistema con 5 processi (A,, C,, ) e risorse dei tipi R1, R2, R3, R4, rispettivamente di molteplicità [7, 7, 3, 6], utilizza l algoritmo
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
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
Architettura dei Sistemi Informatici
Sistemi di Calcolo Architettura dei Sistemi Informatici Sistemi informatici PC, terminali e reti Architettura insieme delle componenti del sistema, descrizione delle loro funzionalità e della loro interazione
Elementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Cos'è un Sistema Operativo?
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
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
2. Cenni di sistemi operativi
2. Cenni di sistemi operativi Andrea Marongiu (andrea.marongiu@unimore.it) Paolo Valente Contiene slides dal corso «Sistemi Operativi» dei prof. Gherardi/Scandurra dell Università degli studi di Bergamo
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:
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
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Un sistema software distribuito è composto da un insieme di processi in esecuzione su più nodi del sistema Un algoritmo distribuito può
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
SISTEMI OPERATIVI - canale 1
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2016/2017-2 anno SISTEMI OPERATIVI - canale 1 ING-INF/05-6 CFU - 1 semestre titolare
Modelli e problematiche di file system
Realizzazione del file system I file system (FS) sono memorizzati su disco I dischi possono essere partizionati Ogni partizione può contenere un FS distinto Il settore 0 del disco contiene le informazioni
Principles of Concurrent Programming
Principles of Concurrent Programming Alessio Vecchio alessio.vecchio@unipi.it Dip. di Ingegneria dell Informazione Università di Pisa Tratte da Principi e tecniche di progammazione concorrente, cap. 2
Corso di Informatica
Corso di Informatica Modulo L2 4-1 Prerequisiti Concetto di firmware Struttura di base di un sistema operativo Uso pratico elementare di un sistema operativo 2 1 Introduzione In questa Unità vediamo più
Introduzione al Linguaggio C ed all IDE DEV-C++
Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ Le Esercitazioni in Laboratorio Laboratorio M1 + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato Orario: Mercoledì
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
Esercizio sulla gestione di processi in Unix!
! Esercizio sulla gestione di processi in Unix! 1 Esercizio Si vuole realizzare un programma C che abbia la seguente interfaccia:./launch_commands Il programma deve richiedere all utente: un numero N (pari
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
TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni
Roberta Gerboni 1 Gli stati di un processo Gli stati possibili nei quali si può trovare un processo sono: Hold (parcheggio): il programma (chiamato job) è stato proposto al sistema e attende di essere
Introduzione Sistemi Operativi - T. Vardanega Pagina 2/34. Introduzione Sistemi Operativi - T. Vardanega Pagina 4/34
Cenni storici 1 Cenni storici 2 Anni 50: i S/O hanno origine con i primi elaboratori a programma memorizzato Modalità di esecuzione batch (a lotti) gestita da un operatore umano Tutto l elaboratore a disposizione
Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito A
Nome: Cognome: Matricola: corso: fila: posto: sercizio 1 (5 punti) Uno spool di stampa di un sistema multithread che gestisce due stampanti fisiche, è organizzato con un thread gestore che gestisce le
Prof. G. Ascia. Sistema Operativo
Sistema Operativo In parte tratto dal capitoli 13 del libro Mandrioli, Ceri, Sbattella, Cremonesi, Cugola, "Informatica: arte e mestiere",3a ed., McGraw-Hill Fondamenti di Informatica 1 Il Sistema Operativo
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 11 Giovedì 17-11-2016 1 Gestione della memoria La memoria principale
Caratteristiche del File System 1
Caratteristiche del File System 1 Paradigma minimalista di tipo small is beautiful File visto da FS come sequenza di byte di significato arbitrario Fissato dal programma applicativo File regolari, file
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
Introduzione a Linux Lezione 1 Introduzione a Linux
Introduzione a Linux Lezione 1 Introduzione a Linux Angelo Genovese Corso di Sistemi Operativi I/II Prof. V. Piuri Università degli Studi di Milano Dipartimento di Informatica A.A. 2018/2019 Panoramica
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica. SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI A.A. 2004/2005 Docente: Giorgio Giacinto fork() & exec() Roberto Perdisci A.A. 2004/2005 1 Dettagli
Sistemi Operativi. Marzo-Giugno 2011 matricole congrue 0 mod 3. Controllo dei processi - I
Marzo-Giugno 2011 matricole congrue 0 mod 3 Controllo dei processi - I Controllo dei processi Creazione di nuovi processi Esecuzione di programmi Processo di terminazione Altro 2 1 Identificatori di processi
Richiami sui Concetti Fondamentali dei Processi
Processi Processi 1 Richiami sui Concetti Fondamentali dei Processi Processi 2 Definizione Nell ambito dei sistemi operativi esistono diverse definizioni di processo, ad es. un programma in esecuzione
Cenni storici 1. Cenni storici 2. Cenni storici 3. Cenni storici 4. Cenni storici 5. Una definizione di S/O. Introduzione al Sistema Operativo
Cenni storici 1 Anni 50: i S/O hanno origine con i primi elaboratori a programma memorizzato Modalità di esecuzione batch (a lotti) gestita da un operatore umano Tutto l elaboratore a disposizione di un
Sistemi Operativi e Laboratorio, Prova del 9/9/2014
Nome: Cognome: Matricola: fila: posto: Esercizio 1 (5 punti) Si consideri un processore che dispone dei registri speciali PC (program counter) e PS (program status), dello stack pointer SP e dei registri
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
Introduzione ai Sistemi Operativi
Introduzione ai Sistemi Operativi Cos e` un Sistema Operativo? È un programma (o un insieme di programmi) che agisce come intermediario tra l utente e l hardware del computer: fornisce un ambiente di sviluppo
Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo
Il software la parte contro cui si può solo imprecare (continua) Funzioni principali del sistema operativo Avvio dell elaboratore Gestione del processore e dei processi in esecuzione Gestione della memoria
Il software. la parte contro cui si può solo imprecare. (continua) Funzioni principali del sistema operativo. Gestione della memoria principale
Il software la parte contro cui si può solo imprecare (continua) Funzioni principali del sistema operativo Avvio dell elaboratore Gestione del processore e dei processi in esecuzione Gestione della memoria
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
SISTEMI OPERATIVI - canale 2
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2017/2018-2 anno SISTEMI OPERATIVI - canale 2 ING-INF/05-6 CFU - 1 semestre Docente
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