ОС1/Јун 2022

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

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

1. задатак

Поставка

Написати командну линију којом се извршава команда цмд1, тако да она свој (стандардни) улаз узима из фајла инпут који се налази у директоријуму који је родитељски текућем, а свој (стандардни) излаз прослеђује на улаз команди цмд2. Како се зову концепти који обезбеђују наведене технике везане за улаз и излаз ових команди?

Решење

cmd1 < ../input | cmd2

Концепти у питању су преусмерење (редирекција) и цевовод (пипе).

2. задатак

Поставка

Прецизно објаснити шта садржи тзв. бсс сегмент, а шта теxт сегмент у преведеном програму? Шта оперативни систем са страничном организацијом виртуелне меморије тачно ради приликом првог приступа страници сваког од оваквих сегмената?

Решење

БСС (Блоцк Стартед бy Сyмбол) сегмент је сегмент статичке меморије који се користи за чување глобалних и статичких променљивих које немају иницијализоване вредности (тј. које су иницијализоване на 0). У овом сегменту се не чува физички податак, већ само информација о томе колико бајтова треба алоцирати за те променљиве.

Теxт сегмент је сегмент меморије који садржи преведени машински код програма.

Приликом првог приступа страници сваког од оваквих сегмената, оперативни систем са страничном организацијом виртуелне меморије ће извршити следеће кораке:

Проверава се да ли се страница која садржи сегмент већ налази у физичкој меморији или не. Ако се страница већ налази у меморији, оперативни систем зна да је сегмент већ учитан у меморију и само прослеђује референцу на њега. Ако се страница не налази у меморији, оперативни систем ће извршити странично пресликавање странице из спољног складишта (на пример, са хард диска) у физичку меморију.

Ако је неопходно, оперативни систем алоцира меморију за БСС сегмент.

Након што су сви потребни сегменти учитани, програм се може извршавати.

Укратко, оперативни систем са страничном организацијом виртуелне меморије динамички учитава сегменте програма (укључујући БСС и Теxт сегменте) у физичку меморију само када је то потребно, на захтев програма.

3. задатак

Поставка

У неком систему са страничном организацијом меморије и страничењем у два нивоа време приступа динамичкој РАМ меморији је 100 нс, време приступа ТЛБ-у је 10 нс, а ТЛБ има учестаност поготка од 90%. Колико је ефективно време приступа меморији? Извести рачун.

Решење

4. задатак

Поставка

Неки систем примењује технику копирања при упису (цопy он wрите). Један процес родитељ заузима следећу меморију: 12КБ за програмски код, 24КБ за стек, 36КБ за податке који се само читају и 40КБ за податке који се мењају. Ако овај процес покрене процес-дете системским позивом форк, колико највише оперативне меморије ова два процеса укупно заузимају? Објаснити.

Решење

Највише заузимају у случају да процес дете промени неке податке. Тада се поново алоцирају стек (24КБ) и простор за податке који се мењају (40КБ).

Рачуница:

5. задатак

Поставка

У неком програму који користи школско језгро показивач myThread указује на објекат класе изведене из класе Thread. Прецизно објаснити у чему је разлика у извршавању редефинисане операције run те класе за следећа два позива: myThread->run() и myThread->start().

Решење

Ако се позове myThread->run() (који је иначе заштићен, не би требало да може да се позове), тренутни ток контроле ће само ући у тело функције run(), односно не добија се никаква конкуретност.

У случају да се позове myThread->start(), системским позивом ће се затражити од оперативног система да започне нову нит која ће онда извршавати тело редефинисане функције run(), чиме се добија конкурентност.

6. задатак

Поставка

Шта је основни недостак ФИФО алгоритма распоређивања процеса? Прецизно објаснити.

Решење

Процеси који се веома кратко извршавају могу дуго да чекају уколико су испред њих у реду процеси који се врло дуго извршавају.

7. задатак

Поставка

На језику C++ написати код за ограничени бафер уз синхронизацију помоћу семафора у школском језгру.

Решење

Видети седми задатак задатак из јула 2011.

8. задатак

Поставка

Шта су карактеристике апстракције улазног или излазног тока (стреам)?

Решење

Апстракција улазног или излазног тока (стреам) је концепт у програмирању који омогућава да се улазни или излазни ток посматрају као апстрактни ток података, без обзира на физички уређај или механизам коришћен за улазно/излазне операције.

Карактеристике апстракције улазног или излазног тока су:

Универзалност: Апстракција тока омогућава да се исти код може користити за рад са различитим улазним/излазним уређајима, као што су тастатуре, мишеви, фајлови, мрежни соцкети и други.

Једноставност: Рад са токовима се обично врши помоћу једноставних и интуитивних функција и оператора, што чини код читљивијим и лакшим за одржавање.

Безбедност: Апстракција улазног/излазног тока омогућава програмерима да се не баве детаљима физичког уређаја, чиме се смањује ризик од грешака и повећава безбедност апликације.

Ефикасност: Операције над токовима су обично ефикасније и брже од директног приступа физичком уређају, јер се користи буфферисано и оптимизовано читање и писање података.

Флексибилност: Апстракција тока омогућава програмерима да користе различите токове за различите операције, као што су токови са различитим енкодинзима, компресовани токови, шифровани токови и други.

9. задатак

Поставка

У чему је разлика између појма меке везе (софт линк) и тврде везе (хард линк) у фајл систему? Како се имплементира мека веза?

Решење

Тврда веза (хард линк) и мека веза (софт линк) су две врсте веза које се могу успоставити између фајлова у фајл систему.

Главна разлика између ове две врсте веза је у томе што тврда веза успоставља везу између два имена фајла у оквиру истог фајл система, док се мека веза успоставља између два фајла на различитим локацијама у фајл систему, при чему се један фајл користи као симболичка референца на други фајл.

Када се тврда веза креира, два имена фајла показују на исти блок података на диску, тако да ако један фајл буде промењен, други фајл ће такође бити промењен. Тврде везе не могу бити успостављене између фајлова на различитим фајл системима, нити између директоријума.

Мека веза је посебан фајл који садржи путању до оригиналног фајла, а када се приступи мекој вези, систем користи путању за проналажење оригиналног фајла. Ако се оригинални фајл обрише, мека веза ће показивати на непостојећи фајл. Мека веза се може успоставити између фајлова на различитим фајл системима, као и између директоријума.

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

10. задатак

Поставка

Неки фајл систем користи индексирану алокацију фајлова на диску са комбинованим индексом. У ФЦБ се налази непосредни индекс са 32 улаза, као и адреса индекса сингле индирецт и индекса доубле индирецт. Величина блока је 512Б, а величина адресе блока је 64 бита. Колика је максимална величина садржаја фајла у овом систему у КБ? Извести рачун.

Решење

У овом фајл систему, блокови имају величину од 512 бајта, а адресе блокова су дуге 64 бита (8 бајта). То значи да један блок може да садржи 512 / 8 = 64 адресе блокова.

ФЦБ има непосредни индекс са 32 улаза, што значи да се првих 32 блока фајла може адресирати директно из ФЦБ-а. Осим тога, ФЦБ садржи адресу блока сингле индирецт и адресу блока доубле индирецт, што омогућава адресирање додатних блокова.

Блок сингле индирецт садржи 64 адресе блокова, што омогућава адресирање додатних 64 блока. Блок доубле индирецт такође садржи 64 адресе блокова, али свака адреса у том блоку показује на блок сингле индирецт, што омогућава адресирање додатних 64 x 64 = 4096 блокова.

Укупан број блокова који се може адресирати у овом фајл систему је: 32 + 64 + (64 x 64) = 4224

Максимална величина фајла се добија множењем овог броја блокова са величином блока: 4224 x 512 бајта = 2162688 бајта

Да би добили величину фајла у килобајтима, делимо овај број са 1024: 2162688 бајта / 1024 = 2112 КБ

Дакле, максимална величина фајла у овом фајл систему је 2112 КБ.