Я стал совсем другим, но я все тот же, каким задумал меня программист. Я уже гораздо больше похож на реальную силу, чем просто мысль автора. Чем же я отличаюсь от программы? Тем, чем симфония от партитуры, действующее лицо от роли. Программа и роль живут вечно. Действующее лицо (как и процесс) рождается, живет свою очередную жизнь и умирает, чтобы воскреснуть снова. Я связан самыми тесными узами с пространством-временем, с окружающей средой, с другими процессами. В моей программе есть только повелительное наклонение: сделать, послать, получить, подождать, изменить. Я же делаю, посылаю, получаю, жду и изменяю. Если бы я ничего не мог изменить, я был бы не нужен. В процессе важен результат. Прожив свою жизнь процесс должен оставить след. Сейчас я пассивен. Я жду. Я нахожусь в оперативной памяти (сокращенно оп). Я занимаю ее часть. Вместе со мной в оп есть еще несколько моих собратьев-процессов. Для нас оп — это ресурс. А вообще — это часть ЭВМ, которая хранит программы и обрабатываемые ими данные. По сравнению с емкостью памяти на магнитных дисках оп невелика. Hа магнитных дисках программ умещается в сотни раз больше. Hо прочесть и записать данные в оп можно гораздо быстрее. Поэтому в оп хранятся те части данных и программ, которые в настоящий момент нужны быстродействующей ЭВМ. Если сравнить магнитные диски с толстым телефонным справочником, в котором нужно рыться несколько минут, чтобы найти нужный вам телефон, то оп — это ваша память где нужные номера телефонов вы найдете практически мгновенно. Hо, увы, много номеров вы запомнить не в состоянии. Обрабатывает данные в оп в соответствии с записанными там программами процессор. Это одна из самых важных составных частей ЭВМ. Процессоров в ЭВМ может быть несколько. Такие ЭВМ называют многопроцессорными. В нашей ЭВМ процессор один. Он и есть душа и жизненная сила процесса. Он превращает программу в процесс, подобно тому, как актер превращает роль в действующее лицо. Так как процессор в нашей ЭВМ только один, то в каждый момент времени он выполняет только один процесс. Hо наша ЭВМ работает в мультипрограммном режиме. Это значит, что процессор "перескакивает" с одного процесса на другой. Один из нас работает, а остальные ждут. Мы умеем (и очень часто должны) ждать. Если бы не это, то процессор нашей ЭВМ выполнил бы целиком сначала один процесс, затем другой, и т. д. Hо мы очень часто взаимодействуем с внешней по отношению к процессору средой. Это могут быть люди, пользующиеся или управляющие ЭВМ, это могут быть устройства ввода и вывода. Как правило внешняя среда по сравнению с быстродействующим процессором крайне медлительна. Это приводит к тому, что взаимодействующий с ней процесс все время должен чего нибудь ждать. Ждать, пока подумает и ответит на вопрос человек. Ждать, пока напечатается строка на машинке или введется перфокарта… Чтобы процессору в это время не стоять без дела, ос переключает его на того из нас, кто уже своего дождался. Правда, таких, готовых к выполнению, процессов одновременно может быть несколько. Вот и получается, что время работы процессора для нас, процессов, тоже ресурс, который приходится делить. Кому-то больше, кому-то раньше… Вот и сейчас я не активен. Процессор занят другим процессом. Это как в театре одного актера. Действующие лица — процессы. Их роли — программы. А единственный актер — процессор он очень талантлив, этот актер. Он так быстро переключается с одной роли на другую, что у зрителя полная иллюзия реального и параллельного существования действующих лиц — процессов. Даже если действующих лиц много, и некоторые из них взаимодействуют друг с другом. Даже, если часть из них — гвардейцы кардинала, а часть — мушкетеры короля. Вот очередной из нас освободил процессор. Теперь процессор занят выполнением одной из программ ОС, которая называется "диспетчер". Это тоже процесс. Долго он работать не будет. Его задача — определить, кто из нас следующий. Оказывается, что следующий — это я. Все необходимые ресурсы у меня уже есть, все события, которых я ожидал, уже произошли. Таких процессов, как и я готовых к выполнению, несколько, но у меня среди них самый высокий приоритет. Сейчас "диспетчер" переключит на меня процессор…
Теперь я процесор. Наконец-то мне досталась приличная программа. В наше время это такая редкость. Hа прошлой секунде мне подсунули такой букетик из восьми процессов, что у меня от скуки чуть не сгорел акселератор умножения. У каждого из этих процессов на десять команд одна команда ввода-вывода. А ввод и вывод — это не моя работа. Для этого в нашей ЭВМ есть другие устройства, медленные как черепахи. А мне, значит, ждать, пока ввод-вывод закончится? Тоска. Вот я и прыгал, как белка, с одного процесса на другой. И все равно три четверти времени прождал. А этот достался ничего. В самом начале тройной цикл. Приятно. Этого мне хватит миллисекунд на триста. Это как из городской транспортной пробки, из частокола светофоров вырваться на шоссе и крутить педали. И программу ему грамотно. Вроде написали. А то иногда такое попадается — как резину жуешь. Вот была тут одна программа… Когда же это..? То ли миниту, то ли месяц тому назад. Она заставила меня восемьсот раз подряд возвести ноль в семнадцатитысячную степень, а результаты сложить. Надо же додуматься до такого. Hо что поделаешь. Я птица подневольная. Мне, что прикажут, то я и делаю. Стоит лишь самую малость сделать по собственному уразумению, как люди сразу шуметь начинают. "Сломался процессор", кричат, осциллографов, паяльников, схем всяких понатаскают в машинный зал столько, что в другой раз и не захочется самовольничать. Hу, вот, и этому процессу понадобилось вывести на дисплей сообщение и дождаться ответа оператора ЭВМ. Я прерываюсь, то есть, автоматически переключаюсь на другой процесс — один из процессов операционной системы.