- •Ос в общей структуре компьютера.
- •История операционных систем.
- •Классификация современных ос. Задачи современных ос.
- •6. Понятие процесса – ключевое понятие ос.
- •8. Трансляторы: компиляторы и интерпретаторы.
- •9. Иерархия зу (запоминающих устройств).
- •10. Управление оперативной памятью (оп). Менеджер памяти; swapping; виртуальная память.
- •11. Модели организации виртуальной памяти.
- •12. История ос unix.
- •13. Общая архитектура unix. Основные подсистемы ядра.
- •14. Пользовательская среда unix.
- •Командный интерпретатор shell.
- •16. Система каталогов в oс unix. Управление с помощью команд языка Bourn shell.
- •17. Управление файлами с помощью команд языка Bourn shell. Перенаправление ввода/вывода.
- •19. Обработка аргументов командной строки. Переменные окружения.
- •20. Пользователь и группа. Права доступа к файлу.
- •21. Системные вызовы и функции стандартных библиотек. Обработка ошибок.
- •22.Структура программы на языке с. Параметры главной функции (пример).
- •23. Файловая система ос unix: монтирование, индексные дескрипторы, жесткие и символические ссылки, файлы устройств.
- •24.Системные вызовы для работы с файлами
- •25. Понятие «процесс» в ос unix. Контекст процесса; свойства процесса; состояние процесса.
- •26.Создание процессов и упр-е ими.
- •27. Запуск внешней программы
- •29.Общая классификация средств взаимодействия процессов в ос unix.
- •30.Иерархия процессов в ос unix. Понятие сеанса. Фоновые процессы.
- •31.Каналы – средства взаимодействия процессов. Неименованные каналы. Организация конвейера (пример программы).
- •33.Сигналы как средство взаимодействия процессов в ос unix. Диспозиция сигналов.
- •34.Ограничения для процесса в ос unix (по ресурсам). Связь со свойствами процесса.
- •36.Отображение файлов в виртуальное адресное пространство. Разделяемая память.
- •37. Взаимодействие процессов через псевдотерминал.
- •38. Недостатки потокового взаимодействия процессов. Средства System vipc. Пространство имен. Общие принципы работы со средствами System vipc.
- •39. Организация очереди сообщений в ос unix. Структура сообщения. Отправка и принятие сообщений.
- •40.Семафоры, как средство взаимодействия процессов System vipc. Понятие атомарной операции. Массив семафоров.
- •41.Разделяемая память, как средство взаимодействия процессов System vipc.
- •42.Взаимодействие по сети. Понятие протокола. Семейства адресации и типы взаимодействия. Создание сокета в ос unix.
- •45. Потоковые сокеты. Клиент – серверная модель.
- •46. Проблема очередности действий и ее решение.
- •47. Процессы-демоны. Система журнализации.
- •48. Загрузка и жизненный цикл в ос unix.
- •49. Взаимоисключения. Понятие критической секции. Устаревшие подходы к организации взаимного исключения.
- •50.Поддержка взаимоисключения на уровне ос. Мьютексы и семафоры (Дейкстры). Команда ассемблера tsl.
- •51.Проблема тупиков. Граф ожидания
- •52. Нити исполнения (pthreads) в ос unix. Мьютексы pthreads.
- •53.Графический интерфейс в ос unix. Базовые принципы построения x_window.
- •54.Файловая подсистема. Общая структура. Методы выделения дискового пространства. Управление дисковым пространством.
- •55.Файловая подсистема. Структура файловой системы на диске. Реализация директорий. Поиск в директории (хеширование).
- •56.Подсистема ввода/вывода. Схема взаимодействия подсистем ос. Понятие драйвера. Типы драйверов.
Классификация современных ос. Задачи современных ос.
1. ОС для мейнфреймов (в центрах данных больших корпораций).
2. Серверные ОС. Работают на серверах, представляющие собой большие ПК или рабочие станции. Обслуживают большое количество пользователей (Win2000, Unix)
3. Многопроцессорные ОС. В зависимости от вида соединения процессов и разделения работы такие системы называют параллельными компьютерами, мульти компьютерами или многопроцессорными системами. ОС представляет вариант серверной ОС.
4. ОС для ПК. Их задача – предоставить удобный интерфейс для одного пользователя (Win98).
5. ОС реального времени. Например, система, управляющая полетом самолета. Цифровые аудио и видео системы – гибкие.
6. Встроенные ОС. Win Mobile, Android, Symbian.
7. ОС для смарт-карт, управляют от одной операции до сложной функции. Бывают JAVA-ориентированные, это интерпретаторная система. Может осуществлять работу в режиме многозадачности.
Задачи.
1. Организация мультизадачного режима работы. (Запуск нескольких программ и “изолирование” их друг от друга, фактически предоставляя каждой программе свою виртуальную машину.)
2. Управление устройствами ввода/вывода.
3. Управление ОЗУ
4. Взаимодействие процессов.
5. Разграничение полномочий. (Регламентирование доступа пользователей к ресурсам выч. машины)
Мультизадачный режим. Требования к аппаратуре.
Требования:
1. Любое внешнее устройство (контроллер + устройство). Рассмотрим ввод/вывод. В случае однозадачной системы во время выполнения ввода/вывода ЦП непрерывно опрашивает котроллер устройства на готовность обмена (активное ожидание). Если мультизадачный режим, то непрерывного опроса котроллера ЦП не производит, он занят другой задачей. Проблему решает аппаратные прерывания. В момент завершения операции контроллер передает ЦП спец сигнал – запрос на прерывание. Получив его, ЦП прерывает выполнение активной задачи и передает управление процедуре ОС, которая выполняет все необходимое по завершению операции ввода/вывода, после чего управление возвращается активной задаче.
2. При мультизадачности необходимо средство ограничения возможности работающей программы (по доступу к памяти). Программно такую защиту можно организовать, но только путем интерпретации всего машинного кода исполняющейся программы, что крайне сложно, следовательно, нужна аппаратная поддержка защиты памяти.
3. ОС берет на себя организацию работы с УВВ, а программам предоставляет интерфейс для обращения к ОС за услугами по работе устройства. Надо запретить пользовательским программам выполнение команд процессора, осуществлять чтение, запись портов ввода/вывода. Эта проблема решается введение 2-ч режимов работы ЦП:
- привилегированный (режим ядра)
- ограниченный (пользовательский)
В режиме ядра можно выполнять любую существующую команду. В ограниченном режиме выполнение команд, влияющих на систему в целом, запрещено. Разрешены команды, эффект которых ограничен модификацией данных в областях памяти, не закрытых системой защиты. Ядро ОС выполняется в привилегированном режиме, пользовательские задачи в ограниченном.
4. Если ОС реального времени – наличие таймера. Таймер является устройством, вся функциональность которого сводится к генерации прерываний через равные кванты времени Эти прерывания дают возможность ОС получить управление, проанализировать текущее состояние задач и при необходимости сменить активную задачу.
Аппарат прерываний (виды прерываний). Понятие системного вызова.
1. Внешние (аппаратные) прерывания. Физически для поддержки аппаратных прерываний процессор имеет специальные контакты. В современных архитектурах, основанных на общей шине для запроса на прерывания, используется одна из дорожек шины.
Последовательность событий:
а) Устройство, которому требуется внимание ЦП, устанавливает на шине запрос на прерывание.
б) ЦП доводит выполнение текущей задачи до логической точки и выставляет на шине сигнал подтверждения прерывания, при этом другие прерывания блокируются
в) Получив подтверждение, устройство передает по шине число, идентифицирующее данное устройство. Это номер прерывания.
г) ЦП сохраняет в стеке текущее значение счетчика команд и регистра слов состояния. Это называется малым упрятыванием.
д) Устанавливает привилегированный режим работы ЦП, после управление передается на точку входа процедуры обработки прерываний. Адрес обработчика предварительно считывается. Обработчик может сразу вернуть управление активной задаче, выполнив команду IRET (коротко прерывание).
Если ОС требуются какие-либо действия на прерывание – длинное прерывание, действия:
Сначала обработчик сохранит в стеке РОН, затем необходимо покинуть критическую область ядра. Дальше все переходит к выполнению процедур, прерывание которых не вызовет ошибки. Остальные прерывания разблокируются, т.е. ОС дает возможность прерываний от других устройств.
После разблокировки прерываний вызывается планировщик, чтобы выяснить, не пришло ли время заменит активную задачу на другую.
Из привилегированного режима в пользовательский можно перевести ЦП простой командой, но обратно с помощью обычной команды нельзя. Прерывания – единственный способ переключения ЦП в привилегированный режим.
2. Внутренние прерывания (ловушки). При возникновении исключения ЦП должен передать управление ОС и она принимает решение о дальнейших действиях. Необходимо переключаться в привилегированный режим и передать управление на некоторый обработчик, при этом сохранить информацию из РОН и слово состояние процессора. Отсутствует обмен по шине. Обработчики ситуаций, в которых дальнейшее выполнение активной задачи невозможно, наз. внутр. прерываниями.
3. Программные прерывания. Системные вызовы. Все действия, затрагивающие внешний по отношению к задаче мир, выполняются через ОС. Следовательно нужен механизм обращения пользовательской задачи к ядру ОС. Такое обращение за услугами называется системным вызовом.
1) Ядро работает в разных режимах.
2) Пространство адреса ядра для пользовательского процесса не доступно.
Прерывания по инициативе выполняющейся задачи называются программными прерываниями.