Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Расчетное задание / КМ2 / Ответы КМ2

.pdf
Скачиваний:
4
Добавлен:
16.05.2024
Размер:
17.54 Mб
Скачать

публичная лицензия», которая во всем мире используется для лицензирования свободно распространяемых программных продуктов. Эта лицензия указывает, что вы можете и чего не можете делать с кодом. Пользователи могут бесплатно использовать, копировать, модифицировать и распространять исходные коды и двоичные файлы. Основное ограничение касается отдельной продажи или распространения двоичного кода без исходных текстов. Исходные коды должны либо поставляться вместе с двоичными файлами, либо предоставляться по требованию. Сам же проект GNU основан в 1983 году. Его целью являлось создание UNIXподобной ОС, состоящей только из свободно распространяемых программных продуктов. Таким образом, ОС Linux разрабатывается только на основе усилий добровольцев. В тоже время многие крупные корпорации на добровольной основе вносят свой программный код в систему Linux. Весь программный код системы и прикладных программ, следуя лицензии GPL, является открытым и может быть проанализирован, что является важным с точки зрения компьютерной безопасности.

Linux старается поддерживать стандарты POSIX, ANSI и другие, если это возможно. Существуют разные дистрибутивы Linux. Наиболее известные: Debian, Ubuntu, openSUSE, Mandriva, Slackware, Archlinux, RedHat/Fedora/CentOS и т.д.. Под дистрибутивом здесь понимается проект, который управляет удаленной коллекцией системных программ, пакетов приложений, доступных для загрузки и установки через Интернет. Дистрибутивы поддерживаются добровольцами через самоорганизующиеся группы. Дистрибутивы используют специальные менеджеры управления установкой - удаления программных пакетов.

Linux поддерживает большое количество программных языков. Основная часть является компиляторами из так называемой GNU коллекции. Она включает в себя языки С/С+, Java, Pascal, Fortran, Ada. Кроме того существует большой набор коммерческих компиляторов, поддерживающих Linux. Многие программные продукты, используемые под MS Windows , также имеют свою версию под Linux. Интересной особенностью Linux является также то, что после установки дистрибутива, пользователь может обновлять любые его компоненты часто независимо от остальных. Более того, для этого нет необходимости использовать дистрибутив, а можно обращаться напрямую на сайт разработчиков.

До ядра 2.6.23 в Linux был реализован алгоритм О(1) планирования выполнения процессов [24]. Этот алгоритм является статическим, т.е время, затрачиваемое на выбор процесса для выполнения, постоянно и не зависит от числа процессов в системе в данный

61

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

С ядра 2.6.23 по настоящий момент в Linux используется алгоритм «полностью честного планирования» процессов. Основная цель данного алгоритма максимизировать использование процессора одновременно максимизировав интерактивные свойства системы. Алгоритм сохраняет записи по планируемым процессам в бинарном дереве особого типа, называемом «красно-черное», которое обеспечивает честность выбора. Этот тип деревьев является самобалансирующимся. Т.е. в дереве всегда не существует такого пути, который бы был длиннее более чем в два раза, чем другие. Второе свойство «красно-черного» дерева в том, что операции над ним занимают времени О(log(N)) (N – количество узлов в дереве). Т.е. вставка или удаление задач проходит достаточно быстро.

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

62

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

Достаточно интересно организован механизм образования нового процесса в Linux и в других UNIX подобных системах. Когда процесс создает новый процесс, он вызывает системный вызов fork(). При выполнении fork() создается дескриптор создаваемого процесса и его идентификационный номер. Происходит копирование значений дескриптора родительского процесса в дочерний. На этой стадии адресное пространство родительского процесса не копируются, а оба процесса разделяют одно и тоже адресное пространство. Системный вызов exec() копирует новую программу в адресное пространство дочернего процесса. Т.к. оба процесса разделяют одно и то же пространство, запись новой программы вызывает страничную ошибку памяти. В этот момент ядро ОС назначает новые физические страницы памяти для дочернего процесса. Когда выполнение дочернего процесса закончено, то выполняется системный вызов exit(), который очищает данные процесса и уведомляет родительский процесс о завершении дочернего. В этот момент дочерний процесс называется «зомби». Дочерний процесс не будет полностью удален до уведомления родительского процесса через системный вызов wait(). Как только родительский процесс получает уведомление о завершении работы дочернего, он удаляет его данные и дескриптор процесса – рис. 12.

 

