Форум МГОУ Прокопьевск

Объявление

Кому нужна квартира на сутки ночь час обрашяйтесь к TRojan

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум МГОУ Прокопьевск » Московский Государственный Открытый Университет » Вопроссы и ответы по госуа ПОМОГАЕМ ВСЕ


Вопроссы и ответы по госуа ПОМОГАЕМ ВСЕ

Сообщений 1 страница 13 из 13

1

Вопросы для Госэкзамена
по специальности 220400 "Программное обеспечение ВТ и АС"

Теоретические вопросы

ОПЕРАЦИОННЫЕ СИСТЕМЫ

1. Классификация ОС. Требования, предъявляемые к ОС.
2. Понятие процесса. Состояние процессов. Алгоритмы планирования процессов
3. Понятие прерывания. Виды прерываний. Механизм прерываний.
4. Память. Типы адресов. Виды распределения памяти.
5. Понятие файла. Структура файла. Реализация файлов.
6. Файловая система FAT.

7. Файловая система NTFS.

БАЗЫ ДАННЫХ

8. Модели систем управления данными: сетевая, иерархическая, реляционная модель.
9. Реляционная модель данных. Базовые понятия. Отношения и свойства отношений. Составляющие реляционной модели данных.
10. Стадии и этапы разработки базы данных.
11. Трехуровневая архитектура схем баз данных в СУБД.
12. Нормализация таблиц при проектировании баз данных. Нормальные формы (1НФ, 2НФ, 3НФ, НФБК).
13. Функции СУБД.
14. Архитектура клиент-сервер. Распределенные базы данных.

СЕТИ ЭВМ И ТЕЛЕКОММУНИКАЦИИ

15. Понятие о способах коммутации в распределенных вычислительных системах (коммутация каналов, коммутация пакетов)
16. Аппаратура передачи данных (модемы)
17. Характеристики локальных вычислительных сетей типа ETHERNET
18. Структуры распределенных  вычислительных систем (топология, физические и логические элементы сетей ЭВМ)
19. Характеристики транспортного, сеансового, представительского и прикладного уровней модели взаимодействия открытых систем.
20. Характеристика физического, канального и сетевого уровней модели взаимодействия открытых систем.
21. Эталонная модель взаимодействия открытых систем (назначение, преимущества и недостатки управления, распределенного по уровням)

СТРУКТУРЫ И АЛГОРИТМЫ ОБРАБОТКИ ДАННЫХ

22. Связное представление данных в памяти. Связные линейные списки (односвязные, двусвязные, многосвязные). Машинное представление связных линейных списков. Реализация операций над связными линейными списками.
23. Структура данных типа СТЕК. Логическая структура стека. Машинное представление стека и реализация операций.
24. Структуры данных типа очередь. Логическая структура очереди. Машинное представление очереди FIFO и реализация операций. Очереди с приоритетами.

25. Графы. Основные определения. Машинное представление графов в последовательной памяти и связной памяти.
26. Деревья. Основные определения. Логическое представление и изображение деревьев. Бинарные деревья. Машинное представление деревьев в памяти ЭВМ. Алгоритмы прохождения деревьев.
27. Сравнительный анализ алгоритмов поиска: линейный, двоичный.
28. Улучшенные методы сортировки. Сортировка Шелла, Хоара, улучшенная сортировка выбором. Сортировка с помощью дерева.

ФУНКЦИОНАЛЬНОЕ И ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ

29.      Отношение и предикат Кванторы. Язык логики предикатов. Аксиомы. Правила вывода. Свойства исчисления предикатов.
30. Предваренная, скулемовская и клаузальная формы. Логическое следование. Унификация. Алгоритм унификации. Исчисление метода резолюций.
31. Предикаты. Предложения: факты и правила. Запросы (цели). Переменные. Анонимные переменные. Конкретизация переменных. (Prolog).
32. Секции программы. Основные стандартные домены. (Prolog).
33. Основные принципы поиска с возвратом. Управление поиском решений (предикаты fail и !). (Prolog).
34. Рекурсивные функции. Лямбда – исчисление Черча.
35. Вывод в программах на Лисп. Определение ростых функций в Лисп – программах.

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

36. Этапы разработки ПО с использованием объектно-ориентированного подхода. Анализ, проектирование, эволюция и модификация.
37. Инкапсуляция, наследование, полиморфизм. Классы, объекты и отношения между ними. Диаграммы логического уровня.
38. Концепции информационного моделирования. Создание моделей на языке UML.
39. Динамическое поведение объектов. Состояния, события, сигналы и сообщения. Модели взаимодействия объектов.
40. Компоненты и интерфейсы. Диаграммы физического уровня.
41. Объявление и реализация классов на языке Паскаль.
42. Принципы создания компонент в визуальных средах разработки.

ТЕОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ И МЕТОДЫ ТРАНСЛЯЦИИ

43. Трансляторы, компиляторы и интерпретаторы: определение, общая схема работы. Варианты взаимодействия блоков транслятора.
44. Лексический анализатор. Методы лексического анализа.
45. Синтаксический разбор. Классификация методов синтаксического разбора.
46. Общие принципы   нисходящего и восходящего методов разбора.
47. СУ схемы перевода. Синтаксически-управляемые трансляции и генерация промежуточной программы.
48. Формы внутреннего представления программы.
49. Атрибутные схемы перевода (атрибутные трансляционные грамматики, атрибутные автоматы)

ТЕОРИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ

50. Формальные языки и грамматики. Классификация грамматик по Хомскому. Контекстно-свободные грамматики и их свойства. Распознаватели. Конечные автоматы.
51. Программы и схемы программы. Формы стандартных схем программ. Интерпретация и свойства стандартных схем программ.
52. Трансляция схем программ. Обогащенные и структурированные схемы.
53. Верификация программ. Методы доказательства правильности программ. Правила верификации К.Хоара.
54. Методы формального определения семантики.
55. Сети Петри. Моделирование процессов на основе сетей Петри.

АРХИТЕКТУРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

56. Типы структур вычислительных машин и систем.
57. Факторы, определяющие развитие архитектуры вычислительных систем.
58. Архитектура системы команд.
59. Стековая архитектура системных команд.
60. Организация шин.
61. Организация памяти ЭВМ.
62. Основные направления в архитектуре процессоров.

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

63. Жизненный цикл программного обеспечения. Модели жизненного цикла ПО: каскадная, спиральная. Стадии, фазы работы жизненного цикла.
64. Структура внешнего описания ПС. Качество ПО. Критерии и примитивы качества.

65. Процессы управления разработкой ПС. Структура управлением разработки ПС. Планирование составления расписания по разработки ПС. Аттестация ПС.
66. Методы разработки структуры ПС. Восходящая разработка ПС. Нисходящая разработка. Конструктивный подход. Архитектурный подход разработки ПС.
67. Объекты и отношения в программировании. Сущность объектного подхода к разработке программных средств. Особенности объектного подхода к разработке внешнего описания программного средства.
68. Принципы и виды отладки программного средства. Автономная отладка программного средства. Комплексная отладка программного средства.
69. Инструментальные среды разработки и сопровождения программных средств и принципы их классификации. Основные классы инструментальных сред разработки и сопровождения программных средств.

ЧЕЛОВЕКО-МАШИННОЕ ВЗАИМОДЕЙСТВИЕ

70. Понятие информационного взаимодействия. СЧМ.
71. Интерфейс. Пользовательский интерфейс. Классификация пользовательских интерфейсов.
72. Парадигмы интерфейсов.
73. Диалог. Типы диалогов. Формы диалога.
74. Основные компоненты графических пользовательских интерфейсов.
75. Эргономические требования, предъявляемые к дизайну пользовательских интерфейсов.

ПРАВОВОЕ ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

76. Виды объектов авторского права. Виды авторских прав. Программы для ЭВМ и базы данных, как объект авторского права.
77. Правовые вопросы организации Интернет-сайта.
78. Правовые вопросы, возникающие при использовании электронной почты.
79. Объекты патентного права.

Практические задания.

ОПЕРАЦИОННЫЕ СИСТЕМЫ

1. Занести в BL  наименьшее число из отрезка от 2 до К на которое не делится число N, при условии что 2 K<N
2. Вычислить факториал числа 8!
3. Дан массив типа word размерностью n. Найти сумму всех его элементов не превышающих заданного m, далее вывести ее на экран.
4. Найти в массиве максимальный элемент и его индекс. Вывести на печать.
5. Подсчитать сколько раз в массиве встречается заданный элемент N. Вывести кол-во данных вхождений.

СЕТИ ЭВМ И ТЕЛЕКОММУНИКАЦИИ

6. Написать HTML код для отображения в браузере таблицы:

1 2
3 4
5 6 7

7. Рассчитать сетевую маску для IP адреса 192.168.0.37/28. 
Указать сколько компьютеров может входить в такую подсеть.
Написать 2 зарезервированных адреса у которых в поле номер компьютера расположены все 0 или все 1.
8. Написать код css файла в котором при помощи псевдоклассов описывается поведение ссылок отличное от стандартного.
9. Указать к какому классу относится каждый из перечисленных IP адресов:
192.168.0.15
127.0.0.1
112.0.0.15
167.58.13.21

СТРУКТУРЫ И АЛГОРИТМЫ ОБРАБОТКИ ДАННЫХ

10. Составить программу,  которая формирует очередь, добавляя в нее произвольное количество компонент.
11. Составить программу,  которая формирует стек,  добавляя в него произвольное количество компонент.
12. Написать процедуру, которая выполняет вставку компоненты по заданному ключу.

ФУНКЦИОНАЛЬНОЕ И ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ

13. На языке Пролог вычислить сумму ряда целых чисел от 1 до n.
14. Написать программу на языке Пролог, реализующую телефонный справочник. В справочнике содержится следующая информация о каждом абоненте: имя и телефон. Реализовать вывод всей информации из справочника, поиск телефона по имени, поиск имени по телефону.
15. Написать программу на языке Пролог для реверса списка. Например: [1, 2, 3]  [3, 2, 1].
16. Написать программу на языке Пролог для удаления из списка целых всех элементов, равных 0. Например: [1, 0, 2, 0, 3, 0]  [1, 2, 3].

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

