Файл: Межсетевая Операционная Система Cisco.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.02.2024

Просмотров: 34

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Хабаровский институт инфокоммуникаций (филиал)

Федерального государственного образовательного учреждения

высшего образования

«Сибирский государственный университет телекоммуникаций и информатики»

(СибГУТИ)

КУРСОВАЯ РАБОТА

по дисциплине Операционные системы

на тему: «Межсетевая Операционная Система Cisco»


Выполнил студент группы:

МТС 1/21










Макаров С.В..




(подпись)




(фамилия и инициалы)

Проверил:

старший преподаватель







(должность)













Крещенко В.П.




(подпись)




(фамилия и инициалы)


Хабаровск 2023 г.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

Стр. 3

УСТРОЙСТВО ОПЕРАЦИОННЫХ СИСТЕМ.

Стр. 3

УПРАВЛЕНИЕ РЕСУРСАМИ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА И МНОГОЗАДАЧНОСТЬ

Стр. 3

ПРИОРИТЕТНОЕ ПРЕРЫВАНИЕ ВЫПОЛНЕНИЯ

Стр. 5

УПРАВЛЕНИЕ ПАМЯТЬЮ

Стр. 6

ПРЕРЫВАНИЯ

Стр. 7

СТРУКТУРА ОПЕРАЦИОННОЙ СИСТЕМЫ IOS

Стр. 7

ОРГАНИЗАЦИЯ ПАМЯТИ

Стр. 9

ПУЛЫ ПАМЯТИ

Стр. 13

ПРОЦЕССЫ В СИСТЕМЕ IOS

Стр. 15

ЦИКЛ ЖИЗНИ ПРОЦЕССА

Стр. 16

ПРИОРИТЕТЫ ПРОЦЕССОВ В СИСТЕМЕ IOS

Стр. 18

ЯДРО СИСТЕМЫ IOS

Стр. 22

ИСПОЛЬЗОВАНИЕ РЕСУРСОВ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА.

Стр. 24

МЕНЕДЖЕР ПАМЯТИ

Стр. 26

ПРОБЛЕМЫ, СВЯЗАННЫЕ С ВЫДЕЛЕНИЕМ ПАМЯТИ

Стр. 32

СИСТЕМНЫЕ БУФЕРЫ

Стр. 34

ДРАЙВЕРЫ УСТРОЙСТВ

Стр. 41

ЗАКЛЮЧЕНИЕ

Стр. 53

СПИСОК ИСПЛЬЗОВАННЫХ ИСТОЧНИКОВ

Стр. 53



ВВЕДЕНИЕ.

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

Устройство операционных систем.

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

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

Управление ресурсами центрального процессора и многозадачность.

Некоторые операционные системы позволяют выполнять только одну программу в конкретный промежуток времени (таким образом, например, работает большинство систем семейства MS-DOS). Однако большинство современных операционных систем позволяет приложениям функционировать совместно. Ситуация, когда программы выполняются одновременно, называется многозадачностью (multitasking), а операционная система, позволяющая работать в таком режиме, — многозадачной операционной системой (multitasking operating system). Компьютерные программы, написанные для многозадачных систем, сами зачастую

содержат несколько независимых задач, выполняющихся параллельно. Подобные маленькие программы-задачи получили название потоков (threads), поскольку они все вместе формируют единый поток выполняемых инструкций программы. Каждый поток снабжен персональным набором значений регистров центрального процессора — контекстам (context). Потоки, выполняемые внутри одной программы, могут использовать общую область оперативной памяти. Группа потоков, разделяющих общее пространство памяти и совместно пользующихся ресурсами операционной системы, носит название процесса (process). Если процессор и операционная система поддерживают работу с так называемой виртуальной памятью, то каждый отдельно взятый процесс может выполняться в своем адресном пространстве, защищенном от доступа со стороны других процессов.

Поскольку в конкретный момент времени процессор может отрабатывать инструкции только одной программы, операционная система должна сама решать, какие именно наборы инструкций (потоки) будут выполняться. Процесс принятия решений такого рода называется планированием (scheduling). Планирование задач обычно возлагают на центральную часть операционной системы — ядро (kernel). В зависимости от специфики приложений, на исполнение которых рассчитана конкретная операционная система, могут использоваться различные механизмы планирования потоков. Различные типы приложений (пакетные приложения, интерактивные, программы реального времени) по-разному загружают центральный процессор. Поэтому в целом производительность системы существенно зависит от выбранного механизма планирования. Простейший метод планирования заключается в выстраивании всех потоков в порядке их появления и выполнении каждого потока до его полного завершения. Этот механизм получил название исполнение до полного завершения в порядке FIFO (first-in-first-out — аналог очереди: первым вошел — первым вышел).

