You are on page 1of 15

ВОЕНА АКАДЕМИЈА „ГЕНЕРАЛ МИХАИЛО АПОСТОЛСКИ“

-НАСОКА: САЈБЕР БЕЗБЕДНОСТ И ДИГИТАЛНА ФОРЕНЗИКА-

Семинарска работа по предметот: Компјутерски архитектури и оперативни системи

ТЕМА: OPERATING SYSTEM MACHINE LEVEL

Ментор: проф.д-р Југослав Ачковски Изработил: Дарко Левески

Скопје, февруари, 2024 година


СОДРЖИНА

ВОВЕД ....................................................................................................................... 2
ОСНОВНИ КОНЦЕПТИ НА ВИРТУЕЛНА МЕМОРИЈА .......................................... 2
ТАБЕЛА ЗА СТРАНИЦИ (PAGE TABLE) ................................................................. 5
ЗАМЕНА НА СТРАНИЦА .......................................................................................... 7
КЕШ МЕМОРИЈА .................................................................................................... 11
ЗАКЛУЧОК............................................................................................................... 13
КОРИСТЕНА ЛИТЕРАТУРА ................................................................................... 14

1
ВОВЕД

Уште од најраните денови на развојот на компјутерите, програмерите


сакале неограничени количества на брза меморија. Начин да им се помогне е
формирањето на илузија дека располагаат со неограничени количества на брза
меморија. Постојат многу техники за создавање на оваа илузија и за
подобрување на нејзините перформанси.

Во оваа семинарска работа накратко ќе дадеми осврт за тоа што е


виртуелна меморија, кои се нејзините карактеристики и како таа функционира.

ОСНОВНИ КОНЦЕПТИ НА ВИРТУЕЛНА МЕМОРИЈА

Како што кеш меморијата се користи како метода за овозможување на брз


пристап, така главната меморија може да се однесува како „кеш меморија“ за
секундарната меморија, обично имплементирана како магнетен диск. Оваа
техника се нарекува виртуелна меморија.

Постојат две главни мотивации за виртуелна меморија и тоа:

 Можност за ефикасно делење на меморијата помеѓу повеќе програми

 Отстранување на тешкотиите за програмирање поради малото,


ограничено количество на главна меморија

Нека постојат повеќе програми кои што се извршуваат истовремено на


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

Главната меморија треба да ги содржи само активните делови на


програмитее, исто како што кеш меморијата го содржи само активниот дел од
една програма. Ова овозможува ефикасна поделба на процесорот и главната
меморија меѓу корисниците.

2
Друга мотивација е да им се овозможи на корисничките програми да
зафаќаат повеќе меморија отколку што навистина има главна меморија. Порано
програмерите одредувале поделба на програмата на делови кои што во текот на
извршувањето на програмата се сместувале во главната меморија и се
обновувале во секундарната под контрола на корисничка програма. Поради тоа
програмирањето претставувало голем проблем. Виртуелната меморија, пак од
друга страна, автоматски управува со дво нивовската хиерархија претставена со
главната мееморија и секундарната меморија.

За секоја програма се дефинира адресен простор (address space) односно


одреден број момориски локации резервирани за таа програма. Со тоа се врши
заштита на програмите една од друга и на оперативниот систем од програмите.
Вируеланата меморија го овозможува пренесувањето на адресниот простор за
секоја програма.

Концептот на работа на виртуелната меморија и на кеш меморијата е ист,


но се користат различни термини. Така блок во виртуелна меморија се нарекува
страница (page), а активноста што доведува до непогодување генерира грешка
на страница (page fault).

Процесорот создава виртуелна адреса (virtual address), која со помош на


хардвер и софтвер се преведува во физичка адреса (physical address) во
главната меморија, како што е прикажано на слика број 1 дадека во продолжение
на оваа семинарска работа.

Сл.1. Мапирање на виртуелните адреси во физички

3
Процесот на мапирање на страниците од виртуелно адресната меморија
во физичка меморија се нарекува мапирање на меморијата (memory mapping)
или преведување на адреси (address translation).

Виртуелната меморија исто го поедноставува начинот на кој се


запишувааат програмите во меморијата, бидејќи врши релокација. Тоа значи
дека мемориските страници се сместуваат на различни места во меморијата т.е.
за да се смести една програма или една датотека не е потребно да се бара
континуиран слободен дел од меморијата туку се бараат празни односно
непотполнети мемориски страници во физичката меморија. За оваа активност
порано бил потребен додатен хардвер и специјална поддршка на оперативниот
систем која што виртуелната меморија ја спроведува.

Како што е прикажано на слика 2 дадена во продолжение на оваа


