Операционная система, программное обеспечение ПК

Реферат - Компьютеры, программирование

Другие рефераты по предмету Компьютеры, программирование

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

Системы разделения времени - вариант многозадачности, при котором у каждого пользователя есть свой диалоговый терминал. Это было сделано, чтобы каждый программист мог отлаживать свою программу в реальном времени. Фактически это была многопользовательская система. Естественно стали возникать проблемы защиты задач друг от друга.

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

В это время также стали бурно развиваться мини-компьютеры (первый был выпущен в 1961г.), на которые была перенесена система MULTICS. Эта работа в дальнейшем развилась в систему UNIX.

Появилось много разновидностей несовместимых UNIX, основные из них были System V и BSD. Чтобы было возможно писать программы, работающие в любой системе UNIX, был разработан стандарт POSIX. Стандарт POSIX определяет минимальный интерфейс системного вызова, который должны поддерживать системы UNUX.

В 1974г. был выпущен центральный процессор Intel 8080, для него была создана операционная система CP/M. В 1977г. она была переработана для других процессоров, например Zilog Z80.

В начале 80-х была разработана система MS-DOS, и стала основной системой для микрокомпьютеров.

В 80-х годах стало возможным реализовать графический интерфейс пользователя (GUI - Graphical User Interface), теория которого была разработана еще в 60-е годы. Первой реализовала GUI корпорация Macintosh.

С 1985 года стала выпускаться Windows, в то время она была графической оболочкой к MS-DOS вплоть до 1995г., когда вышла Windows 95.

Уже тогда было ясно, что DOS с ее ограничениями по памяти и по возможностям файловой системы не может воспользоваться вычислительной мощностью появляющихся компьютеров. Поэтому IBM и Microsoft начинали совместно разрабатывать операционную систему OS/2. Она должна была поддерживать вытесняющую многозадачность, виртуальную память, графический пользовательский интерфейс, виртуальную машину для выполнения DOS-приложений. Первая версия вышла 1987г.

В дальнейшем Microsoft отошла от разработки OS/2, и стала разрабатывать Windows NT. Первая версия вышла в 1993г.

В середине 80-х стали бурно развиваться сети персональных компьютеров, работающие под управлением сетевых или распределенных операционных систем.

Структура операционной системы MS Windows.

Общая структура приложения Windows

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

При написании любых программ для Windows необходим включаемый файл windows.h. В нем содержатся прототипы всех функций Windows, определены типы и структуры данных, глобальные переменные и константы.

Как уже отмечалось выше, приложение Windows содержит, по крайней мере, два принципиально важных модуля:

Функция WinMain();

Функция WndProc().

Функция WinMain

Подобно функции main обычной программы на Си, функция WinMain обязана присутствовать в каждом приложении Windows. Функции WinMain передается управление в начальный момент загрузки приложения. Перечислим действия, выполняемые WinMain:

регистрация класса окна приложения и другие инициализации;

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

запуск цикла обработки сообщений, помещаемых в очередь приложения;

завершение работы приложения при извлечении из очереди сообщения WM_QUIT.

Шаблон функции WinMain выглядит так:

int PASCAL WinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow)

HANDLE hInstance; // дескриптор текущей копии

HANDLE hPrevInstance; // предыдущая копия

LPSTR lpCmdLine; // указатель на командную строку

int nCmdShow; // флаг “окно_открыто/окно_закрыто

{ }

Функция WinMain имеет четыре параметра. Первый параметр hInstance является дескриптором копии приложения. Это число однозначно определяет каждую копию приложения, исполняемую под Windows. Можно одновременно выполнять несколько копий одного приложения, при этом каждой копии будет соответствовать уникальный индекс.

Второй параметр hPrevInstance является дескриптором, определяющим копию данного приложения, которая была последней активной копией. Если параметр hPrevInstance равен нулю, других копий этого приложения не существует.

Третий параметр lpCmdLine это дальний указатель на командную строку, оканчивающуюся нулем. Он позволяет приложению получать данные через командную строку.

Четвертый параметр nCmdShow определяет, как приложение первоначально отображается на дисплее: пиктограммой (nCmdShow = SW_SHOWMINNOACTIVE) или в виде открытого окна (nCmdShow = SW_SHOWNORMAL).

Работа с копиями приложения

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

Такой механизм позволяет экономить оперативную память при запуске нескольких копий, но налагает дополнительные ограничения на код программы. Самым очевидным условием является то, что программа не ?/p>