русс | укр

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

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

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

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


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

Процессы в Linux


Дата добавления: 2014-11-27; просмотров: 668; Нарушение авторских прав


1. Архангельский А. Я. Разработка прикладных программ для Windows в Delphi 5 / А.Я. Архангельский. - М.: БИНОМ, 1999. - 256 с.

2. Бобровский С. И. Delphi 7: учеб. курс / С.И. Бобровский. - СПб.: Питер, 2004. - 736 с.

3. Фаронов В. Программирование баз данных в Delphi 6: Учебный курс / В. Фаронов. - СПб.: Питер, 2002. - 352 с:ил

4. Фаронов В. В. Delphi : программирование на языке высокого уровня : учебник для студ., обуч. по напр. подготовки дипломир. спец. "Информатика и вычис. техника" / В. В. Фаронов. - СПб.: Питер, 2005. - 640 с.

5. Фаронов В.В. Delphi 6. Учебный курс. –М. Нолидж, 2004. – 425 с.

 

 

Процессы в Linux

Термин "процесс" имеет несколько определений, которые используются в зависимости от контекста. Процесс - это:

 

-программа на стадии выполнения

-"объект", которому выделено процессорное время

-асинхронная работа

 

Для описания состояний процессов используется несколько моделей. Самая простая модель - это модель трех состояний. Модель состоит из:

 

-состояния выполнения

-состояния ожидания

-состояния готовности

 

Выполнение - это активное состояние, во время которого процесс обладает всеми необходимыми ему ресурсами. В этом состоянии процесс непосредственно выполняется процессором.

 

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

 

Готовность - это тоже пассивное состояние, процесс тоже заблокирован, но в отличие от состояния ожидания, он заблокирован не по внутренним причинам а по внешним, независящим от процесса, причинам. Когда процесс может перейти в состояние готовности? Предположим, что наш процесс выполнялся до ввода данных. До этого момента он был в состоянии выполнения, потом перешел в состояние ожидания - ему нужно подождать, пока мы введем нужную для работы процесса информацию. Затем процесс хотел уже перейти в состояние выполнения, так как все необходимые ему данные уже введены, но так как он не единственный процесс в системе, пока он был в состоянии ожидания, его место занято - процессор выполняет другой процесс. Тогда процессу ничего не остается как перейти в состояние готовности: ждать ему нечего, а выполняться он тоже не может. Из состояния готовности процесс может перейти только в состояние выполнения.



Из состояния выполнения процесс может перейти либо в состояние ожидания или состояние готовности. Почему процесс может оказаться в состоянии ожидания, мы уже знаем - ему просто нужны дополнительные данные или он ожидает освобождения какого-нибудь ресурса, например, устройства или файла. В состояние готовности процесс может перейти, если во время его выполнения, квант времени выполнения "вышел". Другими словами, в операционной системе есть специальная программа - планировщик, которая следит за тем, чтобы все процессы выполнялись отведенное им время. Например, у нас есть три процесса. Один из них находится в состоянии выполнения. Два других - в состоянии готовности. Планировщик следит за временем выполнения первого процесса, если "время вышло", планировщик переводит процесс 1 в состояние готовности, а процесс 2 - в состояние выполнения. Затем, когда, время отведенное, на выполнение процесса 2, закончится, процесс 2 перейдет в состояние готовности, а процесс 3 - в состояние выполнения.


Рисунок 1. Модель трех состояний

Более сложная модель - это модель, состоящая из пяти состояний. В этой модели появилось два дополнительных состояния: рождение процесса и смерть процесса. Рождение процесса - это пассивное состояние, когда самого процесса еще нет, но уже готова структура для появления процесса. Как говорится в афоризме: "Мало найти хорошее место, надо его еще застолбить", так вот во время рождения как раз и происходит "застолбление" этого места. Смерть процесса - самого процесса уже нет, но может случиться, что его "место", то есть структура, осталась в списке процессов.


Рисунок 2. Модель пяти состояний

 

Над процессами можно производить следующие операции:

 

Создание процесса - это переход из состояния рождения в состояние готовности

Уничтожение процесса - это переход из состояния выполнения в состояние смерти

Восстановление процесса - переход из состояния готовности в состояние выполнения

Изменение приоритета процесса - переход из выполнения в готовность

Блокирование процесса - переход в состояние ожидания из состояния выполнения

Пробуждение процесса - переход из состояния ожидания в состояние готовности

Запуск процесса (или его выбор) - переход из состояния готовности в состояние выполнения

 

Для создания процесса операционной системе нужно:

-Присвоить процессу имя

-Добавить информацию о процессе в список процессов

-Определить приоритет процесса

-Сформировать блок управления процессом

-Предоставить процессу нужные ему ресурсы

 

Процесс не может взяться из ниоткуда: его обязательно должен запустить какой-то процесс. Процесс, запущенный другим процессом, называется дочерним (child) процессом или потомком. Процесс, который запустил процесс называется родительским (parent), родителем или просто - предком. У каждого процесса есть два атрибута - PID (Process ID) - идентификатор процесса и PPID (Parent Process ID) - идентификатор родительского процесса.

Процессы создают иерархию в виде дерева. Самым "главным" предком, то есть процессом, стоящим на вершине этого дерева, является процесс init (PID=1).

 



<== предыдущая лекция | следующая лекция ==>
Лекція №3 | Практика


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


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

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

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


 


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

 
 

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

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