Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shp.doc
Скачиваний:
22
Добавлен:
18.09.2019
Размер:
5.46 Mб
Скачать
  1. Системные вызовы управления терминалом

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

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

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

Функция ttyname возвращает имя терминального устройства, связанного с дескриптором открытого файла, а функция isatty возвращает значение 1 (то есть истинно в терминах языка С), если дескриптор файла описывает терминальное устройство, и 0 (ложно) – в противном случае.

Параметр filedes является дескриптором открытого файла. Если дескриптор filedes не соответствует терминалу, то функция ttyname вернет значение NULL. Иначе возвращаемое функцией ttyname значение указывает на строку в статической области памяти, которая переписывается при каждом вызове утилиты ttyname.

  1. Операционные системы: назначение и основные функции

Операционная система в наибольшей степени определяет облик всей вычислительной системы в целом. ОС выполняет две по существу мало связанные функции: обеспечение пользователю-программисту удобств посредством предоставления для него расширенной машины и повышение эффективности использования компьютера путем рационального управления его ресурсами.

ОС как расширенная машина

Использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающих наличие и типы ошибок, которые, очевидно, надо анализировать. При работе с диском программисту-пользователю достаточно представлять его в виде некоторого набора файлов, каждый из которых имеет имя. Работа с файлом заключается в его открытии, выполнении чтения или записи, а затем в закрытии файла. Программа, которая скрывает от программиста все реалии аппаратуры и предоставляет возможность простого, удобного просмотра указанных файлов, чтения или записи - это, конечно, ОС. Точно так, как ОС ограждает программистов от аппаратуры дискового накопителя и предоставляет ему простой файловый интерфейс, операционная система берет на себя все малоприятные дела, связанные с обработкой прерываний, управлением таймерами и оперативной памятью, а также другие низкоуровневые проблемы.

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

ОС как система управления ресурсами.

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

  • планирование ресурса - определение, кому, когда необходимо выделить данный ресурс;

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]