Операционные системы: назначение и основные функции

Понятие Операционной системы

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

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

Состав ОС

Структуру ОС составляют следующие модули:

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

т .е. переводит команды с языка программ на язык «машинных кодов», понятый компьютеру

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

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

    драйверы периферийных устройств - программно обеспечивают согласованность работы этих устройств с процессором (каждое периферийное устройство обрабатывает информацию по-разному и в различном темпе);

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

    дополнительные сервисные программы (утилиты) - делают удобным и многосторонним процесс общения пользователя с компьютером

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

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

ОС предназначена для решения следующих задач:

    обслуживания аппаратуры компьютера;

    создания рабочей среды и интерфейса пользователя;

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

    организации ввода/вывода, хранения информации и

    управления файлами и данными.

Согласно определению, все задачи, решаемые ОС, можно разбить на две группы:

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

    повышение эффективности использования компьютера путем рационального управления его ресурсами в соответствии с некоторым критерием.

Функции Операционной системы

Основные функции:

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

    Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).

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

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

    Обеспечение пользовательского интерфейса.

    Сетевые операции, поддержка стека сетевых протоколов.

Дополнительные функции:

    Параллельное или псевдопараллельное выполнение задач (многозадачность).

    Эффективное распределение ресурсов вычислительной системы между процессами.

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

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

    Взаимодействие между процессами: обмен данными, взаимная синхронизация.

    Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.

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

Эволюция операционных систем и основные идеи

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

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

Операционная система DOS

DOS – первая операционная система для персональных компьютеров, которая получила широкое распространение и была основной для компьютеров IBM PC с 1981 по 1995. Со временем она была практически вытеснена новыми, современными операционными системами Windows и Linux, но в ряде случаев DOS остается удобной и единственно возможной для работы на компьютере (например, в тех случаях, когда пользователь работает с устаревшей техникой или давно написанным программным обеспечением и т.п.)

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

Оболочка – это программа, которая запускается под управлением ОС и помогает пользователю работать с ОС. Программа-оболочка наглядно показывает всю файловую структуру компьютера: диски, каталоги, файлы. Файлы можно искать, копировать, перемещать, удалять сортировать, изменять и запускать всего несколькими клавишами. Одна из самых распространенных – Norton Commander(NC). В графических оболочках Windows 3.1 и Windows 3.11 применяется концепция так называемых «окон», которые можно открывать, перемещать по экрану, закрывать. Эти окна «принадлежат» различным программам и отражают их работу.

В DOS используется файловая система FAT. Одним из ее недостатков являются ограничения на имена файлов и каталогов. Имя может содержать не более 8 символов. Кроме того DOS не делает различий между одноименными строчными и прописными буквами.

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

Операционная система MICROSOFT WINDOWS

Графические оболочки Widows 1.0, Widows 2.0, Widows 3.0, Widows 3.1 и Widows 3.11 запускались под управлением MS DOS, то есть не были самостоятельными операционными системами. Но поскольку с появлением Windows открылись новые возможности, Windows называют не оболочкой, а средой.

Среда Windows характеризуется следующими особенностями, отличающими ее от других программ-оболочек:

    Многозадачность;

    Единый программный интерфейс;

    Единый интерфейс пользователя;

    Графический интерфейс пользователя;

    Единый аппаратно-программный интерфейс.

На смену операционной системе DOS с ее графическими оболочками Windows 3.1 и Windows 3.11 пришли полноценные операционные системы семейства MS Windows (сначала Windows 95, затем Windows 98, Windows 2000, Windows XP). В отличие от Windows 3.1 и Windows 3.11, они запускаются автоматически после включения компьютера.

В MS Windows для хранения файлов используется файловая модификация FAT–VFAT. В ней длина имен файлов и каталогов может достигать 256 символов.

В ОС Windows при работе с окнами и приложениями широко применяется манипулятор «мышь», в MS DOS используется только клавиатура.

Также в MSWindowsприсутствует панель задач (Taskbar). Она делает нагляднвм механизм многозадачности и намного ускоряет процесс переключения между приложениями.

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

Операционная система LINUX

Linux – это операционная система для IBM-совместимых персональных компьютеров и рабочих станций. Это многопользовательская операционная система с сетевой оконной графической системой X Window System. Операционная система Linux поддерживает стандарты открытых систем и протоколы сети Интернет и совместима с системами Unix, DOS, MS Windows.

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

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

