Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы информатики

.pdf
Скачиваний:
25
Добавлен:
26.03.2015
Размер:
2.94 Mб
Скачать

Кирьянов Б.Ф. Основы информатики. 121

рассматриваемый модуль имеет более широкий круг обязанностей. В этом случае разные программы решения задач и относящиеся к ним данные должны размещаться о ОЗУ одновременно, каждая в своей области, выделенной модулем управления памятью. По мере выполнения разных заданий модуль управления памятью должен удовлетворять их требованиям к памяти и отслеживать, какие области памяти в данный момент свободны.

Задача модуля управления памятью ещѐ более усложняется, когда объѐма ОЗУ всем программам не хватает. В этом случае модуль систематически перемещает программы между ОЗУ и основной памятью (жѐсткий диск). Такие перемещения осуществляются страницами, на которые он разделяет ОЗУ. Более подробно такая работа будет рассмотрена в разделе ―Управление процессами‖. Пока лишь отметим, что в результате, создаѐтся иллюзия, что объѐм ОЗУ больше, чем на самом деле. Такая память называется виртуальной (virtual memory). {Virtual дающий тот же эффект, действующий}.

Работу планировщика и диспетчера, обеспечивающих работу нескольких программ в режиме реального времени, рассмотрим после ознакомления с оболочками.

Оболочки ОС. Часть ОС, которая определяет интерфейс (interface – совокупность средств и правил, обеспечивающих взаимодействие средств ВТ) между ОС и пользователем. Обычно еѐ называют оболочкой (shell). Современные оболочки ОС выполняют эту задачу с помощью графического пользовательского интерфейса, в котором объекты (файлы, программы и др.) представлены на экране компьютера в виде значков (ярлыков). Это позволяет пользователям отдавать команды щелчком мыши на значке.

Важнейшими элементами оболочек являются рассматриваемые в разделе 7 среды программирования.

6.2. Основы функционирования операционных систем

6.2.1. Запуск ЭВМ

Начало работы. Запуск системы (ЭВМ) осуществляется с помощью процедуры, которая называется начальной загрузкой. При включении машины в счѐтчик команд всегда записывается адрес первой команды этой процедуры, находящейся в ПЗУ (в системе BIOS{Байос}− Basic Input-Output System). При этом из энергонезависимой памяти CMOS считывается программа начальной загрузки компьютера [CMOS – Complementary Metal-Oxide Semiconductor – на-

звание технологии изготовления БИС на основе лития].

Кирьянов Б.Ф. Основы информатики. 122

Рис. 6.5. Изменение расположения ОС в ЗУ при начальной загрузке

6.2.2. Работа операционной системы при одновременном решении нескольких задач

Следует разделять понятие программы и деятельности машины по еѐ выполнению, называемой процессом. Текущее состояние указанной деятельности называется состоянием процесса. Грубо говоря, состояние процесса – это моментальный снимок ресурсов машины в соответствующее время.

На современных ЭВМ возможна одновременная работа нескольких поль-

зователей. Для этого ОС реализует систему коллективного пользования с раз-

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

Кирьянов Б.Ф. Основы информатики. 123

Задачи, связанные с координацией процессов, выполняются программой планировщик, которая входит в ядро ОС. Планировщик ведѐт учѐт протекающих процессов, записывает в учѐтную таблицу новые и удаляет из неѐ закончившиеся процессы (рис. 6.6). Непосредственное же переключение процессов в системах с разделением времени выполняет диспетчер (программа ядра ОС).

Рис. 6.6. Структура и функции планировщика и диспетчера

