![](/user_photo/_userpic.png)
- •Практические задания по курсу «операционные системы». Часть 3
- •Введение
- •Функции операционных систем. Классификация операционных систем
- •Архитектура современных ос
- •Процесс загрузки ос. Процессы и потоки
- •Раздел Integrated Peripherals
- •Организация памяти
- •Файловая система
- •Администрирование ос
- •Сетевые компоненты ос
- •Заключение
- •Список используемой литературы
Министерство образования и науки Российской Федерации
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИМЕНИ Н.Г. ЧЕРНЫШЕВСКОГО»
Кафедра математической кибернетики и компьютерных наук
Практические задания по курсу «операционные системы». Часть 3
студентки 2 курса 211 группы
направления 02.03.02 Фундаментальная информатика и информационные технологии
факультета компьютерных наук и информационных технологий
Филатовой Ольги Владимировны
Научный руководитель,
доцент, к. ф.-м. н. ____________ А. С. Богомолов Зав. кафедрой
к.ф.-м.н. ____________ С. В. Миронов
Саратов 2019
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ 3
ФУНКЦИИ ОПЕРАЦИОННЫХ СИСТЕМ. КЛАССИФИКАЦИЯ ОПЕРАЦИОННЫХ СИСТЕМ 4
АРХИТЕКТУРА СОВРЕМЕННЫХ ОС 15
ПРОЦЕСС ЗАГРУЗКИ ОС. ПРОЦЕССЫ И ПОТОКИ 20
ОРГАНИЗАЦИЯ ПАМЯТИ 27
ФАЙЛОВАЯ СИСТЕМА 35
АДМИНИСТРИРОВАНИЕ ОС 40
СЕТЕВЫЕ КОМПОНЕНТЫ ОС 43
ЗАКЛЮЧЕНИЕ 47
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 48
Введение
В этой части будет проведена проверка знаний по 7 разделам Операционных систем. Усвоенные темы пропущены. Те, что усвоены не полностью, отмечены желтым цветом. Те, что незнакомы, отмечены красным. В двух последних случаях на вопрос дается развернутый ответ.
Функции операционных систем. Классификация операционных систем
Определение операционной системы (ОС). Место ОС в системе программного обеспечения ЭВМ.
Операционная система компьютера представляет собой комплекс взаимосвязанных программ, который действует как интерфейс между приложениями и пользователями с одной стороны, и аппаратурой компьютера с другой стороны.
Рис 1 –– Место ОС в системе ПО ЭВМ
Функции операционных систем
Загрузка приложений в оперативную память и их выполнение.
Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).
Управление оперативной памятью (распределение между процессами, виртуальная память).
Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, компакт-диск и т. д.), организованным в той или иной файловой системе.
Пользовательский интерфейс.
Сетевые операции, поддержка стека протоколов.
Параллельное или псевдопараллельное выполнение задач (многозадачность).
Взаимодействие между процессами: обмен данными, взаимная синхронизация.
Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.
Разграничение прав доступа и многопользовательский режим работы (аутентификация, авторизация).
Компоненты ОС
Архитектура ядра ОС (монолитное, модульное …).
Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве. Таким образом, монолитное ядро — это такая схема операционной системы, при которой все её компоненты являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путём непосредственного вызова процедур. Для монолитной операционной системы ядро совпадает со всей системой.
В отличие от «классических» монолитных ядер, считающихся ныне устаревшими, модульные ядра, как правило, не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. Вместо этого модульные ядра предоставляют тот или иной механизм подгрузки модулей ядра, поддерживающих то или иное аппаратное обеспечение (например, драйверов). При этом подгрузка модулей может быть как динамической (выполняемой «на лету», без перезагрузки ОС, в работающей системе), так и статической (выполняемой при перезагрузке ОС после переконфигурирования системы на загрузку тех или иных модулей).
Микроядро предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Большая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. Микроядерная архитектура операционной системы характеризуется тем, что большинство ее составляющих являются самостоятельными программами. В этом случае взаимодействие между ними обеспечивает специальный модуль ядра, называемый микроядром. Микроядро работает в привилегированном режиме и обеспечивает взаимодействие между программами, планирование использования процессора, первичную обработку прерываний, операции ввода-вывода и базовое управление памятью. Остальные компоненты системы взаимодействуют друг с другом путем передачи сообщений через микроядро.
Экзоядро — ядро ОС компьютеров, предоставляющее лишь функции для взаимодействия между процессами и безопасного выделения и освобождения ресурсов. Предполагается, что API для прикладных программ будут предоставляться внешними по отношению к ядру библиотеками (откуда и название архитектуры).
Наноядро — архитектура ядра операционной системы компьютеров, в рамках которой крайне упрощённое и минималистичное ядро выполняет лишь одну задачу — обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки прерываний от аппаратуры наноядро, в свою очередь, посылает информацию о результатах обработки (например, полученные с клавиатуры символы) вышележащему программному обеспечению при помощи того же механизма прерываний.
Гибридные ядра это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра.
Определение оболочки ОС. Функции.
Оболочка операционной системы — интерпретатор команд операционной системы, обеспечивающий интерфейс для взаимодействия пользователя с функциями системы.
Оболочки операционных систем обеспечивают:
создание, переименование, копирование, пересылку, удаление и быстрый поиск файла в текущем каталоге диска или на всех дисках компьютера;
просмотр, создание и сравнение каталогов;
просмотр, создание и редактирование текстовых файлов;
архивацию, обновление и разархивацию архивных файлов и просмотр архивов;
синхронизацию каталогов, расщепление и слияние файлов;
поддержку связи двух компьютеров через последовательный или параллельный порты;
форматирование и копирование дискет, смену метки дискеты и метки тома для жестких дисков, а также чистку дисков от ненужных файлов;
запуск программ.
Подсистема управления памятью
Осуществляет распределение имеющейся физической памяти между всеми существующими в системе в данный момент процессами, загрузку кодов и данных процессов в отведенные им области памяти, настройку адресно-зависимых частей кодов процесса на физические адреса выделенной области, а также защиту областей памяти каждого процесса.
Подсистема управления процессами
Подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает синхронизацию процессов, а также обеспечивает взаимодействие между процессами.
Чтобы процесс мог быть выполнен, операционная система должна назначить ему область оперативной памяти, в которой будут размещены коды и данные процесса, а также предоставить ему необходимое количество процессорного времени.
Подсистема пользовательского интерфейса
Подсистема пользовательского интерфейса включает в себя текстовый и графический редакторы и поддерживается системами многооконного интерфейса типа Х Window System или Open Look.
Современные операционные системы поддерживают развитые функции пользовательского интерфейса. Они предназначены для интерактивной работы за терминалами двух типов: алфавитно-цифровыми и графическими.
При работе за алфавитно-цифровым терминалом пользователь имеет в своем распоряжении систему команд, которая отражает функциональные возможности конкретной операционной системы. Обычно командный язык операционной системы позволяет:
запускать и останавливать приложения,
выполнять различные операции с файлами и каталогами,
получать информацию о состоянии операционной системы (активные процессы, объем свободной оперативной и дисковой памяти, загрузка процессора и т. д.),
администрировать систему.
Команды могут вводиться не только с терминала в интерактивном режиме, но и из командного (пакетного) файла.
Подсистема защиты данных и администрирования
Операционная система должна обеспечить защиту от сбоев и отказов аппаратуры, ошибок программного обеспечения, ошибочного или злонамеренного поведения пользователей системы. Функции защиты ОС тесно связаны с функциями администрирования. Поддержка отказоустойчивости входит в обязанности системного администратора. Администратор определяет права пользователей при их обращении к разным ресурсам системы (файлам, каталогам, принтерам, сканерам и другим устройствам) и ограничивает их возможности в выполнении тех или иных системных действий. Поэтому для защиты данных от несанкционированного доступа ОС, прежде всего, должна убедиться в том, что в систему пытается войти пользователь, вход которого разрешен администратором.
Классификация ОС
Классификация ОС. Особенности алгоритмов управления ресурсами (однозадачные, многозадачные, поддерживающие многонитевую работу, однопроцессорные, многопроцессорные…)
От эффективности алгоритмов управления локальными ресурсами компьютера во многом зависит эффективность всей сетевой ОС в целом. Поэтому, характеризуя сетевую ОС, часто приводят важнейшие особенности реализации функций ОС по управлению процессорами, памятью, внешними устройствами автономного компьютера. Так, например, в зависимости от особенностей использованного алгоритма управления процессором, операционные системы делят на многозадачные и однозадачные, многопользовательские и однопользовательские, на системы, поддерживающие многонитевую обработку и не поддерживающие ее, на многопроцессорные и однопроцессорные системы.
Поддержка многозадачности. По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:
• однозадачные (например, MS-DOS, MSX) и
• многозадачные (OC EC, OS/2, UNIX, Windows 95).
Однозадачные ОС в основном выполняют функцию предоставления пользователю виртуальной машины, делая более простым и удобным процесс взаимодействия пользователя с компьютером. Однозадачные ОС включают средства управления периферийными устройствами, средства управления файлами, средства общения с пользователем.
Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.
Поддержка многопользовательского режима. По числу одновременно работающих пользователей ОС делятся на:
• однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);
• многопользовательские (UNIX, Windows NT).
Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей. Следует заметить, что не всякая многозадачная система является многопользовательской, и не всякая однопользовательская ОС является однозадачной.
Вытесняющая и невытесняющая многозадачность. Важнейшим разделяемым ресурсом является процессорное время. Способ распределения процессорного времени между несколькими одновременно существующими в системе процессами (или нитями) во многом определяет специфику ОС. Среди множества существующих вариантов реализации многозадачности можно выделить две группы алгоритмов:
• невытесняющая многозадачность (NetWare, Windows 3.x);
• вытесняющая многозадачность (Windows NT, OS/2, UNIX).
Основным различием между вытесняющим и невытесняющим вариантами многозадачности является степень централизации механизма планирования процессов. В первом случае механизм планирования процессов целиком сосредоточен в операционной системе, а во втором - распределен между системой и прикладными программами. При невытесняющей многозадачности активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы та выбрала из очереди другой готовый к выполнению процесс. При вытесняющей многозадачности решение о переключении процессора с одного процесса на другой принимается операционной системой, а не самим активным процессом.
Поддержка многонитевости.
Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями).
Многопроцессорная обработка. Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.
В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.
Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС. Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.
Классификация ОС. Особенности аппаратных платформ (ОС для суперкомпьютеров, ПЭВМ, мини-компьютеров, кластеров, …)
ОС для смарт-карт – некоторые из них могут управлять только одной операцией. Например, электронным платежом. Некоторые смарт-карты являются java-ориентированными и содержат интерпретатор виртуальной машиныjava (JVM-интерпретатор), выполняющий загружаемые на карту апплеты java. Причем некоторые из таких карт могут управлять несколькими апплетами.
Встроенные ОС – управляют КПК, мобильными телефонами, телевизорами, микроволновыми печами и прочей бытовой техникой.
ОС мини-ЭВМ – например, ОС реального времени RT-11 и ОС разделения времени RSX-11 M для PDP-11.
ОС мэйнфреймов(Mainframe – это высокопроизводительный компьютер со значительным объемом оперативной и внешней памяти, нередко многопроцессорный, выполняющий функции главного компьютера вычислительного центра или сервера в развитых локальных вычислительных сетях с большим числом периферийных компьютеров и терминалов (например, локальные сети больших организаций, фирм, учебных заведений; международные платежные системы). Обычно относится к классу больших или мини-компьютеров. Первоначально (в 1950-х) мейнфреймом ("главной стойкой") называлась металлическая стойка с центральным процессором. Сегодня термин часто используется как синоним большого компьютера) – обычно такая ОС предполагает одновременно 3 вида обслуживания: пакетную обработку, обработку транзакций (например, процесс работы в банках, бронирование авиабилетов и т.п.) и разделение времени;
кластерные ОС(кластер – это слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой). Например, Windows 2000 Cluster Server,атакже Sun Claster (базоваяОС – Solaris) ит.п;
Мобильные ОС – это ОС специально разработанные таким образом, чтобы они могли быть легко перенесены с компьютера одного типа на компьютер другого типа. Например, ОС Unix.
В этих системах аппаратно-зависимые части тщательно локализованы, так что при переносе системы на новую платформу переписываются только они. Средством, облегчающем перенос остальной части ОС, является написание ее на машинно-независимом языке, например, на С, который и был разработан для программирования операционных систем.
Классификация ОС. Особенности областей использования (системы пакетной обработки, системы разделения времени, системы реального времени…)
Системы пакетной обработки предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов.Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени.Для достижения этой цели в системах пакетной обработки используются следующая схема функционирования: в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется мультипрограммная смесь, то есть множество одновременно выполняемых задач.Для одновременного выполнения выбираются задачи, предъявляющие отличающиеся требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины.Таким образом, выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающейся в системе, то есть выбирается "выгодное" задание.В таких ОС невозможно гарантировать выполнение того или иного задания в течение определенного периода времени.В таких системах переключение процессора с выполнения одной задачи на выполнение другой происходит только в случае, если активная задача сама отказывается от процессора, например, из-за необходимости выполнить операцию ввода-вывода.Поэтому одна задача может надолго занять процессор, что делает невозможным выполнение интерактивных задач.Такой порядок снижает эффективность работы пользователя.
Системы разделения времени призваны исправить основной недостаток систем пакетной обработки - изоляцию пользователя-программиста от процесса выполнения его задач.Каждому пользователю системы разделения времени предоставляется терминал, с которого он может вести диалог со своей программой.Так как в системах разделения времени каждой задаче выделяется только квант процессорного времени, ни одна задача не занимает процессор надолго, и время ответа оказывается приемлемым.Если квант выбран достаточно небольшим, то у всех пользователей, одновременно работающих на одной и той же машине, складывается впечатление, что каждый из них единолично использует машину.Системы разделения времени обладают меньшей пропускной способностью, чем системы пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая "выгодна" системе, и, кроме того, имеются накладные расходы вычислительной мощности на более частое переключение процессора с задачи на задачу. Поэтому критерием эффективности систем разделения времени является не максимальная пропускная способность, а удобство и эффективность работы пользователя.
Системы реального времени применяются для управления различными техническими объектами, такими, например, как станок, спутник, научная экспериментальная установка или технологическими процессами, такими, как гальваническая линия, доменный процесс и т.п.Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная программа, управляющая объектом, в противном случае может произойти авария.Таким образом, критерием эффективности для систем реального времени является их способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата (управляющего воздействия).Это время называется временем реакции системы, а соответствующее свойство системы - реактивностью.Для этих систем мультипрограммная смесь представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется исходя из текущего состояния объекта или в соответствии с расписанием плановых работ.
Многопроцессорность.
Многопроцессорность - использование двух или более центральных процессорных устройств (ЦПУ) внутри единой компьютерной системы. Термин также связан со способностью системы поддерживать больше одного процессора или возможностью распределения задач между ними.Существует много вариантов данного термина и разница зачастую зависит от контекста, главным образом определяется как устройство ЦПУ (несколько ядер на одном кристалле, несколько кристаллов в одном пакете, или несколько пакетов в одной системной единице...).
Согласно онлайн словарям, многопроцессорная компьютерная система должна иметь два или более вычислительных единиц (многоядерных процессоров) с разделенной оперативной памятью и периферийными устройствами для того чтобы одновременно обрабатывать программные процессы. Один из учебников 2009 года определяет понятие многопрограммности аналогичным образом, но не указывается что процессоры могут распределять память и устройства ввода\вывода, также определяя понятие тесно связанной системы как синоним.
На уровне операционной системы многопрограммность используется для того чтобы соотнести выполнение различных процессов на отдельных ЦПУ или отдельными ядрами.
Асимметричные ОС и симметричные ОС.
Симметричная мультипроцессорная система - symmetric multiprocessing (SMP) – это многопроцессорная компьютерная система, все процессоры которой равноправны и используют одну и ту же копию ОС. Операционная система при этом может выполняться на любом процессоре. В такой системе любому свободному процессору может быть поручено любое задание. Все процессоры используют общую память и общие дисковые ресурсы. Несколько процессов (или потоков) могут исполняться одновременно без существенного нарушения производительности. Большинство современных ОС поддерживают архитектуру SMP. После инсталляции ОС (например, Linux) на симметричную мультипроцессорную систему пользователь может заметить в меню boot loader, что фактически на его компьютер установилась не одна, а две версии ОС – с поддержкой SMP и без нее.
Асимметричная мультипроцессорная система (asymmetric multiprocessing) – это многопроцессорная компьютерная система, в которой процессоры специализированы по своим функциям. Каждому процессору дается специфическое задание; главный процессор (master processor) планирует работу подчиненных процессоров (slave processors).В такой системе ОС, как правило, выполняется на одном определенном, закрепленном за ней, центральном процессоре. Подобная архитектура более типична для очень больших систем. Пример – система "Эльбрус", которая имела в своем составе, в зависимости от конфигурации, от одного до 10 центральных процессоров, от одного до четырех специализированных процессоров ввода вывода (ПВВ),от одного до четырех процессоров передачи данных (ППД).
Особенности сетевых ОС. Структура сетевой ОС.
Сетевая операционная система — операционная система со встроенными возможностями для работы в компьютерных сетях. К таким возможностям можно отнести: поддержку сетевого оборудования; поддержку сетевых протоколов; поддержку протоколов маршрутизации; поддержку фильтрации сетевого трафика; поддержку доступа к удалённым ресурсам, таким как принтеры, диски и т. п. по сети; поддержку сетевых протоколов авторизации; наличие в системе сетевых служб, позволяющих удалённым пользователям использовать ресурсы компьютера.
Рис 2 –– Структура сетевой операционной системы
Понятие распределенных ОС.
Наиболее совершенным и перспективным классом ОС являются так называемые распределенные операционные системы, которые следует отличать от традиционных сетевых ОС. В сетевых операционных системах для того, чтобы задействовать ресурсы другой сетевой ВМ, пользователи должны знать о ее наличии и уметь это сделать. Каждая ВМ в сети работает под управлением своей локальной ОС, отличающейся от ОС автономной ВМ наличием дополнительных сетевых средств (программной поддержкой сетевых интерфейсных устройств и механизмов доступа к удаленным ресурсам), но эти дополнения существенно не меняют структуру операционной системы.
Распределенная система, напротив, внешне выглядит как обычная автономная система. Пользователь не знает и не должен знать, где его файлы хранятся (на локальной или удаленной ВМ), и где его программы выполняются. Он может вообще не знать, подключена ли его ВМ к сети. Сетевые же операционные системы не создают ощущения работы с единой системой, которое характерно для распределенных ОС. Однако при этом внутреннее строение распределенной операционной системы имеет существенные отличия от автономных систем.
В распределенных ОС к лежащей в основе системы вычислительной сети должна быть добавлена некая общая модель, которая способна превратить множество слабосвязанных ВМ в однородную «конструкцию», базирующуюся на единой концепции.