17. Построить программу на языке Си++ для работы со структурой Дата. Программа должна обеспечивать простейшие функции для работы с данными структурами: увеличение/уменьшение на 1 день, ввод значений, вывод значений.
18. Построить программу на языке Си++  для работы со структурами - строками. Структура должна включать следующие поля: массив для хранения строки, его длину, время создания строки. Программа должна обеспечивать простейшие функции для работы с данными структурами: изменение строки, вывод строки, нахождение подстроки в строке.
19. Построить программу на языке Си++  для работы со структурами - квадратными матрицами. Структура должна включать соответствующие поля: порядок, набор коэффициентов. Программа должна обеспечивать простейшие функции для работы с данными структурами: ввод матрицы, транспонирование матрицы, вывод матрицы в удобной форме.

ТЕОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ И МЕТОДЫ ТРАНСЛЯЦИИ

20. Выполнить вычисление функции ПЕРВ для правил следующей грамматики G=(N,T,P,S):
N={A,B,C.D}
          T={a,b,c,d,g,f}
           P = {(1) <A>  ? <B><C>c,
(2) <A>  ? g<D><B>,
(3) <B>  ? ,
(4) <B>  ? b<C><D><E>,
(5) <C>  ? <D>a<B>,
(6) <C>  ? ca,
(7) <D>  ? ,
(8) <D>  ? d<D>,
(9) <E>  ? g<A>f,
(10) <E>  ? c  }.

21. Выполнить вычисление функции СЛЕД для нетерминалов грамматики G=(N,T,P,S):
N={A,B,C.D}
          T={a,b,c,d,g,f}
           P = {(1) A  ?BCc,
(2) A ? gDB,
(3) B ?,
(4) B ? bCDE,
(5) C ? DaB,
(6) C ?ca,
(7) D ?,
(8) D ?dD,
(9) E ? gAf,
(10) E ? c }.

ТЕОРИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ

22. Построить приведенную грамматику
G={N,T,P,S}
Т={a,b,c}
N={I,T,M,K}
P: {IT
II+T
II-T
TM
TT*M
TT/M
M(I)
MK
Ka
Kb
Kc}

23. Эквивалентны ли грамматики с правилами:
    S ? AB и S ? AS | SB | AB     A ? a | Aa A ? a     B ? b | Bb B ? b   
24. Ввести строку из произвольных ASCII-символов и произвести её сортировку под управлением функциональных клавиш: <F1> - по возрастанию; <F2> - по убыванию; <F10> - завершение программы. Работу программы отобразить на экране. (Assembler).
25. Ввести строку из произвольного числа символов. Выполнить преобразование символьной строки в её цифровой аналог на основе ASCII-кодов, после чего произвести поиск максимального кода. Работу программы отобразить на экране. (Assembler).

0

2

ВОПРОСС 1.1
Классификация ОС

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

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

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

Поддержка многозадачности. По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
однозадачные (например, MS-DOS, MSX) и
многозадачные (OC EC, OS/2, UNIX, Windows 95).

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

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

Поддержка многопользовательского режима. По числу одновременно работающих пользователей ОС делятся на:
однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);
многопользовательские (UNIX, Windows NT).

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

Вытесняющая и невытесняющая многозадачность. Важнейшим разделяемым ресурсом является процессорное время. Способ распределения процессорного времени между несколькими одновременно существующими в системе процессами (или нитями) во многом определяет специфику ОС. Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов:
невытесняющая многозадачность (NetWare, Windows 3.x);
вытесняющая многозадачность (Windows NT, OS/2, UNIX).

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

Поддержка многонитевости. Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями).

Многопроцессорная обработка. Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.

В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.

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

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

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

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

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

Сетевая ОС имеет в своем составе средства передачи сообщений между компьютерами по линиям связи, которые совершенно не нужны в автономной ОС. На основе этих сообщений сетевая ОС поддерживает разделение ресурсов компьютера между удаленными пользователями, подключенными к сети. Для поддержания функций передачи сообщений сетевые ОС содержат специальные программные компоненты, реализующие популярные коммуникационные протоколы, такие как IP, IPX, Ethernet и другие.

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

Другие требования предъявляются к операционным системам кластеров. Кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой. Наряду со специальной аппаратурой для функционирования кластерных систем необходима и программная поддержка со стороны операционной системы, которая сводится в основном к синхронизации доступа к разделяемым ресурсам, обнаружению отказов и динамической реконфигурации системы. Одной из первых разработок в области кластерных технологий были решения компании Digital Equipment на базе компьютеров VAX. Недавно этой компанией заключено соглашение с корпорацией Microsoft о разработке кластерной технологии, использующей Windows NT. Несколько компаний предлагают кластеры на основе UNIX-машин.

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

Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:
системы пакетной обработки (например, OC EC),
системы разделения времени (UNIX, VMS),
системы реального времени (QNX, RT/11).

Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени. Для достижения этой цели в системах пакетной обработки используются следующая схема функционирования: в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется мультипрограммная смесь, то есть множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие отличающиеся требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины; так, например, в мультипрограммной смеси желательно одновременное присутствие вычислительных задач и задач с интенсивным вводом-выводом. Таким образом, выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающейся в системе, то есть выбирается "выгодное" задание. Следовательно, в таких ОС невозможно гарантировать выполнение того или иного задания в течение определенного периода времени. В системах пакетной обработки переключение процессора с выполнения одной задачи на выполнение другой происходит только в случае, если активная задача сама отказывается от процессора, например, из-за необходимости выполнить операцию ввода-вывода. Поэтому одна задача может надолго занять процессор, что делает невозможным выполнение интерактивных задач. Таким образом, взаимодействие пользователя с вычислительной машиной, на которой установлена система пакетной обработки, сводится к тому, что он приносит задание, отдает его диспетчеру-оператору, а в конце дня после выполнения всего пакета заданий получает результат. Очевидно, что такой порядок снижает эффективность работы пользователя.

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

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

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

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

К таким базовым концепциям относятся:
Способы построения ядра системы - монолитное ядро или микроядерный подход. Большинство ОС использует монолитное ядро, которое компонуется как одна программа, работающая в привилегированном режиме и использующая быстрые переходы с одной процедуры на другую, не требующие переключения из привилегированного режима в пользовательский и наоборот. Альтернативой является построение ОС на базе микроядра, работающего также в привилегированном режиме и выполняющего только минимум функций по управлению аппаратурой, в то время как функции ОС более высокого уровня выполняют специализированные компоненты ОС - серверы, работающие в пользовательском режиме. При таком построении ОС работает более медленно, так как часто выполняются переходы между привилегированным режимом и пользовательским, зато система получается более гибкой - ее функции можно наращивать, модифицировать или сужать, добавляя, модифицируя или исключая серверы пользовательского режима. Кроме того, серверы хорошо защищены друг от друга, как и любые пользовательские процессы.
Построение ОС на базе объектно-ориентированного подхода дает возможность использовать все его достоинства, хорошо зарекомендовавшие себя на уровне приложений, внутри операционной системы, а именно: аккумуляцию удачных решений в форме стандартных объектов, возможность создания новых объектов на базе имеющихся с помощью механизма наследования, хорошую защиту данных за счет их инкапсуляции во внутренние структуры объекта, что делает данные недоступными для несанкционированного использования извне, структуризованность системы, состоящей из набора хорошо определенных объектов.
Наличие нескольких прикладных сред дает возможность в рамках одной ОС одновременно выполнять приложения, разработанные для нескольких ОС. Многие современные операционные системы поддерживают одновременно прикладные среды MS-DOS, Windows, UNIX (POSIX), OS/2 или хотя бы некоторого подмножества из этого популярного набора. Концепция множественных прикладных сред наиболее просто реализуется в ОС на базе микроядра, над которым работают различные серверы, часть которых реализуют прикладную среду той или иной операционной системы.
Распределенная организация операционной системы позволяет упростить работу пользователей и программистов в сетевых средах. В распределенной ОС реализованы механизмы, которые дают возможность пользователю представлять и воспринимать сеть в виде традиционного однопроцессорного компьютера. Характерными признаками распределенной организации ОС являются: наличие единой справочной службы разделяемых ресурсов, единой службы времени, использование механизма вызова удаленных процедур (RPC) для прозрачного распределения программных процедур по машинам, многонитевой обработки, позволяющей распараллеливать вычисления в рамках одной задачи и выполнять эту задачу сразу на нескольких компьютерах сети, а также наличие других распределенных служб.

0

3

1.2
Процессы

Процессы

Процессом обычно называют экземпляр выполняемой программы.

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

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

- Адресное пространство - диапазон адресов виртуальной памяти, которым может пользоваться процесс;

- Исполняемая программа и данные, проецируемые на виртуальное адресное пространство процесса.
Потоки

Процессы инертны. Отвечают же за исполнение кода, содержащегося в адресном пространстве процесса, потоки. Поток (thread) - некая сущность внутри процесса, получающая процессорное время для выполнения. В каждом процессе есть минимум один поток. Этот первичный поток создается системой автоматически при создании процесса. Далее этот поток может породить другие потоки, те в свою очередь новые и т.д. Таким образом, один процесс может владеть несколькими потоками, и тогда они одновременно исполняют код в адресном пространстве процесса. Каждый поток имеет:

- Уникальный идентификатор потока;

- Содержимое набора регистров процессора, отражающих состояние процессора;

- Два стека, один из которых используется потоком при выполнении в режиме ядра, а другой - в пользовательском режиме;

- Закрытую область памяти, называемую локальной памятью потока (thread local storage, TLS) и используемую подсистемами, run-time библиотеками и DLL.

Планирование потоков

Чтобы все потоки работали, операционная система отводит каждому из них определенное процессорное время. Тем самым создается иллюзия одновременного выполнения потоков (разумеется, для многопроцессорных компьютеров возможен истинный параллелизм). В Windows реализована система вытесняющего планирования на основе приоритетов, в которой всегда выполняется поток с наибольшим приоритетом, готовый к выполнению. Выбранный для выполнения поток работает в течение некоторого периода, называемого квантом. Квант определяет, сколько времени будет выполняться поток, пока операционная система не прервет его. По окончании кванта операционная система проверяет, готов ли к выполнению другой поток с таким же (или большим) уровнем приоритета. Если таких потоков не оказалось, текущему потоку выделяется еще один квант. Однако поток может не полностью использовать свой квант. Как только другой поток с более высоким приоритетом готов к выполнению, текущий поток вытесняется, даже если его квант еще не истек.

