Архітектура комп'ютерів

Автор работы: Пользователь скрыл имя, 18 Сентября 2013 в 02:14, реферат

Краткое описание

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

Прикрепленные файлы: 1 файл

АК лекции.doc

— 1.42 Мб (Скачать документ)

Формування лінійної адреси.

Формування лінійної адреси в мікропроцесорі x86 показано на рисунок E.2.

 

З рисунка видно, що базова адреса сегмента й ефективну адресу беруть рівноправну участь у формуванні лінійної адреси.

Формат дескрипторной таблиці.

 

На малюнку E.3. приведено формат дескрипторів у дескрипторных таблицях. На них позначені:

 

Базова адреса (32-х бітний) – базова адреса сегмента. Саме ця адреса сформує процесор при нульовому зсуві.

Межа (20-бітний). Визначає розмір сегмента в байтах.

Біт присутності (P) встановлений у  стан 1, коли він знаходиться (є присутнім) у фізичній пам'яті.

Двухбитное поле привілеїв (DPL) визначає рівень привілеїв сегмента. Існують  чотири рівні привілеїв: від 0 до 3.

Біт S (системний, сегмент) завжди встановлений у 1, якщо цей об'єкт у дескрипторной таблиці є сегментом. У випадку S=0 даний об'єкт може бути, а може і не бути сегментом пам'яті.

Біт гранулярности G. При біті гранулярности G = 0 межа сегмента виміряється в  байтах, а при G = 1 - у сторінках по 4 Кбайт.

Біт D – розмір за замовчуванням. Він визначає, яка з размерностей для даних (16 чи 32 біта) застосовується для операндов процесора. При D=0 процесор інтерпретує вміст сегмента коду як 16-ти бітний код процесора і80286, а при D=1 – як 32-х бітний код процесора і80486 і старше. Використання біта D – найпростіший  спосіб переключення між 16-ти і 32-х бітними додатками.

Біт A – доступу і звертання. Цей біт процесор автоматично встановлює в стан 1, коли відбувається звертання до сегменту у фізичній пам'яті, описуваним даним дескриптором. Він призначений для запобігання свопинга сегмента на диск у момент звертання до нього.

Біт X зарезервований корпорацією  Іntel для своїх майбутніх розробок. Він повинний завжди дорівнювати 0.

Біт U може бути використаний програмістом для своїх цілей.

Трехбитное поле ТИП використовується для вказівки цільового використання сегмента. Його значення:

000b – сегмент даних, дозволене тільки зчитування.

001b – сегмент даних, дозволені зчитування і запис.

010b – сегмент стека, дозволене тільки зчитування (не використовується в практиці.)

011b – сегмент стека, дозволено читання і запис.

100b – сегмент коду, дозволене тільки виконання.

101b – сегмент коду, дозволені виконання і зчитування.

110b – підлеглий сегмент коду, дозволене тільки виконання.

111b – підлеглий сегмент коду, дозволені виконання і зчитування.

Сторінкова організація пам'яті. Віртуальна пам'ять.

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

Керування сторінковою розбивкою  пам'яті звичайно покладається на спеціальну мікросхему MMU (Memory Managment Unіt - пристрій керування пам'яттю). У мікропроцесорі і80486 і вище цей пристрій убудований у процесор.

Як і сегментація, сторінкова організація  пам'яті зв'язана з перетворенням  віртуальної адреси (у даному випадку  лінійного) у фізичний. У сторінковому перетворенні базовим об'єктом пам'яті є блок фіксованого розміру, називаний сторінкою (page). Розмір сторінки - 4 Кбайт.

Структура сторінок.

При дозволеному сторінковому перетворенні фізична пам'ять комп'ютера розбивається на сторінки. Іноді сторінки називають сторінковими кадрами – page frame, – розміром; Кбайт. Оскільки частина сторінок знаходиться поза фізичною пам'яттю, передбачений механізм заміни сторінок за вимогою. Це дозволяє програмам використовувати для своїх нестатків весь лінійний адресний простір, не піклуючись про тім,  чи зайнята фізична пам'ять іншими процесами.

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

НА відміну від сегмента, для  сторінок є тільки два рівні привілеїв: користувальницький (User) і супервізора (Supervіsor). Користувальницький рівень привілеїв  відповідає рівню 3 для сегмента, а  рівень супервізора – рівням привілеїв сегмента 0, 1 і 2.

Формування адреси при сторінковому перетворенні.

У процесі сторінкового перетворення старші 20 біт 32-х бітної лінійної адреси заміняються новим значенням  – номером фізичної сторінки. Молодші ж 12 біт лінійної адреси визначають положення байта усередині сторінки і залишаються незмінними.

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

Коренева сторінка, називана каталогом  сторінок, містить 1024 32-х бітних дескриптора, називаних елементами каталогу сторінок PDE (Page Dіrectory Entry). Кожний з них адресує підлеглу таблицю сторінок. Кожна з цих таблиць містить 1024 32-х бітних дескриптора, називана елементами таблиці сторінок. PTE (Page Table Entry). Кожен PTE містить адреса сторінкового кадру у фізичній пам'яті.

Власне перетворення лінійних адрес  у фізичні складається з наступних  дій:

  • Старші 10 біт 31 – 22 лінійної адреси, доповнені двома молодшими нулями, служать індексом PDE.
  • Середні 10 біт 21 – 12 лінійної адреси, доповнені двома молодшими нулями, індексують таблицю сторінок PTE. Елемент PTE містить 20-бітна базова адреса сторінкового кадру у фізичній пам'яті.

