Современные компьютеры невозможно себе представить без наличия в них операционной системы - средства взаимодействия между пользователем и компьютером (программами и «железными» компонентами). Сегодня их можно насчитать десятки. Рассмотрим вопрос о том, что собой представляют главные объекты операционной системы на примере ОС Windows.
Форма организации взаимодействия между пользователем и операционной системой
На современном этапе развития компьютерной индустрии большинство разработчиков ОС используют методы объектно-ориентированного программирования и графические интерфейсы, позволяющие максимально упростить работу пользователя или обеспечить быстрый доступ к необходимой информации или настройкам.
Если ранее применялись ОС с пакетным вводом данных, когда нужно было задавать системе исполнение определенной команды путем ее ручного ввода, сегодня, благодаря наличию графического интерфейса, такая задача существенно упростилась. Пользователь не вводит команды, а нажимает кнопки для организации какого-то события, активации процесса, подтверждения исполнения программ, изменения настроек и т. д. Но какие же существуют объекты операционной системы, какую роль они исполняют, каковы их свойства, какие действия с ними можно производить? Рассмотрим основные понятия.
Основные объекты операционной системы
В свое время корпорация Microsoft при разработке первой версии Windows отказалась от использования организации работы, применяемой в DOS-системах. Само название ОС Windows свидетельствовало о том, что она состояла из окон в графическом представлении, что позволяло использовать так называемый режим многозадачности с быстрым переключением между программами, параметрами и настройками. Однако даже не в окнах суть.
Сегодня можно найти множество различных классификаций, однако в самом широком понимании объекты операционной системы можно представить в виде следующего списка:
- графический интерфейс («Рабочий стол», окна, панели, меню, ярлыки и пиктограммы, переключатели, кнопки, интерактивные оболочки);
- файловая организации файлов и каталогов);
- приложения и документы (исполняемые элементы, программы или их совокупность, файлы, созданные в программах).
Интерфейс
Одно из главных мест отводится интерфейсу. Первое, что видит пользователь после старта ОС, - «Рабочий стол» и «Панель задач», на которых размещаются кнопки, ярлыки и другие вспомогательные элементы. Свойства объектов этого типа таковы, что с их помощью можно получить доступ практически ко всем функциям и возможностям ОС.
Особое внимание в этом плане отведено кнопке «Пуск» и вызываемому при нажатии на нее одноименному меню. Здесь расположено большинство ссылок на программы и основные настройки. Обратите внимание, что физически приложения находятся в другом месте, а в меню присутствуют только ярлыки, представленные в виде названий приложений или настроек с пиктограммами.
Пиктограммы или иконки как объекты операционной системы представляют собой небольшие графические изображения. Отличие ярлыков от пиктограмм состоит в том, что ярлыки, кроме названия программы или имени файла, описывают еще и некоторые свойства приложений, настроек или документов, а также указывают на месторасположение самого файла, подлежащего открытию. Для описания файлов используется еще указание на программу, с помощью которой его и можно открыть.
Меню являются средствами выбора действий пользователя. Условно их можно разделить на основные и контекстные (те, которые вызываются правым кликом). Однако организация основных меню входит в состав объектов, называемых окнами. И меню можно отнести также к элементам управления, поскольку именно в них пользователю предлагается выбор определенного действия.
Окна: разновидности и доступные операции с ними
Окна - это основные объекты (Windows или любой другой компьютерной ОС). В них имеется основное пространство, где отображается информация, или, как его еще называют, рабочая область. Также представлены специальные панели с основными меню, содержащими наборы команд или действий, кнопки быстрого доступа к тем или иным функциям, линейки прокрутки и т. д.
Действия с объектами операционной системы этого типа состоят в том, что их размеры можно уменьшать или увеличивать, сворачивать и разворачивать, производить быстрое переключение между программами, изменять масштабирование рабочей области и т. д. Кроме того, сами окна бывают основными и диалоговыми, что обеспечивает более тесное взаимодействие между программой и пользователем.
Элементы управления
И тут отдельно стоит остановиться на элементах управления. Главным элементом, если не учитывать планшетные ПК или смартфоны, а также сенсорные экраны, является курсор, при помощи которого можно перемещаться по всему интерфейсу, вызывать какие-то действия, производить изменение размеров и т. д.
Курсор «привязан» к мыши в стационарных ПК или к тачпаду в ноутбуках. В общих чертах курсор - это не только указывающий элемент. Например, при растяжении окон он меняет свой значок. Таким образом, даже по изменению состояния курсора всегда можно определить, какое именно действие производится или предполагается произвести в данный момент. Опять же, если на экране появляются песочные часы или вращающийся свидетельствует о том, что в данный момент происходит исполнение какого-то процесса и до завершения доступа к нему не будет.
Еще один управляющий элемент - экранная клавиатура, которая получила основное распространение на планшетах и смартфонах, когда подключение «железной» клавиатуры не предусмотрено.
Файлы и папки
Наконец, самым большим классом являются каталоги (директории, папки) и файлы, которые в совокупности образуют единую структуру, называемую файловой системой.
Файлы и папки с точки зрения компьютерной системы между собой не различаются, поскольку даже директории сами по себе являются файлами без расширения и также занимают определенное место на диске (причем для пустой папки может быть указан нулевой размер в файловом менеджере, но на самом деле это не так). Просто для удобства группирования сходных по каким-то признакам файлов и используется методика их объединения в один каталог.
В физическом плане, несмотря на то что некоторые файлы вроде бы присутствуют в какой-то директории, они могут располагаться в совершенно разных местах жесткого диска. Свойства объектов операционной системы этого типа определяются в первую очередь размером (занимаемым местом на жестком диске), местоположением в файловой структуре, типом и т. д.
И наверняка все знают, какие именно действия можно производить с обоими типами. Работа с объектами представленными в виде отдельных файлов или целых каталогов, сводится не только к простейшим операциям вроде копирования, удаления, переименования или перемещения. Для файлов, например, предусмотрен просмотр, редактирование, открытие в определенной программе (часто с возможностью самостоятельного выбора приложения) и многие другие действия.
Вместо итога
Но в целом это лишь краткий обзор основных объектов любой ОС. Заметьте, здесь мы не рассматривали организацию того же системного реестра только по той простой причине, что сегодня можно встретить и ОС, в которых он отсутствует как таковой (Linux), а структура ключей очень схожа с организацией файлов и папок. Собственно, и сами ключи являются файлами. Кстати сказать, приложения и программы - это тоже файлы или совокупность файлов, подлежащих выполнению средствами операционной системы.
Тема 1. 2. Концепция типа данных
Понятие переменной
В любой программе, обрабатывающей данные, в качестве операндов в выражениях используются переменные. Часто определяют переменную как пару “имя” - “значение”. Имени соответствует адрес участка памяти, выделенной переменной, а значением является содержимое этого участка.
Переменная - это именованная область памяти компьютера, выделяемая для хранения конкретных данных, значение которых в общем случае может изменяться в ходе выполнения программы.
Описание переменных в программе имеет следующий формат:
Рассмотрим каждый элемент этого описания.
Имя – идентификатор;
Каждая переменная, константа, функция, каждое выражение в программе, написанной на языке высокого уровня, имеет определенный тип . Данные разных типов хранятся и обрабатываются по-разному.
Тип данных определяет:
Внутреннее представление данных в памяти компьютера;
Операции и функции, которые можно применять к объектам этого типа;
Множество значений, которое могут принимать величины этого типа.
Все типы языка С++ делят на основные и производные (составные) .
Основные типы данных
В языках программирования к основным типам данных относят типы данных для хранения чисел (целочисленный тип, вещественный тип) и символов.
В языке С++ определено семь основных типов данных: шесть - для представления целых, вещественных, символьных и логических величин и один специальный тип void. Для описания шести основных определены следующие ключевые слова:
int –целый,
char, wchar_t – символьные,
float, double – вещественные,
bool – логический.
Кроме того, существуют четыре спецификатора, уточняющих внутренне представление и диапазон значений стандартных типов:
short - короткий,
long - длинный,
signed - знаковый (старший бит интерпретируется как знаковый, 0 – положительное, 1-отрицательное),
unsigned - беззнаковый.
Целые, символьные и вещественные типы называют также арифметическими типами.
Примеры описания переменных:
int a,b;//две переменные целого типа
float summa;// переменная вещественного типа
Рассмотрим основные типы подробнее.
Под переменнуюцелого типа (int) отводится 2 или 4 байта (для 16-разрядного и 32-разрядного процессор соответственно). short int – 2 байта, long int – 4 байта. Константам приписывается тип в соответствии с их видом. По умолчанию целые константы интерпретируются как short и signed. Для изменения этой трактовки можно использовать суффиксы – L,l,U,u. Например, 8L, 71u.
Символьный тип (char)– 1 байт. (Для wchar_t – зависит от реализации, обычно 2 байта).
Рассмотрим внутреннее представление диапазон значений на примере типа char.
Самое маленькое беззнаковое число длиной в один байт 00000000 2 =0
Самое большое беззнаковое число длиной в один байт 11111111 2 =255.
Следовательно, тип беззнаковый тип char позволяет хранить 256 различных символа с кодами от 0 до 255.
Самое маленькое положительное число длиной в один байт 00000000 2 =0
Самое большое положительное число длиной в один байт 01111111 2 =127
Самое большое отрицательное число длиной в один байт 11111111 2 =-1
Самое маленькое отрицательное число длиной в один байт 10000000 2 =-128
Напомним, что для получения абсолютного значения отрицательного числа его инвертируют, то есть заменяют 0 на 1, 1 на 0 и добавляют единицу. Например, отрицательное число 10000000. Инвертируем – 01111111. Прибавляем 1
Следовательно, тип знаковый тип char позволяет хранить 256 различных символа с кодами от -128 до 127.
Логический тип (bool) - 1 байт. Значение величин этого типа либо истина (true или 1 ), либо ложь (false или 0 ). Любое нулевое значение интерпретируется как ложь, любое ненулевое -как истина.
Вещественный тип (float, double, long double). Внутренне представление вещественных величин состоит из двух вещей – мантиссы и порядка. Например 148,35 можно представать как 1,4835*10 2 , где 1,4835 – мантисса, 2- порядок. Мантисса >1 и < 2. Длинна мантиссы определяет точность числа, а длина порядка его диапазон. Для float отводится 4 байта = 1 знак + 8 порядок + 23 мантисса). Так как старшая цифра мантиссы =1, то она не хранится. Для double отводится 8 байт = 1 знак+11 порядок+52 мантисса. Константы вещественного типа по умолчанию имеют тип double. Для его изменения можно использовать суффиксы F,f,L,l.
Тип void – это специальный тип, множество значений этого типа пусто. Он не используется при описании переменных.
Кроме того, использую спецификатор typedef можно вводить удобные описания для сложных типов. Например,
typedef unsigned char UC;
UC symbol; // symbol это переменная типа UC, то есть беззнаковая символьная
Продолжим рассматривать синтаксис описания переменных:
[класс памяти]тип имя1 [иницал._выражение1], имя2 [иницал._выражение2],…;
Для того чтобы понять, что такое класс памяти введем несколько определений.
Каждый программный объект в частности переменная характеризуется такими параметрами как
Область действия;
Область видимости;
Время жизни (продолжительность существования).
Область действия - это часть программы, в которой идентификатор может быть использован для доступа к переменной. Если переменная описана внутри блока, то она называется локальной и область ее действия от точки описания и до конца блока. Если переменная описана вне блока, то переменная называется глобальной и область ее действия – от точки описания и до конца файла.
Область видимости - это часть программы, из которой возможен обычный доступ к переменной. Чаще всего область видимости совпадает с областью действия, но бывают исключение - если во вложенных блоках используются переменные с одинаковыми имена (внешняя переменная в этом случае невидима).
#include