$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \newcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$
Projekti za samostalan i timski rad / Симулатор рада процесора у рачунару

Симулатор рада процесора у рачунару

  • Dozvoljeno polaganje
  • Projekti za samostalnu izradu
  • Nema
  • DjMaks
  • 1/3/2016

Процесор, као један од основних елемената у архитектури рашунара одговоран је за извршавање процесорских инструкција. С обзиром да постоји више различитих група инструкција са различитим карактеристикама (аритметичко-логичке, улазно-излазне, различитих дужина трајања у тактовима) потребно је оптимално распоредити њихово извршавање на одређени број језгара која су у склопу процесора. У ту сврху потребно је имплементирати симулатор рада процесора са визуелном репрезентацијом.

У ред за чекање (на извршавање) потребно је убацити програме за извршавање. Програми се налазе у текстуалним датотекама писани у псеудо-асемблерском језику. Као први циљ пројекта потребно је дизајнирати језик у коме постоје различите групе операција - аритметичко-логичке са различитом дужином трајања, улазно-излазне операције које се блокирају на неком уређају или меморији, операцију које чекају улаз са тастатуре и сл.

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

Један пример целокупног скупа инструкција:

ALU X - Аритметичко-логичка инструкција која се извршава X тактова, пример ALU 5

IO Y - Улазно-излазна инструкција која се блокира Y тактова, пример IO 50

МЕМ - Меморијска инструкција која се блокира фиксан (предефинисан) број тактова

KEYIN - Инструкција која се блокира на неодређено време до уноса сa тастатуре

По жељи ученика могуће је скуп инструкција проширити базичним петљама односно инструкцијама скока уз опаску да такво проширење не мења суштину па самим тим није неопходно. 

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

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

 

Корисни линкови:

http://siber.cankaya.edu.tr/OperatingSystems/week6l/node3.html