Современные операционные системы

Современные операционные системы
Что такое операционная система / Каналы

Каналы




Последним понятием в этом обзоре будут каналы, которые имеют отношение как к процессам, так и к файлам. Канал — это разновидность псевдофайла, которым, как показано на рис. 1.16, можно воспользоваться для соединения двух процессов. Если процессам А и В необходимо обменяться данными с помощью канала, то они должны установить его заранее. Когда процессу А нужно отправить данные процессу В, он осуществляет запись в канал, как будто он имеет дело с выходным файлом. Фактически реализация канала очень похожа на реализацию файла. Процесс В может прочитать данные, осуществляя операцию чтения из канала, как будто он имеет дело с входным файлом. Таким образом, обмен данными между процессами в UNIX очень похож на обычные операции записи и чтения файла. Более того, только сделав специальный системный вызов, процесс может узнать, что запись выходных данных на самом деле производится не в файл, а в канал.



Полное описание: Каналы




С этим описанием рассматриваются следующие темы:


Системные вызовы для управления файлами
Многие системные вызовы имеют отношение к файловой системе. В этом разделе будут рассмотрены вызовы, работающие с отдельными файлами, а в следующем разделе — те вызовы, которые оперируют каталогами или всей файловой системой в целом. Чтобы прочитать данные из файла или записать их в файл, сначала его необходимо открыть с помощью системного вызова open. Для данного вызова необходимо указать имя открываемого файла (с указанием абсолютного пути либо пути относительно рабочего каталога) и код ORDONL ... Читать

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

Поведение процесса
На рис. 2.19 показано, что практически у всех процессов чередуются пики вычислительной активности с запросами (дискового) ввода-вывода. Обычно центральный процессор некоторое время работает без остановок, затем происходит системный вызов для чтения данных из файла или для их записи в файл. Когда системный вызов завершается, центральный процессор возобновляет вычисления до тех пор, пока ему не понадобятся дополнительные данные или не потребуется записать дополнительные данные на диск и т. д. След ... Читать

Большие программные проекты
Для создания операционной системы каждый файл с расширением .с с помощью компилятора С превращается .в объектный файл. Объектные файлы, имеющие имена, заканчивающиеся символами .о (.о-файлы), содержат двоичные инструкции для целевой машины. Позже они будут непосредственно выполняться центральным процессором. В мире С нет ничего подобного байтовому коду Java. Первый проход компилятора С называется препроцессором С. По мере чтения каждого файла с расширением .с, при каждой встрече директивы #inclu ... Читать

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