семинарска работа, виртуелната адреса се состои од број на виртуелна
страница (virtual page number) и странично поместување (page off set). Бројот на
виртуелни страници се преведува во број на физички страници (physical page
number), кој го формира горниот дел на физичката адреса, додека
проместувањето го формира горниот дел. Бројот на битови за делот за
поместување ја дефинира големината на страницата. Бројот на адресибилни
страници кај виртуелната адреса не мора да се совпаѓа со соодветниот број на
адресибилни страници кај физичката адреса.

Сл.2.Формирање на физичка од виртуелна адреса

4
Непогодувањето доведува до грешка на страница и практично е голема
загуба во време. Затоа при дизајнирањето на виртуелната меморија се внимава
на:

 Страницата треба да биде доволно голема за да го амортизира високото


време на пристап (типична големина е од 4 до 64 KV)

 Предност имаат организациите кои ја намалуваат ратата на


непогодување односно техники со флексибилно сместување страници

 Непогодувањата во виртуелната меморија може софтверски да се


решаваат со доволно паметен алгоритам за сместување страница.

 За реализација на виртуелната меморија не се користи техниката запис


преку (write – through) бидејќи одзема многу време, односно се користи
теехника која не побарува многу обраќање до дискот.

ТАБЕЛА ЗА СТРАНИЦИ (PAGE TABLE)

За намалување на непогодувањето се оптимизира начинот на сместување


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

Бидејќи секоја страница може да биде сместена на било кое место во


меморијата потребен е механизам да се пронајде, т.е. се формира табела на
страници (page table). Табелата на страници е индексирана по бројот на
страници од виртуелната адреса и ги содржи соодветните физички броеви на
страници како што е покажано на сликата бр.3.

Таа ги содржи дури и оние сраници што не се присутни во меморијата. На


секоја програма и соодвестува табела на страници која го мапира виртуелниот
адресен простор во физичката меморија. Позицијата на табелата на страници

5
во меморојата се означува со помош на регистар кој покажува кон почетокот на
табелата и се нарекува регистар на табелата на страници (page table number).
Начинот на кој се формира физичката адреса со помош на регистарот на
табелата на страници и табелата на страници е прикажана на сликата бр.3 со
помош на битот за валидности (valid bit) се означува дали страницата е во
меморија или не. Ако страницата е во меморија тогаш во табелата се содржи
бројот на физичка страница, а во спротиввно настанува грешка на страница.
Бидејќи табелата ги содржи мапирањата за секоја можна страница нема потреба
од tag bit.

Сл.3. Формирање физичка адреса со помош на табелата

Почетната адреса на табелата на страница ја дава покажувалот кон


табелата на страници. Големината на страницата на сликата бр. 3 е 2 12=4КВ,
виртуелниот адресен простор е 232=4GB, физичкиот адресен простор е 230=1GB,
а бројот на податоци кои можат да се сместат во табелата на податоци е 2 20=1
милион на влезни податоци.

Освен техниката за полно асоцијативната реализација на виртуелната


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

6
ЗАМЕНА НА СТРАНИЦА

Табелата на страници, програмскиот бројач и регистрите ја дефинираат


состојбата на програмата. Ако процесорот започне да обработува друга
програма тогаш оваа состојба треба да се сними за да може извршувањето на
другата програма да се прочита состојбата и програмата да продолжи да се
извршува. Оваа состојба обично се нарекува процес. Процесот е активен ако
процесорот го обработува. Оперативниот систем може одреден процес да го
направи активен само со читање на состојбата на процесорот, вклучувајќи го и
програмскиот бројач кој овозможува продолжување на процесот од каде што
бил. Само со читањето на регистерот на табелата на страници се овозможува
пристап до табелата на страници.

Кога ќе настане грешка на страница, односно битот за валидност е


исклучен, оперативниот систем ја презема контролата преку системот за прекин
со цел да ја пронајде страницата во подолното ниво кое обично е магнетен диск.
Потоа одлучува каде да ја смести во главната меморија. Но, виртуелната адреса
не ја дава адресата на дискот на кој се наоѓа. Затоа оперативниот систем
создава место на дискот за сите страници и формира податочна структура каде
запишува која виртуелна страница е запишана на дискот. Оваа податочна
структура може да биде дел од табелата на страници или помош на индексирана
датотека слична како и табелата на страници.

На сликата бр.4 дадека во продолжение на оваа семинарска работа е


претставена организација каде во една табела се содржат бројот на физичка
страница или адресата на дискот во зависност од битот за валидност.

7
Сл.4. Табела на страници со број на физичка страница или адреса на диск

