ЗНАЕТЕ ЛИ ВЫ?

Названием инверсии приоритетов



Классы приоритетов

Процессов

Критичный

Ко времени

Самый

Высокий

Выше

Нормы

Нормальный

Ниже

Нормы

Самый

Низкий

Неработающий

Неработающий 15 6 5 4 3 2 1

Ниже нормы 15 8 7 6 5 4 1

Нормальный 15 10 9 8 7 6 1

Выше нормы 15 12 11 10 9 8 1

Высокий 15 15 14 13 12 11 1

Реального времени 31 26 25 24 23 22 16

Жизненный путь процесса Unix / Создание процесса

Система предоставляет два различных системных вызова: один для создания процесса, а другой для

Запуска новой программы.

Процесс, сделавший вызов fork() называется родительским, а вновь созданный процесс — дочерним.

Новый процесс является точной копией породившего его процесса. Новый процесс имеет те же

Инструкции и данные, что и его родитель. Более того, выполнение родительского и дочернего

процесса начнется с одной и той же инструкции, следующей за вызовом fork(). Единственно, чем они

Различаются — это идентификатором процесса PID. Каждый процесс имеет одного родителя, но

Может иметь несколько дочерних процессов.

#include <sys/types.h>

#include <unistd.h>

pid_t fork (void);

Дочерний и родительский процесс в Unix

Атрибуты родителя:

• идентификаторы пользователя и группы

• переменные окружения,

• диспозицию сигналов и их обработчики,

• ограничения, накладываемые на процесс,

• текущий и корневой каталог,

• маску создания файлов,

• все файловые дескрипторы, включая файловые указатели,

• управляющий терминал.

Различия между родителем и потомком:

• дочернему процессу присваивается уникальный идентификатор PID,

• идентификаторы родительского процесса PPID у этих процессов различны,

• дочерний процесс свободен от сигналов, ожидающих доставки

• значение, возвращаемое системным вызовом fork(2) различно для родителя и потомка.

Типичное дерево процессов в Unix:

Краткая диаграмма состояний процесса в Unix:

Команды управления процессами в Unix:

• UID - эффективный идентификатор владельца процесса (реальный выводится при

Использовании ключа -f).

• В колонке S - state (состояние) - указывается состояние процесса. Состояния бывают

Следующие: O (ON PROC) - процесс находится в процессоре и выполняется; S (Sleeping) -

процесс ждет завершения события (например, ввода-вывода); R (Runnable) - процесс готов к

Выполнению и ждет своего кванта в очереди к процессору; Z (Zombie) - процесс стал

<зомби>, так как завершился, а родительский процесс не подождал его завершения; T

(sTopped) - процесс остановлен по сигналу остановки или в процессе трассировки.

• Идентификатор PID - уникальный идентификатор процесса, используется при передаче ему

Сигналов.

• PPID - идентификатор родительского процесса.

• CMD - команда, которой был запущен процесс.

Основным средством управления процессами является команда kill, передающая процессу сигналы:

kill [-ключи] номер_процесса

Например, для завершения процесса sendmail можно выполнить следующие действия:

: ps auxw | grep sendmail

Root 2057 0.0 0.2 2664 444 ? S Jul08 3:24 sendmail: accepting connections

Kill 2057

Kill 2057

Kill: (2057) - No such pid

Т4. Управление памятью в ОС

Иерархия памяти

Методы разделения памяти

Виртуальная память

Физическая организация памяти

Запоминающие устройства компьютера разделяют, как минимум, на два уровня: основную (главную,

оперативную, физическую) и вторичную (внешнюю) память.

Основная память представляет собой упорядоченный массив однобайтовых ячеек, каждая из

которых имеет свой уникальный адрес (номер). Процессор извлекает команду из основной

памяти, декодирует и выполняет ее. Для выполнения команды могут потребоваться

обращения еще к нескольким ячейкам основной памяти.

— Вторичную память (это главным образом диски) также можно рассматривать как одномерное

