скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыКурсовая работа: Архитектура системы UNIX, общее описание, модель безопасности

Курсовая работа: Архитектура системы UNIX, общее описание, модель безопасности

Введение

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

Все пользователи ОС UNIX так или иначе наверняка работают с файлами. В данной работе рассматривается древовидная файловая структура UNIX.

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

Операционная система UNIX - это многопользовательская система с разделением времени. Сеанс в этой системе всегда начинается с авторизации. Причем, это правило универсально и не зависит от того, где именно (к примеру, на рабочей станции / интернет - сервере) запускается версия UNIX. В этом и заключается одно из ключевых отличий UNIX от других операционных систем. Одно из, но не единственное. UNIX находится на вершине самых популярных в мире операционных систем благодаря тому, что ее сопровождает и распространяет большое число компаний. Существуют версии UNIX для многих систем, начиная от персонального компьютера, до суперкомпьютеров, таких как Cray Y-MP.

Цель курсовой работы состоит в изучении общей структуры системы, выделении и развитии ее ключевых особенностей и свойств, понимание которых позволит сложить комплексное впечатление о системе UNIX.

Задачи: - раскрыть понятие операционной системы, ее функции и отличия от других;

- рассмотреть архитектуру ядра системы; - ознакомиться с классической моделью безопасности UNIX и UNIX – like ОС;

- рассмотреть технические особенности построения многопроцессорных систем на базе рассматриваемой системы;


Определение

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

История

Система Multics. В 1965 году компания Bell Telephone Laboratories, объединив собственные труды с фирмой General Electric и проектом MAC Массачусетского научно-технического ВУЗа, обратилась к исследованию новейшей операционной системы, получившей имя Multics. Перед системой Multics были поставлены разнообразные цели, среди которых - обеспечить одновременный доступ к ресурсам ЭВМ множества пользователей, обеспечить необходимую скорость вычислений и хранение данных и дать возможность пользователям при необходимости коллективно использовать данные. Многие создатели, позднее участвовавшие в разработке ранних версий системы UNIX, приняли участие в работе над системой Multics в организации Bell Laboratories. В попытке усовершенствовать среду программирования, Кен Томпсон, Дэннис Риччи и некоторые другие сотрудники Исследовательского центра по информатике создали на бумаге проект файловой системы, который позднее получил развитие в ранних версиях UNIX.

Позднее, Томпсон получил доступ к малоиспользуемой машине под названием PDP – 7, что позволило ему изучить ее и выполнить свой проект системы, включавший в себя начальную версию файловой системы, систему обеспечения управления процессами и скудный набор утилит. Новая система получила название UNIX (аналогия с Multics). Придумал это название еще один сотрудник Исследовательского центра – Брайн Керниган.

Для работы в реальном проекте (обработка текстов) в 1971 году система была перенесена на машину PDP – 11.

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

UNIX оказалась простой и понятной для большинства разработчиков, благодаря чему начали развиваться самостоятельные направления системы. В течение 1977 – 82 годов фирма Bell Lab., объединив несколько наиболее удачных вариантов, выпустила UNIX версии 3. С 1983 года начала распространяться версия 5.

Причины популярности системы UNIX

Популярность и востребованность системы во многом объясняются следующими особенностями:

·  Система написана на языке высокого уровня, благодаря чему ее легко читать, понимать, изменять и переносить на другие машины. Первый вариант системы на Си имел на 20-40 % больший объем и работал медленнее по сравнению с вариантом на ассемблере, однако преимущества использования языка высокого уровня намного перевешивают недостатки.

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

·  Наличие элементарных средств, позволяющих создавать сложные программы из более простых.

·  Наличие иерархической файловой системы, легкой в сопровождении и эффективной в работе.

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

·  Наличие простого, последовательного интерфейса с периферийными устройствами.

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

Последовательность и простота вообще являлись и являются характерными для систем UNIX и UNIX – like.

Структура системы

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

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

Многие прикладные программы, редакторы, программные пакеты и т.п. со временем становятся синонимичны понятию “система UNIX”. Однако, следует иметь ввиду, что все они пользуются ресурсами программ нижнего уровня и, в конечном счете, ядра. Т.е. в каноническом, наиболее правильном варианте понимания, к словам “система UNIX” относится именно ядро.

Первоначальная загрузка

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

В системе UNIX процедура начальной загрузки заканчивается считыванием с диска в память блока начальной загрузки (нулевого блока). Программа, содержащаяся в этом блоке, загружает из файловой системы ядро ОС (например, из файла с именем "/unix" или с другим именем, указанным администратором). После загрузки ядра системы в память, ядро запускается на выполнение.

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

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

Итак, файлы характеризуются:

·  Иерархической структурой,

·  согласованной обработкой массивов данных,

·  возможностью создания и удаления файлов,

·  динамическим расширением файлов,

·  защитой информации в файлах,

·  трактовкой периферийных устройств как файлов.

Файловая система представляет собой дерево, с единственной основой – корнем (root), обозначающимся как “/”.

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

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

Права доступа

Права доступа определяются установкой трех остальных флагов (битов разрешения) на файлах для 3 – х действий: чтение, запись, выполнение. (rwe) Делается эта установка для 3 – х разных случаев: для владельца файла, для общего пользования и для прочих случаев.

Устройства

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

Процессы

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

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

1.  Процесс выполняется в режиме задачи.

2.  Процесс выполняется в режиме ядра.

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

4.  Процесс приостановлен и находится в оперативной памяти.

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

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

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

8.  Процесс вновь создан и находится в переходном состоянии; процесс существует, но не готов к выполнению, хотя и не приостановлен. Это состояние является начальным состоянием всех процессов, кроме нулевого.

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

Диспетчеризация процессов в системе UNIX

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

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

Общий алгоритм диспетчеризации

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

Системные часы / таймер

В функции программы обработки прерываний по таймеру входит:

·  перезапуск часов

·  вызов на исполнение функций ядра, использующих встроенные часы

·  поддержка возможности профилирования выполнения процессов в режимах ядра и задачи

·  сбор статистики о системе и протекающих в ней процессах

·  слежение за временем

·  посылка процессам сигналов "будильника" по запросу

·  периодическое возобновление процесса подкачки

·  управление диспетчеризацией процессов

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

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

Функции операционной системы

Данные функции довольно очевидны. Среди них:

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

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

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

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

Прерывания и особые ситуации:

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

Страницы: 1, 2


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.