Uploaded by art5255

Андреев реферат

advertisement
САНКТ-ПЕТЕРБУРГСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ
РЕФЕРАТ по дисциплине
«Операционные системы»
Операционные системы
Специальность "Вычислительные машины, комплексы, системы и
сети"
Преподаватель:
Выполнил:
Сентерев Ю.А. __________
Андреев Артем
«_____»____________2019г.
Студент группы P3355
очно-заочного отделения
Оценка ________________
_____________________(подпись)
Санкт-Петербург
2019
ОГЛАВЛЕНИЕ
1 ИСТОРИЯ ОПЕРАЦИОННЫХ СИСТЕМ ................................................................... 3
2 ЯДРО ОПЕРАЦИОННОЙ СИСТЕМЫ ........................................................................ 5
3 ПРОЦЕССЫ И ПОТОКИ ОПЕРАЦИОННОЙ СИСТЕМЫ ......................................... 7
4 ФАЙЛОВАЯ СИСТЕМА ............................................................................................ 11
5 СИСТЕМА ВВОДА-ВЫВОДА.................................................................................... 15
5 СПИСОК ЛИТЕРАТУРЫ ........................................................................................... 17
2
1 ИСТОРИЯ ОПЕРАЦИОННЫХ СИСТЕМ
Операционная система — набор программ и утилит, которые
обеспечивают
управление
аппаратной
части
ЭВМ,
планирование
эффективного применения её ресурсов и выполнение задач по нуждам
пользователя.
Существует несколько наиболее популярных типов операционных
систем:
 Операционные системы реального времени
Тип операционных систем, главное предназначение которых —
предоставление важного и необходимого комплекта функций для работы
систем реального времени на определенном аппаратном оборудовании.
Обработка информации в системах реального времени обязана выполняться за
определённый конечный этап времени для того, чтобы поддерживать
систематическое и своевременное взаимодействие со средой. Данные системы
гарантируют оперативное выполнение запросов в течение заданного
интервала времени.
 Операционные системы пакетной обработки
Тип систем, которые обрабатывают набор заданий, т. е. некоторое
количество
заданий,
подготовленных
одним
или
же
различными
пользователями. Такие системы нужны для решения задач, которые не
требуют очень быстрого получения результатов. Главной целью данного вида
систем является максимальная пропускная способность или решение
максимального числа задач в единицу времени. Эти системы обеспечивают
высокую производительность при обработке больших объемов информации.
3
 Системы с разделением времени
В системах с разделением времени для выполнения задачи выделяется
некий промежуток времени, и никакая задача не занимает процессор надолго.
Если этот промежуток времени выбран очень небольшим, то создается
ощущение одновременного выполнения нескольких задач. Эти системы
обладают меньшей пропускной способностью, но обеспечивают высокую
эффективность работы пользователя в интерактивном режиме.
По числу одновременно работающих пользователей на ЭВМ ОС
разделяются на однопользовательские и многопользовательские.
Важный период развития операционных систем относится к 1965-1975
годам. В эти года в технической базе произошёл переход от отдельных
полупроводниковых
элементов
типа
транзисторов
к
интегральным
микросхемам, что дало возможность к появлению следующего поколения
компьютеров. В этот период были реализованы практически все основные
механизмы, присутствующие в современным операционных системах.
Следующий период в эволюции операционных систем связан с
появлением больших интегральных схем. В эти годы произошел резкий скачек
интеграции
и
использоваться
удешевление
микросхем.
неспециалистами,
что
Компьютеры
стали
потребовало
широко
разработки
"дружественного" программного обеспечения. На рынке операционных
систем доминировали две системы: MS-DOS и UNIX. Однопрограммная
однопользовательская ОС MS-DOS широко использовалась для компьютеров,
построенных на базе микропроцессоров Intel 8088, а затем 80286, 80386 и
80486. Мультипрограммная многопользовательская ОС UNIX доминировала в
среде "не-интеловских" компьютеров, особенно построенных на базе
высокопроизводительных RISC-процессоров.
4
2 ЯДРО ОПЕРАЦИОННОЙ СИСТЕМЫ
Ядро — главная часть операционной системы, обеспечивающая
программам и утилитам централизованный доступ к ресурсам компьютера,
таким как процессорное время, память и внешнее аппаратное обеспечение.
Также обычно ядро предоставляет интерфейс взаимодействия с файловой
системы и сетевыми протоколами. Как основополагающий элемент ОС, ядро
представляет собой наиболее низкий уровень абстракции для доступа
приложений к ресурсам системы, необходимым для его работы. Как правило,
ядро предоставляет такой доступ исполняемым процессам соответствующих
приложений
за
счёт
использования
механизмов
межпроцессного
взаимодействия и обращения приложений к системным вызовам ОС.
На ядро ложатся функции, решающие внутрисистемные задачи
организации вычислительного процесса, такие как переключение контекстов,
загрузка/выгрузка станиц памяти, обработка прерываний.
Функции,
выполняемые
ядром,
являются
наиболее
часто
используемыми функциями операционной системы, поэтому скорость их
выполнения определяет производительность всей системы в целом. Для
обеспечения высокой скорости работы ОС все модули ядра или большая их
часть постоянно находятся в оперативной памяти.
Существует несколько основных типов архитектур ядер операционных
систем:
 Монолитное ядро
