Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Системное программное обеспечение. Учебник
.pdf
№ 4670
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ
Университет науки и технологий МИСИС
ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОМПЬЮТЕРНЫХ НАУК
Кафедра автоматизированного проектирования и дизайна
Л.П. Волкова
П.Ю. Панкрушин
СИСТЕМНОЕ ПРОГРАММНОЕ
ОБЕСПЕЧЕНИЕ
Учебник
Рекомендовано редакционно-издательским
советом университета
Москва 2022

УДК 681.142.2(075.8)
В67
Рецензенты:
канд. техн. наук, доц., доцент кафедры «Защита информации»
КФ МГТУ им. Н.Э. Баумана А.Б. Лачихина;
д-р техн. наук, профессор кафедра АСУ НИТУ «МИСиС»
С.Н. Гончаренко
Волкова, Людмила Петровна.
В67 Системное программное обеспечение : учебник /
Л.П. Волкова, П.Ю. Панкрушин. – Москва : Издательский Дом НИТУ «МИСиС», 2022. – 175 с.
ISBN 978-5-907560-35-2
В учебнике даны основные понятия и определения по дисциплине
«Системное программное обеспечение». Рассмотрены основные этапы развития вычислительной техники и принципы организации системного программного обеспечения, а также принципы построения
современных операционных систем. Описаны способы управления
памятью и процессами, дисциплины планирования процессов. Рассмотрены вопросы параллелизма в управлении современными компьютерами. Акцентируется внимание на информационном подходе.
Приведены основные определения и понятия из теории информации,
понятия о технологии преобразования информации. Рассмотрены
пути дальнейшего развития дисциплины. Отмечена связь дисциплин
через понятие «информация» и перспективы создания на этой основе
систем искусственного интеллекта. В качестве примера в приложении приведены сценарии работы в базовых операционных системах.
Для студентов, обучающихся по специальностям, связанным с
разработкой программного обеспечения для вычислительной техники, устройств управления и автоматизированного проектирования.
ISBN 978-5-907560-35-2
УДК 681.142.2(075.8)
Волкова Л.П.,
Панкрушин П.Ю., 2022
НИТУ МИСИС, 2022

ОГЛАВЛЕНИЕ
Глава 1. Принципы организации системного
программного обеспечения ............................................... 5
1.1. Основные понятия системного программного
обеспечения, место в нем операционной системы
и связанные с ней понятия ............................................ 5
1.2. Виды организации аппаратных средств .................... 8
1.3. Виды программного обеспечения ........................... 14
1.4. История развития операционных систем ................ 20
1.5. Назначение и основные функции ОС ...................... 30
1.6. Концепция процесса и управление процессами ........ 33
1.7. Обработка прерываний ........................................ 44
1.8. Ядро операционной системы ................................. 47
1.9. Иерархическая структура системы ........................ 48
1.10. Понятие многозадачности ................................... 50
1.11. Вытесняющая и невытесняющая
многозадачность ........................................................ 56
Глава 2. Планирование и диспетчеризация ..................... 61
2.1. Планирование процессов ...................................... 61
2.2. Цели и дисциплины планирования ........................ 63
2.3. Алгоритмы планирования процессов ..................... 69
2.4. Стратегии планирования и диспетчеризация .......... 72
2.5. Диспетчеризация прерываний .............................. 74
Глава 3. Управление памятью ....................................... 77
3.1. Функции ОС по управлению памятью .................... 77
3.2. Основные виды памяти ........................................ 77
3.3. Организация памяти ........................................... 82
3.4. Связное и несвязное распределение памяти ............. 84
3.5. Распределение памяти разделами переменной
величины.................................................................. 85
3.6. Мультипрограммирование со свопингом ................ 86
3.7. Организация виртуальной памяти ......................... 87
3.8. Стратегии управления виртуальной памятью .......... 92
3.9. Заключение о методах управления памятью ........... 95
Глава 4. Параллелизм в операционных системах .............. 98
4.1. Основные понятия и определения .......................... 98

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
4.2. Типы архитектуры систем параллельной
обработки ................................................................. 99
4.3. Концепция форм параллелизма ............................103
4.4. Параллелизм многопроцессорных систем ..............106
4.5. Операционные системы распределенных
вычислительных систем ............................................107
4.6. Асинхронные параллельные процессы ..................108
4.7. Предотвращение тупиковых ситуаций ..................119
Глава 5. Особенности организации различных
операционных систем ...................................................130
5.1. Концепции структурной организации
операционных систем ................................................130
5.2. Краткие сведения об операционной
системе MS-DOS ........................................................131
5.3. История версий операционной системы Windows....138
5.4. Сетевые операционные системы ...........................143
5.5. Семейство UNIX ................................................152
5.6. MAC OS ............................................................158
Заключение ................................................................160
О роли информации ...................................................160
Контрольные вопросы ...................................................164
Библиографический список ...........................................167
Приложения ...............................................................169
Приложение 1. Работа в командном языке MS-DOS ......169
Приложение 2. Работа в версиях ОС Windows ..............170
4

