В пособии главным образом изложены общетеоретические вопросы построения и функционирования ос: базовые понятия ос, основные этапы эволюции ос, составляющие




страница1/13
Дата03.12.2016
Размер1.32 Mb.
Просмотров799
Скачиваний0
  1   2   3   4   5   6   7   8   9   ...   13

1. Введение
Введение

С каждым годом использование вычислительных систем становится все более широким, существенно повышая эффективность функционирования самых различных бизнес-процессов больших и малых предприятий, облегчая и делая более разнообразной и интересной работу с персональными компьютерами рядовых пользователей по всему миру. Во многом, эта заслуга операционной системы (ОС) – неотъемлемой части любой современной вычислительной системы от простого и недорого пользовательского компьютера до мощного суперкомпьютера с десятками процессоров.
В связи с вышеизложенным, очевидна ведущая роль современных ОС и особое внимание, которое следует уделять их изучению. Предлагаемое учебное пособие направлено в некоторой степени на решение этой задачи. В нем сделана попытка изложить самые основные элементы особенностей функционирования, назначения и архитектуры современных ОС без существенной
«привязки» к какой-либо конкретной ОС и лишних деталей функционирования, усложняющих процесс понимания.
В пособии главным образом изложены общетеоретические вопросы построения и функционирования ОС: базовые понятия ОС, основные этапы эволюции ОС, составляющие функционирования мультипроцессной системы – мультипрограммирование, планирование процессов и потоков и механизмы их взаимодействия и синхронизации, основные задачи по управлению памятью, особенности реализации распределения оперативной памяти и физической организации жесткого диска, базовые принципы построения типовой файловой системы, особенности загрузки ОС и организация консолидированных серверных систем хранения данных большого объема RAID различного уровня. Приобретению практических навыков посвящен лабораторный практикум по курсу «Операционные системы».
Пособие предназначено для студентов направления 230100 «Информатика и вычислительная техника», однако оно может быть полезно и студентам других специальностей, в образовательных программах которых присутствует дисциплина «Операционные системы», а также широкому кругу подготовленных пользователей, желающих углубить свои познания в области ОС. Более глубокие знания основных принципов организации и функционирования ОС позволят обоснованно принимать решения по приобретению того или иного вычислительного оборудования и программного обеспечения, организовывать его эффективную и надежную эксплуатацию, принимать решения о необходимости его частичного обновления или замены.

2.1. Основные понятия, назначения и функции ОС
Основные понятия, назначения и функции ОС

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

Рисунок 1 – Пользователь и обобщенная структура вычислительной системы
Во-первых, ВС состоит из того, что называют аппаратным или техническим обеспечением
(англ. hardware): процессоры, память, мониторы, таймеры, дисковые устройства, накопители на магнитных лентах, сетевая коммуникационная аппаратура, принтеры и т.д., объединенные магистральным соединением (шиной).
Во-вторых, ВС состоит из программного обеспечения (ПО), в котором выделяют две части –
системное и прикладное. Системное ПО – это набор программ, которые управляют компонентами
ВС, такими как процессор, коммуникационные и периферийные устройства, и предназначены для обеспечения функционирования и работоспособности системы в целом. Большинство из них отвечают непосредственно за контроль и объединение в единое целое различных компонентов аппаратного оборудования ВС, обеспечение работы компьютера самого по себе и выполнение различных прикладных программ. Системное ПО противопоставляется прикладному ПО, которое напрямую решает проблемы пользователя и предназначено для выполнения определенных пользовательских задач и рассчитано на непосредственное взаимодействие с пользователем. К прикладному ПО, как правило, относят разнообразные вспомогательные программы (игры, текстовые процессоры и т.п.).
Следует отметить, что деление на прикладное и системное ПО является отчасти условным и зависит от того, кто осуществляет такое деление. Так, обычный пользователь, неискушенный в программировании, может считать текстовый процессор Microsoft Word системной программой, а с точки зрения программиста, это – приложение. Компилятор языка С для обычного программиста – системная программа, а для системного – прикладная.
Принимая во внимание вышеизложенное, следует отметить, что операционная система является фундаментальным компонентом системного программного обеспечения. Именно эта часть ПО будет основным предметом детального рассмотрения далее.
Очевидно, что операционная система является основным компонентом любой вычислительной системы и во многом определяет эффективность ее функционирования в целом.

При этом, дать однозначное определение операционной системе затруднительно. Главным образом это связано с тем, что операционная система выполняет целый ряд разнородных функций, начиная от обеспечения пользователю-программисту удобств посредством предоставления удобного интерфейса к аппаратной части вычислительной системы и заканчивая обеспечением рационального управления ресурсами вычислительной системы. В связи с этим целесообразно дать несколько различных определений и сделать акцент на цели создания операционных систем, их функции и предназначение.
Главными целями разработчиков операционных систем являются следующие:
1.
Эффективное использование всех компьютерных ресурсов.
2.
Повышение производительности труда программистов.
3.
Простота, гибкость, эффективность и надежность организации вычислительного процесса.
4.
Обеспечение независимости прикладного ПО от аппаратного ПО.
Операционная система (ОС) – это программа, которая обеспечивает возможность рационального использования оборудования компьютера удобным для пользователя образом.
ОС – базовый комплекс компьютерных программ, обеспечивающий управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит.
Кроме различных определений ОС, два из которых приведены выше, пользователи выделяют ряд различных «точек зрения» на ОС:

ОС как виртуальная машина;

ОС как система управления ресурсами;

ОС как защитник пользователей и программ;

ОС как постоянно функционирующее ядро.
Для более полного представления об ОС рассмотрим основные «точки зрения» пользователей более подробно.
ОС как виртуальная машина. Использование архитектуры персонального компьютера на уровне машинных команд является крайне неудобным для использования прикладными программами. Так, работа с диском предполагает знание внутреннего устройства его электронного компонента – контроллера для ввода команд вращения диска, поиска и форматирования дорожек, чтения и записи секторов и т.д. Работа по организации прерываний, работы таймера, управления памятью и т. д. также может требовать при программировании знания и учета большого количества деталей.
В связи с этим необходимо обеспечить интерфейс между пользователем и компьютером, скрывая лишние подробности за счет использования относительно простых и высокоуровневых абстракций. Например, представлять информационное пространство диска как набор файлов, которые можно открывать для чтения или записи, использовать для получения или сброса информации, а затем закрывать, создавать иллюзию неограниченного размера операционной памяти, числа процессоров и прочее. Обеспечением такого высокоуровневого абстрагирования занимается ОС, что позволяет представлять ее пользователю в виде виртуальной машины, с которой проще иметь дело, чем непосредственно с оборудованием компьютера.
ОС как система управления ресурсами. В случае, если несколько программ, работающих на одном компьютере, будут пытаться одновременно осуществлять вывод на принтер, то можно получить «мешанину» строчек и страниц. ОС должна предотвращать такого рода хаос за счет буферизации подобной информации и организации очереди на печать. Не менее актуальная проблема – проблема управления ресурсами для многопользовательских компьютеров.
Таким образом, ОС как менеджер ресурсов осуществляет упорядоченное и контролируемое распределение процессоров, памяти и других ресурсов между различными программами.

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

сохранность информации на диске, защиту от повреждения или удаления файлов;

разрешение программам одних пользователей произвольно вмешиваться в работу программ других пользователей;

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

2.2.1. История развития ОС
История развития ОС