Ця базова адреса з елемента PTE поєднується  з молодшими 12-ю бітами лінійної адреси, утворити 32-х бітна фізична адреса. Пояснення – дивися рисунке E.6.

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

Рівні захисту.

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

Найпростіші рівні привілеїв, реалізовані  в ЕОМ 60-х років – це робота в режимах користувача (User) і системи, чи супервізора (Supervіsor). Ця дворівнева модель добре зарекомендувала себе в системах, коли одна велика ЕОМ (операційна система, процес і т.п.) обслуговувала декількох рівноправних користувачів. Дворівнева система привілеїв працює на комп'ютерах Apple Macіntosh аж до дійсного часу й у мікропроцесорах x86 при сторінковій організації пам'яті.

З появою сучасних технологій роботи обчислювальної техніки (технології Клієнт-сервер, "тонкі" клієнти, Jіnі і т.п.) двох рівнів привілеїв сталася не вистачати. Передбачаючи цю проблему, фірма Іntel запропонувала у своєму процесорі і80386 четырехуровневую систему привілеїв на рівні сегмента.

Четырехуровневая система привілеїв  у мікропроцесорах з архітектурою x86.

Процесори x86 підтримують чотири рівні  привілеїв для сегментів програм  і даних. Рівень 0 самий привілейований, рівень 3 найменш привілейований. Корпорація Іntel рекомендує процесам займати наступні рівні привілеїв:

0 – ядро операційної системи;

1 – операційна система;

2 – системи програмування і бази даних;

3 – прикладні (користувальницькі) програми.

На кожнім рівні привілеїв перевіряється:

 Чи може програма виконати  зазначену підпрограму? 

ДО даних яких програм може звернутися та чи інша програма?

 Чи має програма право  передавати керуванню зовнішньому  процесу і якому саме?

Розглянемо  обмеження, що накладаються:

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

Передача керування між рівнями  привілеїв.

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

Підлеглі сегменти коду.

Припустимо [В.Л. Григор'єв, - т. 1 стор. 111] у системі мається сегмент коду для перетворення двоичных цілих чисел у коди ASCІІ. Її повинні використовувати програми з усіма рівнями привілеїв. Щоб її можна було викликати з ядра операційної системи, вона повинна мати рівень привілеїв 0. Для того ж, щоб указати, що даний сегмент повинний використовуватися програмами з іншими рівнями привілеїв, необхідно установить біт 2 (C - Conformіng) у байті прав доступу AR дескриптора сегментів.

На підлеглі сегменти накладаються наступні обмеження:

  1. Підлеглі сегменти не повинні використовувати привілейовані команди.
  2. "Підлегла" процедура повинна мати достатні привілеї для звертання до свого параметра і повернення результату.
  3. Значення рівня привілеїв дескриптора підлеглого коду повинне бути  чи менше дорівнює поточному значенню рівня привілеїв програми. Це значить, що підлеглий код повинний мати більше чи хоча б рівні привілеї, чим рівень привілеїв сегмента зухвалої програми.
  4. У підлеглих сегментах не дозволяється передавати керування іншим підлеглим сегментам.

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

Шлюзи виклику.

Шлюзи виклику застосовуються для  фактичної зміни рівнів привілеїв. Інша назва шлюзу – "вентиль".

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

Правила користування шлюзами:

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

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

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

Загальні рекомендації з вибору пам'яті.

Інженер, що працює з комп'ютерною  технікою, повинний знати, у якому  випадку пам'ять буде "вузьким  місцем" при роботі комп'ютера  і вміти передбачати й усувати  можливі проблеми. У цьому розділі  суммируются усе, що було вже сказане  про пам'ять, і все це видається у виді коротких рекомендацій.

Для чого може бути знадобитися додаткова  пам'ять?

У таблиці F.І. представлено мінімальні, що рекомендуються і максимальні  вимоги до пам'яті для різних операційних  систем. Дані отримані узагальненням досвіду багатьох системних адміністраторів м. Саратова. Максимальне значення ОЗУ – обсяг пам'яті, понад якого підвищення швидкості роботи комп'ютера не спостерігається.

 

Таблиця F.I.

ОС

Мин.

Рек.

Макс.

MS-DOS 3.30

256K

640K

640K

MS-DOS 6.22

640K

4Mb

8Mb

MS-DOS + Win 3.11

2Mb

8Mb

16Mb

Win 95

8Mb

16Mb

64Mb

Win NT 3.51

4Mb

8Mb

24Mb

Win NT 4.0

16Mb

24Mb

64Mb

Win 98

16Mb

48Mb

128Mb

Win 2000 Prof

32Mb

128Mb

256Mb

Win 2000 Serv

128Mb

256Mb

-?

OS/2

8Mb

16Mb

64Mb

Linux

16Mb

64Mb

128Mb


Примітка: Mіcrosoft Wіndows 98 може працювати і при тім же обсязі пам'яті, що і Mіcrosoft Wіndows 95, однак тоді для свопинга пам'яті необхідно мати втроє більший вільний дисковий простір (починаючи від 128 Мбайт.)

Виходячи з цієї таблиці необхідно  вибирати обсяг оперативної пам'яті для операційної системи.

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

Информация о работе Архітектура комп'ютерів