Назначение, функции и состав операционной системы

Структура вычислительной системы и подходы к определению ее как виртуальной машины. Краткая история эволюции ЭВМ. Первое появление ламповых машин. Возникновение компьютеров на основе транзисторов. Создание интегральных микросхем и магнитного диска.

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык русский
Дата добавления 14.01.2014
Размер файла 192,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Лекция

Назначение, функции и состав операционной системы

План

Введение

1. Структура вычислительной системы

2. Подходы к определению ОС. Операционная система как виртуальная машина

3. Краткая история эволюции вычислительных систем

4. Основные понятия, концепции ОС. Системные вызовы

5. Архитектура ОС. Монолитное ядро

6. Классификация ОС

7. Требования к современным ОС

Заключение

Введение

В данной лекции вводится понятие операционной системы; рассматривается эволюция развития операционных систем; описываются функции операционных систем и подходы к построению операционных систем.

Операционная система (ОС) - это программа, которая обеспечивает возможность рационального использования оборудования компьютера удобным для пользователя образом.

1. Структура вычислительной системы

ВС состоит из hardware, или техническое обеспечение: процессор, память, монитор, дисковые устройства и т.д., объединенные магистральным соединением, которое называется шиной.

Во-вторых, вычислительная система состоит из программного обеспечения. Все программное обеспечение принято делить на две части: прикладное и системное. К прикладному программному обеспечению, как правило, относятся разнообразные банковские и прочие бизнес-программы, игры, текстовые процессоры и т. п.

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

Рис. 1.1. Слои программного обеспечения компьютерной системы

2. Подходы к определению ОС. Операционная система как виртуальная машина

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

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

Операционная система как менеджер ресурсов

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

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

Операционная система как защитник пользователей и программ

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

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

Операционная система как постоянно функционирующее ядро

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

3. Краткая история эволюции вычислительных систем

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

Первый период (1945-1955 гг.). Ламповые машины

Мы начнем исследование развития компьютерных комплексов с появления электронных вычислительных систем (опуская историю механических и электромеханических устройств).

Первые шаги в области разработки электронных вычислительных машин были предприняты в конце Второй мировой войны. В середине 40-х были созданы первые ламповые вычислительные устройства и появился принцип программы, хранящейся в памяти машины (John Von Neumann, июнь 1945 г.). В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не регулярное использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Об операционных системах не было и речи, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. За пультом мог находиться только один пользователь. Программа загружалась в память машины в лучшем случае с колоды перфокарт, а обычно с помощью панели переключателей.

Вычислительная система выполняла одновременно только одну операцию (ввод-вывод или собственно вычисления). Отладка программ велась с пульта управления с помощью изучения состояния памяти и регистров машины. В конце этого периода появляется первое системное программное обеспечение: в 1951-1952 гг. возникают прообразы первых компиляторов с символических языков (Fortran и др.), а в 1954 г. Nat Rochester разрабатывает Ассемблер для IBM-701.

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

Второй период (1955 г. - начало 60-х). Компьютеры на основе транзисторов. Пакетные операционные системы

С середины 50-х годов начался следующий период в эволюции вычислительной техники, связанный с появлением новой технической базы - полупроводниковых элементов. Применение транзисторов вместо часто перегоравших электронных ламп привело к повышению надежности компьютеров. Теперь машины могут непрерывно работать достаточно долго, чтобы на них можно было возложить выполнение практически важных задач. Снижается потребление вычислительными машинами электроэнергии, совершенствуются системы охлаждения. Размеры компьютеров уменьшились. Снизилась стоимость эксплуатации и обслуживания вычислительной техники. Началось использование ЭВМ коммерческими фирмами. Одновременно наблюдается бурное развитие алгоритмических языков (LISP, COBOL, ALGOL-60, PL-1 и т.д.). Появляются первые настоящие компиляторы, редакторы связей, библиотеки математических и служебных подпрограмм. Упрощается процесс программирования. Пропадает необходимость взваливать на одних и тех же людей весь процесс разработки и использования компьютеров. Именно в этот период происходит разделение персонала на программистов и операторов, специалистов по эксплуатации и разработчиков вычислительных машин.

Изменяется сам процесс прогона программ. Теперь пользователь приносит программу с входными данными в виде колоды перфокарт и указывает необходимые ресурсы. Такая колода получает название задания. Оператор загружает задание в память машины и запускает его на исполнение. Полученные выходные данные печатаются на принтере, и пользователь получает их обратно через некоторое (довольно продолжительное) время.

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

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