Поколения ОС, так же как и аппаратные средства связаны с достижениями в области создания электронных компонентов: ламп (1-е поколение), транзисторов (2-е поколение), интегральных микросхем (ИС, 3-е поколение), больших и сверхбольших интегральных схем (БИС и СБИС, 4-е и 5-е поколения). Рассмотрим эволюцию ОС более подробно.
Первое поколение (1940-е – 50-е гг.). В эти годы ОС отсутствуют. Первые шаги в области разработки электронных вычислительных машин были предприняты в конце Второй мировой войны. В середине 40-х гг. были созданы первые ламповые вычислительные устройства и появился принцип программы, хранящейся в памяти машины (John Von Neumann, июнь 1945 г.). В то время одна и та же группа людей участвовала и в проектировании, эксплуатации и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не регулярное использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей.
Программирование осуществлялось исключительно на машинном языке. Об ОС не было и речи, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. За пультом мог находиться только один пользователь. Программа загружалась в память машины в лучшем случае с колоды перфокарт, а обычно с помощью панели переключателей.
Вычислительная система выполняла одновременно только одну операцию (ввод-вывод или собственно вычисления). Отладка программ велась с пульта управления с помощью изучения состояния памяти и регистров машины. В конце этого периода появляется первое системное программное обеспечение: в 1951–1952 гг. возникают прообразы первых компиляторов с символических языков (Fortran и др.), а в 1954 г. Nat Rochester разрабатывает Ассемблер для IBM-
701.
Второе поколение (1950-е – 60-е гг.). С середины 50-х гг. начался следующий период в эволюции вычислительной техники, связанный с появлением новой технической базы – полупроводниковых элементов. Применение транзисторов вместо часто перегоравших электронных ламп привело к повышению надежности компьютеров. Теперь машины непрерывно могут работать достаточно долго, чтобы на них можно было возложить выполнение практически важных задач. Снижается потребление вычислительными машинами электроэнергии,
совершенствуются системы охлаждения. Размеры компьютеров уменьшились. Снизилась стоимость эксплуатации и обслуживания вычислительной техники. Началось использование ЭВМ коммерческими фирмами. Одновременно наблюдается бурное развитие алгоритмических языков
(LISP, COBOL, ALGOL-60, PL-1 и т.д.). Появляются первые настоящие компиляторы, редакторы связей, библиотеки математических и служебных подпрограмм. Упрощается процесс программирования. Пропадает необходимость взваливать на одних и тех же людей весь процесс разработки и использования компьютеров. Именно в этот период происходит разделение персонала на программистов и операторов, специалистов по эксплуатации и разработчиков вычислительных машин.
Изменяется процесс отладки программ. Теперь пользователь приносит программу с входными данными в виде колоды перфокарт и указывает необходимые ресурсы. Такая колода получает название задания. Оператор загружает задание в память машины и запускает его на исполнение. Полученные выходные данные печатаются на принтере, и пользователь получает их обратно через некоторое (довольно продолжительное) время.
Появляются первые системы пакетной обработки, которые просто автоматизируют запуск одной программы из пакета за другой и тем самым увеличивают коэффициент загрузки процессора. При реализации систем пакетной обработки был разработан формализованный язык управления заданиями, с помощью которого программист сообщал системе и оператору, какую работу он хочет выполнить на вычислительной машине. Системы пакетной обработки стали прообразом современных ОС, они были первыми системными программами, предназначенными для управления вычислительным процессом.
Следует отметить основные недостатки, присущие вычислительным системам второго поколения:
1.
Использование части машинного времени (времени процессора) на выполнение системной управляющей программы.
2.
Программа, получившая доступ к процессору, обслуживается до ее завершения. При этом, если возникает потребность в передаче данных между внешними устройствами и памятью, то процессор простаивает, ожидая завершения операции обмена. С другой стороны, при работе процессора простаивают внешние устройства.
Для персонального компьютера проявление фактора простоя процессора не столь существенно, так как стоимость его не велика, чего не скажешь о больших и дорогих
ЭВМ.
Третий период развития вычислительных машин относится к началу 1960 – 70 гг. В это время в технической базе произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам. Вычислительная техника становится более надежной и дешевой. Растет сложность и количество задач, решаемых компьютерами. Повышается производительность процессоров.
Повышению эффективности использования процессорного времени мешает низкая скорость работы механических устройств ввода-вывода. Вместо непосредственного чтения пакета заданий с перфокарт в память начинают использовать его предварительную запись, сначала на магнитную ленту, а затем и на диск. Когда в процессе выполнения задания требуется ввод данных, они читаются с диска. Точно так же выходная информация сначала копируется в системный буфер и записывается на ленту или диск, а печатается только после завершения задания. Вначале действительные операции ввода-вывода осуществлялись в режиме off-line, т.е. с использованием других, более простых, отдельно стоящих компьютеров. В дальнейшем они начинают выполняться на том же компьютере, который производит вычисления (уже в режиме on-line).
Такой прием получает название spooling (сокращение от Simultaneous Peripheral Operation On
Line) или подкачки-откачки данных. Введение техники подкачки-откачки в пакетные системы позволило совместить реальные операции ввода-вывода (в основном – печати) одного задания с выполнением другого задания, но, в то же время потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.

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

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

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

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

Организация интерфейса между прикладной программой и ОС при помощи системных вызовов

Организация очереди из заданий в памяти и выделение процессора одному из заданий потребовало планирования использования процессора.

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

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

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

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


