Anteprima
Vedrai una selezione di 9 pagine su 37
Appunti Corso Sistemi operativi Pag. 1 Appunti Corso Sistemi operativi Pag. 2
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Appunti Corso Sistemi operativi Pag. 6
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Appunti Corso Sistemi operativi Pag. 11
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Appunti Corso Sistemi operativi Pag. 16
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Appunti Corso Sistemi operativi Pag. 21
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Appunti Corso Sistemi operativi Pag. 26
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Appunti Corso Sistemi operativi Pag. 31
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Appunti Corso Sistemi operativi Pag. 36
1 su 37
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Appunti Sistemi Operativi

(Tenere ordinato)

Sistemi Operativi

26/06 Programmazione - 17/07: Programmazione

27/06 Scritto - 18/07: Scritto

Interrogio lunedì 16-18 / Aula A1

Francesco Arguola gitehub.io

Sistema Operativo

È modulo software, chi "maschera" l'hardware. Tutto il software viene eseguito

nell'hardware. Colleziona di moduli software: nello schema a piramide è

"impaginato" nelle celle sottostanti.

Base Software a disposizione sviluppano nuovi programmi.

Routine sistema operativo vengono utilizzate da altre routine,

da non recapitano in questo modo. Salto su un sistema del SO.

Utilities no software applicativo. Es. libreria di programmazione (stdio.h, stdio.acc).

Nemmeno software sistema operativo, dunque non privilegiato.

Sistemi Embeded scelto sistema operativo ad utile uso ed esegue sull'hardware.

Risorse virtuali

Fa finta non esiste funzionamento, dunque astrarre e virtualizzazione delle

risorse. Il SO comunica con l'hardware. Le risorse sono virtualizzate.

Tante risorse virtualizzate SO può distribuire qualunque risorse:

Hardware distribuisce anche la CPU, quindi permette l'esecuzione in

parallelo di più applicazioni. Più applicazioni attive, ed intervallo

d'llavoro: sistemi concessi accesso alle varie applicazioni (Time-Sharing).

Dice a tutti i programmi chi è disponibile di una CPU.

Elaborazione seriale

Esecuzione di uno singolo programma per volta. (Anni 40-50)

Output perforazione schede (Univac).

Sperco di tempo: latenza hardware perché non funziona relativamente

più con piccoli mancanzi di tempo in quando risorse ed

hardware non utilizzati. Memoria cancella in ritorbo hardware

Sistemi operativi Batch

Salvavano Sistema ⇢ Seguevano applicativo ⇢

⇣⇡ monitor

RAM divisa in monitor e applicativi opertivi. Il monitor stesso

gestisce l'esecuzione dei programmi ed isera chiamata al diversa

internazione automata con dispositivo hardware. Problemi:

fondamentali, e Programma ⇢ Interasata con Identistici.

Sistemi Operativi

Buffering (Concetto)

Utilizzo più memoria di quella che abbiamo a disposizione. Vado a sfruttare delle locazioni di memoria. Si crea uno "spacchettamento" in quanto sfrutto il dato che già possiedo a partire da un indirizzo, ma non abbiamo informazioni riguardo al limite di scrittura.

Sia il momento deprecato per questi motivi:

  • Buffer interno - Numero di byte trovati tra l'input e il tipo di dato che si "spezza".

Sistemi operativi (Scanf - Printf)

Schema Buffered I/O - Esistono vari sistemi per immagazzinare parametri che verranno poi posti. Buffer della libreria memorizza temporaneamente dentro la struttura libreria.

Temporaneamente quanto? GCC: Linux fino a quando non essermi immerso. Un altro parametro

  • Scanf - "accettare qualsiasi %X" -> L'input deve essere della forma "accettare qualsiasi "
  • \n quando penso finito

fflush() - Servizio per gestire input ed output della libreria standard.

fflush(stdout) - Svuota l'output_buffer ed invia il suo contenuto al sistema operativo.

fflush(stdin) - Comportamento inimplementato (quanti input voglio eliminare?)

Viscere modifica vide elementi a ordine prima dell'input

#define - Direttiva al pre-compilazione (stringa:argomento -> denominazione) quando trova la stringa:argomento, sostituisce con la denominazione.

COULS compilazione

printf() - Valore return - numero di bytes scritti al termine dell'output beneficioso (1 byte carattere)

Uso alla funzione dei pattern (stringa, costanti)

Strutture - Costrutto che permette di accaponare minimi area di memoria inesorri a struttura eterogenea (formati diversi):

  • Nome variabile, p.a
  • Puntatore - p.p.a

(*p[i]) - Salto una struttura L puntatore ad una struttura

System Call

