Объектно-ориентированное программирование

Автор работы: Пользователь скрыл имя, 26 Сентября 2013 в 21:40, курсовая работа

Краткое описание

В работе рассматриваются три вопроса. В первом мы анализируем устройства ввода звуковой информации, их виды и назначение. При ответе на второй вопрос мы узнаем об организации файловой системы, как обслуживается файловая структура . В третьем вопросе мы рассматриваем объектно-ориентированное программирование в языках С++, Object Pascal, Java, узнаём о предназначении и структуре.
Современный период развития общества характеризуется сильным влиянием на него компьютерных технологий. Средства ввода звуковой информации на компьютер совершенствуются. Объектно-ориентированное программирование – это новый способ подхода к программированию

Содержание

Введение……………..……………………….…………….……………………….…...…..4
1. Устройства ввода звуковой информации.…………………………………………....5
1.1 Микрофон……...…………..………………………..………………………………..5
1.2 Цифровой диктофон.…………………………………………………………….…7
1.3 Модем…………………………………………………………………………………..7
2. Организация файловой системы. Обслуживание файловой структуры…………......10
2.1 Организация файловой системы.…………………………….…………….… ... 10
2.2 Обслуживание файловой структуры…………………………….….…….…….21
3. Объектно-ориентированное программирование…….……………………………..…....24
3.1 Контроль во время компиляции и во время выполнения………………….……25
3.2 Чисто объектно-ориентированные и гибридные языки……………………..25
3.3 Простая объектная модель и ссылочно-объектная модель…………………26
3.4 Классы, объекты и ссылки………………………………………………………….26
3.5 Мусорная корзина…………………………………………………………………….27
3.6 Определение новых классов…………………………………………………………29
3.7 Создание и уничтожение объектов ……………………………………………..30
3.8 Инкапсуляция (Private и Public)……………………………………………………30
3.9 Файлы, юниты и пакеты……………………………………………………………30
3.10 Методы/данные класса и объекта класса……………………………………..31
3.11 Классы и наследование……………………………………………………………..31
3.12 Предок всех классов…………………………………………………………………32
3.13 Доступ к методам базового класса……………………………………………..32
3.14 Совместимость подтипов………………………………………………………..33
3.15 Позднее связывание (и полиморфизм)…………………………………………..33
3.16 Абстрактные методы и классы…………………………………………………33
3.17 Множественное наследование и интерфейсы…………..……………………34
3.18 Другие свойства…………………………………………………………….………35
3.19 Стандарты…………………………………………………………………….……37
3.20 Языки и программное окружение……………………………………………...37
4. Практическая часть ……………………….…………………………...……………38
4.1 Условие задачи…………………………………………………………….…………38
4.2 Блок-схема………………………………………………….…………………………39
4.3 Листинг программы…………………………………………………………………40
Заключение ……………….……….………………………………………………………42
Список использованной литературы…………………………………………………… 43

Вложенные файлы: 1 файл

курсяк.docx

— 942.17 Кб (Скачать файл)

Задачи, решаемые ФС, зависят от способа  организации вычислительного процесса в целом. Самый простой тип  — это ФС в однопользовательских и однопрограммных ОС, к числу  которых относится, например, MS-DOS. Основные функции в такой ФС нацелены на решение следующих задач:

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

Задачи  ФС усложняются в операционных однопользовательских мультипрограммных ОС, которые, хотя и предназначены для работы одного пользователя, но дают ему возможность  запускать одновременно несколько  процессов. Одной из первых ОС этого  типа стала OS/2. К перечисленным выше задачам добавляется новая задача совместного доступа к файлу  из нескольких процессов. Файл в этом случае является разделяемым ресурсом, а значит, файловая система должна решать весь комплекс проблем, связанных  с такими ресурсами. В частности, в ФС должны быть предусмотрены средства блокировки файла и его частей, предотвращения гонок, исключение тупиков, согласование копий и т. п.

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

Еще более сложными становятся функции  ФС, которая работает в составе  сетевой ОС.

Типы файлов

 

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

Обычные файлы, или просто файлы, содержат информацию произвольного характера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ Большинство современных операционных систем (например, UNIX, Windows, OS/2) никак не ограничивает и не контролирует содержимое и структуру обычного файла Содержание обычного файла определяется приложением, которое с ним работает. Например, текстовый редактор создает текстовые файлы, состоящие из строк символов, представленных в каком-либо коде. Это могут быть документы, исходные тексты программ и т. п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют коды символов, они часто имеют сложную внутреннюю структуру, например исполняемый код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов — их собственные исполняемые файлы.

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

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

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

 

Иерархическая структура файловой системы

 

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

Рис. 1 Иерархия файловых систем

 