Операционные системы UNI X

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

Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании AT&T. С тех пор было создано большое количество различных UNIX-систем.

Некоторые отличительные признаки UNIX-систем включают в себя:

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

    широкое применение утилит, запускаемых в командной строке;

    взаимодействие с пользователем посредством виртуального устройства - терминала;

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

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

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

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

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

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


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

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

Дополнительные функции:

1) параллельной или псевдопараллельное выполнение задач (многозадачность);

7) многопользовательский режим работы и разграничение прав доступа;


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

Монопольные, которые могут использоваться только одной программой (печать, МЛ);

Разделяемые, которые допускают их совместное использование одновременно несколькими процессами (НМД, ОП).

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

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

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

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

Многозадачные (OC EC, OS/2, UNIX, Windows 95).

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

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

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

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

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

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

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

вытесняющая многозадачность (Windows NT, OS/2, UNIX).

невытесняющая многозадачность (NetWare, Windows 3.x);

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

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

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


  1. Определение операционной системы. Место ОС в программном обеспечении вычислительных систем
Существуют две группы отделений ОС:

1) ОС - набор программ, управляющих оборудованием;

2) ОС - набор программ, управляющих други программами.

Обе они имеют свой точный технический смысл.

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

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

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

1) обслуживание пользователя;

2) обслуживание самой ОС.

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


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

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

Основные функции, выполняемые ОС:

1) выполнение программ по запросу (ввод/вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти);

2) загрузки программ в оперативную память и их выполнение;

3) стандартизованный доступ к периферийным устройствам (устройства ввода/вывода);

4) управление оперативной памятью (распределение между процессами, организация виртуальной памяти);

5) управление доступом к данным на энергонезависимых носителях, организованным в той или иной файловой системе;

6) обеспечение пользовательского интерфейса;

7) сохранение информации об ошибках системы.

Дополнительные функции:

1) паралллельной или псевдопараллельное выполнение задач (многозадачность);

2) эффективное распределение ресурсов вычислительной системы между процессами;

3) разграничение доступа различных процессов к ресурсам;

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

5) взаимодействие между процессорами, обмен данными, взаимная синхронизация;

6) защита самой системы, а также пользовательских данных и программ от действий пользователей или приложений;

7) многопользовательский режим работы и разграничение прав доступа
7)

Компоненты операционной системы:

1) загрузчик

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

Объекты ядра ОС:

Процессы

События

Семафоры

Мьютексы

Файлы, проецируемые в память.

3) командный процессор (интерпретатор)

4) Драйверы устройств

5) интерфейс
8)

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

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

Основные идеи

ОС как расширенная машина

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

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

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

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

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

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

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

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

Пакетный режим

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

[править]Разделение времени и многозадачность

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

Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.

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

[править]Разделение полномочий

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

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

[править]Реальный масштаб времени

Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реального масштаба времени» («реального времени») - синхронизации исполнения программ с внешними физическими процессами.

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

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

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

Ресурсы подразделяют на:

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

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

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

1) pазделяемыми - когда несколько процессов могут их использовать одновременно (в один и тот же момент времени) или параллельно (в течение некоторого интервала времени процессы используют ресурс попременно)

2) неделимыми.
10)

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

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

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

Не знаю,надо или нет,но есть такой раздел "Операционная среда. Прикладная среда"

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


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

  1. Поток. Контекст. Волокна
Понятию «поток» соответствует последовательный переход процессора от одной команды программы к другой. ОС распределяет процессорное время между потоками. Существуют Однопоточные и многопоточные ОС.

Билет 1

Понятие ОС. Основные функции ОС.

Причины развития ОС.

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

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

· Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).

· Управление оперативной памятью (распределение между процессами, организация виртуальной памяти).

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

· Обеспечение пользовательского интерфейса.

· Сохранение информации об ошибках системы.

· Дополнительные функции:

· Параллельное или псевдопараллельное выполнение задач (многозадачность).

· Эффективное распределение ресурсов вычислительной системы между процессами.

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

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

· Взаимодействие между процессами: обмен данными, взаимная синхронизация.

· Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.

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

2) Главные цели разработчиков операционной системы:

· Эффективное использование всех компьютерных ресурсов.

· Повышение производительности труда программистов.

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

· Обеспечение независимости прикладных программ от аппаратного обеспечения (АО).

Билет2

Системное ПО. Состав системного ПО.