Квант не измеряется в каких бы то ни было единицах времени, а выражается целым числом. Для каждого потока хранится текущее значение его кванта. Когда потоку выделяется квант процессорного времени, это значит, что его квант устанавливается в начальное значение. Оно зависит от операционной системы. Например, для Win2000 Professional начальное значение кванта равно 6, а для Win2000 Server - 36.
Это значение можно изменить вызвав Control Panel - > System -> Advanced -> Performance options. Значение "Applications" - как для Win2000 Professional; "Background Services" - как для Win2000 Server.
Или напрямую в ключе реестра HKLM Win32PrioritySeparation.

Всякий раз, когда возникает прерывание от таймера, из кванта потока вычитается 3, и так до тех пор, пока он не достигнет нуля. Частота срабатывания таймера зависит от аппаратной платформы. Например, для большинства однопроцессорных x86 систем он составляет 10мс, а на большинстве многопроцессорных x86 систем - 15мс.

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

Планирование в Windows осуществляется на уровне потоков, а не процессов. Это кажется понятным, так как сами процессы не выполняются, а лишь предоставляют ресурсы и контекст для выполнения потоков. Поэтому при планировании потоков, система не обращает внимания на то, какому процессу они принадлежат. Например, если процесс А имеет 10 готовых к выполнению потоков, а процесс Б - два, и все 12 потоков имеют одинаковый приоритет, каждый из потоков получит 1/12 процессорного времени.

Приоритеты

В Windows существует 32 уровня приоритета, от 0 до 31. Они группируются так: 31 - 16 уровни реального времени; 15 - 1 динамические уровни; 0 - системный уровень, зарезервированный для потока обнуления страниц (zero-page thread).

При создании процесса, ему назначается один из шести классов приоритетов:

Real time class (значение 24),

High class (значение 13),

Above normal class (значение 10),

Normal class (значение 8),

Below normal class (значение 6),

и Idle class (значение 4).

В Windows NT/2000/XP можно посмотреть приоритет процесса в Task Manager.
Above normal и Below normal появились начиная с Win2000.

Приоритет каждого потока (базовый приоритет потока) складывается из приоритета его процесса и относительного приоритета самого потока. Есть семь относительных приоритетов потоков:

Normal: такой же как и у процесса;

Above normal: +1 к приоритету процесса;

Below normal: -1;

Highest: +2;

Lowest: -2;

Time critical: устанавливает базовый приоритет потока для Real time класса в 31, для остальных классов в 15.

Idle: устанавливает базовый приоритет потока для Real time класса в 16, для остальных классов в 1.

В следующей таблице показаны приоритеты процесса, относительный и базовый приоритеты потока.
Приоритет потока
Класс процесса
Класс процесса
   
Idle class
Below normal class
Normal class
Above normal class
High class
Real time class

1    
Idle
Idle
Idle
Idle
Idle

2    
Lowest        

3    
Below ...        

4
Idle class
Normal
Lowest        

5    
Above ...
Below ...        

6
Below normal class
Highest
Normal
Lowest    

7    
Above ...
Below ...    

8
Normal class    
Highest
Normal
Lowest    

9        
Above ...
Below ...    

10
Above normal class    
Highest
Normal    

11        
Above ...
Lowest

12        
Highest
Below ...

13
High class        
Normal

14            
Above ...

15            
Highest

15    
Time critical
Time critical
Time critical
Time critical
Time critical

16            
Idle

17            

18            

19            

20            

21            

22            
Lowest

23            
Below ...

24
Real time class            
Normal

25            
Above ...

26            
Highest

27            

28            

29            

30            

31            
Time critical

Привязка к процессорам

Если операционная система выполняется на машине, где установлено более одного процессора, то по умолчанию, поток выполняется на любом доступном процессоре. Однако в некоторых случаях, набор процессоров, на которых поток может работать, может быть ограничен. Это явление называется привязкой к процессорам (processor affinity). Можно изменить привязку к процессорам программно, через Win32-функции планирования.

0

4

1.3 Понятие прерывания
Понятие прерывания.

Прерывание – это важная процедура, которая позволяет изменить нормальную последовательность команд, выполняемых процессором.

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

Устройство, которое требует внимания процессора, сообщает об этом с помощью специального согнала (запрос на прерывание). По этому сигналу управление CPU  передается ОС. ОС запоминает состояние прерванного процесса и хранит эту информацию в спец. регистре микропроцессора.  Такой регистр называется СТЕК.  Затем ОС анализирует, от какого устройства произошло прерывание и затем передает управление программе, которая управляет устройством, выдавшим запрос на прерывание.

Такая программа называется «обработчик прерывания».

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

В начале прерывания использовались в основном для управления процессором устройствами ввода-вывода. Затем прерывания стали использовать для организации внутренней работы ЭВМ. В соответствии с этим существуют следующие типы прерываний:

1. Аппаратные прерывания – прерывания от устройств компьютера.

2. Программные прерывания – прерывания, которые вырабатывают процессы, находящиеся на стадии выполнения.

3.Логические прерывания – Эти прерывания вырабатывает сам процессор, когда встречается с каким-либо необходимым условием:

      а) деление на  0

      б) переполнение регистров микропроцессора

      в) пошаговое выполнение программ

      г) режим контрольных точек.

Каждое прерывание имеет два параметра:
Номер прерывания
Вектор прерывания.

Вектор прерывания – это адрес ячейки памяти, где хранится программа – обработчик прерывания.

Прерывания обозначаются - IRQ.

0

5

Механизм прерываний

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

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

Программы могут сами вызывать прерывания с заданным номером. Для этого они используют команду INT. Это так называемые программные прерывания. Программные прерывания не являются асинхронными, так как вызываются из программы (а она-то знает, когда она вызывает прерывание!).

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

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

Использование прерываний при работе с медленными внешними устройствами позволяют совместить ввод/вывод с обработкой данных в центральном процессоре и в результате повышает общую производительность системы.

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

Иногда желательно сделать систему нечувствительной ко всем или отдельным прерываниям. Для этого используют так называемое маскирование прерываний, о котором мы еще будем подробно говорить. Но некоторые прерывания замаскировать нельзя, это немаскируемые прерывания.

Заметим еще, что обработчики прерываний могут сами вызывать программные прерывания, например, для получения доступа к сервису BIOS или DOS (сервис BIOS также доступен через механизм программных прерываний).

Составление собственных программ обработки прерываний и замена стандартных обработчиков DOS и BIOS является ответственной и сложной работой. Необходимо учитывать все тонкости работы аппаратуры и взаимодействия программного и аппаратного обеспечения. При отладке возможно разрушение операционной системы с непредсказуемыми последствиями, поэтому надо очень внимательно следить за тем, что делает Ваша программа.

0

6

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

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

Система хранения информации в современном цифровом компьютере основана на двоичной системе счисления. Числа, текстовая информация, изображения, звук, видео и другие формы данных представляются в виде последовательностей битовых строк или бинарных чисел, каждое из которых состоит из значений 0 и 1. Это позволяет компьютеру легко манипулировать ими при условии достаточной ёмкости системы хранения. Например, для хранения небольшого рассказа достаточно иметь устройство памяти общим объёмом всего лишь около 8 миллионов бит (примерно 1 Мегабайт).

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

[править]
Классификация

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

Так, при рассмотрении удалённости и доступности памяти для центрального процессорного устройства различают: первичную, вторичную или третичную память.

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

Особенности механизмов чтения-записи отличают устройства памяти только для чтения (ПЗУ), доступные для разовой записи и множества считываний (WORM) или пригодные для полноценного выполнения операций чтения-записи. Порядок выборки определяет память произвольного или последовательного доступа с блочной или файловой адресацией.

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

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

[править]
Первичная или вторичная?

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

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

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

Однако это разделение не всегда выполняется. В качестве основной памяти может использоваться диск с произвольным доступом, являющийся вторичным запоминающим устройством (ЗУ). А вторичной памятью иногда называются отключаемые или извлекаемые ЗУ, например, ленточные накопители.

[править]
Энергозависимость

Энергозависимая память теряет свое содержимое после отключения питания. Энергонезависимая память хранит содержимое после отключения питания в течение, как правило, десятков лет.

[править]
Произвольный или последовательный доступ?

ЗУ с произвольным доступом отличаются возможностью передать любые данные в любое время. Оперативное запоминающее устройство, ОЗУ и винчестер — примеры такой памяти.

ЗУ с последовательным доступом, напротив, могут передавать данные только в определённой последовательности. Ленточная память и некоторые типы флэш-памяти имеют такой тип доступа.

[править]
Блочный или файловый доступ?

На винчестере, используются 2 типа доступа. Блочный доступ предполагает, что вся память разделена на блоки одинаковых размеров с произвольным доступом. Файловый доступ использует абстракции — папки с файлами, в которых и хранятся данные. Другой способ адресации — ассоциативная использует алгоритм хеширования для определения адреса.

[править]
Типы запоминающих устройств
Полупроводниковая:
EPROM
флэш-память
NVRAM
RAM ОЗУ ЗУПВ
ROM ПЗУ
VRAM
WRAM
FRAM
Кэш-память
Память на линиях задержки
Магнитный барабан
Память на магнитных сердечниках
Core rope memory
Магнитная лента
Дисковая память:
НГМД
НЖМД винчестер
Магнитооптическая
Оптическая:
CD-R
CD-ROM
CD-RW
DVD-RAM
DVD-ROM
DVD-R
DVD+R
DVD-RW
Голографическая память
Память на ЦМД ЦМД-ЗУ
Магнитный диск
Memory stick
Mylar® tape
Перфолента
Перфокарта
Smartdisk
Thin film memory
Селектроновая трубка (электростатическая запоминающая трубка)
Трубка Вильямса, запоминающая ЭЛТ

Распределение памяти

Система GNU обеспечивает несколько методов для распределения пространства памяти при явном управлении программы. Они различны по общности и по эффективности.
malloc производит общее динамическое распределение. См. раздел 3.3 [Беспрепятственное распределение].
оbstacks - другое средство, менее общее чем malloc, но более эффективное и удобное для стеко-подобного распределения. См. раздел 3.4 [Obstacks].
Функция alloca позволяет Вам динамически распределять память, которая будет освобождена автоматически. См. раздел 3.5 [Размер автоматической переменной].
3.1 Концепции динамического распределения памяти

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

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

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

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

0

7

1,5 Понятие файл
ПОНЯТИЕ ФАЙЛА

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

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

Файл служит учетной единицей информации в операционной системе. Любые действия с информацией в MS DOS осуществляются над файлами: запись на диск, вывод на экран, ввод с клавиатуры, печать, считывание информации CD-ROM и пр.

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