линейное адресное пространство, состоящее из последовательности байтов. В отличие от

оперативной памяти, она является энергонезависимой, имеет существенно большую емкость

и используется в качестве расширения основной памяти.

Оперативная память – важнейший ресурс вычислительной системы, требующий управления со

Стороны ОС. Причина – процессы и потоки хранятся и обрабатываются в оперативной памяти.

Память распределяется между приложениями и модулями самой операционной системы.

Кэш-память - это способ организации совместного функционирования двух типов

Запоминающих устройств, отличающихся временем доступа и стоимостью хранения данных,

Который позволяет уменьшить среднее время доступа к данным за счет динамического

копирования в "быстрое" ЗУ наиболее часто используемой информации из "медленного" ЗУ.

Иерархия памяти

Представление потоков в оперативной памяти

— Для идентификации переменных и команд программы используются разные типы адресов:

— Символьные (имена переменных, функций и т.п.);

— Логические/Виртуальные – условные числовые значения, вырабатываемые

компиляторами;

— Физические – адреса фактического размещения в оперативной памяти.

Функции ОС и hardware по управления памятью

Отображение логического адресного пространства процесса на физическое адресное

Пространство

Распределение памяти между конкурирующими процессами

Контроль доступа к адресным пространствам процессов

Выгрузка процессов (целиком или частично) во внешнюю память

Учет свободной и занятой памяти

Преобразование адресных пространств (Одна из функций управления памятью)

Адреса, с которыми имеет дело менеджер памяти, бывают логическими (виртуальные для систем с

Виртуальной памятью) и физическими

Пользовательская программа имеет дело с логическими адресами, которые являются результатом

Трансляции символьных имен программы

Логические адреса обычно образуются на этапе создания загрузочного модуля (компоновки

Программы)

Линейное непрерывное отображение

— Связывание логического адреса, порожденного оператором программы, с физическим

Адресом должно быть осуществлено до начала выполнения оператора или в момент его

Выполнения

— Обычно программа проходит нескольких шагов: текст на языке программирования ->

объектный модуль -> загрузочный модуль -> бинарный образ в памяти

В каждом конкретном случае адреса могут быть представлены различными способами.

— Адреса в исходных текстах обычно символические. Компилятор связывает символические

Адреса с перемещаемыми адресами.

— Компоновщик связывают перемещаемые адреса с виртуальными адресами.

— Каждое связывание - отображение одного адресного пространства в другое

Связывание адресов

Логическое адресное пространство

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

Логическое адресное пространство – совокупность всех допустимых адресов, с которыми работает

Процессор

Физическое адресное пространство – совокупность всех доступных физических адресов в

Вычислительной системе

Функции OCпо управлению памятью в мультипрограммных системах

· отслеживание (учет) свободной и занятой памяти;

· первоначальное и динамическое распределение памяти процесса приложений и сaмой ОС;

· освобождение памяти при завершении процессов;

· настройка адресов программы на конкретную область физической памяти;

· полное или частичное вытеснение кодов и данных процессов из ОП на диск, когда размеры

ОП недостаточны для размещения всех процессов и возвращение их в ОП;

· защита памяти, выделенной процессу, от возможных вмешательств со стороны других

процессов;

· дефрагментация памяти

Классификация методов распределения памяти

Частный случай схемы с фиксированными разделами используется в работе менеджера памяти

Однозадачной ОС.

— В памяти размещается один пользовательский процесс.

— Остается определить, где располагается пользовательская программа по отношению к ОС -

Сверху, снизу или посередине

— При этом часть ОС может располагаться в ROM (read-only-memory) (например, BIOS,

драйверы устройств)

Главный фактор, влияющий на это решение - расположение вектора прерываний, который обычно

Локализован в нижней части памяти, поэтому ОС также размещают в нижней.

Чтобы пользовательская программа не портила код ОС, требуется защита ОС, которая может





Последнее изменение этой страницы: 2016-08-16; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.236.156.32 (0.012 с.)