Операционные системы и сети

Учебное пособие

Рассматриваются вопросы организации и использования операционной системы UNIX: интерфейсы пользователя, принципы обеспечения мультипрограммирования и многопользовательской работы, организация основных подсистем UNIX (подсистем управления процессами, оперативной памятью и файлами). С целью практического изучения рассматриваемых вопросов приводится курс лабораторных работ. Предназначено для специалистов по разработке и применению ЭВМ, программистов различной квалификации, а также студентов вузов соответствующих специальностей.

Кафедра компьютерных систем в управлении и проектировании

Библиографическая запись:

Коцубинский, В. П. Операционные системы и сети: Учебное пособие [Электронный ресурс] / Коцубинский В. П., Одиноков В. В. — Томск: ТУСУР, 2008. — 398 с. — Режим доступа: https://edu.tusur.ru/publications/706.
Год издания: 2008
Количество страниц: 398
Скачиваний: 230
ISBN:   ISBN 978-5-86889-374-2
УДК:   681.3.066+681.324 (075.8)

Рекомендовано учебно-методическим объединением вузов Российской Федерации по образованию в области радиотехники, электроники, биомедицинской техники и автоматизации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности 220201 «Управление и информатика в технических системах»

Оглавление (содержание)

Введение ............................................................................................. 8

1. ИНТЕРФЕЙСЫ ПОЛЬЗОВАТЕЛЯ СИСТЕМЫ

1.1. Функции системных программ ...................................................... 11

1.2. Файлы.............................................................................................16

1.3. Утилиты ..........................................................................................22

1.4. Трансляторы ...................................................................................30

1.5. Язык управления операционной системой .....................................37

1.5.1. Типы языков управления ..............................................................37

1.5.2. Простые команды .........................................................................39

1.5.3. Составные команды ......................................................................43

1.5.4. Переменные и выражения ............................................................46

1.5.5. Управляющие операторы ..............................................................52

1.5.6. Командные файлы ........................................................................60

2. СИСТЕМНАЯ ПОДДЕРЖКА МУЛЬТИПРОГРАММИРОВАНИЯ

2.1. Мультипрограммирование ............................................................. 65

2.2. Процессы .........................................................................................66

2.3. Ресурсы ............................................................................................70

2.4. Синхронизация параллельных процессов ........................................73

2.4.1. Синхронизация с помощью сигналов .................................. 73

2.4.2. Терминальное управление процессами ............................... 76

2.4.3. Синхронизация конкурирующих процессов ...................... 80

2.4.4. Синхронизация кооперирующихся процессов ................... 85

2.5. Информационные взаимодействия между процессами .............. 86

2.5.1. Понятие информационного канала ...................................... 86

2.5.2. Обыкновенные программные каналы ................................. 90

2.5.3. Именованные программные каналы .................................... 92

2.6. Тупики ............................................................................................. 92

2.6.1. Причины появления тупиков ............................................... 92

2.6.2. Методы предотвращения тупиков ....................................... 94

2.6.3. Методы ликвидации тупиков ............................................... 99

3. ПОДДЕРЖКА МНОГОПОЛЬЗОВАТЕЛЬСКОЙ РАБОТЫ

И СТРУКТУРА СИСТЕМЫ

3.1. Управление доступом пользователя в систему ......................... 103

3.2. Защита файлов .............................................................................. 108

3.3. Укрупненная структура операционной системы ...................... 113

3.4. Структура сетевой операционной системы ................................ 116

4. ПОДСИСТЕМА УПРАВЛЕНИЯ ПРОЦЕССАМИ

4.1. Состояния процесса ...................................................................... 124

4.2. Создание процесса ........................................................................ 128

4.3. Обработка сигналов ...................................................................... 131

4.4. Диспетчеризация процессов ........................................................ 133

4 Одиноков В.В., Коцубинский В.П.

4.5. Использование таймера для управления процессами ................ 141

4.6. Информационные взаимодействия между процессами ............ 143

4.6.1. Разделяемая память ............................................................. 143

4.6.2. Очереди сообщений ............................................................ 146

