1. Общ преглед на компютърните системи

Операционната система използва hardware-ните ресурси на един или повече процесора за да осигури обслужване на един или повече потребители. Операционната система управлява паметта и входно/изходните устройства.



1.1 Базисни елементи
- Процесор
- Памет
- I/O устройства
- Системни връзки
--- FIGURE 1.1 ---
Регистри  на процесора за връзка между компонентите:
MAR - memory address register
MBR - memory buffer register I/O
AR - I/O adderss register I/O
BR - I/O buffer register


1.2 Регистри на процесора
** Видими за потребителя регистри
- регистри за данни
- адресни регистри:
-- индексни,
-- сегментни указатели [деление на паметта на сегменти],
-- указател за стека и др.
- флагове: резултат от сравнение, от аритметична операция,...
** Контролни регистри и регистри на състоянията
PC - program counter (съдържа адреса на текущата инструкция)
IR - instruction register (съдържа текущата инструкция)
PSW - program status word (дума за състоянието на програмата) :
Sign, Zero, Carry (пренос), Equal,Overflow, Interrupt enable/disable, Supervisor (supervisor/kernal mode or user mode)
Ограничение за някои инструкции и достъп до паметта в user mode.
Управляваща информация може да се съхранява и в долната част на паметта.


1.3 Изпълнение на инструкциите
** Цикъл на инструкциите
Две стъпки:
    1. зареждане (fetch - донасям, довеждам) от паметта в IR;
    2. изпълнение на инструкцията, записана в IR.
--- FIGURE 1.2 ---
Най-общо има 4 вида инструкции:
    1. Processor-memory
    2. Processor-I/O
    3. Data processing
    4. Control
Пример:
AC - accumulator
Формат на командите: OpCode Address
OpCode действие: 1 - зарежда AC от паметта; 2 - записва AC в паметта; 5 - добавя към AC от паметта
Към съдържанието на клетка 941 от паметта се добавя съдържанието на клетка 940 (2+3=5)
--- FIGURE 1.4 ---
Задачата се решава с 3 цикъла на инструкциите.
** Входно/изходни функции
- Директен обмен на данни процесор-диск;
- Използване на I/O модула DMA (direct memory access).


1.4 Прекъсвания
Класове от прекъсвания:
- Program - overflow, division by zero, illegal instruction, out of memory
- Timer
- I/O - сигнал за завършване на действието или код на грешка
- Hardware failure
--- FIGURE 1.5 ---
** Прекъсвания и цикъла на инструкциите
--- FIGURE 1.7 ---
--- FIGURE 1.8 ---
--- FIGURE 1.9 ---
** Обработка на прекъсването
Прекъсването предизвиква събития в hardware и software:
1. Устройството изпраща прекъсване към процесора.
2. Процесорът завършва изпълнението на текущата инструкция преди да отговори на прекъсването.
3. Процесорът проверява за прекъсване, идентифицира прекъсването и връща потвърждение на устройството, че прекъсването е прието.
4. Процесорът запазва информация за текущата програма (поне PSW), като я записва в системния управляващ стек (system control stack).
5. Процесорът зарежда PC с първия адрес на програмата, съответстваща на прекъсването (interupt-handling program).
6. Програмата за обработка на прекъсванено записва в системния управляващ стек регистрите и друга информация.
7. Изпълнява се прекъсването - проверява се кода на изпълнение на I/O операцията, отговаря се на I/O устройството.
8. Програмата за обработка на изключенията възстановява състоянието на регистрите.
9. Възстановява се PC и PSW и прекъсната програма продължава работата си.
--- FIGURE 1.10 ---
--- FIGURE 1.11 ---
** Многократни прекъсвания
--- FIGURE 1.12 ---
--- FIGURE 1.13 ---
** Multiprogramming
Няколко програми се изпълняват "едновременно". След прекъсване процесорът може да изпълнява друга програма в зависимост от зададени приоритети на чакащите за изпълнение програми.


1.5 Йерархия на паметта
Характеристики: цена, обем, бързина на достъп.
- малко време за достъп, висока цена (бърза, скъпа)
- голям обем, ниска цена (голяма, евтина)
- голям обем, голямо време за достъп (голяма, бавна)
регистри
кеш (бърза памет)
оперативна памет
дисков кеш (буфер)
твърд (магнитен) дик 
сменяеми носители
Надолу по таблицата:
  1. намалява цената
  2. расте обемът
  3. расте времето за достъп
  4. намалява честотата на достъп от процесора
--- FIGURE 1.15 ---
Виртуална памет


1.6 Кеш памет
** Необходимост
Времето за достъп до паметта е определящо за бързодействието.
** Принципи
--- FIGURE 1.16 ---
--- FIGURE 1.17 ---
--- FIGURE 1.18 ---
** Дизайн
- Cash size - големина на кеша
- Block size - големина на блока
- Mapping function - функция за разполагане на нови данни в кеша
- Replacement algorithm - алгоритъм за заместване: least-recently-used (LRU)
- Write policy - правила за записване в ОП на променени данни


1.7 I/O методи за комуникация
--- FIGURE 1.19 ---
** Програмирани I/O
- процесорът пряко управлява I/O устройствата
- обмена на данните между ОП и  I/O устройствата минава през регистрите на процесора
- процесорът проверява състоянието на I/O устройствата
** I/O основани на прекъсвания
- обмена на данните между ОП и  I/O устройствата минава през регистрите на процесора
- процесорът изпълнява други команди докато I/O устройствата изпълнят заявката
** Директен достъп до паметта
- процесорът задава: четене/писане, адрес на I/O устройство, начален адрес в ОП и брой байтове
- DMA модула изпълнява заявката.