Справка. Сектор — 512 байт. На гибком диске обычно 80 дорожек. На каждой дорожке: для 5" диска — 9 секторов; для 3,5" диска — 18 секторов. Кластер — группа смежных секторов. Кластер для гибкого диска — 1,2 сектора (0,512, 1 Кбайт). Кластер для жесткого диска — 4, 8, 16 секторов (2-8 Кбайт).

В файлах могут храниться разнообразные виды и формы представления информации:

тексты, рисунки, чертежи, числа, программы, таблицы и т.п. Особенности конкретных фай-

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

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

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

Для характеристики файла используются следующие параметры:

•   полное имя файла;

•   объем файла в байтах;

•   дата создания файла;

•   время создания файла;

•   специальные а тр ибуты файла: R (Read only) — только для чтения, Н (Hidden) — скрытый файл, S (System) — системный файл, A (Archive) — архивированный

файл.

С понятием файла в MS DOS тесно связано понятие логического диска. Логический диск создается и управляется специальной программой (драйвером). Он имеет уникальное имя в виде одной латинской буквы, например С, D, Е, F и т.д. Логический диск может реализовываться на жестком диске, на гибком диске, на CD-ROM, в оперативной памяти (электронный диск) и т.п. На одном физическом диске может быть создано
несколько логических дисков.

ПОНЯТИЕ ФАЙЛА
Файл - совокупность данных, которая имеет имя и хранится во внешней памяти компьютера (на винчестере, на дискете или CD). Имя файла состоит из двух частей: основного имени и расширения (типа), отделенных друг от друга точкой. Система WINDOWS не налагает таких жестких ограничений на имя файла как DOS, однако расширение состоит из трех символов и обычно указывает, каким приложением создан файл.

0

8

1.6 FAT
Так называемая файловая система FAT использовалась во всех версиях
МСДОС и в первых двух выпусках OS/2 (версии 1.0 и 1.1). Каждый логический том имеет собственный FAT, который выполняет две функции: содержит информацию распределения для каждого файла в томе в форме списка связей модулей распределения (кластеров) и указывает, какие модули распределения свободны.

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

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

Ограничения FAT на наименование файлов и каталогов унаследованы из
CP/M. Когда Paterson создавал 86DOS, одной из его первых целей было облегчить импорт из CP/M в его новую операционную систему. А следовательно принятые в CP/M ограничения на имена файлов и расширений перенеслись в
86DOS.

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

Структура системы файлов FAT
|00Н |01Н |Идентификатор дисковода |
|01Н |09Н |Имя файла (8 символов) |
|09Н |0СН |Расширение (3 символа) |
|0СН |0ЕН |Номер текущего блока |
|0ЕН |10Н |Размер записи |
|10Н |14Н |Размер файла |
|14Н |16Н |Дата создания (обновления) |
|16Н |18Н |Время создания (обновления) |
|18Н |20Н |Зарезервировано |
|20Н |21Н |Номер текущей записи |
|21Н |25Н |Номер относительной записи |

|00Н |01Н |0FFH |
|01Н |06Н |Зарезервировано |
|06Н |07Н |Байт атрибута |
|07Н |08Н |Идентификатор дисковода |
|08Н |10Н |Имя файла (8 символов) |
|10Н |13Н |Расширение (3 символа) |
|13Н |15Н |Номер текущего блока |
|15Н |17Н |Размер записи |
|17Н |1ВН |Размер файла |
|1BН |1DН |Дата создания (обновления) |
|1DН |1FН |Время создания (обновления) |
|1FН |27H |Зарезервировано |
|27H |28H |Номер текущей записи |
|28H |2CH |Номер относительной записи |

Резюме

Резюме.

О реализации задания

Модель файловой системы представляет собой рабочий лист Microsoft
Excel, на котором в виде ячеек представлены три логические структуры файловой системы:

. Каталог файлов
. Таблица распределения
. Область файлов

На рабочем листе также расположены две панели управления:

1. Операции с файлами

2. добавить

3. удалить

4. перезаписать

5. Визуализация FAT

6. показать файл

7. убрать стрелки

Исходя из контекста вопроса параллельное выполнение процессов или потоков (MultiThreading) реализовывать нет необходимости. Учитывая эти факторы, а также необходимость разработки “дружественного” интерейса с применением графических примитивов, было решено использовать язык программирования VisualBasic (VBA) от фирмы Microsoft и электронную таблицу
Excel 5.0 фирмы Microsoft.

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

О примененных уровнях абстракции

Все возможные события были тщательно проанализированы автором и разделены на три категории, или на три уровня абстракции:
. События, вызываемые внешними воздействиями. Таковыми являются все события, вызываемые пользователем посредством вызова пунктов из групп операций с файлами.[2]
. События фундаментальной природы, т.е. базовые события, порождаемые предудущими. Их значительно меньше, и они никак не вникают в суть породивших из внешних событий.[3]
. События низкого уровня абстракции, которые являются искуственно синтезированными из предыдущих двух групп событиями и имеют целью понизить сложность системы за счет абстрагирования от непринципиальных тонкостей и усложнений в системе, диктуемых контекстом. Таковыми, например, являются события обработки неправильных ситуаций.[4]

Об интерфейсе

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

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

0

9

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

Том, отформатированный для использования файловой системы FAT, размечается по кластерам. Размер кластера по умолчанию определяется размером тома. При использовании файловой системы FAT номер кластера должен иметь длину не более 16 бит и представлять собой одну из степеней 2. Размеры кластеров по умолчанию в зависимости от размера тома приведены в таблице. При форматировании тома FAT с помощью программы Format из командной строки пользователь имеет возможность указать другой размер кластера, отличный от значения, устанавливаемого по умолчанию. Однако устанавливаемый размер не может быть меньше размера по умолчанию, указанного в таблице для соответствующего размера тома.

Файл FAT имеет 4 атрибута, которые могут сбрасываться и устанавливаться пользователем:
- archive file (архивный файл),
- system file (системный файл),
- hidden file (скрытый файл),
- read-only file (файл только для чтения).

Доступ к файлам, хранящимся на томах, использующих файловую систему FAT, может быть осуществлен, если компьютер работает под управлением одной из следующих операционных систем: MS DOS, Windows 95, Windows NT, OS/2.

Ограничение системы FAT на размер логического диска составляет 2 Gb. При этом каждая запись FAT (на разделах объемом более 16 Mb) является 2-байтовым числом, следовательно, на логическом разделе может быть не более 65536 кластеров. Поэтому на дисках объемом более 1 Gb размер кластера в системе FAT составляет 32 K, т.е. "хвост" (slack) каждого файла занимает от 0 до 32 К, из чего следует, что каждая тысяча файлов поглощает в среднем 16 Mb дискового пространства. Файловую систему FAT, вследствие больших накладных расходов памяти, не рекомендуется использовать для томов, размер которых превышает 511 Mb.

В Windows NT файловая система FAT работает точно так же, как и в MS DOS, Windows 3.1x и Windows 95. Windows NT можно установить на существующем разделе FAT. В процессе работы под управлением Windows NT можно копировать файлы с томов FAT на тома NTFS и обратно.

Нельзя использовать Windows NT совместно с программными средствами, осуществляющими разбиение диска на тома и сжатие дисков с использованием драйверов устройств, которые загружаются MS-DOS. Поэтому, если вы хотите иметь доступ к разделу или логическому диску FAT, работая под управлением Windows NT, не применяйте для них таких средств, как DoubleSpace (MS DOS 6.0) или DiskSpace (MS DOS 6.22).

0

10

1.7 NTFS
Файловая система NTFS

Операционные системы Microsoft семейства Windows NT нельзя представить без файловой системы NTFS - одной из самых сложных и удачных из существующих на данный момент файловых систем. Данная статья расскажет вам, в чем особенности и недостатки этой системы, на каких принципах основана организация информации, и как поддерживать систему в стабильном состоянии, какие возможности предлагает NTFS и как их можно использовать обычному пользователю.

 
Часть 1. Физическая структура NTFS

Начнем с общих фактов. Раздел NTFS, теоретически, может быть почти какого угодно размера. Предел, конечно, есть, но я даже не буду указывать его, так как его с запасом хватит на последующие сто лет развития вычислительной техники - при любых темпах роста. Как обстоит с этим дело на практике? Почти так же. Максимальный размер раздела NTFS в данный момент ограничен лишь размерами жестких дисков. NT4, правда, будет испытывать проблемы при попытке установки на раздел, если хоть какая-нибудь его часть отступает более чем на 8 Гб от физического начала диска, но эта проблема касается лишь загрузочного раздела.

Лирическое отступление. Метод инсталляции NT4.0 на пустой диск довольно оригинален и может навести на неправильные мысли о возможностях NTFS. Если вы укажете программе установки, что желаете отформатировать диск в NTFS, максимальный размер, который она вам предложит, будет всего 4 Гб. Почему так мало, если размер раздела NTFS на самом деле практически неограничен? Дело в том, что установочная секция просто не знает этой файловой системы :) Программа установки форматирует этот диск в обычный FAT, максимальный размер которого в NT составляет 4 Гбайт (с использованием не совсем стандартного огромного кластера 64 Кбайта), и на этот FAT устанавливает NT. А вот уже в процессе первой загрузки самой операционной системы (еще в установочной фазе) производится быстрое преобразование раздела в NTFS; так что пользователь ничего и не замечает, кроме странного "ограничения" на размер NTFS при установке. :)
Структура раздела - общий взгляд

Как и любая другая система, NTFS делит все полезное место на кластеры - блоки данных, используемые единовременно. NTFS поддерживает почти любые размеры кластеров - от 512 байт до 64 Кбайт, неким стандартом же считается кластер размером 4 Кбайт. Никаких аномалий кластерной структуры NTFS не имеет, поэтому на эту, в общем-то, довольно банальную тему, сказать особо нечего.

Диск NTFS условно делится на две части. Первые 12% диска отводятся под так называемую MFT зону - пространство, в которое растет метафайл MFT (об этом ниже). Запись каких-либо данных в эту область невозможна. MFT-зона всегда держится пустой - это делается для того, чтобы самый главный, служебный файл (MFT) не фрагментировался при своем росте. Остальные 88% диска представляют собой обычное пространство для хранения файлов.

