Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. ETerra: В советском обществе было много того, что Вам мешало?
  2. I ВВОДНАЯ ЧАСТЬ
  3. I часть
  4. I часть «Механика».
  5. I часть. РОССИЯ
  6. I. ВВОДНАЯ ЧАСТЬ
  7. I. Вводная часть
  8. I. Паспортная часть
  9. I. ПАСПОРТНАЯ ЧАСТЬ
  10. I. Паспортная часть.

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

16) Перспективные типы процессоров

 

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

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

Ассоциативные системы относятся к классу: один поток команд – множество потоков данных (SIMD = Single Instruction Multiple Data). Эти системы включают большое число операционных устройств, способных одновременно по командам управляющего устройства вести обработку нескольких потоков данных. В ассоциативных вычислительных системах информация на обработку поступает от ассоциативных запоминающих устройств (АЗУ), характеризующихся тем, что информация в них выбирается не по определенному адресу, а по ее содержанию.)

- клеточные и ДНК-процессоры (структура процессора – это структура молекулы ДНК. А набор команд – это перечень биохимических операций с молекулами. Принцип устройства компьютерной ДНК-памяти основан на последовательном соединении четырех нуклеотидов (основных кирпичиков ДНК-цепи). Три нуклеотида, соединяясь в любой последовательности, образуют элементарную ячейку памяти – кодон, совокупность которых формирует затем цепь ДНК. Основная трудность в разработке ДНК-компьютеров связана с проведением избирательных однокодонных реакций (взаимодействий) внутри цепи ДНК. Однако прогресс есть уже и в этом направлении. Существует экспериментальное оборудование, позволяющее работать с одним из 1020 кодонов или молекул ДНК. Другой проблемой является самосборка ДНК, приводящая к потере информации. Ее преодолевают введением в клетку специальных ингибиторов – веществ, предотвращающих химическую реакцию самосшивки.

Использование молекул ДНК для организации вычислений – это не слишком новая идея. Теоретическое обоснование подобной возможности было сделано еще в 50-х годах прошлого века (Р.П. Фейманом). В деталях эта теория была проработана в 70-х годах Ч. Бенеттом и в 80-х М. Конрадом. Первый компьютер на базе ДНК был создан еще в 1994 г. американским ученым Леонардом Адлеманом. Он смешал в пробирке молекулу ДНК, в которой были закодированы исходные данные, и специальным образом подобранные ферменты. В результате химической реакции структура ДНК изменилась таким образом, что в ней в закодированном виде был представлен ответ задачи. Поскольку вычисления проводились в ходе химической реакции с участием ферментов, на них было затрачено очень мало времени.

Вслед за работой Адлемана последовали другие. Ллойд Смит из Университета Висконсин решил с помощью ДНК задачу доставки четырех сортов пиццы по четырем адресам, которая подразумевала 16 вариантов ответа. Ученые из Принстонского университета решили комбинаторную шахматную задачу: при помощи РНК нашли правильный ход шахматного коня на доске из девяти клеток (всего их 512 вариантов).

Ричард Липтон из Принстона первым показал, как, используя ДНК, кодировать двоичные числа и решать проблему удовлетворения логического выражения. Суть ее в том, что, имея некоторое логическое выражение, включающее n логических переменных, нужно найти все комбинации значений переменных, делающих выражение истинным. Задачу можно решить только перебором 2n комбинаций. Все эти комбинации легко закодировать с помощью ДНК, а дальше действовать по методике Адлемана. Липтон предложил также способ взлома шифра DES (американский криптографический), трактуемого как своеобразное логическое выражение.

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

А в 2001 г. Шапиро удалось реализовать вычислительное устройство на основе ДНК, которое может работать почти без вмешательства человека. Система имитирует машину Тьюринга — одну из фундаментальных концепций вычислительной техники. Машина Тьюринга шаг за шагом считывает данные и в зависимости от их значений принимает решения о дальнейших действиях. Теоретически она может решить любую вычислительную задачу. По своей природе молекулы ДНК работают аналогичным образом, распадаясь и рекомбинируясь в соответствии с информацией, закодированной в цепочках химических соединений.

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

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

В конце февраля 2002 г. появилось сообщение, что фирма Olympus Optical претендует на первенство в создании коммерческой версии ДНК-компьютера, предназначенного для генетического анализа. Машина была создана в сотрудничестве с доцентом Токийского университета Акирой Тояма.

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

)