Несомненными преимуществами данного метода планирования являются простота реализации, очень низкий показатель вычислительных затрат и его “справедливость” — все потоки обрабатываются поочередно по мере их появления. Рассмотренный метод планирования хорошо применим для пакетных и некоторых транзакционных приложений, которые последовательно обрабатывают данные, а затем завершают свою работу. В тоже время данная схема абсолютно не применима для интерактивных приложений и приложений реального времени. Поскольку интерактивные программы должны оперативно обслуживать внешние устройства и реагировать на команды пользователя,
такие приложения требуют быстрого, хотя и кратковременного доступа к ресурсам центрального процессора. Одним из путей решения данной проблемы является назначение приоритетов для каждого потока. Критичные по времени выполнения потоки, требующие оперативности со стороны центрального процессора, наделяются более высоким приоритетом, нежели, скажем, пакетные приложения. Потоки с более высоким приоритетом могут напрямую перемешаться в начало очереди ожидающих выполнения потоков. Если же в очереди присутствует несколько потоков с одинаковым приоритетом, то они выполняются в порядке их появления (так же, как и для обычного планирования FIFO). Описанный метод планирования носит название приоритетное исполнение до полного завершения (run-to-completion priority scheduling).

Несмотря на то что приоритетное планирование задач имеет несомненные преимущества перед планированием FIFO, оно все же имеет серьезный недостаток — поток с высоким приоритетом может монополизировать использование центрального процессора. К тому же, если процессор уже занят выполнением потока с низким приоритетом, отнимающем больше процессорного времени, потоки с более высоким приоритетом “застревают” в очереди на выполнение, ожидая освобождения процессора. Для решения возникшей проблемы рассмотренный метод планирования должен иметь возможность откладывать (прерывать) выполнение текущего потока, таким образом, чтобы другие потоки могли пользоваться ресурсами центрального процессора.

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

Вынужденная остановка выполнения одного потока с целью предоставления ресурсов центрального процессора называется приоритетным прерыванием (preemption), а соответствующий метод планирования — планированием с приоритетным прерыванием (preemptive scheduling, или "преемптивное" планирование). Функция преемптивного прерывания всецело возлагается на ядро операционной системы, которое периодически меняет выполняемые процессором потоки путем переключения контекстов (context switch). Сигналом, по которому будет происходить переключение контекстов, может выступать, к примеру, системный таймер или же прямой вызов функции ядра системы. В первом случае каждому потоку выделяется промежуток времени выполнения центральным процессором. По истечении этого времени поток искусственно прерывается, и ресурсы передаются следующему. Если же поток сам
решил передать полномочия своим конкурентам, он вызывает специальную функцию ядра системы, которая и осуществляет переключение потоков. Итак, когда поступает сигнал на переключение контекстов, ядро выбирает очередной поток из очереди, а прерванный поток возвращает назад ожидать следующей возможности использовать ресурсы процессора.

Основные преимущества многозадачности с приоритетным прерыванием:

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

  2. Стабильность. У потоков нет никакой возможности монополизировать использование ресурсов центрального процессора. А вошедший в бесконечный цикл поток (попросту “зависший”) никак не повлияет на выполнение других потоков. Конечно, рассмотренный метод планирования имеет и свои недостатки, которые перечислены ниже.

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

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

Управление памятью.

Операционная система также осуществляет управление оперативной памятью компьютера. Обычно память разделяется на различные части: одна часть используется для размещения кода (инструкций, выполняемых центральным процессором), другая — для программных данных. Свободная область памяти, из которой система может динамически выделять области для последующего использования, получила название кучи (heap). Некоторые операционные системы позволяют процессам адресовать большее пространство памяти, нежели физически установлено в компьютере, — это так называемая виртуальная память (virtual memory). Механизм виртуальной памяти позволяет расширить область доступной памяти за счет использования дополнительного носителя, такого как жесткий диск. Использование виртуальной памяти базируется на аппаратной особенности некоторых процессоров, внутри которых содержится так называемый блок управления памятью (memory management unit — MMU). Механизм MMU автоматически переадресует запросы или к оперативной памяти (random access memory — RAM), или к дополнительному носителю (жесткий диск), в зависимости от того, где в действительности находятся запрашиваемые данные. Использование механизма MMU также позволяет защищать фрагменты памяти, помечая их атрибутом “только для чтения” или вообще исключая из операций с картой памяти.