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