Ядро и вспомогательные модули ОС



Содержание

Введение...................................................................................................................2

Что такое операционная система...........................................................................3

Возникновение ОС..................................................................................................3

Архитектура ОС.......................................................................................................8

    Ядро и вспомогательные модули ОС..........................................................8

    Ядро в привилегированном режиме............................................................9

    Многослойная структура ОС.....................................................................10

    Микроядерная архитектура........................................................................10

Заключение.............................................................................................................15

Список литературы................................................................................................16

Введение

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

 

Операционная система, сокр. ОС (англ. operating system, OS) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных операционных систем общего назначения.То есть операционную системы можно назвать движущей силой нашего компьютера. Именно она даёт нам возможность взаимодействовать с компьютером. Она делает информацию, которую выдаёт нам компьютер, понятной для нашего восприятия, и в то же время переводит то, что мы вводим на компьютерный язык, чтобы компьютер смог выполнить поставленную перед ним задачу. Она является связующим звеном между аппаратурой компьютера и человеком.

Возникновение ОС

Идея компьютера была предложена английским математиком Чарльзом Бэбиджем (Charles Babage) в середине девятнадцатого века. Его механическая «аналитическая машина» так и не смогла по-настоящему заработать, потому что технологии того времени не удовлетворяли требованиям, необходимым для изготовления нужных деталей точной механики. Конечно, никакой речи об операционной системе для этого «компьютера» не шло.

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

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

Выполнение каждой программы стало включать большое количество вспомогательных работ: загрузка нужного транслятора (АЛГОЛ, ФОРТРАН, КОБОЛ и т.п.), запуск транслятора и получение результирующей программы в машинных кодах, связывание программы с библиотечными подпрограммами, загрузка программы в оперативную память, запуск программы, вывод результатов на периферийное устройство. Для организации эффективного совместного использования трансляторов, библиотечных программ и загрузчиков в штат многих вычислительных центров были введены должности операторов, профессионально выполнявших работу по организации вычислительного процесса для всех пользователей этого центра.

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

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

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

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

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

1)Монолитное ядро;

2)Микроядро;

3)Экзоядро;

4)Наноядро;

5)Гибридное ядро.

Но подробнее мы рассмотрим монолитное и модульное ядра, так как сначала операционная система Windows имела монолитное ядро, а позже усовершенствовалась до модульного ядра. « Монолитное ядро — классическая архитектура ядер операционных систем. Монолитные ядра предоставляют богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве». То есть в памяти нашего компьютера хранится информация, и каждой её составляющей соответствует число – адрес, который определяет место её хранения. Кстати, монолитное ядро сейчас всё равно является самой распространённой архитектурой ядер операционных систем. Монолитные ядра долго развивались и усовершенствовались. Сейчас они являются наиболее архитектурно зрелыми и пригодными к эксплуатации. Но, к сожалению, монолитное ядро имеет свои недостатки. Оно работает в одном адресном пространстве. Если вдруг произойдёт сбой в одном из компонентов, то нарушится работоспособность всей системы. Эти сбои невозможны в модульном ядре, о котором мы сейчас поговорим. «Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем компьютеров. В отличие от «классических» монолитных ядер, считающихся ныне устаревшими, модульные ядра, как правило, не требуют полной перекомпиляции ядра при изменении состава аппаратного компьютера».  Взамен этим функциям модульные ядра просто дополнительно загружают модули ядра, которые в свою очередь поддерживают то или иное аппаратное обеспечение. Например, модульное ядро может загрузить нужный для работы драйвер. Модульное ядро может загрузить модуль прямо во время работы системы, не перезагружая её. А также подгрузка модуля может выполняться при перезагрузке ОС. В это время ОС перестраивается на загрузку определенных модулей. Но, не смотря на новые возможности, модульные ядра всё равно остаются монолитными. Они по-прежнему работают в адресном пространстве. Это даёт им возможность использовать все функции ядра. «Модульные ядра удобнее для разработки, чем традиционные монолитные ядра, не поддерживающие динамическую загрузку модулей, так как от разработчика не требуется многократная полная перекомпиляция ядра при работе над какой-либо его подсистемой или драйвером. Выявление, локализация, отладка и устранение ошибок при тестировании также облегчаются». То есть если нужно усовершенствовать функции модульного ядра, то сначала можно улучшить одну из его составляющих частей, например, какой-нибудь драйвер, а потом загрузить его к ядру. Эта задача гораздо усложняется в случае с монолитным ядром. Его придётся полностью переделывать, чтобы поместить туда новый драйвер. Функции, которые входят в состав ядра, решают очень важные задачи. Они переключают контексты, занимаются организацией процесса вычислений, загружают и выгружают страницы, обрабатывают прерывания. А в свою очередь приложения, работающие из режима пользователя, могут обращаться к ядру, чтобы выполнить нужные действия. Скорость выполнения функция ядра является показателем производительности ОС. Все модули ядра или большая их часть находятся в ОС. Ядро является главной составляющей компьютерной системы, благодаря которой она работает. По этой причине так необходимо, чтобы коды ядра были надежны.

 

Архитектура ОС

 

Ядро и вспомогательные модули ОС

Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:

ядро — модули, выполняющие основные функции ОС;

модули, выполняющие вспомогательные функции ОС.

В состав ядра входят функции, решающие внутрисистемные задачи организации вычислительного процесса, такие как переключение контекстов, загрузка/выгрузка станиц, обработка прерываний. Эти функции недоступны для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами — системными вызовами — для выполнения тех или иных действий, например для открытия и чтения файла, вывода графической информации на дисплей, получения системного времени и т.д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования — API.

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

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

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

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

 


Дата добавления: 2018-11-24; просмотров: 404; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!