Граф, описывающий иерархию каталогов, может  быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено  входить только в один каталог (рис. 1 б), и сеть — если файл может входить сразу в несколько каталогов (рис. 1 в). Например, в MS-DOS и Windows каталоги образуют древовидную структуру, а в UNIX — сетевую. В древовидной структуре каждый файл является листом. Каталог самого верхнего уровня называется корневым каталогом, или корнем (root).

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

Частным случаем иерархической структуры  является одноуровневая организация, когда все файлы входят в один каталог (рис. 1 а)

 

 

 

 

Имена файлов

 

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

Простое, или короткое, символьное имя идентифицирует файл в пределах одного каталога. Простые имена присваивают файлам пользователи и программисты, при этом они должны учитывать ограничения ОС как на номенклатуру символов, так и на длину имени. До сравнительно недавнего времени эти границы были весьма узкими. Так, в популярной файловой системе FAT длина имен ограничивались схемой 8.3 (8 символов — собственно имя, 3 символа — расширение имени), а в файловой системе s5, поддерживаемой многими версиями ОС UNIX, простое символьное имя не могло содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлам легко запоминающиеся названия, ясно говорящие о том, что содержится в этом файле. Поэтому современные файловые системы, а также усовершенствованные варианты уже существовавших файловых систем, как правило, поддерживают длинные простые символьные имена файлов. Например, в файловых системах NTFS и FAT32, входящих в состав операционной системы Windows NT, имя файла может содержать до 255 символов.

Примеры простых имен файлов и каталогов:

quest_u1.doc

task-entran. exe

приложение  к СD 254L на русском языке.doc

Installable filesystem manager.doc

В иерархических файловых системах разным файлам разрешено иметь одинаковые простые символьные имена при  условии, что они принадлежат  разным каталогам. То есть здесь работает схема «много файлов — одно простое имя»: Для однозначной идентификации файла в таких системах используется так называемое полное имя.

Полное  имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла. Таким образом, полное имя является составным, в котором простые имена отделены друг от друга принятым в ОС разделителем. Часто в качестве разделителя используется прямой или обратный слеш, при этом принято не указывать имя корневого каталога. На рис. 1 б два файла имеют простое имя mam exe, однако их составные имена /depart/main.exe и /user/anna/ main.exe различаются.

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

Файл  может быть идентифицирован также  относительным именем. Относительное имя файла определяется через понятие «текущий каталог». Для каждого пользователя в каждый момент времени один из каталогов файловой системы является текущим, причем этот каталог выбирается самим пользователем по команде ОС. Файловая система фиксирует имя текущего каталога, чтобы затем использовать его как дополнение к относительным именам для образования полного имени файла. При использовании относительных имен пользователь идентифицирует файл цепочкой имен каталогов, через которые проходит маршрут от текущего каталога до данного файла. Например, если текущим каталогом является каталог /user, то относительное имя файла /user/anna/main.exe выглядит следующим образом: anna/ main.exe.

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

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

 

Монтирование

 

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

Первое  решение состоит в том, что  на каждом из устройств размещается  автономная файловая система, то есть файлы, находящиеся на этом устройстве, описываются деревом каталогов, никак не связанным с деревьями  каталогов на других устройствах. В  таком случае для однозначной  идентификации файла пользователь наряду с составным символьным именем файла должен указывать идентификатор  логического устройства. Примером такого автономного существования файловых систем является операционная система  MS-DOS, в которой полное имя файла включает буквенный идентификатор логического диска. Так, при обращении к файлу, расположенному на диске А, пользователь должен указать имя этого диска: A:\privat\letter\uni\let1 doc.

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

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

Файловая  система, расположенная на системном  диске, назначается корневой. Для  связи иерархий файлов в корневой файловой системе выбирается некоторый  существующий каталог, в данном примере  — каталог man. После выполнения монтирования выбранный каталог man становится корневым каталогом второй файловой системы. Через этот каталог монтируемая файловая система подсоединяется как поддерево к общему дереву.

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

 

 

Две файловые системы до монтирования

 

 

Общая файловая система после монтирования

 

 

 

 

 

 

 

 

 

 

 

Атрибуты файлов

 

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

  • тип файла (обычный файл, каталог, специальный файл и т. п.);
  • владелец файла;
  • создатель файла;
  • пароль для доступа к файлу;
  • информация о разрешенных операциях доступа к файлу;
  • времена создания, последнего доступа и последнего изменения;
  • текущий размер файла;
  • максимальный размер файла;
  • признак «только для чтения»;
  • признак «скрытый файл»;
  • признак «системный файл»;
  • признак «архивный файл»;
  • признак «двоичный/символьный»;
  • признак «временный» (удалить после завершения процесса);
  • признак блокировки;
  • длина записи в файле;
  • указатель на ключевое поле в записи;
  • длина ключа.

Информация о работе Объектно-ориентированное программирование