Има ли разлика между логическата и виртуалната памет?


Отговор 1:

Логическа памет: Логическата памет позволява на потребителя да използва голямо количество памет за съхранение на данни. Той определя начините за организиране на физическата памет като RAM и кеш памет. Това дава възможност на операционната система да подреди паметта по логичен начин, като например назначаване на логически адрес.

Виртуална памет: Виртуалната памет е част от вторичната памет (да кажем твърд диск), която се използва като памет. Когато процесорът изпълнява инструкциите, той преобразува адресите на виртуалната памет в реални адреси на паметта. Основното използване на виртуалната памет е за увеличаване на адресното пространство.

Физическа памет: Физическата памет е основната оперативна памет на паметта, налична във вашата система. Това е единствената памет, която е пряко достъпна за процесора. CPU чете инструкциите, съхранени във физическата памет и ги изпълнява непрекъснато. Данните, които се управляват, също ще се съхраняват във физическа памет по еднакъв начин.


Отговор 2:

На първо място трябва да разберете обвързването на адреси.

обикновено една програма пребивава на диск като двоичен изпълним файл. програмата трябва да бъде въведена в паметта и поставена в процес, за да бъде изпълнена. Колекцията от процеси на диска, който чака да бъде вкаран в паметта за изпълнение, формира опашката за въвеждане.

Нормалната процедура е да изберете един процес от входната опашка и да го заредите в паметта. като се изпълнява процес, той получава достъп до инструкции и данни от паметта. В крайна сметка процесът се прекратява и паметта му се възстановява.

Потребителската програма може да пребивава във всяка част от физическата памет, въпреки че адресното пространство на компютъра започва от 00000. Потребителската програма преминава през няколко стъпки, преди да бъде изпълнена. Адресите в изходната програма обикновено са символични (като брой). Компилатор обвързва тези символични адреси с преместваеми адреси (като „12 байта от началото на този модул“). Редакторът за връзка ще свързва преместваеми адреси към абсолютни адреси.

Обвързването на инструкциите и данните може да се извърши по някоя от следните стъпки….

  1. Време за компилиране: Ако по време на компилация знаете къде процесът ще остане в паметта, тогава може да се генерира абсолютен адрес. например, ако знаете априори, че потребителски процес пребивава, като се започне от местоположение R, генерираният код за компилация ще започне на това място и ще се разшири от там. Ако в някакъв по-късен момент началното местоположение се промени, тогава е необходимо да се прекомпилира този код. Време за зареждане: Ако не е известно по време на компилиране, където процесът ще остане в паметта, тогава компилаторът трябва да генерира преместващ се код. В този случай окончателното свързване се забавя до времето за зареждане. Ако началният адрес се промени, трябва само да презаредим потребителския код, за да включим тази променена стойност. Време за изпълнение: Ако един процес може да бъде преместен по време на неговото изпълнение от един сегмент на памет в друг, тогава свързването трябва да се забави до времето на изпълнение.

Адресът, генериран от процесора, обикновено се знае като логичен адрес, докато адресът, видян от паметта - това е този, който се зарежда в регистрите на паметта на паметта, обикновено се нарича физически адрес.

  • Методите за компилиране на времето и времето за зареждане генерират идентични физически и логически адреси. Въпреки това методът за свързване на адреси за изпълнение на времето води до различни логически и физически адреси. В този случай ние обикновено наричаме логическия адрес като виртуален адрес. Съпоставянето на времето за изпълнение от логическия адрес към физическия адрес се извършва от хардуерно устройство, наречено устройство за управление на паметта (MMU).

Това е всичко приятели…..

Надявам се това да помогне !!!


Отговор 3:

На първо място трябва да разберете обвързването на адреси.

обикновено една програма пребивава на диск като двоичен изпълним файл. програмата трябва да бъде въведена в паметта и поставена в процес, за да бъде изпълнена. Колекцията от процеси на диска, който чака да бъде вкаран в паметта за изпълнение, формира опашката за въвеждане.

Нормалната процедура е да изберете един процес от входната опашка и да го заредите в паметта. като се изпълнява процес, той получава достъп до инструкции и данни от паметта. В крайна сметка процесът се прекратява и паметта му се възстановява.

Потребителската програма може да пребивава във всяка част от физическата памет, въпреки че адресното пространство на компютъра започва от 00000. Потребителската програма преминава през няколко стъпки, преди да бъде изпълнена. Адресите в изходната програма обикновено са символични (като брой). Компилатор обвързва тези символични адреси с преместваеми адреси (като „12 байта от началото на този модул“). Редакторът за връзка ще свързва преместваеми адреси към абсолютни адреси.

Обвързването на инструкциите и данните може да се извърши по някоя от следните стъпки….

  1. Време за компилиране: Ако по време на компилация знаете къде процесът ще остане в паметта, тогава може да се генерира абсолютен адрес. например, ако знаете априори, че потребителски процес пребивава, като се започне от местоположение R, генерираният код за компилация ще започне на това място и ще се разшири от там. Ако в някакъв по-късен момент началното местоположение се промени, тогава е необходимо да се прекомпилира този код. Време за зареждане: Ако не е известно по време на компилиране, където процесът ще остане в паметта, тогава компилаторът трябва да генерира преместващ се код. В този случай окончателното свързване се забавя до времето за зареждане. Ако началният адрес се промени, трябва само да презаредим потребителския код, за да включим тази променена стойност. Време за изпълнение: Ако един процес може да бъде преместен по време на неговото изпълнение от един сегмент на памет в друг, тогава свързването трябва да се забави до времето на изпълнение.

Адресът, генериран от процесора, обикновено се знае като логичен адрес, докато адресът, видян от паметта - това е този, който се зарежда в регистрите на паметта на паметта, обикновено се нарича физически адрес.

  • Методите за компилиране на времето и времето за зареждане генерират идентични физически и логически адреси. Въпреки това методът за свързване на адреси за изпълнение на времето води до различни логически и физически адреси. В този случай ние обикновено наричаме логическия адрес като виртуален адрес. Съпоставянето на времето за изпълнение от логическия адрес към физическия адрес се извършва от хардуерно устройство, наречено устройство за управление на паметта (MMU).

Това е всичко приятели…..

Надявам се това да помогне !!!


Отговор 4:

На първо място трябва да разберете обвързването на адреси.

обикновено една програма пребивава на диск като двоичен изпълним файл. програмата трябва да бъде въведена в паметта и поставена в процес, за да бъде изпълнена. Колекцията от процеси на диска, който чака да бъде вкаран в паметта за изпълнение, формира опашката за въвеждане.

Нормалната процедура е да изберете един процес от входната опашка и да го заредите в паметта. като се изпълнява процес, той получава достъп до инструкции и данни от паметта. В крайна сметка процесът се прекратява и паметта му се възстановява.

Потребителската програма може да пребивава във всяка част от физическата памет, въпреки че адресното пространство на компютъра започва от 00000. Потребителската програма преминава през няколко стъпки, преди да бъде изпълнена. Адресите в изходната програма обикновено са символични (като брой). Компилатор обвързва тези символични адреси с преместваеми адреси (като „12 байта от началото на този модул“). Редакторът за връзка ще свързва преместваеми адреси към абсолютни адреси.

Обвързването на инструкциите и данните може да се извърши по някоя от следните стъпки….

  1. Време за компилиране: Ако по време на компилация знаете къде процесът ще остане в паметта, тогава може да се генерира абсолютен адрес. например, ако знаете априори, че потребителски процес пребивава, като се започне от местоположение R, генерираният код за компилация ще започне на това място и ще се разшири от там. Ако в някакъв по-късен момент началното местоположение се промени, тогава е необходимо да се прекомпилира този код. Време за зареждане: Ако не е известно по време на компилиране, където процесът ще остане в паметта, тогава компилаторът трябва да генерира преместващ се код. В този случай окончателното свързване се забавя до времето за зареждане. Ако началният адрес се промени, трябва само да презаредим потребителския код, за да включим тази променена стойност. Време за изпълнение: Ако един процес може да бъде преместен по време на неговото изпълнение от един сегмент на памет в друг, тогава свързването трябва да се забави до времето на изпълнение.

Адресът, генериран от процесора, обикновено се знае като логичен адрес, докато адресът, видян от паметта - това е този, който се зарежда в регистрите на паметта на паметта, обикновено се нарича физически адрес.

  • Методите за компилиране на времето и времето за зареждане генерират идентични физически и логически адреси. Въпреки това методът за свързване на адреси за изпълнение на времето води до различни логически и физически адреси. В този случай ние обикновено наричаме логическия адрес като виртуален адрес. Съпоставянето на времето за изпълнение от логическия адрес към физическия адрес се извършва от хардуерно устройство, наречено устройство за управление на паметта (MMU).

Това е всичко приятели…..

Надявам се това да помогне !!!