Каждый раз, когда начинается квант времени процесса, диспетчер запускает таймер, считающий время кванта. Когда квант времени, отведѐнный рассматриваемому процессу заканчивается, таймер генерирует сигнал, который называется сигналом прерывания. В состав диспетчера входит программа прерывания текущего процесса. Она прерывает выполнявшийся процесс и передаѐт управление основной программе диспетчера. На данном этапе диспетчер позволяет планировщику обновить таблицу процессов. Затем диспетчер выбирает из этой таблице процесс с наивысшим приоритетом, перезапускает таймер и позволяет выбранному процессу начать его временной квант. Если в таблице процессов зафиксировано несколько процессов с одинаковым приоритетом, один из которых нужно выбрать, то диспетчер выбирает тот, у которого время ожидания наибольшее.

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

Кирьянов Б.Ф. Основы информатики. 124

6.2.3. Обработка конкуренции между процессами

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

Прежде всего, предоставляя ресурсы, ОС должна знать, свободны ли они. Этот вопрос просто решается при помощи ―флагов‖ (ранее – признаков), то есть триггеров состояния устройств. Если этот триггер находится в состоянии 0, то это означает, что соответствующее ему устройство свободно. Когда оно занимается, то ―выкидывает флаг‖ (триггер в состоянии 1).

Указанная технология на первый взгляд очень проста. Но сложность состоит в том, что проверка и установка флага должна завершаться без прерывания. Для решения этой проблемы используется команда блокировки прерываний. Такая блокировка действует очень короткое время, так как проверка и установка флага выполняется всего за одну команду.

Рассмотренные флаги закрывают или открывают пути соответствующим процессам. Поэтому по аналогии с железнодорожными сигналами при использовании их для пропускания и задержки процессов они стали называться семафорами. Часть дороги (например, одноколейной, может быть занята только одним поездом. Аналогично существуют наборы команд, которые могут одновременно выполняться только одним процессом. Такие наборы команд называются критической областью (пример: использование единственного принтера в вычислительной системе). Процесс проходит через критическую область только при открытом в момент входа семафоре.

Взаимная блокировка. Другая проблема, которая может возникнуть при распределении ресурсов, взаим-

ная блокировка. Например: один процесс имеет доступ к принтеру, но ждѐт Рис. 6.7. Взаимная блокировка

освобождения ЗУ, в то время как другой процесс имеет доступ к ЗУ, но ждѐт освобождения принтера. Аналогичная ситуация может возникнуть при неудачно построенных пересечениях железных дорог, при которой поезда, подъехавшие к пересечению дорог, не могут продолжать движение (рис. 6.7).

Кирьянов Б.Ф. Основы информатики. 125

Взаимная блокировка может возникнуть только тогда, когда имеют место следующие три условия:

Существует конкуренция за ресурс, который не может использоваться совместно.

Ресурсы запрашиваются по частям, то есть получив некоторые ресурсы, процесс может возвращаться, чтобы получить больше.

Если ресурс распределѐн и ещѐ используется, то его уже нельзя принудительно отнять и передать другому процессу.

Проблему взаимной блокировки можно ликвидировать, устранив хотя бы одно из этих условий. Так для разрешения ситуаций, обусловленных третьим условием, используются методы обнаружения и устранения тупиковой ситуации. Например, при переполнении таблицы процессов один из процессов ―убивается‖, то есть временно ему отказывается в ресурсах. Можно также вводить перераспределение ресурсов между процессами.

Вопросы, задачи. 1) Дорога с двумя полосами движения сходится в одну, проходя через тоннель. Для контроля над использованием тоннеля применяется такая система сигналов: машина, входящая в тоннель, вызывает появление красных огней на входе в тоннель с противоположной стороны, при которых въезд в него запрещѐн. При выезде машины из тоннеля огни выключаются, возможен въезд и встречной машины. Какой недостаток имеет эта система контроля? Как его устранить?

2) Привести примеры разрешения тупиковых ситуаций из компьютерной техники или из общественной жизни (потеряны паспорт и военный билет, …).

6.3. Структура и организация работы многоядерных компьютеров

