- •Оглавление
 - •7.1. Основные понятия 37
 - •8.1. Основные понятия 47
 - •14.1. Основные понятия 77
 - •Введение
 - •Раздел 1. Основные сведения об операционных системах Тема 1. Функции и классификация операционных систем
 - •1.1. Функции ос
 - •1.1. История ос
 - •1.3. Классификация ос
 - •По назначению
 - •По режиму обработки задач
 - •По способу взаимодействия с пользователем
 - •По принципу построения
 - •Вопросы для самоконтроля
 - •Тема 2. Структура операционных систем. Системные вызовы
 - •2.1. Структура ос
 - •Монолитная структура (структура макроядра)
 - •Иерархическая структура (многослойное ядро)
 - •Структура микроядра
 - •2.2. Выполнение системных вызовов
 - •2.3. Понятие операционной и программной среды
 - •Вопросы для самоконтроля
 - •Раздел 2. Процессы и потоки Тема 3. Процессы
 - •3.1. Основные сведения о процессах
 - •Создание процессов
 - •Завершение процессов
 - •Иерархия процессов
 - •3.2. Модели процесса Модель с двумя состояниями
 - •Модель с пятью состояниями
 - •3.3. Описание процессов
 - •3.4. Управление процессами Создание процессов
 - •Переключение процессов
 - •3.5. Выполнение кода ос по отношению к процессам
 - •Ядро вне процессов (автономное ядро)
 - •Ядро в составе пользовательских процессов
 - •Ос на основе процессов
 - •Вопросы для самоконтроля
 - •Тема 4. Системные вызовы управления процессами в ос unix
 - •4.1. Создание процесса
 - •4.2. Завершение процесса
 - •4.3. Изменение образа памяти процесса
 - •4.4. Синхронизация между родительским и дочерним процессами
 - •4.5. Состояние "зомби"
 - •Вопросы для самоконтроля
 - •Тема 5. Сигналы в ос unix
 - •5.1. Назначение сигналов
 - •5.2. Обработка сигналов
 - •5.3. Посылка сигнала процессу
 - •Вопросы для самоконтроля
 - •Тема 6. Потоки
 - •6.1. Основные понятия
 - •6.2. Основные операции с потоками
 - •6.3. Способы реализации потоков в пространстве пользователя
 - •В пространстве ядра
 - •Смешанная реализация
 - •Вопросы для самоконтроля
 - •Тема 7. Взаимоблокировки
 - •7.1. Основные понятия
 - •Типы доступа к ресурсу
 - •Условия возникновения взаимоблокировок
 - •7.2. Моделирование взаимоблокировок
 - •7.3. Обнаружение взаимоблокировок Обнаружение взаимоблокировок при наличии одного ресурса каждого типа
 - •Обнаружение взаимоблокировок при наличии нескольких ресурсов каждого типа
 - •7.4. Избежание взаимоблокировок Безопасные и небезопасные состояния
 - •Алгоритм банкира для одного вида ресурса
 - •Алгоритм банкира для нескольких видов ресурсов
 - •Вопросы для самоконтроля
 - •Раздел 3. Взаимодействие процессов Тема 8. Проблема взаимного исключения и способы ее решения
 - •8.1. Основные понятия
 - •8.2. Аппаратные способы достижения взаимного исключения Запрещение прерываний
 - •Специальные команды, выполняющиеся атомарно
 - •8.3. Программные способы достижения взаимного исключения Переменные блокировки.
 - •Алгоритм Деккера
 - •Алгоритм Петерсона
 - •Вопросы для самоконтроля
 - •Тема 9. Примитивы синхронизации
 - •9.1. Семафоры Определение семафора
 - •Применение семафоров
 - •9.2. Мьютексы
 - •9.3. Мониторы
 - •Структура монитора
 - •Вопросы для самоконтроля
 - •Тема 10. Классические проблемы межпроцессного взаимодействия
 - •10.1. Проблема производителя и потребителя
 - •10.2. Задача о читателях и писателях
 - •10.3. Задача об обедающих философах
 - •10.4. Задача о спящем парикмахере
 - •10.5. Задача о железнодорожном перегоне
 - •Вопросы для самоконтроля
 - •Тема 11. Межпроцессное взаимодействие в ос unix
 - •11.1. Неименованные каналы
 - •Синхронизирующие свойства неименованного канала
 - •Системные вызовы для работы с неименованными каналами
 - •Шаги в установлении связи через неименованный канал
 - •Ограничения неименованных каналов
 - •11.2. Именованные каналы
 - •Использование именованных каналов
 - •Синхронизирующие свойства именованных каналов
 - •Системные вызовы для работы с именованными каналами
 - •11.3. Очереди сообщений
 - •11.4. Разделяемая память
 - •Вопросы для самоконтроля
 - •Тема 12. Передача сообщений
 - •12.1. Характеристика систем передачи сообщений
 - •12.2. Модель клиент-сервер
 - •Вопросы для самоконтроля
 - •Тема 13. Api сокетов ос unix
 - •13.1. Межпроцессное взаимодействие при помощи сокетов
 - •13.2. Системные вызовы работы с сокетами в ос unix Структура адреса сокета
 - •Получить дескриптор сокета (создать сокет)
 - •Указать адрес локальной оконечной точки
 - •Перевод сокета в пассивный режим
 - •Принять соединение с сокетом
 - •Установить соединение с сервером.
 - •Чтение данных из сокета и запись данных в сокет
 - •Операции клиента и сервера
 - •14.2. Критерии краткосрочного планирования.
 - •14.3. Стратегии краткосрочного планирования. Первым поступил – первым обслужен
 - •Кратчайшая задача – первая
 - •Наименьшее оставшееся время выполнения
 - •Циклическое планирование
 - •Приоритетное планирование
 - •Вопросы для самоконтроля
 - •Раздел 5. Управление памятью Тема 15. Технологии распределения памяти
 - •15.1. Фиксированное распределение
 - •15.2. Динамическое распределение
 - •15.3. Система двойников
 - •15.4. Простая страничная организация
 - •15.5. Простая сегментная организация
 - •Вопросы для самоконтроля
 - •Тема 16. Виртуальная память
 - •16.1. Предпосылки для организации виртуальной памяти
 - •16.2. Страничная организация виртуальной памяти
 - •Структура таблицы страниц
 - •16.3. Сегментация
 - •16.4. Комбинация сегментации и страничной организации
 - •16.5. Алгоритмы управления виртуальной памятью
 - •Стратегия выборки
 - •Стратегия размещения.
 - •Стратегия замещения
 - •Вопросы для самоконтроля
 - •Раздел 6. Ввод-вывод и файловая система Тема 17. Ввод-вывод
 - •17.1. Принципы программного обеспечения ввода-вывода
 - •Способы осуществления ввода-вывода
 - •17.2. Программные уровни ввода-вывода
 - •Обработчики прерываний
 - •Драйверы устройств
 - •Независимое от устройств программное обеспечение ввода-вывода
 - •Программное обеспечение ввода-вывода пространства пользователя
 - •Вопросы для самоконтроля
 - •Тема 18. Физическая организация файловой системы
 - •18.1. Цели и задачи файловой системы
 - •18.2. Устройство диска
 - •18.3. Физическая организация и адресация файла
 - •Вопросы для самоконтроля
 - •Тема 19. Логическая организация файловой системы
 - •19.1. Типы файлов
 - •19.2. Иерархическая структура файловой системы
 - •Имена файлов
 - •Монтирование
 - •19.3. Атрибуты файлов
 - •Вопросы для самоконтроля
 - •Литература
 - •Перечень сокращений
 
