Операционни системи

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

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

1.1 Базисни елементи.
- Процесор (CPU).
- Памет (Main Memory).
- Входно/изходни (I/O) устройства.
- Системни връзки (System Bus).



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)
** Режими за работа на процесора:
    - режим ядро (kernal mode);
    - потребителски режим (user mode).
Ограничение за някои инструкции и достъп до паметта в user mode.
Освен в регистрите, управляваща информация (за процесора) може да се съхранява и в долната част на паметта.

1.3 Изпълнение на инструкциите.
    Две стъпки:
    1. Зареждане (fetch - донасям, довеждам) от паметта в IR.
    2. Изпълнение на инструкцията, записана в IR.

    Най-общо има 4 вида инструкции:
    1. Процесор-памет (processor-memory);
    2. Процесор-вход/изход (processor-I/O);
    3. Обработка на данни (data processing);
    4. Управляващи (control);
    Пример.
    Да разгледаме хипотетична машина, която има 3 регистри: PC и IR от Fig.1.1 и още един регистър за данни - AC (accumulator). Даден е и формата на командите:
OpCode
                           Address 

    OpCode е код на командата и приема следните стойности:

OpCode действие
1 зарежда AC от Address в паметта
2 записва AC в Address в паметта
5 добавя към AC стойността от Address в паметта
    На Fig.1.4 са дадени стъпките на работа на машината при решаване на задачата: към съдържанието на клетка 941 от паметта се добавя съдържанието на клетка 940, като получения резултат се записва в клетка 941 (2+3=5). Задачата се решава с 3 цикъла на инструкциите.


1.4 Прекъсвания.
    Класове от прекъсвания:
- Програмни (program - overflow, division by zero, illegal instruction, out of memory);
- Часовника (timer);
- Входно-изходни (I/O) - сигнал за завършване на действието или код на грешка;
- Повреда в хардуера (hardware failure).





** Прекъсвания и цикъла на инструкциите.



** Обработка на прекъсването.
    Прекъсването предизвиква събития в 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 и прекъсната програма продължава работата си.



** Многократни прекъсвания.

** Многозадачна ОС (multiprogramming).
    Няколко програми се изпълняват "едновременно", по-точно, чакат готови за изпълнение от процесора. След прекъсване процесорът може да изпълнява друга програма в зависимост от зададени приоритети на чакащите за изпълнение програми.