Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Названием инверсии приоритетов↑ ⇐ ПредыдущаяСтр 8 из 8 Содержание книги
Поиск на нашем сайте
Классы приоритетов Процессов Критичный Ко времени Самый Высокий Выше Нормы Нормальный Ниже Нормы Самый Низкий Неработающий Неработающий 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; просмотров: 208; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.136.95 (0.01 с.) |