- клеточные компьютеры

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

- нейронные процессоры( тесно связано с созданием компьютеров нового поколения на основе принципов обработки информации, заложенных в искусственных нейронных сетях (НС). Первые практические работы по искусственным нейросетям и нейрокомпьютерам начались еще в 40-50-е годы. Под искусственной нейронной сетью (рис.4.1) обычно понимают совокупность элементарных преобразователей информации, называемых «нейронами», которые определенным образом соединены друг с другом каналами обмена информации – «синаптическими связями».


Рисунок 4.1 – Нейронная сеть

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

 

- процессоры с многозначной (нечеткой логикой) (Идея построения процессоров с нечеткой логикой (fuzzy logic) основывается на нечеткой математике. Математическая теория нечетких множеств, предложенная проф. Л.А. Заде, являясь предметом интенсивных исследований, открывает все более широкие возможности перед системными аналитиками. Основанные на этой теории различные компьютерные системы, в свою очередь, существенно расширяют область применения нечеткой логики.
Подходы нечеткой математики позволяют оперировать входными данными, непрерывно меняющимися во времени, и значениями, которые невозможно задать однозначно, такими, например, как результаты статистических опросов. В отличие от традиционной формальной логики, известной со времен Аристотеля и оперирующей точными и четкими понятиями типа истина и ложь, да и нет, ноль и единица, нечеткая логика имеет дело со значениями, лежащими в некотором (непрерывном или дискретном) диапазоне.
Функция принадлежности элементов к заданному множеству также представляет собой не жесткий порог «принадлежит – не принадлежит», а плавную сигмоиду, проходящую все значения от нуля до единицы. Теория нечеткой логики позволяет выполнять над такими величинами весь спектр логических операций – объединение, пересечение, отрицание и др.
Согласно знаменитой теореме FAT (Fuzzy Approximation Theorem), доказанной Коско, любая математическая система может быть аппроксимирована системой, основанной на нечеткой логике. Свое второе рождение теория нечеткой логики пережила в начале восьмидесятых годов, когда сразу несколько групп исследователей (в основном в США и Японии) занялись созданием электронных систем различного применения, использующих нечеткие управляющие алгоритмы. Используя преимущества нечеткой логики, заключающиеся в простоте содержательного представления, можно упростить проблему, представить ее в более доступном виде и повысить производительность системы.
Задачи с помощью нечеткой логики решаются по следующему принципу:

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

Оказалось возможным создание нечеткого процессора, позволяющего выполнять различные нечеткие операции и приближенные рассуждения (нечеткий вывод) в соответствии с правилами логического вывода. В 1986 году в AT and T Bell Labs создавались процессоры с «прошитой» нечеткой логикой обработки информации. В начале 90-х компания Adaptive Logic из США выпустила кристалл, сделанный по аналогово-цифровой технологии. Он позволит сократить сроки конструирования многих встроенных систем управления реального времени, заменив собой традиционные схемы нечетких микроконтроллеров. Аппаратный процессор нечеткой логики второго поколения принимает аналоговые сигналы, переводит их в нечеткий формат, затем, применяя соответствующие правила, преобразует результаты в формат обычной логики и далее – в аналоговый сигнал. Все это осуществляется без внешних запоминающих устройств, преобразователей и какого бы то ни было программного обеспечения нечеткой логики. Этот микропроцессор относительно прост по сравнению с громоздкими программными обеспечениями. Но так как его основу составляет комбинированный цифровой/аналоговый кристалл, он функционирует на очень высоких скоростях (частота отсчетов входного сигнала – 10 кГц, а скорость расчета – 500 тыс. правил/с), что во многих случаях приводит к лучшим результатам в системах управления по сравнению с более сложными, но медлительными программами.)

 

17) Проектирование программного обеспечения. Средства информатизации- классификация.

