У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Реферат - Архітектура ЕОМ
37
критичного сегмента

V( OUT_BUF );

ind_in_buf = ( ind_in_buf + 1 ) % N; }}

void споживач (void) {

int ind_out_buf = 0;

while (1) { P( OUT_BUF );

// обробка даних з буферного пула

. . .

// кінець

V( IN_BUF );

ind_out_buf = ( ind_out_buf + 1 ) % N; }}

main () { parbegin

постачальник ();

споживая();

parend; }

Недоліки семафору Дейкстра:

Оскільки семафори є даними, що належать головній задачі, їх можна несанкціоновано змінити.

Реально семафорів не існує.

Монітори ресурсів

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

Монітор ресурсу – структури даних та методи їх обробки, які знаходяться в ядрі операційної системи. Доступ до методів монітора надається через апарат переривань.

Переривання – перехід від виконання прикладної задачі до функцій ядра ОС.

Переривання бувають апаратні – на рівні сигналів,

та програмні – через команду interrupt.

Умови виконання моніторe співпадають з умовами виконання критичного сегменту.

Для роботи з моніторами ресурсів запропоновано дві функції:

WAIT (<ім’я_черги_ресурса>)

SIGNAL (<ім’я_черги_ресурса >)

Ці операції допустимі в моніторах.

Семантика WAIT: задача, котра видала WAIT призупиняється. Управління отримує ядро операційної системи, яке відповідає за планування задач для CPU.

Семантика SIGNAL: по цій команді з черги задач, затриманих відносно даного ресурсу одна задача переходить в чергу готових до виконання. Та задача, що видала SIGNAL продовжує працювати.

@ лекція 3 ( 28.02.03 )

Задача “Читачі – письменники”

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

Існує інша модель, коли черга для читачів та письменників одна.

Правила роботи :

якщо “читач в залі” маємо вільний вхід для інших читачів;

якщо “письменник в залі” – обидві черги блокуються;

письменник запрошує до зали читача після завершення своєї роботи.

Опишемо програмну реалізацію цієї схеми.

class Reader_Writer {Queue Q_Reader;

Queue Q_Writer;

int R_count;

bool W_count;}

Reader_Writer(){Q_Reader(NULL);Q_Writer(NULL);R_count = 0;W_count = false}

begin_Reader(){ if (W_count) wait (Q_Reader); R_count++; signal(Q_Reader);}

end_Reader(){ R_count--; if (!R_count) signal(Q_Reader); else signal(Q_Writer);}

begin_Writer(){if (R_count)!!W_count wait(Q_Writer); W_count = true;}

end_Writer(){ W_count = false; if (Q_Reader != NULL) signal(Q_Reader);

else signal(Q_Writer);}

Реалізація монітора

В більшості ОС монітори реалізовані через апарат програмних переривань (машинна команда INT).

Код переривання це індекс в таблиці векторів програмних переривань. Значення вектора – адреса монітору ресурсу. Згідно з системними узгодженнями в момент виникнення переривання в регістрі функцій знаходиться код функції (її імя), а в регістрі даних – дані, що передаються монітору. Ядро ОС при цьому інтерпретується як системна задача, котру не можливо знищити та створити іншу таку задачу.

wait – передає керування ядру ОС, яке активізує нову задачу, змінює контекст, (wait – функція ядра ), та зберігає існуючий контекст.

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

Тупики в середовищі ОС

Семафори для принтера та модема – двійкові.

Тупик – deadlock – це така ситуація, коли одна або більше задач не можуть далі природно розвиватися.

Умови виникнення тупиків :

динамічний захват ресурсів (що є властивістю ОС);

наявність циклічних ланцюгів очікування.

( на малюнку: Пр – принтер, Мо – модель ).

Алгоритм банкіра. (спроба подолання проблеми тупиків)

Стабільним називається такий стан ОС, коли в найближчому майбутньому система не потрапить в тупик (може задовольнити певним ресурсом хоча б одну задачу)

Нехай в системі наявні одиниць ресурсу А, та - потреба -ї задачі в ресурсі А , - кількість одиниць ресурсу А, що надані -й задачі. Таким чином вільного ресурсу А : . Перспективні потреби -ї задачі- в майбутньому. Припускається, що та . За таких умов маємо наступну умову стабільності стану : , якщо ж умова порушується, то стан є нестійким. Якщо умова (1) в часі істина, то тупик не можливий, інакше існує потенційна можливість виникнення тупика.

Обмеженням алгоритму банкіра є те, що - величина постійна, що не відповідає реальним умовам роботи, скажімо з накопичувачем.

Способи боротьби з тупиками

прогнозування;

наявність моніторів контролю над завантаженням ресурсів;

дії оператора (адміністратора)

а) примусове динамічне керування ресурсами;

б) перезавантаження ОС.

@лекція 4 ( 7.03.03 )

Ресурси:

Пам’ять ЕОМ – менеджер( супервізор ) пам’яті.

Файли – логічна система вводу-виводу.

Процесор – диспетчер( супервізор ) задач.

Алгоритми управління ОП

а) однозадачні ОС ( наприклад MS-DOS )

LINK вільна ОП LOAD

апаратура ядро ОС – пам’ять для прикладної задачі динамічні

ЕОМ це частина ОС, компо-

яка завжди ненти ОС

присутня в ОП.

В більшості архітектур ЕОМ передбачаються дві стратегії завантаження модулів:–

LINK – завантаження модулів по принципу stek–

LOAD – завантаження модулів по принципу КУПА, тобто модулі завантажуються і

розвантажуються в будь-якій послідовності.

Вільна ОП використовується під завантаження модулів та при динамічних запитах щодо даних( malloc free ).

Поглянемо на ситуацію з точки зору вільної пам’яті:

20k 20k 10k 10k 5k 5k 5k =75k

ядро ОС – сегменти вільної ОП

Сегменти вільної ОП перемежовуються з програмами та даними.

Вільна пам’ять збирається в список вільної пам’яті.

Існує комірка, яка є головою списку вільної пам’яті. В залежності від архітектури ЕОМ зручними для адресації є сегменти пам’яті, адрес котрих кратний певному числу.

Приклад

В архітектурі Intel адрес кратний 16-ти.

Адрес даних формується як: БАЗА + ЗМІЩЕННЯ.

Регістр бази мав 16 біт: 16 4

– реальний адрес

20біт

В цій архітектурі взяти пам’яті менше 16-ти байт неможливо.

Проблема сегментації – поділ вільної пам’яті на сегменти, які перемежовуються програмним кодом та даними, – основна проблема управління ОП.

Приклад

В MS-DOS:

300k 20k 200k

ядро ОС драйвер BIOS

клавіатури

Завантажити >350k не можемо.

Оверлейна структура *.ехе – модуля

*.ехе

10k 50k


Сторінки: 1 2 3 4 5