В структуре многоядерного процессора содержится два или больше «вычислительных ядер». Все они выполняются в одном кристалле. Поэтому процессор имеет один корпус и устанавливается в один разъем на системной плате, но операционная система воспринимает каждое его вычислительное ядро как отдельный процессор с полным набором вычислительных ресурсов. Например, двухъядерный процессор – это реализация многоядерности с двумя вычислительными ядрами.

Инициатором создания многоядерных компьютеров стала фирма Intel. В 1999 году фирма Intel разработала двуядерный процессор IBM Power4 первый компьютер, имеющий более одного ядра. Процессор начал выпускаться и

Кирьянов Б.Ф. Основы информатики. 126

продаваться в 2001 году. C 2004 года начали выпускаться двуядерные компьютеры 2-го поколения IBM Power5.

В 1999 году фирма Intel разработала двуядерный процессор IBM Power4 первый компьютер, имеющий более одного ядра. Компьютеры на этом процессоре начали выпускаться и продаваться в 2001 году {power – степень, показатель степени}. C 2004 года начали выпускаться двуядерные компьютеры 2-го поколения IBM Power5.

По мнению фирмы Intel, уже окончательно и бесповоротно наступила эра многоядерных процессоров. Фирма готовит к выпуску 80-ядерный процессор в одном корпусе. Многоядерные процессоры дают возможность одновременно выполнять несколько процессов, то есть программных потоков. Следовательно, возможности таких компьютеров существенно расширяются, они имеют очень высокую производительность. В 2006-м году многоядерные компьютеры работали на частотах свыше 3,5 ГГц.

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

Для работы структуры многоядерного процессора одно ядро выполняет функции главного. Оно распределяет задачи между остальными ОС, может передавать им общие ресурсы, не закреплѐнные за конкретными ядрами. Внутри каждой подструктуры со своим ядром вычислительные и информационные процессы протекают так, как рассматривалось выше. Но загрузка каждой подструктуры получается значительно меньше. Поэтому вероятности тупиковых ситуаций в них крайне малы. Если таковая произойдѐт, то соответствующее ядро обращается к главному для попавшего в тупик процесса в другую структуру.

Многоядерные платформы Intel расширяют вычислительные возможности благодаря следующим факторам:

повышение производительности существующих сегодня многопоточных приложений;

повышение производительности системы в целом без повышения требований к охлаждению и электропитанию;

уменьшение времени выполнения программ в многозадачных средах;

возможность создания новых программных приложений с интеллектом, подобным человеческому, для настольных ПК, ноутбуков и других устройств с малыми форм-факторами, для которых может потребоваться

Кирьянов Б.Ф. Основы информатики. 127

производительность, сравнимая с производительностью больших компьютеров;

упрощение использования ПК благодаря дружественным пользовательским интерфейсам, то есть упрощающих работу пользователей;

увеличение числа моделей (направлений) использования компьютеров для анализа и синтеза информации, а также для творчества, рационализации и коммуникаций.

Контрольные вопросы

1.Какие функции выполняет операционная система компьютеров?

2.Что входит в базовое программное обеспечение?

3.Что такое драйверы и утилиты?

4.Какие программы относятся к обслуживающему ПО?

5.Какие программы относятся к оболочке ПО?

6.В чѐм состоит различие между обработкой в реальном времени и интерактивной обработкой?

7.Что понимается под ядром в многоядерных компьютерах?

Кирьянов Б.Ф. Основы информатики. 128

7. СРЕДЫ ПРОГРАММИРОВАНИЯ. ОСНОВЫ РАБОТЫ В СРЕДЕ DELPHI

7.1.0Общие сведения о средах программирования

Понятие ―среда программирования‖ появилось в конце прошлого века. Рассматриваемые среды являются важным помощником пользователей в разработке программ и других задач. Например: Microsoft Office Promt 2007 - профессиональная среда для перевода, Microsoft Office PowerPoint – среда для подготовки слайдов и т.д.

