Разное

Из каких частей состоит операционная система: Назначение и структура операционных систем

Структура операционных систем






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

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

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

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

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

Стандартные – управляют работой внешних устройств (клавиатуры, монитора, дисков и принтера), они в совокупности образуют базовую систему ввода-вывода.

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

Интерпретатор действий пользователя

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

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

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

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

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



¨ файлы,

¨ правила образования имен файлов и способов обращения к ним,

¨ структуру хранения файлов на диске (линейную или иерархическую, древовидную).

Определения

Файл – это именованная область памяти на внешнем носителе.

Характеристики файла – имя, тип, размер, дата и время создания.

Имя файла – это собственно имя файла, точка и расширение.

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

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

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

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

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

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

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

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

Полное имя файла – это префикс + имя файла.

Примеры: с:\папка1\папка2\файл1.тхт

кат\файл2.тхт

C:\GAMES\PRINCE\LEVELS является полным маршрутом к файлу IGRA.EXE.




C:\GAMES\PRINCE\LEVELS\IGRA.EXE — полным именем файла.

Обратите внимание, «С:\» является обозначением корневого каталога на диске С.

Существует две группы (вида) файлов: выполнимые и невыполнимые.

Выполнимые файлы предоставляют пользователю возможность работать в какой-то среде, или выполнять команды ОС. Имена выполнимых файлов (на примере MS DOS и MS WINDOWS) имеют расширения ‑ exe (программа), com (устаревшее расширение программы), bat (пакетный файл, содержащий набор команд ОС).

Невыполнимые файлы, как правило, являются порождением программ-приложений или их относят к разряду системных файлов. Имена невыполнимых файлов имеют расширения, которые им присваивают программы-приложения, породившие их, например doc, bmp, avi, xls. Эти расширения указывают на тип файла – текстовый, графический, видео, тип «электронная таблица». Системные файлы имеют расширения — sys, ini и другие.

Пример, Word.exe – это программа (тестовый процессор MS Word), Word.doc – это документ, созданный в тестовом процессоре MS Word (имя может быть любым).











Разбираемся, как работают операционные системы

Linux, Windows, Mac OS? Зачем они нужны? Понимание того, как работают операционные системы, поможет создавать качественные приложения.

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

Если стремитесь построить карьеру программиста, стоит понять, как работают операционные системы. Например, можно изучить курс «Введение в операционные системы» от Georgia Tech. В нем рассказывается, как работают ОС: механизмы работы, параллельное программирование (потоки и синхронизация), взаимодействие между процессами, распределённые ОС.

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

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

Файловая система, планировщик и драйверы – всё это основные инструменты работы ОС.

Существует три ключевых элемента операционной системы:

  1. Абстракции (процессы, потоки, файлы, сокеты, память).
  2. Механизмы (создание, управление, открытие, запись, распределение).
  3. Реализации (алгоритмы LRU, EDF).

Кроме того, есть два основных принципа проектирования операционных систем:

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

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

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

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

  • Stack: стек процесса содержит временные данные, такие как параметры метода, адрес возврата и локальные переменные.
  • Heap: это динамически распределяемая память процесса времени его выполнения.
  • Text: хранит состояние регистров, состояние программного счетчика, режим работы процессора, незавершенные операции ввода-вывода, информацию о выполненных системных вызовах.
  • Data: раздел содержит глобальные и статические переменные.

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

Общая картина выглядит так:

  • Start: начальное состояние при создании процесса.
  • Ready: процесс ожидает исполнения на процессоре. В течение работы процессор может переключаться между процессами, переводя одни в режим готовности, другие – в режим исполнения.
  • Running: выполнение инструкций.
  • Wait: процесс переходит в состояние ожидания. Например, ждёт ввода данных или получения доступа к файлу.
  • Terminated: как только процесс завершится, он перейдёт в это состояние и будет ожидать удаления.

Немного терпения: мы уже близки к пониманию того, как работают операционные системы 😉

Блок управления процессов (Process Control Block) – это структура данных, поддерживаемая операционной системой для каждого процесса. PCB имеет идентификатор PID. Именно PCB хранит всю информацию, необходимую для отслеживания процесса.

  • Process ID: идентификатор каждого из процессов в ОС.
  • State: текущее состояние процесса.
  • Privileges: разрешения доступа к системным ресурсам.
  • Pointer: указатель на родительский процесс.
  • Priority: приоритет процесса и другая информация, которая требуется для планирования процесса.
  • Program Counter: указатель на адрес следующей команды, которая должна быть выполнена.
  • CPU registers: регистры процессора, необходимые для состояния исполнения.
  • Accounting Information: уровень нагрузки на процессор, статистика и другие данные.
  • I/O Information: список ресурсов, использующих чтение и запись.

Поток (нить, thread) – это ход исполнения программы. Он также имеет свой program counter, переменные, стек.

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

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

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

Чем хороши потоки:

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

