Файл: Учебнометодическое пособие Томск 2016 2 удк 004. 451(075. 8) Ббк 32. 973. 2018. 2я73 к 754 Рецензенты.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 331
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Министерство образования и науки Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ
И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
ФАКУЛЬТЕТ ДИСТАНЦИОННОГО ОБУЧЕНИЯ (ФДО)
В. П. Коцубинский, А. А. Изюмов
ОПЕРАЦИОННЫЕ СИСТЕМЫ
Учебно-методическое пособие
Томск
2016
2
УДК 004.451(075.8)
ББК 32.973.2-018.2я73
К 754
Рецензенты:
Н. Ю. Хабибулина, канд. техн. наук, доцент кафедры компьютерных систем в управлении и проектировании ТУСУР;
Г. Н. Решетникова, канд. техн. наук, доцент кафедры прикладной математики Национального исследовательского
Томского государственного университета
Коцубинский В. П.
К 754
Операционные системы : учебно-методическое пособие /
В. П. Коцубинский, А. А. Изюмов. – Томск : ФДО, ТУСУР, 2016. –
246 с.
В пособии рассмотрены история становления и развития операционных систем, принципы реализации пользовательских интерфейсов операционной системы; основы языка управления операционной системой; принципы много- пользовательской работы и структура системы, а также подсистемы UNIX – подсистема управления процессами, подсистема управления памятью, файловая подсистема. Содержится лабораторный курс, предназначенный для закрепления теоретических знаний и формирования практических навыков программирова- ния на командном языке операционной системы UNIX.
Для студентов направлений подготовки «Управление в технических си- стемах» и «Информатика и вычислительная техника», обучающихся с приме- нением дистанционных образовательных технологий.
© Коцубинский В. П.,
Изюмов А. А., 2016
© Оформление.
ФДО, ТУСУР, 2016
3
Оглавление
Введение ................................................................................................................ 6
1 История операционных систем ..................................................................... 9
1.1 Предыстория ................................................................................................ 9 1.2 Первое поколение (1945–1955): электронные лампы ............................. 9 1.3 Второе поколение (1955–1965): транзисторы и системы пакетной обработки ......................................... 10 1.4 Третье поколение (1965–1980): интегральные схемы и многозадачность ................................................ 13 1.5 Четвертое поколение (с 1980 г. по наши дни): персональные компьютеры ...................................................................... 22
2 Интерфейсы пользователя системы........................................................... 29
2.1 Функции системных программ ................................................................ 29 2.2 Файлы ......................................................................................................... 35 2.3 Утилиты ...................................................................................................... 41 2.4 Трансляторы .............................................................................................. 49 2.5 Язык управления операционной системой ............................................. 57 2.5.1 Общие сведения ............................................................................... 57 2.5.2 Простые команды ............................................................................. 58 2.5.3 Составные команды ......................................................................... 62 2.5.4 Переменные и выражения ............................................................... 65 2.5.5 Управляющие операторы ................................................................ 73 2.5.6 Командные файлы ............................................................................ 80
3 Системная поддержка мультипрограммирования ................................. 87
3.1 Общие сведения ........................................................................................ 87 3.2 Процессы .................................................................................................... 88 3.3 Ресурсы ....................................................................................................... 92 3.4 Синхронизация параллельных процессов .............................................. 95 3.4.1 Синхронизация с помощью сигналов ............................................ 96 3.4.2 Терминальное управление процессами ......................................... 98 3.4.3 Синхронизация конкурирующих процессов ............................... 103 3.4.4 Синхронизация кооперирующихся процессов ........................... 108 3.5 Информационные взаимодействия между процессами ...................... 109
4 Поддержка многопользовательской работы
и структура системы ................................................................................... 115
4.1 Управление доступом пользователя в систему .................................... 115
4 4.2 Защита файлов ......................................................................................... 120 4.3 Укрупненная структура операционной системы ................................. 125 4.4 Структура сетевой операционной системы .......................................... 128
5 Подсистема управления процессами ........................................................ 136
5.1 Состояния процесса ................................................................................ 136 5.2 Создание процесса .................................................................................. 140 5.3 Обработка сигналов ................................................................................ 143 5.4 Диспетчеризация процессов .................................................................. 145 5.5 Использование таймера для управления процессами ......................... 151
6 Управление оперативной памятью .......................................................... 154
6.1 Основные положения .............................................................................. 154 6.2 Сегментная виртуальная память ............................................................ 158 6.2.1 Преобразование адресов ................................................................ 158 6.2.2 Распределение памяти ................................................................... 164 6.2.3 Защита информации в оперативной памяти ............................... 166 6.3 Линейная виртуальная память ............................................................... 171 6.3.1 Преобразование адресов ................................................................ 171 6.3.2 Распределение памяти ................................................................... 174
7 Управление файлами .................................................................................. 178
7.1 Виртуальная файловая система ............................................................. 178 7.1.1 Логические файлы.......................................................................... 178 7.1.2 Открытие файла ............................................................................. 180 7.1.3 Другие операции с файлами ......................................................... 185 7.2 Реальные файловые системы ................................................................. 190 7.2.1 Критерии оценки файловых систем ............................................. 190 7.2.2 Физическое размещение информации на носителе .................... 193 7.2.3 Каталоги .......................................................................................... 199 7.2.4 Управляющие структуры данных ................................................ 201 7.3 Объединение реальных файловых систем ............................................ 204
8 Лабораторный курс ..................................................................................... 212
8.1 Лабораторная работа № 1. Первоначальное знакомство с UNIX ...................................................................................................... 213 8.1.1 Цель работы .................................................................................... 213 8.1.2 Подготовка к выполнению работы .............................................. 213 8.1.3 Текстовый редактор ed ................................................................. 215 8.1.4 Задание ............................................................................................ 219
5 8.2 Лабораторная работа № 2.
Управляющие операторы командного языка ....................................... 220 8.2.1 Цель работы .................................................................................... 220 8.2.2 Подготовка к выполнению работы .............................................. 221 8.2.3 Задание ............................................................................................ 221 8.3 Лабораторная работа № 3.
Операции с файлами в программе на языке Си ................................... 222 8.3.1 Цель работы .................................................................................... 222 8.3.2 Подготовка к выполнению работы .............................................. 222 8.3.3 Введение.......................................................................................... 222 8.3.4 Открытие существующего файла ................................................. 223 8.3.5 Создание файла .............................................................................. 226 8.3.6 Указатель файла ............................................................................. 228 8.3.7 Чтение из файла ............................................................................. 230 8.3.8 Запись в файл .................................................................................. 232 8.3.9 Закрытие и уничтожение файла ................................................... 233 8.3.10 Задание .......................................................................................... 234 8.4 Лабораторная работа № 4. Обработка сигналов .................................. 235 8.4.1 Цель работы .................................................................................... 235 8.4.2 Подготовка к выполнению работы .............................................. 235 8.4.3 Изменение диспозиции сигналов ................................................. 236 8.4.4 Задание ............................................................................................ 236
Заключение ....................................................................................................... 240
Литература........................................................................................................ 241
Глоссарий .......................................................................................................... 242
Приложение А Пример оформления титульного листа отчета ............. 246
6
Введение
Основной целью данного курса является изучение принципов организа- ции операционных систем на примере операционной системы UNIX. Задачи изучения дисциплины:
1) изучение основных принципов реализации пользовательских интер- фейсов операционной системы и получение практических навыков по программированию на командном языке операционной системы
UNIX;
2) изучение основных принципов реализации мультипрограммирования и многопользовательской работы системы;
3) ознакомление с основными подсистемами UNIX – подсистемой управления процессами, подсистемой управления памятью, файловой подсистемой. При этом рассматриваются основные программные ин- терфейсы и системные структуры данных.
Изучение данной дисциплины предполагает предварительное изучение студентами следующих дисциплин:
1) информатика;
2) алгоритмические языки и программирование.
Данное пособие состоит из семи глав, которые можно разбить на четыре группы:
1) история операционных систем и пользовательские интерфейсы – гл. 1 и 2;
2) принципы построения мультипрограммных многопользовательских систем – гл. 3 и 4;
3) программные интерфейсы и системные структуры данных основных подсистем ОС – гл. 5, 6 и 7;
4) глава 8 содержит лабораторный практикум.
Существующие подходы к изложению курса «Операционные системы» можно разделить на два класса:
1) односистемный;
2) многосистемный.
В первом из этих подходов изложение ведется на примере одной, а во втором – на примере нескольких операционных систем. Несмотря на то, что многосистемный подход преследует цель обеспечения системности в восприя- тии материала, практическое достижение этой цели весьма затруднено, во-
7 первых, из-за чрезмерного объема информации (попытка объять необъятное).
Во-вторых, абстрактное изложение материала достаточно скучно для читателя, привыкшего к работе в среде одной-двух конкретных операционных систем.
В данном учебном пособии используется односистемный подход, пред- полагающий рассмотрение операционной системы UNIX. Применительно к этой системе термин «односистемный подход» достаточно условный, так как в настоящее время UNIX является собирательным названием, обозначающим достаточно большую группу реальных ОС, имеющих схожие пользовательские и программные интерфейсы. Существенными достоинствами любой UNIX- системы является, во-первых, универсальность – пригодность для решения практически любой задачи по переработке информации, независимо от особенностей алгоритма этой задачи и от числа пользователей, участвующих в ее решении. Во-вторых, UNIX неприхотлива к используемой аппаратной базе и может выполняться на различных конфигурациях аппаратуры и процессорах различных моделей. С учетом того что практически все читатели имеют опыт работы в среде операционной системы Windows, а многие – и в среде MS-DOS, в первых главах пособия наряду с UNIX приводятся сведения и об этих систе- мах.
Следует отметить, что при описании системных программных вызовов в пособии приводятся не реальные системные вызовы UNIX, записанные на языке программирования этой системы Си, а упрощенные их варианты, запи- санные на псевдоязыке. Его применение преследует цель сделать материал по- собия доступным для читателя, не знакомого с Си, а также позволяет избавить- ся от деталей, связанных с применением этого языка и не относящихся к ОС.
Запись любого системного вызова на этом псевдоязыке представляет собой русское название требуемой операции, за которым в круглых скобках приведен список параметров вызова, причем входные и выходные параметры разделяют- ся символами «||». При этом с целью упрощения изложения материала неко- торые второстепенные параметры системных вызовов UNIX опущены.
Соглашения, принятые в учебном пособии
Для улучшения восприятия материала в данном пособии используются следующие пиктограммы и специальное выделение важной информации.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Эта пиктограмма означает определение или новое понятие.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
8
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Этот блок означает задание.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Этот блок означает «Внимание!». Здесь выделена важная информация, требующая акцента на ней. Автор здесь может поделиться с читателем опытом, чтобы помочь избежать некоторых ошибок.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
В блоке «На заметку» автор может указать дополнительные сведения или другой взгляд на изучаемый предмет, чтобы помочь читателю лучше понять основные идеи.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Контрольные вопросы по главе
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
9
1 История операционных систем
1.1 Предыстория
История развития операционных систем насчитывает уже много лет. Мы кратко рассмотрим некоторые основные моменты этого развития. Так как опе- рационные системы появились и развивались в процессе конструирования ком- пьютеров, то эти события исторически тесно связаны. Поэтому чтобы предста- вить, как выглядели операционные системы, мы рассмотрим несколько следующих друг за другом поколений компьютеров. Такая схема взаимосвязи поколений операционных систем и компьютеров носит довольно приблизи- тельный характер, но она обеспечивает некоторую структуру, без которой не- возможно было бы что-либо понять.
Первый настоящий цифровой компьютер был изобретен английским ма- тематиком Чарльзом Бэббиджем (Charles Babbage, 1792–1871). Хотя большую часть жизни Бэббидж посвятил попыткам создания своей «аналитической ма- шины», он так и не смог заставить ее работать должным образом. Это была чи- сто механическая машина, а технологии того времени не были достаточно раз- виты для изготовления многих деталей и механизмов высокой точности. Не стоит и говорить, что его аналитическая машина не имела операционной систе- мы.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Интересный исторический факт: Бэббидж понимал, что для аналитической машины ему необходимо программное обеспечение, поэтому он нанял молодую женщину по имени Ада Лавлейс (Ada
Lovelace), дочь знаменитого британского поэта лорда Байрона. Она и стала первым в мире программистом, а язык программирования
Ada® был назван именно в ее честь.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·