Успешно изучив это занятие, Вы будете знать:
основные сведения и основные составляющие программного обеспечения;
роль и место операционных систем в программном обеспечении компьютера;
функции и принципы классификации операционных систем.
После изучения данной темы Вы будете уметь:
разбираться в назначении программного обеспечения компьютера;
различать базовое (системное) и прикладное программное обеспечение;
разбираться в классификации операционных систем.
После изучения материала Вы будете обладать навыками:
выявления основного назначения программного обеспечения компьютера;
изучения тенденций развития операционных систем;
выявления основных особенностей операционных систем.
Базовое (системное) программное обеспечение
Прикладное программное обеспечение
Все программное обеспечение, имеющееся на компьютере, принято делить на 2 большие части — базовое программное обеспечение (его еще могут называть системным программным обеспечением) и прикладное программное обеспечение (см. рис. 12.1 ).
Базовое программное обеспечение — это набор программ, которые отвечают за взаимодействие с аппаратными средствами (компонентами, составляющими базовую конфигурацию вычислительной техники).
В состав базового (системного) программного обеспечения входят:
операционные системы;
сервисные программы (оболочки операционных систем, утилиты, интерфейсные программы);
инструментальные программы (трансляторы, загрузчики, средства отладки);
программы технического обслуживания (наладочные, диагностические, тестовые).
Операционная система — это обязательная часть базового программного обеспечения компьютера. Обеспечивает эффективное функционирование компьютера, организует выполнение других программ, установленных на компьютере, а также взаимодействие пользователя и внешних устройств с компьютером.
Сервисные программы — это программы, которые дополняют и расширяют возможности операционной системы, предоставляя пользователю компьютера дополнительные возможности.
Инструментальные программы — это программы, которые предназначены для эффективной разработки и отладки программного обеспечения. Используются обычно высококвалифицированными пользователями — программистами.
Программы технического обслуживания компьютера — это программы, которые предназначены для диагностики, тестирования технических средств и поиска неисправностей в компьютере. Благодаря использованию этих программ повышается надежность и достоверность обработки информации на компьютере.
В состав прикладного программного обеспечения входят различные программы, предназначенные для решения задач пользователя, например:
текстовые редакторы;
гипертекстовые редакторы;
редакторы электронных таблиц;
графические редакторы;
экспертные системы;
издательские системы;
программы для бухгалтеров;
программы для банковских сотрудников;
программы для маркетологов;
программы для сотрудников страховых компаний и т.д.
На рис. 12.2 представлена принципиальная схема конфигурации программного обеспечения компьютера.
Если рассматривать ОС как некий механизм, управляющий всеми частями вычислительной машины, то одной из основных задач ОС является управление вычислительными ресурсами. К вычислительным ресурсам относят процессорное время, оперативную и постоянную память, мультимедиа-компоненты, телекоммуникационное и периферийное оборудование.
Управление ресурсами включает решение двух общих, не зависящих от типа ресурса задач — планирование ресурса и отслеживание его состояния. Для решения задачи управления ресурсами разные ОС используют различные алгоритмы, что в конечном счете и определяет их облик в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс. Так, например, алгоритм управления процессором в значительной степени определяет, является ли ОС системой разделения времени, системой пакетной обработки или системой реального времени.
Второй основной задачей операционной системы является предоставление пользователю некоей абстрактной машины, с чьей помощью он может решать различные задачи. Под абстрактной машиной в данном случае понимается машина, которая состоит из стандартных блоков, каждый из которых управляется стандартным образом. К примеру, с точки зрения пользователя, современная вычислительная машина состоит из процессора, нескольких модулей оперативной памяти, дискового накопителя, аудио- и видеоадаптера, сетевой платы, блока питания и многих других устройств. На самом же деле каждое из перечисленных устройств, в зависимости от производителя, в рамках своей категории оборудования может функционировать по-разному, обладать различными функциональными возможностями и конструктивными особенностями. Поэтому, абстрагируя каждый класс оборудования и предоставляя унифицированный алгоритм управления этим классом оборудования, операционная система предоставляет конечному пользователю такую вычислительную машину, с которой можно работать, не задаваясь вопросами ее управления.
Исходя из такой постановки задач можно определить следующие функции операционной системы: эффективное управление вычислительными ресурсами для повышения эффективности работы вычислительной машины и обеспечение необходимого уровня прозрачности оборудования для пользователей.
Наиболее распространенными из классификаций операционных систем являются следующие две — по функциональным возможностям и по областям применения.
По функциональным возможностям выделяют:
однозадачные и многозадачные
— многозадачные ОС делятся на ОС с вытесняющей
и невытесняющей многозадачностью
. При вытесняющей многозадачности контроль за работой программ лежит на операционной системе, в противном же случае ход вычислений контролируется каждой программой самостоятельно;
однопроцессорные и многопроцессорные
— многопроцессорные ОС делятся на симметричные
и асимметричные
. Асимметричные многопроцессорные операционные системы отличаются от симметричных тем, что первая монополизирует для работы операционной системы один или более процессоров, в то время как вторая использует часть процессорного времени каждого процессора.
По областям применения выделяют операционные системы мейнфреймов, кластеров, серверов, рабочих станций, карманных компьютеров, мобильные и встраиваемые операционные системы. В зависимости от области применения различаются и функциональные возможности каждого класса операционных систем.
Свойства, которыми обладают операционные системы, делятся на две группы — машинно независимые и машинно зависимые.
Машинно независимые свойства характеризуют возможности операционной системы по управлению вычислительными ресурсами и особенности организации вычислительных процессов, а также способы организации файловых структур.
К машинно зависимым свойствам современных операционных систем относят многозадачность, возможность одновременной работы нескольких пользователей, возможность многопроцессорной обработки данных, возможность распараллеливания вычислений и многие другие.
Как уже упоминалось ранее, в рамках проблемы управления вычислительными ресурсами необходимо решать две задачи:
1) планирование ресурса — определение, кому, когда и в каком количестве необходимо выделить данный ресурс;
2) отслеживание состояния ресурса, то есть поддержание оперативной информации о том, занят или не занят ресурс, а для делимых ресурсов — какое количество ресурса уже распределено.
Вычислительные ресурсы можно разделить на две категории — выгружаемые и невыгружаемые ресурсы
. Ресурс считается выгружаемым, если его можно во время работы процесса-владельца передать другому процессу без ущерба для процесса-владельца. Память является выгружаемым ресурсом. А вот устройство записи компакт-дисков является невыгружаемым ресурсом.
Задача управления ресурсами осложнена проблемой возможной взаимоблокировки процессов. Взаимоблокировка — ситуация, когда одни процессы блокируют доступ другим процессам к различным ресурсам. Она обусловлена тем, что в каждый конкретный момент времени один и тот же ресурс может быть использован только в рамках одной задачи. Это особенно заметно при использовании периферийного оборудования, к примеру в случае сканирования или печати документа или же при работе с файловой системой. Взаимоблокировка выгружаемых ресурсов разрешается путем перераспределения ресурсов между процессами. Взаимоблокировка невыгружаемых ресурсов может быть решена путем блокировки процесса до тех пор, пока не освободится запрошенный ресурс.
Одним из важнейших понятий операционных систем является понятие процесса.
Процесс — программа, которая в данный момент выполняется вычислительной машиной.
Каждому процессу выделяется отдельный, изолированный от других, сегмент памяти, который называется адресным пространством процесса. В адресном пространстве процесса, кроме самого процесса, также хранятся входные и выходные данные процесса. В многозадачной операционной системе все процессы выполняются по очереди таким образом, что в каждый момент времени выполняется только один процесс. Для обеспечения корректной работы процессов необходимо отслеживать состояние каждого процесса, чтобы возобновлять его выполнение с того момента, где в последний раз процесс был остановлен.
Кроме состояния процесса необходимо также отслеживать информацию об используемых им ресурсах. Вся информация о процессах хранится в таблице процессов — массиве структур данных, записями которого является информация по каждому процессу, запущенному в системе. Таблица процессов представляется обычно в виде дерева, потому что большинство процессов, выполняемых на машине, способно порождать дочерние процессы для решения вспомогательных задач, и для каждого процесса необходимо учитывать не только его собственное состояние, но и состояние всех связанных с ним процессов.
Сами программы и данные для их работы хранятся на различных носителях. Способ организации данных на носителе называется файловой системой. Файлом
называется именованная область данных на носителе, хранящая некоторый массив информации. Под каждый файл на носителе выделяется некоторый объем пространства, который может быть занят только этим файлом. Файлы на носителях различаются по типам хранимых данных. Например, текстовые файлы, программы, аудиофайлы, видеофайлы, программные модули, служебные файлы и многие другие.
Для удобства хранения данных существует отдельный класс служебных файлов, называемых папками, или каталогами
. Каталог представляет собой некий массив файлов, сгруппированных по какому-либо признаку. Каталог, как и любой другой файл, имеет собственное имя. Именем конечного файла при таком способе организации файловой структуры является полный путь до каталога, в котором хранится файл, плюс само имя файла. При таком подходе полное имя файла должно быть уникальным, также имя файла должно быть уникальным в пределах его каталога.
Другой категорией служебных файлов является ярлык, или ссылка
. Ярлык хранит путь к файлу и при вызове открывает сам файл. Ярлыки используются для ускорения доступа к файлам.
Свойства файла в рамках конкретной файловой системы называются атрибутами файла. К атрибутам относят дату и время создания файла, тип файла, права доступа к файлу.
Устройства ввода-вывода делятся на две категории — блочные и символьные.
Блочные устройства — оперируют блоками данных, размер которых варьируется в зависимости от устройства. Каждый блок в блочном устройстве имеет собственный адрес. Примером блочного устройства может служить любой накопитель. Одним из наиболее важных свойств блочного устройства является возможность независимого доступа к блокам данных.
Символьные устройства — оперируют потоками данных, не имеющими структуры или адреса. Большинство устройств являются символьными.
Устройство ввода-вывода обычно состоит из двух частей — само устройство и его контроллер. Контроллер осуществляет управление работой устройства на физическом уровне. Контроллер выполняется в виде набора микросхем и либо совмещен с устройством, либо установлен на системной плате. Если контроллер установлен на системной плате, то обычно он позволяет работать с двумя и более устройствами данного типа. Примером такого контроллера может служить контроллер накопителей на жестких магнитных дисках, который позволяет работать одновременно с двумя НЖМД. Задачей контроллера является преобразование потока битов в блок байтов. Считываемые биты накапливаются в памяти контроллера, которая называется буфером данных, и затем в виде блоков байтов передаются в оперативную память. Каждый контроллер, помимо буфера, имеет также несколько регистров, посредством которых процессор может управлять работой контроллера.
Существует два альтернативных способа управления контроллерами устройств.
Первый способ заключается в том, что каждому регистру назначается уникальный номер порта ввода-вывода. При таком способе адресное пространство оперативной памяти не пересекается с адресным пространством устройств ввода-вывода.
Второй способ заключается в выделении каждому регистру отдельного сегмента оперативной памяти. Преимущество второго способа в том, что для программирования работы устройств не нужно прибегать к машинным языкам, а также в том, что при таком подходе для защиты от несанкционированного доступа к устройствам достаточно исключить часть адресного пространства устройств ввода-вывода из блока адресов памяти, доступных пользователям. Недостаток этого подхода в том, что для его реализации необходимо использование более сложной аппаратуры. Повышение сложности аппаратуры обуславливается тем фактором, что некоторые приемы, используемые для ускорения работы с памятью, могут привести к катастрофическим последствиям при использовании их с устройствами ввода-вывода.
Для ускорения обмена данными между процессором и устройствами используется механизм прямого доступа к памяти (DMA). Контроллер DMA обеспечивает чтение данных с устройства в память и запись данных из памяти на устройство. В общих чертах механизм DMA работает следующим образом: когда процессу требуется прочитать или записать данные на устройство ввода-вывода, процессор программирует контроллер DMA на выполнение необходимой операции, сообщая ему, с каким устройством необходимо выполнить требуемую операцию и по какому адресу в памяти размещаются данные. До тех пор пока контроллер выполняет операцию, процессор может выполнять другие процессы. Когда контроллер DMA завершает порученную ему задачу, он посылает процессору сигнал о том, что операция завершена, после чего процессор приостанавливает выполнение текущей задачи и начинает выполнять тот процесс, который затребовал ввод-вывод данных.
Прерывание — это сигнал процессору о том, что ему необходимо прервать выполнение текущего процесса и вызвать обработчик прерывания.
Обработчик прерывания — это программа, которую процессор должен выполнить при возникновении прерывания. Обработчик прерывания является частью драйвера устройства. Драйвером устройства
называют программу, которая обеспечивает взаимодействие устройства с операционной системой.
Виртуальной памятью называют такой метод работы с памятью, когда в памяти хранятся только те части программы, которые используются в конкретный момент времени. Все прочие части программы, равно как и данные, хранятся на диске. Этот способ организации памяти позволяет выполнять программы, чей суммарный объем вместе с данными может превышать объем доступной физической памяти. Большинство систем виртуальной памяти используют механизм страничной организации памяти. При работе с виртуальной памятью вся доступная память разбивается на страничные блоки фиксированного объема. При обращении к какой-либо ячейке памяти запрос сначала передается диспетчеру памяти, который преобразовывает виртуальный адрес в реальный, и передает полученный адрес на шину, который затем обрабатывается надлежащим образом.
Основные выводы
Все программное обеспечение, имеющееся на компьютере, принято делить на 2 большие части — базовое программное обеспечение (его еще могут называть системным программным обеспечением) и прикладное программное обеспечение.
Базовое программное обеспечение — это набор программ, которые отвечают за взаимодействие с аппаратными средствами (компонентами, составляющими базовую конфигурацию вычислительной техники). В состав прикладного программного обеспечения
входят различные программы, предназначенные для решения задач пользователя
Операционная система — это обязательная часть базового программного обеспечения компьютера. Обеспечивает эффективное функционирование компьютера, организует выполнение других программ, установленных на компьютере, а также взаимодействие пользователя и внешних устройств с компьютером.
Сервисные программы — это программы, которые дополняют и расширяют возможности операционной системы, предоставляя пользователю компьютера дополнительные возможности.
Инструментальные программы — это программы, которые предназначены для эффективной разработки и отладки программного обеспечения. Используются обычно высококвалифицированными пользователями — программистами.
Программы технического обслуживания компьютера — это программы, которые предназначены для диагностики, тестирования технических средств и поиска неисправностей в компьютере. Благодаря использованию этих программ повышается надежность и достоверность обработки информации на компьютере.
Одной из основных задач ОС является управление вычислительными ресурсами. К вычислительным ресурсам относят процессорное время, оперативную и постоянную память, мультимедиа-компоненты, телекоммуникационное и периферийное оборудование. Второй основной задачей операционной системы является предоставление пользователю некоей абстрактной машины, с чьей помощью он может решать различные задачи.
Наиболее распространенными классификациями операционных систем являются следующие: по функциональным возможностям и по областям применения. По функциональным возможностям выделяют ОС:
однозадачные и многозадачные. Многозадачные ОС делятся на ОС с вытесняющей и невытесняющей многозадачностью. При вытесняющей многозадачности контроль за работой программ лежит на операционной системе, в противном же случае ход вычислений контролируется каждой программой самостоятельно;
однопользовательские и многопользовательские;
однопроцессорные и многопроцессорные. Многопроцессорные ОС делятся на симметричные и асимметричные. Асимметричные многопроцессорные операционные системы отличаются от симметричных тем, что первая монополизирует для работы операционной системы один или более процессоров, в то время как вторая использует часть процессорного времени каждого процессора.
однонитевые и многонитевые.
по областям применения выделяют операционные системы мэйнфреймов, кластеров, серверов, рабочих станций, карманных компьютеров, мобильные и встраиваемые операционные системы. В зависимости от области применения различаются и функциональные возможности каждого класса операционных систем.
Свойства, которыми обладают операционные системы, делятся на две группы: машинно-независимые и машинно-зависимые. К машинно-независимым свойствам современных операционных систем относят: многозадачность, возможность одновременной работы нескольких пользователей, возможность многопроцессорной обработки данных, возможность распараллеливания вычислений и многие другие.
В рамках проблемы управления вычислительными ресурсами необходимо решать две задачи:
планирование ресурса — определение, кому, когда и в каком количестве необходимо выделить данный ресурс;
отслеживание состояния ресурса, то есть поддержание оперативной информации о том, занят или не занят ресурс, а для делимых ресурсов — какое количество ресурса уже распределено.
Процессом называют программу, которая в данный момент выполняется вычислительной машиной. Каждому процессу выделяется отдельный, изолированный от других, сегмент памяти, который называют адресным пространством процесса.
Способ организации данных на носителе называется файловой системой. Файлом называется именованная область данных на носителе, хранящая некоторый массив информации. Под каждый файл на носителе выделяется некоторый объем пространства, который может быть занят только этим файлом. Свойства файла в рамках конкретной файловой системы называются атрибутами файла. К атрибутам относят дату и время создания файла, тип файла, права доступа к файлу.
Устройства ввода-вывода делятся на две категории — блочные и символьные. Блочное устройство оперирует блоками данных, размер которых варьируется в зависимости от устройства. Символьные устройства оперируют потоками данных, не имеющими структуры или адреса. Большинство устройств являются символьными.
Прерывание — это сигнал процессору о том, что ему необходимо прервать выполнение текущего процесса и вызвать обработчик прерывания. Обработчик прерывания — это набор команд, которые процессор должен выполнить при возникновении прерывания. Обработчик прерывания обычно входит в состав драйвера устройства.
Драйвером устройства называют программу, которая обеспечивает взаимодействие устройства с операционной системой.
Виртуальной памятью называют такой метод работы с памятью, когда в памяти хранятся только те части программы, которые используются в конкретный момент времени. Все прочие части программы, равно как и данные, хранятся на диске.
Контрольные вопросы
В чем отличие базового программного обеспечения от прикладного?
Какие программы считаются сервисными?
Что такое операционная система?
Каковы функции операционной системы?
Как классифицируются операционные системы?
Как операционная система управляет вычислительными ресурсами?
Что такое файловая система? Какой вид файловой системы использует операционная система вашего компьютера?
Какая информация содержится в драйвере устройства?
Что такое виртуальная память?
Литература
Алехина Г.В., Годин И.М., Пронкин П.Г. Основы информатики: учеб. пособие. — М.: МФПА., 2009.
Задания для самостоятельной работы
Выполните задания к теме 12 и пройдите тест в тетради-практикуме.