В конце 20-го – в начале 21-го века стали появляться и среды, предназначенные именно для разработки программ – Code Gear. Наиболее популярными средами являются С++ и Delphi (разработчиком этих сред являются основанная в 1982 году компания Borland, в которую входят фирмы Motorola – основной разработчик системы С++, Legadero и другие). Основная цель этих систем – упростить работу программистов при разработке программных продуктов. На английском языке слово ―Delphi‖ произносится как Делфай или Делпфай, в России произносят ―Делфи‖.

Система С++ более удобна для системного программирования, а Delphi – для прикладного. Каждая из них имеет свои достоинства. Известно несколько модификаций как Делфи, так и С++ (Delphi 5, Delphi 7, Delphi 2007, Delphi NET, Delphi 2010). В конце 2004 года компания Borland объявила, что продолжит развитие классического C++ Builder {Builder − создатель программ, составитель программ}, объединив его со средой Delphi и прекратив разработку самостоятельной (отдельной) системы C++. Постепенно компания перешла на среды, использующие возможности интернета (NET).

Delphi – это программная среда визуального программирования и создания как приложений клиент/сервер, так и общих приложений для OC Windows, то есть для ОС, разработанных компанией Microsoft. Эта среда сочетает в себе высокопроизводительный компилятор с языком Object Pascal (объектноориентированный паскаль), визуальные механизмы программирования, инструмент создания приложений клиентов для работы с различными локальными и удаленными базами данных, а также для подготовки научных документов.

Delphi – это система быстрой разработки приложений для Windows, кото-

рую нередко называют система RAD (Rapid Application Development): {rapid –

быстрый, скорый, development – усовершенствование, развитие}. Основой

Delphi является графическая среда разработки приложений, называемая

Кирьянов Б.Ф. Основы информатики. 129

интегрированной средой разработки (Integrated Development Environment). Последние модификации системы Delphi (Delphi 2007, Delphi 2010 и Delphi NET) требуют установки на персональном компьютере компонентов Microsoft.NET Framework и Microsoft.NET Framework SDK.

Delphi 2010 существует в трѐх вариантах: Professional, Enterprise и Architect. Каждый комплект включает набор средств и компонентов, представляющих собой готовые программные решения и обеспечивающих разработку высокоэффективных приложений различного назначения, в том числе для работы с базами данных. Комплекты Enterprise и Architect позволяют работать с удалѐнными базами данных, то есть подключаться к ним через сервер. Комплект

Professional работает только с локальными базами данных.

В последние годы разработчики Delphi активно продвигают так называемые NET-технологии (новые технологии на основе интернета). Эти технологии имеют хорошие перспективы развития, так как они используют мощную, быстро развивающуюся базу интернета.

7.2. Структура среды Delphi

Интегрированная среда разработки Delphi является многооконной системой. Она включает в себя все необходимое для быстрой разработки Windowsприложений, может гибко настраиваться и имеет некоторый стандартный вид.

Рабочие окна и вкладки. Разрабатываемые в среде Delphi программы называются проектами. Каждый проект состоит из нескольких программных модулей, имеющих соответствующие расширения. Разработка ведѐтся в среде, состоящей из функциональных окон (рис. 7.1). В отдельных окнах имеются вкладки, занимающие часть окон. Вкладки содержат элементы, используемые при разработке программ (приложений к проекту – к главной, короткой программе проекта, создаваемой средой Delphi при первом запуске программы).

Каждое окно и вкладка имеют названия. На рисунке окна отмечены соответствующими цифрами:

1 – главное окно, в заголовке которого отображаются название проекта; 2 − окно дизайнера формы, в котором находится форма (3) – окно конст-

руктора форм (заготовка окна приложения); 4 – окно дерева проектов; окно инспектора объектов; 5 – окно инспектора объектов;

6 – окно структуры проекта (Project Manager);

7 − окно палитры инструментов (Tool Palette).

Кирьянов Б.Ф. Основы информатики. 130

Рис. 7.1. Окна Delphi 2007 в начале работы над проектом

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