KIV/OS - Operační systémy
Z FAV wiki
Operační systémy
Soubory Soubory2 - zcu.arcao.com
[editovat] 2012/2013
[editovat] Zadání 4. ledna
- Nakreslit procesy v koleckach, vztahy mezi nimy (rodic, potomek, mladsi sourozenec, starsi sourozenec)
/* U */
if (fork == 0) {
/* V */
if (fork == 0) {
/* X */
}
}
if (fork == 0) {
/* Y */
}
- Uvedte 3 mozne pripady, kdy muze byt zachycen signal.
int s;
main() {
...
signal(SIGINT, sig_obsluha)
...
while (s == 0) pause();
}
sig_obsluha() {
signal(SIGINT, sig_obsluha);
s = 1;
}
- Vypoctete priority procesu A, B, C, D v 1., 2., 3., 4. a 5. vterine. Pocatecni priorita 60, hodiny prerusuji 100x za s, poklesCPU = CPU/2, priorita = poklesCPU/2 + zakladni priorita
- Nakreslit tabulku deskriptoru a odpovidajici objekty VFS
int fd1, fd2, fd3;
fd1 = open("/d/f", O_RDONLY);
fd2 = open("/d/f", O_RDONLY);
if (fork == 0) {
fd3 = dup(fd2);
}
- Jake hodnoty budou v buf procesu A pri paralelnim behu s procesem B. Uvedte vsechny moznosti.
/* proces A */
main() {
int fd;
char buf[128];
fd = open("soubor", O_RDONLY);
read(fd, buf, sizeof(buf));
read(fd, buf, sizeof(buf));
}
/* proces B */
main() {
int fd, i;
char buf[128];
for (i = 0; i < sizeof(buf), i++) {
buf[i] = 'a'
}
fd = open("soubor, O_WRONLY");
write(fd, buf, sizeof(buf));
write(fd, buf, sizeof(buf));
}
Soubor obsahuje 128x u, 128x v
- Adresar obsahuje adresar ad1, soubor maxsoubor, adresar uziv1. Nakreslete obsah adresare v Ext2. Jaky je maximalni pocet polozek adresare a maximalni delka jmena? Nakreslete obsah adresare po smazani souboru maxsoubor.