Билет 3

Система управления файлами.

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

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

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

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

многозадачные (OC EC, OS/2, UNIX, Windows 95).

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

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

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

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

невытесняющая многозадачность (NetWare, Windows 3.x);

вытесняющая многозадачность (Windows NT, OS/2, UNIX).

Основным различием между вытесняющим и невытесняющим вариантами многозадачности является степень централизации механизма планирования процессов. В первом случае механизм планирования процессов целиком сосредоточен в операционной системе, а во втором - распределен между системой и прикладными программами. При невытесняющей многозадачности активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы та выбрала из очереди другой готовый к выполнению процесс. При вытесняющей многозадачности решение о переключении процессора с одного процесса на другой принимается операционной системой, а не самим активным процессом.
Поддержка многонитевости. Важным свойством операционных систем является возможность распараллеливания вычислений в рамках одной задачи. Многонитевая ОС разделяет процессорное время не между задачами, а между их отдельными ветвями (нитями).
Многопроцессорная обработка. Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование . Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.
В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.
Многопроцессорные ОС могут классифицироваться по способу организации вычислительного процесса в системе с многопроцессорной архитектурой: асимметричные ОС и симметричные ОС. Асимметричная ОС целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричная ОС полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами.

Билет 4

Интерфейсные оболочки. Операционная среда. Эмулятор.

Билет 5

Билет 6

Билет 7

Сервисы, предоставляемые ОС.

Что такое контекст задачи?

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

2) исполнение программ. Для запуска программы требуется выполнить ряд действий. Следует загрузить в основную память команды и данные, инициализировать устройства. Операционная система выполняет рутинную работу;

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

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

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

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

7) учёт использования ресурсов . Хорошая операционная система должна иметь средства учёта использования различных ресурсов и отображение параметров производителя. Эта информация крайне важна для дальнейшего улучшения и настройки система, для повышения производительности.

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

Билет 8

Вычислительный ресурс.

?Системные и прикладные программные модули.

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

Типы вычислительных ресурсов :

1.Процессорное время

2.Память (оперативная и виртуальная)

3.Место на жёстком диске (постоянная память)

4.Пропускная способность сети.

Программный модуль - согласно ГОСТ 19781-90 - программа или функционально завершенный фрагмент программы, предназначенный для:

1)хранения;
2) трансляции;

3) объединения с другими программными модулями;

4) загрузки в оперативную память.

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

Билет 9

Билет 10

Билет 11

Граф состояний процесса.

Регистры процессора .

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

1)либо он заканчивает свою деятельность;

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

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

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

Регистры в процессоре выполняют 2 ф-ии:

Адресные регистры.

Может быть записана только часть адреса, которая исполняется при вычислении полного или эффективного адреса.

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

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

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

Управляющие регистры. Регистры состояния.

Некоторые регистры доступны для команд исполняемых в режиме управления (режим ОС или режим супервизора).

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

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

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

Билет 12

Дескриптор процесса.

Билет 13

Дескриптор ОС РВ.

Билет 14

Процессы и потоки.

Билет 15

ОС как диспетчер ресурсов.

1)

2) Компьютер представляет собой набор ресурсов, поддерживающих выполнение задач, накопление, хранение, перемещение и обработки данных, также контролирует работу этих и других функций. Именно операционная система управляет ресурсами компьютера и контролирует его основные функции. Однако это управление имеет следующие особенности: 1) функции операционной системе работают так же, как и всё остальное программное обеспечение, т.е. они реализуются в виде отдельных программ или набора программ, исполняющихся процессов; 2) операционная система должна передавать управление другими процессами и ожидать, когда процессор снова позволит ей выполнить свои обязанности. Операционная система – это, по сущности, набор компьютерных программ, как и любая другая программа, она отдаёт процессору команды. Ключевым отличием является назначение этой программы. Операционная система //способна//: как использовать другие системные ресурсы, и как распределять время при использовании других программ, но для этого процессор должен приостановить работу с ней и перейти к выполнению других программ. Таким образом, операционная система уступает управление процессору, чтобы он смог выполнить некоторую полезную работу, а затем возобновляет контроль ровно на столько, чтобы подготовить процессор к следующей части работы. Часть операционной системы находится в оперативной памяти (основная, базовая). В эту часть входят ядро (Kernel ), содержащее основную часть наиболее часто используемых функций, там же находятся и некоторые другие компоненты операционной системы, использующиеся в данный момент времени. Остальная часть содержит другие программы и данные пользователя. Размещение этих данных в оперативной памяти управляется совместно операционной системой и аппаратной частью процессора, предназначенной для управления памятью. Операционная система принимает решение, когда исполняющая программа может испортить нужные ей устройства ввода/вывода и управляет доступом к файлам Процессор также является ресурсом, которому операционная система должна определить, сколько времени он должен уделить исполнению той или иной пользовательской программы. Многопроцессорные системы: решение должно быть принято по каждому процессу.

Билет 16

Билет 17

Билет 18

Взаимоблокировка процессов.

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

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

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

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

2) Взаимоблокировка процессов может происходить, когда несколько процессов борются за один ресурс.

Ресурсы бывают выгружаемые и невыгружаемые, аппаратные и программные.

Выгружаемый ресурс - этот ресурс безболезненно можно забрать у процесса (например: память).

Невыгружаемый ресурс - этот ресурс нельзя забрать у процесса без потери данных (например: принтер).

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

Условия необходимые для взаимоблокировки:

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

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

Условие отсутствия принудительной выгрузки ресурса.

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

Билет 19

Структура ОС: экзоядро.

Сформулируйте требования к созданию потоков в прикладной программе.

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

Билет 20

Многопоточный Web-сервер

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

Веб-сервер - это сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, обычно вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными. Веб-серверы - основа Всемирной паутины.

Клиент, которым обычно является веб-браузер, передаёт веб-серверу запросы на получение ресурсов, обозначенных URL-адресами. Ресурсы - это HTML-страницы, изображения, файлы, медиа-потоки или другие данные, которые необходимы клиенту. В ответ веб-сервер передаёт клиенту запрошенные данные. Этот обмен происходит по протоколу HTTP.

Билет 21

Прерывание и цикл команд

1) Систе́ма виртуа́льных маши́н (СВМ) - операционная система для ЕС ЭВМ, аналог системы VM фирмы IBM.

Основные особенности СВМ.

СВМ (VM, и её ранняя версия CP/CMS) - первая система, в которой была реализована технология виртуальных машин. Виртуализация в СВМ была последовательной и полной, в частности, на виртуальной машине можно было запустить другую копию системы СВМ, и так далее. Более того, запуск СВМ на виртуальной машине СВМ был рекомендованным методом генерации новой версии системы для установки. В частности, это означало, что любое реальное устройство ЭВМ могло быть тем или иным методом представлено в виде виртуального устройства на виртуальной машине. До сих пор ни одна другая реализация виртуальных машин не обладает таким свойством.

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

Цикл команд.

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

Билет 22

Программные модули

Модели потока

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

Модуль характеризуют:

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

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

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

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

Размер и сложность программного элемента в разумных рамках.

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

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

Билет 23

Классификация ресурсов

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


Прерывания в основном предназначены для повышения эффективности работы. Например, большинство устройств ввода-вывода работают намного медленнее, чем процессор. Предположим, что процессор передает данные на принтер по схеме, показанной рис. 1.2. После каждой операции процессор вынужден делать паузу и ждать, пока принтер не примет данные. Длительность этой паузы может быть в сотни и даже тысячи раз больше длительности цикла команды, в которой участвуют обращения к памяти. Ясно, что подобное использование процессора является неэффективным. Такое положение дел проиллюстрировано на рис. 1.5,а. Программа пользователя содержит ряд вызовов процедуры записи WRITE, в промежутках между которыми расположены другие команды. В отрезках 1, 2 и 3 находятся последовательности команд кода, в которых не используется ввод-вывод. При вызове процедуры WRITE управление передается системной утилите ввода-вывода, которая выполняет соответствующие операции. Программа ввода-вывода состоит из трех частей. Последовательность команд, обозначенных на рисунке цифрой 4, которые служат для подготовки к собственно операциям ввода-вывода. В эту последовательность могут входить копирование выводимых данных в специальный буфер и подготовка набора параметров, необходимых для управления устройством. Собственно команды ввода-вывода. Если программа не использует прерываний, ей следует ждать, пока устройство ввода-вывода не выполнит требуемые операции (или периодически проверять его состояние путем опроса). При этом программе не остается ничего другого, как просто ждать, постоянно проверяя, завершилась ли операция ввода-вывода. Последовательность команд, обозначенных на рисунке цифрой 5, которые служат для завершения операции. Эта последовательность может содержать в себе установку флагов, свидетельствующих об успешном или неудачном завершении операции.

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

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

