Anteprima
Vedrai una selezione di 14 pagine su 63
Calcolatori Elettronici - Sistemi Operativi Pag. 1 Calcolatori Elettronici - Sistemi Operativi Pag. 2
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 6
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 11
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 16
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 21
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 26
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 31
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 36
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 41
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 46
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 51
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 56
Anteprima di 14 pagg. su 63.
Scarica il documento per vederlo tutto.
Calcolatori Elettronici - Sistemi Operativi Pag. 61
1 su 63
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Round Robin con Priorità

Utilizza il turnaround normalizzato, prende quello con il valore più alto, ovvero quello più penalizzato fino a quel momento. Response ratio → R come (w+s)/s. La strategia non è preemptive. Esempio slide 21/22 Anche qui si fa una stima di s guardando il passato Processor Scheduling 4 Feedback I processi quando arrivano vengono messi in code ready di diversa priorità in base all'arrivo (i più recenti sono messi nella coda di priorità più alta). Quando un processo viene eseguito (e schedulato con la politica FCFS), non viene più messo nella stessa coda, ma in quella di priorità immediatamente inferiore. Quando la coda con priorità più alta si svuota, il processore viene allocato alla coda successiva (priorità inferiore) e si continua il procedimento. Quando il controllo passa al dispatcher (a seguito di operazione bloccante o simili) se vi sono processi nella coda precedente il processore viene

allocato di nuovo allacoda precedente, se no continua in quella attuale.Se si arriva all'ultima coda i processi vengono riaccodati lì.L'idea è che i processi appena inseriti sono preferiti, una volta iniziati adeseguire vengono spostati in code inferiori. Il rischio è che i processi in bassonon vengano serviti a lungo. Si ha un problema di fairness.Questo approccio è preemptive e utilizza i quanti.Esempio slide 21 con probabile errore: al quanto 4 si esegue B e non A perchèha ancora priorità maggiore. Lezione del 14 maggio.Per risolvere il problema di fairness si dà un quanto di tempo maggiore aiprocessi in code più in basso un modo esponenziale: quelli nella coda 0 avràun quanto di 2^0, nella 1 il quanto sarà di 2^1 e così via.Scheduling in UNIXL'obiettivo di UNIX è dare tempi di risposta buoni. Si usa un multi levelfeedback, con un RR all'interno delle singole code. La preemption

viene fatta ogni secondo. La priorità viene anche stimata in base al tipo di processo. Formula per lo scheduling slide 39. Definizione variabili su slide. Il valore Basej è dato a ogni processo in base al tipo di processo a priori. Nicej può essere specificato dall'utente in base alle esigenze: se metto nice>0 allora dico che quel processo avrà priorità più bassa di quella che il sistema gli avrebbe dato; se invece nice<0 allora dico che un processo deve essere schedulato con maggiore priorità del normale (serve però che l'operazione venga fatta dall'amministratore). Esempio slide 40 - ad ogni quanto si ricalcolano sia CPUj che Pj. nicej ≥ 0 qui. Processor Scheduling 5 - Decay factor: 1/2 davanti al calcolo di CPUj (i) prima. Nel tempo si è arrivati a impostare il valore di decadimento in base al carico del processore, per evitare che nei carichi pesanti avvenga che il CPUj diventi sempre più basso, di fatto.

assottigliando la differenza di priorità tra i vari processi e facendo diventare il valore CPUj inutile; inoltre non si terrebbe più conto della storia del processo. Per impostare il decay factor si guarda il load_average (media dei processi ready in coda).

Fair-share scheduling

