Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Функции операционных систем персональных компьютеров (Операционные системы, их назначение и структура)

Содержание:

Введение

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

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

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

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

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

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

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

Глава 1. Операционные системы, их назначение и структура

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

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

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

Основные задачи операционных систем следующие:

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

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

Особенность операционных систем — довольно большой объем, сложная структура и длительные сроки использования. Исходный код основы операционной системы порядка 5 млн строк. И это касается только той части, которая работает в режиме ядра. При включении необходимых общих библиотек объем операционной системы превышает 70 млн строк кода (напечатанные на бумаге, они займут 10–20 книжных полок), и это, не считая основных прикладных программ.

Операционные системы могут классифицироваться по следующим показателям:

  • количеству пользователей: однопользовательские ОС (MS DOS, Windows) и многопользовательские ОС (VM,Unix);
  • доступу: пакетные (OS/360), интерактивные (Windows, Unix), системы реального времени (QNX, Neutrino, RSX);
  • количеству решаемых задач: однозадачные ОС (MS DOS) и многозадачные ОС (Windows, Unix).

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

Однопользовательские ОС бывают двух видов:

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

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

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

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

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

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

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

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

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

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

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

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

Глава 2. Функции операционных систем персональных компьютеров

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

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

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

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

2.1. Управление задачами (процессами)

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

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

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

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

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

Не следует смешивать понятия «процесс» и «программа». Программа — это план действий, а процесс — это само действие, поэтому понятие процесса включает:

  • программный код;
  • данные;
  • содержимое стека;
  • содержимое адресного и других регистров процессора.

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

Различают следующие состояния процесса:

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

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

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

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

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

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

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

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

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

  • буфер заполнен — ожидает процесс-производитель;
  • буфер пуст — ожидает процесс-потребитель.

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

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

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

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

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

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

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

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

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

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

2.2. Управление данными

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Create (Создать). Создает файл без данных. Цель вызова состоит в объявлении о появлении нового файла и установке ряда атрибутов.
  • Delete (Удалить). Когда файл больше не нужен, его нужно удалить, чтобы освободить дисковое пространство. Именно для этого и предназначен этот системный вызов.
  • Open (Открыть). Перед использованием файла процесс должен его открыть. Цель системного вызова open — дать возможность системе извлечь и поместить в оперативную память атрибуты и перечень адресов на диске, чтобы ускорить доступ к ним при последующих вызовах.
  • Close (Закрыть). После завершения всех обращений к файлу потребность в его атрибутах и адресах на диске уже отпадает, поэтому файл должен быть закрыт, чтобы освободить место во внутренней таблице. Многие системы устанавливают максимальное количество открытых процессами файлов, определяя смысл существования этого вызова. Информация на диск пишется блоками, и закрытие файла вынуждает к записи последнего блока файла, даже если этот блок и не заполнен.
  • Read (Произвести чтение). Считывание данных из файла. Как правило, байты поступают с текущей позиции. Вызывающий процесс должен указать объем необходимых данных и предоставить буфер для их размещения.
  • Write (Произвести запись). Запись данных в файл, как правило, с текущей позиции. Если эта позиция находится в конце файла, то его размер увеличивается. Если текущая позиция находится где-то в середине файла, то новые данные пишутся поверх существующих, которые утрачиваются навсегда.
  • Append (Добавить). Этот вызов является усеченной формой системного вызова write. Он может лишь добавить данные в конец файла. Как правило, у систем, предоставляющих минимальный набор системных вызовов, вызов append отсутствует, но многие системы предоставляют множество способов получения того же результата, и иногда в этих системах присутствует вызов append.
  • Seek (Найти). При работе с файлами произвольного доступа нужен способ указания места, с которого берутся данные. Одним из общепринятых подходов является применение системного вызова seek, который перемещает указатель файла к определенной позиции в файле. После завершения этого вызова данные могут считываться или записываться с этой позиции.
  • Get attributes (Получить атрибуты). Процессу для работы зачастую необходимо считать атрибуты файла. К примеру, имеющаяся в UNIX программа make обычно используется для управления проектами разработки программного обеспечения, состоящими из множества сходных файлов. При вызове программа make проверяет время внесения последних изменений всех исходных и объектных файлов и для обновления проекта обходится компиляцией лишь минимально необходимого количества файлов. Для этого ей необходимо просмотреть атрибуты файлов, а именно время внесения последних изменений.
  • Set attributes (Установить атрибуты). Значения некоторых атрибутов могут устанавливаться пользователем и изменяться после того, как файл был создан. Такую возможность дает именно этот системный вызов. Характерным примером может послужить информация о режиме защиты. Под эту же категорию подпадает большинство флагов.
  • Rename (Переименовать). Нередко пользователю требуется изменить имя существующего файла. Этот системный вызов помогает решить эту задачу. Необходимость в нем возникает не всегда, поскольку файл может быть просто скопирован в новый файл с новым именем, а старый файл затем может быть удален.

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

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

