predmet: ZCU FAV KIV OS cas: 6.2.2003 - 10:00 az 12:00 zk.: Safarik 1) nakreslete do kolecek procesy a carou plnou rodic, carkovanou potomek, teckovanou starsi sourozenec, cerchovanou mladsi. /* rodic */ odp.: O nevim ... |\ fork(); ____ ????tady forknou oba? O O fork(); | ... O 2) soubor "soub" obsahuje: abcd, jaky mohou byt hodnoty promenne c v 1.procesu, vypiste vsechny moznosti. /* proces 1 */ main() { char c; fd = open("soub", O_RDONLY); read (fd, &c, 1); read (fd, &c, 1); } /* proces 2 */ main() { char c; c = 'x'; fd = open("soub", O_WRONLY); write (fd, &c, 1); write (fd, &c, 1); } odp.: po1.read po2.read c== a b x b x x a x 3) 2 prostredky, 2 semafory struct sembuf { unsigned short sem_num; short sem_op; short sem_flg; }; sembuf psem[2], vsem[2]; semid = semget(SEMKEY,2,IPC_CREAT | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); init[0] = init[1] = 1; semctl(semid,2,SETALL,init); - pro pozadavek semop s parametrem ... a) napiste kod pro pozadavek a uvolneni b) muze v tomto reseni dojit k uvaznuti a proc? viz prednasku c. 10 4) main () { fd1 = open ("/adr/soub", O_RDONLY); if (fork()==0) { fd2 = open ("/adr/soub", O_RDONLY); fd3 = dup (fd1); } } - nakreslete tabulku deskriptoru a dalsi prislusne objekty z VFS, ukazatele mezi objekty naznacte sipkou tip: musite nakreslit tabulky pro kazdy proces zvlast, potomek od rodice zdedi fd1 5) linux: tri procesy tridy SCHED_OTHER A,B,C. kazdy ma 200ms casove kvantum, epochy, Cecko je na nekolik sekund pozastaveno. a) napiste hodnoty promenne count v deskriptoru kazdeho procesu v okamzicich 0ms, 200ms, 400ms, 600ms, 800ms relativne od zacatku b) jak moc az muze stoupat count procesu C, kdyz bude spat neomezene dlouho? tip: u Cecka stoupa count az po 2. 200msovem-cyklu a to o polovinu 6) v souborovem systemu Ext2 je velikost bloku 2KB. a) urcete maximalni velikost souboru, jenz pouziva nejvice dvojnasobne bla bla b) mejme soubor s jedinym znakem na pozici 5020, co bude obsahovat i-size, i-blocks a prvni ctyri prvky pole i-block prislusneho i-uzlu? tip: i-size == 5020 (nebo 5021?) i-blocks == 1 i-block[0] == 0 1 == 0 ??? nevim :-)