Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии 


Классификация файловых систем




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

  • Для носителей с произвольным доступом (например, жёсткий диск): FAT32, HPFS, ext2 и др. Поскольку доступ к дискам в разы медленнее, чем доступ к оперативной памяти, для прироста производительности во многих файловых системах применяется асинхронная запись изменений на диск. Для этого применяется либо журналирование, например в ext3, ReiserFS, JFS, NTFS, XFS, либо механизм soft updates и др. Журналирование широко распространено в Linux, применяется в NTFS. Soft updates — в BSD системах.
  • Для носителей с последовательным доступом (например, магнитные ленты): QIC и др.
  • Для оптических носителей — CD и DVD: ISO9660, HFS, UDF и др.
  • Виртуальные файловые системы: AEFS и др.
  • Сетевые файловые системы: NFS, CIFS, SSHFS, GmailFS и др.
  • Для флэш-памяти: YAFFS, ExtremeFFS, exFAT.
  • Немного выпадают из общей классификации специализированные файловые системы: ZFS (собственно файловой системой является только часть ZFS), VMFS (т. н. кластерная файловая система, которая предназначена для хранения других файловых систем) и др.

Задачи файловой системы

Основные функции любой файловой системы нацелены на решение следующих задач:

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

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

17) - Этапы разработки программ для ЭВМ. Данные и алгоритмы, как модельное отражение реальных объектов. Языки программирования.

В процессе создания любой программы можно выделить несколько этапов.

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

2. Анализ задачи и моделирование — определяются исходные данные и результат, выявляются ограничения на их значения, выполняется формализованное описание задачи и построение (выбор) математической модели, пригодной для решения на компьютере.

3. Разработка или выбор алгоритма решения задачи — выполняется на осно­ве ее математического описания. Многие задачи можно решить различными способами. Программист должен выбрать оптимальное решение. Неточности в постановке, анализе задачи или разработке алгоритма могут привести к скрытой ошибке — программист получит неверный результат, считая его правильным.

4. Проектирование общей структуры программы — формируется модель решения с последующей детализацией и разбивкой на подпрограммы, определяется "архитектура" программы, способ хранения информации (набор переменных, массивов и т. п.).

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

6. Отладка и тестирование программы. Под отладкой понимается устранение ошибок в программе. Тестирование позволяет вести их поиск и, в конечном счете, убедиться в том, что полностью отлаженная программа дает правильный результат. Для этого разрабатывается система тестов — специально подобранных контрольных примеров с такими наборами па­раметров, для которых решение задачи известно. Тестирование должно охватывать все возможные ветвления в программе, т. е. проверять все ее инструкции, и включать такие исходные данные, для которых решение невозможно. Проверка особых, исключительных ситуаций, необходима для анализа корректности. Например, программа должна отказать клиенту банка в просьбе выдать сумму, отсутствующую на его счете. В ответст­венных проектах большое внимание уделяется так называемой "защите от дурака" подразумевающей устойчивость программы к неумелому обращению пользователя. Использование специальных программ — отладчиков, которые позволяют выполнять программу по отдельным шагам, просматривая при этом значения переменных, значительно упрощает этот этап.



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

8. Публикация результатов работы, передача заказчику для эксплуатации.

9. Сопровождение программы — включает консультации представителей заказчика по работе с программой и обучение персонала. Недостатки и ошибки, замеченные в процессе эксплуатации, должны устраняться.

Язык программирования- искусственный язык, являющийся промежуточным при переходе от естественного человеческого языка к машинным двоичным кодам. языки программирования

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

программирование на языках высокого уровня, очевидно, проще, чем на языках низкого

уровня. оно не требует глубоких знаний устройства компьютера и поэтому вполне

доступно людям, не являющимися специалистами в вычислительной технике. однако,

программы, написанные на языках низкого уровня, как правило, отличаются более

высокой скоростью работы, меньшим объемом и более полным использованием ресурсов вычислительной техники. к языкам высокого уровня относятся: фортран, бейсик, паскаль, си, алгол, алмир, ада, си++, delphi, java и сотни других. старейшим языком программирования высокого уровня является фортран (англ. formula translation, перевод формул). он был создан группой программистов

американской фирмы ibm под руководством джона бекуса в 1957 году. несколько позже в европе был разработан язык алгол (англ.algorythmic language, алгоритмический язык). эти языки послужили основой для других новых языков программирования. так, язык бейсик (англ. basic, базовый, или beginner's all-purpose symbolic instruction code, многоцелевой язык символических команд для начинающих) был создан джоном кемени в сша в 1965 году. он представляет собой упрощенную версию фортрана, который оказался сложным для большинства пользователей из-за своей избыточности. Язык алгол послужил основой для не менее популярного языка паскаля, созданного в 1969 году швейцарским математиком никласом виртом. паскаль не сложнее бейсика, но в него изначально были заложены более широкие возможности. дальнейшее развитие язык паскаль получил в виде системы программирования delphi. на украине в 1965 году на базе алгола был создан язык алмир, отличавшийся использованием символики на основе русского, а не английского языка. этот язык считается первым в мире языком программирования на основе национального языка (native language). язык си, в котором использованы элементы паскаля, был создан в 1972 году в американской фирме bell laboratories под руководством дениса ритчи. название языка си связано с тем, что наиболее удачной оказалась его третья версия ( си- третья буква английского алфавита). си считается наиболее эффективным среди языков программирования высокого уровня. с одной стороны он не намного сложнее паскаляи или фортрана, но с другой обладает возможностями, присущими языкам программирования низкого уровня. поэтому си иногда называют языком программирования среднего уровня и используют как при написании прикладных программ, так и при разработке системных. дальнейшим развитием языка си стали языки си++ и java. к языкам низкого уровня отноятся ассемблер и автокод. ассемблер, как язык низкого уровня, фактически состоит из набора команд данной машины, записанных в виде сокращений на английском языке. автокод- вариант ассемблера на основе русского языка.

 

17) - Базовые и структурные типы данных, используемые для описания свойств объектов.





Рекомендуемые страницы:


Читайте также:



Последнее изменение этой страницы: 2016-05-30; Просмотров: 684; Нарушение авторского права страницы


lektsia.com 2007 - 2021 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.009 с.) Главная | Обратная связь