Вход

Сравнение операционных систем (DOS, UNIX, OS/2, WINDOWS)

Реферат по программированию
Дата добавления: 21 декабря 1998
Язык реферата: Русский
Word, rtf, 530 кб (архив zip, 27 кб)
Реферат можно скачать бесплатно
Скачать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу




ВВЕДЕНИЕ


Операционная ситема UNIX изначально была написана для ЭВМ DEC PDP-7 в 1969 г., в 1970 г. была переписана с машинно-зависимого языка ассемблера (на котором тогда писались все операционные системы) на язык высокого уровня - Си и перенесена на более мощную машину - PDP-11/20. В 1974 г. UNIX была передана университетам ”для образовательных целей”, а несколько лет спустя нашла коммерческое применение.

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

Операционные системы семейства MS-DOS (PC-DOS, DR-DOS и др.) появились вместе с первыми персональными компьютерами фирмы IBM в 1981 г. Персональные компьтеры IBM PC тогда имели неважные технические характеристики, были расчитаны на однопользовательский однозадачный режим (в отличае от UNIX - систем, работавших в многопользовательском многозадачном режиме). Обьем оперативной памяти компьютера IBM PC образца 1981 г. был 64 Kб., что предопределяло небольшой размер операционной системы и относительную бедность ее ситемных функций, и хотя в более поздних версиях набор средств был значительно расширен (версия 3.3, о которой и будет идти речь, включает в себя средства для работы в сети и защиту файлов), MS-DOS так и не ”доросла” до UNIX. С самого начала и компьютер, и операционная система были ориентированы на не очень квалифицированного пользователя, работающего с небольшим количеством программ узкого профессионального назначения.


ЖИЗНЕННЫЙ ЦИКЛ ПРОЦЕССА (ПРОГРАММЫ)


Единицей управления и потребления ресурсов в системе служит процесс (в MS-DOS - программа). Процесс - последовательное (или псевдо-параллельное) вычисление. В частности, ввод/вывод обычно выполняется синхронно, и процесс приостанавливается до его завершения. Если требуется продолжить выполнение процесса параллельно с инициированным им вводом/выводом, в UNIX нeoбходимо предварительно породить другой процесс для реализации ввода/вывода; в MS-DOS можно воспользоваться механизмом прерываний. Каждый процесс работает в своем адресном пространстве.

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

Функции семейства exec операционной системы UNIX позволяет передать управление другой программе, заменив текущий образ процесса образом новой программы, без создания нового процесса. При этом возврат к старому процессу невозможен.

В MS-DOS программа может быть загружена в память с немедленным запуском (запуск начинается с первой инструкции) или без запуска (оверлей) на выполнение, при этом для каждой программы в начале ее рабочей памяти создается специальная управляющая структура PSP - program segment prefix, которая отвечает за передачу управления в и из прогаммы, хранит информацию об открытых файлах, параметрах, переданных программе при вызове.

В обеих операцоинных системах процесс (программа) наследует все файлы, открытые его отцом, текущий каталог и управляющий терминал.

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


РАСПРЕДЕЛЕНИЕ ПАМЯТИ


Распределение памяти неразрывно связано с механизмом процессов (программ).

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

Системные функции UNIX обеспечивают выделение, изменение размера и освобождение участков памяти.


СИГНАЛЬНЫЙ МЕХАНИЗМ


Сигнальный механизм UNIX (в MS-DOS не документирован и не стандартизирован) позволяет процессам и операцоинной системе обмениваться информацией в реальном масштабе времени.

Сигналы различаются своими номерами - целыми числами, начиная с 1 (сигнал 0 - зарезервирован). Среди них: аварийное завершение, арифметическая исключительная ситуация, разрыв связи, недопустимая инструкция, нарушение защиты памяти, запись в програмный канал, не открытый для чтения, а также различные сигналы завершений. Кроме стандартных сигналов, процесс может определить собственные - 'пользовательские' сигналы.

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

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

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

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

Допустимы три вида реакции на сигнал: игнорировние, перехват и стандартная реакция системы, перехват и вызов функции внутри процесса. Перехват и игнорирование сигналов приостановки и уничтожения процесса невозможны.


МНОГОПОЛЬЗОВАТЕЛЬСКАЯ ЗАЩИТА (только ОС UNIX)


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

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

С каждым файлом связана пара идентификаторов: пользовательский и групповой. Файл наследует эти идентификаторы от эффективных идентификаторов процесса, создавшего данный файл. Процесс, эффективный пользовательский идентификатор которого совпадает с пользовательским идентификатором файла, считается владельцем данного файла.

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

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

Все пользователи, имеющие доступ в систему, разделены по отношению к файлу на три категории: владельцев (эффективный пользовательский идентификатор процесса совпадает с пользовательским идентификатором файла), членов группы (эффективный групповой идентификатор процесса совпадает с групповым идентификатором файла) и прочих.

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

