Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Юрий Владимирович самый уважаемы человек =)экза...doc
Скачиваний:
5
Добавлен:
12.09.2019
Размер:
1.41 Mб
Скачать

80. Індексні регістри дескрипторів

Индексный регистр — регистр процессора в современных ЦПУ, используемый для автоматического изменения адреса операнда во время исполнения программы.

Общее назначение

Обычно индексный регистр используется для выполнения операций с индексными массивами.

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

Количество индексных регистров в ЦПУ может достигать нескольких десятков. Их быстродействие, обычно, на порядок выше быстродействия основной оперативной памяти. Индексный регистр повышают производительность ЦПУ, уменьшет объём программы, осуществляя автоматическую переадресацию одновременно с другими операциями.

Индексные регистры стали стандартной частью процессора во втором поколении компьютеров (примерно 1955-1964 годах).

Индексные регистры в процессорах архитектуры x86

В архитектуре x86 индексные регистры называются SI и DI. При базово-индексной адресации их содержимое может суммироваться с содержимым регистра BX.

Индексный регистр-источник SI применяется в качестве указателя адреса байта или слова в таких строковых командах, как LODS (загрузить строку), CMPS (сравнить строку), MOVS (переслать строку).

Индексный регистр-приёмник DI используется как указатель назначения для адреса байта или слова в строковых командах, таких как SCAS (сканировать строку), CMPS, MOVS, STOS (записать строку).

81. Віртуалізація пам’яті

Метою віртуалізації ресурсів в ОС є зменшення конфліктів при керуванні процесами й розподілі ресурсів та надання користувачеві ресурсів, які реально не існують, тобто віртуальних ресурсів, або реальних, але з погіршеними характеристиками. Віртуалізація ресурсів для паралельно виконуваних процесів створює ілюзію одночасного використання того, що у фоннеймановських процесорах одночасно існувати не може, і є основою багатозадачності. Користувачі дістануть ресурси, які значною мірою задовольняють їх за своїми характеристиками, знімається велика частка обмежень на кількість розподілюваних ресурсів. Це збільшує швидкість розвинення процесів та гнучкість їхнього керування у межах багатозадачності [2].

На прикладі інтервального таймера можна подати віртуалізацію фізичного пристрою, коли він “розмножується” й на його підставі будується потрібна кількість віртуальних таймерів, але жоден з користувачів-процесів не відчуває нестачі цього ресурсу.

Принцип віртуалізації у даному разі є такий: таймер – це пристрій, який може оцінювати інтервал часу, після завершення якого він подає сигнал на переривання обслуговування процесу. До диспетчера інтервального таймера формується черга запитів від окремих процесів. Процеси у черзі розташовано за зростанням часових інтервалів, і це трактується як пріоритет процесів на використання ресурсу інтервального таймера. Після чергового переривання на інтервальний таймер встановлюється інтервал, що він дорівнює різниці поміж моментом часу, коли має виникнути наступне поточне переривання, та моментом поточного переривання, тощо.

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

Віртуалізація периферійних пристроїв, які за своїм типом є послідовно використовуваними ресурсами, називається спулінгом. Найбільш типовим з таких пристроїв є принтер, який у системі, зокрема в локальній мережі, надто активно використовується, причому процесами, які розвиваються паралельно.

Спулінг зреалізовується за таким алгоритмом: кожний периферійний пристрій як віртуальний моделюється областю зовнішньої пам’яті, як правило, на твердому диску. Така пам’ять може тлумачитися як буфер поміж реальним пристроєм та відповідним процесом, який потребує цього пристрою. Буфер накопичує дані в міру виконання процесом команд виведення, але ці команди надсилають дані насправді не на принтер, а до буфера на диску. У кожного з процесів виникає ілюзія, що він надіслав дані на реальний пристрій. Фактичне ж передавання інформації на принтер відбудеться за чергою після того, як процес завершиться. Це зберігає цілісність даних. Так само може бути віртуалізовано пристрій введення. Одночасно багатозадачна операційна система підтримує безліч вхідних та вихідних буферів; їхне заповнення, моменти готовності використання процесами вхідних буферів та моменти завершення процесами заповнювання вихідних буферів нескінченно змінюються, тому вхідні та вихідні буфери сполучаються у черги, які обслуговуються за певними дисциплінами.

Віртуалізація пам’яті здійснюється на підставі твердого диска та апаратної підтримки на рівні архітектури сучасних 32-розрядних процесорів сегментного, сторінкового або сегментно-сторінкового обміну (свопингу) поміж ПЗП та твердим диском під керуванням ОС.

Узагальненням поняття віртуалізації є віртуальна машина. Надана користувачеві віртуальна машина відтворює архітектуру реальної машини, але з новими, зоптимізованими характеристиками:

необмежена за обсягом пам’ять з довільним, зручним для користувача доступом;

один чи більше процесорів, здатних виконувати програми, написані кількома мовами програмування;

необхідна кількість зовнішніх пристроїв зі зручним способом доступу та подання інформації без обмеження щодо її обсягу.

Чим більше наближується віртуальна машина до ідеальної, тим більше її характеристики відрізняються від тих, які має апаратна платформа, на базі якої засобами конкретної ОС вона зреалізовується, й тим вище ступінь її віртуальності.

Примірні характеристики віртуальної машини можуть бути такі:

1 Єдина за логікою роботи віртуальна пам’ять, практично необмежена за обсягом пам’ять із середнім терміном доступу, близьким до значення цього параметра для ПЗП. Робота з інформацією, розміщеною в такій пам’яті, провадиться в термінах опрацьовування даних на рівні обраної мови програмування.

2 Необхідна кількість віртуальних процесорів, які можуть працювати паралельно та взаємодіяти під час роботи, способи керування процесорами – синхронізація, інформаційна взаємодія – доступні користувачам з рівня використовуваної мови програмування в термінах керування процесами.

3 Необхідна кількість віртуальних зовнішніх пристроїв, здатних працювати з пам’яттю віртуальної машини паралельно чи послідовно, асинхронно чи синхронно стосовно роботи того чи іншого віртуального процесора, які ініціюють роботу цих пристроїв. Дані, що передаються або зберігаються на віртуальних пристроях, є не обмежені за обсягом, доступ до них здійснюється на підставі послідовного чи прямого доступу до пам’яті.

Концепція віртуалізації широко використовується у проектуванні та зреалізовуванні операційних систем, структуру яких можна подати у вигляді набору планувачів процесів та розподілювачів ресурсів, моніторів, які й забезпечують їхню віртуалізацію [2].

Разновидностью виртуальной памяти является свопинг.

На рисунке 2.16 показан график зависимости коэффициента загрузки процессора в зависимости от числа одновременно выполняемых процессов и доли времени, проводимого этими процессами в состоянии ожидания ввода-вывода.

Рис. 2.16. Зависимость загрузки процессора от числа задач и интенсивности ввода-вывода

Из рисунка видно, что для загрузки процессора на 90% достаточно всего трех счетных задач. Однако для того, чтобы обеспечить такую же загрузку интерактивными задачами, выполняющими интенсивный ввод-вывод, потребуются десятки таких задач. Необходимым условием для выполнения задачи является загрузка ее в оперативную память, объем которой ограничен. В этих условиях был предложен метод организации вычислительного процесса, называемый свопингом. В соответствии с этим методом некоторые процессы (обычно находящиеся в состоянии ожидания) временно выгружаются на диск. Планировщик операционной системы не исключает их из своего рассмотрения, и при наступлении условий активизации некоторого процесса, находящегося в области свопинга на диске, этот процесс перемещается в оперативную память. Если свободного места в оперативной памяти не хватает, то выгружается другой процесс.

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