Свободное место диска, однако, включает в себя всё физически свободное место - незаполненные куски MFT-зоны туда тоже включаются. Механизм использования MFT-зоны таков: когда файлы уже нельзя записывать в обычное пространство, MFT-зона просто сокращается (в текущих версиях операционных систем ровно в два раза), освобождая таким образом место для записи файлов. При освобождении места в обычной области MFT зона может снова расширится. При этом не исключена ситуация, когда в этой зоне остались и обычные файлы: никакой аномалии тут нет. Что ж, система старалась оставить её свободной, но ничего не получилось. Жизнь продолжается... Метафайл MFT все-таки может фрагментироваться, хоть это и было бы нежелательно.
MFT и его структура

Файловая система NTFS представляет собой выдающееся достижение структуризации: каждый элемент системы представляет собой файл - даже служебная информация. Самый главный файл на NTFS называется MFT, или Master File Table - общая таблица файлов. Именно он размещается в MFT зоне и представляет собой централизованный каталог всех остальных файлов диска, и, как не парадоксально, себя самого. MFT поделен на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует какому либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны операционной системе - они называются метафайлами, причем самый первый метафайл - сам MFT. Эти первые 16 элементов MFT - единственная часть диска, имеющая фиксированное положение. Интересно, что вторая копия первых трех записей, для надежности - они очень важны - хранится ровно посередине диска. Остальной MFT-файл может располагаться, как и любой другой файл, в произвольных местах диска - восстановить его положение можно с помощью его самого, "зацепившись" за самую основу - за первый элемент MFT.
Метафайлы

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

Метафайлы находятся корневом каталоге NTFS диска - они начинаются с символа имени "$", хотя получить какую-либо информацию о них стандартными средствами сложно. Любопытно, что и для этих файлов указан вполне реальный размер - можно узнать, например, сколько операционная система тратит на каталогизацию всего вашего диска, посмотрев размер файла $MFT. В следующей таблице приведены используемые в данный момент метафайлы и их назначение.$MFT сам MFT
$MFTmirr копия первых 16 записей MFT, размещенная посередине диска
$LogFile файл поддержки журналирования (см. ниже)
$Volume служебная информация - метка тома, версия файловой системы, т.д.
$AttrDef список стандартных атрибутов файлов на томе
$. корневой каталог
$Bitmap карта свободного места тома
$Boot загрузочный сектор (если раздел загрузочный)
$Quota файл, в котором записаны права пользователей на использование дискового пространства (начал работать лишь в NT5)
$Upcase файл - таблица соответствия заглавных и прописных букв в имен файлов на текущем томе. Нужен в основном потому, что в NTFS имена файлов записываются в Unicode, что составляет 65 тысяч различных символов, искать большие и малые эквиваленты которых очень нетривиально.

 
Файлы и потоки

Итак, у системы есть файлы - и ничего кроме файлов. Что включает в себя это понятие на NTFS?
Прежде всего, обязательный элемент - запись в MFT, ведь, как было сказано ранее, все файлы диска упоминаются в MFT. В этом месте хранится вся информация о файле, за исключением собственно данных. Имя файла, размер, положение на диске отдельных фрагментов, и т.д. Если для информации не хватает одной записи MFT, то используются несколько, причем не обязательно подряд.
Опциональный элемент - потоки данных файла. Может показаться странным определение "опциональный", но, тем не менее, ничего странного тут нет. Во-первых, файл может не иметь данных - в таком случае на него не расходуется свободное место самого диска. Во-вторых, файл может иметь не очень большой размер. Тогда идет в ход довольно удачное решение: данные файла хранятся прямо в MFT, в оставшемся от основных данных месте в пределах одной записи MFT. Файлы, занимающие сотни байт, обычно не имеют своего "физического" воплощения в основной файловой области - все данные такого файла хранятся в одном месте - в MFT.

Довольно интересно обстоит дело и с данными файла. Каждый файл на NTFS, в общем-то, имеет несколько абстрактное строение - у него нет как таковых данных, а есть потоки (streams). Один из потоков и носит привычный нам смысл - данные файла. Но большинство атрибутов файла - тоже потоки! Таким образом, получается, что базовая сущность у файла только одна - номер в MFT, а всё остальное опционально. Данная абстракция может использоваться для создания довольно удобных вещей - например, файлу можно "прилепить" еще один поток, записав в него любые данные - например, информацию об авторе и содержании файла, как это сделано в Windows 2000 (самая правая закладка в свойствах файла, просматриваемых из проводника). Интересно, что эти дополнительные потоки не видны стандартными средствами: наблюдаемый размер файла - это лишь размер основного потока, который содержит традиционные данные. Можно, к примеру, иметь файл нулевой длинны, при стирании которого освободится 1 Гбайт свободного места - просто потому, что какая-нибудь хитрая программа или технология прилепила в нему дополнительный поток (альтернативные данные) гигабайтового размера. Но на самом деле в текущий момент потоки практически не используются, так что опасаться подобных ситуаций не следует, хотя гипотетически они возможны. Просто имейте в виду, что файл на NTFS - это более глубокое и глобальное понятие, чем можно себе вообразить просто просматривая каталоги диска. Ну и напоследок: имя файла может содержать любые символы, включая полый набор национальных алфавитов, так как данные представлены в Unicode - 16-битном представлении, которое дает 65535 разных символов. Максимальная длина имени файла - 255 символов.
Каталоги

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

Вывод - для поиска одного файла среди 1000, например, FAT придется осуществить в среднем 500 сравнений (наиболее вероятно, что файл будет найден на середине поиска), а системе на основе дерева - всего около 12-ти (2^10 = 1024). Экономия времени поиска налицо. Не стоит, однако думать, что в традиционных системах (FAT) всё так запущено: во-первых, поддержание списка файлов в виде бинарного дерева довольно трудоемко, а во-вторых - даже FAT в исполнении современной системы (Windows2000 или Windows98) использует сходную оптимизацию поиска. Это просто еще один факт в вашу копилку знаний. Хочется также развеять распространенное заблуждение (которое я сам разделял совсем еще недавно) о том, что добавлять файл в каталог в виде дерева труднее, чем в линейный каталог: это достаточно сравнимые по времени операции - дело в том, что для того, чтобы добавить файл в каталог, нужно сначала убедится, что файла с таким именем там еще нет :) - и вот тут-то в линейной системе у нас будут трудности с поиском файла, описанные выше, которые с лихвой компенсируют саму простоту добавления файла в каталог.

Какую информацию можно получить, просто прочитав файл каталога? Ровно то, что выдает команда dir. Для выполнения простейшей навигации по диску не нужно лазить в MFT за каждым файлом, надо лишь читать самую общую информацию о файлах из файлов каталогов. Главный каталог диска - корневой - ничем не отличается об обычных каталогов, кроме специальной ссылки на него из начала метафайла MFT.
Журналирование

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

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

Пример 2: более сложный случай - идет запись данных на диск. Вдруг, бах - отключается питание и система перезагружается. На какой фазе остановилась запись, где есть данные, а где чушь? На помощь приходит другой механизм системы - журнал транзакций. Дело в том, что система, осознав свое желание писать на диск, пометила в метафайле $LogFile это свое состояние. При перезагрузке это файл изучается на предмет наличия незавершенных транзакций, которые были прерваны аварией и результат которых непредсказуем - все эти транзакции отменяются: место, в которое осуществлялась запись, помечается снова как свободное, индексы и элементы MFT приводятся в с состояние, в котором они были до сбоя, и система в целом остается стабильна. Ну а если ошибка произошла при записи в журнал? Тоже ничего страшного: транзакция либо еще и не начиналась (идет только попытка записать намерения её произвести), либо уже закончилась - то есть идет попытка записать, что транзакция на самом деле уже выполнена. В последнем случае при следующей загрузке система сама вполне разберется, что на самом деле всё и так записано корректно, и не обратит внимания на "незаконченную" транзакцию.

И все-таки помните, что журналирование - не абсолютная панацея, а лишь средство существенно сократить число ошибок и сбоев системы. Вряд ли рядовой пользователь NTFS хоть когда-нибудь заметит ошибку системы или вынужден будет запускать chkdsk - опыт показывает, что NTFS восстанавливается в полностью корректное состояние даже при сбоях в очень загруженные дисковой активностью моменты. Вы можете даже оптимизировать диск и в самый разгар этого процесса нажать reset - вероятность потерь данных даже в этом случае будет очень низка. Важно понимать, однако, что система восстановления NTFS гарантирует корректность файловой системы, а не ваших данных. Если вы производили запись на диск и получили аварию - ваши данные могут и не записаться. Чудес не бывает.
Сжатие

Файлы NTFS имеют один довольно полезный атрибут - "сжатый". Дело в том, что NTFS имеет встроенную поддержку сжатия дисков - то, для чего раньше приходилось использовать Stacker или DoubleSpace. Любой файл или каталог в индивидуальном порядке может хранится на диске в сжатом виде - этот процесс совершенно прозрачен для приложений. Сжатие файлов имеет очень высокую скорость и только одно большое отрицательное свойство - огромная виртуальная фрагментация сжатых файлов, которая, правда, никому особо не мешает. Сжатие осуществляется блоками по 16 кластеров и использует так называемые "виртуальные кластеры" - опять же предельно гибкое решение, позволяющее добиться интересных эффектов - например, половина файла может быть сжата, а половина - нет. Это достигается благодаря тому, что хранение информации о компрессированности определенных фрагментов очень похоже на обычную фрагментацию файлов: например, типичная запись физической раскладки для реального, несжатого, файла:

кластеры файла с 1 по 43-й хранятся в кластерах диска начиная с 400-го

кластеры файла с 44 по 52-й хранятся в кластерах диска начиная с 8530-го ...

Физическая раскладка типичного сжатого файла:

кластеры файла с 1 по 9-й хранятся в кластерах диска начиная с 400-го

кластеры файла с 10 по 16-й нигде не хранятся

кластеры файла с 17 по 18-й хранятся в кластерах диска начиная с 409-го

кластеры файла с 19 по 36-й нигде не хранятся

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

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

Права файловой системы NTFS неразрывно связаны с самой системой - то есть они, вообще говоря, необязательны к соблюдению другой системой, если ей дать физический доступ к диску. Для предотвращения физического доступа в Windows2000 (NT5) всё же ввели стандартную возможность - об этом см. ниже. Система прав в своем текущем состоянии достаточно сложна, и я сомневаюсь, что смогу сказать широкому читателю что-нибудь интересное и полезное ему в обычной жизни. Если вас интересует эта тема - вы найдете множество книг по сетевой архитектуре NT, в которых это описано более чем подробно.