ГЛАВА 1.
Принципы организации системного
программного обеспечения
1.1. Основные понятия системного
программного обеспечения, место
в нем операционной системы
и связанные с ней понятия
Системное программное обеспечение (СПО) в настоящее время определяется как совокупность программ и программных
комплексов для обеспечения работы компьютера и сетей ЭВМ.
Если говорить о назначении и функциях СПО, то можно сказать,
что оно разрабатывается для выполнения следующих задач:
• создание операционной среды функционирования других
программ;
• обеспечение надежной и эффективной работы компьютера
и вычислительной сети, в которой может работать компьютер;
• выполнение вспомогательных технологических процессов
по обработке, хранению, передаче и преобразованию информации.
Технологические процессы по обработке, хранению, передаче и преобразованию информации предполагают также копирование, архивирование, восстановление файлов, программ,
баз данных и т.д. Кроме того, эти процессы связаны с необходимостью проведения диагностики и профилактики аппаратуры компьютера и вычислительных сетей для поддержания
их работоспособности.
Системное программное обеспечение (СПО) обычно подразделяется на базовое и сервисное программное обеспечение.
Базовое программное обеспечение (базовое ПО) включает
минимальный набор программных средств, которые могут обеспечить работу компьютера. К такому набору, как правило, относятся операционные системы, операционные оболочки и средства для работы операционной системы в сети. Операционные
оболочки – это программы, которые предназначены для создания пользователю удобных условий работы. Базовое программ-

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ное обеспечение – это самый низкий уровень программного обеспечения. Это уровень программного обеспечения (ПО), наиболее
приближенный к аппаратуре компьютера и отвечающий за взаимодействие с базовыми аппаратными средствами. Как правило,
базовое ПО входит в состав базового оборудования и хранится
в специальных микросхемах, называемых постоянные запоминающие устройства (ПЗУ). Программы и данные записываются в микросхемы ПЗУ на этапе производства и не бывают изменены в процессе эксплуатации. Считается, что, если изменение
базовых программных средств во время эксплуатации является
технически целесообразным, вместо микросхем ПЗУ применяют
перепрограммируемые ПЗУ.
Сервисное программное обеспечение – это программы и программные комплексы, которые расширяют возможности базового программного обеспечения и организуют более удобную
среду работы пользователя. Сюда могут входить программы диагностики работоспособности компьютера, антивирусные программы, программы архивирования и обслуживания дисков,
программы обслуживания оборудования для работы компьютера в вычислительной сети.
Операционная система – это набор программ, как обычных,
так и микропрограмм, которые обеспечивают возможность использования аппаратуры компьютера. При этом аппаратура
компьютера предоставляет «сырую» вычислительную мощность, а задача операционных систем заключается в том, чтобы
сделать аппаратуру доступной и по возможности удобной для
пользователей [1]. Операционная система также обеспечивает рациональное и координированное управление аппаратурой
для достижения высокой производительности.
С понятием «операционная система» тесно связаны и некоторые другие понятия. Основные из этих понятий приведены
ниже.
Аппаратные средства – это устройства вычислительной машины: ее процессоры, устройства памяти и устройства вводавывода, а также средства приема-передачи данных.
Программное обеспечение (ПО) – это программы, содержащие команды на машинном языке, и данные, которые соответствующим образом интерпретируются аппаратурой машины.
6

