Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Связь флагов с системой безопасности UnixСодержание книги
Поиск на нашем сайте В ОС FreeBSD существуют четыре уровня безопасности: · 0 - система безопасности включена, но никаких ограничений нет. В этом режиме можно сбросить флаги immutable и append; · 1 - "режим безопасности", установлен ряд ограничений на работу с внешними устройствами и операции с флагами, а именно: флаги immutable и append нельзя сбросить, а диски, содержащие смонтированные файловые системы - /dev/mem и /dev/dmem нельзя открыть на запись; · 2 - "повышенная безопасность", еще больше ограничений, чем на уровне 1. Установлены те же ограничения, что и для режима 1, плюс дополнительно нельзя открыть диски на запись, независимо от того, смонтированы они или нет, а также подавляется запуск команды newfs в многопользовательском режиме. Понятие процесса. Состояния и свойства процессов. Понятие процесса характеризует некоторую совокупность набора исполняющихся команд, ассоциированных с ним ресурсов и текущего момента его выполнения, находящуюся под управлением операционной системы. В любой момент времени процесс полностью описывается своим контекстом, состоящим из регистровой, системной и пользовательской частей. В операционной системе процессы представляются определенной структурой данных — PCB, отражающей содержание регистрового и системного контекстов. Процессы могут находиться в пяти основных состояниях: рождение, готовность, исполнение, ожидание, закончил исполнение. Из состояния в состояние процесс переводится операционной системой в результате выполнения над ним операций. Операционная система может выполнять над процессами следующие операции: · создание процесса, · завершение процесса, · приостановка процесса, · запуск процесса, · блокирование процесса, · разблокирование процесса, · изменение приоритета процесса. Между выполнением операций содержимое PCB не изменяется. Деятельность мультипрограммной операционной системы состоит из цепочек перечисленных операций, выполняемых над различными процессами, и сопровождается процедурами сохранения/восстановления работоспособности процессов, т.е. переключением контекста. Переключение контекста не имеет отношения к полезной работе, выполняемой процессами, и время, затраченное на него, уменьшает полезное время работы процессора. Ядро Unix и процессы. Системные ресурсы. Системные вызовы. Виртуальное адресное пространство процесса. Сегменты объектного модуля. Ядро Unix и процессы Резидентная в оперативной памяти часть системы называется ядром. На диске ядро оформлено как исполнимый файл, считываемый начальным загрузчиком в оперативную память, начиная с нулевого адреса. Ядро содержит системные программы, выполняющие диспетчерские функции и управляющие структуры данных, используемые этими программами. Распределение памяти внутри ядра статично. Число управляющих структур (дескрипторов процессов, блоков КЭШ-памяти и т.п.) определяется при генерации и задает тем самым предельные количественные характеристики системы. Все работы, выполняемые вне ядра, оформлены в виде процессов, работающих в режиме «пользователь». Процессы, выполняющиеся в ядре, работают в режиме «система». В функции ядра входит распределение между процессами системных ресурсов: · времени центрального процессора; · оперативной памяти; · дисковой памяти; · файлов; · разделяемых процедурных сегментов. Ядро также выполняет системные вызовы – программные запросы от процессов к операционной системе. Единицей управления и потребления ресурсов в системе служит процесс. Процесс - это последовательное вычисление, так что никакие асинхронные действия в рамках одного процесса происходить не могут. Процесс может быть создан только системным вызовом fork(). Процесс, выполняющий системный вызов fork(), называется порождающим или отцом (предком), а созданный этим вызовом процесс – порожденным или сыном (потомком). Каждый процесс работает в своём виртуальном адресном пространстве. Совокупность участков памяти, отображаемых виртуальными адресами процесса, называются образом процесса. Полученный после компиляции объектный модуль (файл) состоит из процедурного сегмента и сегмента данных. Потенциально существует ещё два сегмента – динамический и стек, но они не занимают места на диске. Эти сегменты создаются в момент загрузки исполнимого файла (полученного из объектного модуля) в оперативную память. Процедурный сегмент содержит машинные инструкции (команды) и константы. Как правило, он не изменяется во время выполнения исполнимой программы. Сегмент данных содержит изменяемые при выполнении программы данные, инициализируемые во время компиляции исходной программы. Динамический сегмент дополняет сегмент данных и содержит не инициализируемые объекты. Место в оперативной памяти под динамический сегмент и стек выделяется только при загрузке образа процесса в оперативную память. Объектные файлы объединяются редактором связей (компоновщиком) ld в исполнимый файл. В общем случае образ процесса (исполнимый файл) загружается и подвергается свопингу полностью. Порождение процессов в ОС Unix. Методы организации параллельных процессов. Порождение процессов Образ процесса – это совокупность составляющих его сегментов. При создании процесса строится образ порожденного процесса, являющегося точной копией образа породившего процесса. Сегмент данных и стек отца (предка) действительно копируются на новое место, образуя сегмент данных и стек сына (потомка). Процедурный сегмент копируется только тогда, когда НЕ является разделяемым. В противном случае сын становится ещё одним процессом, разделяющим данный процедурный сегмент. После выполнения системного вызова fork() оба процесса продолжают выполнение с одной и той же точки. Чтобы процесс мог опознать, является он отцом или сыном, системный вызов fork() возвращает в качестве своего значения в породивший процесс идентификатор порожденного процесса, а в порожденный процесс – нуль. Следует обратить внимание на следующее обстоятельство: · процессы не имеют предопределенных заранее описанных имен или идентификаторов. · идентификатор процесса никак не связан с именем программы, выполняемой процессом. Существуют 2 метода организации параллельных программ, в которых порождающий и порожденный процессы должны выполнять различные задачи. 1) Порожденный процесс выполняет ту же программу, что и порожденный процесс. Однако процессы выполняют различные части программы (см. выше оператор switch). Например, порожденный процесс выполняет только коды для альтернативы с меткой case, а порожденный процесс - только коды для альтернативы с меткой default. Этот метод приводит к нерациональному использованию памяти, так как в ней содержатся коды программы, которые не будут выполняться. Более того, использование такого метода может привести к непредсказуемым ошибкам, так как порождающий, так и порожденный процессы могут изменять данные одного и того же файла и выполнять операции чтения и записи с одним и тем же каналом. 2). Порождающий процесс продолжает выполнение исходной программы, а порожденный процесс выполняет другую программу, которая перекрывается с исходной. Достоинство второго метода состоит в том, что он позволяет независимо написанным программам выполняться параллельно и в то же время взаимодействовать друг с другом в достижении общей цели. Сигналы. Система прерываний процесса. Сигналы ОС Unix. Сигналы Операционная среда, создаваемая ядром Unix, имитирует для каждого процесса систему прерываний. Сигналы Unix – средство, с помощью которого ядро или какой-либо процесс могут уведомлять определенный процесс о наступлении того или иного события. Получив сигнал, процесс обязан предпринять соответствующие действия. (В некотором смысле сигналы соответствуют прерываниям в MS-DOS). К типичным событиям, которые могут заставить процесс принять сигнал, относятся: ·аппаратные прерывания, например ввод с клавиатуры или поступления данных с последовательного порта; ·нарушение нормального выполнения программы; ·тайм-аут; ·сбой оборудования; ·попытка выполнить недопустимую команду; выход из порожденного процесса. Некоторые сигналы могут перехватываться выполняющимся процессом; при этом вместо выполнения действия, предусмотренного по умолчанию, вызывается процедура обработки сигнала, заданная пользователем. Процесс также может перехватывать сигнал и продолжать нормальную обработку данных. Ряд сигналов нельзя перехватить; они обрабатываются стандартными программами (обычно это приводит к прекращению выполнения процесса, принявшего сигнал). В различных версиях Unix определены 30-40 сигналов. Некоторые из этих сигналов приводятся ниже.
Сигналы могут вырабатываться синхронно, т.е. как результат работы самого процесса, а могут быть направлены процессу другим процессом, т.е. вырабатываться асинхронно. Синхронные сигналы чаще всего приходят от системы прерываний процесса и свидетельствуют о действиях процесса, блокируемых аппаратурой (сигналы 4-8, 10, 11). Асинхронные сигналы возникают при использовании системного вызова kill() или команды kill. По умолчанию ядро Unix обрабатывает стандартную реакцию на сигнал, которая сводится к завершению процесса. Иными словами, если возникает сигнал, то процесс завершается. Стандартная реакция на сигнал предусматривает завершение процесса, которому предназначался сигнал.
|
||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2016-08-16; просмотров: 532; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |