User Tools

Site Tools


os:lab11
Return to Home page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
os:lab11 [2019/05/25 00:01]
zioskenz created
os:lab11 [2020/01/16 09:13]
zioskenz [Exercise 03]
Line 2: Line 2:
 ---- ----
 ====== Operating Systems Course: Lab11 ====== ====== Operating Systems Course: Lab11 ======
-===== Laboratory number 11 =====+===== Laboratory number 11 (pseudo-exam test) =====
  
  
-Esercitazione di laboratorio numero 11 +==== Exercise ​01 ==== 
-(pseudo prova d'​esame) +Implements with the semaphore primitives the prologue and the epilogue of functions ​A, B, C, and D, so that the processes that call them respect the following //path expression//
--------------------------------------- +<code txt>
- +
-Esercizio ​01 +
------------- +
- +
-Implementare con le primitive semaforiche il prologo +
-e l'​epilogo di funzioni ​A, B, C in modo che i +
-processi che le chiamano rispettino la seguente ​path +
-expression:​ +
 path ( A+B; {C}; D ) end path ( A+B; {C}; D ) end
 +</​code>​
 +The meaning of this path expression is that the set of processes can:
 +  * call function A **or** function B in //mutual exclusion// (i.e., a process waits if the function is used by another process)
 +  * then, it can call function C (that can be executed concurrently by all the processes)
 +  * finally, it can call function D.
  
-Il significato di questa path expression e' che un insieme +If, for instance, the first of all the functions called is function D, the process that called it, it is blocked until other processes have called ​or B, and then C.
-di processi puo' +
-* chiamare la funzione ​*oppure* la funzione ​in mutua +
-  esclusione (quindi un processo attende se la funzione e' +
-  utilizzata da un altro processo) +
-* poi puo' chiamare la funzione ​(che puo' essere eseguita +
-  in concorrenza da tutti i processi) +
-* infine puo' chiamare la funzione D.+
  
-Se ad esempio la prima tra tutte le funzioni chiamate e' la +The //path expression//​ is cyclici.e., when function ​is executedit can be performed againwithout waitingfunctions ​or B etc.
-funzione Dil processo che l'ha chiamata sara' bloccato finche'​ +
-altri processi non avranno chiamato A oppure B poi C. +
-La path expression e' ciclicacioe' quando e' stata eseguita +
-la funzione ​D, possono di nuovo essere eseguitesenza attesa, +
-le funzioni ​oppure ​B etc. +
  
-Suggerimento +**Suggestion**\\ 
-------------+Refer to the solution of Readers & Writers.
  
-Fare riferimento alla soluzione dei Readers & Writers, 
-della mutua esclusione e della sincronizzazione pura 
-inizializzando opportunamente i semafori. 
  
 +==== Exercise 02 ====
 +Illustrate the characteristics,​ differences and typical use of the system calls ''​fork'',​ ''​execve'',​ and ''​system''​.
  
  
-Esercizio 02 +==== Exercise 03 ==== 
-------------+Realize a bash script that receives two parameters:​ 
 +  * the name of a user of the system 
 +  * the name of a directory. 
 +The script must recognize all the files of the specified user that are in the directory and its subdirectories,​ and that contain (at least) a row that begins with the string "***Da modificare"​.
  
-Illustrare le caratteristiche,​ le differenze e l'uso tipico +In those files you need to: 
-delle system call fork, execve e system.+  * delete this row 
 +  * append to the name of the file the string "''​_mod''"​.
  
 +Check the correct passage of the parameters.
  
  
-Esercizio 03 +==== Exercise 04 ==== 
-------------+Write a multi-thread program that sorts a vector of integer numbers using the algorithm merge-sort and using concurrency instead of recursion.
  
-Realizzare uno script bash che riceva due parametri+Each thread, starting from the initial one must
-il nome di un utente del sistema +  receive a vector to sort of dimension ''​n''​ 
-il nome di un direttorio. +  subdivide the vector in two parts of dimension ''​n/​2'​
-Lo script deve riconoscere tutti i file dell'utente specificato +  activate a thread on each part of the vector 
-che si trovano nel direttorio indicato e che contengono (almeno) +  wait for the termination of both threads 
-una riga che comincia con la stringa +  merge the two received parts of dimension ''​n/​2''​ and already sorted, by performing a merge, and generating a single sorted vector of dimension ''​n''​.
-"***Da modificare"​ +
-In tali file occorre: +
-cancellare tale riga +
-appendere al nome del file stesso la stringa "​_mod"​.+
  
-Si controlli il corretto passaggio dei parametri.+Note that the termination condition occurs when a thread receives a vector of dimension ''​n=1''​.
  
 +The vector and its dimension can be read from the keyboard, from a file, or generated randomly.
  
  
-Esercizio 04 +==== Exercise ​05 ==== 
------------- +Given the following processeswith the relative arrival times and their duration
- +<code txt>
-Si scriva un programma multi-thread che ordini un vettore di interi +
-tramite l'​algoritmo di merge-sort utilizzando la concorrenza invece +
-della ricorsione. +
- +
-Ciascun thread a partire da quello iniziale, deve: +
-- ricevere un vettore da ordinare di dimensione n +
-- suddividere il vettore in due parti di dimensione n/2 +
-- attivare un thread su ciascuna parte del vettore +
-- attendere la terminazione dei due thread +
-- fondere le due parti ricevute di dimensione n/2 e gia' ordinate +
-  mediante l'​algoritmo di fusione (merge), generando un unico +
-  vettore ordinato di dimensione n. +
- +
-Si osservi che la condizione di terminazione si verifica alla +
-ricezione di un vettore di dimensione unitaria. +
- +
-Il vettore e la sua dimensione possono essere letti da tastiera, +
-da file, ovvero generati casualmente a scelta. +
- +
-   +
- +
-Esercizio ​05 +
------------- +
- +
-Siano dati i seguenti processicon il relativo tempo di arrivo +
-e la relativa durata+
 P1 0 11 P1 0 11
 P2 2  9 P2 2  9
Line 105: Line 63:
 P4 6  5 P4 6  5
 P5 8  3 P5 8  3
- +</​code>​ 
-Si rappresentino i diagrammi di Gantt e si calcolino i tempi medi +Report the Gantt charts and calculate the average waiting times for the algorithms ​FCFS, SJF and SRTF.
-di attesa applicando gli algoritmi ​FCFS, SJF SRTF. +
- +
- +
- +
-Esercizio 06 +
------------- +
- +
-Con riferimento alla prevenzione del deadlock mediante l'​uso +
-gerarchico delle risorse, si descrivano la tecnica e si dimostri +
-che non puo' condurre al deadlock. +
- +
- +
- +
  
  
 +==== Exercise 06 ====
 +With reference to deadlock prevention through the hierarchical use of resources, describe the technique and demonstrate that it cannot lead to deadlock.

If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it

You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/os/lab11?do=diff&rev2%5B0%5D=1558735304&rev2%5B1%5D=1579162392&difftype=sidebyside
/web/htdocs/www.skenz.it/home/data/pages/os/lab11.txt · Last modified: 2020/01/16 09:13 by zioskenz

Privacy Policy