Главная » Статьи для тега "которые"

ПРОЦЕДУРЫ ОБРАБОТКИ ОШИБОК

Добавлено Дата: 18 July, 2012 категория: Basic

Эту тему повышенной трудности при первом чтении можно пропустить, пока не будет  прочитана часть III.

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

Читать »

ОБЩЕЕ ОПРЕДЕЛЕНИЕ СИСТЕМЫ БАЗ ДАННЫХ

Добавлено Дата: 16 July, 2012 категория: SQL, Базы данных

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

Читать »

Технология сопоставления с образцами

Добавлено Дата: 28 June, 2012 категория: Haskell

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

«переменная». Это даже  не синоним словосочетания «формальный  параметр», как это могло показаться после изучения приводимых до этого момента определений функций. Образцы являются частью  технологии сопоставления с образцами, которая используется для выполнения вычислительных  процессов внутри функций в части  означивания формальных параметров и сравнения фактических величин (значений) с определёнными шаблонами.

Читать »

Типы данных

Добавлено Дата: 17 June, 2012 категория: Haskell

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

Читать »

Изоморфные типы

Добавлено Дата: 14 June, 2012 категория: Haskell

В языке Haskell, который, как известно, является нестрогим, ошибочные вычисления и вычисления, которые  не могут быть  остановлены (например, бес-

конечная рекурсия без точки выхода), обозначаются символом (?). Этот символ

обозначает неопределённое значение, при этом система типизации построена так, что любой алгебраический тип данных неявно включает в множество своих зна-

Читать »

Импорт сторонних модулей

Добавлено Дата: 3 June, 2012 категория: Haskell

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

Читать »

Объекты VFS и их структуры данных

Добавлено Дата: 16 May, 2012 категория: Ядро Linux

Виртуальная  файловая  система  (VFS)  объектно-ориентированна3 . Общая  файловая  модель  представлена  набором  структур  данных.  Эти  структуры  данных  очень похожи  на объекты.  Так  как ядро  программируется строго  на языке  С,  то,  при  отсутствии  возможностей  прямой  поддержки  парадигм  ООП  в языке  программирования,  структуры данных  представляются  структурами  языка  С.  Структуры  содержат как указатели  на элементы  данных,  так и указатели  на функции, которые  работают с этими данными.

Читать »

Обработка исключений

Добавлено Дата: 16 May, 2012 категория: Haskell

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

Читать »

Объекты kobjec t

Добавлено Дата: 16 May, 2012 категория: Ядро Linux

Сердцем модели представления устройств являются объекты kobject, которые представляются  с  помощью  структуры struc t   kobject , определенной в  файле

<linux/kobject.h> . Тип  kobjec t  аналогичен классу Objec t таких объектно-ориентированных языков программирования, как С# и Java. Этот тип определяет общую функциональность, такую как счетчик ссылок, имя, указатель на родительский объект, что позволяет создавать объектную иерархию.

Читать »

Экспортируемые символы

Добавлено Дата: 15 May, 2012 категория: Ядро Linux

При загрузке модули динамически компонуются с  ядром. Так  же  как  и  в случае динамически загружаемых бинарных файлов пространства пользователя,  в  коде  модулей  могут  вызываться только те  функции ядра   (основного образа или  других  модулей), которые явно  экспортируются для  использования. В ядре  экспортирование осуществляется с  помощью специальных директив EXPORT_SYMBOL ()   и  EXPORT_ SYMBOL_GPL().

Читать »

Получение исходного кода ядра

Добавлено Дата: 14 May, 2012 категория: Ядро Linux

Исходный программный код последней версии  ядра  всегда доступен  как  в виде полного архива  в формате tar (tarball), так и виде  инкрементной заплаты  по адресу http://www.kernel.org.

Если  нет  необходимости по  той  или  другой  причине работать  со  старыми версиями ядра, то  всегда  нужно  использовать самую  последнюю версию.  Архив kernel.or g — это то место, где можно  найти  как само ядро, так и заплаты  к нему от ведущих  разработчиков.

Читать »

Классы типов и экземпляры классов

Добавлено Дата: 13 May, 2012 категория: Haskell

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

Читать »

Принцип работы и реализация

Добавлено Дата: 13 May, 2012 категория: Ядро Linux

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

Читать »

Уровень обобщенной файловой системы

Добавлено Дата: 12 May, 2012 категория: Ядро Linux

Общий  интерфейс  для всех типов файловых  систем возможен  только благодаря тому, что в ядре реализован  обобщающий  уровень,  который  скрывает низкоуровневый интерфейс  файловых систем. Данный  обобщающий  уровень позволяет  операционной  системе Linux поддерживать  различные  файловые  системы,  даже если эти файловые  системы существенно  отличаются друг от друга своими функциями  и особенностями  работы. Это в свою очередь становится  возможным  благодаря тому, что подсистема VFS реализует общую файловую модель,  которая  в состоянии  представить общие функции  и особенности  работы потенциально  возможных файловых систем. Конечно,  эта модель имеет уклон в сторону файловых систем в стиле Unix (что представляют собой файловые  системы  в стиле Unix,  будет рассказано  в следующем разделе).  Несмотря  на это в ОС Linux поддерживается  довольно большой диапазон  различных файловых систем.

Читать »

Конфигурационные параметры отладки ядра

Добавлено Дата: 10 May, 2012 категория: Ядро Linux

Существует  несколько конфигурационных  параметров, которые помогают в отладке  и тестировании кода ядра и которые включаются во премя  компиляции. Эти параметры доступны в пункте  Kernel  hacking  меню  редактора конфигурации ядра. Все эти параметры зависят  от параметра CONFIG_DEBUG_KERNEL. Для разработки кода  ядра  следует  включать только  те параметры, которые необходимы.

Читать »