Назначение и функции операционных систем
Операционные системы относятся к системному программному обеспечению. Как известно, все программное обеспечение разделяется на системное и прикладное. К системному программному обеспечению принято относить такие программы и комплексы программ, которые являются общими, без которых невозможно выполнение или создание других программ. История появления и развития системного программного обеспечения началась с того момента, когда люди осознали, что любая программа требует операций ввода-вывода данных. Это произошло в далекие 50-е годы прошлого столетия. Собственно операционные системы появились чуть позже.
Действительно, если мы не будем иметь возможности изменять исходные данные и получать результаты вычислений, то зачем вообще эти вычисления? Очевидно, что исходные данные могут вводиться различными способами. На практике используются самые разнообразные устройства и методы. Например, мы можем вво-
12_____________________________________________ Глава 1. Основные понятия
дить исходные значения с клавиатуры, задавать нужные действия или функции с помощью указателя мыши, считывать записи из файла, снимать оцифрованные значения с датчиков и т. д. Часть исходных данных может быть передана в программу через область памяти, в которую предварительно другая программа занесла свои результаты вычислений. Способов много. Главное — выполнить в программе некоторые действия, связанные с получением исходных данных.
Аналогично, и вывод результатов может быть организован, например, на соответствующие устройства и в форме, удобной для восприятия ее человеком. Либо результаты расчетов будут отправляться программой на какие-нибудь исполнительные устройства, которые управляются компьютером. Наконец, мы можем организовать запись полученных значений на некие устройства хранения данных (с целью их дальнейшей обработки).
Программирование операций ввода-вывода относится к одной из самых трудоемких областей создания программного обеспечения. Здесь речь идет не об использовании операторов типа READ или WRITE в языках высокого уровня. Речь идет о необходимости создать подпрограмму в машинном виде, уже готовую к выполнению на компьютере, а не написанную с помощью некоторой системы программирования (систем программирования тогда еще не было), подпрограмму, вместо обычных вычислений управляющую тем устройством, которое должно участвовать в операциях ввода исходных данных или вывода результатов. При наличии такой подпрограммы программист может обращаться к ней столько раз, сколько операций ввода-вывода с этим устройством ему требуется. Для выполнения этой работы программисту недостаточно хорошо знать архитектуру вычислительного комплекса и уметь создавать программы на языке ассемблера. Он должен отлично знать и интерфейс, с помощью которого устройство подключено к центральной части компьютера, и алгоритм функционирования устройства управления устройства ввода-вывода.
Очевидно, что имело смысл создать набор подпрограмм управления операциями ввода-вывода и использовать его в своих программах, чтобы не заставлять программистов каждый раз заново программировать все эти операции. С этого и началась история системного программного обеспечения. Впоследствии набор подпрограмм ввода-вывода стали организовывать в виде специальной библиотеки ввода-вывода, а затем появились и сами операционные системы. Основной причиной их появления было желание автоматизировать процесс подготовки вычислительного комплекса к выполнению программы.
В 50-е годы взаимодействие пользователей с вычислительным комплексом было совершенно иным, чем нынче. Программист-кодер (от англ. coder — кодировщик) — специально подготовленный специалист, знающий архитектуру компьютера и язык(и) программирования, — по заказу составлял текст программы, часто по уже готовому алгоритму, разработанному программистом-алгоритмистом. Текст этой программы затем отдавался оператору, который набирал его на специальных устройствах и переносил на соответствующие носители. Чаще всего в качестве носителей использовались перфокарты или перфолента. Далее колода с перфокартами (перфолента) передавалась в вычислительный зал, где для вычислений ло этой программе требовалось выполнить следующие действия.
Назначение и функции операционных систем_________________________________ 13
1. Оператор вычислительного комплекса с пульта вводил в рабочие регистры цен
трального процессора и в оперативную память компьютера ту первоначальную
программу, которая позволяла считать в память программу для трансляции
исходных кодов и получения машинной (двоичной) программы (проще гово
ря, транслятор, который тоже хранился на перфокартах или перфоленте).
2. Транслятор считывал исходную программу, осуществлял лексический разбор
исходного текста, и промежуточные результаты процесса трансляции зачастую
так же выводили на перфокарты (перфоленту). Трансляция — сложный про
цесс, часто требующий нескольких проходов. Порой для выполнения очеред
ного прохода приходилось в память компьютера загружать с перфокарт и сле
дующую часть транслятора, и промежуточные результаты трансляции. Ведь
результат трансляции выводился также на носители информации, поскольку
объем оперативной памяти был небольшим, а задача трансляции — это очень
сложная задача.
3. Оператор загружал в оперативную память компьютера полученные двоичные
коды оттранслированной программы и подгружал двоичные коды тех систем
ных подпрограмм, которые реализовывали управление операциями ввода-вы
вода. После этого готовая программа, расположенная в памяти, могла сама счи
тывать исходные данные и осуществлять необходимые вычисления.
В случае обнаружения ошибок на одном из этих этапов или после анализа полученных результатов весь цикл необходимо было повторить.
Для автоматизации труда программиста (кодера) стали разрабатывать специаль-ные алгоритмические языки высокого уровня, а для автоматизации труда оператора вычислительного комплекса была разработана специальная управляющая программа, загрузив которую в память один раз оператор мог ее далее использовать неоднократно и более не обращаться к процедуре программирования ЭВМ через пульт оператора. Именно эту управляющую программу и стали называть операционной системой. Со временем на нее стали возлагать все больше и больше задач, она стала расти в объеме. Прежде всего разработчики стремились к тому, чтобы операционная система как можно более эффективно распределяла вычислительные ресурсы компьютера, ведь в 60-е годы операционные системы уже позволяли организовать параллельное выполнение нескольких программ. Помимо задач распределения ресурсов появились задачи обеспечения надежности вычислений. К началу 70-х годов диалоговый режим работы с компьютером стал преобладающим, и у операционных систем стремительно начали развиваться интерфейсные возможности. Напомним, что термином интерфейс (interface) обозначают целый комплекс спецификаций, определяющих конкретный способ взаимодействия пользователя с компьютером.
На сегодняшний день можно констатировать, что операционная система (ОС) представляет собой комплекс системных1 управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между аппаратурой компью-
1 Системными принято называть такие программы, которые используются всеми остальными программами.
14_____________________________________________ Глава 1. Основные понятия
тера и пользователем с его задачами, а с другой стороны, предназначены для наиболее эффективного расходования ресурсов вычислительной системы и организации надежных вычислений.
Можно попробовать перечислить основные функции операционных систем. - Прием от пользователя (или от оператора системы) заданий, или команд, сформулированных на соответствующем языке, и их обработка. Задания могут передаваться в виде текстовых директив (команд) оператора или в форме указаний, выполняемых с помощью манипулятора (например, с помощью мыши). Эти команды связаны, прежде всего, с запуском (приостановкой, остановкой) программ, с операциями над файлами (получить перечень файлов в текущем каталоге, создать, переименовать, скопировать, переместить тот или иной файл и др.), хотя имеются и иные команды.
- Загрузка в оперативную память подлежащих исполнению программ.
- Распределение памяти, а в большинстве современных систем и организация виртуальной памяти.
- Запуск программы (передача ей управления, в результате чего процессор ис
полняет программу).
- Идентификация всех программ и данных.
- Прием и исполнение различных запросов от выполняющихся приложений. Операционная система умеет выполнять очень большое количество системных функций (сервисов), которые могут быть запрошены из выполняющейся программы. Обращение к этим сервисам осуществляется по соответствующим правилам, которые и определяют интерфейс прикладного программирования (Application Program Interface, API) этой операционной системы.
- Обслуживание всех операций ввода-вывода.
- Обеспечение работы систем управлений файлами (СУФ) и/или систем управ
ления базами данных (СУБД), что позволяет резко увеличить эффективность
всего программного обеспечения.
- Обеспечение режима мультипрограммирования, то есть организация параллельного выполнения двух или более программ на одном процессоре, создающая видимость их одновременного исполнения.
- Планирование и диспетчеризация задач в соответствии с заданными стратегией и дисциплинами обслуживания.
□ Организация механизмов обмена сообщениями и данными между выполняю
щимися программами.
- Для сетевых операционных систем характерной является функция обеспечения взаимодействия связанных между собой компьютеров.
- Защита одной программы от влияния другой, обеспечение сохранности данных, защита самой операционной системы от исполняющихся на компьютере приложений.
□ Аутентификация и авторизация пользователей (для большинства диалоговых
операционных систем). Под аутентификацией понимается процедура проверки
Назначение и функции операционных систем_________________________________ 15
имени пользователя и его пароля на соответствие тем значениям, которые хранятся в его учетной записи1. Очевидно, что если входное имя (login2) пользователя и его пароль совпадают, то, скорее всего, это и будет тот самый пользователь. Термин авторизация означает, что в соответствии с учетной записью пользователя, который прошел аутентификацию, ему (и всем запросам, которые будут идти к операционной системе от его имени) назначаются определенные права (привилегии), определяющие, что он может, а что не может делать на компьютере.
- Удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для операционных систем реального времени).
□ Обеспечение работы систем программирования, с помощью которых пользова
тели готовят свои программы.
□ Предоставление услуг на случай частичного сбоя системы.
Операционная система изолирует аппаратное обеспечение компьютера от прикладных программ пользователей. И пользователь, и его программы взаимодействуют с компьютером через интерфейсы операционной системы. Это можно проиллюстрировать, например, рис. 1.1.
Рис. 1.1. Взаимодействие пользователя и его программ с компьютером через операционную систему
' Если операционная система не поддерживает механизм учетных записей, как это имеет место, например, в семействе операционных систем Windows 9x компании Microsoft, то пароль сверяется по специальному файлу, где он хранится в зашифрованном виде.
2 В 70-е годы пользователи за терминалом писали log in, и это означало процедуру регистрации. Были системы, в которых требовалось набрать команду log on, что означало то же самое.
16_____________________________________________ Глава 1, Основные понятия
Дата добавления: 2016-09-20; просмотров: 856;