[pso] simulare examen
Octavian Purdila
tavi at cs.pub.ro
Mon Jun 16 02:38:47 EEST 2008
On Monday 16 June 2008, Marius Ion wrote:
> Pentru ceilalti care nu am fost la simulare, se pot posta subiectele pe
> undeva ?
>
1. Explicati de ce un kernel preemptiv are latenta mai mica decat un kernel
nepreemptiv.
2. Fie urmatoarele functii ce ruleaza in kernel:
static int char *a, b;
static inline void* f(void)
{
return memcpy(a, &b, 1);
}
static inline int g(void)
{
if (copy_to_user(a, &b, 1))
return -EFAULT;
return 0;
}
Ce valoarea o sa intoarca cele doua functii?
3. Care din urmatoarele afirmatii sunt adevarate:
a) dupa un fork, procesul copil si parinte partajeaza fiserele
b) doua thread-uri partajeaza fiserele
c) dupa un fork, procesul copil si parinte partajeaza tabela de fisere
d) doua thread-uri partajeaza tabela de fisiere
4. Explicati cum o implementare naiva a subsistemului de softirq/DPC poate
duce la starvation.
5. Se executa in paralel a) cu )a, respectiv b) cu b) pe un sistem SMP. Care
din secventele a), respectiv b) se executa mai rapid? De ce?
static atomic_t sum;
void do_sum(void)
{
for(i=0; i<10000000; i++)
atomic_add(&sum, i);
}
void do_sum(void)
{
int _sum=0;
for(i=0; i<10000000; i++)
_sum+=i;
atomic_set(&sum, _sum);
}
6. Fie un device driver care ofera utilizatorului posibilitatea de a citi date
din memoria fizica, prin deschiderea device-ului asociat, pozitionarea cu
lseek la offsetul din memoria fizica la care se doreste sa se faca citirea,
si citirea datelor cu operatia read apoi. In ce conditii au operatiile de mai
jos performante semnificativ diferite?
a) lseek(fd, 1024*1024, SEEK_SET); read(fd, buffer, 1024*1024);
b) lseek(fd, 1024*1024*1024, SEEK_SET); read(fd, buffer, 1024*1024);
7. Daca pentru urmatoarea structura:
struct {
atomic_t ref_count;
list_head list;
} my_struct;
folosim un cache SLAB pentru alocarea de memorie, cum se poate optimiza
urmatoarea secventa de cod?
struct my_struct *sm=kmem_cache_alloc();
if (!sm)
return NULL;
atomic_set(sm->ref_count,0);
INIT_LIST_HEAD(&sm->list);
8. Pe sistemul de fisiere PITIX, cum se modifica structura pe disc pentru
urmatoare comanda bash: echo “ceva” > /mnt/pitix/a ? Sistemul de fisiere de
tip PITIX se afla montat in /mnt/pitix.
9. Care este numarul de pasi minimi necesari pentru rutarea unui pachet, daca
stiva de retea nu foloseste un cache de rute? Justificati.
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
More information about the pso
mailing list