Третий период (начало 60-х - 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ОС

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

Повышению эффективности использования процессорного времени мешает низкая скорость работы механических устройств ввода-вывода (быстрый считыватель перфокарт мог обработать 1200 перфокарт в минуту, принтеры печатали до 600 строк в минуту). Вместо непосредственного чтения пакета заданий с перфокарт в память начинают использовать его предварительную запись, сначала на магнитную ленту, а затем и на диск. Когда в процессе выполнения задания требуется ввод данных, они читаются с диска. Точно так же выходная информация сначала копируется в системный буфер и записывается на ленту или диск, а печатается только после завершения задания. Вначале действительные операции ввода-вывода осуществлялись в режиме off-line, то есть с использованием других, более простых, отдельно стоящих компьютеров. В дальнейшем они начинают выполняться на том же компьютере, который производит вычисления, то есть в режиме on-line. Такой прием получает название spooling (сокращение от Simultaneous Peripheral Operation On Line) или подкачки-откачки данных. Введение техники подкачки-откачки в пакетные системы позволило совместить реальные операции ввода-вывода одного задания с выполнением другого задания, но потребовало разработки аппарата прерываний для извещения процессора об окончании этих операций.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параллельно внутренней эволюции вычислительных систем происходила и внешняя их эволюция. До начала этого периода вычислительные комплексы были, как правило, несовместимы. Каждый имел собственную операционную систему, свою систему команд и т. д. В результате программу, успешно работающую на одном типе машин, необходимо было полностью переписывать и заново отлаживать для выполнения на компьютерах другого типа. В начале третьего периода появилась идея создания семейств программно-совместимых машин, работающих под управлением одной и той же операционной системы. Первым семейством программно-совместимых компьютеров, построенных на интегральных микросхемах, стала серия машин IBM/360. Разработанное в начале 60-х годов, это семейство значительно превосходило машины второго поколения по критерию цена/производительность. За ним последовала линия компьютеров PDP, несовместимых с линией IBM, и лучшей моделью в ней стала PDP-11.

Сила "одной семьи" была одновременно и ее слабостью. Широкие возможности этой концепции (наличие всех моделей: от мини-компьютеров до гигантских машин; обилие разнообразной периферии; различное окружение; различные пользователи) порождали сложную и громоздкую операционную систему. Миллионы строчек Ассемблера, написанные тысячами программистов, содержали множество ошибок, что вызывало непрерывный поток публикаций о них и попыток исправления. Только в операционной системе OS/360 содержалось более 1000 известных ошибок. Тем не менее, идея стандартизации операционных систем была широко внедрена в сознание пользователей и в дальнейшем получила активное развитие.

Четвертый период (с 1980 г. по настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы

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

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

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

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

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

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

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

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

· Планирование заданий и использования процессора.

· Обеспечение программ средствами коммуникации и синхронизации.

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

· Управление файловой системой.

· Управление вводом-выводом.

· Обеспечение безопасности

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

4. Основные понятия, концепции ОС. Системные вызовы

В любой операционной системе поддерживается механизм, который позволяет пользовательским программам обращаться к услугам ядра ОС. В операционных системах наиболее известной советской вычислительной машины БЭСМ-6 соответствующие средства "общения" с ядром назывались экстракодами, в операционных системах IBM они назывались системными макрокомандами и т.д. В ОС Unix такие средства называют системными вызовами.

Системные вызовы (system calls) - это интерфейс между операционной системой и пользовательской программой. Они создают, удаляют и используют различные объекты, главные из которых - процессы и файлы.

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

Основное отличие состоит в том, что при системном вызове задача переходит в привилегированный режим или режим ядра (kernel mode). Поэтому системные вызовы иногда еще называют программными прерываниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями.

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

В большинстве операционных систем системный вызов осуществляется командой программного прерывания (INT). Программное прерывание - это синхронное событие, которое может быть повторено при выполнении одного и того же программного кода.

Прерывания

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

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

Исключительные ситуации

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

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

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

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

Файлы

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

Главная задача файловой системы (file system) - скрыть особенности ввода-вывода и дать программисту простую абстрактную модель файлов, независимых от устройств.

Для чтения, создания, удаления, записи, открытия и закрытия файлов также имеется обширная категория системных вызовов (создание, удаление, открытие, закрытие, чтение и т.д.).

Основные понятия: каталог, текущий каталог, корневой каталог, путь. Для манипулирования этими объектами в операционной системе имеются системные вызовы.

Процессы

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

Ресурсы

Ресурсом называется любой объект ОС, который может распределяться внутри системы, и за обладание которыми конкурируют процессы. Важные типы ресурсов - это процессоры, внутренняя и внешнаяя память, разнообразные устройства.

Взаимоблокировка

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

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

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

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

Ввод-вывод данных

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

Безопасность

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

5. Архитектура ОС. Монолитное ядро

Операционная система - это обычная программа, поэтому было бы логично и организовать ее так же, как устроено большинство программ, то есть составить из процедур и функций. В этом случае компоненты операционной системы являются не самостоятельными модулями, а составными частями одной большой программы. Такая структура операционной системы называется монолитным ядром (monolithic kernel).

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

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

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

Монолитное ядро - старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство Unix-систем.

В монолитном ядре выделяются вкрапления сервисных процедур, соответствующих системным вызовам.

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

Многоуровневые системы (Layered systems)

Нижним уровнем в таких системах обычно является hardware, верхним уровнем - интерфейс пользователя. Чем ниже уровень, тем более привилегированные команды и действия может выполнять модуль, находящийся на этом уровне. Впервые такой подход был применен при создании системы THE (Technishe Hogeschool Eindhoven) Дейкстрой (Dijkstra) и его студентами в 1968 г. Эта система имела следующие уровни:

Рис. 1.2. Слоеная система THE

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

Виртуальные машины

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

Размещено на http://www.allbest.ru/

Рис. 1.3. Вариант виртуальной машины

Первой реальной системой такого рода была система CP/CMS, или VM/370, как ее называют сейчас, для семейства машин IBM/370.

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

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

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

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

Рис. 1.4. Микроядерная архитектура операционной системы

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

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

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

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

Смешанные системы

Современные операционные системы используют различные комбинации этих подходов.

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

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

Наиболее тесно элементы микроядерной архитектуры и элементы монолитного ядра переплетены в ядре Windows NT.

Хотя Windows NT часто называют микроядерной операционной системой, это не совсем так. Микроядро NT слишком велико (более 1 Мбайт), чтобы носить приставку "микро". Компоненты ядра Windows NT располагаются в вытесняемой памяти и взаимодействуют друг с другом путем передачи сообщений, как и положено в микроядерных операционных системах. В то же время все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных, что свойственно операционным системам с монолитным ядром.

Таким образом, Windows NT можно с полным правом назвать гибридной операционной системой.

6. Классификация ОС

Существует несколько схем классификации операционных систем. Ниже приведена классификация по некоторым признакам с точки зрения пользователя.

Реализация многозадачности

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

· многозадачные (Unix, OS/2, Windows);

· однозадачные (например, MS-DOS).

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

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

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

Поддержка многопользовательского режима

По числу одновременно работающих пользователей ОС можно разделить на:

· однопользовательские (MS-DOS, Windows 3.x);

· многопользовательские (Windows NT, Unix).

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

Многопроцессорная обработка

Вплоть до недавнего времени вычислительные системы имели один центральный процессор. В результате требований к повышению производительности появились многопроцессорные системы, состоящие из двух и более процессоров общего назначения, осуществляющих параллельное выполнение команд. Поддержка мультипроцессирования является важным свойством ОС и приводит к усложнению всех алгоритмов управления ресурсами. Многопроцессорная обработка реализована в таких ОС, как Linux, Solaris, Windows NT, и ряде других.

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

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

Системы реального времени

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

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

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

Классификация ОС (по применению)

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

ОС мэйнфреймов

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

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

Серверные ОС

Уровнем ниже находятся серверные ОС. Под управлением таких систем функционируют сервера, которые представляют собой очень большие персональные компьютеры или рабочие станции, а иногда мэйнфреймы. Серверы предоставляют возможность работы с принтерами, файлами или Интернетом. Они одновременно обслуживают несколько пользователей и позволяют им делить между собой программные и аппаратные ресурсы. UNIX, Windows 2000 (а также не так давно появившийся Windows 2003) и Linux являются, вероятно, наиболее типичными серверными ОС.

Многопроцессорные ОС

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

ОС для персональных компьютеров

Задача таких операционных систем - предоставление удобного интерфейса для одного пользователя. Такие системы используются для работы с текстами, электронными таблицами и доступа в Интернет. В качестве примеров можно привести уже упомянутые UNIX, Windows 2000/XP, Linux, MacOS.

ОС реального времени

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

Выделяют и другую разновидность - мягкая система реального времени. В такой системе допустимы пропуски сроков выполнения операций. В эту категорию попадают цифровое аудио и мультимедийные системы. Широко известными являются системы реального времени VxWorks, QNX, pSOS.

Встроенные ОС

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

Встроенные системы управляют устройствами, не являющимися компьютерами, например, телевизорами, мобильными телефонами, пылесосами или холодильниками. Они обладают такими же характеристиками, что и системы реального времени, но при этом имеют особый размер, память и ограничений мощности, что выделяет их в отдельный класс. Примерам встроенных ОС являются PalmOS и Windows CE.

ОС для смарт-карт

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

Приведенная классификация ОС не является исчерпывающей. Более подробно особенности применения современных ОС рассмотрены в [Олифер, 2001].

7. Требования к современным ОС

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

Надежность и отказоустойчивость. Система должна быть защищена от внутренних и внешних ошибок, сбоев и отказов. Ее действия должны быть предсказуемы, а прикладные программы не должны иметь возможности наносить вред ОС. Это требование подразумевает также, включает ли ОС программную поддержку аппаратных средств, таких как дисковые массивы RAID или источники бесперебойного питания.

Расширяемость. Если код ОС написан так, что дополнения и изменения в нее могут вноситься без нарушения целостности системы, такую ОС называют расширяемой. Большинство ОС Unix являются таковыми.

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

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

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

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

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

Заключение

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


Подобные документы

  • Первое поколение ЭВМ, которые создавались на основе вакуумных электроламп. Развитие компьютеров в 60-е годы ХХ века на основе полупроводниковых транзисторов. Четвертое и пятое поколения ЭВМ, создание на основе больших и сверхбольших интегральных схем.

    реферат [17,5 K], добавлен 25.03.2012

  • Установка операционной системы Ubuntu. Создание виртуальной машины. Выбор атрибутов жесткого диска. Региональные параметры. Ввод параметров авторизации. Установка дополнения гостевой операционной системы. Список учетных записей, их права, вход в систему.

    лабораторная работа [2,6 M], добавлен 15.12.2013

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

    реферат [33,0 K], добавлен 19.06.2011

  • Создание компанией Microsoft операционной системы MS-DOS и повсеместное использование персональных компьютеров. Необходимость создания более удобной для пользователя операционной системы, разработка и эволюция Windows, появление интернет-приложений.

    презентация [3,6 M], добавлен 29.10.2012

  • Проект машины для выполнения научных расчётов Бэббиджа. Вычислительные машины на основе электронных ламп. Внедрение транзисторов и микросхем. Создание персонального компьютера. Основные вехи развития информатики в России. Процесс информатизации общества.

    реферат [28,4 K], добавлен 24.12.2009

  • Установка платформы виртуализации VirtualBox. Создание и настройка виртуальной машины VirtualBox с операционной системой Ubuntu. Ознакомление с операционной системой Ubuntu-desktop x32. Компиляция программ на С/С++ в терминале Ubuntu-desktop x32.

    лабораторная работа [2,6 M], добавлен 08.11.2022

  • Создание виртуальной машины для гостевой операционной системы Microsoft Windows Server 2003. Первоначальная настройка установленной операционной системы. Создание DHCP-сервера с диапазоном рабочих адресов. Настройка доменного имени для IP-адреса сервера.

    лабораторная работа [3,2 M], добавлен 20.12.2012

  • Требования к аппаратной части компьютера и программному обеспечению. Установка системы VMware. Местонахождение файлов заголовков, соответствующих запущенной версии ядра. Создание виртуальной машины в операционной системе MS Windows XP Professional.

    контрольная работа [1,6 M], добавлен 22.10.2013

  • История появления и развития первых вычислительных машин. Изучение характеристик электронно-вычислительной машины. Архитектура и классификация современных компьютеров. Особенности устройства персональных компьютеров, основные параметры микропроцессора.

    курсовая работа [48,6 K], добавлен 29.11.2016

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

    контрольная работа [81,4 K], добавлен 06.04.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.