Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.375


Таненбаум Э.- Архитектура компьютера. стр.375

Примеры виртуального ввода-вывода

Любая операционная система в первую очередь предназначена для обслуживания пользовательских программ, а основными услугами является ввод-вывод файлов. И UNIX, и Windows ХР предлагают широкий спектр услуг ввода-вывода. Для большинства системных вызовов UNIX в Windows ХР имеется эквивалентный вызов, но обратное неверно, поскольку Windows ХР поддерживает гораздо больше вызовов и каждый из них гораздо сложнее соответствующего вызова UNIX.

Виртуальный ввод-вывод в UNIX

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

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

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

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

Основные системные вызовы для файлов в UNIX приведены в табл. 6.5. Вызов créât (без привычной буквы е в конце) используется для создания нового файла. В настоящее время он не обязателен, поскольку вызов open тоже ведет к созданию нового файла. Вызов unlink удаляет файл (предполагается, что файл существует только в одном каталоге).

Таблица 6.5. Основные системные вызовы UNIX

Системный вызов

Описание

creat(name, mode)

Создание файла; параметр mode определяет режим защиты

unlink(name)

Удаление файла (предполагается, что связь у него единственная)

open(name, mode)

Открытие или создание файла и возвращение дескриптора

 

файла

close(fd)

Закрытие файла

read(fd, buffer, count)

Считывание из файла байтов в buffer в количестве count

write(fd, buffer, count)

Запись в файл байтов из buffer в количестве count

lseek(fd, offset, w)

Перемещения файлового указателя на значения, заданные

 

параметрами offset и w

stat(name, buffer)

Возвращение информации о файле

chmod(name, mode)

Изменение режима защиты файла

fcntl(fd, and, ...)

Выполнение различных управляющих операций (например,

блокирование файла или его части)

1 Для многих слова о 8-разрядных байтах могут показаться странными, однако раньше байт действительно мог быть и 5-, и 7-, и 8-разрядным. Теперь же мы по привычке считаем, что в байте ровно 8 бит. — Примеч. научи, ред.


⇐ Предыдущая страница| |Следующая страница ⇒

.