Ако битот за валидност е вклучен, односно страницата е присутна во


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

Нека сите страници во физичката меморија се употребени. Оперативниот


систем треба да одлучи која страница да ја замени. Заради поголема
оптимизација оперативните системи претстауваат кои страници нема да се
користат наскоро и од нив одбираат страница што ќе ја заменат. Повикувајќи се
на принципот на временска лакалност оперативниот систем може да ха бара
најмалку користената во последно време LRU (Least Recently Used) страница,
бидејќи страницата до која не е пристапено во подолг временски период е
помалку веројатно дека ќе биде потреба отколку онаа страница до која е
пристапено во последно време. За да му помогне на оперативниот систем во
одредувањето на најмалку користената страница во последно време, машината
обезбедува еден бит за искористеност или бит за референцираност. Кога
страницата ќе биде референцирана нејзиниот бит за референцираност ќе биде
поставен, а по некое време сите битови за референцираност ќе бидат нулирани
и запомнети, па така ќе се знае до кои страници е пристапено во последно време.
Ако ваквиот бит не е обезбеден од хардверот тогаш оперативниот систем мора

8
да најде друг начин да предвиди која страница е најмалку користена во последно
време.

Нека постои 32 битна виртуелна адреса, 4KV страници и 4 бајти по запис


во табелата на страници. Големината на табелата на страници изнесува
232/1212=220 страници * 22 бајти / страна = 4МV

Така за табела на страници за една програма се потребни 4 MV меморија.


Ако во исто време работат повеќе програми, не би имало место ни за табелите
на страници, а не за нешто друго.

Најпроста техника што се применува за да не дојде до тоа е


поставувањето на граничен регистер, што ја ограничува големината на табелата
на страници. Кога виртуелниот број на страница ќе биде поголем од содржината
на граничниот регистар тогаш податоците мора да се внесат во табелата. Колку
процесот користи повеќе страници од виртуелниот адресен простор, толку
табелата е поголема. За примена на оваа техника треба да расте само во една
насока. Овој недостаток се надминува со примена на техника за делење на
табелата на две. Со тоа се дозволува табелата да оди од најјвисоката виртуелна
адреса надолу и од најмалата виртуелна адреса нагоре. Оваа значи дека ќе
постојат две разделени табели на страници со два различни гранични реистри.
Со тоа ќе се подели и адресниот простор на два сегменти. Битовите во горниот
дел на адресата ќе определуваат кој сегмент да се користи за наоѓање на
адресата. Големината на еден сегмент може да биде до половина од големината
на адренснииот простор. Ваквиот начин на сегментирање се користи од страна
на различни архитектури, вклучувајќи ја и MIPS RISC архитектурата. Исиот не е
видлив ни за корисниците ни за оперативниот систем.

Друг пристап е со применна на растурачка функција на виртуелната


адреса, со што табелата на страници има големина колку што е бројот на
физички страници во главната меморија. Оваа структура се нарекува
инертирана табела на страници. Недостаток е тоа што потешко се пронаоѓа
бројот на соодветнатаа физичка страница, бидејќи не може едноставно да се
индексира табелата по бројот на витуелна страница.

Најмодерените системи исто така дозволуваат страничење на таблемата


на страници, што се сведува на дозволување на табелата на страници да

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

Разликата помеѓу времето на пристап на кеш и главната меморија е


десетина циклуси, па може да се користи техниката запишување преку, иаку е
потребен бафер за да се скрие латентноста при запишување од процесорот. Кај
виртуелната меморија запишувањето на диск зема стотици до илјада циклуси,
па ставањето на бафер запишување – преку би било сосема непрактично. Затоа
за реализација на виртуелната меморија се користи тениката запис – назад, која
се состои во тоа што индивидуалните записи се акумулираат во страницата и
кога таа треба да се замени се запишува на диск. Со оваа техника се заштедува
во време бидејќи поефикасно е да се запише цела страница отколку да се
запишуваат индивидуални измени на дискот, поради малото време на трансфер
на податоци на дискот во однос на времето за пребарување на соодветната
патека и сектор на дискот. Бидејќи техниката запис – назад побарува време на
трансер се додава така наречениот валкан бит (dirty bit). Доколку дојде до измена
на податоците од една страница тогаш валканиот бит се поставува и кога
страницата треба да се замени таа се запишува назад на дискот, а доколку не
се изменат податоците од страницата тогаш битот не е поставен и таа нема да
се запише назад на дискот кога се заменува.

10
КЕШ МЕМОРИЈА

Пронаоѓањето блок во виртуелниот мемориски систем се врши со помош


