- •Операционные системы История появления
- •Основные функции операционных систем
- •Классификация операционных систем
- •Семейства операционных систем
- •Выбор операционной системы
- •Открытые системы
- •Представление данных в вычислительных системах Представление чисел
- •Представление текстовых данных
- •Представление изображений
- •Прорисовка букв и цифр. Шрифты
- •Представление звуков
- •Упаковка данных
- •Контроль целостности информации
- •Введение в криптографию
- •Загрузка программ
- •Абсолютная загрузка
- •Разделы памяти
- •Относительная загрузка
- •Базовая адресация
- •Позиционно-независимый код
- •Оверлеи (перекрытия)
- •Сборка программ
- •Сборка в момент загрузки
- •Динамические библиотеки
- •Загрузка самой ос
- •Управление оперативной памятью
- •Открытая память
- •Алгоритмы динамического управления памятью
- •Сборка мусора
- •Системы с базовой виртуальной адресацией
- •Параллельное выполнение процессов
- •Системы, управляемые событиями
- •Windows9Xкак пример системы, управляемой событиями
- •Реализация многозадачности на однопроцессорных компьютерах
- •Внешние устройства
- •Доступ к внешним устройствам
- •Простые внешние устройства
- •Порты передачи данных
- •Шины передачи данных
- •Устройства графического вывода
- •Запоминающие устройства прямого доступа
- •Драйверы внешних устройств
- •Функции драйверов
- •Многоуровневые драйверы
- •Загрузка драйверов
Реализация многозадачности на однопроцессорных компьютерах
Самым простым способом реализации многозадачности является принцип кооперативной многозадачности. При этом сама нить процесса решает, передавать или нет управление другой нити. Основным достоинством такой схемы является простота отладки планировщика процессов. Недостатком такой схемы является сложность реализации процесса при пропорциональном распределении времени между нитями.
Другим способом организации многозадачности является вытесняющая многозадачность. При этом сама операционная система решает, сколько времени будет работать та или иная нить процесса. При этом вытеснение текущей задачи происходит при возникновении какого-либо события или в связи с изменением приоритета процесса.
Внешние устройства
Все без исключения приложения вычислительных систем, так или иначе, связаны с использованием внешних, или периферийных устройств. Даже чисто вычислительные задачи нуждаются в устройствах для ввода исходных данных и вывода результата. Без преувеличения можно сказать, что процессор, не имеющий никаких внешних устройств, абсолютно бесполезен. У вычислительных систем первых поколений набор периферийных устройств часто исчерпывался упомянутыми устройствами для ввода исходных данных и вывода результата вычислений, поэтому до сих пор модули ОС, работающие с периферией, называют подсистемой ввода-вывода (input/output subsystem). У большинства современных компьютеров набор внешних устройств весьма обширен, и функции многих из них не могут или лишь с определенной натяжкой могут быть описаны как ввод и вывод.
С функциональной точки зрения внешние устройства, подключаемые к современным компьютерам, можно разделить на следующие категории:
Устройства внешней памяти, которые в свою очередь, можно разделить на два класса:
• Устройства памяти с произвольным доступом, главным образом магнитные диски. К этому же классу относятся дискеты, магнитооптические и оптические диски и практически не применяемые в настоящее время магнитные барабаны. Удачным универсальным обозначением для этого класса устройств является принятое в документации фирмы IBM сокращение DASD (Direct Access Storage Device – запоминающее устройство прямого доступа).
• Устройства памяти с последовательным доступом. В основном, это лентопротяжные устройства (стриммеры и др.).
Сетевые и телекоммуникационные устройства.
Устройства алфавитно-цифрового ввода-вывода: печатающие устройства, телетайпы, текстовые терминалы.
Устройства звукового ввода-вывода.
Устройства графического ввода-вывода: сканеры или видеодекодеры (ввод), графические дисплеи, плоттеры, графические принтеры или видеокодеры (вывод).
Позиционные устройства ввода: мыши, планшеты-дигитайзеры, световые перья и т. д.
Сенсорные и исполнительные устройства управляющих систем. Например, у бортового компьютера самолета сенсорными устройствами могут являться гироскопы или другие датчики ориентации, трубка Пито (датчик, определяющий скорость самолета относительно воздуха), радар и терминал глобальной системы позиционирования, а исполнительными устройствами – шаговые электромоторы, управляющие рулевыми плоскостями, топливные насосы двигателей и т. д.
Все перечисленные устройства либо передают информацию центральному процессору (и, таким образом, могут быть объявлены устройствами ввода), либо получают информацию от него (устройства вывода), либо могут как передавать, так и принимать информацию (устройства ввода-вывода). Эта классификация может показаться неестественной, потому что в соответствии с ней в одну категорию попадают столь функционально неродственные устройства,, как сетевой адаптер и жесткий диск (устройства ввода-вывода), или печатающее устройство и рулевая машинка летательного аппарата (устройства вывода), однако разработчику операционной системы во многих случаях этой классификации оказывается достаточно.
Нередко, впрочем, в эту классификацию вводят еще один уровень: устройства ввода делят на пассивные (выдающие данные только в ответ на явные запросы центрального процессора) и активные, или генераторы событий, которые могут порождать данные тогда, когда их об этом явно не просили. Ко второй категории относятся интерактивные устройства ввода (клавиатура, мышь), сетевые адаптеры, таймеры различного рода, а также многие датчики управляющих систем.