ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.12.2023
Просмотров: 163
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Вопрос 1 - Определение алгоритма
Вопрос 2 - языки программирования
Вопрос 3 - Особенности программирования задач
Вопрос 5 - Инкапсуляция, наследование, полиморфизм
Вопрос 7 - Характеристики, функции, структура MS Win
Вопрос 8 - Характеристики UNIX
Вопрос 18 - Файловая организация внешней памяти. Каталог, дескриптор
Вопрос 20 - Программные средства управления внешними устройствами. Драйвер – назначение и структура
Вопрос 21 - Понятие базы данных (БД), системы управления базами данных (СУБД), банка данных (БнД)
Вопрос 23 - Этапы проектирования БД
Вопрос 24 - Методы проектирования БД
, предоставляя таким образом использоваь в С++ ООП(объектно-ориентированное программирование).
Члены класса- данные-члены и функции-члены, они имеют атрибут видимости. Видимость определяется меткой видимости. Данные- члены класса являются точно таими же переменными, как э-ты структуры. Функции- члены класса(это отличие класса от стр-ры) определены в рамках класса и работают с данными- членами класса. Доступ по умолчанию- privat.
Объединение- union, доступ по умолчанию- public.
Приемы процедурного программирования концентрируются на алгоритмах, используемых для решения задачи. При этом не обращается внимание на структуры данных, задействованные функциями, как на отдельные части организации программы. В противоположность этому, объектно-ориентированное программирование концентрируется на сути задачи, для которой пишется программа: элементы программы разрабатываются в соответствии с объектами в описании задачи. Общий подход ООП состоит в определении набора объектных типов. Объектные типы – это модули, интегрирующие структуры данных, которые представляют эл-ты задачи, с операциями, необходимыми для выработки решения. Как только эти объектные типы определены, создаются образцы объектов для конкретной задачи и вызываются операции для произведения обработки.
В С++ классы служат для представления объектных типов, а функциональные эл-ты предоставляют средства для встраивания операций в тип.
Объектно-ориентированное программирование программ – это расширение использования абстракции данных. Абстрактные типы данных, или объектные типы, не только скрывают структуру данных, но и инкапсулируют и само функционирование как операции над объектами. Суть, объектно-ориентированного программирования состоит в нахождении наиболее подходящих объектных типов.
Хороший способ проектирования объектных типов состоит в поиске существительных (объектов) и глаголов (операций) в описании решаемой задачи. Другой аспект ООП – использование наследования для создания специализированных версий базовых объектных типов. Вместо создания совершенно другого объектного типа для каждой программы можно строить новые типы из общих базовых типов.
Новое в ООП – это рассмотрения программ как реализаций объектных типов, а не как реализаций алгоритмов.
Следующий аспект – состоит в определении родового типа. Допустим, в программе обработки списков есть “списки рабочих”, ”списки телефонов” и ”списки адресов”. Все эти списки с различными типами эл-тов могут быть построены как сущности родового типа список. Родовой тип – вместилище других типов. Хорошее объектно-ориентированное программирование ясно соответствует задаче, которую должна решать программа, упрощая понимание, реализацию и сопровождение программы.
Доступ к полям данных
Определение типа, определяемого пользователем (который в C++ называется class, т.е. класс), специфицирует данные, необходимые для представления объекта этого типа, и множество операций для работы с этими объектами. Определение имеет две части: закрытую (private) часть, содержащую информацию, которой может пользоваться только его разработчик, и открытую (public) часть, представляющую интерфейс типа с пользователем:
class ostream { streambuf* buf; int state; public: void put(char*); void put(long);
void put(double); }
Описания после метки public задают интерфейс: пользователь может обращаться только к трем функциям put(). Описания перед меткой public задают представление объекта класса ostream; имена buf и state могут использоваться только функциями put(), описанными в открытой части.
class определяет тип, а не объект данных, поэтому чтобы использовать ostream, мы должны один такой объект описать (так же, как мы описываем переменные типа int):
ostream my_out;
Считая, что my_out был соответствующим образом проинициализирован его можно использовать например так:
my_out.put("Hello, world\n");
С помощью операции точка выбирается член класса для данного объекта этого класса. Здесь для объекта my_out вызывается член функция put(). Функция может определяться так:
void ostream::put(char* p) { while (*p) buf.sputc(*p++); }
Инкапсуляция – объединение в едином объекте данных и кодов, оперирующих с этими данными. В терминологии объектно-ориентированного программирования (ООП) данные называются членами данных, а коды – объектными методами или функциями-членами.
Инкапсуляция позволяет в максимальной степени изолировать объект от внешнего окружения. Она существенно повышает надёжность разрабатываемых программ, т.к. локализованные в объекте функции обмениваются с программой сравнительно небольшими объёмами данных, причем количество и тип этих данных тщательно контролируется . В результате замена или модификация функций и данных, инкапсулированных в объект, как правило, не влечёт за собой плохо прослеживаемых последствий для программы в целом (в целях повышения защищённости программ в ООП не используются глобальные переменные).
Другим немаловажным следствием инкапсуляции является лёгкость обмена объектами, переноса их из одной программы в другую.
Наследование – свойство объектов передавать другим родственным объектам свои характеристики и другие свойства.
Заимствованная у природы идея наследования решает проблему модификации поведения объектов и придает ООП исключительную силу и гибкость. Наследование позволяет, практически без ограничений, последовательно строить и расширять классы, созданные программистом. –Производные классы (потомки) наследуют все свойства, методы и события своего базового класса (родителя) и всех его предшественников в иерархии классов.
При наследовании базовый класс обрастает новыми атрибутами и операциями. В производном классе обычно объявляются новые члены данных, свойства и методы.
Слово полиморфизм от греческих слов poly (много) и morphos (форма) означает множественность форм. Полиморфизм – это свойство родственных объектов вести себя по разному в зависимости от ситуации, возникающей в момент выполнения программы. В рамках ООП программист может влиять на поведение объекта только косвенно
, изменяя входящие в него методы и придавая потомкам отсутствующие у родителя специфические свойства.
Благодаря полиморфизму, потомки могут перегружать общие методы родителя с тем, чтобы реагировать специфическим образом на одно и то же событие.
Ниже приведена классификация ОС по нескольким наиболее основным признакам.
Особенности алгоритмов управления ресурсами
В зависимости от особенностей использованного алгоритма управления процессором, операционные системы делят на
Поддержка многозадачности. По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
Однозадачные ОС в основном выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером.
Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.
Поддержка многопользовательского режима.По числу одновременно работающих пользователей ОС делятся на:
Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей.
Вытесняющая и невытесняющая многозадачность. Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов:
В первом случае механизм планирования процессов целиком сосредоточен в операционной системе, а во втором - распределен между системой и прикладными программами.
Поддержка многонитевости.
Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями).
Многопроцессорная обработка.Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управлени я ресурсами.
Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.
Особенности аппаратных платформ
По типу аппаратуры различают операционные системы
Среди перечисленных типов компьютеров могут встречаться как однопроцессорные варианты, так и многопроцессорные.
Особенности областей использования
Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:
Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность.
Системы разделения времени призваны исправить основной недостаток систем пакетной обработки - изоляцию пользователя-программиста от процесса выполнения его задач. Каждому пользователю системы разделения времени предоставляется терминал, с которого он может вести диалог со своей программой.
Члены класса- данные-члены и функции-члены, они имеют атрибут видимости. Видимость определяется меткой видимости. Данные- члены класса являются точно таими же переменными, как э-ты структуры. Функции- члены класса(это отличие класса от стр-ры) определены в рамках класса и работают с данными- членами класса. Доступ по умолчанию- privat.
Объединение- union, доступ по умолчанию- public.
Вопрос 4 - ООП
Приемы процедурного программирования концентрируются на алгоритмах, используемых для решения задачи. При этом не обращается внимание на структуры данных, задействованные функциями, как на отдельные части организации программы. В противоположность этому, объектно-ориентированное программирование концентрируется на сути задачи, для которой пишется программа: элементы программы разрабатываются в соответствии с объектами в описании задачи. Общий подход ООП состоит в определении набора объектных типов. Объектные типы – это модули, интегрирующие структуры данных, которые представляют эл-ты задачи, с операциями, необходимыми для выработки решения. Как только эти объектные типы определены, создаются образцы объектов для конкретной задачи и вызываются операции для произведения обработки.
В С++ классы служат для представления объектных типов, а функциональные эл-ты предоставляют средства для встраивания операций в тип.
Объектно-ориентированное программирование программ – это расширение использования абстракции данных. Абстрактные типы данных, или объектные типы, не только скрывают структуру данных, но и инкапсулируют и само функционирование как операции над объектами. Суть, объектно-ориентированного программирования состоит в нахождении наиболее подходящих объектных типов.
Хороший способ проектирования объектных типов состоит в поиске существительных (объектов) и глаголов (операций) в описании решаемой задачи. Другой аспект ООП – использование наследования для создания специализированных версий базовых объектных типов. Вместо создания совершенно другого объектного типа для каждой программы можно строить новые типы из общих базовых типов.
Новое в ООП – это рассмотрения программ как реализаций объектных типов, а не как реализаций алгоритмов.
Следующий аспект – состоит в определении родового типа. Допустим, в программе обработки списков есть “списки рабочих”, ”списки телефонов” и ”списки адресов”. Все эти списки с различными типами эл-тов могут быть построены как сущности родового типа список. Родовой тип – вместилище других типов. Хорошее объектно-ориентированное программирование ясно соответствует задаче, которую должна решать программа, упрощая понимание, реализацию и сопровождение программы.
Доступ к полям данных
Определение типа, определяемого пользователем (который в C++ называется class, т.е. класс), специфицирует данные, необходимые для представления объекта этого типа, и множество операций для работы с этими объектами. Определение имеет две части: закрытую (private) часть, содержащую информацию, которой может пользоваться только его разработчик, и открытую (public) часть, представляющую интерфейс типа с пользователем:
class ostream { streambuf* buf; int state; public: void put(char*); void put(long);
void put(double); }
Описания после метки public задают интерфейс: пользователь может обращаться только к трем функциям put(). Описания перед меткой public задают представление объекта класса ostream; имена buf и state могут использоваться только функциями put(), описанными в открытой части.
class определяет тип, а не объект данных, поэтому чтобы использовать ostream, мы должны один такой объект описать (так же, как мы описываем переменные типа int):
ostream my_out;
Считая, что my_out был соответствующим образом проинициализирован его можно использовать например так:
my_out.put("Hello, world\n");
С помощью операции точка выбирается член класса для данного объекта этого класса. Здесь для объекта my_out вызывается член функция put(). Функция может определяться так:
void ostream::put(char* p) { while (*p) buf.sputc(*p++); }
Вопрос 5 - Инкапсуляция, наследование, полиморфизм
Инкапсуляция – объединение в едином объекте данных и кодов, оперирующих с этими данными. В терминологии объектно-ориентированного программирования (ООП) данные называются членами данных, а коды – объектными методами или функциями-членами.
Инкапсуляция позволяет в максимальной степени изолировать объект от внешнего окружения. Она существенно повышает надёжность разрабатываемых программ, т.к. локализованные в объекте функции обмениваются с программой сравнительно небольшими объёмами данных, причем количество и тип этих данных тщательно контролируется . В результате замена или модификация функций и данных, инкапсулированных в объект, как правило, не влечёт за собой плохо прослеживаемых последствий для программы в целом (в целях повышения защищённости программ в ООП не используются глобальные переменные).
Другим немаловажным следствием инкапсуляции является лёгкость обмена объектами, переноса их из одной программы в другую.
Наследование – свойство объектов передавать другим родственным объектам свои характеристики и другие свойства.
Заимствованная у природы идея наследования решает проблему модификации поведения объектов и придает ООП исключительную силу и гибкость. Наследование позволяет, практически без ограничений, последовательно строить и расширять классы, созданные программистом. –Производные классы (потомки) наследуют все свойства, методы и события своего базового класса (родителя) и всех его предшественников в иерархии классов.
При наследовании базовый класс обрастает новыми атрибутами и операциями. В производном классе обычно объявляются новые члены данных, свойства и методы.
Слово полиморфизм от греческих слов poly (много) и morphos (форма) означает множественность форм. Полиморфизм – это свойство родственных объектов вести себя по разному в зависимости от ситуации, возникающей в момент выполнения программы. В рамках ООП программист может влиять на поведение объекта только косвенно
, изменяя входящие в него методы и придавая потомкам отсутствующие у родителя специфические свойства.
Благодаря полиморфизму, потомки могут перегружать общие методы родителя с тем, чтобы реагировать специфическим образом на одно и то же событие.
Вопрос 6 - Классификация ОС
Ниже приведена классификация ОС по нескольким наиболее основным признакам.
Особенности алгоритмов управления ресурсами
В зависимости от особенностей использованного алгоритма управления процессором, операционные системы делят на
-
многозадачные и однозадачные, -
многопользовательские и однопользовательские, -
на системы, поддерживающие многонитевую обработку и не поддерживающие ее, -
на многопроцессорные и однопроцессорные системы.
Поддержка многозадачности. По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
-
однозадачные (например, MS-ОС, MSX) -
многозадачные (OC EC, OS/2, UNIX, Windows 95).
Однозадачные ОС в основном выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером.
Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.
Поддержка многопользовательского режима.По числу одновременно работающих пользователей ОС делятся на:
-
однопользовательские (MS-ОС, Windows 3.x, ранние версии OS/2); -
многопользовательские (UNIX, Windows NT).
Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей.
Вытесняющая и невытесняющая многозадачность. Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов:
-
невытесняющая многозадачность (NetWare, Windows 3.x); -
вытесняющая многозадачность (Windows NT, OS/2, UNIX).
В первом случае механизм планирования процессов целиком сосредоточен в операционной системе, а во втором - распределен между системой и прикладными программами.
Поддержка многонитевости.
Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями).
Многопроцессорная обработка.Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управлени я ресурсами.
-
асимметричные ОС -
симметричные ОС.
Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.
Особенности аппаратных платформ
По типу аппаратуры различают операционные системы
-
персональных компьютеров, -
мини-компьютеров, -
мейнфреймов, -
кластеров и сетей ЭВМ.
Среди перечисленных типов компьютеров могут встречаться как однопроцессорные варианты, так и многопроцессорные.
Особенности областей использования
Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:
-
системы пакетной обработки (например, OC EC), -
системы разделения времени (UNIX, VMS), -
системы реального времени (QNX, RT/11).
Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность.
Системы разделения времени призваны исправить основной недостаток систем пакетной обработки - изоляцию пользователя-программиста от процесса выполнения его задач. Каждому пользователю системы разделения времени предоставляется терминал, с которого он может вести диалог со своей программой.