Назначение операционной системы

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

Назначение  операционных систем

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

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

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

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

Кроме того, современные  ОС имеют достаточно большой набор  средств и способов диагностики  и восстановления работоспособности  системы. Сюда относятся:

- диагностические  программы для выявления ошибок  в конфигурации ОС;

- средства восстановления  последней работоспособной конфигурации;

- средства восстановления  поврежденных и пропавших системных  файлов и др.

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

  . 
 
 
 
 

Перечислим  основные функции  операционных систем 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Ресурс  может быть выдан задаче по ее запросу  если:

  1 Ресурс свободен и в системе  нет запросов от задач более  высокого приоритета к этому  ресурсу.

  2 Текущий запрос и ранее полуученый  запросы допускают совместное  использование ресурса.

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

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

Многопрограммный  режим работы ЭВМ позволяет одновременно обслуживать несколько программ пользователей. Реализация режима требует соблюдения следующих непременных условий:

• независимости  подготовки заданий пользователями;

• разделения ресурсов ЭВМ в пространстве и  времени;

• автоматического  управления вычислениями.

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

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

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

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

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

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

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

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

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

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

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

kПС = TОПР/TМПР

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

В рассмотренном  в лекции 12 примере работы мультипрограммной  ЭВМ kПС = 36/24 = 1,5 при Км = 2 и kПС = 36/22   1,64 при Км = 3.

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

Основные  этапы обработки  пакета задач:

  1. Подготовка программ к счету. При этом каждая программа пакета может быть разработана отдельным программистом.
  2. Передача программ и исходных данных на ЭВМ, которая будет обрабатывать их в пакетном режиме.
  3. Формирование пакета задач из переданных программ по одному из эвристических алгоритмов.
  4. Обработка пакета задач на мультипрограммной ЭВМ.

Особенности пакетного режима работы:

  1. Пользователь отстранен от непосредственного доступа к ЭВМ.
  2. Результаты работы пользователь получает через определенное (иногда достаточно большое) время одновременно для всех задач пакета.
  3. Увеличивается время отладки программ.
  4. Существенно возрастает пропускная способность ЭВМ по сравнению с последовательным решением задач пакета.

Таким образом, пакетный режим наиболее эффективен при обработке больших отлаженных программ. 

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

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

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

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

 
Рис. 13.6. Организация работы ЭВМ в режиме разделения времени

Основные  характеристики:

  1. Многотерминальная многопользовательская система.
  2. Любой пользователь со своего терминала может обратиться к любым ресурсам ЭВМ.
  3. У пользователя создается впечатление, что он один работает на ЭВМ.

Реализация.

Время работы машины разделяется на кванты tk.

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

Единого способа  выбора времени кванта не существует. Иногда оно выбирается по количеству команд, которое должна выполнить  ЭВМ за это время.

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

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

Назначение операционной системы