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

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

Zadaci na stranici predmeta.

1. zadatak

Postavka

Šta je multiprocesni, a šta multiprocesorski operativni sistem?

Rešenje

Multiprocesni operativni sistem je operativni sistem koji podržava izvršavanje više procesa uporedo (nad istim procesorom).

Multiprocesorski sistem je računarski sistem sa više procesora koji imaju deljenu memoriju. Procesori mogu da pristupaju toj deljenoj memoriji preko zajedničke magistrale na koju su povezani.

2. zadatak

Postavka

Korišćenjem operacije yield(PCB* old, PCB* new) koja čuva kontekst izvršavanja prvog i restaurira kontekst izvršavanja drugog datog procesa, implementirati operaciju wait na semaforu koji je realizovan klasom Semaphore poput one u školskom jezgru.

Rešenje

Videti 2. zadatak iz januarskog roka 2013. godine.

3. zadatak

Postavka

Na jeziku C, korišćenjem sistemskih poziva fork() i execlp() za Unix, napisati program koji pokreće drugi program iz fajla čiji je naziv zadat kao parametar komandne linije prvog programa.

Rešenje

Videti 4. zadatak iz junskog roka 2021. godine.

4. zadatak

Postavka

Korišćenjem standardnih brojačkih semafora u školskom jezgru, na jeziku C++ napisati globalne deklaracije i inicijalizacije, kao i kod tela dve uporedne niti A i B koje ciklično rade sledeće:

  • A: upisuje vrednost u deljene promenljive x i y, a zatim čeka da proces B upiše zbir x i y u promenljivu z čiju vrednost onda ispisuje na standardni izlaz;
  • B: čeka da proces A upiše vrednosti u deljene promenljive x i y, zatim ove dve vrednosti sabira i zbir upisuje u deljenu promenljivu z.

Rešenje

Videti 5. zadatak iz junskog roka 2021. godine.

5. zadatak

Postavka

Šta je osnovni razlog za to da linker obavlja zadatak u dva prolaza? Precizno objasniti.

Rešenje

Videti rešenje 5. zadatka iz jula 2017. godine.

6. zadatak

Postavka

Navesti najmanje tri sličnosti (npr. zajednički zahtevi, ograničenja ili problemi) između kontinualne alokacije memorije i segmentne alokacije memorije procesa.

Rešenje

  1. Operativni sistem mora da organizuje i održava strukturu podataka za evidenciju slobodnih fragmenata
  2. Operativni sistem mora da sprovodi neku od tehnika dinamičke alokacije
  3. Problem eksterne fragmentacije

7. zadatak

Postavka

Kojom tehnikom se nedeljivi uređaj može učiniti virtuelno deljivim? Navesti klasičan primer takvog uređaja za koji se najčešće primenjuje ova tehnika.

Rešenje

Videti 6. zadatak iz junskog roka 2021. godine.

8. zadatak

Postavka

U fajl podsistemu nekog operativnog sistema ne vodi se tabela otvorenih fajlova za svaki proces, već postoji samo jedna globalna tabela otvorenih fajlova za ceo sistem. Drugim rečima, ne postoji nikakva informacija o upotrebi otvorenog fajla lokalna (privatna) za pojedinačni proces, već su sve takve informacije globalno deljene. Da li pojam pokazivača trenutne lokacije (kurzora) za čitanje/upis u fajl ima smisla čuvati u globalnoj tabeli otvorenih fajlova i zašto?

Rešenje

Ne, jer više različitih procesa mogu imati različitu vrednost kurzora.

9. zadatak

Postavka

Dati procenu kompleksnosti datih operacija sa direktorijumom u odnosu na broj postojećih fajlova n u direktorijumu, za navedene implementacije direktorijuma, ukoliko u slučaju hash tabele nema nijedne kolizije.

Rešenje

Hash tabela sa dvostrukom ulančanim listama za rešavanje kolizije Dvostruko ulančana lista sa pokazivačima na glavu i rep liste
Pronalaženje ulaza sa datim imenom O(1) O(n)
Dodavanje novog ulaza sa jedinstvenim imenom (ne računajući proveru jedinstvenosti imena) O(1) O(1)

10. zadatak

Postavka

Neki fajl sistem koristi indeksirani pristup alokaciji fajlova sa indeksima u dva nivoa, blokom veličine 256KB i 64-bitnim adresama fizičkih blokova. Kolika je maksimalna veličina fajla u ovom sistemu?

Rešenje

  • Broj ulaza:
  • Maksimalna veličina fajla: