Скачать презентацию Компьютерные, сетевые и информационные технологии Тема 3. Операционные Скачать презентацию Компьютерные, сетевые и информационные технологии Тема 3. Операционные

Тема 3. Операционные системы.ppt

  • Количество слайдов: 34

Компьютерные, сетевые и информационные технологии Тема 3. Операционные системы Шевченко А. В. Тема 3. Компьютерные, сетевые и информационные технологии Тема 3. Операционные системы Шевченко А. В. Тема 3. Операционные системы 1

Компьютерные, сетевые и информационные технологии Назначение операционной системы Операционная система является связующим звеном между Компьютерные, сетевые и информационные технологии Назначение операционной системы Операционная система является связующим звеном между аппаратной частью компьютерной системы и прикладным программным обеспечением. Операционная система предназначена для управления ресурсами компьютера и их предоставления прикладным программам. Прикладные программы Основные функции операционной системы: Системное ПО Дополнительное системное ПО Пользовательское окружение ПО ОС * Загрузка программ и их выполнение. * Выполнение запросов программ. * Управление процессором. * Управление оперативной памятью. * Управление периферийными устройствами. * Поддержка пользовательского интерфейса. * Сохранение информации об ошибках. Ядро ОС Встроенное ПО (firmware) Система команд Аппаратная платформа (архитектура) Микропрограмма Микроархитектура Цифровой логический уровень Физические устройства Шевченко А. В. Тема 3. Операционные системы 2

Компьютерные, сетевые и информационные технологии Функции операционной системы Дополнительные функции операционной системы: * Параллельное Компьютерные, сетевые и информационные технологии Функции операционной системы Дополнительные функции операционной системы: * Параллельное или псевдопараллельное выполнение задач (многозадачность). * Эффективное распределение ресурсов системы между процессами. * Разграничение доступа различных процессов к ресурсам. * Исключение взаимного влияния процессов. * Взаимодействие между процессами: обмен данными, синхронизация. * Защита системы от нежелательных действий. * Многопользовательский режим работы и разграничение прав доступа. Виды операционных систем Пакетной обработки Шевченко А. В. С разделением времени Тема 3. Операционные системы Реального времени 3

Компьютерные, сетевые и информационные технологии Компоненты операционной системы Загрузчик Ядро Системные библиотеки Командный процессор Компьютерные, сетевые и информационные технологии Компоненты операционной системы Загрузчик Ядро Системные библиотеки Командный процессор Драйверы Системные утилиты Загрузчик загружает ядро операционной системы в оперативную память. Ядро - центральная часть операционной системы, обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память, устройства ввода и вывода информации. Также обычно ядро предоставляет сервисы файловой системы и сетевых протоколов. Драйверы - часть операционной системы, обеспечивающая однотипную работу с периферийными устройствами. Командный процессор - интерпретатор языка команд операционной системы для вызова системных и прикладных программ и управления ими. Шевченко А. В. Тема 3. Операционные системы 4

Компьютерные, сетевые и информационные технологии История операционных систем 1965 Multics OS/360 1966 DOS/360 1983 Компьютерные, сетевые и информационные технологии История операционных систем 1965 Multics OS/360 1966 DOS/360 1983 Lisa OS 1991 Linux 1992 Solaris 1984 Macintosh OS QNX Uni. COS 1993 Free. BSD Windows NT 1985 MIPS OS Windows 1995 1986 AIX HP-UX Digital UNIX Open. BSD Windows 95 1997 Mac OS 1987 IRIX OS/2 1998 Windows 98 2000 Windows 2000 1988 OS/400 2001 Windows XP 1989 Ne. XTSTEP SCO UNIX 2007 Windows Vista 2009 Windows 7 1969 Unix 1970 RT-11 1973 RSX-11 1974 MVS 1976 CP/M 1978 Apple DOS VMS 1980 Xenix 1981 MS-DOS 1982 Шевченко А. В. Sun. OS Ultrix 1990 OSF/1 Тема 3. Операционные системы 5

Компьютерные, сетевые и информационные технологии Операционная система UNIX - многопользовательская многозадачная переносимая операционная система. Компьютерные, сетевые и информационные технологии Операционная система UNIX - многопользовательская многозадачная переносимая операционная система. Достоинства: наличие стандартов, мощный пользовательский интерфейс, единая иерархическая файловая система, эффективное управление ресурсами, надежность. Создана в 1969 Кеном Томпсоном и Деннисом Ричи для PDP-7, размер ядра 4 К. В 1971 перенесена на PDP-11, размер ядра 16 К. В 1973 ядро практически полностью написано на языке высокого уровня С. 1983 - System V, корпорация AT&T. 1984 - BSD, университет Berkley. 1988 - стандарт POSIX. 1990 - стандарт XPG 3. 1994 - стандарт XPG 4. 2. Клоны UNIX RISC - процессоры AIX, OSF/1, Ultrix, Sun. OS, Solaris, HP/UX, IRIX, Next. Step, Mac. OS Шевченко А. В. Intel - процессоры Xenix, Free. BSD, Linux, QNX Тема 3. Операционные системы 6

Компьютерные, сетевые и информационные технологии Генеалогия UNIX Источник: Википедия Шевченко А. В. Тема 3. Компьютерные, сетевые и информационные технологии Генеалогия UNIX Источник: Википедия Шевченко А. В. Тема 3. Операционные системы 7

Компьютерные, сетевые и информационные технологии Структура UNIX Системные программы (утилиты) Прикладные программы Системные библиотеки Компьютерные, сетевые и информационные технологии Структура UNIX Системные программы (утилиты) Прикладные программы Системные библиотеки Интерфейс системных вызовов Ядро (kernel) Управление ресурсами: * процессор; * память; * устройства ввода-вывода. Файловая подсистема Подсистема ввода-вывода Подсистема управления процессами Драйверы устройств Шевченко А. В. Тема 3. Операционные системы 8

Компьютерные, сетевые и информационные технологии Пользователи Ввод записи о пользователе (системный администратор) Login: john Компьютерные, сетевые и информационные технологии Пользователи Ввод записи о пользователе (системный администратор) Login: john password: ****** Файл паролей /etc/passwd. . . john: A 7 bd 53 g 54 HJ 2: 36: 8: : /home/john: /bin/csh. . . Информация о пользователе: * имя; * пароль; * UID - идентификатор пользователя; * GID - идентификатор группы по умолчанию; * домашний каталог. * интерпретатор командной строки. Шевченко А. В. Тема 3. Операционные системы Регистрация UID Интерпретатор Суперпользователь root, UID = 0 9

Компьютерные, сетевые и информационные технологии Файлы Размер Файл - набор данных на внешнем носителе. Компьютерные, сетевые и информационные технологии Файлы Размер Файл - набор данных на внешнем носителе. Каталог Имя файла Владелец (UID, GID) Права доступа Может задавать >chmod 741 file >ll file -rwxr----x > Шевченко А. В. Доступ Владелец Группа Чтение (r) + + Запись (w) + Выполнение (x) + Тема 3. Операционные системы Остальные + 10

Компьютерные, сетевые и информационные технологии Виды файлов Вид файла Назначение Обычный (regular file) Хранение Компьютерные, сетевые и информационные технологии Виды файлов Вид файла Назначение Обычный (regular file) Хранение данных и программ Каталог (directory) Специальный файл, содержащий ссылки на другие файлы Специальный файл устройства (special device file) Обеспечение связи ядра с драйвером устройства Именованный канал (named pipe) Передача данных между программами Связь (link) Альтернативный доступ к файлу (другое имя, другой владелец, другие права) Сокет (socket) Взаимодействие между программами через сеть Шевченко А. В. Тема 3. Операционные системы 11