На этом описание строение файловой системы можно закончить, осталось описать лишь некоторое количество просто практичных или оригинальных вещей.
Hard Links

Эта штука была в NTFS с незапамятных времен, но использовалась очень редко - и тем не менее: Hard Link - это когда один и тот же файл имеет два имени (несколько указателей файла-каталога или разных каталогов указывают на одну и ту же MFT запись). Допустим, один и тот же файл имеет имена 1.txt и 2.txt: если пользователь сотрет файл 1, останется файл 2. Если сотрет 2 - останется файл 1, то есть оба имени, с момента создания, совершенно равноправны. Файл физически стирается лишь тогда, когда будет удалено его последнее имя.
Symbolic Links (NT5)

Гораздо более практичная возможность, позволяющая делать виртуальные каталоги - ровно так же, как и виртуальные диски командой subst в DOSе. Применения достаточно разнообразны: во-первых, упрощение системы каталогов. Если вам не нравится каталог Documents and settings\Administrator\Documents, вы можете прилинковать его в корневой каталог - система будет по прежнему общаться с каталогом с дремучим путем, а вы - с гораздо более коротким именем, полностью ему эквивалентным. Для создания таких связей можно воспользоваться программой junction (junction.zip (15 Kb), 36 кб), которую написал известный специалист Mark Russinovich (http://www.sysinternals.com/). Программа работает только в NT5 (Windows 2000), как и сама возможность.

Для удаления связи можно воспользоваться стандартной командой rd.
ВНИМАНИЕ: Попытка уделения связи с помощью проводника или других файловых менеджеров, не понимающих виртуальную природу каталога (например, FAR), приведет к удалению данных, на которые ссылается ссылка! Будьте осторожны.
Шифрование (NT5)

Полезная возможность для людей, которые беспокоятся за свои секреты - каждый файл или каталог может также быть зашифрован, что не даст возможность прочесть его другой инсталляцией NT. В сочетании со стандартным и практически непрошибаемым паролем на загрузку самой системы, эта возможность обеспечивает достаточную для большинства применений безопасность избранных вами важных данных.
Часть 2. Особенности дефрагментации NTFS

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

0

11

9.6 (61)
Физическая организация памяти
Физически память делится на внутреннюю и внешнюю.
Внутренняя память выполняется, чаще всего, в виде микросхем высокой степени интеграции. Внутренняя или основная память может быть двух типов: оперативное запоминающее устройство (ОЗУ или RAM, Random Access Memory) или ЗУ с произвольной выборкой (ЗУПВ) и постоянное ЗУ (ПЗУ или ROM, Read Only Memory). В последнее время широкое распространение получила флэш (Flash)-память, имеющая особенности, как ОЗУ, так и ПЗУ. ОЗУ является энергозависимой памятью, поскольку вся содержащаяся в ней информация теряется при выключении питания и предназначена для временного хранения программ и данных. ПЗУ является энергонезависимой памятью, т.е. информация сохраняется и при выключении питания системы. ПЗУ предназначена для хранения управляющих работой ЭВМ стандартных программ (например, отвечающие за процедуру старта системы), констант, таблицы символов и т.д.
ПЗУ могут быть: масочными - запрограммированными на заводе изготовителе (ROM), однократно-программируемыми пользователем ППЗУ (PROM или OTP), многократно-программируемыми (репрограммируемыми) пользователем РПЗУ с ультрафиолетовым стиранием (EPROM) или с электрическим стиранием (EEPROM, Flash). Широкое распространение нашли также программируемые логические матрицы и устройства (PLM, PML, PLA, PAL, PLD, FPGA и т.д.) с большим выбором логических элементов и устройств на одном кристалле.
ОЗУ подразделяются на статическую память (SRAM), динамическую (DRAM, здесь для хранения информации необходима ее регенерация) и регистровую (RG).
В качестве оперативной памяти современные ЭВМ оснащаются модулями SIMM, DIMM, DDR и RIM, которые является динамической памятью. Указанные модули памяти представляют собой небольшие платы с установленными на ней совместимыми чипами SDRAM (Sychronous DRAM – это новая технология микросхем динамической памяти. Основное отличие данного типа памяти от остальных заключается в том, что все операции синхронизированы с тактовой частотой процессора, то есть память и CPU работают синхронно. Технология SDRAM позволяет сократить время, затрачиваемое на выполнение команд и передачу данных, за счет исключения циклов ожидания).
Модуль SIMM (Single In-line Memory Modyle) – 72-контактные модули, обычно оборудованные микросхемами памяти общей емкостью 8, 16 и 32 Мб.
Модуль DIMM (Dual In-line Memory Modyle) – 168-контактные модули памяти. DIMM обладают внутренней архитектурой, схожей  с 72-контактными модулями SIMM, но благодаря более широкой шине обеспечивают повышенную производительность подсистемы «ЦП – ОП».
Модуль DDR – имею аналогичную DIMM архитектуру, а двукратный выигрыш в быстродействии осуществляется за возможности передачи двух порций данных за один такт синхронизации – по фронту и спаду импульса.
Одной из наиболее быстродействующих является память RDRAM (Rambus RAM), разработанная американской компанией Rambus. Память RDRAM является 16-разрядной, тактируется частотой 400 МГц (результирующая частота за счет использования технологии DDR составляет 800 МГц) и достигает пиковой скорости передачи данных 1.6 Гбайт/с. Использование узкой шины данных и сверхвысокой частоты значительно повышают эффективность использования и загрузку канала, максимально освобождая протокол от временных задержек.
Внешней называют память на магнитных (жесткие и гибкие диски), оптических носителях (CD-ROM) и т.п.
Кроме того существует и накопители на магнитной ленте, которые в настоящее время практически не используются и поэтому в данной главе не рассматриваются.
Дисковые накопители в зависимости от среды носителя и по применяемому методу записи (чтения) данных на (с) поверхность (и) могут подразделяться на магнитные, оптические и магнитооптические.
Тип накопителя Емкость, Мб Время доступа, мс Скорость передачи, Кбайт/с Режим доступа
НГМД 1,2; 1,44 65 -100 150 Чтение/запись
НЖМД (Винчестер) 1000-18000 8-20 500-3000 Чтение/запись
CD-R 120-800 15-300 150-1500 Чтение/
однократная запись
CD-RW 120-800 15-150 150-1500 Чтение/Запись
НМОД 128-1300 15-150 300-2000 Чтение/запись
Дисковая память
Носителями информации являются поверхности гибких и жестких дисков, в качестве немагнитных основ которых используются соответственно майлар (как и в магнитных лентах) и алюминиевые (в ряде случаев стеклянные) круги (диски). Стеклянные диски являются менее критичными к температурным изменениям и позволяют увеличить плотность записи информации. В настоящее время наиболее широкое распространение получили диски с напыленным магнитным слоем, а точнее, с металлической пленкой (например, кобальт).
Перед осуществлением записи на магнитный диск он должен быть специальным образом инициализирован – отформатирован. В результате форматирования на поверхности образуются концентрические окружности (синхронизирующие метки диска), называемые  дорожками (track). Количество дорожек зависит от типа диска. Дорожки разбиваются на участки фиксированной длины, называемые секторами. Количество секторов на дорожке определяется типом и форматом диска, и они в основном одинаковы для всех дорожек. IBM PC-совместимые ПК могут работать с несколькими размерами секторов от 128 до 1024 байт. Стандартным сектором считается сектор из 512 байт. Данные любого размера (разрядности) размещаются в секторах с фиксированным размером, а дисковые операции записи и считывания производятся с целыми секторами.
Дорожки и сектора нумеруются с нуля, начиная с внешнего края диска, при этом сектор с нулевым номером на каждой дорожке резервируется для системных целей. Диски имеют две стороны. Так как накопители на жестких дисках могут состоять из нескольких дисков (стопка), то совокупность всех дорожек, по одной на каждой стороне с одинаковыми номерами, образует цилиндр с номером соответствующей дорожки.ъ

2.11 Расположение дорожек и секторов на магнитном диске

Память на гибких магнитных дисках
Все НГМД, применяемые в PC, независимо от типа и размера имеют одинаковый интерфейс и унифицированные разъемы. Используемый в PC кабель-шлейф имеет перевернутый фрагмент из 7 проводов с номерами 10-16. Этот поворот позволяет подключать к контроллеру одним шлейфом до двух НГМД, причем адрес накопителя определяется его положением на шлейфе: для при¬вода А: фрагмент перевернут, для В: – нет.
Контроллер накопителей на гибких дисках FDC (Floppy Drive Controller) является всегда внешним по отношению к накопителю и обычно располагается на одной плате с контроллером или адаптером жестких дисков.
Контроллер FDC XT поддерживает до четырех накопителей (FDD), хотя многие контроллеры имеют интерфейсные схемы только для одного шлейфа, то есть для двух накопителей. Эти контроллеры обеспечивают скорость передачи данных 250 и 300 Кбит/с.
Контроллер FDC AT  поддерживает только два накопителя, но обеспечивает более высокую скорость 500 Кбит/с.
Современные контроллеры обеспечиваю скорость 1000 Кбит/с. В карте ресурсов AT имеется место под два контроллера НГМД.
Контроллеры вырабатывают запрос аппаратного прерывания IRQ6 (BIOS INT OEh) по окончании выполнения внутренних операций. Для обмена данными может использоваться канал DMA2.
Память на жестких магнитных дисках
В отличие от накопителей на гибких дисках и их контроллеров, жестко стандартизованных и поэтому легко конфигурируемых, в PC применяется множество типов накопителей на жестких дисках, их интерфейсов и контроллеров, различающихся и способами конфигурирования.
Накопители на жестких магнитных дисках НЖМД (HDD), появились с машинами PC/XT. Первые накопители имели интерфейс, являющийся расширением интерфейса НГМД, и подключались к специальной плате контроллера с модулем дополнительной BIOS, хранящей всю информацию об установленных жестких дисках. В машинах класса AT поддержку стандартного контроллера включили в системную BIOS, параметры используемых жестких дисков стали хранить в памяти CMOS.
Традиционные версии BIOS поддерживают до двух накопителей на жестких дисках и хранят их параметры в ячейках памяти CMOS. Расширенные версии BIOS для современных двухканальных контроллеров АТА поддерживают 4 жестких диска и хранят их параметры.
Для дисков ATA используются следующие режимы адресации:
1 CHS (целиндр-головка-сектор, традиционная трехмерная адресация данных на диске);
2 ECHS (расширенная трехмерная адресация);
3 LBA (линейная адресация данных на диске через логический адрес блока).
Учитывая, что в соответствии с форматом вызова функций дискового сервиса, одно устройство может иметь 210=1024 цилиндра, 28=256 головок, 26-1=63 сектора. Таким образом, при трехмерной адресации (CHS) и размере сектора в 512 байт максимальный объем диска не может превышать 7.875 Гбайт.
HDDmax(CHS) = [210 * 28 * (26-1)] * 512 = 136 902 082 560 байт = 7.875Gb (~8,4ГБ)
Все современные винчестеры используют LBA-адресацию. В режиме LBA параметры стандартных вызовов транслируются в т.н. линейный адрес, который вычисляется однозначно в «естественном» порядке счета секторов, т.е. сектору с нулевым лог. адресом соответствует первый сектор нулевой головки нулевого цилиндра. В этом случае номер каждого сектора представляет собой 28-битное число и максимальным диском для LBA будет:
HDDmax(LBA) = 228  * 512 = 137.4Gb (128ГБ)
В тоже время большинство ПО использует CHS-адресацию. Поэтому с появлением HDD с LBA адресацией, чтоб не модернизировать имеющееся ПО, поступили следующим образом. BIOS в случае определения LBA-винчестера, переводит его параметры в CHS-версию и ОС работает с ним с CHS-винчестером. Т.е. 28-битное значение адреса LBA «раскладывается» следующим образом: 16 бит – цилиндр,  8 бит – сектор,  4 бита – головка. В результате, при получении запроса на работу с диском, BIOS переводит для контроллера это значение LBA-адрес :
В общем виде формулы вычисления такого адреса имеет вид:
LBA=(CYL*HDS*HD)*SPT+SEC-1
CYL – номер цилиндра
HD – номер головки
HDS – количество головок
SPT – количество секторов на треке
SEC – номер сектора
Для накопителей на жестких дисках используют интерфейсы ST-506/412, ESDI, АТА (неофициальное название IDE), SCSI. Накопители и контроллеры с интерфейсами ST-506/412 и ESDI практически не используются.
В настоящее время широко используются перечисленные ниже интерфейсы.
АТА-2 — расширенная спецификация ATA, включает 2 канала, 4 устройства, PIO Mode 3 (программированный ввод-вывод), DMA mode 1 , Block mode (пакетный обмен), объем диска до 8 Гбайт, поддержка LBA и CHS адресации.
Fast АТА-2 разрешает использовать DMA Mode 2 (13,3 Мбайт/с), PIO Mode 4.
ATA-3 — расширение, направленное на повышение надежности. Включает средства парольной защиты, улучшенного управления питанием, самотестиро¬вания с предупреждением приближения отказа — SMART (Self Monitoring Ana¬lysis and Report Technology).
Ultra DMA/33 — версия ATA/IDE со скоростью обмена по шине 33 Мбайт/с. Устройства ATA IDE, E-IDE, АТА-2, Fast АТА-2, ATA-3 и Ultra DMA/33 электрически совместимы.
Последние достижения в этой области – интерфейсы Ultra ATA/66, Ultra ATA/100 и Ultra ATA/133 позволяющие осуществлять передачу данных со скоростью 66Мбай/сек,  100 Мбай/сек и 133 Мбай/сек соответственно.
Возможно также подключение дисковых устройств и к параллельному порту, но через устройство, обеспечивающее один из вышеперечисленных интерфейсов. О дисках с интерфейсом USB говорить пока рано, а интерфейс FireWire является родственником SCSI-3.
Кэширование диска
Время доступа к различным блокам информации на HDD является переменной величиной, складывающейся из временами подвода магнитной головки (МГ) к искомой дорожке, времени успокоения вибрации МГ и времени подвода искомого сектора под МГ. Кэш или буфер HDD необходим, чтоб по возможности сократить время доступа к диску за счет, во первых, предварительной выборки данных, и во-вторых, за счет организации поблочного доступа. Для организации буфера используются два вида кэш-памяти аппаратная и программная.
Аппаратная кэш-память представляет собой значительный объем памяти и имеет архитектуру полного ассоциативного отображения. Она строится на плате кэш-контроллера HDD с использованием модулей высокопроизводительной памяти и имеет собственный процессор.
Программная кэш-память — это некоторая область системной памя¬ти, зарезервированная для дискового кэша и управляемая утилитой (например, Windows SmartDrive).Объем программной кэш-памяти рекомендуется ограничивать четвертью объема системной памяти).
В многозадачных системах выгодно иметь HDD с мультисегментной кэш-памятью (для каждой задачи отводится своя часть кэша – сегмент). В адаптивной системной кэш-памяти для повышения производительности размер и количество сегментов могут изменяться.
Для эффективной работы кэш (HDD) необходимо часто оптимизировать (дефрагментировать) диск, так как при этом относящиеся к одному и тому же файлу сектора будут расположены в физически близких секторах, что приведет к большей эффективности функционирования кэш.
Общие сведения о RAID-технологиях
В RAID (Redundant Array of Independent Disks) технологии данные и информация для устранения ошибок распределяются по нескольким дискам. При этом обеспечивается повышение производительности, а также защита критически важных приложений в среде клиент-сервер. Для обеспечения бесперебойного доступа выбирается конфигурация с дублированным источником питания и функцией «горячей перекачки», которая оперативно реконструирует данные при замене отказавшего диска на новый.
С целью уменьшения платы за надежность был предложен ряд архитектур. Разработаны RAID-системы нескольких уровней. Первый уровень RAID предполагает сплошное копирование защищаемых данных. Остальные уровни RAID основаны на работе с одной копией данных, распределенной по разным дискам, при использовании схем четности. По сравнению с зеркальным отображением контроль четности позволяет снизить накладные расходы на избыточность (см. рис. 2.12). На рисунке схематично представлена система RAID 3 и дается пример восстановления потерянного блока (ФБЗ1) с использованием контрольной информации (ФБ41). При появлении отказа необходимо заменить отказавший диск и подать команду на RAID-контроллер о восстановлении массива. Получив такую информацию, компьютер рассматривает все блоки, определяет, каких данных не достает, восстанавливает утраченные фрагменты на основе информации о четности и записывает полученные блоки на новый диск. Очень важно восстановить массив как можно быстрее. Отказ второго диска будет означать полную утрату всех данных. Использовании при построении ВС RAID 3 при четырехдисковой организации приводит к повышению стоимости системы приблизительно на 25 %.

