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

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

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




Другие системные вызовы, предназначенные для управления процессом, позволяют запросить выделение дополнительной памяти (или освобождение не-задействованной), организовать ожидание завершения дочернего процесса или загрузку какой-нибудь другой программы поверх своей.

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

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

Каждому пользователю, которому разрешено работать с системой, системным администратором присваивается идентификатор пользователя — UID (User IDen-tification). Каждый запущенный процесс имеет UID того пользователя, который его запустил. Дочерние процессы имеют такой же UID, что и у родительского процесса. Пользователи могут входить в какую-нибудь группу, каждая из которых имеет собственный идентификатор группы — GID (Group IDentification).

Пользователь с особым значением UID, называемый в UNIX «суперпользователем» (superuser), имеет особые полномочия, позволяющие пренебрегать многими правилами защиты. В крупных компьютерных системах только системный администратор знает пароль, необходимый для получения прав суперпользователя, но многие обычные пользователи (особенно студенты) прикладывают немалые усилия, пытаясь отыскать бреши в системе, которые позволили бы им стать суперпользователем без пароля. Морковные кексы с сырным кремом



Полное описание: Системные вызовы




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


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

Иерархии процессов
В некоторых системах, когда процесс порождает другой процесс, родительский и дочерний процессы продолжают быть определенным образом связанными друг с другом. Дочерний процесс может и сам создать какие-нибудь процессы, о)юрмируя иерархию процессов. Следует заметить, что в отличие от растений и животных, использующих половую репродукцию, у процесса есть только один родитель (но нуль, один, два или более детей). В UNIX процесс, все его дочерние процессы и более отдаленные потомки образуют группу пр ... Читать

Когда планировать?
Ключевым вопросом планирования является момент принятия решения. Оказывается, существуют разнообразные ситуации, требующие вмешательства планировщика. Во-первых, при создании нового процесса необходимо принять решение, какой из процессов выполнять: родительский или дочерний. Поскольку оба процесса находятся в состоянии готовности, вполне естественно, что планировщик должен принять решение, то есть вполне обоснованно выбрать выполнение либо родительского, либо дочернего процесса. Во-вторых, плани ... Читать

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

Сигналы прерывания клавиатуры
Другие сигналы, например прерывания клавиатуры, не имеют определенного отношения к потокам. Кто их должен перехватывать? Один специально назначенный поток? Или все потоки? А может быть, заново создаваемый всплывающий поток? Кроме того, что произойдет, если один из потоков вносит изменения в обработчики сигналов, не уведомляя об этом другие потоки? А что случится, если одному потоку потребуется перехватить конкретный сигнал (например, когда пользователь нажмет CTRL-C), а другому потоку этот сигна ... Читать