Потоки имеют два уровня реализации:

  • Пользовательский уровень, то есть потоки, управляемые приложениями;
  • Уровень ядра, то есть потоки, управляемые ядром операционной системы.

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

Во втором случае ядро выполняет создание потоков, а ещё планирование и управление в пространстве ядра. Заметим, что потоки ядра обычно медленнее, чем потоки пользователей.

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

ОС поддерживает все блоки управления процессом (PCB) в очередях планирования процесса:

  • Очередь задач (job queue) поддерживает все процессы в системе.
  • Очередь ожидания (ready queue) хранит информацию обо всех процессах, находящихся в основной памяти в состоянии ожидания. В эту очередь попадают и новые процессы.
  • Очереди из устройств (device queue) – это процессы, заблокированные из-за недоступности устройств ввода-вывода.

ОС может использовать разные методы реализации для управления очередями (FIFO, Round Robin, Priority). Планировщик ОС определяет, когда и как перемещать процессы между готовыми и запущенными очередями (могут иметь только одну запись на ядро ​​процессора в системе). На приведенной выше диаграмме он был объединен с процессором.

Модели состояния делятся на активные и неактивные:

  • Активные: при создании нового процесса он переходит в класс активных.
  • Неактивные: процессы, которые не выполняются, а ждут завершения других процессов. Каждая запись в очереди является указателем на конкретный процесс. Очередь реализуется с использованием связанного списка. Использование диспетчера заключается в следующем: когда процесс прерывается, то переносится в очередь ожидания. Если процесс завершен или отменен – он отменяется вовсе.

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

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

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

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

Адресное пространство процесса – набор логических адресов, к которым программа обращается в коде. Например, если используется 32-битная адресация, то допустимые значения варьируются от 0 до 0x7fffffff, то есть 2 Гб виртуальной памяти.

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

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

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

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

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

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

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

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

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

Метод использования общей памяти

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

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

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

Аналогично потребитель сначала проверит наличие товара, и если ни один элемент не будет доступен, придётся ждать его освобождения.

Метод анализа сообщений

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

  • Устанавливается связь (если её ещё не существует).
  • Начинается обмен сообщениями с помощью базовых примитивов. Нам нужно как минимум два примитива – отправить (сообщение, пункт назначения) или получить (сообщение).

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

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

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

  • Блочные: то есть устройства, с которыми драйверы связываются, отправляя целые блоки данных. Например, жесткие диски, USB-камеры, Disk-On-Key.
  • Символьные: те устройства, с которыми драйвер связывается, отправляя и получая одиночные символы (байты или октеты). Например, последовательные порты, параллельные порты, звуковые карты и так далее.

ЦПУ должен иметь способ передачи информации на устройство ввода-вывода и обратно. И есть три способа сделать это:

  1. Специальные инструкции

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

  1. Входы и выходы с отображением памяти

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

  1. Прямой доступ к памяти (DMA)

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

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

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

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

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

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

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

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

Типы виртуализации

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

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

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

Сетевая файловая система Sun Microsystems (NFS), Novell NetWare, распределенная файловая система Microsoft и DFS от IBM являются примерами распределенных файловых систем.

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

Преимущества распределенной общей памяти:

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

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

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

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

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

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

Источник: Как работают операционные системы: 10 концептов, которые нужно знать разработчикам on Medium.

Конспект лекций по дисциплине ОС на тему: «Операционные системы, основные понятия»

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

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

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

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

Во вторую очередь это программное обеспечение. Все программное обеспечение принято делить на две части: прикладное и системное.

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

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

Деление на прикладное и системное программное обеспечение является отчасти условным и зависит от того, кто осуществляет такое деление.

Так, обычный пользователь, неискушённый в программировании, может считать Microsoft Word системной программой, а с точки зрения программиста это приложение. Компилятор языка Си для обычного программиста это системная программа, а для системного прикладная. Несмотря на эту нечеткую грань, эту ситуацию можно отобразить в виде последовательности слоев:

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

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

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

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

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

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

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

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

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

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

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

• Первый период (1945 — 1955). Ламповые машины. Операционные систем отсутствовали.

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

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

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

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

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

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

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

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

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

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

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

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

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

Основные функции классических операционных:

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

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

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

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

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

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

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

Основные понятия ОС

• Системные вызовы

• Прерывания

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

• Файлы

• Процессы, нити

• Системные вызовы

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

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

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

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

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

Прерывания

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

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

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

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

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

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

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

Файлы

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

Главная задача файловой системы (file system) скрыть особенности ввода-вывода и дать программисту простую абстрактную модель файлов, независимых от устройств. Для чтения, создания, удаления, записи, открытия и закрытия файлов также имеется обширная категория системных вызовов (create, delete, open, close, read, write ).

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

Реферат «Операционная система» (понятие, виды и классификация ОС)

Реферат «Операционные системы» (понятие, виды и классификация ОС)

СОДЕРЖАНИЕ

Введение

1.ПОНЯТИЕ ОПЕРАЦИОННОЙ СИСТЕМЫ

2.КЛАССИФИКАЦИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ

3.ВИДЫ ОПЕРАЦИОННЫХ СИСТЕМ

Заключение

Список использованных источников

Скачать реферат «Операционные системы»

Введение

Особое место среди системных программ отведено операционным системам.

Операционная система (ОС)- это программа, запускающаяся сразу.

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

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

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

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

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

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

Таблица 1. «Основные функции ОС»

Основные функции ОС Описание
Графический интерфейс Удобная оболочка, с которой работает пользователь.
Многозадачность Включает в себя возможность одновременной или поочередной работы сразу с несколькими приложениями, обмена данными между приложениями, а также возможность совместного использования программных, аппаратных, сетевых и прочих ресурсов вычислительной системы несколькими приложениями.
Ядро Это «переводчик» с программного языка на язык машинных кодов.
Драйверы Это специализированные программы для управления различными устройствами, входящие в состав компьютера.
Файловая система Она предназначена для хранения данных на дисках и обеспечения доступа к ним. Данные о том, в каком месте диска записан тот или иной файл, хранятся в системной области диска в специальных таблицах размещения файлов (FAT-таблицах).
Разрядность На данный момент существуют: 16-разрядные операционные системы (Dos, Windows 3.1, Windows 3.11), 32-разрядные операционные системы (Windows98, Windows 2000, WindowsMe), 64-разрядные операционные системы(Windows XP, WindowsVista).

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

В зависимости от алгоритма управления процессором, ОС делятся на:

— Однозадачные и многозадачные

— Однопользовательские и многопользовательские

— Однопроцессорные и многопроцессорные системы

— Локальные и сетевые.

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

— Однозадачные (MS DOS)

— Многозадачные (OS/2, Unix, Windows)

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

В зависимости от областей использования многозадачные ОС подразделяются на три типа:

— Системы пакетной обработки (ОС ЕС)

— Системы с разделением времени (Unix, Linux, Windows)

— Системы реального времени (RT11)

Рисунок 1. Скриншот рабочего стола Linux

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

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

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

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

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

Операционные системы, основанные на графическом интерфейсе. Операционная системы семейства Windows.

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

В течение долгих лет с момента своего появления персональные компьютеры (IBM — совместимые) обходились без специальных «пользовательских оболочек», работая непосредственно под управлением операционной системы (MS-DOS, DR DOS, PC-DOS). Все операции управления компьютером производились путем ввода с клавиатуры некоторых слов — директив. Неудобство такого алфавитно-цифрового интерфейса порождало претензии и к самим компьютерам (возможно и не совсем обоснованные).

Работа с персональной ЭВМ мало отличалась от работы, например, на мини-ЭВМ: необходимо было хорошо знать ОС.

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

Windows представляет собой графическую оболочку. От пользователя не требуется ввод директив с клавиатуры в виде текстовых строк. Необходимо только внимательно смотреть на экран и выбирать из предлагаемого набора требуемую операцию с помощью манипулятора мышь. На выбранном объекте необходимо зафиксировать курсор кнопкой мыши — и операция выполняется. С помощью того же манипулятора можно перемещать пиктограммы и окна по экрану, менять их размер, открывать и закрывать их — и все это при минимальном использовании клавиатуры для ввода каких бы то ни было директив. Кроме того, для любителей традиционного интерфейса DOS реализована возможность выхода на этот уровень. В оболочке Windows реализован принцип WYSIWYG (What you see is what you get = То, что вы видите, вы и получаете), до сих пор бывший привилегией небольшого числа программ.

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

У меня была возможность работать с ОС Microsoft от Windows 2000, до версии Windows 8, по-моему мнению наиболее удачной является ОС Windows 7, обладающая более совершенной защитой, чем Windows XP, более продуманный интерфейс и много разных других мелочей, делают эту ОС более привлекательной. Microsoft выпустили обновление для Windows 8, Windows 8.1, в которой решили немного вернуться к привычному пользователям рабочему столу.

Существуют и ОС для смартфонов: Android; iOS; Windows Phone. ОС Android на данный момент является самой популярной и распространенной. Если на рынке десктопных ОС главная тема, как и прежде, – Windows 10, то среди мобильных ОС по статистике 2016 года от компаний StatCounter и Net Applications, таковой могла бы стать iOS. С одной стороны, система получила крупнейшее обновление, с другой – новое поколение i-гаджетов в виде iPhone 7 и 7 Plus.

  • Статья «Статистика за сентябрь 2016: операционные системы» [Электронный ресурс]. Режим доступа: http://www.itrew.ru/windows/statistika-za-sentyabr-2016-operacionnye-sistemy.html;
  • Информатика [Электронный ресурс]. Учебник Л.З. Шауцуковой. Режим доступа: http://book.kbsu.ru/;
  • OS Journal [Электронный ресурс]. Режим доступа: http://www.ossite.ru/.

Скачать реферат «Операционные системы»