Это один из самых старых способов организации ядра операционных
систем. Главной особенностью монолитного ядра является размещение всего
его кода в одном адресном пространстве и исполнение кода ядра в
привилегированном
режиме
при
невозможности
пользовательскими процессами.
5
его
вытеснения
 Модульное ядро
Усовершенствованная модификация архитектуры монолитных ядер
операционных систем. Модульные ядра не требуют полной перекомпиляции
ядра при изменении состава аппаратного обеспечения компьютера. Вместо
этого модульные ядра предоставляют механизм подгрузки модулей ядра,
поддерживающих то или иное аппаратное обеспечение (например, драйверов).
При этом подгрузка модулей может быть как динамической, так и
статической. Все модули ядра работают в адресном пространстве ядра и могут
пользоваться
всеми
функциями,
предоставляемыми
ядром.
Поэтому
модульные ядра продолжают оставаться монолитными.
 Микроядро
Такие ядра реализуют минимальный набор функций, таких как
управление физической и виртуальной памятью, механимы межпроцессного
взаимодействия, управление процессорным временем, управление доступом к
устройствам ввода-вывода. Все остальные функции работают в пространстве
пользователя в виде отдельных программ, взаимодействуют с ядром с
помощью системных вызовов, взаимодействуют друг с другом с помощью
межпроцессного взаимодействия.
 Экзоядро
Ядро операционной системы компьютеров, предоставляющее лишь
функции для взаимодействия между процессами и безопасного выделения и
освобождения ресурсов. Экзоядро не занимается предоставлением абстракций
для физических ресурсов — эти функции выносятся в библиотеку
пользовательского уровня.
6
3
ПРОЦЕССЫ
И
ПОТОКИ
ОПЕРАЦИОННОЙ
СИСТЕМЫ
Процесс — это отдельная исполняемая программа с используемой ею
памятью и другими выделяемыми ей ресурсами. Многозадачность — это
способность
одновременно.
операционной
системы
Многозадачная
выполнять
операционная
несколько
система
программ
обеспечивает
одновременное исполнение двух или более программ за счет выделения
каждой из них процессорного времени. Поток — это последовательность
исполняемых команд. Процесс может состоять из единственного потока, а
может содержать их несколько. Многопоточность означает использование
нескольких параллельных потоков вычислений, относящихся к одной
программе. При необходимости одновременного выполнения нескольких
операций в рамках одной программы на реализацию каждой из них выделяется
отдельный поток. Задача предоставления потоку необходимого процессорного
времени возлагается исключительно на операционную систему.
Существуют две модели применения потоков — асимметричная и
симметричная. В рамках асимметричной модели потоки решают различные
задачи и, как правило, не разделяют совместные ресурсы. В симметричной
модели потоки выполняют одну и ту же работу, разделяют одни ресурсы и
исполняют один код.
При решении вопроса, какому потоку отдать предпочтение и сколько
выделить ему времени, операционной системе приходится учитывать очень
много факторов. Недостаточно просто установить таймер, чтобы каждые
несколько миллисекунд управление передавалось следующему очередному
потоку.
Планировщик — часть операционной системы, которая отвечает за
параллельное или псевдопараллельное выполнения потоков и процессов.
Планировщик выделяет потокам процессорное время, память, стек и прочие
ресурсы. Планировщик может принудительно забирать управление у потока
7
(например, по таймеру или при появлении потока с большим приоритетом),
либо просто ожидать пока поток сам явно (вызовом некой системной
процедуры) или неявно (по завершении) отдаст управление планировщику.
Первый
вариант
работы
планировщика
называется
реальным
или
вытесняющим, а второй - не вытесняющим.
Вытесняющая многозадачность характеризует стратегию планирования
для потоков с одинаковым приоритетом. Все потоки в одной группе
выстраиваются в очередь. Каждому из них в соответствии с очередью
отводится на выполнение некоторый квант времени процессора. По истечении
этого кванта поток переводится в состояние "Готовность" независимо от его
желания продолжить работу, и в состояние "Выполнение" переводится
следующий по очереди поток.
Для
координации
действий
потоков
операционный
системы
необходимы различные формы синхронизации. Существует несколько
основных типов синхронизации:
 Взаимоисключения (мьютекс)