1.1. История ос
В первых ЭВМ (до середины 1950-х годов) ОС не было. Позже были разработаны специальные программы для автоматизации труда оператора, которые назвали "операционные системы".
Ниже перечислены основные этапы в развитии операционных систем
1. Простые пакетные ОС. Первые ОС были разработаны для ЭВМ второго поколения (1955-65 гг.). Задания на машинных носителях собирались в пакеты и помещались в устройство ввода данных. ОС, или монитор, считывала с УВВ по одному заданию и передавала ему управление. По завершении задания или при возникновении ошибки управление возвращалось к монитору, который начинал считывать следующее задание. Примеры пакетных ОС: FMS (Fortran Monitor System), IBSYS (ОС, созданная фирмой IBM для ЭВМ IBM 7094).
2. Многозадачные пакетные ОС. Процессору часто приходилось простаивать в ожидании завершения медленных операций ввода-вывода. Эффективность использования процессора можно повысить: когда одно задание ждет завершения операции ввода-вывода, другое может использовать процессор. Это возможно, если в ОП достаточно места для ОС и двух программ пользователя. Работа такой многозадачной ОС базируется на следующих аппаратных возможностях компьютера:
наличие контроллеров внешних устройств, или каналов, работающих независимо от процессора, и позволяющих выполнять операции ввода-вывода параллельно с командами процессора;
наличие системы прерываний, с помощью которых контроллер взаимодействует с процессором.
Используя эти возможности, процессор генерирует команду ввода-вывода для одного задания и затем переходит к другому на то время, пока контроллер выполняет ввод-вывод. После завершения ввода-вывода процессор получает сигнал прерывания, и управление передается обработчику прерываний из состава ОС. Затем ОС передает управление другому заданию.
Многозадачные ОС сложнее систем пакетной обработки заданий, поскольку при одновременном нахождении в ОП нескольких заданий возникают проблемы по управлению памятью, по планированию (решение, какую из задач выбрать на выполнение следующей) и по защите задач друг от друга. Примеры многозадачных пакетных ОС: OS/360 фирмы IBM.
ОС разделения времени. Разделением времени называют многозадачность, используемую для обработки нескольких интерактивных заданий. Несколько пользователей одновременно получают доступ к системе с помощью терминалов, а ОС чередует исполнение программ каждого пользователя через малые промежутки времени. Таким образом, каждому пользователю предоставляется 1/n часть полной скорости ЭВМ, не считая затрат на работу ОС. И пакетная обработка, и разделение времени используют многозадачность. В табл. 1.1 показаны основные различия этих двух режимов. Примеры ОС разделения времени: CTSS (Compatible Time-Sharing System), MULTICS.
Таблица 1.1
Сравнение режимов пакетной многозадачности и разделения времени
  | 
		Пакетная многозадачность  | 
		Разделение времени  | 
	
Основная цель  | 
		Максимальное использование процессора  | 
		Уменьшение времени отклика  | 
	
Источник указаний операционной системе  | 
		Команды языка управления заданиями, помещаемые в задание  | 
		Команды, вводимые с терминала  | 
	