Компьютерные, сетевые и информационные технологии Каталоги и пути Каталоги содержат информацию о файлах (имя, Компьютерные, сетевые и информационные технологии Каталоги и пути Каталоги содержат информацию о файлах (имя, владелец, права доступа). Каталоги организуются в иерархическую файловую структуру. На вершине иерархии находится корневой каталог (root). Файловые системы, связанные с физическими устройствами (диски, ленты) или другими компьютерами (сетевые файловые системы), составляют части общей файловой структуры. Последовательность каталогов, используемая при доступе к файлу называется путем (path). Если путь начинается с корневого каталога, то он называется абсолютным, если с текущего, то относительным. /. . . Имена путей корневой каталог текущий каталог вышестоящий каталог / /bin /etc /home /john Шевченко А. В. . /mary Типичные каталоги для UNIX-систем /bin Системные утилиты /etc Системные данные и утилиты /dev Специальные файлы устройств /lib Системные библиотеки /usr Программные продукты /home Домашние каталоги пользователей /tmp Временные файлы /stand Ядро UNIX Тема 3. Операционные системы 12

Компьютерные, сетевые и информационные технологии Специальные файлы устройств Периферийные устройства Блочные устройства Символьные устройства Компьютерные, сетевые и информационные технологии Специальные файлы устройств Периферийные устройства Блочные устройства Символьные устройства Специальный файл устройства содержит информацию о типе устройства (блочное или символьное), а также старший и младший номера устройства (major device number, minor device number). В UNIX используются две конфигурационные таблицы для связи с устройствами. Выбор таблицы осуществляется по типу устройства, выбор процедуры для связи с драйвером - по старшему номеру устройства. Младший номер устройства передается драйверу для точной идентификации устройства среди однотипных устройств, обслуживаемых драйвером. /dev/dsk/c 0 t 6 d 0 /dev/rmt 0 /dev/crt /dev/ether 0 Шевченко А. В. Примеры файлов устройств Накопитель на жестком диске Накопитель на магнитной ленте Графический дисплей Сетевая карта Тема 3. Операционные системы 13

Компьютерные, сетевые и информационные технологии Файловая система Раздел 1 Неформатированный (raw) Раздел 2 Под Компьютерные, сетевые и информационные технологии Файловая система Раздел 1 Неформатированный (raw) Раздел 2 Под свопинг (swap) . . . Файловая система (hfs) Загрузочный блок (логический номер 0) может содержать программу начальной загрузки. Суперблок (логический номер 1) содержит информацию о файловой системе (полное число блоков, размер таблицы индексных дескрипторов, дату и время обновления, список свободных блоков, список свободных индексных дескрипторов). Копии суперблоков хранятся в оперативной памяти. Таблица индексных дескрипторов содержит записи по 64 или 128 байтов для каждого файла. Эти записи содержат информацию, необходимую для доступа к данным файла. Шевченко А. В. Тема 3. Операционные системы Загрузочный блок Суперблок Таблица индексных дескрипторов (inodes) Блоки данных 14

Компьютерные, сетевые и информационные технологии Управление логическими томами Раздел 1 Раздел 2 Раздел 3 Компьютерные, сетевые и информационные технологии Управление логическими томами Раздел 1 Раздел 2 Раздел 3 Раздел 1 Группа томов (volume group) Логический том (logical volume) Шевченко А. В. Раздел 2 Раздел 3 Управление логическими томами позволяет объединять разделы физических дисков в общее пространство группы томов, которое затем может быть разделено на логические тома, смонтированные в общую структуру файлов операционной системы. Логический том (logical volume) Тема 3. Операционные системы 15

Компьютерные, сетевые и информационные технологии Кэширование Программа Оперативная память Диск Шевченко А. В. Тема Компьютерные, сетевые и информационные технологии Кэширование Программа Оперативная память Диск Шевченко А. В. Тема 3. Операционные системы Программа Для ускорения доступа к данным на диске в оперативной памяти отводится область под буферы ввода-вывода. Синхронизация буферов и файлов происходит примерно 1 раз в 30 сек. Синхронизация может быть форсирована с помощью системного вызова sync: void sync(); 16

Компьютерные, сетевые и информационные технологии Процессы Процесс - экземпляр выполняемой программы. Понятие процесса объединяет Компьютерные, сетевые и информационные технологии Процессы Процесс - экземпляр выполняемой программы. Понятие процесса объединяет код программы, ее данные, стек, значения регистров процессора. Каждый процесс имеет уникальный идентификатор PID. Любой процесс может создавать другие процессы. Это придает среде процессов UNIX иерархическую структуру, подобную дереву каталогов файловой системы. На вершине этого дерева находится системный процесс init (PID = 0), который является предком всех системных и пользовательских процессов. PID Код Данные Стек Регистры Процесс 1 - init Шевченко А. В. Типы процессов: * пользовательские; * системные; * демоны. Тема 3. Операционные системы Таблица процессов 17

Компьютерные, сетевые и информационные технологии Атрибуты процессов PID PPID Статус Приоритет Идентификатор процесса Идентификатор Компьютерные, сетевые и информационные технологии Атрибуты процессов PID PPID Статус Приоритет Идентификатор процесса Идентификатор родительского процесса R (running) - активен, S (sleeping) - ожидание, W (waiting) - готов Статический и динамический. Используется планировщиком Владелец UID пользователя, создавшего процесс Группа GID пользователя, создавшего процесс Терминал Среда Терминал, с которым связан процесс (кроме демонов) Набор переменных среды, передаваемых процессу R Готов к выполнению Шевченко А. В. Занимает процессор W Тема 3. Операционные системы S Ожидает завершения в/в 18

Компьютерные, сетевые и информационные технологии Создание процесса Единственный механизм создания процесса в UNIX - Компьютерные, сетевые и информационные технологии Создание процесса Единственный механизм создания процесса в UNIX - системный вызов fork, который создает точную копию вызвавшего процесса (за исключением PID и PPID) printf("Процесс до ветвления"); PPID = 128 Процесс до fork int pid = fork(); if(pid) { printf("Родительский процесс"); } else { printf("Дочерний процесс"); } Шевченко А. В. PID = 3456 Тема 3. Операционные системы PID = 6438 PPID = 3456 Процесс после fork PID = 3456 PPID = 128 Процесс после fork 19

Компьютерные, сетевые и информационные технологии Перекрытие процесса в UNIX выполняется с помощью семейства системных Компьютерные, сетевые и информационные технологии Перекрытие процесса в UNIX выполняется с помощью семейства системных вызовов exec, которые заменяют код выполняемого процесса на новый, считываемый из файла образа задачи. При этом процесс сохраняет все свои атрибуты, включая открытые файлы. Новый код начинает выполняться со своей точки входа. int pid = fork(); Процесс до fork if(pid == 0) { execl("имя файла", параметры); printf("Ошибка запуска"); } Новый код Шевченко А. В. Тема 3. Операционные системы Родительский процесс Порожденный процесс 20

Компьютерные, сетевые и информационные технологии Завершение процесса Нормальным завершением порожденного процесса в UNIX считается Компьютерные, сетевые и информационные технологии Завершение процесса Нормальным завершением порожденного процесса в UNIX считается случай, когда порожденный процесс завершается с помощью системного вызова exit, а родительский процесс ожидает этот момент с помощью системного вызова wait. int pid = fork(); if(pid) {. . . wait(); } else {. . . exit(); } Шевченко А. В. В случае, если родительский процесс завершается раньше порожденного, то родителем порожденного процесса становится системный процесс init (PID = 1). В случае, если порожденный процесс завершается, но родительский процесс не вызвал wait, то порожденный процесс становится процессом-"зомби". Такие процессы не занимают оперативную память, но продолжают занимать строку в таблице процессов с соответствующим PID. Тема 3. Операционные системы 21

Компьютерные, сетевые и информационные технологии Межпроцессное взаимодействие Операционная система UNIX поддерживает различные механизмы взаимодействия Компьютерные, сетевые и информационные технологии Межпроцессное взаимодействие Операционная система UNIX поддерживает различные механизмы взаимодействия между одновременно выполняющимися процессами. Файлы Сигналы Каналы Очереди Ядро Сокеты Удаленные процедуры Шевченко А. В. Тема 3. Операционные системы Семафоры Разделяемая память 22

Компьютерные, сетевые и информационные технологии Сигналы - механизм программного прерывания процессов. Сигнал SIGABRT Сигнал Компьютерные, сетевые и информационные технологии Сигналы - механизм программного прерывания процессов. Сигнал SIGABRT Сигнал Процесс Процедура обработки сигнала Назначение Аварийное завершение процесса SIGALARM Сигнал от таймера SIGBUS Ошибка на шине SIGCHLD Завершение порожденного процесса SIGSTOP Останов процесса SIGCONT Продолжение процесса SIGILL Недопустимая команда (инструкция процессора) SIGINT Прерывание (CTRL-C) SIGSEGV Недопустимый адрес SIGTERM Запрос на завершение процесса Шевченко А. В. Тема 3. Операционные системы 23

Компьютерные, сетевые и информационные технологии Обработка сигналов Получив сигнал, процесс может выполнить одно из Компьютерные, сетевые и информационные технологии Обработка сигналов Получив сигнал, процесс может выполнить одно из трех действий: игнорировать сигнал; выполнить системную процедуру по умолчанию; выполнить пользовательскую процедуру. signal(SIGINT, SIG_IGN); // игнорировать signal(SIGTERM, SIG_DFL); // процедура по умолчанию signal(SIGCHLD, sigproc); // пользовательская процедура … void sigproc(int) { … } Шевченко А. В. Тема 3. Операционные системы 24

Компьютерные, сетевые и информационные технологии Блокировка сигналов В некоторых ситуациях, когда получение сигналов нежелательно, Компьютерные, сетевые и информационные технологии Блокировка сигналов В некоторых ситуациях, когда получение сигналов нежелательно, процесс может блокировать сигналы. При поступлении сигналов в период блокирования они откладываются, но не накапливаются. sigprocmask(int how, sigset_t* set, …) SIG_SETMASK SIG_BLOCK SIG_UNBLOCK Блокировка X X X Разблокировка Шевченко А. В. X Тема 3. Операционные системы Процесс может посылать сигналы другим процессам или самому себе: kill(pid, signal); raise(signal); alarm(seconds); 25

Компьютерные, сетевые и информационные технологии Универсальный механизм ввода-вывода В UNIX все операции ввода-вывода процесса Компьютерные, сетевые и информационные технологии Универсальный механизм ввода-вывода В UNIX все операции ввода-вывода процесса производятся через его таблицу файловых дескрипторов. Каждая строчка таблицы соответствует открытому файлу или устройству ввода-вывода. Индекс таблицы называется файловым дескриптором. Размер таблицы и, соответственно, максимальное число одновременно открытых файлов процесса определяется параметром генерации системы MAXFILES. 0 stdin 1 stdout 2 stderr 3 Таблица файловых дескрипторов Шевченко А. В. Тема 3. Операционные системы Процесс . . . 26

Компьютерные, сетевые и информационные технологии Системные вызовы для работы с файлами char buf[512]; int Компьютерные, сетевые и информационные технологии Системные вызовы для работы с файлами char buf[512]; int fd = open("test. dat", O_RDWR); // открытие файла read(fd, buf, 64); // чтение из файла … write(fd, buf, 64); // запись в файл close(fd); // закрытие файла Режимы работы с файлом O_RDONLY O_WRONLY O_RDWR O_APPEND O_CREAT Шевченко А. В. - только чтение только запись чтение и запись добавление создание файла Тема 3. Операционные системы 27

Компьютерные, сетевые и информационные технологии Программные каналы (трубки) 1. Создание трубки fd[0] Процесс fd[1] Компьютерные, сетевые и информационные технологии Программные каналы (трубки) 1. Создание трубки fd[0] Процесс fd[1] Трубки используются для передачи данных между родственными процессами. 2. Ветвление fd[0] Процесс fd[0] fd[1] Процесс 3. Закрытие дескрипторов fd[0] Процесс Шевченко А. В. fd[0] fd[1] Процесс Тема 3. Операционные системы int fd[2]; pipe(fd); Чтение Запись if(fork()) { close(fd[1]); read(fd[0], …); } else { close(fd[0]); write(fd[1], …); } 28

Компьютерные, сетевые и информационные технологии Именованные каналы (FIFO) Именованные каналы представляют собой виртуальные файлы, Компьютерные, сетевые и информационные технологии Именованные каналы (FIFO) Именованные каналы представляют собой виртуальные файлы, организованные по принципу "первым вошел - первым вышел" (FIFO - First Input First Output). Именованные каналы могут применяться для передачи данных между процессами, не связанными отношениями родства. >mknod channel p > >cat file 1. txt channel Шевченко А. В. >cat channel file 2. txt Тема 3. Операционные системы 29

Компьютерные, сетевые и информационные технологии Очереди сообщений, наряду с семафорами и разделяемой памятью, являются Компьютерные, сетевые и информационные технологии Очереди сообщений, наряду с семафорами и разделяемой памятью, являются частью механизма межпроцессного взаимодействия IPC, введенного в System V. Очереди сообщений позволяют организовать эффективный обмен сообщениями между процессами. Для идентификации очереди используется понятие ключа - номера, известного априорно работающим с очередью процессам или получаемого приватно в момент подключения к очереди и наследуемого при ветвлении процессов. Key 1 Key 2 . . . int id = msgget(key, flags); Процесс 1 Процесс 2 msgsnd(id, buffer, size); msgrcv(id, buffer, size); Шевченко А. В. Тема 3. Операционные системы 30

Компьютерные, сетевые и информационные технологии Семафоры (автор Эдсгер Дейкстра) применяются для синхронизации выполнения процессов. Компьютерные, сетевые и информационные технологии Семафоры (автор Эдсгер Дейкстра) применяются для синхронизации выполнения процессов. Аналогично очередям, наборы семафоров идентифицируются ключами, известными процессам или приватными (для родственных процессов). Семафор имеет целочисленное значение, которое можно увеличивать, уменьшать или проверять. Процесс, который пытается уменьшить значение семафора до отрицательной величины, блокируется, пока другой процесс не увеличит значение семафора настолько, чтобы оно стало неотрицательным. Key 1 Key 2 . . . Операция Семафор +n Значение 0 int id = semget(key, flags); semop(id, sembuf, nsem); -n Шевченко А. В. Тема 3. Операционные системы 31

Компьютерные, сетевые и информационные технологии Пример синхронизации процессов 1 При параллельной работе процессов могут Компьютерные, сетевые и информационные технологии Пример синхронизации процессов 1 При параллельной работе процессов могут встречаться такие участки кода, которые должны выполняться только одним процессом до окончании участка. Такие участки называются критическими. Для их защиты используется семафор, который принимает ненулевое значение когда интервал занят. Это блокирует другие процессы до момента разблокировки в конце критического интервала. Семафор Критический интервал 0 1 Семафор P 1 Шевченко А. В. P 2 0 struct sembuf LOCK[2] = {{ 0, 0}, { 0, 1}}; struct sembuf UNLOCK[1] = {{ 0, -1}}; int id = semget(IPC_PRIVATE, …); . . . semop(id, LOCK, 2); . . . semop(id, UNLOCK, 1); Тема 3. Операционные системы 32

Компьютерные, сетевые и информационные технологии Пример синхронизации процессов 2 При организации взаимодействия клиент-сервер семафор Компьютерные, сетевые и информационные технологии Пример синхронизации процессов 2 При организации взаимодействия клиент-сервер семафор позволяет блокировать сервер пока один из клиентов не сделает запрос. Каждый запрос увеличивает семафор на 1, после обработки запроса сервером он уменьшается на 1. Если запросов больше нет, то сервер блокирует себя до следующего запроса. struct sembuf LOCK[1] = {{ 0, -1}}; struct sembuf UNLOCK[1] = {{ 0, 1}}; Клиент -1 Клиент Сервер Клиент +1 Шевченко А. В. int id = semget(Key, …); while(true) { semop(id, LOCK, 1); . . . } Тема 3. Операционные системы 33

Компьютерные, сетевые и информационные технологии Разделяемая память представляет собой самый эффективный механизм обмена данными Компьютерные, сетевые и информационные технологии Разделяемая память представляет собой самый эффективный механизм обмена данными между процессами, выполняющимися на одной системе. Он основан на отображении части адресов различных процессов на одни и те же физические адреса оперативной памяти. Оперативная память int id = shmget(Key, size); Процесс 1 void* addr = shmat(id); Процесс 2 . . . Процесс 3 Шевченко А. В. shmdt(addr); Тема 3. Операционные системы 34