Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС Нижний.pdf
Скачиваний:
13
Добавлен:
25.03.2023
Размер:
2.75 Mб
Скачать

Лабораторный практикум по курсу "Операционные системы"

б) модификация исходных кодов ядра UNIX, относящихся к подсистеме планировщика с последующей их компиляцией и установкой полученного ядра. (Здесь и далее предполагается выполнение работ с использованием Linux RedHat 7.3, версия ядра - 2.4.18)

Постановка задачи для конкретного слушателя включает выбор варианта исполнения и реализуемого алгоритма диспетчеризации.

Лабораторная работа 2. Замещение областей памяти

Цель работы – реализация одного из алгоритмов замещения страниц памяти. Данная работа предполагает два варианта исполнения:

а) создание программного блока, реализующего замещение страниц, для симулятора;

б) модификация исходных кодов ядра UNIX, относящихся к подсистеме управления памятью с последующей их компиляцией и установкой полученного ядра.

Постановка задачи для конкретного слушателя включает выбор варианта исполнения и реализуемого алгоритма замещения страниц.

Лабораторная работа 3. Синхронизация процессов/потоков

Цель работы - практическое освоение механизмов синхронизации процессов и их посредством механизмов, предоставляемых ОС.

Слушателю предлагается задача и операционная среда (операционных систем Windows или UNIX), в которой требуется выполнить работу. Постановка задачи сходна с одним из классических примеров, для которых имеются решения в виде шаблонов.

Задача слушателя – создать работающую программу (программы).

Лабораторная работа 4. Передача данных между процессами/потоками

Цель работы - практическое освоение механизмов передачи данных, предоставляемых ОС.

Как и в предыдущей работе, слушателю предлагается задача и операционная среда. Задача слушателя – создать работающую программу (программы).

Лабораторная работа 5. Файловые системы

Цель работы – реализация доступа к линейному пространству данных как к иерархической файловой системе.

Данная работа предполагает два варианта исполнения:

а) создание программного блока, обеспечивающего работу с файловой системой, хранящейся в файле;

б) создание модулей для ОС UNIX, обеспечивающих подключение к иерархии файловой системы раздела с файловой системой, хранящегося в файле.

Постановка задачи для конкретного студента включает выбор варианта исполнения и параметры файловой системы.

Литература

В настоящее время в теории операционных систем выделилась некоторая классическая часть являющаяся по большей части устоявшейся (базовые понятия и определения, управление

8 Учебно-исследовательская лаборатория «Информационные технологии»

Лабораторный практикум по курсу "Операционные системы"

памятью, диспетчеризация, теоретические основы взаимодействия процессов и др.). Лабораторный практикум полностью опирается на классическую теорию, которая описана в целом ряде книг зарубежных и российских авторов, причем большинство из них либо написаны по материалам читаемого автором курса, либо предлагают набор лекций для составления из них курса по выбору преподавателя, либо просто являются учебником для высших учебных заведений.

Для более подробного изучения вопросов теоретического раздела мы рекомендуем следующую литературу:

-Э. Таненбаум "Современные операционные системы" – в книге подробно излагается классическая теория операционных систем и описываются современные тенденции их развития;

-А.В. Гордеев, А.Ю. Молчанов "Системное программное обеспечение" - книга российских авторов, в которой достаточно компактно освещены некоторые вопросы. Несмотря на то, что данный источник сильно уступает, например, книге Таненбаума, его можно рекомендовать благодаря его относительно небольшому размеру и нестрогому и понятному изложению;

-Silberschatz and Galvin "Operating System Concepts (6th Edition)" - рекомендуется в качестве книги для чтения в большом числе иностранных ВУЗов (авторам данная книга недоступна);

-Карпов и др. «Операционные системы» - содержание лекционного курса МФТИ.

Существуют множество книг, представляющих собой описания отдельных аспектов функционирования операционных систем (например, В.Г. Олифер, Н.А. Олифер "Сетевые операционные системы"). В настоящее время операционные системы представляют собой сложнейшие комплексы, изучить все подсистемы которых не представляется возможным. Книги подобного типа помогают понять структуру и алгоритмы функционирования конкретных подсистем ОС. Они могут быть рекомендованы для более подробного изучения некоторых разделов курса.

Для успешного выполнения лабораторного практикума также необходима информация об операционных средах, в которых он выполняется. Для этого необходимо использовать техническую документацию, которая в настоящее время имеется в избытке как в печатном,

так и в электронном виде (например, The Linux Kernel by David Rusling http://www.linuxdoc.org/LDP/tlk/). Для конкретных лабораторных работ указаны списки рекомендуемой технической литературы.

Мы надеемся, что выполнение предложенных работ и изучение представленных материалов позволит читателям полнее рассмотреть и понять методы и алгоритмы, лежащие в основе функционирования операционных систем, а преподавателям объективно оценить знания слушателей курса.

Учебно-исследовательская лаборатория «Информационные технологии» 9

Лабораторный практикум по курсу "Операционные системы"

Обзор теоретических положений, необходимых для выполнения практикума

Основные понятия и определения

В начале изложения теоретического материала дадим несколько первоначальных определений часто используемых терминов. Предлагаемые определения не являются точными или исчерпывающими, поскольку с нашей точки зрения, для ниже перечисленных понятий дать краткое и исчерпывающее определение не представляется возможным.

Операционная система – комплекс управляющих и обрабатывающих программ, выполняющий задачи управления ресурсами системы и предоставляющий прикладным программам операционную среду для их исполнения. Две основные функции операционной системы – расширение возможностей ЭВМ и управление ее ресурсами.

Операционная среда – среда исполнения прикладных программ. В частности, операционная среда определяет для прикладных программ множество команд процессора, которые они могут использовать, модель адресации и логическую структуры адресного пространства процесса, множество системных вызовов, доступных процессу и т.д. Отметим, что операционная система может осуществлять поддержу нескольких различных операционных сред.

Ресурсы – обычно, повторно используемые, относительно стабильные и часто недостающие объекты, которые запрашиваются, используются и освобождаются процессами в период их активности. Ресурс может быть разделяемым, в этом случае несколько процессов могут его использовать одновременно (в один и тот же момент времени) или параллельно (в течение некоторого интервала времени процессы используют ресурс попеременно); ресурс может быть неделимым.

Существуют аппаратные ресурсы, такие как процессорное время, оперативная память и дисковое пространство; программные ресурсы, например, библиотеки функций; информационные ресурсы – содержимое файлов и баз данных; ресурсы операционной среды

– структуры, используемые при выполнении системных вызовов, например, структура сообщения; другие типы ресурсов. С точки зрения системы управления ресурсами, данное понятие нивелировалось до уровня абстрактной структуры с набором атрибутов, характеризующим методы доступа к этой структуре и ее физическое представление в системе.

Одним из основных понятий, связанных с операционными системами, является понятие процесса.

Процесс - абстракция, представляющая программу во время ее выполнения. Процесс является потребителем различных ресурсов операционной системы, например:

-адресное пространство процесса содержит его программный код, данные и стек (или стеки);

-файлы используются процессом для чтения входных данных и записи выходных;

-устройства ввода-вывода используются в соответствии с их назначением.

10 Учебно-исследовательская лаборатория «Информационные технологии»

Соседние файлы в предмете Современные операционные системы