Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 3
Текст из файла (страница 3)
При наличиитакой подпрограммы программист может обращаться к ней столько раз, сколькоопераций ввода-вывода с этим устройством ему требуется. Для выполнения этойработы программисту недостаточно хорошо знать архитектуру вычислительногокомплекса и уметь создавать программы на языке ассемблера.
Он должен отличнознать и интерфейс, с помощью которого устройство подключено к центральнойчасти компьютера, и алгоритм функционирования устройства управления устройства ввода-вывода.Очевидно, что имело смысл создать набор подпрограмм управления операциямиввода-вывода и использовать его в своих программах, чтобы не заставлять программистов каждый раз заново программировать все эти операции. С этого и началасьистория системного программного обеспечения. Впоследствии набор подпрограммввода-вывода стали организовывать в виде специальной библиотеки ввода-вывода, а затем появились и сами операционные системы. Основной причиной их появления было желание автоматизировать процесс подготовки вычислительногокомплекса к выполнению программы.В 50-е годы взаимодействие пользователей с вычислительным комплексом былосовершенно иным, чем нынче, Программист-кодер (от англ. coder — кодировщик) —специально подготовленный специалист, знающий архитектуру компьютера и язык(и)программирования, — по заказу составлял текст программы, часто по уже готовому алгоритму, разработанному программистом-алгоритмистом.
Текст этой программы затем отдавался оператору, который набирал его на специальных устройствахи переносил на соответствующие носители. Чаще всего в качестве носителей использовались перфокарты или перфолента. Далее колода с перфокартами (перфолента) передавалась в вычислительный зал, где для вычислений по этой программе требовалось выполнить следующие действия.Назначение и функции операционных систем1•оОператор вычислительного комплекса с пульта вводил в рабочие регистры центрального процессора и в оперативную память компьютера ту первоначальнуюпрограмму, которая позволяла считать в память программу для трансляцииисходных кодов и получения машинной (двоичной) программы (проще говоря, транслятор, который тоже хранился на перфокартах или перфоленте).2. Транслятор считывал исходную программу, осуществлял лексический разборисходного текста, и промежуточные результаты процесса трансляции зачастуютак же выводили на перфокарты (перфоленту).
Трансляция — сложный процесс, часто требующий нескольких проходов. Порой для выполнения очередного прохода приходилось в память компьютера загружать с перфокарт и следующую часть транслятора, и промежуточные результаты трансляции. Ведьрезультат трансляции выводился также на носители информации, посколькуобъем оперативной памяти был небольшим, а задача трансляции — это оченьсложная задача.3. Оператор загружал в оперативную память компьютера полученные двоичныекоды оттранслированной программы и подгружал двоичные коды тех системных подпрограмм, которые реализовывали управление операциями ввода-вывода.
После этого готовая программа, расположенная в памяти, могла сама считывать исходные данные и осуществлять необходимые вычисления.В случае обнаружения ошибок на одном из этих этапов или после анализа полученных результатов весь цикл необходимо было повторить.Для автоматизации труда программиста (кодера) стали разрабатывать специальные алгоритмические языки высокого уровня, а для автоматизации труда оператора вычислительного комплекса была разработана специальная управляющаяпрограмма, загрузив которую в память один раз оператор мог ее далее использовать неоднократно и более не обращаться к процедуре программирования ЭВМчерез пульт оператора. Именно эту управляющую программу и стали называтьоперационной системой.
Со временем на нее стали возлагать все больше и большезадач, она стала расти в объеме. Прежде всего разработчики стремились к тому,чтобы операционная система как можно более эффективно распределяла вычислительные ресурсы компьютера, ведь в 60-е годы операционные системы уже позволяли организовать параллельное выполнение нескольких программ. Помимозадач распределения ресурсов появились задачи обеспечения надежности вычислений. К началу 70-х годов диалоговый режим работы с компьютером стал преобладающим, и у операционных систем стремительно начали развиваться интерфейсные возможности.
Напомним, что термином интерфейс (interface) обозначаютцелый комплекс спецификаций, определяющих конкретный способ взаимодействия пользователя с компьютером.На сегодняшний день можно констатировать, что операционная система (ОС) представляет собой комплекс системных1 управляющих и обрабатывающих программ,которые, с одной стороны, выступают как интерфейс между аппаратурой компьюСистемными принято называть такие программы, которые используются всеми остальными программами.14Глава 1. Основные понятиятера и пользователем с его задачами, а с другой стороны, предназначены для наиболее эффективного расходования ресурсов вычислительной системы и организации надежных вычислений.Можно попробовать перечислить основные функции операционных систем.•Прием от пользователя (или от оператора системы) заданий, или команд, сформулированных на соответствующем языке, и их обработка.
Задания могут передаваться в виде текстовых директив (команд) оператора или в форме указаний, выполняемых с помощью манипулятора (например, с помощью мыши).Эти команды связаны, прежде всего, с запуском (приостановкой, остановкой)программ, с операциями над файлами (получить перечень файлов в текущемкаталоге, создать, переименовать, скопировать, переместить тот или иной файли др.), хотя имеются и иные команды.•Загрузка в оперативную память подлежащих исполнению программ.Q Распределение памяти, а в большинстве современных систем и организациявиртуальной памяти.Q Запуск программы (передача ей управления, в результате чего процессор исполняет программу).•Идентификация всех программ и данных.Q Прием и исполнение различных запросов от выполняющихся приложений.Операционная система умеет выполнять очень большое количество системныхфункций (сервисов), которые могут быть запрошены из выполняющейся программы.
Обращение к этим сервисам осуществляется по соответствующим правилам, которые и определяют интерфейс прикладного программирования (Application Program Interface, API) этой операционной системы.•Обслуживание всех операций ввода-вывода.QОбеспечение работы систем управлений файлами (СУФ) и/или систем управления базами данных (СУБД), что позволяет резко увеличить эффективностьвсего программного обеспечения.•Обеспечение режима мультипрограммирования, то есть организация параллельного выполнения двух или более программ на одном процессоре, создающаявидимость их одновременного исполнения.•Планирование и диспетчеризация задач в соответствии с заданными стратегией и дисциплинами обслуживания.Q Организация механизмов обмена сообщениями и данными между выполняющимися программами.Q Для сетевых операционных систем характерной является функция обеспечения взаимодействия связанных между собой компьютеров.•Защита одной программы от влияния другой, обеспечение сохранности данных, защита самой операционной системы от исполняющихся на компьютереприложений.Q Аутентификация и авторизация пользователей (для большинства диалоговыхоперационных систем).
Под аутентификацией понимается процедура проверкиимени пользователя и его пароля на соответствие тем значениям, которые хранятся в его учетной записи 1 . Очевидно, что если входное имя (login 2 ) пользователя и его пароль совпадают, то, скорее всего, это и будет тот самый пользователь.Термин авторизация означает, что в соответствии с учетной записью пользователя, который прошел аутентификацию, ему (и всем запросам, которые будутидти к операционной системе от его имени) назначаются определенные права(привилегии), определяющие, что он может, а что не может делать на компьютере.О Удовлетворение жестким ограничениям на время ответа в режиме реальноговремени (характерно для операционных систем реального времени).О Обеспечение работы систем программирования, с помощью которых пользователи готовят свои программы.QПредоставление услуг на случай частичного сбоя системы.Операционная система изолирует аппаратное обеспечение компьютера от прикладных программ пользователей.
И пользователь, и его программы взаимодействуютс компьютером через интерфейсы операционной системы. Это можно проиллюстрировать, например, рис. 1.1.Программы^^И^^^ш*•.*Рис. 1.1. Взаимодействие пользователя и его программ с компьютеромчерез операционную системуЕсли операционная система не поддерживает механизм учетных записей, как это имеет место, например, в семействе операционных систем Windows 9x компании Microsoft, то пароль сверяется поспециальному файлу, где он хранится в зашифрованном виде.В 70-е годы пользователи за терминалом писали tog in, и это означало процедуру регистрации. Былисистемы, в которых требовалось набрать команду log on, что означало то же самое.16Глава 1. Основные понятияПонятие операционной средыИтак, операционная система выполняет функции управления вычислениями в компьютере, распределяет ресурсы вычислительной системы между различными вычислительными процессами и образует ту программную среду, в которой выполняются прикладные программы пользователей.
Такая среда называется операционной.Последнее следует понимать в том плане, что при запуске программы она будетобращаться к операционной системе с соответствующими запросами на выполнение определенных действий, или функций. Эти функции операционная системавыполняет, запуская специальные системные программные модули, входящие в еесостав.Итак, при создании двоичных машинных программ прикладные программистымогут вообще не знать многих деталей управления конкретными ресурсами вычислительной системы, а должны только обращаться к некоторой программнойподсистеме с соответствующими вызовами и получать от нее необходимые функции и сервисы. Эта программная подсистема и есть операционная система, а наборее функций и сервисов, а также правила обращения к ним как раз и образуют тобазовое понятие, которое мы называем операционной средой.
Таким образом, можно сказать, что термин «операционная среда» означает, прежде всего, соответствующие интерфейсы, необходимые программам и пользователям для обращения куправляющей (супервизорной) части операционной системы с целью получитьопределенные сервисы.Системных функций бывает много, они определяют те возможности, которые операционная система предоставляет выполняющимся под ее управлением приложениям.
Такого рода системные запросы (вызовы системных операций, или функций)либо явно прописываются в тексте программы программистами, либо подставляются автоматически самой системой программирования на этапе трансляцииисходного текста разрабатываемой программы. Каждая операционная системаимеет свое множество системных функций; они вызываются соответствующимобразом, по принятым в системе правилам. Совокупность системных вызовов и правил, по которым их следует использовать, как раз и определяет уже упомянутыйнами интерфейс прикладного программирования (API).