Для корректного обмена данными необходимо разрешать конфликтные ситуации, возникающие при работе с различными ресурсами и предусмотреть координацию программами своих действий, т.е. снабдить систему средствами синхронизации.
Мультипрограммные системы обеспечили возможность более эффективного использования системных ресурсов (например, процессора, памяти, периферийных устройств), но они еще долго оставались пакетными. Пользователь не мог непосредственно взаимодействовать с заданием и должен был предусмотреть с помощью управляющих карт все возможные ситуации. Отладка программ по-прежнему занимала много времени и требовала изучения многостраничных распечаток содержимого памяти и регистров или использования отладочной печати.
Параллельно внутренней эволюции вычислительных систем происходила и внешняя их эволюция. До начала этого периода вычислительные комплексы были, как правило, несовместимы. Каждый имел собственную ОС, свою систему команд и т.д. В результате программу, успешно работающую на одном типе машин, необходимо было полностью переписывать и заново отлаживать для выполнения на компьютерах другого типа. В начале третьего периода появилась идея создания семейств программно совместимых машин, работающих под управлением одной и той же ОС. Первым семейством программно совместимых компьютеров, построенных на интегральных микросхемах, стала серия машин IBM/360.
Разработанное в начале 60-х годов, это семейство значительно превосходило машины второго поколения по критерию цена/производительность. За ним последовала линия компьютеров PDP, несовместимых с линией IBM, и лучшей моделью в ней стала PDP-11.
Сила «одной семьи» была одновременно и ее слабостью. Широкие возможности этой концепции (наличие всех моделей: от мини-компьютеров до гигантских машин; обилие разнообразной периферии; различное окружение; различные пользователи) порождали сложную и громоздкую ОС. Миллионы строчек Ассемблера, написанные тысячами программистов, содержали множество ошибок, что вызывало непрерывный поток публикаций о них и попыток исправления. Только в операционной системе OS/360 содержалось более 1000 известных ошибок.
Тем не менее, идея стандартизации ОС была широко внедрена в сознание пользователей и в дальнейшем получила активное развитие.
К этому же периоду относится появление первых операционных систем реального времени
(ОСРВ), в которых ЭВМ применяется для управления техническими объектами, такими, например, как станок, спутник, научная экспериментальная установка, или технологическими процессами, такими, как гальваническая линия, доменный процесс и т.п. Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная программа, управляющая объектом. В противном случае может произойти авария: спутник сойдет с орбиты, экспериментальные данные могут быть потеряны, толщина гальванического покрытия не будет соответствовать норме и т.п. Характерным для ОСРВ является обеспечение заранее заданных интервалов времени реакции на предусмотренные события для получения управляющего воздействия. Поскольку в технологических процессах промедление может привести к нежелательным и даже опасным последствиям, ОСРВ работают со значительной недогрузкой, так как важнейшей характеристикой является постоянная готовность системы – ее
реактивность.
Системное программное обеспечение этого периода решало множество проблем, связанных с защитой результатов работы различных программ, защитой данных в оперативной памяти и других данных. Кроме того, ОС должна управлять новыми устройствами, входящими в состав аппаратного обеспечения. Для решения этих задач системное программное обеспечение сформировалось в сложную систему, требующую для реализации своих возможностей значительных вычислительных ресурсов.
ОС четвертого поколения (1970-80-е гг.) были многорежимными системами, обеспечивающими пакетную обработку, разделение времени, режим реального времени и мультипроцессорный режим. Они были громоздкими, дорогостоящими («монстры» операционных систем). Например, стоимость разработки ОС OS/360 фирмой IBM соизмерима с затратами на реализацию американским национальным космическим агентством программы высадки человека на луну. Такие ОС, будучи прослойкой, между пользователем и аппаратурой

ЭВМ, привели к значительному усложнению вычислительной обстановки. Для выполнения простейшей программы необходимо было изучать сложные языки управления заданием (Job
Control LanguageJCL). К этому периоду относится появление вытесняющей многозадачности
(Preemptive scheduling) и использование концепции баз данных для хранения больших объемов информации для организации распределенной обработки. Программисты перестали использовать перфокарты и магнитные ленты для хранения своих данных. Вводится приоритетное планирование (Prioritized scheduling) и выделение квот на использование ограниченных ресурсов компьютеров (процессорного времени, дисковой памяти, физической (оперативной) памяти).
Появление электронно-лучевых дисплеев и переосмысление возможностей применения клавиатур поставили на очередь решение этой проблемы. Логическим расширением систем мультипрограммирования стали системы разделения времени (time-sharing системы). В них процессор переключается между задачами не только на время операций ввода-вывода, но и через определенные интервалы времени. Эти переключения происходят так часто, что пользователи могут взаимодействовать со своими программами во время их выполнения, то есть интерактивно.
В результате появляется возможность одновременной работы нескольких пользователей на одной компьютерной системе. У каждого пользователя для этого должна быть хотя бы одна программа в памяти. Чтобы уменьшить ограничения на количество работающих пользователей была внедрена идея неполного нахождения исполняемой программы в оперативной памяти. Основная часть программы находится на диске, и фрагмент, который необходимо в данный момент выполнять, может быть загружен в оперативную память, а ненужный – выкачан обратно на диск. Это реализуется с помощью механизма виртуальной памяти. Основным достоинством такого механизма является создание иллюзии неограниченной оперативной памяти ЭВМ.
В системах разделения времени пользователь получил возможность эффективно производить отладку программы в интерактивном режиме и записывать информацию на диск, не используя перфокарты, а непосредственно с клавиатуры. Появление on-line-файлов привело к необходимости разработки развитых файловых систем.


Поделитесь с Вашими друзьями:
  1   2   3   4   5   6   7   8   9   ...   13


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал