WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Архітектура ЕВМ - Реферат

Архітектура ЕВМ - Реферат


Реферат на тему:
Архітектура ЕВМ
Операційні системи
Перші Операційні системи (ОС) називались моніторами
Перші бізнес комп'ютери IBM360
Перша ОС фірми IBM називається TOS - TapeOpeartingSystem
DOS - дискова ОС, що знаходиться на диску.
MFT - мультизадачна ОС з фіксованою кількістю задач.
MVT - ОС з необмеженою кількістю задач.
IBM370 SVS - ОС з віртуальною пам'яттю.
SVM - система управління ОС.
Мікропроцесори
Після того, як з'явилась система I386, в архітектурі Були закладені основи роботи в віртуальній пам'яті.
ОС - програмно-технічний комплекс, призначений для ефективного управління ресурсами обчислювальної системи та надання послуг користувачам.
Критерії ефективності:
1. максимально завантажити обладнання обчислювального комплексу.
ОС, що задовольняють цьому критерію називають пакетними ОС.
В пакет включаються:
- вимоги до ресурсів;
- програма;
- дані.
Пакети накопичуються в ОС і вона, використовуючи критерій ефективності 1, виконує обробку пакету.
2. Діалоговий режим - надання послуг користувачам.
Ресурс - це все те, що ОС може розподілити між програмами( задачами ).
Вони бувають:
- фізичні : оперативна пам'ять, НЖМД, CPU(основний обчислювальний пристрій)
- логічні : поіменована пам'ять, файл, каталог, модуль, логічний канал.
Основна одиниця роботи ОС - задача( TASK )
Тривіальна модель виконання задачі
Нехай є множина комірок пам'яті різних типів. Комірка пам'яті певного типу приймає діапазон значень. Як стан програми будемо мати елемент:
[, , … ] - простір виконання задачі, де Ci - ім'я комірки, Mi - поточне значення певного типу.
Якщо є дві задачі, адресний простір яких перетинається, то це взаємодія двох задач через пам'ять.
f: простір простір - функція що і є наша програма.
В технологіях ОС для опису ресурсів використовуються дескриптори (таблиці). З
довільною задачею, що функціонує в середовищі ОС, пов'язується дескриптор задачі. Формат дескриптора залежить від типу ОС.
Дескриптор неявно (за рахунок посилок) описує всі ресурси, що виділені в задачі.
Елементи дескриптора задач:
Стан задачі:
1) Активна
2) готова до виконання
3) затримана
"Кругообіг" задачі ( по відношенню до CPU )
Пояснення:
1. Активна задача переходить в чергу затриманих в зв'язку з виконанням операції вводу/виводу.
2. По завершенню виконання операції вводу/виводу задача переходить в чергу готових до виконання.
3. У момент, коли виконується подія (1), з черги готових до виконання процесору призначається наступна задача
4. У задачі примусово відбирають процесор. Наприклад, по закінчені кванту часу.
Задачі та під задачі
У випадку, коли адресний простір декількох задач співпадає, можна вести мову про дерево задач
.
A- головна задача, C,D,E,F - підзадачі задачі A.
В момент призначення певній задачі процесора, відбувається операція зміна контексту
На рівні ОС існують методи, які дають:
- метод створити задачу
- метод знищити задачу
Приклад
Дві задачі функціонують в просторі, простори перетинаються.
Яким буде значення комірки після деякого часу t?
Комірки адресного простору, що належать декільком задачам, можна трактувати як ресурс (критичний ресурс).
Частина коду програми, що взаємодіє з критичним ресурсом називається критичним сегментом.
Правила роботи з критичними ресурсами:
1. Якщо декілька задач спробують одночасно модифікувати критичний ресурс, то допускається лише одна.
2. В довільний момент часу в критичному сегменті по відношенню до даного ресурсу, повинно знаходитись не більш однієї задачі.
3. Нескінчений час очікування виконання критичного сегменту блокується.
Після виконання 2х критичних сегментів .
Програмування критичних сегментів
Розглянемо програму
void f1(){…}
void f2(){…}
main() //f1 та f2 виконуються одночасно.
{parbegin
f1();f2();
parend;}
int count=0; //критичний ресурс
int iter=1 //черга першої задачі
void f1()
{while(iter==2)…;
//критичний сегмент
count++;
iter=2; //тепер черга другої задачі
}
void f2()
{while(iter==1)…;
//критичний сегмент
count++;
iter=1; //тепер черга першої задачі
}
Аналіз:
Наведена програма, якщо за коментуємо f1(), буде працювати у нескінченому циклі. Наведений приклад є помилкове рішення взаємодії двох задач по відношенню до ресурсу.
@ лекція 2 ( 21.02.03 )
Алгоритм Деккера.
(взаємодія через пам'ять)
Ця схема взаємодії враховує наявність двох процесорів CPU і вони мають різну швидкість.
Недоліки алгоритму:
1. Наведений алгоритм актуальний лише для взаємодії двох задач.(Існує модифікація алгоритму Деккера для багатьох задач)
2. Процес програмування взаємодії досить складний.
int C1=0, C2=0; // побажання
int queue = 1; // чия черга
void f1 (void) {
C1 = 1; // встановити побажання
while ( C2 = = 1 )
if ( queue = = 2 )
{C1 = 0; // зняти побажання
while ( queue = = 2) ; // цикл
C1 = 1;}
// критичний сегмент
. . .
// кінець критичного сегменту
С1 = 0; // зняти побажання
queue = 2; }
void f2 (void){
C2 = 1; // встановити побажання
while ( C1 = = 1 )
if ( queue = = 1 )
{C2 = 0; // зняти побажання
while ( queue = = 1) ; // цикл
C2 = 1;}
// критичний сегмент
. . .
// кінець критичного сегменту
C2 = 0; // зняти побажання
queue = 1; }
main () { parbegin
f1(); // якщо f1 та f2 працюють разом, то ця схема коректна і враховує
f2(); взаємодію двох потоків на СРU з різними швидкостями.
parend }
Схема:
f1 f2
Апаратні засоби взаємодії.
int global = 0;
void f1(void) {
int local;
while (1) //цикл взаємодії
{ local = 1;
while (local) test_and_set(local, global);
// критичний сегмент
. . .
// кінець критичного сегменту
global = 0;}
}
main () { parbegin
parend }
Схема:
f1 f1 f1
Недоліки:
1. Потрібно знати специфіку test_and_set
2. Якщо N потоків, то понижується ефективність обчислювальної установки.
P- ,V- операції Дейкстра.
Семафор - цілочислова змінна, над якою можна виконати 3 операції: INIT, P, V.
Двійковий семафор - семафор з початковим значенням 1.
Ресурс: друкарський
пристрій
А В С
Задача " постачальник - споживач ".
Область вводу-виводу називається буферний пул (програмний кеш).
Семафор:
SEMAFOR IN_BUF( N );
SEMAFOR OUT_BUF( N );
DATA BUFFER[ N ]; //буфернийпул
void постачальник (void) {
int ind_in_buf = 0;
while (1) { P( IN_BUF );
// критичний сегмент, наповнення елементів даних
. . .
//кінець критичного сегмента
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; }
Недоліки семафору Дейкстра:
1. Оскільки семафори є даними, що належать головній задачі, їх можна несанкціоновано змінити.
2. Реально семафорів не існує.
Монітори ресурсів
Інкапсуляція даних - технологія, коли дані відмежовуються від користувача, а йому предоставляється тільки інтерфейс.
Монітор ресурсу - структури даних та методи їх обробки, які знаходяться в ядрі операційної
Loading...

 
 

Цікаве