0

12

9.5 (60)
ШИНЫ
Все компоненты на материнской плате каким-то образом должны быть соединены между собой. Это соединение осуществляется с помощью шин.
Совокупность линий (проводников на материнской плате), по которым обмениваются информацией компоненты устройств и устройства РС, назы-вается шиной (Bus). Шина предназначена для обмена между двумя и более устройствами. Описание шин приведено в [5].
Шина, связывающая только два устройства, называется портом.
Обычно шина имеет гнёзда для подключения внешних устройств, кото-рые в результате сами становятся частью шины и могут обмениваться ин-формацией со всеми другими подключаемыми к ней устройствами.
Шины в РС различаются по своему функциональному назначению.
1. Системная шина (или шина CPU) используется микросхемами и Chip-set для пересылки информации от устройств к CPU и от CPU к устройствам. Это шина GTL+ c тактовой частотой 66, 100 и 133 МГц и пропускной спо-собностью 528, 800 Кбайт/с и 1,06 Мбайт/с или шина EV6, у которой переда-ча по обоим фронтам с тактовой частотой 377 МГц. Может использоваться 128-разрядная шина памяти (так как передача происходит без участия CPU).
2. Шина кэш-памяти предназначена для обмена информацией между CPU и кэш-памятью.
3. Шина памяти используется для обмена информацией между опера-тивной памятью и CPU.
4. Шины ввода/вывода (бывают стандартные и локальные).

Назначение линий шины
Шина имеет собственную архитектуру, позволяющую реализовать важ-нейшие её свойства – возможность параллельного подключения практически неограниченного числа внешних устройств и обеспечения обмена информа-цией между ними. Архитектура любой шины включает следующие компо-ненты.
1. Линии данных (по ним происходит обмен данными между CPU, кар-тами расширения, установленными в слоты, и памятью). В режиме DMA (Di-rect Memory Access) управление обменом данными осуществляется соответ-ствующим контроллером, минуя CPU. Компьютеры семейства Pentium име-ют 64-разрядную шину данных.
2. Линии адреса (процесс обмена возможен лишь в том случае, когда из-вестен отправитель и получатель этих данных, а потому у каждого компо-нента РС, каждого регистра ввода/вывода и ячейки RAM, есть свой адрес – идентификационный код, который передаётся по этой шине). RAM временно хранит данные для ускорения обмена ими. Количество ячеек RAM не должно превышать  , где m – разрядность адресной шины. В семействе Pentium она 32-разрядная и можно адресовать 4 Гбайт памяти.
3. Линии управления данными (шины управления) необходимы для за-писи (считывания) в регистры устройств, подключенных к шине, ряда необ-ходимых при передаче данных сигналов: записи/считывания, готовности к приёму/передаче данных, подтверждения приёма данных, аппаратного пре-рывания, управления и инициализации контроллера.
4. Контроллер шины осуществляет управление процессом обмена дан-ными и служебными сигналами и обычно выполняется в виде отдельной микросхемы или интегрируется в микросхемы Chipset.
Шины ввода/вывода
Первой характеристикой шины является её разрядность, определяемая количеством данных, параллельно проходящих через неё.
Второй характеристикой шины является её пропускная способность, ко-торая определяется количеством бит информации, передаваемых по шине за секунду. Пропускная способность вычисляется как произведение тактовой частоты шины на её разрядность.
Рассмотрим шины ввода/вывода. Они описаны в [10].
1. Шина ISA-8, ISA-16 (Industrial Standard Architecture). От этих шин сейчас отказываются, как от шин с низкой производительностью – время пе-редачи превышает скорость обработки их CPU, т.е. процессор простаивает.
2. Шина EISA (Electronic ISA). Обладает следующими достоинствами:
а) слот EISA полностью совместим со слотом ISA из-за двухэтажной конструкции слота;
б) она 32-разрядная, т. е. все линии данных CPU выведены на слот, что позволяет использовать карты сетевые, графические и жёсткого диска. Её частота 8,33 МГц, но скорость передачи 33 Мбайт/с;
в) шина EISA – интеллектуальная, так как конфигурация карт расши-рения происходит в ней программно, а не джамперами. Если необходимо ис-пользовать ISA, то ставят заглушку, чтобы предотвратить контакт I и II этажа разъёма.
3. Шина VESA или VLB (Video Electronic Standard Assotiation или Vesa Local Bas). Эта локальная шина разработана в начале 80-х годов Ассоциацией стандартов видеоэлектроники. Используется для передачи видеоданных. Об-мен информацией с CPU осуществляется под управлением контроллеров, расположенных на картах, устанавливаемых в слот VLB, напрямую в обход стандартной шины ввода/вывода. Она 32-разрядная и работает на тактовой частоте процессора, но адреса и сигналы управления здесь передаются по шине ISA. Она использовалась в CPU 80486.
4. Шина PCI (Peripheral Component Interconnect) разработана фирмой In-tel для PC Pentium. Её тактовая частота равна половине тактовой частоты системой шины. Включается в слот системной платы. Её основа – мосты, ко-торые осуществляют связь между PCI и другими шинами. Важной особенно-стью PCI является способность внешнего устройства при пересылке данных управлять шиной без CPU.
Она широко распространена, так как:
а) у неё отличный от ISA способ передачи данных: когда передающее устройство готово к передаче, оно выставляет данные и сопровождает их со-ответствующим сигналом, а приёмное устройство записывает данные в свои регистры и подаёт сигнал, подтверждая запись и готовность к приёму сле-дующих;
б) у неё относительно независимые отдельные компоненты системы – передачей данных управляет включённый между ней и CPU мост, а процес-сор может выполнять другую работу;
в) есть PCI 1.0 – 32-разрядная и PCI 2.0 – 64-разрядная, отсюда полоса пропускания шины 33 * (32 бит/8) = 132 Мбайт/с или 33 МГц * (64 бит/8) = 264 Мбайт/с;
г) шина PCI универсальна, так как не зависит от типа CPU – соединение мостом в системной шине, минуя CPU;
д) PCI 5.0 64-разрядная, на дополнительные контакты подаётся напря-жение 3,3 В, а на нём работает большинство микросхем;
е) система PCI использует принцип временного мультиплексирования – для передачи данных и адресов используется одни и те же линии;
ж) обладает свойством интеллектуальности, так как она в состоянии рас-познать аппаратные средства и анализировать конфигурации системы в соот-ветствии с технологией Plug & Play. Для них созданы свои карты расшире-ния.
Для работы с видеоданными лицензированы PCI Express x1, х2, x4, х8, x16 и х32-канальные версии (266, 532, 1066, 2132, 4200 и 8400 Мбайт/с). Их главное преимущество состоит в том, что данные через шину передаются без помех в обоих направлениях, а в режиме дуплексной передачи цифры выше удваиваются. На видеоплату можно подать мощность до 75 Вт без дополни-тельных разъёмов. Новые видеоплаты на базе PCI Express х8 и x16 обладают высоким качеством изображения, которое не уступает платам с AGP 8x.
5. Шина AGP (Accelerated Graphics Port) является каналом передачи данных между видеоадаптерами и RAM. Эта высокоскоростная, локальная шина ввода/вывода предназначена для нужд видеосистем. Она связывает 3D-акселератор видеосистемы (ускоряет обращение) с системной памятью PC. Только один слот AGP, в него подключается одно устройство, а потому нет проблем с арбитражем, что повышает скорость обмена данными. Она 32-разрядная, отличается от PCI следующим:
а) использует более высокие тактовые частоты (режим 2, 4);
б) режим демультиплексирования (SBA) – по очереди адрес и данные;
в) пакетная передача данных;
г) режим прямого исполнения в системной памяти DIME. Здесь обра-ботка текстур ведётся предварительно в системной памяти, а в локальную память загружается уже результат. Её пропускная способность для режима 1х равна 66 * 32 = 2 112 бит/с = 264 Мбайт/с, в режиме 2х передача идёт по пе-реднему и заднему фронтам, а потому цифра удвоится – 528 Мбайт/с – ис-пользуется в Pentium с 64-разрядной внешней шиной. В режиме 4х (с пони-женным напряжением питания) за 1 такт удаётся передать 32-разрядную ко-манду. Скорость передачи около 1 Гбайт/с, но современные прогрессивные технологии 0,25 мкм и 0,18 мкм устойчиво работают и на частоте 133 МГц вместо 100 МГц, а тактовая частота AGP = 66% от 133 МГц, т.е. 100 МГц.
Слоты AGP бывают с напряжением питания:
а) 3,3 В (имеет ключ-перемычку на материнской плате и одну прорезь на плате, режим 2х);
б) 1,5 В (тоже с ключом-перемычкой, с 2 прорезями на плате, режим 4х);
в) универсальный слот (использует любое напряжение без перемычки, на плате 2 прорези, режим 4х).
Сейчас используется шина AGP 8х. Для технологии 0,09 мкм использу-ется уже частота 400 МГц и выше, скорость передачи 4 Гбайт/с.
Есть шины, подключающие периферийные устройства вне корпуса РС кабелем. Рассмотрим их.
1. Шина USB (Universal Serial Bus). Разрабатывалась фирмами Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom. Обмен по интерфейсу – пакетный, скорость обмена 12 Мбит/с. На новых материнских платах есть разъём для подключения концентратора USB. USB позволяет подсоединить к компьютеру периферийные устройства (клавиатуру, мышь, джойстик, прин-тер), не выключая питания, т.к. поддерживает технологию Plug & Play. Его конфигурирование осуществляется автоматически. Все устройства должны быть с разъёмом USB и подключаться к РС через USB-хаб или концентратор, который позволяет подключать до 127 периферийных устройств.
Шины USB 1.1 и USB 2.0. Разъёмы выведены на заднюю стенку, их мо-жет быть до 4. На USB 2.0 пропускная способность уже до 480 Мбит/с. Реа-лизуется как синхронный (для телеконференций), так и асинхронный режи-мы передачи данных, поддерживается дополнительный подканал для под-ключения клавиатуры, мыши, модема со скоростью обмена  1,5 Мбит/с.
2. Шина SCSI-1 (Small Computer System Interfase). Шина разработана в 1986 году. Скорость передачи данных – 2 Мбайт/с, подключаются к одному разъёму до 8 устройств (винчестер, привод CD-ROM, сканер, фото- и видео-камеры). Она реализована в виде кабельного шлейфа. С шиной PC PCI со-единяется через хост-адаптер (Host Adapter). Каждое устройство, подклю-ченное к шине, имеет свой идентификационный номер (I.D.). У неё асин-хронный режим работы, есть Narrow-канал. В 1989 году появилась SCSI-2 со скоростью передачи 10 Мбайт/с. Здесь используется синхронный режим и Wide-канал.
В 1995 году появился стандарт Ultra SCSI с пропускной способностью 8-разрядной шины 20 Мбайт/с, а 16-разрядной шины Ultra SCSI – 40 Мбайт/с, но уменьшилась длина кабеля. После разработки нового метода передачи данных LVD (Low Voltage Differential) появились в 1997 году модели со ско-ростью передачи 80 Мбайт/с в Ultra2 SCSI и в 1999 году 160 Мбайт/с в Ul-tra3 SCSI.
В сентябре 1998 года появилась спецификация Ultra 160. Её пропускная способность 160 Мбайт/с. Основные особенности Ultra 160:
а) двойная синхронизация при передаче данных;
б) контроль целостности данных за счёт использования циклического кода с избыточностью (CRC);
в) контроль окружения. Заключается в проверке возможностей соедини-тельных кабелей, терминаторов, карт с целью обеспечения оптимальной про-изводительности шины.
У Ultra 320 пропускная способность 320 Мбайт/с для 16-разрядной ши-ны, поддерживает 16 устройств без определения длины кабеля. Устройства соединяются кабелями в цепочку, а на крайнем устанавливается терминатор для устойчивости работы шины. Есть пассивные терминаторы (резистор с сопротивлением 132 Ом) и активные (от 132 до 110 Ом), позволяющие ме-нять входное сопротивление в зависимости от стандарта SCSI. Разъёмы для подключения могут быть внутренними и внешними 50- и 68-контактными.
В 2001 году появилась шина SAS 1.0 (Serial Attached SCSI) со скоростью 1 500 Мбайт/с. По ней данные передаются последовательно, а не параллель-но, предварительно объединяясь в пакеты. Жёсткие диски подключаются по методу «точка-точка», потому пропускные способности у всех дисководов одинаковые, а не делятся. В 2004 году появилась SAS 1.1 со скоростью 3 000 Мбайт/с. В 2006 году должна появиться шина SAS 2.0 со скоростью 6 000 Мбайт/с.
3. Шина является частью нового стандарта Serial SCSI (SCSI-3) – это вы-сокоскоростная, локальная, последовательная шина, разработанная фирмами Apple и Texas Instruments в 1995 году. Изменяемая структура и одноранговая топология делают её удобной для подключения жёстких дисков и устройств обработки аудио- и видеоинформации, а также для работы мультимедийных приложений в реальном времени. Шина может передавать данные со скоро-стью 12,5; 25; 50; 100, 200 и 400 Мбит/с, ожидается до 1600. Она позволяет одновременно работать нескольким устройствам, передающим информацию с разными скоростями. Шина использует простой 6-проводный кабель, под-держивает технологию Plug & Play, но её структура проще, чем у SCSI, а стоимость ниже. Используется пакетный режим передачи информации – ско-рость в нём до 1 Гбайт/с.
Она построена по разветвляющейся топологии и позволяет использовать до 63 узлов в цепочке, а к каждому узлу можно подключить до 16 устройств. Длина кабеля между двумя узлами не более 4,5 м, иначе информация может исказиться. К данной шине можно подключать все устройства, которые под-ключают к шине SCSI. Это позволяет объединять компьютер с бытовой элек-троникой. Есть две модели IEEE 1394 a и IEEE 1394 b.
В Windows’98 есть драйверы для портов этой шины, а в BIOS есть под-держка работы устройств этой шины.

0

13

Предваренная, скулемовская и клаузальная формы. Логическое следование

0


Вы здесь » Форум МГОУ Прокопьевск » Московский Государственный Открытый Университет » Вопроссы и ответы по госуа ПОМОГАЕМ ВСЕ