Funzione standard con parametri: puntatore o non puntatore

  • Parametri gestiti preamble (es) concatenate (registro processo)
  • Instruzioni al Sistema operativo per accedere alla locazione di memoria (Functorial - legge e ste)

Chiamata tramite syscall lecita a software esterno

Valore return syscall

Possaggi tramite syscall

  • Hardware commun ferita CPU modalità kernel, accenna ad arriver in memoria prima inaccessibile
  • Algoritmi (Stato dei registri da ripristinare)
  • Informazioni: Scheduling, Time Sharing
  • Eventi attesa (In caso di Wait)
  • Running Queue: è la lista PCB applicazioni attualmente in esecuzione.
  • In generale la lista PCB processi non verrà detta Job. A due processi: e scheduling. Viene bloccata diversa in particolare, in quanto le motivazioni dei vari possono essere differenti.
  • Dimensione è limitata aiuta a diminuire la complessità computazionale, in quanto posso gestire applicazioni in un singolo dato, piuttosto che guardarle tutte.
  • Pianificazioni RAM e pianificazioni CPU.
  • Cambio-modo: da User mode a Kernel mode per una di un interrupt. Stessa applicazione in esecuzione, cambia la modalità di esecuzione. Siamo sempre nel contesto della stessa app.
  • Cambio contesto: cambia il contesto dell’applicazione in esecuzione, dunque viene salvato l’attuale modo di esecuzione e viene ripassato quello di un nuova applicazione. È totalmente diversa.
  • Kernel Daemons: Applicazioni che risuonano solamente in kernel mode.
  • Diagramma stati: Linux (5 Slide).
  • Contesto utente - > User, Dati, Stack Utente, Memoria condivisa.
  • Contesto registri ->
  • Contesto sistema->

Startup Unix

  • Kernel caricato in memoria.
  • Al riavvio processo init (‘ pid = 0’), che lancia l’esecuzione del processo ‘ simplda systemd’ (‘ pid=1’).
  • Init legge alcuni file di configurazione nel numero di terminali da gestire. Su ogni terminale lancia a ‘getty’ che si impossessa delle attività di IO del terminale.
  • Getty lancia login e credenziali controllo, e partiti a ‘shell’ (es. Bash) o Ambiente grafico oggi.
  • Sysnetcall fork unica un esegue per creare un nuovo processo. Nuovo processo è un clone del padre, quindi teso contenendo di memoria. Entrambi i processi riposano dall’istruzione successione alla trap.

Sistemi Operativi

  • Rappresentazione stringhe in Windows: (2 byte carattere a livello Kernel = TCHAR).
    • ASCII
    • Unicode = Minima condizione più ampio.
  • TCHAR o Wchar in base a come è impostato l'ambiente di compilazione

Wchar_t onechar = L'X' = 2 byte carattere.

Mono Text - Rappresentazione dipende sempre dall'ambiente di compilazione

  • Tchar_message (_T-text("Ciao a tutti"))
  • Getenv (stringa) - > non conoscendo la rappresentazione, per questa funzione (API)
  • Wprintf - > funzione che accetta stringhe codificate in Unicode. (Sempre L prima)
  • Wcslen - > Uguale come sopra.
  • TerminateProcess - > Terminazione processo con un codice di terminazione definito

Win32-console application - > Tipo di progetto. Starta attivano la console. Finestra eventi.

Variabili Ambiente - > Tutto sulle slide.

  • Visible su Windows a partire da un indirizzo di memoria, consecutiva segnata da 0. Il termine è segnato con \0\0.

Threads

  • Store Address Space
    • Più tracce di esecuzione allo stesso tempo (sessione testo) - > multi-thread.
    • Problema sincronizzazione - > singoli thread per l'accesso alla memoria.
    • Solamente un thread maggiore, chiama un servizio bloccante, ma le altre tracce continuano a lavorare. - > Ottimo anche su single core.
    • Due aree di stack separate per i loro thread, dunque anche due stack a livello di sistema.
    • PCB sempre presente per volto al processo, ma anche TCB per ogni singolo thread.

Applicazione senza concorrenti. (Multi-Thread).

  • Poca lavoro può essere lanciato su thread piuttosto che un processo.
  • Thread con t x: - > Esiste una variabile per ogni thread
  • Address space comunque disponibile a tutti i thread, dunque posso accedere alle variabili di altri thread tramite puntatori.
  • Problema sincronizzazione!

Thread Windows - > Sempre entità, dunque oggetto

Dettagli
Publisher
A.A. 2017-2018
37 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher TheGeekBay di informazioni apprese con la frequenza delle lezioni di Sistemi operativi 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 Roma Tor Vergata o del prof Quaglia Francesco.