Операционные системы и среды : практическая реализация моделей организации вычислительных работ
Покупка
Издательство:
Издательский Дом НИТУ «МИСиС»
Год издания: 2014
Кол-во страниц: 71
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-87623-762-0
Артикул: 753127.01.99
Рассматриваются теоретические вопросы организации вычислительного процесса, прежде всего, управление порядком выполнения вычислительных работ и модели размещения программных единиц в памяти компьютера. Эти знания являются достаточными для самостоятельной программной реализации соответствующих упрощенных моделей. Примеры таких реализаций также рассматриваются в пособии. Содержание пособия соответствует дисциплине «Операционные системы и среды». Предназначено для студентов специальностей 220700, 230100, 230400, 230700 и 231300.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС» № 2367 Кафедра инженерной кибернетики А.И. Широков О.Н. Калашникова Операционные системы и среды Практическая реализация моделей организации вычислительных работ Учебное пособие Под редакцией профессора Е.А. Калашникова и кандидата технических наук Ю.Ю. Прокопчука Рекомендовано УМО по образованию в области прикладной математики и управления качеством в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению 231300 – Прикладная математика Москва 2014
УДК 004.45 Ш64 Р е ц е н з е н т д-р техн. наук, проф. Н.В. Максимов (НИЯУ МИФИ) Широков, А.И. Ш64 Операционные системы и среды : практическая реализация моделей организации вычислительных работ : учеб. пособие / А.И. Широков, О.Н. Калашникова. – М. : Изд. Дом МИСиС, 2014. – 71 с. ISBN 978-5-87623-762-0 Рассматриваются теоретические вопросы организации вычислительного процесса, прежде всего, управление порядком выполнения вычислительных работ и модели размещения программных единиц в памяти компьютера. Эти знания являются достаточными для самостоятельной программной реализации соответствующих упрощенных моделей. Примеры таких реализаций также рассматриваются в пособии. Содержание пособия соответствует дисциплине «Операционные системы и среды». Предназначено для студентов специальностей 220700, 230100, 230400, 230700 и 231300. УДК 004.45 ISBN 978-5-87623-762-0 © А.И. Широков, О.Н. Калашникова, 2014
ОГЛАВЛЕНИЕ От авторов .................................................................................................4 Введение....................................................................................................5 1. Модели организации вычислительного процесса .............................6 1.1. Модели обслуживания потока вычислительных заявок...........6 1.2. Модели размещения вычислительных заявок в памяти .........10 2. Реализация алгоритмов организации вычислительного процесса и функций стандартных утилит операционной системы..........17 2.1. Примеры реализации алгоритмов планирования потока вычислительных работ......................................................................17 2.2 Пример алгоритма, моделирующего загрузку программ в оперативную память компьютера ....................................................37 2.3 Пример алгоритма, упрощенно моделирующего отдельные функции стандартных утилит .............................................................42 3. Этапы выполнения курсовой работы или домашнего задания ......47 Литература ..............................................................................................60 Приложение 1. Титульный лист............................................................62 Приложение 2. Этапы выполнения курсовой работы и формы отчетности ...............................................................................63 Приложение 3. Пример консольного приложения, читающего текстовый файл .....................................................................63 Приложение 4. Пример программы с графической интерпретацией результатов работы алгоритма..............................................................64
Памяти Алексея Вадимовича Козловского От авторов Авторы данного пособия посвящают его памяти своего коллеги Алексея Вадимовича Козловского, скоропостижно скончавшегося 9 октября 2009 г. После окончания механико-математического факультета МГУ в 1971 г. А.В. Козловский начал свою трудовую деятельность на кафедре инженерной кибернетики МИСиС в должности математикапрограммиста. В 1972 г. был избран на должность ассистента, а в 1976 г. – старшего преподавателя. Методико-преподавательская деятельность А.В. Козловского – это главным образом создание учебного курса «Численные методы». А.В. Козловский читал этот курс в течение 30 лет, систематически улучшая и перерабатывая его. По этому курсу им были изданы учебные и методические пособия, а также разработан и введен в практику цикл лабораторных работ на основе вычислительной техники. Очень много времени Алексей Вадимович уделял внеаудиторной работе со студентами кафедры инженерной кибернетики. Под его руководством были с успехом защищены не один десяток дипломных работ. Долгое время А.В. Козловский работал в должности ученого секретаря кафедры. Эту работу он выполнял на высоком уровне, чем снискал уважение как руководства института и кафедры, так и преподавателей. Занятия и лекции А.В. Козловский проводил на высоком научном уровне. За время работы в МИСиС он опубликовал более 30 научных статей и докладов. Авторы данного пособия сотрудничали с А.В. Козловским около 40 лет. У них навсегда сохранились самые теплые воспоминания о нем как о высококвалифицированном специалисте, прекрасном педагоге и, что особенно важно, искреннем и доброжелательном товарище.
Введение Современные операционные системы являются сложными программно-алгоритмическими комплексами. Подробное изучение реализованных в них моделей и алгоритмов является важной составляющей подготовки специалистов в области компьютерных технологий. Курсовая работа – наиболее подходящая форма для решения такой задачи, потому что выполнение ее является самостоятельной деятельностью студента, вырабатывающей у него профессиональные навыки, и содержащей все этапы его будущей деятельности: изучение проблемы, анализ конкретной задачи и ее решение с доведением до законченного результата. В учебном пособии содержится описание теоретических моделей организации вычислительного процесса и пример описания функций одной из системных утилит UNIX. Приведены также задания на курсовую работу или домашнее задание. Они требуют разработки программы, реализующей весьма упрощенный алгоритм, подобный тем, которые решают операционные системы. Это полезно как для закрепления знаний по теории операционных систем, так и для получения навыков написания и отладки программ.
1. МОДЕЛИ ОРГАНИЗАЦИИ ВЫЧИСЛИТЕЛЬНОГО ПРОЦЕССА 1.1. Модели обслуживание потока вычислительных заявок Современные операционные системы обеспечивают одновременное выполнение нескольких типов вычислительных работ: процессов, потоков (trehead) и волокон. Это вызывает необходимость решения многих задач: создания и планирования всех типов вычислительных работ, их взаимодействия и синхронизации. Среди множества функций, которые реализуют операционные системы главнейшей, видимо, является предоставление запущенным программам важнейшего ресурса системы – процессорного времени. Современные операционные системы различают несколько состояний вычислительных процессов. Одно из них (пожалуй, основное) – выполнение, при котором процесс обрабатывается центральным процессором. При реализации многозадачности каждый процесс в таком состоянии находится непродолжительное время, после чего он «уступает» выполнение другому процессу. t1 0 t2 t3 t4 A B C Рис. 1.1. Временная диаграмма выполнения трех процессов На диаграмме (рис. 1.1) представлен фрагмент временной диаграммы выполнения центральным процессором трех вычислительных процессов с именами А, В и С. В первый интервал времени от 0 до t1 выполняется процесс А, затем с t1 до t2 – процесс В, затем (с t2 до t3) – снова А и последним (с t3 до t4) – С. После этого процессы продолжат обрабатываться дальше.
Операционная система, работающая в мультипрограммном режиме, отслеживает изменения состояний выполняемых процессов и других вычислительных работ. Состояний, в которых может находиться процесс, много. Первое из них – выполнение. Оно может измениться на ожидание. Но причин такого состояния бывает много. Например, ожидание готового к выполнению процесса или ожидание какой-то операции, например, ввода необходимых для дальнейшей работы данных. Современные операционные системы могут различать более десятка состояний вычислительных работ. К примеру, команда ps, выводящая разнообразную информацию о процессах, выводит семь основных значений параметра «статус процесса» и около 10 дополнительных. Это справедливо для варианта freebsd команды ps. В самом общем случае при реализации какого-то алгоритма режима мультипрограммирования интервалы времени (кванты) работы каждого отдельного процесса могут быть различными, но часто они устанавливаются одинаковыми. Порядок поступления на обработку уже выполнявшихся процессов также может быть разным, т.е. изменение состояния «выполнение» вычислительного процесса на другое может происходить по разным причинам. Первая из них – истечение времени, отпущенного на выполнение процесса. Другими причинами могут быть ожидание операции ввода/вывода или поступление в систему более приоритетного процесса. Могут быть и другие причины, состав которых различен в зависимости от технологии реализации режима многозадачности. В режиме мультипрограммирования заявки на использование процессора должны выполняться поочередно, поэтому возникает задача диспетчеризации. Она является частным случаем задачи планирования вычислительных работ – краткосрочным. Кроме того, имеет место еще и долгосрочное и среднесрочное планирование. В большинстве современных операционных систем (ОС) долгосрочный планировщик отсутствует. В результате решения задачи краткосрочного планирования (диспетчеризации) должно быть определено, какие процессы и в каком порядке надо выполнять для того, чтобы достигнуть поставленной цели. Стратегий такого планирования много: 1) по возможности заканчивать вычисления в том же порядке, в котором он были начаты; 2) отдавать предпочтение более коротким задачам; 3) предоставлять всем пользователям одинаковые услуги, в том числе и одинаковое время ожидания.
В монографии [1], как и во многих других книгах по теории операционных систем, выделяются три класса последних: • пакетные системы; • интерактивные системы; • системы реального времени. Эти классы определяются различными условиями решения вычислительных задач. Для персональных компьютеров такие условия в большей мере соответствуют интерактивным системам. Они ориентированы на равномерное обслуживание множества программ. Хотя отдельные функции, реализованные в них, являются основными в других классах операционных систем. Системы пакетной обработки были реализованы в компьютерах третьего поколения, в которых основной задачей было выполнение множества заданий за возможно короткое время. Системы реального времени используются для управления техническими объектами, частой проблемой которых является выполнение задач к определенному времени. При диспетчеризации операционная система реализует некоторый алгоритм, который должен решать множество задач. Приведем задачи [1], которые должен решать планировщик заданий для всех классов операционных систем: Равнодоступность – предоставление каждому процессу справедливой доли времени центрального процессора. Принуждение к определенной политике – наблюдение за выполнением установленной политики. Баланс – поддержка загруженности всех составных частей системы. Теперь опишем задачи, которые в первую очередь реализуются в трех названных классах операционных систем. Пакетные системы: производительность – выполнение максимального количества заданий в час; оборотное время – минимизация времени между представлением задачи и ее завершением; использование центрального процессора – поддержка постоянной загруженности процессора. Интерактивные системы: время отклика – быстрый ответ на запросы; пропорциональность – оправдание пользовательских надежд; Системы реального времени: соблюдение предельных сроков – предотвращение потери данных; предсказуемость – предотвращение ухудшения качества в мультимедийных системах.