Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Программирование, базы данных. /

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

Документ 1 | Документ 2

←предыдущая следующая→
1 2 3 

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

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

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

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

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

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

      - эффективный групповой идентификатор процесса совпадает с групповым идентификатор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, имеет обширный набор математических функций для работы с действительными числами двойной точности: все тригонометрические и гиперболические функции, возведение в степень, взятие логарифма, вычисление остатка, взятие целых и дробных частей, взятие модуля числа, генерация псевдослучайных чисел. Имеются также функции целочисленного деления и

←предыдущая следующая→
1 2 3 


Copyright © 2005—2007 «RefStore.Ru»