Билет 24

Обработка прерываний

Супервизор ОС

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

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

На современных ПК обработчики основных аппаратных и программных прерываний находятся в памяти BIOS. Современная операционная система, во время своей загрузки, заменяет эти обработчики своими. При загрузке драйверов устройств, операционная система распределяет управление обработкой прерывания между ними. В операционных системах семейства Windows программные прерывания используются для вызовов многих API функций. В ассемблере X86 прерывание вызывается командой int.

2) Управление вводом-выводом осуществляется компонентом операционной системы, который часто называют супервизором ввода-вывода. Перечислим основные задачи, возлагаемые на супервизор.

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

2) Супервизор ввода-вывода получает запросы на ввод-вывод от супервизора задач или от программных модулей самой операционной системы.

3) Супервизор ввода-вывода вызывает соответствующие распределители каналов и контроллеров, планирует ввод-вывод (определяет очередность предоставления устройств ввода-вывода задачам, затребовавшим эти устройства). Запрос на ввод-вывод либо тут же выполняется, либо ставится в очередь на выполнение.

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

5) При получении сигналов прерываний от устройств ввода-вывода супервизор идентифицирует эти сигналы (см. раздел «Прерывания» в главе 1) и передает управление соответствующим программам обработки прерываний.

6) Супервизор ввода-вывода осуществляет передачу сообщений об ошибках, если таковые происходят в процессе управления операциями ввода-вывода.

7) Супервизор ввода-вывода посылает сообщения о завершении операции ввода-вывода запросившей эту операцию задаче и снимает ее с состояния ожидания ввода-вывода, если задача ожидала завершения операции.

Билет 25

Множественные прерывания.

Многопоточный Web-сервер.

1) билет 20

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

02.05.2017

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

Что должна уметь ОС компьютера

Независимо от выбора ОС, есть основные функции, которые есть в каждой из них:

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

Разновидности операционных систем

Первая ОС MS DOS была лишена графического интерфейса, она обладала ограниченными функциями. Сначала появилась графическая оболочка Windows для MS DOS, а потом и ее полноценная замена — MS Windows 95. Все версии в разное время стали популярными и устанавливаются на компьютерах разных марок производителей по всему миру.

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

Существуют и другие виды системы для компьютера, так IBM и Microsoft в далеком прошлом сотрудничали для создания ОС OS/2, позже Майкрософт ушла от разработки. Еще одна ОС MacOS работает на ПК Macintosh.

По каким параметрам оценивают операционную систему

Самое простое различие ОС – это доступность: платные и бесплатные. Linux распространяется бесплатно, Windows – платно. Две эти операционные системы с графическим интерфейсом, в отличие от MS DOS – текстовый.

Так же важно понимать, сколько задач выполняет ОС: многозадачная или однозадачная. Например, MS DOS способна работать с одной программой, а UNIX, OS/2, Windows – многозадачные, поддерживают запуск сразу несколько программ.

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

New Page 1

Теория операционных систем. Урок 1 . Назначение и функции операционной системы (ОС).

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

Функции операционной системы:

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

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

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

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

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

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

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

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

Операционные системы для автономного компьютера.

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

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

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

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

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

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

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

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

Операционная система не только предоставляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является механизмом, распределяющим ресурсы компьютера. К числу основных ресурсов современных вычислительных систем могут быть отнесены такие ресурсы, как процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессами. Процесс (задача) представляет собой базовое понятие большинства современных ОС и часто кратко определяется как программа в стадии выполнения. Программа - это статический объект, представляющий собой файл с кодами и данными. Процесс - это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает «запустить программу на выполнение», то есть создать новую единицу вычислительной работы. Например, ОС может создать процесс в ответ на команду пользователя run prgl.exe, где prgl.exe - это имя файла, в котором хранится код программы.

Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:

  • планирование ресурса - то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
  • удовлетворение запросов на ресурсы;
  • отслеживание состояния и учет использования ресурса - то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;

  • разрешение конфликтов между процессами.

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

Управление процессами.

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

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

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

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

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

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

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

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

Защита данных и администрирование.

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

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

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

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

Интерфейс прикладного программирования.

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

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

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

Пользовательский интерфейс.

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

Работа с сетью.

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

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

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

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

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