на индексираната табела на страници. Слично се индексира и во директно
мапирана кеш меморија за да се пристапи до соодветниот блок. Кај ограничено
асоцијативна кеш меморија, секој блок содржи адресен таг со адресата на
блокот. Тагот на сите блокови каде што можеби се наоѓа бараната информација
се спроведува со адресата на блокот од процесорот. Полето за индекс се
користи за да се определи множеството каде се наоѓа бараната информација, а
потоа се спроведуваат таговите на сите блокови во множеството со тагот од
адресата на бараниот блок. Бидејќи брзината е од ограмно значење
пребарувањето на таговите на сите блокови во едно множество се врши
паралелно. Сериското барање би одземало премногу време и времето на
погодок на ограничено асоцијативната кеш меморија би било огромно.

Изборот меѓу директното мапирање ограничено асоцијативно и полно


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

 Најважна е ратат на непогодување поради голема казна за


непогодување;
 Мапирањето е имплементирано во софтверот, без влијание на
времето на циклусот;
 Голема страница заначи помала големина на табелата на страници.

Затоа системите на виртуелната меморија секогаш користат полно


асоцијативно мапирање. Ограничено асоцијативни техники со мала
асоцијативност користат обично кеш мемориите и TLB. Некои кеш мемории
користат директно мапирање заради времето на пристап и едноставноста
(нема потреба од споредување). Големите кеш мемории никогап не користат
полно асоцијативно сместување, поради цената и времето на погодок, во
однос на малата предност во перформансите пред ограничено
асоцијативното. Користењето на целосна мапа за кеш меморијата како

11
табелата на страниции за виртуелна меморија е неефикасно поради
големината што би ја имала и огромното време на пристап.

Проблемот во градењето на мемориски систем кој ќе држи чекор со брзите


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

12
ЗАКЛУЧОК

Уште од најраните денови на развојот на компјутерите, програмерите


сакале неограничени количества на брза меморија. Начин за да им се помогне е
формирање на илузија дека располагаат со неограночени количества брза
меморија. Постојата многу техники за создавање на оваа илузија и за
подобрување на нејзините преформанси.

Виртуелната меморија, пак од друга страна, автоматски управува со дво


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

Виртуелната меморија исто така го поедноставува начинот на кој се


запишуваат програмите во меморијата, бедејќи врши релокација. Тоа значи дека
мемориските страници се сместуваат на различни места во меморијата, т.е за
да се смести една програма или една датотека не е потребно да се бара
континуиран слободен дел од меморијата туку се бараат празни односно
непополнети мемориски страници во физичката меморија. За оваа активност
порано бил потребен додатен хардвер или специјална подршка на оперативниот
систем која што виртуелната меморија ја спроведува.

13
КОРИСТЕНА ЛИТЕРАТУРА

[1]https://computer-os
systems.weebly.com/10421080108810901091107710831085107210841077108410
861088108011121072.html

[2] https://rti.etf.bg.ac.rs/rti/oo2or/literatura/7_Virtuelna_memorija.pdf

[3]https://mk.swewe.net/word_show.htm/?62035_1&%D0%92%D0%B8%D1%80%D
1%82%D1%83%D0%B5%D0%BB%D0%BD%D0%B0%D1%82%D0%B0_%D0%BC
%D0%B5%D0%BC%D0%BE%D1%80%D0%B8%D1%98%D0%B0

[4] https://matematickitalent.mk/uploads/books/0to7RlvipUeJRy69-wJEkg.pdf

[5] https://www.geeksforgeeks.org/virtual-memory-in-operating-system/

[6] https://www.indeed.com/career-advice/career-development/virtual-memory

[7] https://csapp.cs.cmu.edu/2e/ch9-preview.pdf

[8]https://rlacollege.edu.in/pdf/computer/Operating%20System%20Virtual%20Memor
y.pdf

[9] https://web.cs.wpi.edu/~cs3013/c07/lectures/Section09-Virtual_Memory.pdf

[10]https://tnm.engin.umich.edu/wp-
content/uploads/sites/353/2017/12/1998.07.Virtual_memory_in_contemporary_micro
processors.pdf

[11] https://www.cs.fsu.edu/~zwang/files/cda3101/Fall2017/Lecture12_cda3101.pdf

[12]https://people.scs.carleton.ca/~sivarama/org_book/org_book_web/slides/chap_1
_versions/ch17_1.pdf

[13] https://www.cs.umd.edu/users/meesh/cmsc411/website/proj01/cache/cache.pdf

[14]https://www.researchgate.net/publication/340387148_Brief_Overview_of_Cache
_Memory

14

You might also like