Взаимодействие программ
Важно помнить, что компьютер работает по программе не только тогда, когда выполняет нашу только что разобранную программу умножения, но и до и после этого. Спрашивается, по какой же программе он работает, когда не выполняет нашу. Рассмотрим упрощенно, что происходит в период между моментом включения компьютера и моментом начала выполнения нашей программы.
Внутри компьютера в специальном постоянном запоминающем устройстве находится программа самопроверки компьютера. Как только вы включаете компьютер, он всегда начинает выполнять именно ее. Если в результате ее выполнения компьютер решит, что его здоровье и умственные способности в порядке, он продолжает работу и первым делом обязательно переписывает (загружает) в память с жесткого диска (о котором подробнее – позже) основную часть так называемой операционной системы (ОС) – комплекса служебных программ, предназначенного для того, чтобы обеспечить человеку и созданным им программам нормальную работу на компьютере. На вашем компьютере ОС – это Windows. Загрузив Windows, компьютер сразу же переходит к ее выполнению. Сделав свои маленькие дела, Windows останавливается и ждет указаний от человека, что ей делать дальше. Вы решаете, например, что вам нужно работать с VB, и несколькими щелчками мыши приказываете Windows запустить VS в работу. После этого процессор переходит к выполнению тех команд Windows, которые «осознают» ваше указание и выполняют его, в результате чего загружают большую комплексную программу, которой является VS, с жесткого диска в память и запускают эту программу на выполнение.
Важно понимать, что запуск на выполнение целой программы – VS явился результатом выполнения очередной команды другой программы – Windows (говорят – Windows вызывает VS или управление передается программе VS). От того, что начала выполняться VS, Windows не ушла в небытие, она осталась в памяти, притаилась и ждет, когда VS, как и положено каждой порядочной программе, решив поставленные человеком задачи, закончит свою работу и уступит место. В этот момент Windows как ни в чем не бывало продолжит свою работу (говорят - управление возвращается к Windows). Выполнив несколько следующих своих команд и поделав маленькие свои дела, Windows снова приказывает компьютеру ждать указаний от человека, что ему делать дальше. На этот раз человек может пожелать поиграть в какую-нибудь игру. Windows загружает с винчестера в память и затем запускает программу этой игры. После окончания игры управление снова возвращается к Windows и т.д. Так и проходит с утра до вечера работа на компьютере: после выполнения очередного желания человека Windows получает управление, выполняет некоторую подготовительную работу (чистит память и т.п.) и снова ждет от человека новых пожеланий.
А теперь рассмотрим подробнее период между запуском программы VS и завершением ее работы. VS берет пример с Windows. Получив управление, она выполняет некоторые подготовительные действия и останавливается, ожидая действий человека. Вы вводите с клавиатуры на языке VB свою программу умножения, а VS отправляет ее в память. VS все время настроена мгновенно реагировать на действия человека. Вы в любой момент можете пожелать исправить свою программу, запустить ее на выполнение, сохранить на диске и т.д. Предположим, вы приказываете выполнить программу. Тогда VS, проанализировав ваш приказ, выполняет вашу программу, то есть происходит примерно то, что я подробно описал ранее.
Обратите внимание на то, сколько программ находится в оперативной памяти во время выполнения вашей программы умножения. Во-первых, это Windows, которая ждет, когда вам надоест работать в VS. Во-вторых, это VS, которая выполняет вашу программу умножения, а выполнив, будет ждать от вас дальнейших приказов. И в-третьих, это сама ваша программа умножения.
Таким образом, в памяти одновременно находится как минимум три программы. На самом деле их там находится несколько десятков, так как я не упомянул о множестве служебных программ, которые входят в состав Windows и запускаются вместе с ней. К тому же, Windows является многозадачной ОС. Это значит, что вы можете запустить и одновременно работать с несколькими программами. Например, вдобавок к VS вы можете запустить Word и пару игр, расположить их окна на экране и, работая в Word, краем глаза наблюдать, как сражаются герои игр.
Это обычная практика работы большинства ОС: в памяти одновременно находится большое число программ. Во многих из них есть команды, которые передают управление другим программам, а затем получают его обратно. Такая передача управления происходит постоянно и зачастую автоматически, без ведома человека. Представьте себе детей, играющих в мяч и перекидывающих его друг другу. Дети – программы, мяч – компьютер. Каждый ребенок может делать с мячом, что хочет – бросить другому ребенку, погладить, проткнуть гвоздем. Отсюда вывод – не связывайтесь с подозрительными программами!
Начинающий программист может ничего этого и не знать. Ему достаточно знать те несколько клавиш, которые он должен нажать, чтобы добраться до VS и производить там элементарные действия – ввод программы, ее исправление, запуск и т.п.