4.6.3. Сокеты ................................................................................. 149

5. УПРАВЛЕНИЕ ОПЕРАТИВНОЙ ПАМЯТЬЮ

И ПРОЦЕССОРОМ

5.1. Задачи управления памятью ........................................................ 158

5.2. Сегментная виртуальная память .................................................. 162

5.2.1. Преобразование адресов ..................................................... 162

5.2.2. Распределение памяти ........................................................ 168

5.2.3. Защита информации в оперативной памяти ..................... 171

5.3. Линейная виртуальная память .................................................... 176

5.3.1. Преобразование адресов ..................................................... 176

5.3.2. Распределение памяти ........................................................ 178

5.4. Переключение процессора ........................................................... 181

5.4.1. Межсегментные переходы внутри процесса .................... 181

5.4.2. Аппаратное переключение процессов ............................... 185

5.4.3. Обработка прерываний ....................................................... 188

6. УПРАВЛЕНИЕ ФАЙЛАМИ

6.1. Виртуальная файловая система ................................................... 192

6.1.1. Логические файлы ............................................................... 192

6.1.2. Открытие файла .................................................................. 194

6.1.3. Другие операции с файлами ............................................... 199

6.2. Реальные файловые системы ....................................................... 204

6.2.1. Критерии оценки файловых систем .................................. 204

6.2.2. Физическое размещение информации на носителе ........ 207

6.2.3. Каталоги ............................................................................... 213

6.2.4. Управляющие структуры данных ...................................... 215

6.3. Объединение реальных файловых систем .................................. 219

6.4. Кэширование блоков данных ....................................................... 225

6.4.1. Традиционный подход к реализации дискового КЭШа .. 225

6.4.2. Использование подсистемы управления памятью .......... 229

7. ПОДСИСТЕМА ВВОДА-ВЫВОДА

7.1. Предоставляемый интерфейс ....................................................... 232

7.2. Классификация драйверов ........................................................... 236

7.3. Аппаратный интерфейс ................................................................ 239

7.4. Одноуровневые драйверы ............................................................ 240

7.5. Двухуровневые драйверы ............................................................ 245

7.5.1. Двухуровневый драйвер с опросом ................................... 247

7.5.2. Двухуровневый драйвер с прерыванием на байт ............ 251

7.5.3. Блочные драйверы с прямым доступом в память ............ 255

Оглавление 5

8. ПРИКЛАДНОЙ УРОВЕНЬ СЕТИ

8.1. Общая структура сетевого приложения ...................................... 259

8.2. Выбор транспортного информационного канала ...................... 261

8.3. Транспортные интерфейсы .......................................................... 267

8.3.1. Транспортные порты ........................................................... 267

8.3.2. Интерфейс сокетов UDP-канала ........................................ 269

8.3.3. Интерфейс сокетов TCP-канала ......................................... 270

8.4. Трансляция имен хостов .............................................................. 271

8.5. Приложения для передачи файлов .............................................. 276

8.5.1. Приложения на основе протокола FTP ............................. 276

8.5.2. Электронная почта .............................................................. 282

8.5.3. WEB-приложения ................................................................ 290

9. ЛАБОРАТОРНЫЙ КУРС

9.1 Лабораторная работа № 1.

Первоначальное знакомство с UNIX ........................................... 300

9.1.1. Подготовка к выполнению работы .................................... 300

9.1.2. Вход в систему и выход из нее .......................................... 301

9.1.3. Текстовый редактор ed ....................................................... 304

9.1.4. Работа в среде Midnight Commander .................................. 307

9.1.5. Задание ................................................................................. 312

9.2. Лабораторная работа № 2.

Дальнейшее знакомство с командами UNIX ............................... 313

9.2.1. Подготовка к выполнению работы .................................... 313

9.2.2. Задание ................................................................................. 313

9.3. Лабораторная работа № 3. Управляющие операторы

командного языка .......................................................................... 314

9.3.1. Подготовка к выполнению работы .................................... 314

9.3.2. Задание ................................................................................. 315

9.4. Лабораторная работа № 4. Процессы в UNIX ............................ 315

