Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DiVM / OSISP / Лекции_ОССП_Р1.pdf
Скачиваний:
45
Добавлен:
11.05.2015
Размер:
975 Кб
Скачать

Министерство образования Республики Беларусь

Учреждение образования «Белорусский государственный университет

информатики и радиоэлектроники»

Факультет компьютерных систем и сетей

Кафедра программного обеспечения информационных технологий

П.Ю. Бранцевич Лекционный материал

«Операционные системы и системное программирование»

Часть 1 Раздел 1

Операционная система UNIX (LINUX)

Для студентов специальности

40 01 01 «Программное обеспечение информационных технологий»

дневной формы обучения

Минск 2008

ВВЕДЕНИЕ ..................................................................................................................

4

ТЕМА 1 .........................................................................................................................

6

1.1. Разработка программ в ОС UNIX ...................................................................

6

1.1.1. Стандарты ОС UNIX .................................................................................

6

1.1.2. Отличительные черты ОС UNIX..............................................................

7

1.1.3. Основы архитектуры операционной системы UNIX .............................

7

1.1.4. Ядро системы.............................................................................................

8

1.1.5. Пользователи системы, атрибуты пользователя ....................................

9

1.1.6. Системные вызовы и функции стандартных библиотек.....................

11

1.1.7. Описание программы, переменные окружения....................................

12

1.1.8. Запуск и завершение программы...........................................................

14

1.1.9. Обработка ошибок...................................................................................

15

1.1.10. Заголовки в программах........................................................................

18

1.1.11. Стандартные форматы исполняемых файлов.....................................

20

1.1.12. Формат ELF ............................................................................................

21

1.1.13. Формат COFF .........................................................................................

23

ТЕМА 2 .......................................................................................................................

26

2.1. Файловая система ОС UNIX..........................................................................

26

2.1.1. Введение...................................................................................................

26

2.1.2. Типы файлов.............................................................................................

26

2.1.3. Структура файловой системы UNIX .....................................................

29

2.1.4. Владельцы файлов...................................................................................

30

2.1.5. Права доступа к файлу...........................................................................

31

2.1.6. Дополнительные атрибуты файлов по управлению правами.............

34

доступа................................................................................................................

34

2.1.7. Устройства................................................................................................

35

2.1.8. Системные вызовы и библиотечные функции .....................................

36

2.1.9. Файлы отображаемые в памяти..............................................................

43

2.1.10. Каталоги..................................................................................................

45

2.1.11. Метаданные файлов...............................................................................

47

2.1.12. Базовая файловая система UNIX S5FS................................................

48

2.1.13. Файловая система FFS (Fast File System) ............................................

52

ТЕМА 3 .......................................................................................................................

56

3.1. Процессы в ОС UNIX.....................................................................................

56

3.1.1. Место процессов в ОС UNIX..................................................................

56

3.1.2. Типы процессов .......................................................................................

56

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

58

3.1.4. Атрибуты процесса..................................................................................

59

3.1.5. Системные функции типа exec...............................................................

63

3.1.6. Системные функции типа wait ...............................................................

65

3.1.7. Системный вызов _exit............................................................................

68

3.1.8. Обработка ошибок. Коды ошибок.........................................................

68

ТЕМА 4 .......................................................................................................................

69

2

 

4.1. Взаимодействие между процессами.............................................................

70

4.1.1. Взаимодействие процессов через файлы .............................................

70

4.1.2. Взаимодействие процессов через каналы............................................

71

4.1.3. Взаимодействие процессов с использованием сигналов....................

78

4.1.4. Ограничения для процессов ...................................................................

88

4.1.5. Дополнительные средства межпроцессного взаимодействия ............

90

4.1.6. Понятие потока в ОС UNIX..................................................................

115

СОКРАЩЕНИЯ.......................................................................................................

130

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ..............................................

131

3

ВВЕДЕНИЕ

Целью курса является изучение: организации и принципов построения современных операционных систем и системных программ; аппаратных и программных средств современных процессоров, предназначенных для поддержки многозадачных операционных систем; методологии разработки системноориентированных программ с использованием современных алгоритмических языков и систем программирования.

В данном разделе изучаются основы операционной системы UNIX (LINUX), организация файловой системы, концепция процесса, способы взаимодействия процессов в данной операционной системе .

Изучение курса предполагает знания структуры и принципов работы ЭВМ, навыков алгоритмизации и программирования на алгоритмическом языке Си, работы с ОС ЭВМ на уровне достаточном для отладки и выполнения программ. Материалы курса используются далее в курсах "Базы данных ", "Компьютерные системы и сети ", в дисциплинах, установленных советом университета.

Структурно данный курс можно разделить на два основных части.

В первой части рассматриваются вопросы разработки консольных программ для операционной системы UNIX. Эта ОС отличается развитой файловой системой и глубоко проработанной концепцией процесса. В теоретических разделах изложены основные элементы ОС UNIX.

Практическое изучение (лабораторные работы) непосредственно относятся к этой части. Для их выполнения необходима ПЭВМ с установленной операционной UNIX-подобной системой. Например, одна из версий свободно распространяемой системы Linux "Красная шапочка" (Red Hat).

На первом этапе следует ознакомиться с системой команд командного интерпретатора (создание каталогов, копирование и удаление файлов, изменение атрибутов файлов, определение полного пути к каталогу, просмотр информации о работающих процессах и т.п.). Далее требуется изучить один из текстовых редакторов, с помощью которого можно набирать и редактировать тексты программ.

Следующий шаг - разработка, набор текста, компиляция, исправление ошибок, выполнение простой программы, которая выполняет функции ввода простых данных и вывода простых сообщений и результатов.

Затем выполняются основные задания.

1.Работа с файлами и файловой системой.

2.Процессы, порождение и перегрузка процессов.

3.Взаимодействие процессов, средства взаимодействия.

Вторая часть курса является теоретической. В ней излагаются базовые вопросы организации операционных систем. Следует особое внимание уделить

4

алгоритмам (их модификациям), обеспечивающим взаимодействие процессов, понятию семафора и вопросам применения семафоров при решении задач синхронизации процессов.

Информация этой части применяется в дальнейшем при работе над курсовым проектом по данному предмету.

5

Соседние файлы в папке OSISP