Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2222222222222222.docx
Скачиваний:
4
Добавлен:
24.09.2019
Размер:
20.39 Mб
Скачать

  1. Понятия прикладного и системного программирования.

Существует 2 типа программирования:

1)Системное программирование- программирование на низком уровне, привязанное к аппаратному обеспечению, предназначенное для решения задач взаимодействия с определенным оборудованием (драйверы, некоторые части ОС).

2) Прикладное программирование представляет собой использование различных программных средств для создания прикладных программ или приложений.

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

Драйвер— компьютерная программа, с помощью которой другие программы (обычно операционная система) получают доступ к аппаратному обеспечению некоторого устройства.

Многозадачность – возможность одновременной работы нескольких программ.

Задачи операционной системы:

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

2)Загрузка программ в оперативную память и их выполнение.

3)Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).

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

5)Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, оптические диски и др.), организованным в той или иной файловой системе.

6)Обеспечение пользовательского интерфейса.

7)Сохранение информации об ошибках системы.

Интерфейс программирования приложений (иногда интерфейс прикладного программирования) (англ. application programming interface, API [эй-пи-ай])[1] — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах. Используется программистами для написания всевозможных приложений.

Приложение бывает оконным и консольным. Консольное приложение представляет собой функцию мэин, в которой последовательно выполняется вызов функций. Ему недоступны графические стандарты, в полной мере не управляет ОС. Оконное приложение может использовать все возможности ОС, приложение управляется ОС. С точки зрения ОС окном является любой графический элемент. Каждое из окон может дать какое-либо сообщение дочернему окну и наоборот. Когда приложение создает окно, одновременно с этим создается структура, в которую система складывает сообщение – очередь. 2 вида сообщений: 1 от пользователя, 2 сообщения, которые программа ставит в очередь сама.

2.Понятие о библиотеках, api, фреймворках.

Библиотека в программировании (от англ. library) — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО).

Динамические библиотеки - Часть основной программы, которая загружается в ОС по запросу работающей программы в ходе её выполнения (Run-time), т.е. динамически (Dynamic Link Library, DLL в Windows). Один и тот же набор функций (подпрограмм) может быть использован сразу в нескольких работающих программах, из-за чего они имеют ещё одно название — библиотеки общего пользования (Shared Library). Если динамическая библиотека загружена в адресное пространство самой ОС (System Library), то единственная копия может быть использована множеством работающих с нею программ, что положительно сказывается на степени использовании ресурса ОЗУ. Динамические библиотеки могут содержать в себе как критические для работы программы части, так и дополнительные функции. Дополнительным плюсом такого подхода является то, что динамическая библиотека может быть использована в качестве плагина (Plug-ins), расширяющего функциональность программы. Минусом является то, что в случае, если модуль, который содержит в себе критическую часть, отсутствует, программа не сможет продолжить работу. Динамические библиотеки хранятся обычно в определенном месте и имеют стандартное расширение. Например, файлы .library в логическом томе Libs: в AmigaOS; в Microsoft Windows и OS/2 файлы библиотек общего пользования имеют расширение .dll; в UNIX‐подобных ОС — обычно .so; в Mac OS — .dylib. При написании программы программисту достаточно указать транслятору (компилятору или интерпретатору) языка программирования, что следует подключить нужную библиотеку и использовать функцию из неё. Ни исходный текст, ни исполняемый код функции в состав программы на данном этапе не входит. 2 способа подключения библиотек: статическая линковка, динамический вывод процедур. Для статической линковки необходим следующий набор файлов: .lib, .dll, .h. .lib – библиотека, необходимая среде разработки для того, чтобы составить приложению определенную .dll библиотеку и сопоставить выводом функций определенные участки кода в этой библиотеке. .h- заголовочный файл, содержащий информацию о структурах данных и прототипах функций, содержащихся внутри библиотек. DLL hell (DLL-кошмар, буквально: DLL-ад) — тупиковая ситуация, связанная с управлением динамическими библиотеками DLL в операционной системе Microsoft Windows.

Интерфейс программирования приложений (иногда интерфейс прикладного программирования) (англ. application programming interface, API [эй-пи-ай])[1] — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах. Используется программистами для написания всевозможных приложений. API определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована. Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика, которые он может вертеть и дёргать. Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию — высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.API библиотеки функций и классов включает в себя описание сигнатур и семантики функций. Сигнатура функции — часть общего объявления функции, позволяющая средствам трансляции идентифицировать функцию среди других. В различных языках программирования существуют разные представления о сигнатуре функции, что также тесно связано с возможностями перегрузки функции в этих языках. Семантика функции — это описание того, что данная функция делает. Семантика функции включает в себя описание того, что является результатом вычисления функции, как и от чего этот результат зависит. Практически все операционные системы (Unix, Windows, Mac OS, и т. д.) имеют API, с помощью которого программисты могут создавать приложения для этой операционной системы. Главный API операционных систем — это множество системных вызовов.

Фреймворк (англ. framework, Каркас) — в информационных системах структура программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. В отличие от библиотек, которые объединяют набор подпрограмм близкой функциональности, фреймворк содержит в себе большое количество разных по назначению библиотек. Это каркас программной системы (или подсистемы). Может включать вспомогательные программы, библиотеки кода, язык сценариев и другое ПО, облегчающее разработку и объединение разных компонентов большого программного проекта. Обычно объединение происходит за счёт использования единого API. Одно из главных преимуществ, при использовании каркасных приложений, состоит в том, что такие приложения имеют стандартную структуру. Фреймворк определяется как множество конкретных и абстрактных классов, а также определений способов их взаимоотношения. Конкретные классы обычно реализуют взаимные отношения между классами. Абстрактные классы представляют собой точки расширения, в которых каркасы могут быть использованы или адаптированы.

  1. Организация памяти и работа с ней в современных операционных системах.(в разработке =\)

  1. Принципы работы приложений в современных ОС. Механизм обработки сообщений.

Windows основана на передаче сообщений ( message ). В основе системы лежит механизм, транслирующий практически каждое событие в сообщение. Типичное приложение построено на основе цикла сообщении , который принимает эти сообщения и отправляет их к соответствующим функциям — обработчикам сообщений. Хотя сообщения передаются приложениям, они адресованы окнам, представляющим некую абстрактную сущность, через которую взаимодействуют пользователь и приложение. Передача сообщений - это способ, при помощи которого в Windows организован обмен информацией между отдельными подсистемами, приложениями или между отдельными модулями одного и того же приложения. Каждое Windows-приложение построено на основе цикла сообщений. Цикл сообщении повторно вызывает функции GetMessage или PeekMessage и получает сообщения, которые затем передает оконной процедуре через функцию DispatchMessage. Сообщение представляет собой структуру данных. Сообщения могут быть отправлены или посланы приложению. Отправленные сообщения помещаются в очередь сообщений, из которой функции GetMessage или PeekMessage получают эти сообщения. В п po тивоположность этому посылка сообщения означает немедленный вызов оконной процедуры, обходя очередь сообщений и цикл сообщений. Приложение может иметь несколько циклов сообщений в зависимости от его требований. И хотя всегда можно обойтись одним цик-юм сообщений, несколько циклов помогут разработать лучше организованный и более удобный для последующих изменений программный код. Windows содержит в себе системную очередь сообщений, куда последние могут поступать от драйверов устройств ввода/вывода или от приложений, а также несколько очередей сообщений для каждого приложения. По мере генерации приложениями, сообщения попадают вначале в общую системную очередь и затем распределяются в очереди отдельных приложений. Действие, выполненное над любым органом управления, приводит к генерации соответствующего сообщения и помещения этого сообщения в очередь приложения. Приложение Windows постоянно анализирует содержимое своей очереди сообщений. Когда в очереди появляется сообщение от какого-либо органа управления, приложение выполняет соответствующее действие. В очередь сообщений приложения Windows заносит сообщение, содержащее идентификатор использованного органа управления. Приложение анализирует очередь сообщений и выполняет обработку сообщений. В Windows используется многоуровневая система сообщений. Сообщения низкого уровня вырабатываются передаются операционной системе Windows, которая на их основе формирует сообщения более высокого уровня. Каждое приложение занимается обработкой своей очереди сообщений, а Windows заботится о том, чтобы все сообщения попадали в нужную очередь.

Соседние файлы в предмете Программирование