Può aver senso aggregare i processi considerando nel calcolo della priorità (ad esempio considerando come gruppo l'insieme di processi figli o threads di un processo padre), l'utilizzo medio di CPU del gruppo di cui fanno parte. Per esempio può succedere che un gruppo di piccoli processi (o threads) abbia poco utilizzo di cpu per ogni processo, ma tanto nell'insieme: aggiungendo al calcolo della priorità l'utilizzo di CPU del gruppo non si rischia che ogni processo singolo abbia priorità alta a discapito di processi singoli ma grossi che richiedono molto tempo di CPU.

Processor Scheduling 6SO Overview

Sistema operativo: programma che controlla

  • L'esecuzione di altri programmi è un intermediario tra hardware e software
  • Caratteristiche:
    • Comodo da usare
    • Efficiente nell'utilizzo delle risorse
    • Capace di evolvere in caso di cambiamenti hardware e software
    • Programma eseguito dal processore
    • Richiede di riprendere il controllo durante l'esecuzione di altri programmi
  • Servizi:
    • Sviluppo: servizi di debugging e di compilazione
    • Esecuzione dei programmi
    • Accesso dispositivi
    • Accesso ai file perché i programmi non accedano ad aree riservate
    • Componenti di sistema
    • Rilevamento errori e malfunzionamenti
    • Accounting: tenere traccia degli avvenimenti del sistema e di chi le ha effettuati
    • Movimento, storage e processo dei dati
  • Il sistema operativo può evolvere nel tempo per diversi motivi:
    • Upgrade dell'hardware
    • Nuovi tipi di hardware
    • Nuovi servizi da offrire
    • Bug fix
  • Passi dell'evoluzione:
    • SO Overview 1: serial processing - eseguire un programma alla volta in ordine sequenziale (inefficiente)
    • Simple batch systems (sistemi a...
lotti): sequenze di gruppi di programmi multiprogrammed batch systems: esecuzione simultanea di più programmi sempre divisi in lotti (massimizza l'utilizzo del processore) time sharing systems: tempo suddiviso e allocato a diversi processi un po' per volta (minimizza i tempi di risposta) (altro su dispense) Processo Diverse definizioni: - programma in esecuzione - istanza di un programma in esecuzione - entità eseguibile dal processore - unità di attività caratterizzata da un thread di esecuzione, uno stato e un set di risorse di sistema Cause dello sviluppo: - processore allocato a diversi programmi residenti in memoria - velocità di risposta ai singoli utenti, ma supportando molti di questi contemporaneamente - diversi utenti simultaneamente aggiornano database Diversi errori possono capitare in un sistema: - Problemi di sincronizzazione: un programma deve attendere i dati in un buffer e errori di progettazione dei segnali possono portare a problemi di perdita e

duplicazione dei dati

Mutua esclusione fallita: più programmi cercano di utilizzare una stessa risorsa di sistema nello stesso momento

SO Overview 2

Operazioni non determinate: più programmi possono interferire tra di loro scrivendo stesse aree di memoria dando risultati non aspettati o errati

Deadlocks: catene circolari che possono interrompere una serie di processi

Componenti di un processo:

  • programma eseguibile
  • dati richiesti
  • execution context: dati interni che permettono al SO di controllare il processo, inclusi i valori dei registri e informazioni circa la priorità del processo e se ha bisogno di un certo input o output di un dispositivo.

Tutto viene incluso nel registro context

Nuove funzioni del SO possono essere implementate espandendo il registro context con quello che serve

Memory Managment

Responsabilità del SO:

  • isolamento del processo dagli altri
  • allocazione del processo attraverso le gerarchie di memoria
  • definizione di moduli di programma che possono variare
dinamicamente proteggere le gerarchie di memoria tra i vari processi, in modo che non ci siano scritture in zone non accessibili a un particolare processo. Inoltre, è necessaria una gestione dell'archiviazione di massa. La memoria virtuale permette ai programmi di allocare memoria senza dipendere da quella effettivamente disponibile. In questo modo, è possibile avere più processi in memoria contemporaneamente. Se un indirizzo virtuale non è presente in memoria, viene preso dalla memoria di massa, ma ciò comporta una notevole perdita di tempo. Questo aspetto influisce sullo scheduling, poiché il prelievo di un indirizzo dalla memoria secondaria comporta un periodo di tempo in cui il processore non lavora. Il paging consiste nella divisione dei processi in un numero prefissato di blocchi chiamati pagine. Per quanto riguarda la sicurezza, è necessario garantire la disponibilità, proteggendo contro le interruzioni di servizio causate da attacchi ai server con richieste anomale. Inoltre, è importante l'autenticazione, che permette di identificare utenti e processi. Infine, la confidenzialità è fondamentale per garantire la possibilità di proteggere le informazioni da accessi non autorizzati.proteggere i dati dai processi non autorizzati Integrità dei dati: affidabilità dei dati, non devono essere modificati dall'esterno per sicurezza pubblica Autorizzazione: quali operazioni può effettuare una certa entità all'interno del sistema; le autorizzazioni sono gestite dai possessori delle strutture o del servizio, ovvero l'utente finale Scheduling processo È una delle principali responsabilità del SO Deve rispettare: - equità nell'accesso alle risorse - tempi di risposta diversi - efficienza Il SO crea delle code di processi con diverse priorità e utilizzo di risorse. Organizzazione e struttura sistema operativo Esistono diverse architetture: - Microkernel: kernel piccoli con funzioni essenziali - Multithreading: avere un unico processo con più percorsi paralleli a esecuzione sequenziale, ovvero i thread. Questo metodo non dipende da core e sistema - Multiprocessing simmetrico: più processori uguali che

Possono essere sfruttati in ugual modo, essi hanno registri diversi ma possono condividere le risorse. Lo scheduler così non deve più scegliere processori specifici per processi specifici.

Distributed OS: macchine separate con ognuna un proprio sistema operativo che interagisce con gli altri.

OOD: SO organizzato come un sistema a oggetti, con polimorfismo, ereditarietà e tutte le proprietà.

Mikrokernel Architecture:

  • Identificare un insieme di funzioni essenziali da inserire nel microkernel. Di solito sono: indirizzamento, comunicazione tra processi, scheduling di base.

Vantaggi:

  • Facilità di implementazione
  • Flessibilità
  • Si adatta bene a sistemi distribuiti, per via della sua maggiore portabilità

Multithreading:

  • Minima utilità di lavoro schedulabile all'interno del sistema operativo. Include uno stato del processore e una sua area per i dati.
  • La differenza con il processo è che il processo è un insieme di thread che ha una propria area.

di dati autonomi e indipendenti rispetto agli altri processi.

Invece i singoli thread condividono i dati con gli altri thread del processo.

Symmetric multiprocessing

SO Overview 5

Più processi eseguiti su più processori che devono essere sincronizzati dal SO.

Spesso utilizzata insieme al multithreading

Vantaggi:

  • performance
  • avaibility: se un processo fallisce il sistema non si blocca
  • crescita incrementale: posso aggiungere processori per aumentare le performance facilmente
  • scalabilità: diverse configurazioni in base al numero di processori

Sistemi operativi distribuiti

Controllo di più sistemi, fornendo l'

Dettagli
Publisher
A.A. 2019-2020
63 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher pontemon99 di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Genova o del prof Armando Alessandro.