wait()

 

родительский

родительский

 

процесс

 

процесс

 

 

 

fork()

 

 

дочерний

 

дочерний

 

зомби

процесс

exec()

процесс

exit()

процесс

 

 

 

Рис. 12. Жизненный путь типичного процесса в ОС Linux.

63

Каждый процесс системы Linux на 32-разрядной машине обычно получает 3 Гбайт виртуального адресного пространства для себя, а оставшийся 1 Гбайт памяти резервируется для данных ядра. 1 Гбайт ядра не виден в пользовательском режиме. Распределение памяти для 32-х и 64-х разрядных версий приведено на рис 13 .

4 Гб

16 ЕБ

компоненты

компоненты

ядра ОС

ядра ОС

3 Гб

512 Гб

 

или

 

больше

Прикладные

Прикладные

программы

программы

а)

б)

Рис. 13 . Распределение памяти для 32-х (а) и 64-х (б) разрядных версий ОС Linux.

Здесь ЕБ обозначает величину эксабайт, что соответствует значению 1018 байт. Видно, что 64-х разрядная версия предоставляет практически неограниченное на сегодняшний день адресное пространство.

Linux отслеживает использование физической памяти, выделяет при

необходимости дополнительную память пользовательским процессам и компонентам

64

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

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

Важной особенностью Linux по сравнению с другими ОС, например, MS Windows является поддержка большого количества файловых систем. Современные ядра ОС Linux поддерживают практически все существующие на сегодняшний день файловые системы. Оригинальными файловыми системами Linux являются Ext2, Ext3, Ext4 и ReiserFS. Последние три есть журнальные файловые системы. В основе работы ядра с файлами лежит виртуальная файловая система, концепция которой представлена на рис. 14.

При использовании ОС типа Linux для задач ЯЭ необходимо помнить о всех плюсах и минусах. Существенным достоинством является полная открытость исходных кодов и лицензионная чистота. Также в мире существует гораздо меньшее количество вирусов для UNIXподобных систем. Опыт использования Linux для суперкомпьютеров и корпоративных систем показывает ее отличную масштабируемость и быстродействие. Использование семейства компиляторов GNU позволяет разрабатывать лицензионно чистые программные продукты. В мире имеется большой положительный опыт использования Linux в ЯЭ. Это упомянутая выше платформа для АСУТП, использование для тренажеров, применение на БЩУ (блочный щит управления).

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

65

приложение - cp

системный вызов – open(), read(), write()

Виртуальная файловая система – преобразование для каждой поддерживаемой файловой системе

ext2

ext3

XFS

JFS

ReisorFS

VFAT

NTFS

proc

Рис. 14. Концепция виртуальной файловой системы Linux.

Контрольные вопросы:

1.В каких случаях на современных компьютерах используют DOS?

2.Какие файлы необходимы для загрузки DOS?

3.Что применяют в DOS для запуска программ с большими требованиями по памяти?

4.Что я вилось причиной возникновения WINDOWS?

5.Основной недостаток WINDOWS 3.1 и причины возникновения семейства

WINDOWS 9х.

6.Как происходило развитие ОС WINDOWS NT?

7.Какие основные особенности ОС WINDOWS NT наиболее важно учитывать при применении в ядерной энергетике?

8.Основные особенности ОС LINUX.

9.Что такое процесс в LINUX?

10.Какие виды процессов в LINUX вы знаете?

11.Как осуществляется создание и развития процесса в LINUX?

12.Какие графические оболочки в LINUX вы знаете?

13.Различие WINDOWS и LINUX с точки зрения поддержки файловых систем.

66

5.СЕТЕВЫЕ ТЕХНОЛОГИИ В ЯЭ

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

5.1.Интернет

5.1.1. История создания

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