Примитив синхронизации, который устанавливается в особое значение,
когда занят каким-либо потоком. Только один поток владеет этим объектом в
любой момент времени — одновременный доступ к общему ресурсу
8
исключается. После всех необходимых действий мьютекс освобождается,
предоставляя другим потокам доступ к общему ресурсу.
 Семафоры
Примитив синхронизации, позволяющий войти в заданный участок кода
не более чем N потокам.
 Критические секции
Данный вид обеспечивает синхронизацию подобно мьютексам за
исключением того, что объекты, представляющие критические секции,
доступны в пределах одного процесса. Мьютексы и семафоры также можно
использовать
в
однопроцессной
среде,
однако
критические
секции
обеспечивают более быстрый и более эффективный механизм взаимноисключающей синхронизации. Подобно мьютексам объект, представляющий
критическую секцию, может использоваться только одним потоком в данный
момент времени.
 События
События полезны в тех случаях, когда необходимо послать сообщение
потоку, сообщающее, что произошло определенное событие. Например, при
асинхронных операциях ввода и вывода из одного устройства, система
устанавливает событие в сигнальное состояние, когда заканчивается какаялибо из операций ввода или вывода.
В большинстве операционных систем есть одни и те же варианты
завершения процесса, различающиеся деталями реализации:
 Нормальное завершение процесса
Завершение при достижении конца программы или при вызове
системной функции выхода.
9
 Принудительное завершение процесса
Производится внешним процессом с помощью вызова
соответствующей системной функции (например, системного вызова kill в
UNIX).
При завершении процесса освобождаются все системные ресурсы,
занятые им – открытые файлы, память, и др. Соответственно, завершаются
все потоки, принадлежащие процессу.
Процессы и потоки – основополагающая концепция современных ОС,
предоставляющая основу для решения любых вычислительных задач. В
большинстве прикладных ОС эти понятия означают одно и то же, различаясь
деталями реализации.
10
4 ФАЙЛОВАЯ СИСТЕМА
Файловая система - это часть операционной системы, назначение
которой состоит в том, чтобы обеспечить пользователю удобный интерфейс
при работе с данными, хранящимися на диске, и обеспечить совместное
использование файлов несколькими пользователями и процессами.
Файл – это именованная область внешней памяти, в которую можно
записывать и из которой можно считывать данные. Для управления этими
данными создаются соответствующие файловые системы.
Файлы бывают разных типов: обычные файлы, специальные файлы,
файлы-каталоги.
Обычные файлы очередь подразделяются на текстовые и двоичные.
Текстовые файлы состоят из строк символов, представленных в ASCII-коде.
Это могут быть документы, исходные тексты программ и т.п. Текстовые
файлы можно прочитать на экране и распечатать на принтере. Двоичные
файлы не используют ASCII-коды, они часто имеют сложную внутреннюю
структуру, например, объектный код программы или архивный файл. Все
операционные системы должны уметь распознавать хотя бы один тип файлов
- их собственные исполняемые файлы.
Специальные файлы — это файлы, ассоциированные с устройствами
ввода-вывода, которые позволяют пользователю выполнять операции вводавывода, используя обычные команды записи в файл или чтения из файла. Эти
команды обрабатываются вначале программами файловой системы, а затем
на некотором этапе выполнения запроса преобразуются ОС в команды
управления соответствующим устройством. Специальные файлы, так же как
и устройства ввода-вывода, делятся на блок-ориентированные и байториентированные.
Каталог — это, с одной стороны, группа файлов, объединенных
пользователем исходя из некоторых соображений (например, файлы,
11
содержащие программы игр, или файлы, составляющие один программный
пакет), а с другой стороны - это файл, содержащий системную информацию о
группе файлов, его составляющих. В каталоге содержится список файлов,
входящих в него, и устанавливается соответствие между файлами и их
характеристиками (атрибутами).
Каталоги могут непосредственно содержать значения характеристик
файлов, как это сделано в файловой системе MS-DOS, или ссылаться на
таблицы, содержащие эти характеристики, как это реализовано в ОС UNIX .
Каталоги могут образовывать иерархическую структуру за счет того, что
каталог более низкого уровня может входить в каталог более высокого
уровня.
Функционирование любой файловой системы можно представить
многоуровневой моделью, в которой каждый уровень предоставляет
некоторый интерфейс вышележащему уровню, а сам, в свою очередь, для
выполнения своей работы использует интерфейс нижележащего уровня.
Задачей символьного уровня является определение по символьному
имени файла его уникального имени.
На следующем, базовом уровне по уникальному имени файла
определяются его характеристики: права доступа, адрес, размер и другие.
12
Характеристики файла могут входить в состав каталога или храниться в
отдельных таблицах. При открытии файла его характеристики перемещаются
с диска в оперативную память, чтобы уменьшить среднее время доступа к
файлу. В некоторых файловых системах (например, HPFS) при открытии
файла вместе с его характеристиками в оперативную память перемещаются
несколько первых блоков файла, содержащих данные.
Следующим этапом реализации запроса к файлу является проверка прав
доступа к нему. Для этого сравниваются полномочия пользователя или
процесса, выдавших запрос, со списком разрешенных видов доступа к
данному файлу. Если запрашиваемый вид доступа разрешен, то выполнение
запроса продолжается, если нет, то выдается сообщение о нарушении прав
доступа.
На логическом уровне определяются координаты запрашиваемой
логической записи в файле, то есть требуется определить, на каком расстоянии
(в байтах) от начала файла находится требуемая логическая запись. При этом
абстрагируются от физического расположения файла, он представляется в
виде непрерывной последовательности байт.
На физическом уровне файловая система определяет номер физического
блока, который содержит требуемую логическую запись, и смещение
логической записи в физическом блоке. Для решения этой задачи
используются результаты работы логического уровня - смещение логической
записи в файле, адрес файла на внешнем устройстве, а также сведения о
физической организации файла, включая размер блока.
После определения номера физического блока, файловая система
обращается к системе ввода-вывода для выполнения операции обмена с
внешним устройством. В ответ на этот запрос в буфер файловой системы будет
передан нужный блок, в котором на основании полученного при работе
физического уровня смещения выбирается требуемая логическая запись.
Ext2 - файловая система, создаваемая в Linux по умолчанию. В
результате ее создания раздел дискового накопителя будет состоять из
13
множества областей, - групп блоков, которые, в свою очередь, подразделяются
на меньшие области. Индексный дескриптор - это указатель на файл, в
котором содержится информация относящаяся к файлу: владелец, права
доступа, дата последнего изменения. Каждому файлу соответствует один
индексный дескриптор. Количество индексных дескрипторов постоянно и
задается во время создания файловой системы. Суперблок - в суперблоке
храниться информация обо всей файловой системе. Суперблок есть в каждой
группе блоков, он является всего лишь резервной копией суперблока из первой
группы блоков. Дескриптор группы - здесь хранится информация о каждой
группе блоков. Здесь также находятся указатели на таблицу индексных
дескрипторов. Битовая карта блоков - массив битов, указывающих на
использованные блоки. Таблица индексных дескрипторов - таблица реально
выделенных для данной группы блоков индексных дескрипторов. Блоки
данных – блоки, в которых непосредственно находятся данные.
14
5 СИСТЕМА ВВОДА-ВЫВОДА
Одной
из
главных
функций
ОС
является
управление
всеми
устройствами ввода-вывода компьютера. ОС должна передавать устройствам
команды, перехватывать прерывания и обрабатывать ошибки; она также
должна обеспечивать интерфейс между устройствами и остальной частью
системы. В целях развития интерфейс должен быть одинаковым для всех
типов устройств (независимость от устройств).
Операционная система обычно имеет дело не с устройством, а с
контроллером. Контроллер, как правило, выполняет простые функции,
например, преобразует поток бит в блоки, состоящие из байт, и осуществляют
контроль и исправление ошибок. Каждый контроллер имеет несколько
регистров, которые используются для взаимодействия с центральным
процессором. В некоторых компьютерах эти регистры являются частью
физического адресного пространства. В таких компьютерах нет специальных
операций ввода-вывода. В других компьютерах адреса регистров вводавывода, называемых часто портами, образуют собственное адресное
пространство за счет введения специальных операций ввода-вывода.
Операционная система выполняет ввод-вывод, записывая команды в
регистры контроллера. Когда команда принята, процессор оставляет
контроллер и занимается другой работой. При завершении команды
контроллер организует прерывание для того, чтобы передать управление
процессором операционной системе, которая должна проверить результаты
операции. Процессор получает результаты и статус устройства, читая
информацию из регистров контроллера.
Ошибки следует обрабатывать как можно ближе к аппаратуре. Если
контроллер обнаруживает ошибку чтения, то он должен попытаться ее
скорректировать. Если же это ему не удается, то исправлением ошибок должен
заняться драйвер устройства. Многие ошибки могут исчезать при повторных
15
попытках выполнения операций ввода-вывода. И только если нижний уровень
не может справиться с ошибкой, он сообщает об ошибке верхнему уровню.
Прерывание — сигнал от аппаратного обеспечения, сообщающий
процессору о наступлении какого-либо события, требующего немедленного
внимания.
Прерывание
извещает
процессор
о
наступлении
высокоприоритетного события, требующего прерывания текущего кода,
выполняемого процессором.
На аппаратном уровне прерывания работают таким образом. Когда
устройство ввода-вывода заканчивает свою работу, оно инициирует
прерывание. Для этого устройство выставляет сигнал на выделенную
устройству специальную линию шины.
При
отсутствии
контроллер
прерываний
других
необработанных
запросов
прерывания
обрабатывает прерывание немедленно. Если
прерывание уже обрабатывается, и в это время приходит запрос от другого
устройства по линии с более низким приоритетом, то новый запрос просто
игнорируется. В этом случае устройство продолжает удерживать сигнал
прерывания на шине до тех пор, пока оно не будет обслужено центральным
процессором.
Для обработки прерывания контроллер выставляет на адресную шину
номер устройства, требующего к себе внимания. Этот сигнал заставляет
процессор приостановить текущую работу и начать выполнять обработку
прерывания. Номер, выставленный на адресную шину, используется в
качестве индекса в таблице векторов прерывания, из которой извлекается
новое значение счетчика команд. Новый счетчик команд указывает на начало
соответствующей процедуры обработки прерывания.
16
СПИСОК ЛИТЕРАТУРЫ
1. Операционная система UNIX : [рек. М-вом общего и проф. образования
в качестве учебного пособия] / А. М. Робачевский, С. А. Немнюгин, О.
Л. Стесик .— 2-е изд., [перераб. и доп.] .— СПб. : БХВ-Петербург, 2010
2. UNIX для программистов и пользователей / Г. Гласс, К. — 2-е изд. —
СПб. ; М. : Символ-Плюс, 2007
3. Linux: азбука ядра. Последовательное рассмотрение на архитектурах x86
и PowerPC : [справочное руководство] / К. З. Родригес, Г. Фишер, С.
Смолски ; [пер. с англ. И. В. Легостаева] .— М. : КУДИЦ-ПРЕСС, 2013
4. UNIX: разработка сетевых приложений : [пер. с англ.] / У. Р. Стивенс, Б.
Феннер, Э. Рудофф .— 3-е изд. — СПб. : Питер, 2008
5. Операционные системы. Разработка и реализация. / Э.Таненбаум,
А.Вудхалл. — 3-е изд. — СПб.: 2007
6. Косяков, М. С. Введение в распределенные системы : учебное пособие /
М. С. Косяков— С.-Петербург, 2014. — 155 с. (Дата обращения
23.05.2019)
7. Сетевые операционные системы [Учебник для ВУЗов] / В.Г.Олифер,
Н.А.Олифер — СПб. : Питер, 2009
8. Операционные системы / Гордеев А.В. — СПб. : Питер, 2006
9. Разработка ядра Linux = Linux Kernel Development / Роберт Лав. — 2-е
изд. — М.: «Вильямс», 2006
10.Операционная система – что это такое и их виды: [Электронный ресурс]
//
COMPOSS.RU
2012-2018
URL:
http://composs.ru/chto-takoe-
operacionnaya-sistema-i-vidy/ (Дата обращения 19.05.2019).
11.Столлингс В. Операционные системы. Четвертое издание. Пер. с англ. –
М.: Вильямс, 2004. – 848 с.: ил. (Дата обращения 19.05.2019).
12.Таненбаум Э., ван Стеен М. Распределенные системы. Принципы и
парадигмы. – СПб: Питер, 2003. – 877 с.: ил. (Дата обращения
19.05.2019).
17
13.Топорков, В. В. Модели распределенных вычислений / В. В. Топорков.
 М. : Физматлит, 2004.  320 с. (Дата обращения 23.05.2019)
14. Тель, Ж. Введение в распределенные алгоритмы : Пер. с англ. / Ж. Тель.
 М. : МЦНМО, 2009.  616 с (Дата обращения 23.05.2019)
15. Хьюз, К. Параллельное и распределенное программирование с
использованием C++. Пер. с англ / К. Хьюз, Т. Хьюз.  М.: Издательский
дом «Вильямс». 2004.  672 с. : ил. (Дата обращения 23.05.2019)
18
Download