7
Глава 1. Принципы организации системного программного обеспечения
В состав ПО входят компиляторы, ассемблеры, загрузчики,
редакторы связей, СУБД, системы приема-передачи данных
и операционные системы.
Микропрограммы – это микрокодированные программы,
выполняемые непосредственно из управляющей памяти очень
высокого быстродействия. Наиболее часто используемые объектные программы, занесенные в постоянную память (ПЗУ)
и постоянную программируемую память (ППЗУ), также называют микропрограммным обеспечением.
Для разработчика очень важно решить, какие именно функции вычислительной машины реализовать при помощи микрокода. Это создает реальную возможность повысить быстродействие вычислительной машины. Реализуя наиболее часто
используемые последовательности команд в виде микропрограмм, а не обычным программным способом, разработчики добиваются существенного повышения быстродействия.
С 1951 года и в течение 1960-х годов микропрограммирование применяли для реализации наборов команд машинного
языка. В конце 1960-х – начале 1970-х годов появилось динамическое микропрограммирование, предусматривающее возможность легкой загрузки новых микропрограммных модулей
в управляющую память, служащую для выполнения микропрограмм.
Микропрограммирование вводит дополнительный уровень
средств программирования, нижележащий по отношению к машинному языку компьютера, и тем самым оно позволяет определять конкретные команды машинного языка. Подобные возможности обеспечивают высокие скоростные характеристики
и защиту операционной системы. Микропрограммы состоят
из индивидуальных микрокоманд, которые по своей природе
более элементарны и более рассредоточены по функциям, чем
обычные команды машинного языка (каждой команде машинного языка соответствует целая микропрограмма). Микропрограммирование эффективно, если управляющая память будет
обладать гораздо более высоким быстродействием, чем основная.
Команды микрокода можно разделить по расположению
на горизонтальные и вертикальные. Выполнение вертикаль-

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ных микрокоманд очень похоже на выполнение обычных команд машинного языка. Типичная вертикальная микрокоманда задает пересылку одного или нескольких элементов данных
между регистрами. Горизонтальный микрокод действует совсем по-другому. Каждая его микрокоманда содержит гораздо большее число бит, поскольку может задавать параллельную операцию пересылки данных для многих или даже всех
регистров данных устройства управления. Горизонтальный
микрокод является более мощным, чем вертикальный, но его
сложнее кодировать и отлаживать.
Микродиагностика программы теснее связана с аппаратурой, чем программы машинного языка. Это позволяет легче
осуществлять контроль и исправление ошибок.
К числу наиболее часто выполняемых последовательностей команд в большинстве вычислительных машин относятся определенные части операционной системы.
К числу функций, чаще всего реализуемых при помощи
микрокода, относятся следующие операции:
• обработка прерываний;
• управление разными типами структур данных;
• примитивы синхронизации, координирующие доступ
к общим данным и другим ресурсам;
• операции обработки частей слова, позволяющие эффек-
тивно выполнять манипуляции с битами;
• переключение контекста, то есть быстрые переключения
процессора с программы на программу в многоабонентской системе;
• последовательности вызова процедур и возврата.
8
1.2. Виды организации аппаратных средств
Термины и понятия несколько видоизменялись в процессе
развития вычислительной техники и программного обеспечения. Но смысл их достаточно однозначно может быть понятен
из следующих источников [1, 2, 3].
Метод расслоения памяти (интерливинг) применяется для
увеличения скорости доступа к основной (оперативной) памяти. Обычно во время обращения к какой-то одной из ячеек

