Любое приложение windows после запуска реализуется как
3. Программа, работающая под управлением Windows, называется:
4. Операционную систему с диска загружает в ОЗУ:
В) загрузчик операционной системы;
Г) сервисная программа.
5. Свойствами Рабочего стола является:
А) оформление Рабочего стола;
Б) ярлыки, папки, файлы, расположенные на Рабочем столе;
В) дата изготовления Рабочего стола;
Г) имя пользователя, работающего с Рабочим столом.
6. Активизировать или выделить файл или папку можно:
А) двойным щелчком мыши;
7. На панели задач находятся:
А) кнопки свернутых программ;
Б) только ярлыки;
Г) кнопка Пуск и значки свернутых и работающих программ.
8. Главное меню открывается:
А) щелчком по значку Мой компьютер;
В) контекстным меню;
Г) щелчком на Панели задач.
А) рабочая область;
Б) основное средство общения с Windows;
В) приложение Windows;
Г) событие Windows.
10. Где расположена строка меню окна:
11. В окне приложения находится:
А) содержимое папки;
Б) работающая программа;
В) файловая структура;
Г) содержимое файла.
12. Диалоговое окно раскрывается:
А) по желанию пользователя или по необходимости приложением;
Б) тройным щелчком мыши на объекте;
В) при щелчке на специальном значке;
Г) только по окончании работы компьютера.
13. Для изменения размеров окна равномерно по ширине и высоте необходимо:
А) потянуть за горизонтальную рамку;
Б) потянуть за вертикальную рамку;
В) потянуть за угол;
Г) потянуть за заголовок.
14. Кнопка используется для:
А) закрытия окна;
Б) восстановления окна;
В) свертывания окна;
Г) разворачивания окон.
15. Комплекс системных и служебных программ называется:
А) текстовый редактор;
Б) графический редактор;
В) операционная система;
16. Утилита – это:
А) операционная система;
Б) прикладная программа;
В) сервисная программа;
Г) базовая система ввода-вывода.
В) программа, тестирующая компьютер после его включения;
18. При включении компьютера процессор обращается к:
19. Включить программу или открыть документ можно:
Б) двойным щелчком;
20. Рабочий стол – это:
Б) центральная часть экрана;
В) активная часть экрана;
21. В главном меню стрелка справа напротив некоторых пунктов:
А) запускает приложение;
Б) сворачивает этот пункт;
В) раскрывает подменю;
Г) открывает окно.
22. Значки свернутых программ находятся:
А) на Рабочем столе;
Б) в Главном меню;
В) на Панели задач;
Г) на панели индикации.
23. Кнопка используется для:
А) закрытия окна;
Б) сворачивания окна;
В) восстановления окна;
Г) изменения размеров окна.
24. Где расположен заголовок окна:
25. Диалоговое окно предназначено для:
А) просмотра содержимого папки;
Б) запроса у пользователя некоторых параметров;
В) работы приложения;
Г) работы с файлами.
26. Чтобы просмотреть содержимое окна, не поместившегося в рабочую область, нужно воспользоваться:
Любое приложение в ОС Windows после запуска реализуется как процесс. При инициализации программы пользователя ОС создает первичный (основной) поток, который исполняет код программы. В первичном потоке используется одна из функций: WinMain, wWinMain, main или wmain. Из основного потока при необходимости может быть запущен один или несколько вторичных потоков, которые выполняются одновременно с основным потоком.
Замечание. Поскольку задачей курса является изучение средств управления ресурсами в ОС Windows, а не вообще программирование под Windows, в большинстве случаев в качестве примеров будут приводиться main-программы.
Создается поток функцией CreateThread, которая имеет следующий прототип:
HANDLE Create Thread ( // тип HANDLE - дескриптор объекта
LPSECURITY ATTRIBUTES IpThreadAttributes, //атрибуты защиты D WORD dwStackSize, //размер стека потока в байтах
LPTHREAD_START ROUTINEIpStartAddress, //адрес функции LPVOID IpParameter, DWORD dw Great ion Flags, LPDWORD IpThreadld);
//адрес параметра //флаги создания потока //идентификатор потока
При успешном завершении функция CreateThread возвращает дескриптор созданного потока и его идентификатор, который уникален для всей системы. В противном случае функция возвращает значение NULL.
Параметры функции CreateThread
Параметр IpThreadAttributes устанавливает атрибуты защиты создаваемого потока. Установка этого параметра в NULL означает, что ОС сама установит атрибуты защиты потока, используя настройки по умолчанию (чаще всего так и делают).
Параметр dwStackSize определяет размер стека, который выделяется потоку при запуске. Если этот параметр равен нулю, то потоку выделяется стек, размер которого по умолчанию равен 1 Мбайт. Это наименьший размер стека, который может быть выделен потоку. Если величина параметра dwStackSize меньше значения, заданного по умолчанию, то все равно потоку выделяется стек размером в 1 Мбайт.
Параметр IpStartAddress указывает на исполняемую потоком функцию. Эта функция должна иметь следующий прототип:
DWORD WLNAPI имя функции потока (LPVOID IpParameter);
Видно, что функции потока может быть передан единственный параметр IpParameter, который является указателем на пустой тип. Это ограничение следует из того, что функция потока вызывается операционной системой, а не прикладной программой. Программы ОС являются исполняемыми модулями, и поэтому они должны вызывать только функции, сигнатура которых заранее определена._____________
Замечание. Функции потоков, вызываемые ОС, носят название функций обратного вызова (см. далее).
В отличие от входной функции первичного потока, имеющей одно из предопределенных имен: WinMain, wWinMain, main или wmain, -функции других потоков могут иметь произвольные имена.
Параметр dwCreationFlags определяет, в каком состоянии будет создан поток. Если значение этого параметра равно нулю (самая распространенная ситуация), то функция потока начинает выполняться сразу после создания потока (но вызывает функцию все равно ОС). Если же значение этого параметра равно CREATE SUSPEND, то поток создается в подвешенном состоянии. В дальнейшем этот поток можно запустить функцией ResumeThread.
Параметр IpThreadid является выходным, его значение устанавливает Windows. Этот параметр должен указывать на переменную, в которую Windows поместит идентификатор потока. Этот идентификатор уникален для всей системы и может в дальнейшем использоваться для ссылок на поток. Идентификатор потока используется системными функциями и редко функциями приложения.
В случае завершения потока сначала уничтожаются все User-объекгы, принадлежащие потоку. После этого объект ядра «поток» переходит в свободное состояние, а счетчик пользователей объекта ядра «поток» уменьшается на единицу.
Замечание. Большинство функций Win32 API возвращает код, по которому можно определить, как завершилась функция: успешно или нет. Если функция завершилась неудачей, то код возврата обычно равен FALSE, NULL или -1. В этом случае функция Win32 API также устанавливает внутренний код ошибки (код последней ошибки, lasterror code) и поддерживается отдельно для каждого потока. Чтобы получить код последней ошибки, нужно вызвать функцию GetLastError, которая имеет следующий прототип:
DWORD GetLastError(VOID);
Эта функция возвращает код последней ошибки, установленной в потоке.
Пример создания потока
volatile int n; // WINAPI - спецификатор соглашения о вызове,
DWORD WINAPI Add(LPVOID iNum); //определяющий порядок передачи
// параметров
cout « "Thread is started." « endl;
cout« "Thread is finished." « endl;
int inc = 10;
HANDLE hThread; // дескриптор потока
DWORD IDThread; //идентификатор потока cout« "n n gads_btm" name="gads_btm">
Правильные ответы выделены зелёным цветом.
Все ответы:
Выберите наиболее точное определение термина "Компьютер"?
(1) компьютер - очень удобное средство для связи человека с внешним миром
(3) с помощью компьютера можно устроить домашний кинотеатр со стереозвуком и выводом изображения не только на экран ПК, но и на широкоформатный телевизор
(4) компьютер - устройство для поиска, сбора, хранения, преобразования и использования информации в цифровой форме
(5) компьютер - это универсальный инструмент, способный выполнять любые задачи
Какой командой можно задать размеры области рисования?
Как называется блок клавиш, запрограммированных на выполнение определённых действий (функций)?
(3) создания скриншотов (снимков экрана или отдельных его фрагментов)
Как называются программы для создания, редактирования и просмотра мультимедийных файлов — растровой, векторной и трехмерной графики?
(4) это программа для уменьшения информационного объема (сжатия) файлов
Как можно включить игры в ОС Windows, которые по умолчанию отключены?
(1) скачать их с официального сайта Microsoft и установить
(3) с помощью команды Пуск->Панель управления->Программы
(4) с помощью команды Пуск->Панель управления->Установка оборудования
Каким инструментом можно нарисовать правильный круг?
Что запрещается делать при работе с компакт дисками?
(4) надписи на дисках делать специальными фломастерами
Какое сочетание клавиш соответствует команде "Вставить"?
Какие из характеристик не имеют отношения к параметрам мыши?
(1) Перо позволяет пользователю на изображение, выделенном "Ножницами", стирать фрагменты
(2) Перо позволяет пользователю на изображение, выделенном "Ножницами", удалять фрагменты
(3) Перо позволяет пользователю на изображение, выделенном "Ножницами", вырезать фрагменты
(4) Перо позволяет пользователю рисовать на изображение, выделенном "Ножницами", дополнительные элементы
С помощью какой программы в составе ОС Windows можно прослушать аудиофайл?
Какую клавишу следует нажать и удерживать при создании линии с наклоном 45 градусов?
Какую клавишу следует нажать в текстовом редакторе для перехода на следующую строку?
Что произойдет, если вы щелкните левой кнопкой мыши один раз ярлыке MS Paint на рабочем столе Windows?
(1) временное хранение информации в виде особого файла
Какой пункт контекстного меню Windows Media Player нужно выбрать, чтобы увидеть весь список музыкальных файлов?
Если в процессе рисования вы совершили ошибочное действие, то такой комбинацией клавиш его можно отменить?
Какой из параметров не является характеристикой монитора?
Что произойдет при щелчке правой кнопкой мыши на значке любой папки, расположенной на вашем рабочем столе?
(2) откроется элемент управления, который называется контекстным меню. В этом меню приведены все действия, которые можно выполнить с данным объектом
Какое действие нужно выполнить для того, чтобы получить информацию о диске, папке или файле?
(1) необходимо в программе Проводник соответствующий объект выделить, а затем из контекстного меню, вызываемого правой кнопкой мыши, выбрать строчку Свойства
(2) необходимо в программе Проводник соответствующий объект выделить, а затем из контекстного меню, вызываемого левой кнопкой мыши, выбрать строчку Свойства
(3) необходимо в программе Проводник соответствующий объект выделить, а затем из контекстного меню, вызываемого двойным щелчком кнопки мыши, выбрать строчку Свойства
(4) необходимо в программе Проводник соответствующий объект выделить, а затем из контекстного меню, вызываемого правой кнопкой мыши, выбрать строчку Открыть
Сегодня уже трудно вспомнить то время, когда не было Windows. Как бы программисты не относились к Windows, нужно признать, что это настоящее, а может быть и будущее компьютерной индустрии.
В системах программирования используется очень мощная и сложная библиотека VCL (Visual Components Library), которая помимо непосредственных абстракций содержит также средства организации взаимодействия с операционной системой. В этой библиотеке находятся компоненты для визуального отображения информации, работы с базами данных, с системными объектами, компоненты для работы с Internet-протоколами, классы для написания своих COM-объектов и многое другое. Модули библиотеки подключаются к компиляции по мере необходимости.
Создавая приложение, программист постоянно решает вопросы взаимодействия программы с операционной системой. Используя систему программирования программист, как правило, избавлен от явного программирования многих действий, т.к. эти действия инкапсулированы в VCL. Однако для понимания поведения и квалифицированного использования компонентов необходимы знания принципов и идей, заложенных в Windows. Кроме того, без знания Windows многие возможности операционной системы могут остаться неиспользованными. Поэтому предлагаемый раздел представляет собой краткое введение в операционную систему Windows.
Выбор обсуждаемых тем обусловлен, в первую очередь, попыткой ответа на вопросы: «Почему операционная система является операционной системой «Windows»(«окна»)?» и «Как из этих «окон» извлечь инструментальные средства разработки программ?».
5.1. Основные концепции Windows
Любую современную программу или программную технологию можно представить как совокупность программных «слоев». Каждый из этих слоев производит свою собственную работу, которая заключается в повышении уровня абстракции производимых операций. Так, самый низший слой (слои) вводит понятия, которые позволяют абстрагироваться от используемого оборудования; следующий слой (слои) позволяет программисту абстрагироваться от сложной последовательности вызовов функций, вводя такое понятие как протокол и т.д. Практически в любом современном программном продукте можно обнаружить и выделить около десятка последовательных слоев абстракции.
Абстракция от оборудования и низкоуровневых протоколов вводится в ядра операционных систем в виде библиотек API (Application Programming Interface). Однако современные тенденции приводят к необходимости абстрагирования и от самих операционных систем, что позволяет переносить программы с одной операционной системы на другую путем простой перекомпиляции (транслируемые программы, в основном, вообще не требуют никаких действий по переносу).
Абстракцию, которая доступна программисту в виде библиотек API, можно назвать базовой. Это самый низкий уровень абстракции, который доступен для прикладного программирования. На уровне ядра системы доступны и более низкие уровни абстракции, однако для их использования необходимо разрабатывать специализированные программы (драйвера, модули). Базовый уровень абстракции (API) предоставляет максимально широкие возможности для прикладного программирования и является наиболее гибким. Однако программирование с использованием API является гораздо более трудоемким и приводит к значительным объемам исходного кода программы, чем программирование с использованием дополнительных библиотек.
Дополнительные библиотеки поставляются со многими средствами разработки с целью уменьшения трудоемкости и сроков разработки программ, что в итоге приводит к повышению их конкурентноспособности. Но применение дополнительных библиотек абстракций приводит к резкому увеличению размеров откомпилированных программ, из-за того что в программу включается код используемых библиотек, к тому же это включение зачастую бывает неэффективным - в программу включаются неиспользуемые участки кода. Кроме того, чем больше уровень абстракции библиотеки, тем сложнее ее код, и тем больше трудностей возникает при решении сложных задач. Приходится учитывать множество взаимосвязей и взаимных влияний отдельных элементов и процессов библиотеки друг на друга. Кроме того, структура и функциональность любой библиотеки обычно рассчитывается на удовлетворение всех потенциально возникающих задач, что приводит к ее громоздкости и неэффективности.
Среди преимуществ операционной системы Windows обычно выделяют следующее:
- графический интерфейс пользователя;
- независимость от аппаратных средств.
5.1.1. Графический интерфейс пользователя. Graphical User Interface 1 (GUI) дает возможность пользователям работать с приложениями максимально удобным способом. Каждое приложение представлено на экране дисплея своим окном, которое выглядит как прямоугольная рабочая область с набором стандартных элементов управления. Окно идентифицируется своим заголовком, имеет кнопки минимизации и максимизации размеров, а также кнопку завершения приложения. Под заголовком обычно находится строка меню для выбора различных команд или режимов работы. Всплывающие окна диалога, вызываемые командами меню, также содержат привычные для пользователя элементы управления, такие как текстовые поля ввода информации, открывающиеся списки и кнопки различных типов. Большинство программ для Windows поддерживают работу и с клавиатурой, и с мышью.
Стандартизация графического интерфейса имеет очень большое значение для пользователя, потому что одинаковый интерфейс экономит его время и упрощает изучение новых приложений. С точки зрения программиста, стандартный вид интерфейса обеспечивается использованием подпрограмм, встроенных непосредственно в Windows, что также приводит к существенной экономии времени при написании новых программ.
5.1.2. Многозадачность. Многозадачные операционные системы позволяют пользователю одновременно работать с несколькими приложениями или несколькими копиями одного приложения. Например, пользователь может открыть систему программирования и набирать в текстовом редакторе код своей программы, одновременно слушая приятную музыку. В это же время программа explorer.exe может заниматься поиском необходимого файла по всему дисковому пространству компьютера.
Многозадачность осуществляется в Windows при помощи процессов и потоков. Любое приложение Windows после запуска реализуется как процесс (process). Грубо говоря, процесс можно представить как совокупность программного кода и выделенных для его исполнения системных ресурсов. При инициализации процесса система всегда создает первичный (основной) поток (thread), который исполняет код программы, манипулируя данными в адресном пространстве процесса.
Из основного потока при необходимости могут быть запущены один или несколько вторичных потоков, которые выполняются одновременно с основным потоком. На самом деле истинный параллелизм возможен только при исполнении программы на многопроцессорной компьютерной системе, когда есть возможность распределить потоки между разными процессорами. В случаях одпроцессорного компьютера или нехватке процессоров для всех потоков операционная система выделяет по очереди некоторый квант времени каждому потоку.
Но каковы соотношения между потоками и окнами? Дело в том, что окно всегда принадлежит некоторому потоку. Поток может быть владельцем одного или нескольких окон, а может быть и вовсе безоконным. Например, если вторичный поток создан для приема данных из COM-порта, то он вполне может обойтись без своего окна.
Наконец, сами окна, принадлежащие потоку, находятся в некоторых иерархических взаимоотношениях. Одно окно является окном верхнего уровня (top-level window) 2 , другие окна называются дочерними (child windows). Дочерние окна подчиняются своим родительским окнам (parent windows). Рисунок 5.1 иллюстрирует эти взаимоотношения.
Соотношение между процессами, потоками, окнами
Если на экране находится несколько окон, то в каждый момент времени только одно из них может быть активным. Активное окно отличается более ярким фоном на строке заголовка, в то время как пассивные окна имеют более тусклый фон заголовка. Говорят, что активное окно имеет фокус ввода. Это означает, что любая информация, вводимая пользователем при помощи клавиатуры или мыши, будет перенаправляться операционной системой именно данному окну.
5.1.3. Управление памятью. Память – это один из важнейших разделяемых ресурсов в операционной системе. Если одновременно запущены несколько приложений, то они должны разделять память, не выходя за пределы выделенного адресного пространства. Так как одни программы запускаются, а другие завершаются, то память фрагментируется. Система должна уметь объединять свободное пространство памяти, перемещая блоки кода и данных.
Система Windows обеспечивает достаточно большую гибкость в управлении памятью. Если объем памяти меньше объема исполняемого файла, то система может загружать исполняемый файл по частям, удаляя из памяти отработавшие фрагменты. Если пользователь запустил несколько копий, которые также называют отдельными экземплярами приложения, то система размещает в памяти только одну копию исполняемого кода, которая используется этими экземплярами совместно. Программы, запущенные в Windows, могут использовать также функции из других файлов, которые называют библиотеками динамической компоновки – DLL (dynamic link libraries). Система Windows поддерживает механизм связи программ во время их работы с функциями из DLL. Даже сама операционная система Windows, по существу, является набором динамически подключаемых библиотек.
Механизмы управления памятью непрерывно совершенствуются по мере развития Windows.
5.1.4. Независимость от аппаратных средств. Еще одним преимуществом Windows является независимость от используемой платформы. У программ, написанных для Windows, нет прямого доступа к аппаратной части таких устройств отображения информации, как, например, экран и принтер. Вместо этого они вызывают функции графической подсистемы, называемой графическим интерфейсом устройства (Graphic Device Interface, GDI).
Функции GDI реализуют основные графические команды при помощи обращения к программным драйверам соотвествующих аппаратных устройств. Одна и та же команда (например, LineTo – нарисовать линию) может иметь различную реализацию в разных драйверах. Эта реализация скрыта от программиста, использующего Windows API, что упрощает разработку приложений.
Таким образом, приложения, написанные с использованием Windows API, будут работать с любым типом дисплея и любым типом принтера, для которых имеется в наличии драйвер Windows. То же самое относится и к устройствам ввода данных – клавиатуре, манипулятору «мышь» и др. Такая независимость Windows от аппаратных средств достигается благодаря указанию требований, которым должна удовлетворять аппаратура, в совокупности с SDK (Software Development Kit – набор разработки программ) и/или DDK (Driver Development Kit – набор разработки драйверов устройств). Разработчики нового оборудования поставляют его вместе с программными драйверами, которые обязаны удовлетворять этим требованиям.
5.1.5. Вызов функций. Windows API поддерживает вызовы свыше двух тысяч функций, которые можно использовать в приложениях. Все основные функции Windows объявлены в заголовочных файлах. Главным заголовочным файлом является windows.h. В этом файле содержится множество ссылок на другие заголовочные файлы.
Вызовы функций Windows API в программе осуществляются аналогично вызовам библиотечных функций систем программирования. Для языков программирования С и С++ основное различие заключается в том, что компоновщик связывает код библиотечных функций с кодом программы на этапе компоновки (статическое связывание), в то время как для функций Windows это связывание откладывается и осуществляется только на этапе выполнения программы (динамическое связывание). Библиотеки динамической компоновки (DLL) содержатся в файлах с расширением .dll. Большая часть этих библиотек расположена в подкаталоге SYSTEM каталога установки Windows.
Операционная система позволяет компилятору использовать библиотеки импорта, поставляемые в составе используемой среды программирования. Библиотеки импорта содержат имена всех функций из динамически подключаемых библиотек, а также ссылки на них. Используя эту информацию, компоновщик размещает в исполняемом файле таблицу, по которой в процессе загрузки программы настраиваются адреса вызываемых функций Windows API.
5.1.6. Объектно-ориентированное программирование. Хотя формально операционная система Windows не является объектно-ориентированной системой, тем не менее, в ней реализована именно объектно-ориентированная идеология. Это наиболее очевидно для базового объекта, с которым имеют дело и операционная система, и программист, и пользователь приложения, - то есть для окна.
Как уже говорилось ранее, окно выглядит как прямоугольная область на экране. Окно получает информацию от клавиатуры или мыши пользователя и выводит графическую информацию на экран.
Пользователь рассматривает окна в качестве объектов и непосредственно взаимодействует с ними, перемещая их по экрану, выбирая команды меню, нажимая различные кнопки и передвигая бегунок на полосах прокрутки.
Можно привести и другие примеры объектов в Windows, к которым относятся, например, многочисленные графические объекты, используемые для рисования, такие как перья, кисти, шрифты, палитря и многие другие объекты.
Независимо от своего типа, любой объект в Windows идентифицируется своим дескриптором, или описателем. Оба эти названия являются переводом английского термина handle. Дескриптор – это своего рода ссылка на объект. Все взаимоотношения программного кода с объектом осуществляются только через его дескриптор. Система Windows тщательно скрывает свои внутренние секреты и не допускает прямогог доступа к внутренним структурам объекта.
Читайте также:
- Как подключить спб в смп банке в приложении
- Можно ли оплатить коммунальные услуги кредитной картой тинькофф через приложение
- Как в приложении где мои дети прослушать вокруг звук
- Как обновить приложение белагропромбанк на телефоне
- Как обновить определения вредоносных программ присутствующих в приложении dr web cureit