Если процесс не имеет привилегий, то ему разрешается доступ к файлу в трех случаях:

- процесс является владельцем файла (см. выше) и аттрибуты защиты файла разрешают запрашиваемый вид действия владельцу;

- эффективный групповой идентификатор процесса совпадает с групповым идентификаторoм файла и аттрибуты файла разрешают запрашиваемый вид действия группе;

- аттрибуты файла разрешают запрашиваемый вид действия всем процессам.

Если ни одно из условий не выполняется, то процесс не получает доступ к файлу.

Системные вызовы операционной системы UNIX обеспечивают: получение информации о пользователях и группах в учетной базе (при наличии соответствующих привилегий) и получение информации о защите конкретного файла.


ФАЙЛОВАЯ СИСТЕМА


За основу фаийловой системы MS-DOS была взята фаиловая система UNIX, поэтому они очень похожы.

Допускаются следующие типы файлов: обычные файлы, специальные байт-ориентированные и блок-ориентированные файлы, FIFO-файлы. Обычный файл - бесструктурный массив с прямым доступом. Каталог обеспечивает связь между именами файлов и собственно файлами. Каждый элемент каталога содержит локальное имя файла и ссылку на конкретный файл. В UNIX различные элементы каталогов могут ссылаться на один и тот же файл. Иерархия файлов образует древовидную структуру. Для именования файла используются корневой и текущий каталоги. Процесс (программа) может сменить текущий каталог.

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

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


БАЗОВЫЙ ВВОД-ВЫВОД


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

Для каждого файла система ведет указатель чтения /записи. При чтении (записи) n байтов указатель продвигается вперед по файлу на n байтов и устанавливается в позицию очередного читаемого (записываемого) символа.

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

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

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

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

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

Особенность каталога состоит в том, что запись в него может делать только система - программа может только читать элементы каталога. MS-DOS, в отличае от UNIX, позволяет искать в каталогах файлы по маске.



СТАНДАРТНЫЙ БУФФЕРИЗИРОВАННЫЙ ВВОД/ВЫВОД


Стандартный буферизированный ввод-вывод является надстройкой над базовым уровнем. Подобно базовому уровню, он интерпретирует файл (поток, в терминах данного уровня), как одномерный массив байтов с прямым доступом.

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

Когда процесс начинает работу, он получает открытыми в обеих системах 3 стандартных потока: стандартный ввод ('stdin' - в UNIX, 'CON' - канал 0 в MS-DOS), стандартный вывод ('stdout' - в UNIX, 'CON' - канал 1 в MS-DOS), стандартную диагностику ('stderr' - в UNIX, канал 2 в MS-DOS).MS-DOS предоставляет дополнительно еще 3 стандартных потока - канал связи ('AUX' - канал 3) и стандартное устройство печати ('PRN' - канал 4). Стандартный ввод используется как устройство чтения по умолчанию, стандартный вывод - как устройство записи по умолчанию, стандартная диагностика - для вывода сообщений об ошибках.

В обеих операционных системах средства ввода-вывода буферизированного обмена позволяют передавать символы, символьные строки, форматировать выводимую информацию. Как и на базовом уровне возможна установка позиции в потоке.

UNIX предоставляет широчайшие возможности по форматному вводу-выводу чисел: знаковый и беззнаковый форматы различной точности; преобразование и ввод/вывод в различных системах исчисления, в нормализованном представлении; вывод чисел, адресованных с помощью указателя и т. д. В операционных системах семейства MS-DOS специальных функций ввода/вывода чисел нет.


АРИФМЕТИЧЕСКИЕ ВЫЧИСЛЕНИЯ


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

MS-DOS не предоставляет никаких системных вызовов для поддержки математических вычислений.


ОПЕРАЦИИ С СИМВОЛЬНЫМИ ДАННЫМИ И СТРОКАМИ


Обе операционные системы предоставляют системные функции для преобразования строк к верхнему и нижнему регистрам, копирование, сравнение, поиск и транслитерацию строк.

UNIX дополнительно обеспечивает перевод строки символов в число и наоборот, определение типа символа (печатаемый или непечатаемый, управляющий или нет, и т.д.).



СИСТЕМНОЕ ВРЕМЯ


Обе операционные системы предоставляют программе пользователя возможность узнать текущие дату и время, соответствующие григорианскому календарю. За начало отсчета в MS-DOS принята дата 1 января 1980 г. 0 часов 0 минут 0 секунд по Гринвичу, в UNIX 1 января 1970 г. Обе системы предоставляют возможность измерения временных интервалов короче 1 секунды с помоищью специальных системных вызовов. UNIX может переводить дату и время из внутреннего числового представления в символьное (пригодное к выводу, например, на терминал); местное время в время по Гринвичу и наоборот; предоставлять информацию о часовом поясе, летнем и зимнем времени.


КОНФИГУРАЦИЯ СИСТЕМЫ


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

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


© Рефератбанк, 2002 - 2017