Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 360; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.26.4 (0.009 с.) |