Message Passing

ora abbiamo alcune primitive per passarci i messaggi, vogliamo creare metodo in modo che i processi si possano sincronizzare mandando messaggi. la memoria è sempre privata . Primitive # Send e receive # Send Spedizione del messaggio input deve avere un identificato al processo…

August 28, 2024 · Reading Time: 1 minutes · By Xuanqiang Angelo Huang

Monitor

Questo è un modo di più alto livello per creare programmazione concorrente. Introduzione ai monitor # Questo costrutto per la programmazione concorrente, prende molto dalla programmazione agli oggetti, abbiamo delle variabili presenti al monitor, private solamente accessibili ad…

August 28, 2024 · Reading Time: 2 minutes · By Xuanqiang Angelo Huang

Note sull'architettura

Interrupt # Descrizione iniziale # Di interrupt e trap se n’è parlato un pò in Livello ISA di architettura, ora andiamo ad approfondire come viene gestito a livello SO. Un interrupt è un segnale che viene mandato o da un dispositivo hardware (di solito dopo la fine di un…

August 28, 2024 · Reading Time: 8 minutes · By Xuanqiang Angelo Huang

Paginazione e segmentazione

Memoria sistema Operativo # Guardare Memoria virtuale Per vedere come vengono rimpiazzate le pagine In quest sezione andiamo a parlare di come fanno molti processi a venire eseguiti insieme, anche se lo spazio di memoria fisico è lo stesso. Andiamo quindi a parlare di spazio di…

August 28, 2024 · Reading Time: 8 minutes · By Xuanqiang Angelo Huang

Processi e thread

Il processo e la gestione dell'esecuzione è uno dei compiti principali dei sistemi operativi. Lo vuole fare in maniera efficace ed efficiente, come descritto in Note sull'architettura . Slide schema generale tabelle Processi # Il process control block è la struttura di dati…

August 28, 2024 · Reading Time: 5 minutes · By Xuanqiang Angelo Huang

Programmi Concorrenti

Vorremmo cercare di stabilire una teoria riguardante programmi che vengono eseguiti appunto concorrentemente, senza una esecuzione classica uno dpo l’altro Esempio mini-programma rallentamento #include <stdio.h> #include <pthread.h> void test(void *s) { for (int i = 0;…

August 28, 2024 · Reading Time: 5 minutes · By Xuanqiang Angelo Huang

Scheduler

Il suo scopo principale è gestire l'avvicendamento dei processi. Ad esempio sospendere il processo che chiede I/O. O un sistema time sharing, quando arriva un interrupt sul time. Solitamente il nome scheduler è solamente un gestore dell'avvicendamento, si può quindi utilizzare…

August 28, 2024 · Reading Time: 7 minutes · By Xuanqiang Angelo Huang

Object Orientation

Il Tipo di Dato Astratto # Introduzione # Per questi tipi di dato non ci interessa di sapere cosa ci sia sotto (storato come bit? storato come sabbia boh), ci interessa solamente che abbia quei metodi, che possiamo in un certo senso identificare come la sua capsula, opaca in…

Polimorfismo

Introduzione # Tipi Monomorfici # Quando non posso utilizzare un tipo come parametro. Ossia non possiamo definire una funzione generica. Polimorfismo # Polimorfismo, come dice il nome, significa avere tante forme, in questo caso tanti tipi. Ma avere tanti tipi non è una cosa…

Consensus protocols

Introduzione # Vogliamo tenere in modo sincronizzato alcune macchine, questo è il nostro obiettivo. Questo è un problema abbastanza difficile… Come tenere in sync se ci sono alcuni nodi maligni o la rete che non è bona? Assunzioni principali (2) # Esiste internet Esiste…