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 Изпълнение на инструкциите
** Цикъл на инструкциите
Две стъпки: зареждане от паметта и изпълнение на инструкцията
--- FIGURE 1.2 ---
Най-общо има 4 вида инструкции:
Processor-memory Processor-I/O
Data processing
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 Структура на вътрешните връзки
-- Памет: N думи (клетки) с еднаква дължина, операции READ и WRITE, адреси на паметта
-- I/O modules: един модул може да управлява повече от едно устройство, всяко устройство има уникален адрес - порт, операции READ и WRITE, генериране на прекъсване
-- Процесор: чете инструкции и данни от паметта, записва данни в паметта, получава и обработва прекъсвания
-- Шина
bus = data lines + addres lines + control lines
data bus: 8-16-32 линии - ширина address bus:
control bus:
- Memory write
- Memory read
- I/O write
- I/O read
- Transfer ACK - данните са приети или изпратени по data bus
- Bus request - искане за предоставяне на bus-а
- Bus grant - bus-а е даден
- Interupt request
- Interupt ACK
- Clock
- Reset
-- Изпращане на данни по bus-а:
1. Получаване на управлението
2. Изпращане на данни
-- Получаване на данни по bus-а:
1. Получаване на управлението
2. Изпращане на искане до друг модул и чакане докато другият модул изпрати данните


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


1.7 Кеш памет
** Необходимост
Времето за достъп до паметта е определящо за бързодействието
** Принципи
--- FIGURE 1.16 ---
--- FIGURE 1.17 ---
--- FIGURE 1.18 ---
** Дизайн
- Cash size - Големина на кеша
- Block size - Големина на блока
- Mapping function - Функция за разполагане
- Replacement algorithm - Алгоритъм за заместване
- Write policy - Правила за писане на променени данни


1.8 Организация на входа/изхода
Защо процесорът не оперира директно с външните устройства?
- много различни външни устройства
- бавни
- различни формати на данните
I/O модулите имат 2 връзки:
- с bus-а
- с външните устройства
** Външни устройства
- Human-readable - видео-дисплей терминали, принтери
- Mashine-readable - диск -
Communication - мрежи
** Функции на I/O модулите
- Управление и съгласуване
- Връзка с процесора
- Връзка с външните устройства
- Буфериране на данните
- Откриване на грешки
Например за пренасяне на данни от външно устройство към процесора I/O модулът трябва да направи следното:
1. Процесорът иска I/O модула да провери статуса на външното устройство.
2. I/O модулът връща на процесора искания статус.
3. Ако устройството е готово да предава, процесорът иска да му бъдат предадени данните с команда на I/O модула.
4. I/O модулът получава единица данни от външното устройство
5. I/O модулът изпраща данните към процесора.
** Структура на I/O модулите
- I/O channel or I/O processor
- I/O controller


1.9 I/O методи за комуникация
--- FIGURE 1.19 ---
** Програмирани I/O
** I/O основани на прекъсвания
** Директен достъп до паметта