68902

Понятие системного программирования

Лекция

Информатика, кибернетика и программирование

Например с точки зрения программиста который занимается ядром операционной системы человек создающий компилятор является пользователем системы т. Примеров таких систем можно привести множество: операционная система офисное программное обеспечение системы проектирования и т.

Русский

2014-09-27

56 KB

16 чел.

Лекция 1

Понятие системного программирования

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

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

Основываясь на этом примере, можно увидеть обширность применения понятия "Системное программирование". Но такая неопределенность не может послужить основой для построения курса. Поэтому, мы выберем некоторую область и попытаемся обосновать этот выбор.

Системное программирование – это создание системного программного обеспечения, то есть написание таких программ, которые в совокупности составляют некоторую программную систему либо набор элементов для построения программных систем.

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

Системное программирование для персональных компьютеров

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

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

Рис.1 Пример программы, содержащей команды операционной системы и команды процессора

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

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

Следует также сказать несколько слов о языке, который выбран в качестве демонстрации излагаемого материала. По большому счету, все, о чем будет говориться в курсе, можно исполнить на любом языке программирования (Delphi, C++, Assembler). Однако, мы выберем для показа примеров язык С++ по трем причинам. Во-первых, язык С общепризнанно считается языком системного программирования и является наиболее близким к аппаратуре из языков высокого уровня. Во-вторых, большинство документации по системному программированию (включая наиболее полную документацию - MSDN) написано с его использованием. И, наконец, среда Microsoft Visual C++ (которая лежит в основе практической части курса) и ОС Windows разработаны одной фирмой (Microsoft) и имеют очень хорошую интеграцию.

Краткая характеристика ОС Windows

Каждый пользователь ПК может самостоятельно дать характеристику этой широко распространенной операционной системе. Постараемся выделить самые значительные ее стороны.

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

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

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

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

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

Интерфейс программ API(Application Programming Interface)

Вышеупомянутые функции операционной системы составляют библиотеку, размещаемую в файлах формата DLL в каталоге WINDOWS\SYSTEM\. Данная библиотека называется библиотекой интерфейса программ (API). Данная библиотека даступна для использования всеми приложениями. API делится на специализированные библиотеки, объединенные по функциональному назначению. Например, графический API (получивший название графического интерфейса пользователя - GUI), API сообщений, крипто API и др.

Первая программа

В заключении лекции рассмотрим первую программу, написанную для Win32.

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

WinMain(HINSTANCE hInstance,  HINSTANCE hPrevInstance, LPSTR lpCmdLine, int  nCmdShow)

{// текст программы

  MessageBox(NULL," Hello","Hello",MB_OK);

return 0;

}

Параметры функции следующие:

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

hPrevInstance - описатель приложения, которое запустило данную программу;

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

nCmdShow  - режим запуска приложения (например, определяет будет ли приложение свернуто после запуска).

Данная программа содержит одну лишь функцию - MessageBox, однако, в результате ее выполнения на экране появится окно, содержащее все необходимые атрибуты окна WINDOWS: рамку, строку заголовка, кнопку закрытия. Кроме того, внутри окна будет надпись, кнопка OK, и это окно можно будет передвигать по экрану.

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


 

А также другие работы, которые могут Вас заинтересовать

80884. Муниципальное управление образованием 45.16 KB
  Муниципальная политика в сфере образования строится на основе гос. политики базирующейся на принципах: гуманистический характер образования приоритет общечеловеческих ценностей жизни и здоровья человека свободного развития личности; общедоступность образования адаптивность системы образования к уровням и особенностям развития и подготовки обучающихся воспитанников; светский характер образования в госных и муных образовательных учреждениях; свобода и плюрализм в образовании. актами определяющими задачи ОМС в области образования...
80885. Основы муниципальной молодежной политики 45.24 KB
  Цели и задачи государственной и муниципальной молодежной политики Муниципальная молодежная политика совокупность целей и мер по их реализации принимаемых ОМС в целях создания и обеспечения условий и гарантий для самореализации личности молодого человека и развития молодежных объединений движений и инициатив. Эта политика осуществляется на основе нормативных правовых актов представительных ОМС и в русле госной молодежной политики придавая ей логическую стройность системный и целостный характер и делая демократичными механизмы ее...
80886. Муниципальная экономика и модели муниципального хозяйства 43.46 KB
  Это объясняется тем что объекты муниципальной собственности могут быть бюджето-наполняющими приносящими доходы в бюджет и бюджето-поглощающими не приносящими доходов в бюджет или требующими бюджетных средств на их содержание в размере превышающем получаемый доход. Поэтому ключевая задача муниципальной экономической политики состоит в оптимизации соотношений между объемом бюджетных услуг и потребностью в имуществе и в финансовых средствах. Конкурентный рынок муниципальных услуг настолько развит что задачей муниципальной власти является...
80887. Порядок формирования и организация работы представительного органа местного самоуправления 43.11 KB
  ПО МС может осуществлять свои полномочия в случае избрания не менее двух третей от установленной численности депутатов. Заседание его не может считаться правомочным если на нем присутствует менее 50 от числа избранных депутатов. ПО поселения состоит из депутатов избираемых на муниципальных выборах. ПО муниципального района: 1 может состоять из глав поселений входящих в состав муниципального района и из депутатов ПО указанных поселений избираемых ПО поселений из своего состава в соответствии с равной независимо от численности населения...
80888. Организационная структура местной администрации 46.1 KB
  Организационная структура местной администрации. В современной муниципальной практике типичными звеньями организационной структуры местной администрации являются: глава администрации; его заместители по сферам муниципальной деятельности среди которых могут быть один или два первых заместителя; структурные подразделения различных типов которые могут находиться в подчинении главы администрации одного из его заместителей или в соподчинении между собой например отдел в составе управления; коллегиальные совещательные органы: коллегия...
80889. Статус, полномочия Главы Муниципального Образовния и основания прекращения его полномочий 41.75 KB
  выборах либо входит в состав ПО МО с правом решающего голоса и исполняет полномочия его председателя либо возглавляет местную администрацию; 3 в случае избрания ПО МО исполняет полномочия его председателя; 4 не может одновременно исполнять полномочия председателя ПО МО и полномочия главы местной администрации; Глава МО в пределах полномочий: 1 представляет МО в отношениях с ОМС других МО ОГВ гражданами и организациями без доверенности действует от имени МО; 2 подписывает и обнародует в порядке установленном уставом МО нормативные...
80890. Процесс управления муниципальными услугами 44.09 KB
  К муниципальным услугам относится весь комплекс жилищнокоммунальных транспортных в пределах территории поселения бытовых торговых образовательных медицинских культурных досуговых и других услуг. К муниципальным услугам следует относить и такие как обеспечение общественного порядка обустройство и содержание территории обеспечение ее экологического и санитарного благополучия и т. Даже то что мы называем комплексным социальноэкономическим развитием МО означает не что иное как целенаправленное изменение ситуации в сторону...
80891. Организация и планирование работы местной администрации 43.83 KB
  Основным документом определяющим организацию деятельности местной администрации является ее регламент утверждаемый главой администрации. Наряду с регламентом работы администрации важную роль в организации ее деятельности играют нормативные документы регламентирующие деятельность отдельных структурных подразделений и исполнителей. В соответствии с положениями и профилем своей работы структурные подразделения администрации: курируют работу подведомственных предприятий организаций и учреждений; осуществляют сбор информации анализ...