Раздел 1. Введение. Назначение и функции ОС
Опорный конспект
Раздел 1. Введение. Назначение и функции ОС
При изучении данного раздела Вы должны проработать следующие темы:
· предмет и задачи дисциплины; основные этапы развития ОС; поколения ОС;
· ресурсы вычислительных систем, управление ресурсами;
· основные типы операционных систем; состав и назначение основных компонентов ОС;
· классификация операционных систем.
Для проверки усвоения материала тем Вам предстоит ответить на вопросы для самопроверки (темы 1.1, 1.2, 1.3, 1.4).
Работа с разделом 1 завершается сдачей контрольного теста.
Для того чтобы Вы смогли успешно ответить на вопросы контрольного теста, Вам предоставляется возможность поработать с репетиционным тестом. Он является полным аналогом контрольного, однако время работы с ним не ограничено и приведены правильные ответы на вопросы.
Если Вы справились с репетиционным тестом, переходите к контрольному тесту. Индивидуальный вариант теста следует получить у своего преподавателя (тьютора). При работе с этим тестом время ответа на вопросы теста ограничено. Каждый правильный ответ контрольного теста оценивается в три балла. Максимальное число баллов, которое можно получить в этом разделе, равно 15 .
1.1.1. Предмет и задачи дисциплины. Основные этапы
Развития ОС. Поколения ОС
Основной задачей дисциплины «Операционные системы» является рассмотрение ОС с самых общих позиций. В подавляющем большинстве ОС используют одни и те же принципы управления ресурсами ВС, что позволяет при изучении ОС использовать подход от общего к частному, уделяя основное внимание основополагающим идеям, используемым при построении большинства ОС.
В результате изучения дисциплины студент должен усвоить основы теории построения ОС, уметь применять полученные знания при решении задач в области информационных технологий.
Теоретической и практической основами дисциплины являются курсы «Математика», «Программирование и алгоритмизация», «Информатика». Приобретенные знания будут использованы при изучении дисциплин «Системное программирование», «Прикладное программирование», а также при курсовом и дипломном проектировании.
Любая ВС представляет собой совокупность взаимодействующих между собой ресурсов (процессор, память, устройства ввода/вывода), которые используются при решении различных задач.
Операционная система обычно рассматривается как совокупность программных средств, которые обеспечивают возможность рационального использования оборудования вычислительной системы удобным для пользователя образом.
Т. е. ОС обеспечивает удобный интерфейс для пользователя и представляет собой средство эффективного управления всеми частями ВС.
Реализуя эти функции (интерфейс между пользователем и ВС, управление ВС), ОС предоставляет пользователю некоторую виртуальную ВС. Это означает, что ОС в значительной степени формирует у пользователя представление о возможностях ВС, удобстве работы с ней, ее пропускной способности. Различные ОС на одних и тех же технических средствах могут предоставить пользователю различные возможности для организации вычислительного процесса или автоматизированной обработки данных.
Рассматривая вопросы эволюции ОС, наиболее целесообразным следует считать выделение отдельных этапов развития ОС в пределах поколений ЭВМ.
Один из вариантов такого деления развития ОС на отдельные этапы приведен ниже.
§ в конец 40-х, начало 50-х. Ламповые ЭВМ. Появление элементов системного ПО (тестовые программы, отладчики, трансляторы).
§ средина 50-х. Появление п/п приборов. Возрастает производительность ЦП. Существующие элементы системного ПО не справляются с загрузкой ЦП. Появляются первые ОС пакетной обработки.
§ 60-е годы. Появляются новые аппаратные разработки (система прерывания, таймер, канал), которые стимулируют развитие методов управления данными. Однопрограммная пакетная обработка не может обеспечить приемлемый уровень эффективности эксплуатации ВС. Решением проблемы стало использование мультипрограммных режимов работы.
§ в 90-е годы практически все ОС, занимающие заметное место на рынке, являются сетевыми. Доступность персональных компьютеров послужила стимулом для создания локальных вычислительных сетей. Основной задачей сетевых ОС является реализация способов разделения ресурсов между компьютерами сети.
§ 2000-е годы. Развитие ОС с поддержкой беспроводной связи для мобильных устройств.
Вопросы для самопроверки по теме 1.1
1. Дайте определение операционной системы.
2. Назовите основные задачи, решаемые при управлении ресурсами ВС.
3. Перечислите поколения операционных систем.
4. Назовите основные отличительные признаки поколений операционных систем.
5. Какова причина появления ОС пакетной обработки?
6. Когда появились сетевые ОС? Чем они отличаются от несетевых ОС?
.
Вопросы для самопроверки по теме 1.2
1. Перечислите основные виды ресурсов вычислительной системы.
2. Какие ресурсы распределяются между пользователями во времени?
3. Какие ресурсы распределяются между пользователями в пространстве?
4. Назовите основные задачи управления ресурсами.
Вопросы для самопроверки по теме 1.3
1. Назовите основные типы ОС.
2. Чем распределенная ОС отличается от сетевой ОС?
3. Назовите примеры жестких ОС реального времени и мягких ОС реального времени.
4. Назовите основные подсистемы ОС.
5. Какие функции реализует система аудита ОС?
Вопросы для самопроверки по теме 1.4
1. Чем отличается ОС с невытесняющей многозадачностью от ОС с вытесняющей многозадачностью?
2. Почему ОС с монолитным ядром работает быстрее, чем ОС с микроядром?
3. ОС пакетной обработки относится к однозадачным или многозадачным ОС?
4. Какую ОС проще модифицировать, ОС с микроядром или ОС с монолитным ядром?
5. ОС с разделением времени относится к однопользовательским или многопользовательским ОС?
6. ОС персонального компьютера может быть многозадачной?
Вопросы для самопроверки по теме 2.1
1. Что понимают под архитектурой ОС?
2. Почему монолитные ОС работают быстрее, чем ОС со слоеной структурой?
3. Почему ОС со слоеной структурой тестируются проще, чем монолитные ОС?
4. Какую ОС проще реализовать − ОС со слоеной структурой или ОС с монолитным ядром?
5. В чем отличие архитектуры ОС со слоеной структурой от архитектуры монолитной ОС?
Вопросы для самопроверки по теме 2.2
1. Назовите основные функции ОС, которые выполняют модули ядра.
2. Почему ядро ОС должно функционировать в привилегированном режиме?
3. Какие функции ядра ОС образуют API?
4. Какие модули ОС являются транзитными?
5. Назовите основные особенности микроядерной архитектуры ОС.
Вопросы для самопроверки по теме 2.3
1. Почему любая ОС является машинозависимой системой?
2. Почему модульность ОС облегчает решение задачи переносимости ОС?
3. Дайте определение модуля ОС.
4. В какой из ОС задачи переносимости решаются проще − в ОС с монолитным ядром или в ОС с микроядерной архитектурой?
5. Какое условие обеспечивает возможность замены одного модуля другим?
Раздел 3. Процессы и потоки
При изучении данного раздела Вы должны проработать следующие темы:
· Управление процессом. Понятие процесса. Диаграмма состояний процесса. Контекст процесса.
· Реализация потоков. Планирование и диспетчеризация процессов.
· Приоритеты, очереди процессов.
· Синхронизация взаимодействия процессов. Взаимоисключение, блокирующие переменные, семафоры прерывания.
Для проверки усвоения материала по разделу 3 курса, Вам предстоит выполнить контрольную работу и лабораторную работу №1, а также ответить на вопросы самопроверки по этим темам. Работа с разделом 3 завершается сдачей контрольного теста № 3 с суммарным количеством баллов 15.
Вопросы для самопроверки по теме 3.1
1. Что понимают под процессом в операционной системе компьютера?
2. В каких состояниях может находиться любой процесс ОС?
3. Каковы основные операции, производимые ОС с контекстом процесса при остановке выполнения этого процесса и при продолжении исполнения процесса?
4. Назовите основные составляющие структуры контекста процессов.
5. Назовите причины, по которым ОС может перевести процесс из состояния «исполнение» в состояние «готовность».
Реализация потоков. Планирование и диспетчеризация процессов
Усилия, направленные на ускорение решения задач в рамках ОС, привели к появлению новых абстракций внутри понятия «процесс» − это «нити исполнения» («нити») или «потоки».
Потоки являются объектами, поочередно работающими с процессором ВС (т. е. потоки исполняет процессор).
У каждого потока есть свой счетчик команд, отслеживающий порядок выполнения программы, есть стек, содержащий протокол исполнения программы, есть регистры, в которых хранятся текущие переменные программы (потока).
Несколько потоков, работающих параллельно в одном процессе, аналогичны нескольким процессам, работающим на одном компьютере.
Взаимодействие потоков в пределах одного процесса осуществляется гораздо проще и быстрее, чем взаимодействие между процессами.
Например, если один из потоков открывает файл, то этот файл тут же становится, виден для всех остальных потоков этого процесса.
Концепция потоков состоит в обеспечении возможности использования набора ресурсов процесса несколькими потоками этого процесса для выполнения общей задачи.
Создание потоков требует от ОС меньших накладных расходов, чем при создании процессов.
Существует два основных способа реализации потоков:
· в пространстве пользователя;
· в пространстве ядра.
Выбор между этими способами – вопрос достаточно сложный. В принципе, возможна смешанная реализация потоков.
В первом случае пакет потоков размещается целиком в пространстве пользователя. Ядро о потоках ничего не знает и управляет обычными процессами.
К преимуществам такого метода относится возможность реализации пакета потоков в ОС не поддерживающей технологию потоков.
В пространстве пользователя организуются таблицы потоков. Причем в каждом процессе организуется своя таблица потоков.
Эти таблицы аналогичны таблицам процессов, но поддерживают только характеристики потоков.
Когда поток переходит из состояния в состояние, то вся информация, необходимая для повторного запуска потока, хранится в таблице потока.
При такой организации прикладная часть может сама сохранять информацию о потоке в соответствующей таблице, вызвать планировщик, чтобы он запустил на исполнение другой поток. И все это делается без обращения к ядру (т. е. без переключения режимов работы ОС).
Еще одно преимущество такого способа реализации потоков – каждый процесс может иметь собственный алгоритм планирования потоков (высокий уровень степени адаптации программ к условиям решаемых задач).
К недостаткам метода относятся:
1. Сложность реализации.
2. При запуске одного потока в процессе − ни один другой поток не может быть запущен в этом же процессе, пока первый поток добровольно не отдаст процессор.
Внутри одного процесса нет прерываний по таймеру (следовательно, нет возможности создать планировщик, обеспечивающий поочередное выполнение потоков внутри одного процесса).
При реализации пакета потоков внутри ядра ОС подразумевается, что ядро знает о существовании потоков и управляет ими.
Нет необходимости в наличии таблиц потоков в каждом процессе.
Вместо этого в ядре организуется единая таблица, отслеживающая все потоки в ОС.
При блокировании какого-либо потока ядро может запустить другой поток из этого же или из другого процесса.
Т. е. система управления потоками оказывается более гибкой.
Однако все запросы для управления потоками оформляются как системные вызовы, что ведет к необходимости переключения режимов ОС и, как следствие, к увеличению накладных расходов ОС.
При функционировании ОС выполнение процессов может быть многократно прервано и продолжено.
Переход от выполнения одного процесса к другому осуществляется в результате выполнения операций планирования и диспетчеризации.
Планирование заданий (запуск задания на выполнение порождает процесс) появилось в пакетных системах после того, как для хранения сформированных пакетов заданий начали использовать магнитные диски. Магнитные диски являются устройствами прямого доступа и позволяют загружать задания в компьютер в произвольном порядке. Изменяя порядок загрузки заданий, можно существенно повысить эффективность использования ВС. Процедуру выбора очередного задания для загрузки в ВС называют долгосрочным планированием (планированием заданий).
Долгосрочное планирование отвечает за порождение процессов и определяет степень мультипрограммирования ВС. Если степень мультипрограммирования поддерживается постоянной, то новые процессы могут появиться только после завершения ранее загруженных процессов. Поэтому долгосрочное планирование осуществляется достаточно редко (между появлением новых процессов могут проходить минуты). Решение о выборе процесса для запуска оказывает влияние на функционирование ВС достаточно длительное время, отсюда и название – долгосрочное планирование.
Планирование использования процессора ВС рассматривается как краткосрочное планирование процессов. Оно проводится, как правило, не реже одного раза в сто миллисекунд и осуществляется всякий раз, когда процесс покидает состояние «исполнение» (освободился процессор – его необходимо загрузить новым процессом). Выбор нового процесса для загрузки процессора оказывает влияние на ВС достаточно короткое время (до наступления очередного аналогичного события), отсюда и название – краткосрочное планирование.
Планирование процессов включает в себя решение следующих задач:
1. Определение момента времени для смены текущего активного процесса.
2. Выбор для выполнения процесса из очереди готовых процессов.
Диспетчеризация заключается в реализации найденного в результате планирования решения, т. е. непосредственно в выполнении переключения процессора с одного процесса на другой.
Диспетчеризация сводится к следующему:
· сохранение контекста текущего процесса, который требуется сменить;
· загрузка контекста нового процесса, выбранного в результате планирования;
· запуск нового процесса на выполнение.
Все алгоритмы планирования можно разделить на два класса: вытесняющие (preemptive) и невытесняющие (non-preemptive).
Невытесняющие алгоритмы основаны на том, что активному процессу позволяется выполняться до тех пор, пока он сам не отдаст управление ОС, чтобы она выбрала из очереди другой, готовый к выполнению процесс
Вытесняющие алгоритмы − это способы планирования, в которых решение о переключении процессора с выполнения одного процесса на выполнение другого процесса выполняется ОС, а не активным процессом.
Невытесняющее планирование эффективно использовалось в ОСWindows 3.x, NetWare 3.x, 4.x.
Этот метод просто реализуется, достаточно эффективен, так как минимизирует время на переключение контекстов. Однако в этом случае возможно возникновение проблемы захвата ресурса одним процессом, который вследствие какой-либо ошибки может зациклиться и не передать управление другому процессу.
В такой ситуации выход из зависания – перезагрузка системы.
Большинство современных ОС (Unix, Windows NT, 2000, OS/2) реализованы с использованием вытесняющих алгоритмов планирования.
В некоторых ВС для повышения их производительности бывает выгодно удалить частично выполненные процессы из оперативной памяти на магнитный диск, а позже вернуть его в оперативную память для дальнейшего исполнения. Такая процедура получила название свопинга. Когда и какой из процессов следует выгрузить на магнитный диск и вернуть обратно в оперативную память, решается на промежуточном уровне планирования процессов, который получил название среднесрочного планирования.
При изучении материала данного раздела следует рассмотреть работу простейших алгоритмов планирования процессов, таких как «Первым пришел – первым обслужился» (FIFO) для случаев невытесняющего и вытесняющего планирования.
Вопросы для самопроверки по теме 3.2
1. Почему планирование заданий появилось при использовании для хранения заданий магнитных дисков?
2. Какой вид планирования относится к долгосрочному?
3. Чем отличается вытесняющее планирование от невытесняющего?
4. Назовите основные задачи, которые решаются при диспетчеризации.
5. Какой вид планирования относится к среднесрочному?
Вопросы для самопроверки по теме 3.3
1. Как определяется приоритет процесса?
2. Дайте определение динамического приоритета процесса.
3. Чем отличается многоуровневая очередь с обратной связью от многоуровневой очереди без обратной связи?
4. В чем отличие поведения процесса с относительным приоритетом от процесса с абсолютным приоритетом?
5. Какая из очередей обладает более высоким приоритетом − очередь, в которой для выполнения процесса предоставляется 10 условных единиц времени процессора, или очередь, где эта величина равна 30 условным единицам?
Вопросы для самопроверки по теме 3.4
1. Назовите основные причины для взаимодействия процессов.
2. Какова основная функция блокирующей переменной?
3. Каким образом исключаются гонки при обработке разделяемых данных несколькими потоками?
4. Какие основные способы представления информации об источниках прерывания используются в ОС?
5. В чем отличие внешних прерываний от внутренних?
Вопросы для самопроверки по теме 4.1
1. Какие основные задачи решает ОС в процессе управления памятью?
2. Какие алгоритмы распределения памяти используются в ОС?
3. В чем заключается отличие метода распределения памяти с фиксированными разделами от метода распределения памяти динамическими разделами?
4. Чем отличается загрузка процессов при свопинге от загрузки процессов при страничной организации памяти?
5. Почему свопинг как основной механизм управления памятью практически не используется в современных ОС?
Вопросы для самопроверки по теме 4.2
1. Где хранится информация о страницах виртуальной памяти процесса?
2. Для каких процессов создается таблица страниц?
3. Где располагается таблица страниц (в ОП или на HDD)?
4. Что такое дескриптор страницы?
5. Какие способы позволяют повысить эффективность управления страничного распределения памяти?
Вопросы для самопроверки по теме 4.3
1. В чем отличие страницы виртуальной памяти от сегмента?
2. Чем таблица страниц отличается от таблицы сегментов?
3. Что является единицей обмена между ОП и HDDпри сегментной организации памяти?
4. Что такое дескриптор сегмента?
5. Какие недостатки сегментной организации памяти позволяет устранить переход к сегментно-страничному распределению памяти?
КЭШ-память
КЭШ-память − это способ взаимодействия двух типов ЗУ, отличающихся временем доступа и стоимостью хранения данных. За счет динамического копирования части наиболее часто используемых данных из медленного в быстрое ЗУ удается уменьшить среднее время доступа к данным и экономить более дорогую быстродействующую память.
Основным свойством КЭШ является ее прозрачность. То есть ни пользователь, ни программа не принимают никакого участия в перемещении данных из одного типа ЗУ в другое, все производится автоматически.
КЭШ часто называют не только способ организации работы ЗУ, но и одно из ЗУ, а именно – быстрое ЗУ. Обычно оно имеет сравнительно небольшой объем.
Использование КЭШ – это универсальный способ, пригодный для ускорения доступа процессора к ОП, к HDD и другим видам памяти.
Содержание КЭШ-памяти представляет собой совокупность записей. В каждой записи содержатся:
· элемент данных, который является копией данных из ОП;
· адрес, по которому расположен элемент данных в ОП;
· служебная информация (признак модификации, признак актуальности данных идр.).
При каждом обращении к ОП по физическому адресу просматривается содержимое КЭШ с целью определения факта содержания в КЭШ нужных данных.
КЭШ-память не является адресуемой, поэтому поиск нужных данных осуществляется по значениям поля адреса в ОП, который берется из запроса (определение производится одновременно для всех ячеек КЭШ по схемам совпадения адреса из поля адресов и адреса из запроса).
Далее возможны следующие варианты действий ВС:
1. Данные обнаруживаются в КЭШ. Этот факт называют КЭШ-попаданием (cache-hit). Эти данные считываются из КЭШ и передаются ЦП.
2. Данные не обнаруживаются в КЭШ. Произошел КЭШ-промах (cache-miss). В этом случае данные считываются из ОП, передаются в ЦП и одновременно с этим копируются в КЭШ.
Эффективность кэширования зависит от вероятности такого события, как КЭШ-попадание.
Опыт использования ВС с КЭШ показывает, что при решении стандартных задач программирования процент КЭШ-попаданий достаточно высок (более 90 %).
Наличие в ВС двух копий данных – в ОП и в КЭШ, порождает проблему согласования данных.
Например, если происходит запись данных в ОП, а содержимое этой ячейки находится в КЭШ, то, если не принимать дополнительных мер, информация в КЭШ становится недостоверной.
Существует два подхода к решению проблемы согласования данных – сквозная запись данных и обратная запись данных.
1. Сквозная запись (writethrough). В этом случае при записи данных в ОП просматривается КЭШ. Если адрес ячейки ОП, по которому производится запись в КЭШ отсутствует, то запись осуществляется только в ОП. Если адрес этой ячейки значится в КЭШ, то запись данных осуществляется одновременно и в КЭШ, и в ячейку ОП.
2. Обратная запись (writeback). В этом случае при записи данных в ОП просматривается КЭШ. Если адрес ячейки ОП, по которому производится запись в КЭШ, отсутствует, то запись осуществляется только в ОП. Если адрес этой ячейки значится в КЭШ, то запись данных осуществляется только в КЭШ, при этом в служебной части записи КЭШ делается отметка (признак модификации). Эта метка указывает, что при вытеснении этой записи из КЭШ ее надо записать в ОП, чтобы актуализировать устаревшее содержание ОП.
Алгоритм поиска и алгоритм замещения данных в КЭШ (а также схемотехнические решения обеспечения поиска необходимой информации) зависят от того, каким образом участки ОП отображаются на КЭШ.
Можно выделить три основных типа отображения:
· полностью ассоциативный КЭШ (случайное отображение);
· КЭШ прямого отображения (детерминированное отображение);
· множественно-ассоциативный КЭШ (совместное использование случайного и детерминированного отображения).
Далее необходимо изучить особенности построения и функционирования блоков КЭШ-памяти указанных типов.
Вопросы для самопроверки по теме 4.4
1. За счет чего уменьшается время доступа к данным при кэшировании?
2. В чем заключается проблема согласования данных при кэшировании?
3. В чем отличие метода сквозной записи от метода обратной записи при кэшировании данных?
4. Каким образом осуществляется поиск данных в блоке КЭШ-памяти?
5. При каком типе отображения данных достигается минимальное количество перезагрузки строк?
Вопросы для самопроверки по теме 5.1
1. Какие запросы ОС может выполнять система ввода/вывода?
2. Чем отличается программируемый ввод/вывод от ввода/вывода по прерыванию?
3. Какой способ ввода/вывода позволяет освободить ЦП от управления вводом/выводом?
4. Какой из режимов ввода/вывода производительней – программируемый, по прерыванию или прямого доступа?
Менеджер ввода/вывода
В системе ввода/вывода наряду с модулями, отражающими специфику внешних устройств и образующими вертикальные подсистемы, существуют модули универсального назначения. Эти модули организуют согласованную работу всех остальных компонентов системы ввода/вывода и взаимодействие с пользовательскими процессами и другими подсистемами ОС. Эти организующие функции распределены по всем уровням системы ввода/вывода, образуя оболочку. Эта оболочка называется менеджером ввода/вывода.
Верхний слой менеджера составляют блоки обработки системных вызовов ввода/вывода, которые принимают от пользовательских процессов запросы на ввод/вывод и переадресуют их отвечающим за определенный класс устройств модулям и драйверам, а также возвращают процессам результаты операций ввода/вывода. Таким образом, этот слой поддерживает пользовательский интерфейс ввода/вывода, создавая для прикладных программистов максимум удобств при манипулировании внешними устройствами и расположенными на них данными.
Нижний слой менеджера реализует непосредственное взаимодействие с контроллерами внешних устройств, экранируя драйверы от особенностей аппаратной платформы компьютера — шины ввода/вывода, системы прерываний и т. п. Этот слой принимает от драйверов запросы на обмен данными с регистрами контроллеров в некоторой обобщенной форме с использованием независимых от шины ввода/вывода адресации и формата, а затем преобразует эти запросы в зависящий от аппаратной платформы формат. Менеджер ввода/вывода выполняет первичную обработку запросов прерываний и передает их диспетчеру прерываний.
Важной функцией менеджера ввода/вывода является создание среды для остальных компонентов подсистемы, которая бы облегчала их взаимодействие друг с другом. Эта задача решается за счет создания некоторого стандартного внутреннего интерфейса взаимодействия модулей ввода/вывода между собой, с прикладными процессами, другими модулями ядра и аппаратурой. Наличие такого интерфейса существенно облегчает включение новых драйверов и файловых систем в состав ОС. Кроме того, разработчики драйверов и других программных компонентов освобождаются от написания общих процедур, таких как буферизация данных и синхронизация нескольких модулей между собой при обмене данными. Все эти функции берет на себя менеджер ввода/вывода.
Примерами подобного менеджера являются менеджер ввода/вывода ОС Windows NT, а также среда STREAMS, существующая во многих версиях операционной системы UNIX. Менеджер ввода/вывода Windows NT организует взаимодействие между модулями с помощью пакетов запросов ввода/вывода — IRP (I/O RequestPacket). Получив запрос от процедуры системного вызова, менеджер формирует IRP и передает его нужному драйверу. Драйвер после выполнения запрошенной операции возвращает ответ в виде другого IRP менеджеру, а тот в свою очередь может при необходимости передать этот IRP другому драйверу. Менеджер позволяет драйверам задавать взаимосвязи (bindings) между собой, и на основании информации о взаимосвязях и происходит передача пакетов IRP. Кроме того, менеджер Windows NT поддерживает динамическую загрузку-выгрузку драйверов без остановки системы.
Наличие стандартного внутреннего межмодульного интерфейса повышает устойчивость и улучшает расширяемость подсистемы ввода/вывода, хотя может несколько замедлить ее работу, так как любое разделение на слои и части приводит к дополнительным операциям при взаимодействии по сравнению с монолитной организацией с прямыми передачами управления.
Вопросы для самопроверки по теме 5.2
1. Назовите основные задачи, решаемые менеджером ввода/вывода.
2. Каков состав и функции верхнего слоя менеджера ввода/вывода?
3. Каков состав и функции нижнего слоя менеджера ввода/вывода?
4. Почему улучшение расширяемости приводит к замедлению работы системы ввода/вывода?
Вопросы для самопроверки по теме 5.3
1. В чем заключается отличие файла от ячеек памяти, внешних устройств?
2. Чем отличается обычный файл от каталога?
3. Назовите состав файловой системы ОС.
4. Каким образом осуществляется доступ пользователя к файлам?
5. Чем отличается мандатный доступ от избирательного?
Вопросы для самопроверки по теме 5.4
1. Каким образом решается задача восстановления работоспособности ФС?
2. Восстановление какой части информации при аварии обеспечивает ФС?
3. Какие операции ФС реализуются в виде транзакций?
4. На основании какой информации реализуются операции отката?
Вопросы для самопроверки по теме 6.1
1. Что подразумевают под сетевой ОС?
2. Назовите основные составные части сетевой ОС.
3. Каковы функции редиректора?
4. Что такое стаб, где расположеныстабы?
5. С какими частями сетевой ОС взаимодействуют стабы?
Сетевые службы и сервисы
Совокупность серверной и клиентской частей сетевой ОС, представляющих доступ к определенному типу ресурса ВС через сеть, называется сетевой службой. Сетевая служба предоставляет пользователям сети некоторый набор услуг, называемый сетевым сервисом. То есть под сетевой службой понимается сетевой компонент, а под сетевым сервисом − набор услуг, который предоставляется этим сетевым компонентом.
При изучении вопросов реализации сетевых служб необходимо обратить внимание на различные подходы к реализации, которые предусматривают различную глубину внедрения сетевых служб в ОС (встроенные сетевые службы, сетевые службы как набор оболочек и сетевые службы как отдельные продукты).
Для пользователя компьютерная сеть – это не просто набор аппаратных и программных средств, а набор сетевых служб, с помощью которых он получает возможность просмотреть список имеющихся в сети компьютеров, прочитать удаленный файл, послать сообщение по электронной почте и др. Кроме обмена данными сетевые службы решают и другие задачи обработки данных (служба репликаций, служба вызова удаленных процедур и др.) и организации работы сети (служба администрирования сети).
Часть служб (как правило, основные – файловая служба, служба каталогов, служба печати) предоставляются пользователю непосредственно сетевой ОС, а вспомогательные службы (служба баз данных, служба передачи голоса и др.) предоставляются сетевыми приложениями или сетевыми утилитами.
Вопросы для самопроверки по теме 6.2
1. Назовите основные сетевые службы компьютерной сети.
2. Перечислите основные способы реализации сетевых служб в составе ОС.
3. Каковы основные функции файловой службы?
4. Какие задачи решает служба каталогов?
Вопросы для самопроверки по теме 6.3
1. Назовите свойства компьютерной сети.
2. Перечислите основные составляющие базовых технологий безопасности сетей.
3. Каковы основные задачи технологии защищенного канала?
4. Какие задачи решает служба аудита?
5. Каким образом подтверждается целостность данных при передаче их по сети?
Заключение
Изучение предложенных материалов, отражающих основы организации ОС и принципов построения ОС, позволяет более эффективно использовать средства ВС при создании программных продуктов. Приобретенные знания могут использоваться при изучении дисциплин «Системное программирование», «Прикладное программирование», при курсовом и дипломном проектировании, а также в производственной деятельности в области компьютерных технологий.
Библиографический список
Основной
1. Олифер, В. Г. Сетевые операционные системы / В. Г. Олифер, Н. А. Олифер. − СПб: Питер, 2001, 2007.
2. Таненбаум, Э. Современные операционные системы / Э. Таненбаум. – СПб: Питер, 2002, 2007.
3. Гордеев, А. В. Операционные системы: учебник для вузов / А. В. Гордеев. – СПб: Питер, 2004, 2006.
Дополнительный
4. Назаров, С. В. Операционные среды, системы и оболочки. Основы структурной и функциональной организации: учеб. пособие / С. В. Назаров. –М.: КУДИЦ-ПРЕСС, 2007.
5. Столлингс, В. Операционные системы: внутреннее устройство и принципы работы / В. Столлингс – 4-е изд. – М.: Вильямс, 2004.
Опорный конспект
Раздел 1. Введение. Назначение и функции ОС
При изучении данного раздела Вы должны проработать следующие темы:
· предмет и задачи дисциплины; основные этапы развития ОС; поколения ОС;
· ресурсы вычислительных систем, управление ресурсами;
· основные типы операционных систем; состав и назначение основных компонентов ОС;
· классификация операционных систем.
Для проверки усвоения материала тем Вам предстоит ответить на вопросы для самопроверки (темы 1.1, 1.2, 1.3, 1.4).
Работа с разделом 1 завершается сдачей контрольного теста.
Для того чтобы Вы смогли успешно ответить на вопросы контрольного теста, Вам предоставляется возможность поработать с репетиционным тестом. Он является полным аналогом контрольного, однако время работы с ним не ограничено и приведены правильные ответы на вопросы.
Если Вы справились с репетиционным тестом, переходите к контрольному тесту. Индивидуальный вариант теста следует получить у своего преподавателя (тьютора). При работе с этим тестом время ответа на вопросы теста ограничено. Каждый правильный ответ контрольного теста оценивается в три балла. Максимальное число баллов, которое можно получить в этом разделе, равно 15 .
1.1.1. Предмет и задачи дисциплины. Основные этапы
Развития ОС. Поколения ОС
Основной задачей дисциплины «Операционные системы» является рассмотрение ОС с самых общих позиций. В подавляющем большинстве ОС используют одни и те же принципы управления ресурсами ВС, что позволяет при изучении ОС использовать подход от общего к частному, уделяя основное внимание основополагающим идеям, используемым при построении большинства ОС.
В результате изучения дисциплины студент должен усвоить основы теории построения ОС, уметь применять полученные знания при решении задач в области информационных технологий.
Теоретической и практической основами дисциплины являются курсы «Математика», «Программирование и алгоритмизация», «Информатика». Приобретенные знания будут использованы при изучении дисциплин «Системное программирование», «Прикладное программирование», а также при курсовом и дипломном проектировании.
Любая ВС представляет собой совокупность взаимодействующих между собой ресурсов (процессор, память, устройства ввода/вывода), которые используются при решении различных задач.
Операционная система обычно рассматривается как совокупность программных средств, которые обеспечивают возможность рационального использования оборудования вычислительной системы удобным для пользователя образом.
Т. е. ОС обеспечивает удобный интерфейс для пользователя и представляет собой средство эффективного управления всеми частями ВС.
Реализуя эти функции (интерфейс между пользователем и ВС, управление ВС), ОС предоставляет пользователю некоторую виртуальную ВС. Это означает, что ОС в значительной степени формирует у пользователя представление о возможностях ВС, удобстве работы с ней, ее пропускной способности. Различные ОС на одних и тех же технических средствах могут предоставить пользователю различные возможности для организации вычислительного процесса или автоматизированной обработки данных.
Рассматривая вопросы эволюции ОС, наиболее целесообразным следует считать выделение отдельных этапов развития ОС в пределах поколений ЭВМ.
Один из вариантов такого деления раз