9.4.1. Подготовка к выполнению работы .................................... 315

9.4.2. Сообщения другому пользователю ................................... 316

9.4.3. Задание ................................................................................. 317

9.5. Лабораторная работа № 5. Операции с файлами

в программе на языке СИ ............................................................. 318

9.5.1. Подготовка к выполнению работы .................................... 318

9.5.2. Характеристика языка СИ .................................................. 318

9.5.3. Открытие существующего файла ...................................... 319

9.5.4. Создание файла ................................................................... 322

9.5.5. Указатель файла .................................................................. 324

9.5.6. Чтение из файла................................................................... 326

9.5.7. Запись в файл ....................................................................... 328

9.5.8. Закрытие и уничтожение файла ......................................... 329

6 Одиноков В.В., Коцубинский В.П.

9.5.9. Задание ................................................................................. 330

9.6. Лабораторная работа № 6. Системные вызовы

для управления процессами ......................................................... 330

9.6.1. Подготовка к выполнению работы .................................... 331

9.6.2. Создание процесса .............................................................. 331

9.6.3. Ожидание завершения потомка ......................................... 332

9.6.4. Загрузка новой программы ................................................. 334

9.6.5. Совместное применение вызовов fork и exec .................... 335

9.6.6. Наследование данных при создании процесса

и при загрузке программы .................................................. 337

9.6.7. Задание ................................................................................. 339

9.7. Лабораторная работа № 7. Обработка сигналов ........................ 339

9.7.1. Подготовка к выполнению работы .................................... 339

9.7.2. Изменение диспозиции сигналов ....................................... 339

9.7.3. Наборы сигналов ................................................................. 342

9.7.4. Сеансы и группы процессов ............................................... 344

9.7.5. Посылка сигналов другим процессам ............................... 346

9.7.6. Сигнал таймера .................................................................... 348

9.7.7. Задание ................................................................................. 349

9.8. Лабораторная работа № 8. Управление терминалом ................ 350

9.8.1. Функции терминальной линии .......................................... 350

9.8.2. Специальные символы редактирования

и выдачи сигналов .............................................................. 353

9.8.3. Управляющая структура termios ........................................ 355

9.8.4. Задание ................................................................................. 358

9.9. Лабораторная работа № 9. Датаграммные

локальные каналы ......................................................................... 359

9.9.1. Подготовка к выполнению работы .................................... 359

9.9.2. Порядок выдачи системных вызовов ................................ 359

9.9.3. Создание сокета ................................................................... 360

9.9.4. Связывание сокета со своим адресом ................................ 361

9.9.5. Прием и передача датаграмм ............................................. 363

9.9.6. Программы взаимодействующих процессов .................... 366

9.9.7. Задание ................................................................................. 369

9.10. Лабораторная работа № 10. Сетевые датаграммные

каналы .......................................................................................... 370

9.10.1. Состав и порядок выдачи системных вызовов ............. 370

9.10.2. Создание сокета .............................................................. 370

9.10.3. Связывание сокета со своим адресом ........................... 371

9.10.4. Прием и передача датаграмм ......................................... 373

9.10.5. Задание ............................................................................. 375

Оглавление 7

9.11. Лабораторная работа № 11. Локальные виртуальные

соединения ................................................................................... 376

9.11.1. Порядок выдачи системных вызовов ............................ 376

9.11.2. Создание очереди запросов на соединение

и работа с ней ................................................................... 377

9.11.3. Работа с виртуальным соединением ............................. 379

9.11.4. Закрытие виртуального соединения .............................. 380

9.11.5. Программы взаимодействующих процессов ................ 380

9.11.6. Задание ............................................................................. 384

9.12. Лабораторная работа № 12. Сетевые виртуальные

соединения ................................................................................... 385

9.12.1. Состав и порядок выдачи системных вызовов ............ 385

9.12.2. Задание адреса главного сокета ..................................... 386

9.12.3. Использование адреса главного сокета ......................... 387

9.12.4. Задание ............................................................................. 388

Литература ............................................................................................... 390