ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Основні компоненти нд
         

     

    Інформатика, програмування
    Структура та основні компоненти обчислювальної системи

    Працюючи на машині, ми співпрацюємо не з апаратною реалізацією, а з програмним забезпеченням.

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

    Структура організації обчислювальної системи (НД):

    Прикладні програми

    Системи програмування

    Управління логічними пристроями

    Управління фізичними пристроями

    Апаратні засоби

    Апаратні засоби.

    Ресурси нд поділяються на два типи:

    що не беруть участі в управлінні програмою (обсяг вінчестера і т.д.).

    що беруть участь в управлінні програмою (розмір комірки пам'яті, об'єм оперативної пам'яті, швидкість виконання команд).

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

    Управління фізичними пристроями.

    Управління фізичними пристроями здійснюють програми, орієнтовані на апаратуру, які взаємодіють з апаратними структурами, які знають "мова" апаратури.

    Управління логічними пристроями.

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

    Системи програмування .

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

    Прикладне програмне забезпечення.

    Прикладне програмне забезпечення необхідне для вирішення завдань з конкретних галузей.

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

    Структура ЕОМ:

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

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

    ЦП вибирає з ОЗУ послідовність команд для виконання. ЦП складається з двох компонентів:

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

    Арифметичне Пристрій (АУ) займається виключно обчисленнями.

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

    Лекція № 2

    Ми визначили, що обчислювальна система (НД) це деякий об'єднання апаратних засобів, засобів керування апаратурою (фізичними ресурсами), засобів управління логічними ресурсами, системи програмування й прикладне програмне забезпечення.

    Прикладні програми

    Системи програмування

    Управління логічними пристроями

    Управління фізичними пристроями

    Апаратні засоби

    Ми визначили, що нижній рівень - це чисто апаратура, це те, що робиться з металу, пластику та інших матеріалів, що використовуються для виробництва заліза, або hardware комп'ютера.

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

    Наступний рівень - це рівень, який орієнтований на згладжування апаратних особливостей. Він цілком і повністю призначений для створення більш комфортних умов у роботі користувача. Якщо припустимо ми працюємо з пристроєм зовнішньої пам'яті "жорсткий магнітний диск", то параметрами, які характерні для конкретного диска, можуть бути, припустимо, скільки зчитують та записуючих голівок має цей пристрій, скільки поверхонь, на яких знаходиться зберігає інформацію шар. І, відповідно, набір команд управління цього пристрою орієнтований на ці параметри. І звичайно, вам, як програмістам, не цікаво працювати в термінах: вважати біт з другої поверхні десяту циліндра такий-то доріжки. Це важко і нецікаво. Цей рівень логічних ресурсів створює якийсь узагальнений пристрій одне на всю систему, і користувач працює в термінах цього узагальненого пристрою. А вже програми логічного рівня розбираються до якої з програм управління фізичними пристроями треба звернутися щоб запит користувача до логічного пристрою правильно оттрансліровать до конкретного фізичного пристрою.

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

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

    У принципі зовнішній пристрій можна реалізувати на оперативній пам'яті. Якщо ви знаєте, є така чудова програма, яка називається MS-DOS. Ця операційна система (хоча вона класично не є операційною системою) має обмеження на розмір використовуваної пам'яті 640Кб. А апаратура реальних машин на сьогоднішній день може мати фізичну оперативну пам'ять істотно великих розмірів. У цій системі можна створювати логічний диск, який розміщується на оперативній пам'яті. Тобто по всіх інтерфейсів робота з ним буде здійснюватися як з жорстким диском, але він буде розміщуватися на оперативній пам'яті. І тут різниця в тому, що з тих 640Кб процесор бере команди на виконання, а з решту, що ми оголосили логічним диском, не бере, тому що він буде працювати з ним як зі звичайним жорстким диском або будь-яким іншим носієм.

    Ми з вами почали більш докладно говорити про процесор і зафіксували одну з основних проблем, яка має місце бути в області обчислювальної техніки. Вона формулюється так - це невідповідність у швидкостях доступу й обробки інформації, різних компонентів обчислювальної системи. Чому - у кожного компонента є своя передісторія. Десь це просто реально повільне пристрій, де якось впливає на цю швидкість вина провідників, які знаходяться між процесорним елементом і конкретним пристроєм. Для кожного випадку своя причина. Але це є проблема. Те, що реальна оперативна пам'ять на порядки більш повільна, ніж швидкість обробки інформації в процесорі. І тут виникає в загальному божевільна проблема: навіщо нам підвищувати продуктивність процесора, якщо доступ до пам'яті (а ми весь час щось беремо з пам'яті, тому що робота процесора це обробка інформації, яку він бере з пам'яті) якщо доступ до пам'яті у нас настільки уповільнений. Тобто гарантовано, якщо нічого не буде зроблено конструктивно, то швидкість всієї системи буде дорівнювати швидкості роботи компонента, що має найменшу швидкість.

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

    Спеціальні регістри. До цієї групи відносяться дві підгрупи регістрів.

    1. Перша підгрупа - це регістри, що відповідають за стан виконуваної програми. До цих регістрів відноситься лічильник команд. Цей реєстр містить адресу що виконується в даний момент команди. Це той самий регістр, який можна змінювати тільки побічно, передавши управління кудись. Другий регістр з цієї ж підгрупи - регістр результату (flags), що містить результат виконання останньої команди. За значенням цього регістра можна організовувати ті чи інші дії. До цієї підгрупи відноситься також регістр покажчика стека. Є команди, які працюють зі стеком. Ці команди зазвичай використовуються для програмування переходів з і у функцію. Стек в системі використовується для передачі параметрів та організації автоматичної пам'яті. Це пам'ять, яка займається відносно вершини стека при вході у функцію, і, при виході, вона звільняється. Тому в автоматичних змінних не можна зберігати дані після виходу з функції.

    2. Друга підгрупа регістрів - це регістри управління компонентами обчислювальної системи, або керуючі регістри. Практично в будь-який обчислювальної системі є регістри, призначені для організації взаємозв'язку процесора з зовнішнім світом. Ці регістри зв'язуються з УУВУ і через ці регістри процесор може організовувати управління зовнішніми пристроями. Наприклад, якщо візьмемо регістр управління жорсткого диска, то в нього можуть бути наступні поля:

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

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

    Система переривань. До засобів, керуючим взаємозв'язком із зовнішніми пристроями, можна віднести систему переривань. У кожній обчислювальній машині є визначений, заданий при розробці і виробництві, набір деяких подій і апаратних реакцій на виникнення кожного з цих подій. Ці події називаються переривань. Апарат переривань використовується для управління зовнішніми пристроями і для отримання можливості асинхронної роботи із зовнішніми пристроями. Синхронна робота, це коли система каже: "Дай мені блок інформації", і потім стоїть і чекає цього блоку. Асинхронна - це коли система каже: "Принеси мені, будь ласка, блок інформації", і продовжує свою роботу, а коли приходить блок, вона переривається (по перериванню завершення обміну) і приймає інформацію. Така схема переривань. Одним з переривань, які є в системі, є переривання по завершенню обміну.

    У момент виникнення переривання, дії в апаратурі нд наступні:

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

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

    Запускається програма обробки переривань операційної системи.

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

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

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

    Регістри буферної пам'яті (Cache, КЕШ). Наступна група регістрів - регістри, що відносяться до так званої буферної пам'яті. Ми повертаємося до проблеми взаємодії процесора і оперативної пам'яті і згладжувати швидкостей доступу в оперативну пам'ять.

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

    Алгоритм читання з оперативної пам'яті наступний:

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

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

    регістровий буфер

    Виконавчий

    адреса

    Вміст

    Ознака

    "старіння"

    ...

    ...

    ...

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

    Алгоритм запису в оперативну пам'ять симетричний. Коли в програмі зустрічається команда запису операнда в пам'ять, апаратура виконує наступні дії. Перевіряється наявність у буфері рядки з заданим виконавчим адресою. Якщо такий рядок є, то в полі "Вміст" записується нове значення, і апаратно коректується ознака старіння рядків. Якщо такий рядки ні, то запускається описаний вище процес виштовхування, і потім інформація розміщується в звільнилася рядку.

    Цей буфер читання/запису є досить потужним засобом для мінімізації звернень до ОЗП. Найбільший ефект досягається при невеликих циклах, коли всі операнди розміщуються в буфері, і після цього циклічний процес працює без звернень до ОЗП. Іноді, ці буфера називають кеш-буфер, а також асоціативної пам'яттю, тому що доступ до цієї пам'яті здійснюється не за адресою (як в ОЗУ), а за значенням поля. Реально, всі механізми можуть бути влаштовані інакше, ніж ми тут вивчаємо, тому що ми вивчаємо деяку узагальнену систему.

    Наступним компонентом, який ми з вами розглянемо з точки зору системного підходу, а системний підхід має на увазі те, що ви розглядаємо річ не саму по собі, а в контексті взаємозв'язку з іншими компонентами, це деякі властивості ОЗУ.

    Оперативна пам'ять

    1-й блок

    2-й блок

    . . .

    k-й блок

    0

    1

    . . .

    k-1

    k

    k +1

    . . .

    2k-1

    . . .

    . . .

    . . .

    . . .

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

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

    Лекція № 3

    Ми продовжуємо розгляд нашої спрощеної схеми. У сучасних авто є ще одне апаратний засіб, яка покликана підтримувати роботу обчислювальної системи. Це, так звана, віртуальна пам'ять. На сьогоднішній день всі обчислювальні машини (за винятком особливо раритетних) працюють в мультипрограмному (мультипроцесорної) режимі. Суть його полягає в тому, що є декілька процесів, які одночасно виконуються в обчислювальній системі. Подивимося, як цей мультипрограмному режим впливає на використання оперативної пам'яті.

    Операційна

    система

    Завдання № 1

    Завдання № 2

    Завдання № 3

    .

    .

    .

    Припустимо: в початковий момент часу якусь частину оперативної пам'яті зайняла операційна система (так воно і відбувається). Після цього була завантажена програма № 1, потім програми № 2, № 3 (і т.д.). Операційна система почала виконувати ці програми в мультипрограмному режимі. Виникає питання: чи завжди будь-яку програму можна помістити в довільний діапазон адресного простору оперативної пам'яті? Чи має програма властивістю переміщення по пам'яті? Наскільки завдання пов'язана з адресним простором, на яке її запрограмували? Це перша проблема. Друга проблема: цей процес іде, і зрозуміло, що в якісь моменти часу якісь з цих завдань закінчуються (наприклад Завдання № 2). При цьому в пам'яті утворюються вільні фрагменти.

    Операційна

    Система

    Операційна

    Система

    Завдання № 1

    Завдання № 1

    Завдання № 6

    Завдання № 3

    Завдання № 3

    .

    .

    .

    .

    .

    .

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

    Фрагментація може відбуватися і в оперативній пам'яті, і на зовнішньому пристрої, що запам'ятовує. У результаті через деякий час виникає досить цікава і сумна ситуація: вільного адресного простору багато, але при цьому ми не можемо завантажити жодної нової задачі. Це означає, що система в цілому починає деградувати. Наприклад, якщо Ви надішлете замовлення на виконання якоїсь дії, то Вам доведеться невиправдано довго чекати.

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

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

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

    Після цього запускається програма, і починає діяти апарат (або механізм) віртуальної пам'яті. Пристрій керування вибирає чергову команду. З цієї команди воно обирає операнди, тобто адреси і ті індексні регістри, які беруть участь у формуванні адреси. Пристрій управління (автоматично) обчислює виконавчий адресу того значення, з яким треба працювати в пам'яті. Після цього автоматично (апаратно) відбувається перетворення адреси виконавчого програмного (чи віртуального) на адресу виконавчий фізичний за допомогою тих самих таблиць, які були сформовані операційною системою при завантаженні даної програми в пам'ять. І продовжується виконання команди. Аналогічно виконується і, наприклад, команда безумовного переходу на якусь адресу. Точно так же пристрій управління обчислює спочатку адреса виконавчий, після чого він перетворюється на адресу фізичний, а потім значення цього фізичної адреси поміщається в лічильник команд. Це і є механізм віртуальної пам'яті.

    Розглянемо найпростіший приклад організації віртуальної пам'яті: обчислювальну систему з, так званої, сторінкової організацією пам'яті. Суть сторінкового пам'яті полягає в тому, що апаратно всі адресний простір оперативної пам'яті розділено на блоки фіксованого обсягу. Зазвичай розмір таких блоків дорівнює ступеня двійки. При цьому зберігається наскрізна нумерація елементів пам'яті. Структура адреси в цiй обчислювальної машині така: адресу будь-якої комірки пам'яті представлений у вигляді двох полів; старші його розряди є номером сторінки, а молодші розряди є зміщенням відносно сторінки (тут використовується той факт, що розмір сторінки дорівнює ступеня двійки).

    Виконавчий адреса

    № Сторінки

    Зсув відносно сторінки

    Отже, ми маємо машину з сторінкової організацією пам'яті. Для управління цією сторінкової пам'яттю, процесор містить, так звану, таблицю приписки (ТП). Це апаратний засіб машини, реалізоване за допомогою регістровий пам'яті. Структура цієї таблиці:

    Таблиця приписки

    № Віртуальної

    сторінки

    № Фізичної

    сторінки

    0

    25

    1

    1

    2

    30

    .

    .

    .

    .

    .

    .

    L-1

    -1

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

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

    Насправді, коли операційна система звертається до якоїсь рядку таблиці, то спочатку вона робить контроль. Насправді, рядок ТП містить певний код, який є або адресою фізичної сторінки, або деяким спеціальним кодом, на який схеми управління процесора реагують певним чином. Наприклад, якщо цей код більше або дорівнює нулю, це означає, що можна продовжувати роботу. Якщо ж у цьому рядку міститься код менше нуля, наприклад -1, то звернення до неї пристроїв перетворення віртуальної адреси в фізичний, викличе переривання. Це переривання зазвичай називається перериванням по захисту пам'яті. Справа в тому, що операційна система, заповнюючи ТП, вказує, які з віртуальних сторінок адресного простору не належать даній програмі, і якщо відбувається вихід за межі дозволеної пам'яті, генерується переривання по захисту пам'яті.

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

    Продовження в темі "Операційні системи"

    (підкачки, або SWAPPING)

    Зовнішні пристрої

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

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

    Є металевий циліндр великої ваги (вага тут має значення для підтримки стабільної швидкості обертання), що обертається навколо своєї осі. Поверхня цього циліндра покрита шаром матеріалу, здатного зберігати інформацію (з нього можна читати і на нього можна записувати інформацію). Над поверхнею барабана розміщується p зчитують головок. Їх положення зафіксоване над поверхнями, які називаються треками (track). Кожен трек поділений на рівні частини, які називаються секторами. В кожний момент часу у пристрої може працювати тільки одна головка. Запис інформації відбувається по треках магнітного барабану, починаючи з певних секторів. Координатами інформації служать наступні параметри (№ Трек, № Сектора і Обсяг інформації).

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

    Магнітні диски.

    Є декілька дисків, розміщених на одній осі, які обертаються з деякою постійною швидкістю. Кожен такий диск може мати дві інформаційно-несучі поверхні (верхню і нижню), покриті шаром, здатним фіксувати інформацію. Диски мають номери; поверхні кожного диска також пронумеровані (0,1). Концентричних окружностях одного радіуса на кожному диску відповідає умовний циліндр. Диск також розбито на сектори. Координати інформації на диску (№ Диска, № Поверхні, № Циліндра, № Сектора).

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

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

    Лекція № 4

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

    Я звертаю вашу увагу на те, що ці лекції не є лекції з UNIX-у, який ми з вами будемо розглядати, це не є лекції з сторінкової організації пам'яті - це лекції, спрямовані на те, щоб ви зрозуміли значення слова " система "у терміні" обчислювальна система ". Вже зараз ми торкаємося механізми роботи з кешами, з буферами і переривань. І це досить складно. А якщо ми візьмемо машину, у якої не один, а кілька процесорних елементів, що працюють з одного пам'яттю, то у нас виникають досить складні проблеми з буферизацією роботи з пам'яттю. Те, що ми з вами розглядаємо на лекції - це дуже простий зріз (можна сказати, лекція для колгоспників), щоб у вас склалося хоча б концептуальне розуміння, бо ми не охопимо всього.

    Ми з вами закінчили минулий лекцію розглядом деяких типів ВЗП: магнітного барабану, магнітних дисків. Ми виявили на концептуальному рівні відмінності цих пристроїв, тому що мета наших лекцій не вивчити їх роботу, а навчитися порівнювати ті чи інші компоненти обчислювальної системи. Ми з вами з'ясували, що ВЗП, такі як магнітний барабан і магнітні диски, можуть характеризуватися ступенем участі механічних дій виконання замовлень на обмін. Чим більше механічних дій, тим повільніше відбувається обмін. Існує екзотичний вид зовнішньої пам'яті - пам'ять на магнітних доменах.

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

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status