Файл: Учебнометодическое пособие Томск 2016 2 удк 004. 451(075. 8) Ббк 32. 973. 2018. 2я73 к 754 Рецензенты.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.10.2023
Просмотров: 295
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
33 дело не с реальной («голой») аппаратурой, а взаимодействуют с виртуальной
(кажущейся) ЭВМ.
На рисунке 2.4 показано наиболее укрупненное представление ВС, в том числе наиболее важные системные интерфейсы. Например, интерфейс пользо- вателя ВС с аппаратурой представляет собой клавиши мыши и клавиатуры, по- верхность экрана, а также различные кнопки на системном блоке и на перифе- рийных устройствах. Интерфейс между аппаратурой и программами представляет собой язык машинных команд. Совокупность интерфейсов, ис- пользуемых пользователем или прикладной программой, и представляет собой соответствующую виртуальную машину.
Рис. 2.4 Укрупненное представление вычислительной системы
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Обрабатывающие системные программы отличаются от
управляющих программ как по своим функциям, так и по способу их
инициирования (запуска).
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
На рисунке 2.5 приведена классификация системных программ.
34
Рис. 2.5 Классификация системных программ
Основные функции обрабатывающих программ:
1) перенос информации. Перенос может выполняться между различными устройствами или в пределах одного устройства. При этом под устройствами понимаются: ОП, устройства ВП, устройства ввода- вывода;
2) преобразование информации. После считывания информации с устройства обрабатывающая программа преобразует эту информа- цию, а уж затем записывает ее на это же или на другое устройство.
В зависимости от того, какая из этих двух функций является основной, обрабатывающие системные программы делятся на утилиты и лингвистические процессоры.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Основной функцией утилиты является перенос информации,
а основная функция лингвистического процессора – преобразова-
ние информации.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Запуск обрабатывающей системной программы аналогичен запуску при- кладной программы.
Основные функции управляющих программ:
1) оказание помощи прикладным и системным обрабатывающим про- граммам в использовании ими ресурсов ВС. При этом различают ин- формационные, программные и аппаратные ресурсы. Данная функция реализуется во всех ВС;
2) обеспечение однопользовательской мультипрограммности – одно- временное выполнение нескольких прикладных и (или) системных обрабатывающих программ в интересах одного пользователя. Эта
35 функция реализуется лишь в мультипрограммных ВС. В однопользо- вательских однопрограммных ВСэта функция отсутствует;
3) обеспечение многопользовательской мультипрограммности – одно- временное выполнение нескольких обрабатывающих программ (при- кладных и системных) в интересах нескольких пользователей. Данная функция реализуется лишь в многопользовательских ВС.
Управляющие системные программы делятся на две группы: программы
BIOS и программы операционной системы (ОС).
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
BIOS – базовая система ввода-вывода.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Сюда относятся системные программы, находящиеся в ПЗУ (постоянное запоминающее устройство). Эти программы выполняют многие функции обме- на с периферийными устройствами, участвуя, таким образом, в выполнении первой из перечисленных выше функций управляющих программ.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Операционная система (ОС) – множество управляющих
программ, предназначенных для выполнения всех трех перечислен-
ных выше функций.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Примером однопользовательской однопрограммной ОС являетсяMS-
DOS. Примерами однопользовательских мультипрограммных ОС являются различные Windows. Операционная системаUNIXявляется примером много- пользовательской системы.
При рассмотрении пользовательских интерфейсов невозможно обойтись без понятия файла. В отличие от многих других объектов, управляемых ОС, файлы «видимы» для пользователя и используются им при формировании сво- их команд для ОС [2].
2.2 Файлы
Вся информация, обрабатываемая ВС, содержится в ней на устройствах:
ОП, ВП, устройства ввода-вывода. При этом на любом из устройств информа- ция хранится в виде длинной битовой строки, т. е. в виде последовательности нулей и единиц. Длина одной такой битовой строки может составлять многие сотни Гбит (1 Г = (1024)
3
). Так как работать с такой длинной строкой чрезвы-
36 чайно неудобно, то она разделяется на поименованные части разной длины, называемые файлами. Более точное определение:
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Файл – часть пространства носителя ВП (разрывная или не-
прерывная), которой присвоено имя, уникальное для данной ВС.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Информация на носителе делится на части-файлы по смысловому прин- ципу. Например, один файл может содержать текст исходной программы, вто- рой – ее объектный модуль, а третий – загрузочный модуль. Кроме того, в большинстве современных ОС каждое устройство ввода-вывода также счита- ется файлом. Что касается ОП, то информация на ней делится не на файлы, а на сегменты. Так как это разбиение на сегменты скрыто от пользователя ВС, то оно будет рассмотрено нами в другом месте.
Прежде чем обсуждать имена файлов, рассмотрим небольшую классифи- кацию имен объектов, находящихся под управлением ОС (рис. 2.6). В качестве первого признака классификации использовано назначение имени.
Рис. 2.6 Классификация имен объектов, управляемых ОС
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Пользовательские имена объектов используются для обще- ния между пользователем и ВС, то есть для реализации пользова- тельских интерфейсов. Программные имена объектов использу- ются при реализации системных программных интерфейсов.
Системные имена объектов используются самой ОС для своих внутренних потребностей.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Существуют также смешанные имена, которые могут быть одновременно и пользовательскими, и программными или и программными, и системными.
37
В качестве второго признака классификации имен объектов используется фор- ма представления имени – символьная или численная. Пользовательские имена бывают только символьными, а системные – только численными. Программные имена бывают символьными и численными. В дальнейшем мы будем часто ис- пользовать данную классификацию имен.
Применительно к файлу существуют три пользовательских имени.
Наиболее короткое из них – простое имя файла. Это имя дает файлу пользова- тель при его создании. Ограничения на выбор простого имени файла определя- ются типом используемой ОС. В достаточно старых операционных системах используется короткое простое имя файла. Например, в MS-DOS (за исключе- нием версии 7.0) длина простого имени не может превышать 12 символов по схеме «8.3». При этом до восьми символов имеет собственно имя файла, до трех символов – расширение имени файла, один символ – разделительная точка.
Часть имени левее точки называют также префиксом имени, а правее точки –
суффиксом имени. В старых версиях UNIX максимальная длина простого име- ни файла составляет 14 символов. При этом, обычно, никакой символ не играет особой роли в имени файла (исключением являются некоторые системные об- рабатывающие программы, учитывающие точку). В современных реализациях
UNIX, а также в MS-DOS с версии 7.0 и в различных Windows длина простого имени файла может достигать 255 символов.
Файл является достаточно крупной единицей информации. Для удобства работы с ним битовая строка, образующая файл, делится на части, называемые
записями. Так как при взаимодействии с ВС пользователь «не видит» записи файла, то мы вернемся к ним позже, когда будем рассматривать не пользова- тельские, а программные интерфейсы.
В реальной ВС одновременно существуют многие тысячи файлов. Для того чтобы пользователь мог ориентироваться в этом «море», используется
файловая структура системы. Для построения такой структуры применяются специальные файлы, называемые каталогами(в Windows каталоги называются
папками). Каждая запись файла-каталога содержит сведения об одном файле,
«зарегистрированном» в данном каталоге. Применительно к UNIXэто: 1) про- стое имя файла; 2) численный номер файла, используемый ОС для получения уникального имени файла. Если файл «зарегистрирован» в каталоге, то говорят, что между каталогом и файлом существует жесткая связь. При этом каталог является по отношению к файлу родительским каталогом.
38
Так как в каталоге могут быть «зарегистрированы» не только файлы дан- ных, но и каталоги, то появляется возможность связать все файлы системы в единую иерархическую (древовидную) структуру.При этом корнем дерева является корневой каталог. На следующем уровне дерева находятся те файлы и каталоги, сведения о которых содержатся в корневом каталоге. Аналогично, каталоги первого уровня дерева «порождают» файлы и каталоги второго уровня и т. д.
В MS-DOS файловая структура системы представляет собой не одно, а несколько деревьев по числу логических дисков. При этом корень каждого де- рева имеет имя «\» (обратный слеш). Простое имя любого другого каталога от- личается от имени обычного файла данных тем, что оно не может иметь расши- рения имени.
Пользователь Windows имеет дело не с реальной файловой структурой системы, аналогичной файловой структуреMS-DOS, а с виртуальной структу- рой, представляющей собой единое дерево. Корнем этого дерева является вир- туальный каталог «Рабочий стол». Его подкаталогами являются другие вирту- альные каталоги, один из которых («Мой компьютер») является «родителем» для корневых каталогов логических дисков.
В UNIXфайловая структура системы представляет собой единое дерево.
На рисунке 2.7 приведен фрагмент этого дерева. Корневой каталог имеет имя
«/» (прямой слеш). Простое имя любого другого каталога ничем не отличается от имени файла данных. В отличие от MS-DOS и Windows файловая структура в UNIX представляет собой дерево с пересечениями. Наличие таких пересече- ний обусловлено тем, что один и тот же файл может быть одновременно «заре- гистрирован» не в одном, а в нескольких каталогах. При этом все жесткие связи файла полностью равноправны. Следствием этого является то, что для уничто- жения файла требуется уничтожение записей о нем во всех его родительских каталогах.
Большим достоинством любой древовидной файловой структуры являет- ся то, что она позволяет пользователю не заботиться об уникальности простых имен файлов. Это объясняется тем, что ОС работает не с этими пользователь- скими именами файлов, а с путями. Имя-путь файла, называемое также абсо-
лютным именем файла, представляет собой последовательность всех имен, начиная с корневого каталога и кончая простым именем файла. При этом имя каждого промежуточного каталога в имени-пути завершается символом «/» для
UNIX или «\» для MS-DOS. Например, на рисунке 2.7 два файла имеют одина-
39 ковое простое имя a.txt, но абсолютные имена у них разные:
/home/vlad/a.txt и /home/andrei/a.txt.
Рис. 2.7 Фрагмент файловой структуры UNIX
В любой конкретный момент времени один каталог в файловой структуре однопользовательской системы является особенным. Это текущий каталог.
В многопользовательской системе, например в UNIX, у каждого пользователя есть свой текущий каталог. Если искомый файл «зарегистрирован» в текущем каталоге, то его можно задать для ОС не с помощью имени-пути, а пользуясь его простым именем. ОС сама получит имя-путь файла, соединив имя-путь ка- талога с простым именем файла.
Если адресуемый файл является «потомком» текущего каталога, то в ка- честве имени этого файла можно использовать «смещение» относительно те- кущего каталога. Такое пользовательское имя файла называется относитель-
ным именем. Например, если текущим каталогом является /home, то записанное выше имя-путь файла /home/vlad/a.txt может быть заменено более коротким именем vlad/a.txt. Обратите внимание на отсутствие в начале этого имени символа «/». Его наличие всегда говорит о том, что записа- но полное имя-путь.
40
Общепринято использовать для обозначения текущего каталога символ
«.», а для обозначения родительского каталога (по отношению к текущему ка- талогу) – «..». Например, если текущим каталогом является /home/vlad,то для задания файла /home/andrei/a.txt пользователь может использовать относительное имя ../andrei/a.txt.
Особенностью файловой структуры в мультипрограммной системе явля- ется наличие символических связей. Символическая связь (в Windows – яр-
лык) – специальный файл, содержащий пользовательское имя другого – целево- го файла. Например, на рисунке 2.7 файл syma.txt является символической связью с файлом a.txt. То есть содержимым файлаsyma.txt является:
/home/vlad/a.txt. Символическая связь используется для косвенной адре- сации целевого файла. При этом, задав в команде пользовательского или про- граммного интерфейса имя символической связи, мы заставим ОС выполнить требуемое действие над целевым файлом, например выполнить создание этого файла. Некоторые из команд «не следуют символической связи» и выполняют заданное действие не над целевым файлом, а над самой символической связью.
Примером является команда удаления файла.
Кроме перечисленных выше типов файлов (файлы данных, каталоги, символические связи) любая современная ОС имеет еще один тип файлов – файлы-устройства, называемые также специальными файлами. Наличие таких файлов позволяет и пользователю, и программам работать с периферийными устройствами почти так же, как и с файлами данных. Если в однопрограммной системе, например в MS-DOS, прикладная программа может взаимодействовать с ПУ не только через файловую систему, но и через драйверы MS-DOS,BIOS, а также напрямую через порты, то в мультипрограммной системе такая «рос- кошь» не допустима. В UNIX специальные файлы находятся или в каталоге
/dev
, или в его дочерних каталогах. Заметим, что в качестве «устройств» мо- гут выступать не только настоящие ПУ (устройства ввода-вывода и ВП), но и области ОП и ВП. Примеры специальных файлов:
/dev/fd0 – дисковод гибких дисков;
/dev/lp0 – параллельный порт 0;
/dev/tty00 – последовательный порт COM1;
/dev/rz0a – первый (a) раздел первого (0) жесткого диска;
/dev/kmem – линейная виртуальная ОП ядра ОС.