ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.03.2021
Просмотров: 6766
Скачиваний: 51
96
Особое место среди программных средств всех типов занимают операционные системы,
являясь ядром программного обеспечения.
Операционная система - это комплекс программ, обеспечивающих
• управление ресурсами, т.е. согласованную работу всех аппаратных средств компьютера;
•управление процессами, т.е. выполнение программ, их взаимодействие с устройствами
компьютера, с данными;
• пользовательский интерфейс, т.е. диалог пользователя с компьютером, выполнение опре-
деленных простых команд - операций по обработке информации.
Такое определение операционной системы уже апеллирует к ее функциям, поэтому рас-
смотрим эти функции подробнее.
Операционные системы — наиболее машиннозависимый вид программного обеспечения,
ориентированный на конкретные модели компьютеров, поскольку они напрямую управляют их
устройствами или, как еще говорят, обеспечивают интерфейс между пользователем и аппаратной
частью компьютера.
В той мере, в какой это необходимо для понимания функций операционных систем, аппа-
ратную часть компьютера можно представлять себе состоящей из следующих элементов:
• центрального процессора, имеющего определенную архитектуру (структуру регистров,
набор и форму представления команд, формат обрабатываемых данных и т.д.) и характеризующе-
гося производительностью, т.е. количеством простейших операций, выполняемых в единицу вре-
мени, а также другими качествами;
• оперативной памяти, характеризующейся емкостью (объемом) и скоростью обмена дан-
ными (прежде всего с центральным процессором);
• периферийных устройств, среди которых имеются
• устройства ввода (клавиатура, мышь, сканер и др.);
• устройства вывода (дисплей, принтер, графопостроитель и др.);
• внешние запоминающие устройства (дисководы для магнитных и оптических дисков, уст-
ройства для работы с лентами и др.);
• мультимедийные устройства.
Все эти аппаратные устройства обобщенно называют ресурсами компьютера.
В сравнении с оперативной памятью внешние запоминающие устройства обладают практи-
чески неограниченной емкостью. Так, емкость встроенного накопителя персональных компьюте-
ров - винчестера - обычно в 50-100 раз больше объема оперативной памяти. Для других устройств
- накопителей на гибких магнитных дисках и оптических дисках - используются сменные носите-
ли информации, однако время доступа к информации на внешних запоминающих устройствах
значительно больше, чем к информации в оперативной памяти (в тысячи раз). Медленнее, чем
центральный процессор, работают и устройства ввода - вывода.
За время существования компьютеров операционные системы претерпели значительную
эволюцию. Так, первые операционные системы были однопользовательскими и однозадачными.
Эффективность использования ресурсов компьютера в этом случае оказывалось невысокой из-за
простоев всех, кроме одного работающего периферийного устройств компьютера. Например, при
вводе данных простаивал центральный процессор, устройства вывода и внешние запоминающие
устройства.
По мере роста возможностей, производительности и изменениях в соотношении стоимости
устройств компьютера положение стало нетерпимым, что привело к появлению
многозадачных
операционных систем, остававшихся однопользовательскими.
Такие операционные системы обеспечивают постановку заданий в очередь на выполнение,
параллельное выполнение заданий, разделение ресурсов компьютера между выполняющимися за-
даниями. Так, например, одно задание может выполнять ввод данных, другое - выполняться цен-
тральным процессором, третье - выводить данные, четвертое - стоять в очереди. Важнейшее тех-
ническое решение, обусловившее такие возможности, - появление у внешних устройств собствен-
ных процессоров (контроллеров).
При многозадачном режиме
• в оперативной памяти находится несколько заданий пользователей;
• время работы процессора разделяется между программами, находящимися в оперативной
памяти и готовыми к обслуживанию процессором;
97
• параллельно с работой процессора происходит обмен информацией с различными внеш-
ними устройствами.
Наиболее совершенны и сложны
многопользовательские многозадачные
операционные
системы, которые предусматривают одновременное выполнение многих заданий многих пользо-
вателей, обеспечивают
разделение ресурсов
компьютера в соответствии с приоритетами пользо-
вателей и
защиту данных
каждого пользователя от несанкционированного доступа. В этом случае
операционная система работает в режиме
разделения времени,
т.е. обслуживает многих пользо-
вателей, работающих каждый со своего терминала.
Суть режима разделения времени состоит в следующем. Каждой программе, находящейся в
оперативной памяти и готовой к исполнению, выделяется для исполнения фиксированный, зада-
ваемый в соответствии с приоритетом пользователя интервал времени (интервал мультиплексиро-
вания). Если программа не выполнена до конца за этот интервал, ее исполнение принудительно
прерывается, и программа переводится в конец очереди. Из начала очереди извлекается следую-
щая программа, которая исполняется в течение соответствующего интервала мультиплексирова-
ния, затем поступает в конец очереди и т.д. в соответствии с циклическим алгоритмом. Если ин-
тервал мультиплексирования достаточно мал (~200 мс), 'а средняя длина очереди готовых к ис-
полнению программ невелика (~10), то очередной квант времени выделяется программе каждые 2
с. В этих условиях ни один из пользователей практически не ощущает задержек, так как они срав-
нимы со временем реакции человека.
Одной из разновидностей режима разделения времени является фоновый режим, когда про-
грамма с более низким
приоритетом
работает на фоне программы с более высоким приоритетом.
Работа в фоновом режиме реального времени аналогична работе секретаря руководителя. Секре-
тарь занимается текущими делами до тех пор, пока начальник не дал срочное поручение.
Помимо рассмотренных режимов организации вычислительного процесса, все большее
распространение получаст схема, при которой ЭВМ управляет некоторым внешним процессом,
обрабатывая данные и информацию, непосредственно поступающую от объекта управления. По-
скольку определяющим фактором являются реально поступающие от объекта управления данные,
такой режим называют
режимом реального времени,
а его организация возлагается на специали-
зированную операционную систему.
Остановимся на некоторых понятиях, важных для понимания принципов функционирова-
ния всех операционных систем (ОС).
Понятие
процесса
играет ключевую роль и вводится применительно к каждой программе
отдельного пользователя. Управление процессами (как целым, так и каждым в отдельности) - важ-
нейшая функция ОС. При исполнении программ на центральном процессоре следует различать
следующие характерные состояния (рис. 2.1):
•
порождение-
подготовку условий для исполнения процессором;
•
активное состояние
(или «Счет») - непосредственное исполнение процессором;
•
ожидание
-
по причине занятости какого-либо требуемого ресурса;
•
готовность
-
программа
не исполняется, но все необходимые для исполнения программы
ресурсы, кроме центрального процессора, предоставлены;
•
окончание
-
нормальное или аварийное завершение исполнения программы, после кото-
рого процессор и другие ресурсы ей не предоставляются.
Рис. 2.1.
Граф состояний переходов процесса из одной фазы в другую
Понятие «ресурс» применительно к вычислительной технике следует понимать как функ-
циональный элемент вычислительной системы, который может быть выделен процессу на опреде-
ленный промежуток времени. Наряду с физическими ресурсами -реальными устройствами ЭВМ -
средствами современных операционных систем могут создаваться и использоваться виртуальные
98
(воображаемые) ресурсы, являющиеся моделями физических. По значимости виртуальные ресур-
сы - одна из важнейших концепций построения современных ОС. Виртуальный ресурс представ-
ляет собой модель некоего физического ресурса, создаваемую с помощью другого физического
ресурса. Например, характерным представителем виртуального ресурса является оперативная па-
мять. Компьютеры, как правило, располагают ограниченной по объему оперативной памятью (фи-
зической). Функционально ее объем может быть увеличен путем частичной записи содержимого
оперативной памяти на магнитный диск. Если этот процесс организован так, что пользователь
воспринимает всю расширенную память как оперативную, то такая «оперативная» .память назы-
вается виртуальной.
Наиболее законченным проявлением концепции виртуальности является понятие виртуаль-
ной машины, являющееся исходным при программировании на языках высокого уровня, например
Паскале. Виртуальная машина есть идеализированная модель реальной машины, изолирующая
пользователя от аппаратных особенностей конкретной ЭВМ, воспроизводящая архитектуру ре-
альной машины, но обладающую улучшенными характеристиками:
• бесконечной по объему памятью с произвольно выбираемыми способами доступа к ее
данным;
• одним (или несколькими) процессами, описываемыми на удобном для пользователя языке
программирования;
• произвольным числом внешних устройств произвольной емкости и доступа. Концепция
прерываний
выполнения программ является базовой при построении любой операционной сис-
темы. Из всего многообразия причин прерываний необходимо выделить два вида: первого и вто-
рого рода. Системные причины прерываний первого рода возникают в том случае, когда у процес-
са, находящегося в активном состоянии, возникает потребность либо получить некоторый ресурс
или отказаться от него, либо выполнить над ресурсом какие-либо действия. К этой группе относят
и, так называемые, внутренние прерывания, связанные с работой процессора (например, арифме-
тическое переполнение или исчезновение порядка в операциях с плавающей запятой). Системные
причины прерывания второго рода обусловлены необходимостью проведения синхронизации ме-
жду параллельными процессами.
При обработке каждого прерывания должна выполняться следующая последовательность
действий:
• восприятие запроса на прерывание;
• запоминание состояния прерванного процесса, определяемое значением счетчика команд
и других регистров процессора;
• передача управления прерывающей программе, для чего в счетчик команд заносится ад-
рес, соответствующий данному типу прерывания;
• обработка прерывания;
• восстановление прерванного процесса.
В большинстве ЭВМ первые три этапа реализуются аппаратными средствами, а остальные-
блоком программ обработки прерываний операционной системы.
В настоящее время используется много типов различных операционных систем для ЭВМ
различных видов, однако в их структуре существуют общие принципы. В составе многих опера-
ционных систем можно выделить некоторую часть, которая является основой всей системы и на-
зывается ядром. В состав ядра входят наиболее часто используемые модули, такие как модуль
управления системой прерываний, средства по распределению таких основных ресурсов, как опе-
ративная память и процессор. Программы, входящие в состав ядра, при загрузке ОС помещаются в
оперативную память, где они постоянно находятся и используются при функционировании ЭВМ.
Такие программы называют резидентными. К резидентным относят также и программы-драйверы,
управляющие работой периферийных устройств. Важной частью ОС является
командный про-
цессор
- программа, отвечающая за интерпретацию и исполнение простейших команд, подавае-
мых пользователем, и его взаимодействие с ядром ОС. Кроме того, к операционной системе сле-
дует относить богатый набор
утилит
- обычно небольших программ, обслуживающих различные
устройства компьютера (например, утилита форматирования магнитных дисков, утилита восста-
новления необдуманно удаленных файлов и т.д.).
1.2. ПОНЯТИЕ ФАЙЛОВОЙ СИСТЕМЫ
99
При наличии большого числа программ и данных необходим строгий их учет и системати-
зация. Операционным системам приходится работать с различными потоками данных, разными
аппаратными и периферийными устройствами компьютера. Организовать упорядоченное управ-
ление всеми этими объектами позволяет файловая система.
На операционные системы персональных компьютеров наложила глубокий отпечаток кон-
цепция файловой системы, лежащей в основе операционной системы UNIX. В ОС UNIX подсис-
тема ввода-вывода унифицирует способ доступа как к файлам, так и к периферийным устройст-
вам. Под файлом при этом понимают набор данных на диске, терминале или каком-либо другом
устройстве. Таким образом, файловая система - это система управления данными.
Файловые системы операционных систем создают для пользователей некоторое виртуаль-
ное представление внешних запоминающих устройств ЭВМ, позволяя работать с ними не на низ-
ком уровне команд управления физическими устройствами (например, обращаться к диску с уче-
том особенностей его адресации), а на высоком уровне наборов и структур данных. Файловая сис-
тема скрывает от программистов картину реального расположения информации во внешней памя-
ти, обеспечивает независимость программ от особенностей конкретной конфигурации ЭВМ, или,
как еще говорят, логический уровень работы с файлами. Файловая система также обеспечивает
стандартные реакции на ошибки, возникающие при обмене данными. Пользователь, работая в
контексте определенного языка программирования, обычно использует файлы как поименованные
совокупности данных, хранимые во внешней памяти и имеющие определенную структуру. При
работе с файлами пользователю предоставляются средства для создания новых файлов, операции
по считыванию и записи информации и т.д., не затрагивающие конкретные вопросы программи-
рования работы канала по пересылке данных, по управлению внешними устройствами.
Наиболее распространенным видом файлов, внутренняя структура которых обеспечивается
файловыми системами различных ОС, являются файлы с последовательной структурой. Такого
рода файлы можно рассматривать как набор составных элементов, называемых логическими запи-
сями (или блоками), длина которых может быть как фиксированной, так и переменной, и доступ к
которым - последовательный, т.е. для обработки (считывания или записи)
i
-й записи должна быть
обработана предыдущая (
i-1
)-я запись.
В ряде файловых систем предусматривается использование более сложных логических
структур файлов, чем последовательная. Например, записи в файле могут образовывать древовид-
ные структуры, может использоваться индексно-последовательная организация файлов (с упоря-
дочением записей по значению некоторых полей) или, так называемая, библиотечная структура
файлов, использующая уровень учетной информации (каталога), облегчающей поиск и доступ к
отдельным компонентам файлов. На физическом уровне блоки файла (обычно размером 256 или
512 байт) могут размещаться в памяти непрерывной областью или храниться несмежно. Первый
способ хранения файлов, реализованный, например, в ОС РАФОС, приводит к затруднениям при
изменении размеров файлов (т.е. к необходимости перезаписи файлов, если их длина увеличивает-
ся, или хранения «дыр», если длина уменьшается).
Наиболее развитый механизм несмежного распределения блоков файлов реализован в опе-
рационной системе UNIX, в которой размеры файлов могут динамически изменяться в пределах 1
Гбайта. Каждый файл в системе имеет дескриптор, в составе которого хранится список, содержа-
щий 13 номеров блоков на диске и используемый для адресации к тем блокам, которые входят в
состав файла. Первые десять элементов списка непосредственно указывают на десять блоков, в
которых размещаются данные файла. В одиннадцатом элементе списка указан номер блока, хра-
нящий список из 128 номеров блоков данных, которые принадлежат файлу (это первый уровень
косвенной адресации). Двенадцатый элемент ссылается на блок, который содержит список из 128
номеров блоков первого уровня косвенной адресации (это второй уровень косвенной адресации).
С помощью тринадцатого элемента указывается ссылка на блок, содержащий список из 128 номе-
ров блоков второго уровня косвенной адресации.
Роль учетного механизма, позволяющего обслуживать десятки и сотни файлов, в файловой
системе очень важна. Общим приемом является сведение учетной информации о расположении
файлов на магнитном диске в одно место - его каталог (директорий). Каталог представляет собой
список элементов, каждый из которых описывает характеристики конкретного файла, используе-
мые для организации доступа к этому файлу - имя файла, его тип, местоположение на диске и
100
длину файла. В простых операционных системах (например ОС РАФОС) местоположение единст-
венного каталога на магнитном диске (дискете) и его размер фиксированы. В более сложных сис-
темах каталог может находиться в любом месте диска, но на него должна иметься ссылка в, так
называемой, метке тома, находящейся в фиксированном месте и формируемой при инициализации
диска. Более того, каталогов может быть большое число и они могут быть логически связаны в ка-
кие-либо информационные структуры. Так, наиболее развитая многоуровневая файловая система
UNIX поддерживает иерархическую (древовидную) систему каталогов (рис.2.2). Каждый пользо-
ватель может работать в составе этой структуры со своей системой каталогов (со своим поддере-
вом). Полное имя файла в данной структуре задает путь переходов между каталогами в логиче-
ской структуре каталогов.
Рис. 2.2.
Иерархическая система каталогов
Файл обладает уникальным идентификатором (именем), обеспечивающим доступ к файлу.
Идентификатор включает в себя собственно имя - буквенно-цифровое обозначение файла, которое
может содержать специальные символы (подчеркивание, дефис, ! и т.д.), и расширение имени
файла (обычно отделяемое от имени файла точкой). Если имена создаваемых файлов пользователь
может задавать произвольно, то в использовании расширений следует придерживаться традиции,
согласно которой расширение указывает на тип файла, характер его содержимого. Например, в
операционной системе MS-DOS файлы с расширениями
.com
- исполняемые
.ехе
.bat
.txt
- текстовые
.doc
.pas
.bas
.с
- тексты программ на известных языках программирования: Паскаль, Бейсик,
Си, Фортран, соответственно
.for
- файл базы данных.
.dbf
Известны десятки стандартных расширений, используемых при работе с различными про-
граммными системами.
В различных ОС существуют определенные ограничения на длину имени и расширения
имени файла. Так, в MS-DOS длина имени файла не должна превышать восьми символов, а рас-
ширение - трех. В ОС UNIX ограничения значительно менее жесткие.
Имена директорией, начиная от корневого, образующие
путь к
файлу
, отделяемые при за-
писи друг от друга косой чертой (\ в DOS, / в UNIX), также как и обозначение диска, относятся к
идентификатору файла. Например, в MS-DOS
d:\lang\pascal\work\example.pas