Конспект установочных лекций по комплексному курсу Информатика, Теория информации




Методы реализации системного программирования - часть 10


Эти регистры назовем регистром базы и регистр конца. При выполнении программы ее адресация ведется относительно содержимого регистра базы (динамическая фиксация), а с помощью регистра конца проверяется, используется ли допустимый адрес (защита памяти).

Загрузка регистров базы и конца осуществляется привилегированной командой, которая доступна только системе (в противном случае было бы невозможно обеспечить защиту памяти). В режиме системы зашить памяти должна, по крайней мере частично, исключаться, чтобы сделать доступной для системных программ необходимую им информацию (абсолютная адресация). Таким образом, существуют различные виды адресации.

Одновременное использование подпрограмм

Определенные программные части (хранимые в определенных сегментах) в мультипрограммном режиме используются во многих секциях. Было бы неэффективно и расточительно, если бы каждая секция обладала своей копией соответствующих кодов. Поэтому такие отрезки кодов помещают в специальные области памяти для совместного использования. Чтобы подпрограмма могла использоваться одновременно несколькими программами, требуется принять перечисленные ниже меры предосторожности. Эти меры могут быть поддержаны аппаратурой, например путем введения специального регистра (см. трансляционный регистр в [SEEGMULLER 761) или путем соблюдения соответствующей дисциплины программирования. Фрагмент программы, который в отношении адресных пространств гарантирует его корректное выполнение без каких-либо мер для взаимных исключений, называется реентерабельным (инвариантным к входу, с повторной входимостью, англ. reentrant). Технически это означает, что специфичные для программы адреса и данные управляются только через специальные организационные адреса, которые должны удовлетворять определенным условиям. Таким образом, при составлении реентерабельных программ необходимо обращать внимание на следующие требования:

·         внутри сегмента, который содержит реентерабельную подпрограмму, нельзя что-либо запоминать;




Содержание  Назад  Вперед