- •1. Задачи и функции операционной системы компьютера. Классификация ос. Основные современные ос.
- •2, 4. Архитектура современных ос. Структура ос unix.
- •3. Архитектура современных ос. Структура ос Windows nt.
- •4. Архитектура современных ос. Системы с монолитным (макро-) ядром и с микроядром.
- •5. Архитектура современных ос. Ос с множественными интерфейсами прикладных программ на примере ос Windows nt.
- •6. Процессы и потоки в ос. Понятие процесса. Атрибуты процесса. Создание нового процесса в различных ос.
- •7, 6. Процессы и потоки в ос. Понятие процесса. Жизненный цикл процесса. Различные состояния процесса.
- •8. Процессы и потоки в ос. Понятие нити (thread). Основные отличия нити от процесса.
- •9, 11, 12. Процессы и потоки в ос. Необходимость синхронизации при работе с общими ресурсами. Способы синхронизации.
- •10. Механизмы синхронизации. Понятие семафора (semaphore) и основные операции с ним. Двоичный семафор.
- •11. Механизмы синхронизации. Понятие мьютекса (mutex) и основные операции с ним. Пример использования мьютекса для синхронизации нитей.
- •12. Механизмы синхронизации. Сравнение мьютекса и двоичного семафора.
- •13. Управление оперативной памятью. Способы защиты оперативной памяти процесса от случайного или злонамеренного вторжения из другого процесса. Сегментная организация памяти. Виртуальная память.
- •14, 13, 15. Управление оперативной памятью. Понятие виртуальной памяти. Поддержка вп со стороны процессора (на примере процессора Intel x86). Перевод виртуального адреса в адрес реальной памяти.
- •15. Управление оперативной памятью в современных ос. Виртуальная память процесса и ее отображение в реальную оперативную память компьютера. Файл подкачки.
- •16. Цели и задачи файловой системы ос. Многоуровневая организация файловой системы. Логическая и физическая фс.
- •17. Управление виртуальной памятью в современных ос. Алгоритмы подкачки и вытеснения.
- •18. Логическая файловая система ос Windows nt.
- •19. Логическая файловая система ос unix.
- •20. Физическая организация файловой системы. Файловая система fat.
- •21. Физическая организация файловой системы. Файловая система System V (s5fs).
- •22. Физическая организация файловой системы. Файловая система ntfs.
- •23. Управление вводом/выводом. Понятие аппаратного прерывания и его обработка.
- •24. Управление вводом/выводом. Синхронный и асинхронный ввод/вывод.
- •25. Управление безопасностью. Пользователь, его атрибуты и права доступа.
- •26. Управление безопасностью. Задача администрирования вычислительной системы и компьютерной сети.
- •27. Управление доступом к файлам в ос unix.
- •28. Управление доступом к файлам в ос Windows nt. Списки прав доступа.
- •29. Язык программирования Java. Виртуальная машина Java. Технология Java.
- •30. Платформа .Net. Основные идеи и положения. Языки программирования .Net.
- •31. Функциональные компоненты ос. Управление файлами
- •32. Функциональные компоненты ос. Управление процессами.
- •33. Функциональные компоненты ос. Безопасность и защита данныx.
- •34. Функциональные компоненты ос. Пользовательский интерфейс.
- •35. Функциональные компоненты ос. Управление оперативной памятью.
- •36. Компьютерные сети. Сетевые ос и их задачи.
- •37. Компьютерные сети. Протоколы tcp/ip. Интернет.
- •38. Переносимость программного обеспечения. Стандарты операционных систем.
- •1. Стандарт cp/m
- •2. Операционные системы типа dos
- •3. Стандарт msx
- •4. Операционные системы, основанные на графическом интерфейсе
- •6. Операционные системы семейства unix
23. Управление вводом/выводом. Понятие аппаратного прерывания и его обработка.
Одной из главных функций ОС является управление всеми устройствами ввода-вывода компьютера. ОС должна передавать устройствам команды, перехватывать прерывания и обрабатывать ошибки; она также должна обеспечивать интерфейс между устройствами и остальной частью системы. В целях развития интерфейс должен быть одинаковым для всех типов устройств (независимость от устройств).
Управление вводом/выводом.
Устройства ввода-вывода делятся на два типа: блок-ориентированные устройства и байт-ориентированные устройства. Блок-ориентированные устройства хранят информацию в блоках фиксированного размера, каждый из которых имеет свой собственный адрес. Самое распространенное блок-ориентированное устройство - диск. Байт-ориентированные устройства не адресуемы и не позволяют производить операцию поиска, они генерируют или потребляют последовательность байтов. Примерами являются терминалы, строчные принтеры, сетевые адаптеры. Электронный компонент называется контроллером устройства или адаптером. Операционная система имеет дело с контроллером. Контроллер выполняет простые функции, осуществляет контроль и исправляет ошибки. Каждый контроллер имеет несколько регистров, которые используются для взаимодействия с центральным процессором. ОС выполняет ввод-вывод, записывая команды в регистры контроллера. Контроллер гибкого диска IBM PC принимает 15 команд, таких как READ, WRITE, SEEK, FORMAT и т.д. Когда команда принята, процессор оставляет контроллер и занимается другой работой. При завершении команды контроллер организует прерывание для того, чтобы передать управление процессором операционной системе, которая должна проверить результаты операции. Процессор получает результаты и статус устройства, читая информацию из регистров контроллера.
Основная идея организации программного обеспечения ввода-вывода состоит в разбиении его на несколько уровней, причем нижние уровни обеспечивают экранирование особенностей аппаратуры от верхних, а те, обеспечивают удобный интерфейс для пользователей.
Ключевым принципом является независимость от устройств. Вид программы не должен зависеть от того, читает ли она данные с гибкого диска или с жесткого диска. Другим важным вопросом для программного обеспечения ввода-вывода является обработка ошибок. Вообще говоря, ошибки следует обрабатывать как можно ближе к аппаратуре. Если контроллер обнаруживает ошибку чтения, то он должен попытаться ее скорректировать. Если же это ему не удается, то исправлением ошибок должен заняться драйвер устройства. И только если нижний уровень не может справиться с ошибкой, он сообщает об ошибке верхнему уровню.
Еще один ключевой вопрос - это использование блокирующих (синхронных) и неблокирующих (асинхронных) передач. Большинство операций физического ввода-вывода выполняется асинхронно - процессор начинает передачу и переходит на другую работу, пока не наступает прерывание. Необходимо, чтобы операции ввода-вывода были блокирующие - после команды READ программа автоматически приостанавливается до тех пор, пока данные не попадут в буфер программы.
Последняя проблема состоит в том, что одни устройства являются разделяемыми(диски: одновременный доступ нескольких пользователей к диску не представляет собой проблему), а другие - выделенными(принтеры: нельзя смешивать строчки, печатаемые различными пользователями).
Для решения поставленных проблем целесообразно разделить программное обеспечение ввода-вывода на четыре слоя (рисунок 2.30):
Обработка прерываний,
Драйверы устройств,
Независимый от устройств слой операционной системы,
Пользовательский слой программного обеспечения.
Понятие аппаратного прерывания и его обработка.
Асинхронные или внешние (аппаратные) прерывания — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши; Они требуют моментальной реакции (обработки).
Практически все системы ввода/вывода в компьютере работают с использованием прерываний. В частности, когда вы нажимаете клавиши или щелкаете мышью, аппаратура вырабатывает прерывания. В ответ на них система, соответственно, считывает код нажатой клавиши или запоминает координаты курсора мыши. Прерывания вырабатываются контроллером диска, адаптером локальной сети, портами последовательной передачи данных, звуковым адаптером и другими устройствами.
Кажется очевидным, что возможны самые разнообразные прерывания по самым различным причинам. Поэтому с прерыванием связывают число - так называемый номер прерывания.
Этот номер однозначно соответствует тому или иному событию. Система умеет распознавать прерывания и при их возникновении запускает процедуру, соответствующую номеру прерывания.
Некоторые прерывания (первые пять по порядку номеров) зарезервированы для использования центральным процессором на случай каких-либо особых событий вроде попытки деления на нуль, переполнения и т. п. (это правда внутренние прерывания ).
Аппаратные прерывания всегда происходят асинхронно по отношению к выполняющимся программам. Кроме того, может возникнуть одновременно сразу несколько прерываний!
Для того чтобы система "не растерялась", решая какое прерывание обслуживать в первую очередь, существует специальная схема приоритетов. Каждому прерыванию назначается свой приоритет. Если происходит одновременно несколько прерываний, система отдает предпочтение самому высокоприоритетному, откладывая на время обработку остальных прерываний.
Система приоритетов реализована на двух микросхемах Intel 8259 (или аналогичных). Каждая микросхема является контроллером прерывания и обслуживает до восьми приоритетов. Микросхемы можно объединять (каскадировать) для увеличения количества уровней приоритетов в системе.
Уровни приоритетов обозначаются сокращенно IRQ0 - IRQ15.
