Читаем Записки парасистемного программиста полностью

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

* * *
Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
C++: базовый курс
C++: базовый курс

В этой книге описаны все основные средства языка С++ - от элементарных понятий до супервозможностей. После рассмотрения основ программирования на C++ (переменных, операторов, инструкций управления, функций, классов и объектов) читатель освоит такие более сложные средства языка, как механизм обработки исключительных ситуаций (исключений), шаблоны, пространства имен, динамическая идентификация типов, стандартная библиотека шаблонов (STL), а также познакомится с расширенным набором ключевых слов, используемым в .NET-программировании. Автор справочника - общепризнанный авторитет в области программирования на языках C и C++, Java и C# - включил в текст своей книги и советы программистам, которые позволят повысить эффективность их работы. Книга рассчитана на широкий круг читателей, желающих изучить язык программирования С++.

Герберт Шилдт

Программирование, программы, базы данных
C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

Программирование, программы, базы данных / Программирование / Книги по IT