Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Системное программное обеспечение. Учебник

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
№ 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
ния данных в буфер процессор получает возможность доступа к этим данным.
При простой буферизации канал помещает данные в бу­фер, процессор обрабатывает эти данные, канал помещает сле­дующие данные и т.д. Когда канал заносит данные, обработка этих данных производиться не может, а во время обработки данных нельзя заносить дополнительные данные.
При двойной буферизации есть возможность совмещать операции ввода-вывода с обработкой данных: когда канал за­носит данные в один буфер, процессор может обрабатывать дан­ные другого буфера. А когда процессор заканчивает обработку данных одного буфера, канал опять будет заносить в него новые данные. Такое поочередное использование буферов иногда на­зывают буферизацией с переключением («триггерной» буфери­зацией).
Периферийные (внешние запоминающие) устройства по­зволяют хранить большие объемы информации вне основной памяти. В машинах предыдущих поколений – это лентопро­тяжные механизмы и магнитные диски (накопитель на маг­нитных дисках). Это устройства прямого доступа, они позво­ляли обращаться к отдельным элементам данных, не требуя последовательного просмотра всех элементов данных, храня­щихся на диске.
Защита памяти ограничивает диапазон адресов, к которому разрешается обращаться программе. Защиту памяти для про­граммы, занимающей непрерывный блок ячеек памяти, можно реализовать при помощи граничных регистров, где указывают­ся старший и младший адреса этого блока памяти. Кроме того, реализовать защиту можно было при помощи ключей защиты памяти, относящихся к определенным областям основной па­мяти. При этом программе разрешалось обращение к ячейкам памяти только тех областей, ключи которых совпадают с клю­чом данной программы.
Интервальный таймер – эффективный способ предотвра­щения монополизации процессора одним из пользователей в многоабонентских системах. По истечении заданного интер­вала времени таймер генерирует сигнал прерывания для при­влечения внимания процессора. По этому сигналу процессор
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]