- •Кафедра программного обеспечения информационных технологий
- •«Операционные системы и системное программирование»
- •40 01 01
- •Содержание
- •Введение
- •Разработка программ в ос unix
- •1.1 Отличительные черты ос unix
- •1.2 Основы архитектуры операционной системы unix
- •1.3 Ядро системы
- •1.4 Пользователи системы, атрибуты пользователя
- •1.5 Системные вызовы и функции стандартных библиотек
- •1.6 Описание программы, переменные окружения
- •1.7 Аргументы и опции программы
- •1.8 Обработка ошибок
- •2 Файлы и файловая система
- •2.1 Файлы
- •2.2 Типы файлов
- •2.2.1 Обычные файлы
- •2.2.2 Каталоги
- •2.2.3 Файлы символичной связи (ссылки)
- •2.2.4 Файлы устройства
- •2.2.5 Именованные каналы
- •2.2.6 Сокеты
- •2.3 Владельцы файлов и права доступа к файлу
- •2.4 Дополнительные атрибуты файла
- •2.5 Файловый ввод/вывод
- •Открытие файла
- •2.6 Мультиплексированный ввод/вывод
- •2.7 Векторный ввод/вывод
- •2.8 Файлы, отображающиеся в памяти
- •2.9 Каталоги, работа с каталогами
- •2.9.1 Создание каталога
- •2.9.2 Удаление каталога
- •2.9.3 Чтение информации из каталога
- •2.9.4 Закрытие каталога
- •2.10 Создание жестких ссылок
- •2.11 Символическая ссылка
- •2.12 Удаление ссылки (или имени файла)
- •2.13 Переименование файла
- •2.14 Файловая система ос unix
- •2.14.1 Организация файловой системы ext2
- •2.15 Файлы устройств
- •3 Процессы
- •3.1 Виды процессов
- •3.2 Создание процесса
- •3.3 Вызовы семейства exec
- •3.4 Функции завершения процесса
- •3.5 Ошибки
- •3.6 Копирование при записи
- •3.7 Системные вызовы ожидания завершения процесса
- •3.8 Системный вызов system
- •3.9 Основные параметры, передаваемые процессу
- •3.10 Сеансы и группы процессов
- •4 Взаимодействие процессов
- •4.1 Сигналы
- •4.1.1 Отправка (генерация) сигнала
- •4.1.2 Наборы сигналов
- •4.1.3 Блокировка сигналов
- •4.2 Неименнованные каналы (трубы)
- •4.2.1 Размер канала и взоимодействие процессов при передаче данных
- •4.3 Именнованные каналы
- •4.4 Дополнительные средства межпроцессного взоимодействия
- •4.5 Механизмы межпроцессорного взаимодействия
- •4.5.1 Очереди сообщений
- •4.5.2 Семафоры Семафоры как теоретическая конструкция
- •4.5.3 Разделяемая память
- •4.5.4 Потоки
- •Int pthread_setschedparam(pthread_t tid, int policy, const struct sched_param *param);
- •Int pthread_getschedparam(pthread_t tid, int policy, struct schedparam *param);
- •5 Операционные системы
- •5.1 Понятие операционной системы
- •5.2 Характеристики современных ос
- •5.2.1 Многопоточность
- •5.2.2 Распределенные ос
- •5.2.3 Концепция ос на основе микроядра
- •5.2.4 Функции микроядра.
- •5.3 Принципы построения ос
- •5.4 Концептуальные основы ос
- •5.4.1 Процессы
- •Модель работы процесса с двумя приостановочными состояниями
- •Варианты решения:
- •Решение задачи взаимного исключения. Алгоритм Деккера.
- •Решение задачи взаимного исключения. Алгоритм Пэтерсона..
- •Синхронизирующие примитивы (семафоры).
- •Задача “производитель-потребитель” Общие семафоры
- •Задача “производитель-потребитель”, буфер неограниченного размера(Спящий парикмахер)
- •Задача “производитель-потребитель”, буфер ограниченного размера
- •5.4.2 Распределение ресурсов. Проблема тупиков
- •Алгоритм банкира
- •Применение алгоритма банкира
- •5.4.3 Монитороподобные средства синхронизации
- •Механизм типа «критическая область»
- •5.4.4 Виртуализация
- •5.4.5 Подсистема управления памятью
- •5.4.6 Виртуальная оперативная память
- •5.5 Аппаратные особенности процессоров Intel-архитектуры, направленных на поддержку многозадачности
- •5.5.1 Сегментация памяти. Ia-32
- •5.5.2 Распределение памяти в реальном режиме
- •5.5.3 Организация защиты в процессоре
- •5.5.4 Поддержка многозадачности в процессорах архитектуры ia-32
5 Операционные системы
5.1 Понятие операционной системы
Операционная система (ОС) – это упорядоченная последовательность системных управляющих программ, совместно с необходимыми информационными массивами, предназначенных для планирования, исполнения пользовательских программ и управления всеми ресурсами вычислительной машины (программами, данными, аппаратурой и другими распределяемыми и управляемыми объектами) с целью предоставления возможности пользователям эффективно, в некотором смысле, решать задачи, сформулированные в терминах вычислительной машины.
ОС – это программа, которая контролирует работу прикладных программ и системных приложений и выполняет роль интерфейса между приложениями и аппаратным обеспечением ЭВМ (это более простое определение).
Рассматривая ОС как интерфейс между пользователем и компьютером, можно представить иерархическую структуру программного и аппаратного обеспечения, использующегося для представления конечному пользователю возможности работы с приложениями.
ОС предоставляют следующий перечень услуг:
Разработка программ. ОС предоставляет программисту разнообразные инструменты и сервисы, к примеру, редакторы, отладчики, реализованные в виде программ-утилит, которые поддерживаются ОС, хотя не входят в её ядро. Такие программы называются инструментами разработки приложений.
Исполнение программ. Для запуска программы требуется загрузить её в основную память (сформировать области команд и данных), инициализировать устройства ввода-вывода и файлы, подготовить ресурсы ЭВМ. ОС выполняет эти трудоемкие операции. Существуют специальные загрузчики программ для выполнения этих действий.
Доступ к устройствам ввода-вывода. Несмотря на то, что для каждого устройства нужен свой набор команд и контроллеров сигналов, ОС предоставляет пользователю единообразный интерфейс, который скрывает эти детали и обеспечивает программисту доступ к устройствам ввода-вывода с помощью простых команд чтения-записи.
Контролируемый доступ к файлам. При работе с файлами обеспечивается необходимая структуризация данных, записываемая в файлы, а также работа механизма защиты при обращении к файлу многопользовательскими ОС (классический пример – ОС UNIX).
Системный доступ. ОС управляет доступом к отдельным системным ресурсам, а также доступом к вычислительной системе в целом. Она защищает ресурсы и данные от несанкционированного использования и разрешает конфликтные ситуации (например, проблема тупиков).
Обнаружение ошибок и их обработка. В ходе работы ЭВМ возможны сбои, например ошибки памяти, нарушение работы отдельных устройств, возможные программные ошибки (переполнения, попытки обращения к недоступным ресурсам). В этих случаях ОС должна выполнять действия, минимизирующие влияние ошибки на работу приложения. Спектр таких действий достаточно широк, от простого уведомления об ошибке до аварийной остановки программы.
Учет использования ресурсов. В ОС должны быть средства учета использованных ресурсов и отображения параметров их производительности, а также определение времени использования ресурса отдельными пользователями. Это особенно важно при настройке конфигурации. Наличие таких средств позволяет оптимизировать работу системы в целом и обеспечить наиболее оптимальную загрузку процессора и других ресурсов, т. е. повысить ее производительность.
Компьютер представляет собой набор ресурсов для выполнения задач накопления, перемещения, хранения и обработки данных, а также контроля выполнения этих и других функций. ОС управляет ресурсами компьютера, контролирует его основные функции, но при этом есть важная особенность: ОС – это набор компьютерных программ. Как и любая другая программа, она состоит из команд, выполняемых процессором, при этом работа ОС перемежается (чередуется) с работой других прикладных программ.
ОС указывает процессору, как исполнять другие системные ресурсы и как распределять время работы других программ. Но для реализации действий, предписанных ОС, процессор должен приостановить его работу и перейти к выполнению других программ, таким образом, ОС уступает работу управления процессору, чтобы тот смог выполнить некоторую полезную работу.
Часть ОС, куда входит ядро, расположено в основной памяти вычислительной машины. В основной памяти находится и основная, используемая в данный момент утилита. Оставшаяся часть основной памяти содержит программы и данные пользователя. Их размещением управляет ОС.
Процессор также является ресурсом, поэтому ОС определяет, сколько времени он выполнять ту или иную программу. Основная часть ОС находится на внешней памяти, и по мере необходимости составная части ОС загружается в основную память для выполнения.
Большинство ОС постоянно дорабатывается и совершенствуется. Это происходит по причине появления и обновления новых аппаратных обеспечений, новых услуг и исправления неполадок.