ESEMPIO DI ESERCIZIO:
/*
la seguente pipeline inserita da riga di comando ls -IF | wc
-c
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main(int argc, char argv[]){
int fd[2];
pid_t pid;
if((pipe(fd)) == -1){
perror("error pipe");
exit(-2);
}
if((pid = fork())==-1){
perror("error fork");
exit(-1);
}
if(pid == 0){
close(fd[0]);
dup2(fd[1],1);
close(fd[1]);
execlp("ls", "ls", "-IF", NULL);
perror("error ls");
exit(-3);
}else{
close(fd[1]);
dup2(fd[0],0);
close(fd[0]);
execlp("wc", "wc", "-c", NULL);
perror("error wc");
exit(-4);
}
return 0;
}
-Pipe con nome
-Thread livello utente e livello Kernel
- Obiettivo della gerarchia di memoria
-Scheduling round robin e LCN
-Condition code
-Anomalia di Belady
*Causa l’anomalia perché non gode della proprietà dello
stack ^^
- Più facile implementare 1-M o M-1 ?
-Sistema Solaris
-Raking delle risorse
-Condizioni che utilizza pthread ?
pthread (thread POSIX), si utilizzano diverse condizioni per
sincronizzare l'esecuzione dei thread e coordinare l'accesso
alle risorse condivise. Le principali condizioni utilizzate sono
le variabili di condizione (pthread_cond_t) e i mutex
(pthread_mutex_t).
-Tipo di collegamento tra processi quindi socket e spiegata
per le varie system call
-Funzioni rientranti e non rientranti ?
-Protocollo tcp
-Protocollo UDP
-VFORK
-Exec
-Handshake tra client e server
-Come i processi scambiano messaggi ?
-Funzione Open
-Differenza tra Printf e Write ?
-Tipi di file
-Come posso leggere e scrivere ?
Utilizzando read e write
-Come posso chiudere file ?
- Lseek e i suoi parametri ?
-Allocazione statica e dinamica dei mutex, variabili di
condizioni e semafori ?
-PCB e i suoi campi
-Set user id e Set group id
-Hard link e Soft link
- DUP2
-Kernel e MicroKernel
- O_execl nella open
- Cosa sono i privilegi e come si danno ?
I privilegi sono autorizzazioni speciali che consentono a un
utente di eseguire determinate azioni all'interno di un
sistema. Possono essere concessi su vari livelli, ad esempio
a livello di sistema operativo, applicazioni software,
database e reti. I privilegi sono essenziali per la sicurezza e
la gestione delle risorse, poiché limitano l'accesso e le
azioni a utenti specifici, riducendo così il rischio di abuso o
danno.
- Come ricavare pid del figlio e del padre ?
-Differenza tra signal e sigaction ?
-Parlami della fifo , come viene creata e s’è half o full
duplex
-Gestire problemi del Signal Handler ?
-Chi pone la CPU i modalità Kernel ? (funzione trap)
-Come viene invocata la system call e cos’è ?
-Come verificare se un processo esiste ? (Kill con 0 come
signo)
-Processo zombie, e se il processo padre termina cosa
succede ?
-Set User id e quando viene impostato a 1 ?
Il bit setuid, in un sistema operativo Unix o Unix-like, è un
meccanismo che permette a un file eseguibile di essere
eseguito con i privilegi dell'utente proprietario del file,
piuttosto che con i privilegi dell'utente che lo esegue.
Quando il bit setuid è impostato a 1, un utente normale può
temporaneamente ottenere i privilegi del proprietario del
file durante l'esecuzione del programma. Questa
funzionalità è usata per fornire accesso controllato a
operazioni privilegiate, come ad esempio modificare la
propria password tramite il comando passwd. Tuttavia,
richiede attenzione dal punto di vista della sicurezza,
perché se un eseguibile con setuid ha delle vulnerabilità,
può essere sfruttato per elevare i privilegi.
- Hoare, Brich Hansen, Mesa ?
Dopo una cond_signal è necessario avere solo un processo
attivo nel monitor, e quale processo viene risvegliato
dipende dalla regola utilizzata:
- Hoare: viene eseguito il processo appena risvegliato,
sospendendo quello che ha invocato la cond_signal;
- Brich Hansen: il processo che invoca cond_signal debe
uscire immediatamente, ovvero cond_signal può apparire
solo come istruzione finale di una procedura del monitor;
- Mesa: il processo che invoca cond_signal continua, e
l’altro processo viene risvegliato solo dopo che quello che
ha invoca la cond_signal è uscito dal monitor.
- Waitpid ?
- Ordinamento dei Byte (riguarda le socket, little endian,
big endian) ?
- Socket (in modo approfondito)?
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Sistemi operativi - domande esame
-
Domande Sistemi operativi
-
Alcune domande d'esame di Sistemi operativi
-
Domande di Teoria di Sistemi Operativi