Программное обеспечение и операционные системы

Программное обеспечение и операционные системы.

Статьи по теме
Искать по теме

1. Уровни программного обеспечения. Основные виды прикладного программного обеспечения

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

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

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

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

В компьютерной среде часто используется слово софт (от англ. software), которое в этом смысле впервые применил в статье в American Mathematical Monthly математик из Принстонского университета Джон Тьюки (англ. John W. Tukey) в 1958 году.

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

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

Программное обеспечение современных компьютеров включает миллионы программ – от игровых до научных.

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

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

– операционные системы и оболочки;

– системы программирования (трансляторы, библиотеки подпрограмм, отладчики и т.д.);

– инструментальные системы;

– интегрированные пакеты программ;

– динамические электронные таблицы;

– системы машинной графики;

– системы управления базами данных (СУБД);

– прикладное программное обеспечение.

По назначению ПО разделяется на системное, прикладное и инструментальное (рис. 1):

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

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

– управление ресурсами компьютера;

– создание копий используемой информации;

– проверка работоспособности устройств компьютера;

– администрирование служебных функций компьютера;

– выдача справочной информации о компьютере и др.;

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

Уровни программного обеспечения

Рис. 1. Уровни программного обеспечения

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

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

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

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

Прикладное ПО можно разделить на следующие виды:

– офисные приложения: текстовый редактор (например, Word), табличный редактор (например, Excel), редактор презентаций (например, Power Point) и т.д.;

– ПО для доступа к Интернет-сервисам: электронная почта (The Bat, Outlook), веб-браузеры (Firefox, IE, Opera), система мгновенного обмена сообщениями (Qip, ICQ) и т.д.;

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

– системы проектирования и производства, например, система автоматизации проектных работ (САПР);

– системы логистической поддержки изделий, например, система создания интерактивных электронных технических руководств ИЭТР, предназначенная для автоматизированной подготовки сопроводительной документации на сложные технические изделия в электронном виде;

– системы обработки и хранения медицинской информации, например, различные справочники, базы данных по болезням и прочее;

– научное ПО, например, системы математического и статистического расчёта и анализа, система компьютерного моделирования и другие;

– корпоративные информационные системы, например, бухгалтерское ПО, системы CRM (Customer relationship management управление взаимоотношениями с клиентами), ERP-системы (Enterprise Resource Planning System система планирования ресурсов предприятия) и др.;

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

Все многообразие существующего ПО можно объединить в три типа:

1. ПО общего назначения;

2. ПО специального назначения;

3. ПО профессионального уровня.

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

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

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

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

2. Понятие операционной системы (ОС). Основные функции ОС. Классификация ОС, характеристика их типов

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

Существуют и другие определения понятия "операционная система":

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

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

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

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

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

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

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

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

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

– программы управления вводом/выводом;

– программы, управляющие файловой системой и планирующие задания для компьютера;

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

Каждая ОС имеет свой командный язык, который позволяет пользователю выполнять те или иные действия:

– обращаться к каталогу;

– выполнять разметку внешних носителей;

– запускать программы;

– распределять ресурсов;

– планировать;

– осуществлять ввод-вывод данных;

– управлять данными;

– взаимодействовать с оператором;

– и другие действия.

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

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

В функции ОС входит:

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

– ввод-вывод и управление данными;

– планирование и организация процесса обработки программ;

– распределение ресурсов оперативной памяти, кэша, процессора, виртуальной памяти, внешних устройств и осуществление управления ресурсами;

– запуск программ на выполнение. Т.е. загрузка приложений в оперативную память и их выполнение;

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

– всевозможные вспомогательные операции обслуживания;

– передача информации между различными внутренними устройствами;

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

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

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

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

– обеспечение взаимодействия между запущенными процессами: обмен данными, взаимная синхронизация;

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

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

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

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

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

– однопользовательские ОС. Однопользовательские ОС могут одновременно обеспечивать работу только одного пользователя;

– многопользовательские ОС. Многопользовательские системы поддерживают одновременную работу на компьютере нескольких пользователей (конечно, за различными терминалами);

2. по числу процессов, которые могут одновременно выполняться под управлением ОС:

– однозадачные ОС. Такие системы одновременно способны выполнять только одну задачу в конкретный момент времени;

– многозадачные ОС. Этот вид ОС может одновременно обрабатывать несколько задач;

3. по типу доступа пользователя к компьютеру:

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

– системы разделения времени. Данные ОС обеспечивают одновременный диалоговый (интерактивный) доступ к компьютеру нескольких пользователей через терминалы. Ресурсы компьютера выделяются при этом каждому пользователю "по очереди" в соответствии с той или иной дисциплиной обслуживания. Этот тип ОС предназначен для обеспечения удобства работы группы пользователей;

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

4. по типу средств вычислительной техники, для управления ресурсами которых система предназначена:

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

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

– распределенные ОС. Распределенная система – это набор независимых компьютеров, представляющийся их пользователям единой объединенной системой;

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

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

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

2. однопользовательские однозадачные с фоновой печатью, которые позволяют помимо основной задачи запускать одну дополнительную задачу, ориентированную, как правило, на вывод информации на печать. Это ускоряет работу при выдаче больших объёмов информации на печать;

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

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

Сравнительно недавно появилась новая концепция обработки компьютерных данных – облачные вычисления (англ. Cloud computing), также называемая облачной обработкой данных. Это технология обработки данных, в которой программное обеспечение предоставляется пользователю как Интернет-сервис. Пользователь имеет доступ к собственным данным, но не может управлять и не должен заботиться об инфраструктуре, операционной системе и собственно программном обеспечении, с которым он работает. "Облаком" метафорически называют Интернет, который скрывает все технические детали.

Согласно документу IEEE опубликованному в 2008 году "Облачная обработка данных – это парадигма, в рамках которой информация постоянно хранится на серверах в сети Интернет и временно кэшируется на клиентской стороне, например на персональных компьютерах, игровых приставках, ноутбуках, смартфонах и т. д.". Например, в рамках данной концепции работают службы Google Apps, предоставляющие функциональность традиционных офисных пакетов программ. Помимо этого технология довольна перспективна для реализации в вузах, школах и т.д.

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

Литература

1. Гагарина Л. Г., Кокорева Е. В., Виснадул Б. Д. Технология разработки программного обеспечения. – М.: ИД "ФОРУМ"; ИНФРА-М, 2008.

2. Гордеев А.Д. Операционные системы. – СПб.: Питер, 2007.

3. Гришин В. Н., Панфилова Е. Е. Информационные технологии в профессиональной деятельности. – М.: Инфра-М, 2009 г.

4. Иртегов Д.С. Введение в операционные системы. – СПБ.: Питер, 2007.

5. Колмыкова Е. А., Кумскова И. А. Информатика. – М.: Академия, 2008.

6. Михеева Е. В., Титова О. И. Информатика. – М.: Академия, 2007.

7. Олифер В.Г., Олифер Н.А. Сетевые операционные системы. – Спб.: Питер, 2002.

8. Острейковский В.А. Информатика. – М.: Высшая школа, 2005.

9. Столлингс В. Операционные системы. – М.: Вильямс, 2004.

10. Таненбаум Э., Вудхалл А. Операционные системы: Разработка и реализация. – СПб.: Питер, 2006.

11. http://www2.computer.org/portal/web/csdl/doi/10.1109/MIC.2008.107 – The IEEE Computer Society.