Файловые системы хранятся на дисках. Большинство дисков может быть разбито на один или несколько разделов, на каждом из которых будет независимая файловая система. Сектор 0 на диске называется главной загрузочной записью (Master Boot Record (MBR)) и используется для загрузки компьютера. В конце MBR содержится таблица разделов. Из этой таблицы берутся начальные и конечные адреса каждого раздела. Один из разделов в этой таблице помечается как активный. При загрузке компьютера BIOS (базовая система ввода-вывода) считывает и выполняет MBR. Первое, что делает программа MBR, — находит расположение активного раздела, считывает его первый блок, который называется загрузочным, и выполняет его. Программа в загрузочном блоке загружает операционную систему, содержащуюся в этом разделе. Для достижения единообразия каждый раздел начинается с загрузочного блока, даже если он не содержит загружаемой операционной системы. Кроме того, в будущем он может содержать какую-нибудь операционную систему.

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

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

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

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

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

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

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

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

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

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

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

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

2.4. Ввод и вывод информации

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На многих персональных компьютерах предлагается пользоваться графическим интерфейсом пользователя (Graphical User Interface (GUI)).

Графические интерфейсы иногда обозначают следующей аббревиатурой — WIMPD (Windows, Menu, Pointng Device) — окна, меню, указывающее устройство, как основные действующие элементы в подобном интерфейсе.

Эти буквы означают соответственно: окна — Windows, значки — Icons, меню — Menu и указывающие устройства — Pointing device. Окна представляют собой прямоугольные области экрана, используемые для запуска программ. Значки являются небольшими обозначениями, на которых можно щелкать мышью с целью выполнения каких-либо действий. Меню представляют собой перечни действий, любое из которых может быть выбрано. И наконец, указывающие устройства — это мыши, трекболы или другая аппаратура, используемая для перемещения указателя по экрану с целью выбора элементов.

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

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

Заключение

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

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

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

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

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

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

  1. Операционные системы, среды и оболочки : учебное пособие /Т. Л. Партыка, И. И. Попов. — 5-е изд., перераб. и доп. — М. :ФОРУМ : ИНФРА-М, 2017. — 560 с. : ил. — (Профессиональное образование).
  2. Таненбаум Э., Бос Х. Современные операционные системы. 4-е изд. — СПб.: Питер, 2015. — 1120 с.
  3. Леонтьев В.П. Новейшая энциклопедия персонального компьютера - М: Изд. ОЛМА-ПРЕСС, 2003.
  4. Столлингс У. Операционные системы. Внутреннее устройство и принципы проектирования. М.: Вильямс, 2002.
  5. Таненбаум Э. Современные операционные системы. СПб.: Питер, 2002.
  6. Титаренко С. П. Управление процессами в современных операционных системах ЭВМ: учеб. пособие.
  7. Харви Дейтел, Чофнес Д. Операционные системы. Основы и принципы. Бином, 2009.