Архитектура современных операционных систем
49 3. Если процесс, создавший канал порождает дочерние процессы, то они наследуют оба указателя канала. В их таблице открытых файлов появляют- ся два элемента, а счетчики в системных таблицах файлов удваиваются для каждого порожденного процесса. 4. Завершение работы канала осуществляется командой close. Канал будет закрыт и временный файл будет уничтожен только после того как все его описатели будут закрыты, т.е. все счетчики = 0. В случае создания именного канала создается файл с его именем и типом р. Имя файла может быть использовано для доступа к каналу другим процес- сом. Создание нового именованного канала или открытие существующего осу- ществляется командой open(), в которой задается имя канала и ссылка на мас- сив из 2-х целочисленных значений (номера указателей чтения и записи). При создании файла канала ОС использует для него только блоки прямой адресации, поэтому скорость работы с каналом достаточно высока. Выделенная область используются как циклический буфер. Однако не прочитанная инфор- мация при переполнении канала не затирается и процесс переводится в состоя- ние ожидания. Можно задать параметр nodelay, тогда при записи в переполнен- ный канал будет возвращен код ошибки. Аналогично осуществляется и чтение из пустого канала. Реализация процессов в UNIX Для управления процессами ядро поддерживает две управляющие струк- туры: таблица процессов; структура пользователя. Таблица процессов на каждый существующий в системе процесс имеет один элемент, содержащий следующую информацию: параметры планирования. Сюда входит приоритет процесса (PRTY), время использования процессорного времени (CPU), время нахождения в состоянии ожидания и др.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy