3 разных вида ОС:
· Binary interface.
· Program interface.
· Command interface.
Задачу унификации, которую решает ОС нельзя решить без изобретения высокоуровневых инструментов и в первую очередь без высокоуровневого инструмента программирования, ибо ассемблер такую задачу не решает, потому на сцену выходит язык C.
ОС – это такое программное обеспечение или программный комплекс, которое обеспечивает при функции связанные с ресурсами нашего компьютера:
1. Унификация.
2. Разделение.
3. Учет ресурсов (честная ресурсов компьютера).
Ресурсы компьютер:
1. Оперативная память.
2. Процессорное время.
3. Все внешние устройства.
История:
· Пакетный режим выполнения программ – в течении какого-то промежутка время выполняется ровно одна задача, полностью занимая все ресурсы и всю память.
· Замещающая многозадачность: разделение времени, блокировка устройств (диск, мышь, клавиатура) .
· Многопользовательский режим: разделение доступа (в т.ч. памяти).
Классическая монолитная архитектура ОС:
· Ядро – главная часть ОС. Оно обеспечивает механизм реализации задач ОС (унификации, разделение, учёт).
· Пространство пользователя: логика унификации, разделения, учета и решение пользовательских подзадач, реализация логики раздачи ресурсов.
· Приложения: необязательный компонент ОС для решения пользовательской задачи.
Недостатки языка ассемблера:
· Соглашения по вызову подпрограмм.
· Планирование регистров:
3 разных видов переменных:
1. Статические (которые лежат в памяти и доступны по метке).
2. Переменные (которые лежат на стеке).
3. Регистр.
· Обертка вокруг системных вызовов (номера, различные параметры и тп).
· Арифметические выражения.
· Циклы и условные операторы.
· Составные типы данных.
Что должно остаться от ассемблера:
· Модель памяти соответствует аппаратной(адреса).
· Скалярные типы данных соответствуют аппаратным.
· Порядок байтов в машинном слове и его разрядность.