Операционные системы Windows
Как известно ОС – комплекс программ, которые загружаются при включении компьютера и обеспечивают его работу и взаимодействие с пользователем.
MS-DOS появилась с 1981 г., версия 6.2 – Октябрь 93 г.
MS-Windows – с 1985 г., 3.0 – 90 г., 3.11 – 92 г.
Считается, что Windows 3.x – это не ОС, а операционная среда, использующая DOS в качестве основы. Т.е. Windows 3.x – надстройка над DOS.
Все приложения, написанные для Windows, имеют единый пользовательский интерфейс:
систему меню с одинаковыми основными командами;
одинаковые способы выделения текста и объекта;
одинаковые действия мышью (щелчка, перетаскивания).
Система управления памятью Windows позволяет одновременно работать нескольким приложениям. Видимость одновременной работы создаются с помощью техники переключения задач (Task-Switching).Это стало возможным для микропроцессоров-потомков МП 8086: 80286, 80386…
Режимы Windows
Реальный режим
Первоначально (до версии 3.1) существовала поддержка работы Windows в 1 Мб ОЗУ. Этот режим называется реальным (real mode). Его поддержка являлась частью принципа обратной совместимости (для обеспечения работы старых приложений и оборудования).
Стандартный режим
В стандартном режиме (standard mode) Windows использует защищенный режим МП. Говоря о защищенном режиме МП, подразумевают использование защищенной памяти. Этот режим реализован для Windows 2.0 и МП 286, а так же следующих поколений Windows.
В этом режиме появилась знаменитая ошибка General Protection Fault (GPF – общая ошибка защиты). Она возникала при попытке программы обратиться к памяти за пределы выделенной приложению памяти в Windows. В стандартном режиме Windows осуществляет также стандартизированную поддержку графики, шрифтов, устройств ввода/вывода и памяти, т.е. ресурсов компьютера (в DOS этого не было).
Программам не следует посылать команды устройствам. Им достаточно сообщить Windows какое устройство и как нужно задействовать.
Создание МП 386 сделало возможным адресацию к памяти объемом до 4 Гб ( 232 байт ) и запуск нескольких приложений DOS одновременно.
Соответственно, начиная с версии 3.11, в Windows допускается использование только 386 расширенного режима (386 enhanced mode). ОС Windows управляет ресурсами компьютера через специальные программы драйвера устройств. Драйвер позволяет взаимодействовать Windows и устройству.
Почти все драйверы хранятся в каталоге C:\Windows\System и имеют расширение *.drv или *.386. Первые могут работать в стандартном и расширенном режиме, а вторые – только в расширенном.
В Windows, как и в DOS, 3 главных файла
Krnl386.exe
User.exe
Gdi.exe
Эти программы распределяют и контролируют ресурсы системы, необходимые приложениям. Приложения запрашивают доступ к ресурсам с помощью стандартизированных подпрограмм, называемых интерфейсом прикладного программирования (Application Programming Interface, API).
Самый важный ресурс – это оперативная память. Ее никогда не бывает много. В Windows предусмотрен способ расширения памяти путем использования т.н. виртуальной памяти (virtual memory), т.е. памяти, объем которой превышает объем микросхем ОЗУ. ОС Windows распределяет программы по приоритетам и записывает данные малоиспользуемых программ на жесткий диск, освобождая операционную память для более активных приложений.
Для загрузки программ DOS в последних версиях Windows предусмотрен виртуальный 8086-й режим (virtual 8086 mode) – дополнение 386 защищенного режима, позволяющий создавать в памяти виртуальный 8086-й компьютер – сегмент оперативной памяти, который "считает себя" самостоятельным 8086-м компьютером.
Виртуальные машины позволяют Windows запускать несколько DOS–программ одновременно.
ОС Windows 3.11 является развитием Windows 3.1 и дополнительно включает возможность для работы в сети, в т.ч. совместное использование файлов и принтеров.
Windows NT впервые появилась летом 1993 г. и является самостоятельной ОС, имеющей сходный графический интерфейс.
Windows 95/98/ME фирма-разработчик Microsoft считает "настоящими" ОС, включающими в себя DOS.
Минимальные требования для работы Windows 3.0:
процессор 80386;
память 2 Мб;
DOS 3.1;
на диске 8Мб минимальная установка, 10 Мб – полная;
видеоадаптер VGA;
Основные файлы:
Win386.exe – управляет виртуальной памятью;
Krnl386.exe – контролирует системные ресурсы (ввод/вывод, многозадачность);
User.exe – обеспечивает работу пользовательского интерфейса;
Gdi.exe – управляет экраном и печатью.
Windows использует для записи конфигурации текстовые файлы. System.ini соответствует файлу CONFIG.SYS в DOS и содержит основные параметры оборудования. Win.ini соответствует файлу AUTOEXEC.BAT в DOS и содержит параметры рабочего стола, выбор принтера, сетевые соединения. В Windows большинство настроек из этих файлов перешли в реестр (registry).
Конфигурирование виртуальной памяти
Виртуальная память позволяет компьютеру использовать жесткий диск для имитации ОЗУ.
Виртуальная память управляется диспетчером виртуальной памяти (Virtual Memory Manager, VMM). Он разделяет память на страницы по 4 Кб. Те страницы, которые редко используются, хранятся в файле подкачки на диске (Swap File): Win386.SWP. Размер файла подкачки не должен превышать объем ОЗУ более, чем втрое.
Временные файлы
Многим приложениям необходимо временное хранение промежуточных данных. Для хранения всех временных файлов (Temporary Files) отводится специальный каталог C:\Windows\Temp. Чтобы назначить другой каталог, надо присвоить его имя переменной окружения TEMP, вставив в AUTOEXEC.BAT команду SET TEMP = C:\TEMP. Временные файлы обычно имеют расширение *.TMP. Периодически их следует удалять.
Иногда наблюдается "странное" поведение компьютера и ОС. Возможны цветные точки или полосы на экране (на следе указателя мыши), периодические сбои после установки новейшего видеодрайвера. Для проверки работы драйвера видеоплаты устанавливайте простейший видеорежим – VGA – 640*480 т., 16 цветов. Если в результате сбои прекратились, то значит, проблема была в видеоплате и ее драйвере.
Операционная система Windows 95
С совершенствованием оборудования стало возможным создание ОС нового поколения – Win 95, пришедшей на смену DOS (Win 3.1).
MS разработала Win 95, а через 3 года выпустила ее обновленную версию Win 98, ответив на развитие Internet. Win 95 отличается от Win 3.1:
установкой устройств;
управлением памяти;
оптимизацией системы и т.д.
Система Win 95 фактически состоит из двух продуктов: усовершенствованной DOS7, использующей спецификацию DPMI, и графического интерфейса защищенного режима. Внешние команды DOS7 расположены в каталоге \Windows\Command. Название DOS7 является неофициальным.
Все функции, ранее имевшиеся в файлах MSDOS.SYS и IO.SYS, собраны в IO.SYS, а MSDOS.SYS стал скрытым текстовым файлом, который применяется для задания параметров загрузки.
Графический пользовательский интерфейс (GUI) Win 95 представляет собой "надстройку" защищенного режима для DOS7.
Все основные параметры, задаваемые в CONFIG.SYS поддерживается непосредственно в Win 95.
Win 95 содержит драйверы защитного режима для большинства оборудования, которые загружаются независимо от CONFIG.SYS и AUTOEXEC.BAT.
Диспетчер виртуальных машин VMM (Virtual Machine Manager) после загрузки создает виртуальную машину для самой Win 95 и еще по одной для каждой задачи DOS.
С VMM работает подключаемая (настраиваемая) файловая система IFS (Installable File System), обеспечивающая поддержку жестких, сетевых и компакт-дисков, а так же длинных имен файлов.
Основные задачи Win 95 выполняют 3 главные компонента. Модуль ядра (Kernel) загружает приложения, управляет вводом/выводом и распределяет виртуальную память. Пользовательский модуль (User) управляет пользовательским вводом с клавиатуры, мыши и прочее. Модуль графического интерфейса (GDI) формирует изображение на экране.
Отличия от Win 3.1:
большинство функций работает в 32-разрядном режиме (в Win 3.1 было в 16-разрядном режиме);
используется вытесненная многозадачность (pre-emptive multitasking), при которой время для каждой программы выделяет ОС (в Win 3.1 была кооперативная многозадачность (cooperative multitasking), т.е. программы занимали и освобождали процессор сами).
Файловая система для Win 95 – FAT16, для Win 95OSR2 и Win 98 – FAT32.
В Win 95 доступ к диску осуществлялся через так называемую виртуальную таблицу размещения файлов VFAT. Это программа – виртуальный драйвер, которая работает в защитном режиме. Win 95 поддерживает длинные имена файлов (LFN).
Главное отличие Win 95 от Win 3.1 – системный реестр Registry, состоящий из двоичных файлов System.dat и User.dat, расположенных в каталоге Windows.
Реестр представляет собой базу данных, которая содержит информацию обо всем оборудовании ПК, сетевых подключениях, пользовательских установках, зарегистрированных типах файлов т.п. Он замещает Config.sys, Autoexec.bat и все Ini-файлы. Однако в Win 95 при загрузке содержимое этих файлов учитывается для обратной совместимости с программами для Win 3.1.
В Win 95 осуществлена поддержка технологии Plug and Play – после установки в компьютер нового оборудования ОС сама обнаруживает и настраивает его для работы
В Win 98 добавлена поддержка последовательной шины USB, шины IEEE 1394, интерфейса ACPI (Advanced Configuration and Power Interface) и DVD (Digital Video Disk).
Кроме многозадачности в Win 95 в отличие от Win 3.1 реализована многопоточность – запуск нескольких процессов в пределах одной задачи.
Имеется расширенная сетевая поддержка TCP/IP, PPP. Для Win 98 добавлено еще много других сетевых протоколов.
Другие усовершенствования:
настраиваемый интерфейс (рабочий стол);
расширенный набор стандартных программ;
возможность прямого кабельного соединения 2 компьютеров с Win 95 через СОМ или LPT порт.
Требования к оборудованию
Минимальные | Реальные |
МП 386 DX | МП 486 DX 66 |
4Мб ОЗУ | 8Мб ОЗУ |
40Мб HDD | 520Мб HDD |
Желательное дополнительное оборудование – модем, сетевая плата, мышь, звуковая плата.
Установка Windows
Различают два вида установки Windows 95
Upgrade(обновление) Win 3.1 до Win 95А;
Чистая установка (clear) для версии Win 95b
При установке Win 95 удалять Win 3.1 не обязательно, можно установить в другой каталог, кроме Windows, например в Win95.
При загрузке Win 95 "Starting Win 95" можно нажать клавишу F8 и появится меню загрузки Win 95, включающее следующие пункты
Normal
Logger
Safe mode
Step by step confirmation
Command prompt only
Safe mode command prompt only
Previous ver. of MS-DOS
Выбрав последний пункт меню, можно загрузить старый DOS.
Кроме клавиши F8 (меню загрузки) для выбора режима загрузки можно использовать другие клавиши
F4 – Previous ver. DOS
F5 – Safe
F6 – Safe – Command
F8 – Step By Step
Другие нововведения Windows 95
рабочий стол пришел на смену диспетчеру программ;
группы программ заменены на меню ПУСК;
значки программ заменены на ярлыки;
папка "принтеры" заменила приложение "PrintManager";
используется термин "Папка" (Folder) – вместо "каталог";
для навигации по файловой системе используется проводник Explorer – вместо файлера File Manager.
Среда визуального программирования Delphi
Системы программирования для среды MS-DOS не обеспечивали поддержку новых возможностей Windows 95. Потому для нее были разработаны новые системы программирования.
Базовая программа обучения информатике включает освоение языка программирования Pascal, в качестве первого и наиболее простого в понимании. Язык Pascal был разработан швейцарцем Никлаусам Виртом в начале 70 годов именно как средство обучения принципам программирования. Обучение языку включает изучение ключевых слов, идентификаторов, типов данных, выражений операторов, структуры и программных моделей. Как показывает практика, начальное обучение языку часто основывается на демонстрации характерных примеров программ и алгоритмов.
Наряду с языком программирования существует понятие среды программирования, т.е. программы или комплекса программ, обеспечивающих удобное редактирование разрабатываемых программ, их компиляцию, сборку в исходный файл, средства отладки, а так же библиотеки подпрограмм.
Для языка Pascal наиболее популярной средой программирования в ОС Windows 95 является пакет Delphi фирмы Borland. Версия Delphi 2 появилась в 1996 г., 3 – в 1997, 4 – в 1998, 5 – в 1999.
Минимальные требования к аппаратуре для программного пакета Delphi 2:
процессор Intel 80486;
оперативная память 8 Мб;
дисковая память 50-120 Мб;
ОС Windows 95, NT.
Исторически пакет Delphi создан позже Visual Basic фирмы Microsoft. Он включает тот же принцип визуального программирования, а также средства работы с базами данных.
С появлением пакета Delphi процесс программирования для ОС Windows стал доступным для всех.
В системе Windows каждая программа выполняется в окне, которое называется окном приложения. В Delphi такое окно называется формой.
Файл исходного кода на языке Object Pascal, файл формы и ряд вспомогательных файлов, нужных для решения задачи, составляют проект. Проект Delphi обычно состоит из следующих файлов:
главного файла проекта – тестового файла с расширением .DPR, который содержит главный программный блок.
файлов программных модулей – текстовых файлов с расширением .PAS, в которых пишут методы обработки событий.
файлов описания форм – файлов с расширением .DFM, описывающих формы с компьютера; в этих файлах запоминаются начальные значения свойств, установок в инспекторе объектов.
Рисунок окна в целом называется формой. Поля, кнопки и все, что располагаются на форме, – компонентами. Компоненты имеют различные положения размеры, цвет, атрибуты текста. Эти признаки, характеризующие компонент называются свойствами.
Для решения задачи может потребоваться одна или несколько форм. Та форма, из которой вызываются все остальные, называются главной. Все другие называются дочерними. Сценарий работы программы описывается в виде набора процессов типа событие-отклик, называемых событийным управлением которые лежат в основе работы всех Windows-приложений.
Работа в среде программирования Delphi состоит из следующих этапов:
предварительное проектирование (описание) пользовательского интерфейса и основных блоков решаемой задачи. Пользовательский интерфейс определяется как рисунок окна с соответствующим управляющими элементами (кнопками, списками);
создание сценария (алгоритма) работы программы, в которой учитывается: что выводится на экран, в какие моменты времени, при каких условиях, как программа завершается;
создание в визуальной среде формы со всеми компонентами и автоматическое синхронное формирование кода соответствующей программы;
доработка исходного кода на языке Object Pascal – написание процедур обработки событий.
компиляция всего исходного кода в визуальной среде по команде программиста и запуск программы на выполнение.
Среда Delphi включает следующие основные блоки:
палитра компонентов (она располагается на панели инструментов (сверху) в виде набора вкладок типа Page Control);
инспектор объектов (он находится на экране слева и содержит свойства объектов);
форма (она обычно располагается правее и ниже);
редактор кода (он находится под формой со смещением (каскадно)).
Процесс визуального проектирования выглядит следующим образом. Из палитры компонентов выбирается компонент (кнопка, поле редактора, надпись и т.п.), затем на форме щелком левой кнопки мыши указывается, куда необходимо поместить выбранный компонент. Если нажать кнопку и, не отпуская, перемещать указатель мыши, то можно определить размер создаваемого компонента. Затем в инспекторе объектов задаются требуемые значения свойств созданного компонента.
Среда Delphi является дальнейшим развитием пакета Турбо-Паскаль и во многом подобна ему по основным клавиатурным сокращениям команд среды.
Описанная выше технология создания программ носит название среда быстрой разработки приложений или RAD (Rapid Application Development).
Следует отметить, что большинство компонентов создаются и поддерживаются средствами самой ОС Windows, а Delphi предоставляет для них интуитивно понятный программисту интерфейс наиболее часто используемых функций ОС.
При необходимости программист может непосредственно вызывать подпрограммы Windows API (Application Programming Interface), используя все возможности, предоставляемые ОС. Для профессионального программирования программисту необходимо понимать функциональные принципы и модели, включенные в архитектуру ОС, проникнуться "образом мышления" Windows и ясно представлять структуру его программного приложения.
Принципы объектно-ориентированного
программирования
Так сложилось что программирование под Windows невозможно без использования объектов. Поэтому язык Object Pascal в среде программирования под Windows представляет собой расширенную реализацию языка Паскаль, включающую средства работы с объектами.
Понятие программного объекта исторически возникло в конце 1960 годов.
Программный объект включает данные и операции над этими данными. Т.е., грубо говоря, его формула: Объект = Данные + Операции.
На этой основе разработана методология объектно-ориентированного программирования, реализованная в языке программирования Object Pascal.
Для программиста объект содержит необходимую информацию, "умеет" выполнять необходимый набор действий и характеризуется набором свойств. Информация или "память" объекта представлена его полями.
То, что объект умеет делать реализуется в виде его внутренних процедур и функций, называемых методами. Через поля и методы объекта программно реализованы его свойства. Чтобы понять суть и назначение объекта необходимо знать его свойства, иногда методы и очень редко поля.
Например, объект "кнопка" имеет свойства цвет. Значение цвета запоминается в одном из полей объекта. При изменении свойств цвет вызывает соответствующий метод, который перерисовывает кнопку. Т.о. свойство имеет первостепенное значение для программиста.
Объект и компоненты
В MS-DOS объекты были идеальным средством разбиения сложных задач на простые. В графической системе Windows программирование пользовательского интерфейса резко усложнилось. Программист значительную часть времени работает как дизайнер элементов интерфейса.
Для облегчения разработки графического пользовательского интерфейса возникала идея визуализации объектов.
Объединение программной части объекта с его визуальным представлением на экране называют компонентом. Компоненты в Delphi – это особые объекты среды разработки, приспособленные к визуальной установке свойств.
Класс объектов – это обобщенное описание множества однотипных объектов.
Объекты, которые являются представителями определенного класса, принято называть экземплярами класса.
Объектно-ориентированное программирование (ООП) характеризуются следующими основными принципами:
инкапсуляция;
наследование;
полиморфизм.
Инкапсуляция – это объединение данных и операций над ними в одно целое. Это позволяет скрыть их внутреннее устройство, обозначить понятие интерфейса объекта повысить надежность и целостность объектов.
Наследование означает, что для создания нового класса, который немного отличается от того, который уже существует, нет необходимости в переименовании заново всех полей, методов и свойств. Новый класс объявляется как потомок (или дочерний класс) имеющегося класса, называемого предком (или родительным классом) с добавлением к нему новых полей, методов и свойств. Т.о. наследование – это порождение новых классов на основе других классов.
Полиморфизм выражается в том, что в производных классах можно изменять работу уже существующих в базовом классе методов. При этом программный код, управляющий объектами родительного класса, остается пригодным для управления объектами дочернего класса без какой-либо модификации.
Классы
Для реализации концепции ООП в язык Object Pascal введены объектные типы данных, которые называют классами. Экземпляры класса – это объекты. Классы определяются в секции type главного блока.
Описание класса начинается со слова Class и заканчивается словом End.
Пример:
Type
TDiskInfo = class
Disk Letter: char;
ProcMin: integer;
Function GetProcFree integer;
Procedure CheckStatus;
End;
Заголовки методов, следующие за списком полей, играют роль предварительных описаний. Программный код для них будет приведен ниже.
Класс обычно описывает сущность, моделируемую в программе.
Рассмотрим пример – измеритель дискового ресурса.
Поля: буква накопителя, прибавляет процент свободного места на диске.
Функция GetProcFree – получает свободный процент. Функция CheckStatus – проверяет на соответствие минимальному значению процента и выдает звуковой сигнал.
Т.о. описание класса – это практически декларация интерфейса управления его объектами. Для использования модуля достаточно знать только эту интерфейсную часть и не требуется знать реализацию методов.
Объекты
Для описания объекта данного класса достаточно выполнить соответствующее объявление в секции Var.
Var DiskInfo: TdiskInfo
Однако объекты в Delphi являются динамическими данными, т. е. DiskInfo – это только ссылка на экземпляр объекта, который еще не существует. Создание объекта и связывание с ним объекта DiskInfo выполняется в программе оператором DiskInfo := TdiskInfo.Create.
Create – это конструктор объекта. Он всегда присутствует в классе и служит для создания и инициализации экземпляров. В памяти выделяется место для полей объекта. Методы работают с любыми экземплярами класса и в памяти не дублируются.
Доступ к полям и методам объекта происходит с помощью уточненных имен
DiskInfo.DriveLetter := "C";
DiskInfo.ProcMin:=5;
Кроме того, как и при работе с записями, возможно использование оператора with.
With DiskInfo do
Begin
DriveLetter := ‘C";
ProcMin:=5;
CheckStatus;
End;
Когда объект становится ненужным программе, он может быть удален вызовом метода Destroy: DiskInfo.Destroy.
Destroy – это деструктор объекта, он присутствует в классе наряду с конструктором и служит для удаления объекта из динамической памяти.
После вызова деструктора переменная DiskInfo становится несвязанной и не должна использоваться для доступа к полям и методам уже несуществующего объекта. Для указания того, что переменной не соответствует объект, ее следует инициализировать значение nil: DiskInfo:= nil;
Для удобства программиста введен преопределенный метод Free, который следует вызывать вместо деструктора Destroy.
Метод Free сам вызывает деструктор Destroy, если DiskInfo не равен nil.
Значение одной объектовой переменной можно присвоить другой. При этом объект не копируется в памяти, а вторая переменная просто связывается с там же объектом, что и первая:
Var
Di1, Di2 :TdiskInfo;
Begin
Di1:= TdiskInfo.Create;
Di2:= Di1;
Di2:= Free.
Методы
Методы – это процедуры и функции, предназначенные для выполнения действия над объектами.
Предварительное объявление методов выполняется при описании класса в секции interface модуля, а их подпрограммы записываются в секции implementation. Возможные реализации методов:
Uses SysUtils;
Function TDiskInt.GetProcTree: Integer;
Var
..Drv: Byte:
Begin
..Drv := Ord(DriverLetter) – Ord("A") – 1;
..Result := DiskFree(Drv) * 100 div DiskSize(drv);
End;
Uses Windows;
Procedure TDiskInt.CheckStatus;
Begin
..If GetProcFree <= ProcMin Then
..Beep;
End;
Внутри методов обращение к полям и другим методам выполняются как к обычным переменным и подпрограммам без уточнения экземпляра объекта. Такое уточнение может быть сделано с помощью псевдопеременной Self.
Конструкторы и деструкторы – это особая разновидность методов, которые создают и разрушают объекты.
Эти методы могут иметь специфические для конкретного класса особенности. Паскаль позволяет переопределить эти методы.
Например.
constructor TdiskInt.Greate;
Begin
..DiskLetter := "C";
..ProcMin:=10;
End;
Конструктор применяется к классу либо объекту. В первом случае создается объект, во втором – только инициализируются его поле.
Свойства
Объявление свойства выполняется с помощью зарезервированного слова Property, например
type TDiskInf = class;
..FProcMin: integer;
..Procedure SetProcMin(Proc: integer);
..Property ProcMin:integer Read FProcMin Write SetProcMin; end;
После слова Read указывается поле или метод, к которому происходит обращение при чтении значения свойства, а после слова Write – поле или метод, к которому происходит обращение при записи свойства.
Атрибуты Read и Write называются спецификаторами доступа. Если один из них опущен, то свойства можно только читать либо только записывать.
Использование метода для получения и установления свойств позволяет проверить корректность значений свойства, сделать дополнительные вычисления, установить значения зависимых полей и т.д.
Контроль и преобразование типов
В программе бывает необходимо проверить, к какому классу принадлежит объект. Для этого каждый объект хранит информацию о своем классе. Такая проверка на тип осуществляется с помощью оператора is. Например:
Var Obj:Tobject;
If Obj is TDiskInf then Exit;
Для преобразования объекта к нужному типу используется оператор as. Например:
With Obj as TDiskInf do CheckStatus
..Другой вариант (обычный)
With TDiskInf(Obj) do Check Status.