Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Управление памятью. Архитектура UNIX. Процессы

Архитектура UNIX. Процессы

С процессами связано несколько важных компонент ядра UNIX, это — управление памятью, планировщик процессов, обеспечение межпроцессного взаимодействия.

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

Разделение виртуальной памяти отдельных процессов необходимо в целях безопасности — процессы не должны иметь возможность по собственной инициативе менять данные других процессов — не только из-за потенциальных возможностей злоумышленников, но и потому, что программы могут совершать ошибки, и аварийное завершение одного процесса не должно отражаться на ходе работы других процессов и операционной системы в целом.

В современных реализациях UNIX для большинства аппаратных архитектур используется страничная организация виртуальной памяти. В этом случае всё адресное пространство процесса разбивается на участки одинакового размера (страницы), аналогичным образом разбивается вся физическая память. Каждая станица адресного пространства процесса может отображаться на какую-то страницу физической памяти. Это обеспечивается специальной таблицей преобразования адресов, которую операционная система поддерживает в адекватном состоянии. Таким образом, физическая память разделяется между множеством процессов, причём каждый из процессов имеет доступ только к «своим» страницам, что гарантируется операционной системой и аппаратными возможностями процессора.

В 32-разрядной архитектуре объём адресного пространства процесса равен 4 гигабайтам. Так как число процессов в системе потенциально не ограничено, очевидно, что суммарный размер адресного пространства, необходимого всем процессам, вполне может превысить размеры физической памяти. Конечно, большая часть программ оперирует довольно небольшим объёмом памяти. Однако страничное преобразование позволяет решить проблему недостатка физической памяти: неиспользуемые страницы могут копироваться из физической памяти на диск в специальную область подкачки и храниться там до момента, когда они вновь потребуются для исполнения процесса.

Ещё один мощный механизм, возможный благодаря страничному преобразованию, — это файлы, проецируемые в память. Процесс может «присоединить» файл к своему виртуальному адресному пространству. Это означает, что при обращении к файлу или изменении данных в нем операционная система будет автоматически выполнять отображение содержимого файла в страницы памяти процесса и обратно. Фактически операционная система здесь использует тот же механизм, что и при работе с областью подкачки, когда данные перемещаются с внешнего носителя в память при обращении к соответствующему адресу виртуальной памяти. Отображаемые в память файлы используются в тех случаях, когда необходимо с минимальными временными затратами многократно модифицировать содержимое файла, например, в базах данных или редакторах.

На рисунке 1.22, «Размещение страниц виртуальной памяти» показаны возможные случаи размещения страниц виртуальной памяти — в физической памяти, в области подкачки, в файле.

Рисунок 1.22. Размещение страниц виртуальной памяти

<== предыдущая лекция | следующая лекция ==>
Устройства и драйверы | Контекст процесса
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 269; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.