Skip to content

A Java-based operating system simulator implementing core functionalities including booting, process scheduling with a circular algorithm, memory management with dynamic partitioning, hierarchical file system operations, process management commands, process listing, interruption, blocking/unblocking, and a simple assembler with register simulation.

Notifications You must be signed in to change notification settings

bojicuros/java-os-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 

Repository files navigation

Пројектни задатак из предмета Оперативни системи

Основни елементи су сљедећи:

  1. Процедура за подизање оперативног система – booting.
  2. Реализација распоређивача процеса – Реализовати кружни алгоритам.
  3. Реализација техника управљања меморијом – динамичко партиционисање са одабиром најбоље одговарајуће меморијске партиције.
  4. Реализација фајл система – дрволико (као што је иначе у пракси код већине ОС
  5. *Реализација интеракције са улазно/излазним уређајима – нека улаз увијек буде тастатура, а излаз монитор. Ова интеракција се може реализовати путем бафера и технике pooling или система догађаја. Овај дио задатка је опциони. Уколико студентима овај захтјев дјелује претежак, могу користити уграђене функције за читање и писање по конзоли.
  6. Реализовати креирање, читање и брисање датотека – користити повезане листе блокова меморије.
  7. Осмислити команде оперативног система које треба да садрже најосновније ствари за које ће омогућити покретање већег броја процеса. Студенти имају слободу да наведене команде дизајнирају како желе или да искористе неки linux/windows командни језике. Основне команде су:
    • Команда за листање датотека и поддиректоријума у актуелном директоријуму
    • Команда за промјену актуелног директоријума
    • Команда за креирање, брисање и преименовање директоријума
    • Команда за покретање извршне датодеке и слање у позадину како би могао да се покрене нови процес – подразумијева се моментално слање у позадину. То значи да се улазни параметри увијек прослеђују преко текстуалне датотеке, те се резултат извршавања такође исписује у неку излазну текстуалну датотеку. Позив може да буде на сљедећи наћин: <назив команде> <назив извршне датотеке> <назив датотеке са резултатима>
    • Листање актуелних процеса – за сваки процес приказати неке стандардне информације попут: пид, имена програма, тренутно стање процеса (према животном циклусу), тренутно заузеће меморије и слично
    • Прекид неког процеса
    • Блокирање и одблокирање ноког процеса
    • Гашење симулатора
  8. Креирати једноставан асемблер. Овом приликом је потребно креирати највише десетак основних наредби асемблера (пребацивање из/у меморију са регистра, сабирање, одузимање, множење, дијељење, наредба скока и слично). Овом приликом је потребно направити симулацију регистара. Приликом учитавања асемблерског кода (текстуалне датотеке са екстензијом .asm), потребно је генерисати одговарајући машински код, те га потом извршити. Омогућити приказ меморије и регистара.

About

A Java-based operating system simulator implementing core functionalities including booting, process scheduling with a circular algorithm, memory management with dynamic partitioning, hierarchical file system operations, process management commands, process listing, interruption, blocking/unblocking, and a simple assembler with register simulation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published