Идеология Интернет возникла в конце 50-х годов 20-го века, когда по заданию правительство США были выработаны основные принципы организацией управления страной в случае ядерной войны. Они состояли из следующих основных положений:

1.Управление организуется без наличия единого центра – децентрализовано.

2.Узлы управляемой системы могут быть связаны одновременно разными коммуникационными путями.

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

Эти достаточно простые принципы и легли в основу идеологии Интернет.

67

Мы не будем приводить здесь всю историю возникновения и развития Интернет. Имеет смысл только остановиться на ключевых датах. Прообразом Интернет явилась

ARPANET (Advanced Research Projects Agency Network), которая разрабатывалась в Калифорнийском университете, Стэнфордском исследовательском центре, университете штата Юта и университете штата Калифорния в Санта-Барбаре. Она была запущена в 1969 году, что можно и считать, очевидно, датой рождения Интернет. В 1971 году была разработана первая программа электронной почты. В 1973 году сеть стала международной с подключением первых иностранных организаций из Англии и Норвегии. В 1983 году в ARPANET перешла на стек протоколов TCP/IP подробное описание которого будет дано ниже, который продолжает быть основой Интернет и в настоящее время. В 1984 была разработана система DNS (Domain Name System) – система доменных имен. В 1989 в Европейском совете по ядерным исследованиям (CERN) родилась концепция всемирной паутины, и был разработан протокол http и язык html для ее реализации. В 1991 году всемирная паутина стала общедоступна. В 90-е годы Интернет объединил существующие в то время сети. Россия присоединилась к Интернету в 1990 году на базе научной сети созданной в Институте атомной энергии им. И. В. Курчатова и Минавтопроме.

5.1.2. Основные принципы

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

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

Часто выделяют единичную локальную компьютерную сеть LAN (local area network), объединение которых и составляет Интернет. Далее LAN объединяются в более крупную региональную сеть, которые в свою очередь могут сливаться или образовывать

68

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

Маршрутизаторы, применяемые для формирования сетей и подсетей внутри автономной системы, называются внутренними шлюзами (interior gateway - IG), а те, с помощью которых автономные системы подключаются к другим автономным системам

— внешними шлюзами (exterior gateway - EG).

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

Индивидуальные пользователи и компании-клиенты получают доступ к ресурсам Интернета при помощи интернет сервис провайдеров (ИСП). Соединение между клиентами и ИСП осуществляется на основе обычной телефонной линии (в основном устарело в настоящее время), через спутник, беспроводной сети, ADSL (Asymmetric Digital Subscriber Line — асимметричная цифровая абонентская линия), использование инфраструктуры кабельного телевидения и т.д. Общая структура Интернет представлена на рис. 15.

69

Как видно из представленной структуры Интернета, какого либо единого административного центра нет. В тоже время некие управляющие и координирующие структуры необходимы для согласования единой технической политики, разработки новых стандартов и распределения IP адресов и т.п. Для этих целей в мире существует две организации: ICANN (Internet Corporation for Assigned Names and Numbers) и ISOC (Internet Society).

 

LAN1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IG

 

 

 

 

 

LANi

 

 

 

 

 

 

 

 

 

 

IG

 

 

 

 

 

 

 

 

IG

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

EG

 

 

 

 

 

IG

 

 

 

 

 

 

АSi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

LAN2

 

IG

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

EG

 

АS1

 

 

 

 

 

 

EG

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

EG

EG

АS2

Рис. 15. Обобщенная структура Интернет на основе LAN, автономных систем (AS) и внутренних (IG) и внешних (EG) маршрутизаторов.

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

За нее ответственна организация IETF (Internet Engineering Task Force), которая занимается разработкой и внедрением стандартов Интернет и, в частности, стека протоколов TCP/IP и других протоколов Интернет. Организация использует принцип открытых стандартов и поэтому, какого либо формального участия в ней не требуется. Все сотрудники являются добровольцами. В то же время в определенной степени их работа финансируется спонсорами или по основному месту работы. В процессе работы комитеты IETF публикуют так называемые документы RFC (Request for Comments). В

70

Соседние файлы в папке КМ2