Защита пам.В однопрогр сист мех-м защиты исп-ся для того, чтобы защитить пр-мму от ее собств ошибок, а главное, защитить ОС от ошибок в ПП. В мультипрогр сист мех-мы защиты должны обеспечить защиту ПП др от др. Реал-ция требует аппар поддержки. Общие подходы к огг-ции защиты пам: 1. Изоляция адр пр-в пр-мм др от др – одна прикл или сист пр-мма не должна видеть адр пр-ва др пр-ммы, кажд пр-мма должна раб-ть в своем адр пр-ве, они не должны перес-ся. Физ-ки реал-ть нельзя – 4Гб для кажд ПП – задача ОС. 2. Разграничение прав доступа к разл стр-рам данных, хр-ся в пам для пр-мм, имеющим разн привилегии (кольцевая защ, защ по ур-ням привилегий. Всем данным, нах-ся в ОП. и всем кодам, загр-ным на вып-е, припис-ся опр-ый ур привилегий, в зав-ти от их принадл-ти к тому или иному классу пр-мм (как мин сис или прикл). Для обращ-я к данным или для вып-я кода треб-ся опр-ный ур привилегий; 3. По назначению инф-ции, размещаемой в пам (для данных и кода назначение должно быть разным – к данным для счит-я и модиф, к коду для вып-я). 1)аппар-но в проц-рах Intel поддерж-ся возм-ть работы с сегм-ми неск типов (кода, данных, стека). Кр этих еще есть сист данные, напр TSS. При обр-нии к пам, при загрузке сист рег-ров, проц-р контр-ет соответствие оп-ции, при вып-нии к-рой происх обр-е к пам, типу сегмента. Тип сегм, к к-му происх обр-е, хр-ся в байте прав доступа дескр-ра этого сегм. для хр-я типа 2-х битов дост-но, 3-й показ-ет допустимые оп-ции – разреш ли запись для сегм данныз, для кода – чтение, вып-е). Шлюзы, напр, сист объекты. Если во вр работы сист над каким-то сегм нужно вып-ть оп-цию, не соотв его типу (напр TSS – к нему нет доступа из ОС – при иниц-ции ОС создает 2 деск-ра – один из них – псевдоним, для себя); 2)защита по ур-ням привилегий. 1-самый привелиг-ный ур, ядро ОС. Вып-ет жизненно-важные оп-ции, имеет доступ к аппар-ре. Внеш ур – ПП. Кол-во колец зав от аппар-ры и ОС, к-я ее исп-ет. В Intel 4 уровня: 0-ядро; 1,2-промежут (протоколы, к-е обесп-ют разл методы взаимод-я процессов – не всегда связано с ур привил – может вып-ся на ур ОС или ПП), исп-ся для пр-мм, к-е не явл критичными для ОС, напр драйверы СУБД; 3-ПП. По ур-ням прив-гий разбив-ся не только прогр коды, но и данные. Для реал-ции кольцевой защиты в общ сл-е исп-ся разл ср-ва: 1. вкл-е в систему команд (а] привелигированных команд: могут повлиять на работоспособность сист, критичные (0 – ур прив, допустим только для ядра – в Dos все на ур ядра, в т ч ПП), напр сброс проц-ра загрузка сист таблиц; в Intel нет команд переключения задач – ОС, не явл привилегированными; б] команд, чувствит-ных к ур привилегий: могут вып-ся на неск кольцах (на 0-м вып-ются; самый низкий ур прив, на к-ом можно вып-ть эти пр-ммы, устанавл-ся с пом спец флага I(nput)O(utput) – 2 бита – обычно до 1-го ур; напрямую позволяют обр-ся к портам, работать с внеш устр-ми); в Intel есть и а, и б). В доп-е к командм, чувствит к ур прив, для защиты ввода/вывода в Intel предусмотрено исп-ние битовой карты вводв/вывода, она присоед-ся к TSS и ее размещение фикс-ся в этом сегм – эта карта сист-но-зав-ма. В ней есть по биту для кажд порта, в бите запис-ся доступность этого порта. 2. Защита данных. В байте прв доступа кажд деск-ре каждого сегм есть поле DPL (descriptor privilege level) – ур прив-гий сегм данных, опс-го этм деск-ром. Для кода, из к-го вып-ся обр-е к данным, также задается ур привилегий: CPL(current, тек), RPL(request, запрашиваемый), EPL(max CPL,RPL – эффективный). CPL=DPL того сегм кода, к-ый сейчас вып-ся. RPL берется из селектора, с пом к-го выбирается адресуемый сегм данных DPL>=EPL. При обр-нии к сегм стека допустимо только рав-во. При вып-нии ПП на 3-м ур прив создаются стеки и на всех ост-ных ур-нях – при обр-нии к сист ф-ии – ОС раб-ет со своим стеком. 3. Защита кода. Для передачи управл-я м/у ур-ми привилегий исп-ся шлюзы. Ф-я шлюза – выравнивание ур-ня прив. Шлюзование позв-ет обр-ся к более привилег-му коду. Шлюз м б на том же ур прив, с к-го происх обр-е. Либо он м б менее привилег-ным, чем код, к-рый обр-ся. Ур шлюза < ур, к коду к-го происх обр-е. Шлюз – это точка входа в сист проц-ру (это его осн ф-я). Сист код не доступен ни для чтения, ни для модиф. Аналогично при перекл-нии задач – шлюзы задач, к-е похожи на шлюзы вызова. ОС, исп-щие мех-мы защиты по ур прив, могут ограничить для себя кол-во исп-мых колец (разработчики): 1 вар-т – исп-ся только кольцо 0 – MS-DOS; 2 вар-т – 2 кольца защиты 0 и 3 – супервизор-польз-ль; 3 вар-т – исп-ся все кольца, вкл промежут. Защита на ур стр-ц обесп-ся делением на 2 ур – супербизор – польз-ль (бит S/U).
|