Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

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

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


Предполагаемая аппаратная среда


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


Основные различия между этими двумя режимами:

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

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


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


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


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


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


Уровни прерывания процессора


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


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


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


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


Резюме


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


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



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


Файловая система UNIX характеризуется:

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

Файловая система организована в  виде  дерева  с  одной  исходной  вершиной,
которая называется корнем (записывается: "/"); каждая вершина в  древовидной
структуре файловой системы, кроме  листьев,  является  каталогом  файлов,  а
файлы, соответствующие дочерним вершинам,  являются  либо  каталогами,  либо
обычными файлами, либо файлами устройств. Имени файла предшествует  указание
пути поиска, который описывает  место  расположения  файла  в  иерархической
структуре  файловой  системы.  Имя  пути  поиска   состоит
Пред.2122232425След.
скачать работу

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

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