Учебное пособие
Кафедра компьютерных систем в управлении и проектировании
Библиографическая запись:
Рекомендовано учебно-методическим объединением вузов Российской Федерации по образованию в области радиотехники, электроники, биомедицинской техники и автоматизации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности 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
Вычислительные машины, системы и сети
27.03.04 Управление в технических системах (Управление в робототехнических системах) Очная форма обучения, план набора 2017 г. План в архиве
Сети ЭВМ
38.03.02 Менеджмент (Информационный менеджмент) Очная форма обучения, план набора 2013 г. План в архиве
Вычислительные машины, системы и сети
27.03.04 Управление в технических системах (Управление в робототехнических системах) Очная форма обучения, план набора 2015 г. План в архиве
Вычислительные машины, системы и сети
27.03.04 Управление в технических системах (Управление в робототехнических системах) Очная форма обучения, план набора 2016 г. План в архиве
Вычислительные машины, системы и сети
27.03.04 Управление в технических системах (Управление в робототехнических системах) Очная форма обучения, план набора 2018 г. План в архиве
Операционные системы
09.03.03 Прикладная информатика (Прикладная информатика в экономике) Заочная форма обучения, план набора 2018 г. План в архиве