Классификация средств информатизации:

- информационные технологии, коммуникативные средства

- техническое обеспечениев

- программное обеспечение

- психологическое и педагогическое методико-дидактическое обеспечение.

 

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

 

· Анализ предметной области и создание ТЗ (взаимодействия с заказчиком)

· Проектирование структуры программы

· Кодирование (набор программного кода согласно проектной документации)

· Тестирование и отладка

· Внедрение программы

· Сопровождение программы

· Утилизация


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

UML — является графическим языком для визуализации, описания параметров, конструирования и документирования различных систем (программ в частности). Диаграммы создаются с помощью специальных CASE средств, например Rational Rose (http://www-01.ibm.com/software/rational/) и Enterprise Architect (http://www.sparxsystems.com.au/). На основе технологии UML строится единая информационная модель. Приведенные выше CASE средства способны генерировать код на различных объектно-ориентированных языках, а так же обладают очень полезной функцией реверсивного инжиниринга. (Реверсивный инжиниринг позволяет создать графическую модель из имеющегося программного кода и комментариев к нему.)

 

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

· Архитектура ПО;

· Устройство компонентов ПО;

· Пользовательские интерфейсы.

 

 

18) Программнные средства информатизации

 

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

Для управления аппаратными средствами компьютеров нужны комплексы программ операционной системы (ОС). В настоящее время наиболее распространенной для персональных компьютеров является операционная система Windows (фирмы Microsoft) в различных модификациях. Для организации сетей и управления их работой существуют специальные сетевые операционные системы, например система NetWare фирмы Novell. Операционные системы и сетевые операционные системы обеспечивают работоспособность компьютеров и возможность обмена данными между ними по локальной (или любой другой) сети.

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

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

 

 

19) Операционные системы. Определение, классификация

 

ОС - обеспечение работы компьютера

- обеспечение интерфейса с пользователем

- набор специальных программ

- управление аппаратурой

- совокупность системных программ

 

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

 

Классификация:

1. По особенности алгоритмов управления ресурсами:

- многозначные, однозначные

- многопользовательские, однопользовательские

- многопроцессорные, однопроцессорные

- поддерживающие многонитевую обработку

2. Типы аппаратных платформ:

- персональные компьютеры

- мини-компьютеры

- кластеры

- сети ЭВМ

3. По области использования:

- системы пакетной обработки

- системы разделения времени

- системы реального времени

4. По используемым методам построения:

- способы построения ядра системы

- объектно-ориентированный подход

- наличие нескольких прикладных сред

- распределенная организация

 

20) Операционные системы. Особенности алгоритмов управления ресурсами (процессором)

 

Поддержка многозадачности:

- однозначные

- многозадачные

Поддержка многопользовательского режима:

- однопользовательские

- многопользовательские

Варианты реализации многозадачности:

- вытесняющая

- невытесняющая

Поддержка многонитевости

Многопроцессорная обработка

 

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

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

однозадачные (например, 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.

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

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

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

 

 

21) Операционные системы. Типы аппаратных платформ

 

- мейнфреймы

- кластеры

- мини-компьютеры

- персональные компьютеры

- сети ЭВМ

- мобильные

 

 

 

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

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

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

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

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

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

 

 

22) OCUNIX. Определение, основные черты семейства операционных системы

 

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

Первая система UNIX была разработана в 1969 году в подразделении BellLabs компании AT&T. С тех пор было создано большое количество различных UNIX-систем. Юридически лишь некоторые из них имеют полное право называться «UNIX»; остальные же, хотя и используют сходные концепции и технологии, объединяются термином «UNIX-подобные» (англ. Unix-like). Для краткости в данной статье под UNIX-системами подразумеваются как истинные UNIX, так и UNIX-подобные ОС.

Некоторые отличительные признаки UNIX-систем включают в себя:

использование простых текстовых файлов для настройки и управления системой;

широкое применение утилит, запускаемых в командной строке;

взаимодействие с пользователем посредством виртуального устройства — терминала;

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

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

В настоящее время UNIX-системы используются в основном на серверах, а также как встроенные системы для различного оборудования. На рынке ОС для рабочих станций и домашнего применения лидером является MicrosoftWindows, UNIX занимает только второе (MacOSX), третье (GNU/Linux) и многие последующие места.

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

 

23) Архитектура OCUNIX

 

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

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

Все обращения к ядру системы можно разделить на две категории: программа вызывает подсистему управления файлами или подсистему управления процессами. Первая отвечает за все, что связано с файлами: управление, размещение, доступ. Процессы же - это, в общем случае, любые запущенные программы. Поэтому подсистема управления процессами служит для их жизнеспособности, синхронизации и управления. Важно так же и то, что файловая подсистема и подсистема управления процессов могут общаться друг с другом: любой процесс может вызывать системные API для работы с файлами. Прелесть UNIX состоит в том, что эти API универсальны (да и в Windows наблюдается та же картина). Вот самые главные из них: open, close, read, write, stat, chown, chmod (суть почти всех вызовов интуитивно понятна из названия, кроме, разве что, последних трех, поэтому поясню - они служат для управления атрибутами файлов, информации о владельце и прав доступа) и др. Каждый из этих системных вызовов в программе на языке С является обычной функцией. Информацию по любому из них можно запросто найти в man.

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

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

Чуть выше мы перечисляли системные API для управления файлами. Теперь рассмотрим вызовы, служащие для работы с процессами: fork (создает новый процесса), exec (выполняет процесс), exit(завершает исполнение процесса), wait (один из способов синхронизации), brk (управляет памятью, выделенной процессу), signal (обработчики исключений) и др.

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

Второй модуль - планировщик. Его задача не менее важна. UNIX - мультизадачная ОС, то есть одновременно может выполняться множество процессов. Мы, однако, знаем, что в фиксированный момент времени на одном процессоре может выполняться только одна команда. Именно поэтому нужен виртуальный рефери, который будет определять, какому процессу исполняться сейчас, а какому - через секунду. На практике же планировщик переключает контекст, то есть перед тем, как остановить исполнение какого-то процесса, он запоминает состояние регистров, памяти и т. д., а уже после этого запускает другой процесс в его собственном адресном пространстве. И еще один тонкий момент: каждый запущенный процесс "думает", что он единственный. Дополнительно существует механизм приоритетов. Очевидно, чем выше приоритет, тем быстрее начнет исполняться процесс. Процессы могут также обмениваться между собой информацией. В случае их синхронного взаимодействия синхронизацию осуществляет модуль взаимодействия (например, функция wait).

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

 

24) Основные принципы работы OCUNIX

 

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

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

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

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

 

25) Права пользователей и классы доступа

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

· user (u) - владелец файла

· group (g) - группа пользователей, владеющих файлом

· others (o) - прочие пользователи

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

· read (r) - чтение

· write (w) - запись

· execute (x) – выполнение

В итоге запись прав выглядит как rwxrwxrwx, где назначены права соответсвенно для u, g и o.

Чаще представляют в восмеричной системе в виде набора из трех чисел. Вот наиболее распостранненые комбинации назначенных прав:

· 777 - все могут читать записывать и выполнять файл

· 700 - владелец файла может читать, писать и выполнять файл, для всех остальных будет в доступе отказано

· 555 - только чтение и выполнение файла для всех (как правило используется для системных файлов)

· 444 - только файла для всех категорий пользователей

· 666 - все могут читать и писать файл, но не могут его выполнить

Подсказочка:

000 = 0 100 = 4

001 = 1 101 = 5

010 = 2 110 = 6

011 = 3 111 = 7

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

· chmod [u,g,o,a] {+-=} rwx file1 file2... filen (u – владел., g - группа, o - остальные, a - все, + - добвить права, - - снять, = - установить, r - на чтение, w - на запись, x - на выполнение, file1... filen - имена файлов, к которым применяются права)

К примеру, разрешить всем читать файл testfile.txt:

· chmod a+r testfile.txt

Иногда возникает необходимость сменить владельца файла для дальнейшего распределения прав доступа к нему от имени обычного пользователя. Смена пользователя производится командой chown (сделать это может только суперадминистратор):

· chown owner file1 file2... filen

Например, установить владельцем файла testfile.txt пользователя alex:

· chown alex testfile.txt

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

Файловые флаги изменяются при помощи утилиты chflags посредством простого интерфейса. К примеру, чтобы установить системный признак неудаляемости на файл file1, выполните следующую команду:

· # chflags sunlink file1

Чтобы отключить флаг неудаляемости, просто выполните предыдущую команду с ключом ''no'' перед параметром sunlink. Вот так:

· # chflags nosunlink file1

Чтобы просмотреть флаги этого файла, воспользуйтесь командой ls(1) с параметрами -lo:

· # ls -lo file1

 

26) Монтирование файловой системы. Определение, принцип, синтаксис команды монтирования

 

Монтирование файловой системы — процесс, подготавливающий раздел диска к использованию операционной системой.

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

Операция монтирования состоит из нескольких этапов:

· Определение типа монтируемой системы

· Проверка целостности монтируемой системы

· Cчитывание системных структур данных и инициализация соответствующего модуля файлового менеджера (драйвера файловой системы)

· Установка флага, что система смонтирована. При корректном размонтировании этот флаг сбрасывается, если при загрузке система определяет, что он не сброшен, значит работа завершена некорректно и возможно ФС нуждается в починке.

· Включение новой файловой системы в общее пространство имен.

UNIX-подобных системах для монтирования съемных носителей применяется утилита командной строки mount:

· mount [опции] <-t тип> [-o опции монтирования] <устройство> <точка монтирования>

К примеру, мы хотим временно примонтировать наш раздел в /mnt:

· mount -t ext3 /dev/hdb1 /mnt (-t указывает тип файловой системы, которая предположительно находится на разделе)

После того, как файлы скопированы, мы можем отмонтировать наш раздел. Для этого воспользуйтесь командой umount:

· umount <точка монтирования или устройство> (к примеру: umount /mnt)

 

27) Современные архитектуры файловых систем: определение файловых систем, классификация

 

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

Классификация:

 

28) Структура магнитного диска

 

- сектор

- дорожка

- цилиндры

- поле служ. инф.

- физический адрес сектора

- раздел

- логический диск

 

29) Файловые системы FAT, HPFS, и др. (Windows)

 

FAT - система с точной записью. Это означает, что при необходимости изменения структуры тома дается команда записи на диск. Недостаток такой системы - медленное выполнение преобразованных в последовательность операций записи. Дело в том, что первая запись на диск должна быть завершена прежде, чем начнется другая и т.д. Это не самое эффективное использование возможностей мощных компьютеров. FAT не обеспечивает функций защиты данных и автоматического восстановления. Эта система несколько раз модернизировалась для более эффективной работы с дисками больших обьемов и мощными персональными компьютерами. Начиная с MS DOS 4.0, элементы системы были увеличены с 12 до 16 бит, таким образом появилась возможность использования дисковых разделов, превышающих по обьему 32 Мбайт. Файловая система Windows NT FAT функционирует аналогично MS DOS и Windows.

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

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

 

30) Файловые системы s5fs,FFS и др. (OCUNIX)

 

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


Файловая система s5fs занимает раздел диска и состоит из трех основных компонентов:

 

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

 




Дата добавления: 2015-01-29; просмотров: 63 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.049 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав