ОС1/Септембар 2012

Извор: SI Wiki
< ОС1
Датум измене: 3. октобар 2021. у 15:56; аутор: IvnSvc (разговор | доприноси) (→‎Rešenje: Base  и Limit за контекст континуалне алокације)
Пређи на навигацију Пређи на претрагу

Задаци на страници предмета.

1. задатак

Поставка

Код каквих система се најпре појављује тиме схаринг и са каквим мотивом?

Решење

Тиме схаринг се најпре појављује код интерактивних вишекорисничких система. Мотив је да се постигне равномернији одзив на акције више корисника него без тиме схаринг-а.

2. задатак

Поставка

Коришћењем функција setjmp и longjmp из стандардне C библиотеке реализовати операцију wait на бинарном семафору у школском језгру

Решење

Видети задатак из јулског рока 2012.

3. задатак

Поставка

Коришћењем системских позива fork() и execlp() написати програм П који покреће процес над програмом у фајлу чији је назив задат као аргумент извршавања програма П.

Решење

int main(int argc, char* argv[]) {
	if(argc < 2) return -1;
	pid_t pid = fork();
	if(pid < 0) return -2;
	if(pid == 0) {
		execlp(argv[1]);
		return -3;
	}
	else wait(0);
	return 0;
}

4. задатак

Поставка

Процес П треба да сачека да сва три процеса X, Y и З испуне неки свој услов, у било ком редоследу. Написати део кода процеса П и било ког од друга три процеса, уз потребне декларације, који обезбеђују ову условну синхронизацију помоћу једног стандардног бројачког семафора.

Решење

Видети задатак из фебруарског рока 2012.

5. задатак

Поставка

Која два податка чине меморијски контекст процеса код континуалне алокације меморије за процес са динамичким пресликавањем адреса?

Решење

СегментБасе понтер - говори која је почетна адреса од које се пресликава меморија
лимит Поинтер - садржи или величину сегмента или последњу адресу у њему, зависно од имплементације хардвера

6. задатак

Поставка

Виртуелни адресни простор система је 8ГБ, адресибилна јединица је 16-битна реч, а виртуелни адресни простор је организован странично са страницом величине 32КБ. Физички адресни простор је величине 2ГБ. Табеле пресликавања страница су организоване у два нивоа, с тим да табела другог нивоа има 1К улаза. Ако дескриптори у ПМТ и првог и другог нивоа садрже само број оквира у који се страница пресликава и ништа више (посебна вредност означава да пресликавање није могуће), колико бајтова заузима једна ПМТ првог, а колико другог нивоа?

Решење

Овај задатак није решен. Помозите СИ Wики тако што ћете га решити.

7. задатак

Поставка

Заокружити слово испред оне или оних података који нису неопходни у дескриптору странице у ПМТ који користи хардвер за пресликавање адреса код виртуелне меморије:

  1. Информација да пресликавање није могуће извршити
  2. Адреса блока на диску у коме се налази страница
  3. Информација да је страница дељена са другим процесом техником цопy-он-wрите
  4. Информација да је страница забрањена за избацивање јер се користи као I/О бафер
  5. Да ли је дозвољен упис у страницу
  6. Број оквира у који се страница пресликава.

Решење

Овај задатак није решен. Помозите СИ Wики тако што ћете га решити.

8. задатак

Поставка

На асемблеру неког замишљеног РИСЦ процесора са ЛОАД/СТОРЕ архитектуром написати програм који преноси блок података задате дужине на задату адресу са улазног уређаја коришћењем програмираног улаза/излаза са прозивањем (поллинг).

Решење

main:	LD R1, blockAddr
		LD R2, cnt
		ST [ctrl], #0..1
wait:	LD R0, [status]
		AND R0, #1..0
		JZ wait
		LD R0, [data]
		INC R1
		DEC R2
		JNZ wait
		ST [ctrl], #0

9. задатак

Поставка

У фајл подсистему неког оперативног система не води се табела отворених фајлова за сваки процес, већ постоји само једна глобална табела отворених фајлова за цео систем. Другим речима, не постоји никаква информација о употреби отвореног фајла локална (приватна) за појединачни процес, већ су све такве информације глобално дељене. Како треба да изгледа АПИ функција за читање блока података дужине len из неког фајла, да би се процесу обезбедила могућност секвенцијалног читања свих података из фајла?

Решење

IOStatus readFile(FHANDLE fh, void* buffer, long len, long offset);

10. задатак

Поставка

Посматра се диск капацитета 80МБ и блоком величине 1КБ. Ако се за евиденцију слободног простора користи бит-вектор са максималном компакцијом (свих 8 бита у бајту су искоришћени итд.), колико целих блокова треба заузети на диску за смештање овог вектора?

Решење

80МБ / 1КБ = 80К блокова

80К / 8б/Б = 10КБ