Операционные системы. Назначение, определение, типы, понятия

Назначение, определение, типы, понятия

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

Графический редактор Office Web-браузер
Компиляторы Редакторы Интерпретаторы команд
Операционная система
Машинный язык
Микроархитектура
Физические устройства

Рис. 3.2. Общая структура компьютера

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

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

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

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

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

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

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

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

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

Основными командами являются команды read и write (чтение и запись). Каждая из них требует 13 параметров, упакованных в 9 байт. Эти параметры определяют адрес блока на диске, который нужно прочитать, количество секторов на дорожке, физический режим записи, расстановку промежутков между секторами. Они же определяют, что делать с меткой адреса данных, которые были удалены. После завершения операции контроллер возвращает упакованные в 7 байт 23 параметра, отражающие наличие и типы ошибок. Кроме этого, программист при работе с гибким диском должен также постоянно знать, включен двигатель или нет. Если двигатель выключен, его следует включить (с длительным ожиданием запуска) прежде, чем данные будут прочитаны или записаны. Двигатель не может оставаться включенным слишком долго, так как гибкий диск изнашивается. Программист вынужден выбирать между длинными задержками во время загрузки и изнашивающимися гибкими дисками (с вероятностью потери данных на них).

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

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

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

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

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

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

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

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

Следующую категорию составляют ОС для персональных компьютеров. Их работа заключается в предоставлении удобного интерфейса для одного пользователя. Такие системы широко используются для повседневной работы. Наиболее яркие примеры — это Windows 98, Windows 2000, операционная система компьютера Macintosh и Linux.

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

Встроенные операционные системыиспользуются в карманных компьютерах и встроенных системах. Карманный компьютер или PDA(Personal Digital Assistant – персональный цифровой помощник) – это маленький компьютер, помещающийся в кармане и выполняющий небольшой набор функций, – телефонной записной книжки и блокнота. Встроенные системы, управляющие действиями устройств бытовой техники, обычно не считаются компьютерами. Они часто обладают теми же характеристиками, что и системы реального времени, но при этом имеют особые размер, память и ограничения мощности, что выделяет их в отдельный класс. Примерами таких операционных систем являются PalmOS и Windows CE (Consumer Electronics – бытовая техника).

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

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

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

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

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

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

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

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

Каждый файл в иерархии каталогов можно определить, задав его имя пути, называемое также полным именем файла. Путь начинается из вершины структуры каталогов, называемой корневым каталогом. Такое абсолютное имя пути состоит из списка каталогов, которые нужно пройти от корневого каталога к файлу, с разделением отдельных компонентов. Отдельные компоненты в ОС UNIX разделяются косой чертой /, а в MS-DOS и Windows – обратной косой чертой \.

 








Дата добавления: 2015-08-20; просмотров: 805;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.