- •Министерство образования российской федерации
- •Содержание
- •Введение
- •Предмет и задачи курса
- •Рекомендации по литературе
- •Краткий очерк истории ос
- •Предыстория ос
- •Пакетные ос
- •Ос с разделением времени
- •Однозадачные ос для пэвм
- •Многозадачные ос для пк с графическим интерфейсом
- •Классификация ос
- •Критерии оценки ос
- •Надежность
- •Эффективность
- •Удобство
- •Масштабируемость
- •Способность к развитию
- •Мобильность
- •Основные функции и структура ос
- •Ос, используемые в дальнейшем изложении
- •Управление устройствами
- •Основные задачи управления устройствами
- •Классификация периферийных устройств и их архитектура
- •Прерывания
- •Архитектура подсистемы ввода/вывода
- •Способы организации ввода/вывода
- •Ввод/вывод по опросу и по прерываниям
- •Активное и пассивное ожидание
- •Синхронный и асинхронный ввод/вывод
- •Буферизация и кэширование
- •Понятие буферизации
- •Сглаживание неравномерности скоростей процессов
- •Распараллеливание ввода и обработки
- •Согласование размеров логической и физической записи
- •Редактирование при интерактивном вводе
- •Кэширование дисков
- •Опережающее чтение.
- •Драйверы устройств
- •Управление устройствами в ms-dos
- •Уровни доступа к устройствам
- •Драйверы устройств в ms-dos
- •Управление символьными устройствами
- •Управление блочными устройствами
- •Структура диска
- •Разделы и логические тома
- •Средства доступа к дискам
- •Управление устройствами вWindows
- •Драйверы устройств в Windows
- •Доступ к устройствам
- •Управление устройствами вUnix
- •Драйверы устройств вUnix
- •Устройство как специальный файл
- •Управление данными
- •Основные задачи управления данными
- •Характеристики файлов и архитектура файловых систем
- •Размещение файлов
- •Защита данных
- •Разделение файлов между процессами
- •Файловая системаFaTи управление данными вMs-dos
- •Общая характеристика системы fat
- •Структуры данных на диске
- •Структура записи каталога файловой системы fat
- •Создание и удаление файла
- •Работа с файлами в ms-dos
- •Системные функции
- •Доступ к данным
- •Структуры данных в памяти
- •Новые версии системы fat
- •Файловые системы и управление данными вUnix
- •Архитектура файловой системы unix
- •Жесткие и символические связи
- •Монтируемые тома
- •Типы и атрибуты файлов
- •Управление доступом
- •Структуры данных файловой системыUnix
- •Доступ к данным в unix
- •Развитие файловых системUnix
- •Файловая системаNtfSи управление данными вWindows
- •Особенности файловой системы ntfs
- •Структуры дисковых данных
- •Главная таблица файлов
- •Атрибуты файла
- •Доступ к данным
- •Защита данных
- •Аутентификация пользователя
- •Дескриптор защиты
- •Управление процессами
- •Основные задачи управления процессами
- •Реализация многозадачного режима
- •Понятия процесса и ресурса
- •Квазипараллельное выполнение процессов
- •Состояния процесса
- •Вытесняющая и невытесняющая многозадачность
- •Дескриптор и контекст процесса
- •Реентерабельность системных функций
- •Дисциплины диспетчеризации и приоритеты процессов
- •Проблемы взаимодействия процессов
- •Изоляция процессов и их взаимодействие
- •Проблема взаимного исключения процессов
- •Двоичные семафоры Дейкстры
- •Средства взаимодействия процессов
- •Целочисленные семафоры
- •Семафоры с множественным ожиданием
- •Сигналы
- •Сообщения
- •Общая память
- •Программные каналы
- •Проблема тупиков
- •Управление процессами вMs-dos
- •Процессы в ms-dos
- •Среда программы
- •Запуск программы
- •Завершение работы программы
- •Перехват прерываний и резидентные программы
- •Управление процессами вWindows
- •Понятие объекта в Windows
- •Процессы и нити
- •ПланировщикWindows
- •Процесс и нить как объекты
- •Синхронизация нитей
- •Способы синхронизации
- •Объекты синхронизации и функции ожидания
- •Типы объектов синхронизации
- •Критические секции
- •Сообщения
- •Управление процессами в unix
- •Жизненный цикл процесса
- •Группы процессов
- •Программные каналы
- •Сигналы
- •Средства взаимодействия процессов в стандарте posix
- •Планирование процессов
- •Состояния процессов в unix
- •Приоритеты процессов
- •Интерпретатор команд shell
- •Управление памятью
- •Основные задачи управления памятью
- •Виртуальные и физические адреса
- •Распределение памяти без использования виртуальных адресов
- •Настройка адресов
- •Распределение с фиксированными разделами
- •Распределение с динамическими разделами
- •Сегментная организация памяти
- •Страничная организация памяти
- •Сравнение сегментной и страничной организации
- •Управление памятью в ms-dos
- •Управление памятью вWindows
- •Структура адресного пространства
- •Регионы
- •Отображение исполняемых файлов
- •Файлы, отображаемые на память
- •Стеки и кучи
- •Управление памятью вUnix
- •Литература
- •Дроздов Сергей Николаевич операционные системы Конспект лекций
Введение
Предмет и задачи курса
Предметом изучения в данном курсе являются операционные системы(ОС) современных компьютеров.
В первом приближении ОС можно определить как комплекс программ, обеспечивающих интерфейс между аппаратурой компьютера, прикладными программами и пользователем компьютера. Соответственно этому определению, все функции, выполняемые ОС, подчинены решению двух основных задач:
организации эффективной работы аппаратуры компьютера;
обеспечению удобного использования ресурсов компьютера как прикладными программами, так и пользователем, работающим с компьютером.
Основной целью курса является изучение устройства и функционирования современных ОС. При этом будут рассматриваться два круга вопросов:
основные принципы построения ОС, наиболее распространенные алгоритмы выполнения различных функций ОС, типовые структуры данных, используемые для обеспечения работы ОС;
практическое воплощение этих принципов, алгоритмов, структур в наиболее распространенных современных ОС.
В задачи курса не входит обучение практическим приемам работы с конкретными ОС. Это гораздо лучше делать самостоятельно. С другой стороны, не ставится и задача научить слушателей разрабатывать новые ОС. Операционные системы не являются массовыми изделиями, и участвовать в их разработке доводится лишь меньшей части программистов. Уровень знаний, которого хотелось бы достичь при изучении данного предмета, можно сравнить с тем уровнем знаний об устройстве автомобиля, который полезен хорошему водителю. Он не обязательно должен быть автомехаником, однако должен в основных чертах понимать, что находится под капотом и как оно там крутится.
Рекомендации по литературе
Содержание лекционного курса не обязательно на 100% совпадет с данным конспектом, поэтому надежнее всего ходить на лекции и иметь к экзамену собственный конспект.
Из книг общего характера учебник /1/ более всего соответствует данному курсу, как по содержанию, так и в еще большей степени по общему взгляду на предмет. Эту книгу можно найти и в Сети, а также в локальной сети кафедры.
Похвалы и уважения заслуживает книга /2/ - огромный по объему и достаточно простой по изложению обзор всего важного об ОС.
Достаточно хороша также книга /3/, используемая как основной учебник по ОС во многих американских университетах.
Лентяям пригодится книга /4/, в которой, наряду с другими вопросами системного программирования, кратко и довольно толково изложены основные проблемы ОС. Правда, книга старовата.
Книги /5/ и /6/ содержат много полезного по практическим вопросам проектирования ОС, а /7/ остается хорошим источником по теоретическим и алгоритмическим вопросам.
Из литературы по Windowsследует прежде всего рекомендовать классическую книгу /8/, которая делает понятными многие вопросы, трудно перевариваемые по официальной документации. Более глубокий разбор того, «как это сделано вWindows», можно найти в книге /9/. К сожалению, эта книга заметно уступает замечательной, но устаревшей по материалу книге того же автора /10/, которую, тем не менее, полезно прочесть тем, кого интересуют вопросы практической реализации ОС.
На фоне неисчислимых и неотличимых друг от друга пользовательских руководств по UNIXследует выделить достаточно серьезную работу /11/. Не потеряла интереса старенькая, тонкая книжка /12/, в которой содержится много полезного об основных структурах данных и алгоритмахUNIX. Намного подробнее те же вопросы рассмотрены в другой старой книге, которая давно приобрела известность в электронном варианте /13/. Бумажное издание этой книги на русском языке существует только в пиратском варианте, без указания имени автора.
Для тех, кого еще интересует MS-DOS, можно порекомендовать /14/, это одна из лучших книг на данную тему.
Некоторые алгоритмы, используемые при реализации различных ОС, хорошо изложены в классической книге /15/.
Большие коллекции литературы и документации по ОС имеются в Интернете. Среди русскоязычных сайтов можно рекомендовать, например, /16, 17, 18, 19, 20/.
Знание английского языка открывает доступ к морю свежей информации в Интернете. Огромная куча сведений по Windowsсодержится в /21/. На сайте /22/ можно найти интересные статьи по отдельным вопросам архитектурыWindows, а также скачать ряд полезных утилит. Из большого числа сайтов, посвященныхUNIXиLinux, можно назвать, например, /23/ и /24/. На сайте /25/ можно найти много статей и книг по актуальным вопросам программирования, в том числе по ОС.