9
Глава 1. Принципы организации системного программного обеспечения
модуля основной памяти никакие другие обращения к памяти производиться не могут. При расслоении памяти соседние
по адресам ячейки размещаются в различных модулях памяти, так что появляется возможность производить несколько
обращений одновременно. Например, при расслоении на два
направления ячейки с нечетными адресами оказываются в одном модуле памяти, а с четными – в другом.
Регистр перемещения дает возможность динамического перемещения программ в памяти. В регистр перемещения заносится базовый адрес программы, хранящейся в основной памяти.
Содержимое регистра перемещения прибавляется к каждому
указанному в выполненной программе адресу. Поэтому пользователь может писать программу так, как если бы она начиналась
с нулевой ячейки. При выполнении программы все исполнительные адреса обращений формируются с использованием регистра
перемещения, поэтому реально программа может размещаться
в памяти совсем не в тех местах, которые она должна была занимать согласно адресам, указанным при трансляции.
Одним из способов, позволяющих некоторому устройству
проверить состояние другого, независимо работающего устройства, является опрос. Например, первое устройство может периодически проверять, находится ли второе устройство в определенном состоянии или нет, и если нет, то продолжать свою
работу. Опрос связан с большими расходами.
Прерывание дает возможность одному устройству немедленно привлечь внимание другого устройства, с тем чтобы
первое могло сообщить об изменении своего состояния. Состояние устройства, работа которого прерывается, должно быть
сохранено, только после этого можно производить обработку
данного прерывания. После завершения обработки прерывания состояние прерванного устройства восстанавливается,
с тем чтобы можно было продолжить работу.
Для эффективной организации операций ввода-вывода данных используется буферизация.
Буфер – это область основной памяти, предназначенная
для промежуточного хранения данных при выполнении операций ввода-вывода. При вводе, например, данные помещаются в буфер средствами канала ввода-вывода, а после занесе-

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
10
ния данных в буфер процессор получает возможность доступа
к этим данным.
При простой буферизации канал помещает данные в буфер, процессор обрабатывает эти данные, канал помещает следующие данные и т.д. Когда канал заносит данные, обработка
этих данных производиться не может, а во время обработки
данных нельзя заносить дополнительные данные.
При двойной буферизации есть возможность совмещать
операции ввода-вывода с обработкой данных: когда канал заносит данные в один буфер, процессор может обрабатывать данные другого буфера. А когда процессор заканчивает обработку
данных одного буфера, канал опять будет заносить в него новые
данные. Такое поочередное использование буферов иногда называют буферизацией с переключением («триггерной» буферизацией).
Периферийные (внешние запоминающие) устройства позволяют хранить большие объемы информации вне основной
памяти. В машинах предыдущих поколений – это лентопротяжные механизмы и магнитные диски (накопитель на магнитных дисках). Это устройства прямого доступа, они позволяли обращаться к отдельным элементам данных, не требуя
последовательного просмотра всех элементов данных, хранящихся на диске.
Защита памяти ограничивает диапазон адресов, к которому
разрешается обращаться программе. Защиту памяти для программы, занимающей непрерывный блок ячеек памяти, можно
реализовать при помощи граничных регистров, где указываются старший и младший адреса этого блока памяти. Кроме того,
реализовать защиту можно было при помощи ключей защиты
памяти, относящихся к определенным областям основной памяти. При этом программе разрешалось обращение к ячейкам
памяти только тех областей, ключи которых совпадают с ключом данной программы.
Интервальный таймер – эффективный способ предотвращения монополизации процессора одним из пользователей
в многоабонентских системах. По истечении заданного интервала времени таймер генерирует сигнал прерывания для привлечения внимания процессора. По этому сигналу процессор
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
