русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Управление процессами


Дата добавления: 2013-12-23; просмотров: 833; Нарушение авторских прав


Архитектура и процессы UNIX

Синхронизация потоков

Лекция 5

Описатели объектов ядра (Handle) зависимо от конкретного процесса. Существуют способы работы с одними и теми же объектами ядра из разных процессов:

1. Наследование описателя.

2. Дублирование описателя с помощью системной функции Duplicate Handel.

3. Именование объекта ядра. При создании объекта ядра для синхронизации можно задать ему уникальное имя в системе. Для связи между процессами используется:

a. Разделяемая память, включая возможность преобразования страниц ОП в странице файла на диске и наоборот.

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

c. Именованные каналы. Двухсторонний обмен между процессами сервера и один или нескольким процессами клиентами. Могут использоваться для обмена данными локальными или по сети.

d. Сокеты (дейтаграмм, потоков). Представляют собой абстрактный объект для обозначения одного из концов сетевого соединения.

e. Сообщения

 

http://www.openspin.org/materials/courses/admin/ch01s03.html

UNIX (UNIX AIX) – многозадачная, многопользовательская система, оперирующая двумя типами базовых объектов: файлы и процессы.

Файлы включают пользовательскую информацию, доступ к устройствам, интерфейсы процессного взаимодействия. Процессы – код данных и программ, выполнение их.

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

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

Пользовательский процесс
Пользовательский процесс
Пользовательский процесс
Системные библиотеки
Интерфейс системных вызовов
Файловая подсистема
Символьные/блочные
Драйвера устройств
Управление процессами
планировщик
Управление памятью
Межпроцессный обмен
Аппаратно-независимая часть



Доступ к структурам ядра осуществляется через файловый интерфейс.

 

Дескрипторы всех процессов описываются структурой proc и объединяются в список (таблицу процессов), память для которой динамически выделяется в области ядра. Контекст процессов описывается в структуре user и хранится, непосредственно примыкая к образу процесса и перемещаясь вместе с ним. Обе структуры доступы только программам ядра.

При необходимости выполнить действия в привилегированном режиме программа генерирует системный вызов, и управление передается соответствующей программе ядра. С этого момента процесс считается системный.

Контекст процесса включает его идентификатор (pid), идентификатор родительского процесса (ppid) и данные о состоянии. При завершения процесса его уникальный номер может быть передан другому. Все процессы образуют иерархию, корнем которой является процесс init. Для процессов характерно особое состояние - зомби (zombie). Процесс получает его, если завершился раньше, чем этого ожидал его родитель.

 

Планирование процессов осуществляется на основе циклической очереди с приоритетом:

 

На основании значения приоритета определяется возможность процесса прибывать в основной памяти, размер временного кванта процесса и место в общей очереди процессов. Используется система динамически изменяющихся приоритетов. При создании процесса ему приписывается установленный системой статический приоритет, изменяемый при помощи системного вызова nice.

Все процессы с динамическим приоритетом не ниже порового значения участвуют в конкуренции за процессор.

Высокий приоритет начинается от 0 до 39 – приоритеты реального времени

Основная группа – 40-254 – пользовательские приоритеты

Низкий – 255 -> wait.

 

Приоритеты реального времени являются фиксированными и такие процессы могут быть запущены только root пользователем.

Приоритет потока вычисляется как:

Priority = x_nice + [(x_nice+4)/64 + (CPU penalty)]

x_nice = значение nice + базовый приоритет

если p_nice >60, то x_nice = (p_nice * 2) – 60

Иначе x_nice = p_nice

CPU penalty = CPU usage * R/32 - по умолчанию R=16

Каждый квант времени на выполнении CPU usage увеличивается на единицу.

 



<== предыдущая лекция | следующая лекция ==>
Архитектура и управление процессами в ОС семейства Windows | Межпроцессное взаимодействие


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.