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

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

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

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

Реферат на тему:

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

Операційні системи

Перші Операційні системи (ОС) називались моніторами

Перші бізнес комп'ютери IBM360Перша ОС фірми IBM називається TOS - TapeOpeartingSystemDOS - дискова ОС, що знаходиться на диску.MFT – мультизадачна ОС з фіксованою кількістю задач.MVT - ОС з необмеженою кількістю задач.IBM370 SVS – ОС з віртуальною пам'яттю. SVM – система управління ОС.

Мікропроцесори

Після того, як з'явилась система I386, в архітектурі Були закладені основи роботи в віртуальній пам'яті.

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

Критерії ефективності:

  1. максимально завантажити обладнання обчислювального комплексу.

ОС, що задовольняють цьому критерію називають пакетними ОС.

В пакет включаються:

– вимоги до ресурсів;

– програма;

– дані.Пакети накопичуються в ОС і вона, використовуючи критерій ефективності 1, виконує обробку пакету.

  1. Діалоговий режим - надання послуг користувачам.

Ресурс – це все те, що ОС може розподілити між програмами( задачами ).Вони бувають: – фізичні : оперативна пам'ять, НЖМД, CPU(основний обчислювальний пристрій)– логічні : поіменована пам'ять, файл, каталог, модуль, логічний канал.Основна одиниця роботи ОС – задача( TASK )

Тривіальна модель виконання задачі

Нехай є множина комірок пам'яті різних типів. Комірка пам'яті певного типу приймає діапазон значень. Як стан програми будемо мати елемент: [<C1, M1>, <C2, M2>, ... ] – простір виконання задачі, де 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 виконуються одночасно.{parbeginf1();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

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

Loading...

 
 

Цікаве