ОС1/Јун 2016
1. задатак
Поставка
Шта се сматрало највећим недостатком првобитних пакетних (батцх) система и како је тај недостатак решен?
Решење
Првобитни батцх системи су ефикасно делили ресурсе али нису интерактивни. Основни недостатак био је слабо искоришћење главног ресурса рачунара - процесора. Недостатак је решен увођењем дељења времена.
2. задатак
Поставка
Коришћењем функције yиелд(јмп_буф олд, јмп_буф неw)
која чува контекст једне нити и предаје процесор другој нити, реализовати операцију wait
на бројачком семафору у школском језгру.
Решење
Видети задатак из октобарског рока 2013.
3. задатак
Поставка
За следеће случајеве навести у које стање прелази текући (руннинг) процес и назначити да ли се то дешава као последица системског позива од стране тог текућег процеса или спољашњег прекида.
Решење
Случај | Текући процес прелази у стање | Узрок (прекид или системски позив) |
---|---|---|
Истек временског квантума код тиме-схаринг система | реадy | прекид |
Операција wait на семафору који има вредност 0
|
блоцкед | системски позив |
Дошло време активације приоритетнијег периодичног процеса | реадy | прекид |
4. задатак
Поставка
Написати код који реализује Петерсонов алгоритам међусобног искључења два упоредна процеса помоћу упосленог чекања.
Решење
shared var turn : integer := 1, flag1, flag2 : boolean := false;
process P1
begin
loop
flag1 := true; turn := 2;
while flag2 and turn = 2 do null;
<critical section>
flag1 := false;
<non-critical section>
end
end P1;
process P2
begin
loop
flag2 := true; turn := 1;
while flag1 and turn = 1 do null;
<critical section>
flag2 := false;
<non-critical section>
end
end P2;
5. задатак
Поставка
Прецизно објаснити зашто класичан линкер свој посао обавља у два пролаза (а не може само у једном). Образложење илустровати примером.
Решење
Видети решење 5. задатка из јула 2017. године.
6. задатак
Поставка
Виртуелни адресни простор система је 8ГБ, адресибилна јединица је 16-битна реч, а виртуелни адресни простор је организован странично са страницом величине 32КБ. Физички адресни простор је величине 2ГБ. Табеле пресликавања страница су организоване у два нивоа, с тим да табела првог нивоа има 2К улаза. Сваки улаз у ПМТ оба нивоа заузима само онолико колико је потребно да се смести број оквира (ПМТ другог нивоа је поравната на оквир). Колико меморије заузимају укупно ПМТ процеса који је алоцирао својих првих 128 страница?
Решење
- Виртуелни адресни простор је , а адресибилна јединица два бајта, тако да добијамо да је виртуелна адреса 32 бита.
- Величина странице је , тако да је за страницу у виртуелној адреси потребно одвојити 14 бита.
- Физички адресни простор је , тако да је физичка адреса 30 битова.
- ПМТ првог нивоа има улаза, тако да је то 11 бита адресе потребно за ПМТ првог нивоа.
- Из тога добијамо да је структура ВА: паге1(11) паге2(7) оффсет(14)
- За 128 страница потребан је један ПМТ првог нивоа и један другог, тако да је то укупно
7. задатак
Поставка
Неки систем са страничном организацијом меморије користи технику цопy он wрите. Један процес је тек креирао други процес позивом fork()
. Ако новокреирани процес одмах по покретању изврши операцију уписа у меморију, који изузетак ће генерисати процесор, паге фаулт или неки други и који? Прецизно објаснити зашто и како.
Решење
Процесор ће генерисати изузетак аццесс виолатион, јер је у десктриптору ове странице означено да она није дозвољена за упис због тек креираног процеса детета.
8. задатак
Поставка
На асемблеру неког замишљеног РИСЦ процесора са ЛОАД/СТОРЕ архитектуром написати програм који преноси блок података задате дужине са задате адресе на излазни уређај коришћењем програмираног улаза/излаза са прозивањем (поллинг).
Решење
LD R1, blockAddr
LD R2, cnt
ST [ctrl], #0..1
wait: LD R0, [status]
AND R0, #1..0
JZ wait
LD R0, [R1]
ST [data], R0
INC R1
DEC R2
JNZ wait
ST [ctrl], R0
9. задатак
Поставка
Ако фајл систем користи две врсте кључева, дељени (схаред) и ексклузивни (еxцлусиве), са имплицитним закључавањем приликом отварања фајла, који кључ ће бити захтеван од стране процеса који отвара фајл са најавом само операције читања?
Решење
Дељени (схаред) кључ.
10. задатак
Поставка
Неки систем евидентира слободне блокове фајл система тако што у један слободан блок смешта списак (индекс) до н наредних слободних блокова (најмање 0, највише н), као и број следећег таквог индексног блока. Колики је број блокова којима систем треба да приступи (на читање или упис) у најгорем случају приликом алокације једног слободног блока за садржај фајла? Број првог таквог блока у ланцу је глобални податак који се налази у меморији и његова евентуална измена се не броји.
Решење
Број блокова којима систем треба да приступи је у сваком случају 1. Када се на списку налази бар један слободан блок, он се алоцира и брише са списка. Када се на списку не налази ниједан слободан блок, блок у коме се налази списак се алоцира као слободан блок и у меморији се мења показивач са њега на следећи блок са списком.