Главная страница
Навигация по странице:

  • Поддержка многозадачности.

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

  • Поддержка многонитевости.

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

  • Средства синхронизации и взаимодействия процессов.

  • Разделяемая память ; Каналы

  • Сегментно-страничное распределение памяти.

  • ГОС. Программирование. Программное обеспечение. Основные этапы решения задач на ЭВМ. Жизненный цикл программного средства


    Скачать 0.72 Mb.
    НазваниеПрограммирование. Программное обеспечение. Основные этапы решения задач на ЭВМ. Жизненный цикл программного средства
    АнкорГОС.docx
    Дата12.07.2018
    Размер0.72 Mb.
    Формат файлаdocx
    Имя файлаГОС.docx
    ТипРешение
    #21372
    страница4 из 9
    1   2   3   4   5   6   7   8   9

    4. ОПЕРАЦИОННЫЕ СИСТЕМЫ.

      1. Определение операционной системы. Функции ОС.

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

    В большинстве вычислительных систем ОС является основной, наиболее важной (а иногда и единственной) частью системного ПО. С 1990-х наиболее распространёнными операционными системами являются ОС семейства MicrosoftWindows и системы класса UNIX (особенно Linux и Mac OS).

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

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

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

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

    Операционная система как виртуальная машина.

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



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

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

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

    • планирование ресурса – то есть определение, кому, когда, а для делимых ресурсов и в каком количестве, необходимо выделить данный ресурс;

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




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

    Операционные системы могут различаться:

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

    • типами аппаратных платформ;

    • областями использования;

    • особенностями использованных методов проектирования и др.

    Особенности управление ресурсами.

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

    1. многозадачные и однозадачные;

    2. многопользовательские и однопользовательские;

    3. на системы, поддерживающие многонитевую обработку и не поддерживающие;

    4. на многопроцессорные и однопроцессорные системы.

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

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

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

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

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

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

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

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

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

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

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

    Типы аппаратных платформ.

    По типу аппаратуры различают операционные системы:

    • персональных компьютеров;

    • мини-компьютеров;

    • мейнфреймов (больших многопроцессорных систем);

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

    • сетей ЭВМ (распределенных систем).

    Особенности областей использования.

    Многозадачные ОС подразделяются на три типа в соответствии с использованными при их разработке критериями эффективности:

    • системы пакетной обработки (например, OC EC),

    • системы разделения времени (UNIX, VMS),

    • системы реального времени (QNX, RT/11).

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

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

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

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

    Особенности методов построения

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

    К таким базовым концепциям относятся:

    • Способы построения ядра системы (монолитное или микроядро);

    • Использование объектно-ориентированного подхода;

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

    • Распределенная организация операционной системы.




      1. Средства синхронизации и взаимодействия процессов.

    Процесс (задача) – программа, находящаяся в режиме выполнения.

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

    Способы взаимодействия процессов:

    1. Разделяемая память;

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

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

    4. Механизм вызовов удаленных процедур (RPC), обеспечивающий передачу управления удаленному процессу.

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

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

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

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

    1. Критические секции (criticalsection) – механизм, частный случай мьютексов в системах Windows. Представляет собой системную переменную, к которой получает непосредственный доступ только операционная система. Потоки же устанавливают эту переменную с помощью вызовов функций enter() и leave(). Если переменная занята одним потоком, никакой другой поток не может исполнить код, огражденный вызовами функций enter и leave. Критическая секция обеспечивает синхронизацию потоков только в пределах одного процесса.

    2. Семафор – объект, позволяющий войти в заданный участок кода не более чем n потокам. Над семафором можно производить 3 операции: инициализацию некоторым значением, инкремент (Up) и декремент (Down). Прежде чем заблокировать процесс, Down проверяет семафор, если он равен нулю, то он блокирует процесс, если нет, то процесс снова становится активным, и уменьшает семафор на единицу. Up увеличит значение семафора на 1 или разблокирует процесс находящийся в ожидании. Down и Up выполняются как элементарное действие, т.е. процесс не может быть блокирован во время выполнения этих операций.

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

    4. Механизм событий – более общий механизм для синхронизации. В разных операционных системах аппарат событий реализуется по-своему, но в любом случае используются системные функции аналогичного назначения, которые условно назовем WAIT(x) и POST(x), где x - идентификатор некоторого события. Если ресурс занят, то процесс не выполняет циклический опрос, а вызывает системную функцию WAIT(D), здесь D обозначает событие, заключающееся в освобождении ресурса D. Функция WAIT(D) переводит активный процесс в состояние ОЖИДАНИЕ и делает отметку в его дескрипторе о том, что процесс ожидает события D. Процесс, который в это время использует ресурс D, после выхода из критической секции выполняет системную функцию POST(D), в результате чего операционная система просматривает очередь ожидающих процессов и переводит процесс, ожидающий события D, в состояние ГОТОВНОСТЬ.




      1. Файловая система.

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

    В широком смысле понятие "файловая система" включает:

    • совокупность всех файлов на диске,

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

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

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

    Файлы бывают разных типов: обычные файлы, специальные файлы, файлы-каталоги.

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

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

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

    Иерархия каталогов может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть - если файл может входить сразу в несколько каталогов. В MS-DOS каталоги образуют древовидную структуру, а в UNIX'е - сетевую.

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

    Варианты размещения файлов на диске:

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

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

    3. Использование связанного списка индексов, который хранится в специальной таблице дисковой памяти (FAT в Windows). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла.

    4. Перечисление номеров блоков, занимаемым файлом.

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


      1. Сегментно-страничное распределение памяти.
    1   2   3   4   5   6   7   8   9


    написать администратору сайта