2013-12-02 3 views
0

Как выполняется разделение нескольких экземпляров одного и того же проекта/программы, что означает, что механизм разделяет данные двух экземпляров одного и того же проекта/программы?Несколько экземпляров того же проекта/программы

Edit: Примеры:

  1. При использовании программу написать два раза и работы с ФАЙЛА1 и ФАЙЛЕ2. Как большинство ОС разделяют два экземпляра? Как я читал в комментариях, файлы получают разные блоки памяти. Блоки блокируют «получить» имя файлов, например, блок143 может быть переадресован FILE1, а block223 - файлом FILE2?
  2. Моделирование: если я назову один тип моделирования (те же аргументы командной строки) на двух разных файлах ввода данных. Как ОС разделяет эти файлы, касающиеся адресации различных блоков/экземпляров памяти?

поздравления Streight

+10

Операционная система. –

+4

Расширяя это, ОС назначает каждой программе или экземпляру программы определенный блок памяти. Вы когда-нибудь пробовали получить доступ к случайной памяти? Большую часть времени ваша программа рушится. Это связано с управлением ОС. Если вы получаете доступ к памяти, не назначенной вам, ОС автоматически сбой вашей программы (функция безопасности) –

+0

Итак, это похоже: экземпляр один -> у вас есть блок памяти 145 и экземпляр 2 -> у вас есть блок 186 памяти? Итак, экземпляры «забиты» внутри блока памяти? – Streight

ответ

1

Ответ из приведенного выше обсуждения:

ОС присваивает каждую программу или экземпляр программы определенный блок памяти. Вы когда-нибудь пробовали получить доступ к случайной памяти? Большую часть времени ваша программа рушится. Это связано с управлением ОС. Если вы получаете доступ к памяти, не назначенной вам, ОС автоматически сбой вашей программы (функция безопасности).

Существует отдельная память для program и память, которую program uses. Память, предоставляемая программе для запуска (пространство, требуемое именем класса/функции и т. Д.), Отличается от любых переменных, которые вы назначили во время выполнения.

Все это предполагает, что ваша ОС поддерживает несколько процессов, выполняемых параллельно - очень старые или очень ограниченные встроенные системы могут даже не поддерживать это вообще. Многие доски, на которых вы работаете (в школе), не поддерживают что-то подобное, и вам приходится писать это самостоятельно.

Когда вы вызываете одну и ту же программу с отдельными файлами, каждый файл существует в пределах собственного пространства памяти. Нет, они не помечены как таковые. Не пытайтесь guess, что имена после компиляции. Это просто не работает.

Почему?

1) Это зависит от компилятора. Различные компиляторы используют разные способы.

2) Это не человек для чтения (если ваш писать компилятор самостоятельно) (поправьте меня, если я ошибаюсь)

OS/компилятор дает им уникальное имя (не может зависеть от времени, зависимые от ОС или аа сто других вещей). Программы не знают друг о друге и работают в своем собственном пространстве.

Кредит: @Hulk @Mohammad Ali Baydoun

+0

'OS/compiler дает им уникальное имя (может быть зависит от времени, зависит от ОС или сотни других вещей). Программы не знают друг о друге и работают в своем собственном пространстве. «Хорошо, это в настоящий момент достаточно, чтобы я знал. спасибо – Streight

Смежные вопросы