Билеты (Graur) (1114774), страница 13

Файл №1114774 Билеты (Graur) (Экзамен) 13 страницаБилеты (Graur) (1114774) страница 132019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 13)

КонтекстВ любой системе, оперирующей понятием процесс, существует системноориентированное определение процесса (определение, учитывающее конкретныеособенности данной ОС).С точки зрения Unix системно-ориентированное определение процесса:ПроцессОбъект, зарегистрированный втаблице процессов ОСОбъект, порожденный системнымвызовом fork()Рассмотрим данные определения процесса Unix.Процесс в ОС Unix – объект (не надо путать с объектом ООП!!!),зарегистрированный в таблице процессов Unix.Таблица процессовКаждый процесс характеризуется уникальным именем – идентификаторомпроцесса (PID). PID – целое число от 0 до некоторого предельного значения,определяющего максимальное число процессов, существующих в системеодновременно.Будем использовать термины 0й процесс, 1й процесс, 125й процесс, это означает,что речь идет о процессах с PID = 0, 1, 125.

0й процесс в системе ассоциируется сработой ядра Unix. С точки зрения организации данных PID – номер строки втаблице, в которой размещена запись о процессе.Контекст процессаСодержимое записи таблицы процессов позволяет получить контекст процесса(часть данных контекста размещается непосредственно в записи таблицыпроцессов, на оставшуюся часть контекста имеются прямые или косвенные ссылки,также размещенные в записи таблицы процессов).С точки зрения логической структуры контекст процесса Unix состоит из: пользовательской составляющей или тела процесса (иногда используетсяпользовательский контекст) аппаратной составляющей (иногда используется аппаратный контекст) системной составляющей ОС Unix (иногда – системный контекст)Иногда два последних компонента объединяют, в этом случае используется терминобщесистемная составляющая контекста.Тело процесса состоит из сегмента кода и сегмента данных.Сегмент кода содержит машинные команды и неизменяемые константысоответствующей процессу программы.Сегмент данных – содержит данные, динамически изменяемые в ходе выполнениякода процесса.

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

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

д.).Обращаем внимание, что аппаратная составляющая имеет смысл только дляпроцессов, находящихся в состоянии выполнения. Для процессов, находящихся вдругих состояниях содержимое составляющей не определено.Системная составляющая.В системной составляющей контекста процесса содержатся различные атрибутыпроцесса, такие как:- идентификатор родительского процесса;- текущее состояние процесса;- приоритет процесса;- реальный идентификатор пользователя-владельца (идентификаторпользователя, сформировавшего процесс);- эффективный идентификатор пользователя-владельца (идентификаторпользователя, по которому определяются права доступа процесса кфайловой системе);- реальный идентификатор группы, к которой принадлежит владелец(идентификатор группы к которой принадлежит пользователь,сформировавший процесс);- эффективный идентификатор группы, к которой принадлежит владелец(идентификатор группы «эффективного» пользователя, по которомуопределяются права доступа процесса к файловой системе);- список областей памяти;-таблица открытых файлов процесса;информация о том, какая реакция установлена на тот или иной сигнал(аппарат сигналов позволяет передавать воздействия от ядра системыпроцессу и от процесса к процессу);информация о сигналах, ожидающих доставки в данный процесс;сохраненные значения аппаратной составляющей (когда выполнениепроцесса приостановлено).Рассмотрим второе определение процесса Unix.Процесс в ОС Unix – это объект, порожденный системным вызовом fork().Данный системный вызов является единственным стандартным средствомпорождения процессов в системе Unix.

Ниже рассмотрим возможности данногосистемного вызова подробнее.Аппарат системных вызов в OC UNIX.Привилегированный и обычный режим(есть набор инструкций, доступный толькоиз привил.)Чтобы работать в с ресурсами ВС – переход в привел. Системныевызовы, предоставляемые ОС UNIX. К интересующим нас вызовам относятсявызовы- для создания процесса;- для организации ввода вывода;- для решения задач управления;- для операции координации процессов;- для установки параметров системы.Отметим некоторые общие моменты, связанные с работой системныхвызовов.Большая часть системных вызовов определены как функции, возвращающие целоезначение, при этом при нормальном завершении системный вызов возвращает 0, апри неудачном завершении -14.

При этом код ошибки можно выяснить, анализируязначение внешней переменной errno, определенной в заголовочном файле<errno.h>.В случае, если выполнение системного вызова прервано сигналом, поведение ОСзависит от конкретной реализации. Например, в BSD UNIX ядро автоматическиперезапускает системный вызов после его прерывания сигналом, и таким образом,внешне никакого различия с нормальным выполнением системного вызова нет.Стандарт POSIX допускает и вариант, когда системный вызов не перезапускается,при этом системный вызов вернет –1, а в переменной errno устанавливаетсязначение EINTR, сигнализирующее о данной ситуации.4БИЛЕТ 24Базовые средства организации и управленияпроцессамиДля порождения новых процессов в UNIX существует единая схема, с помощьюкоторой создаются все процессы, существующие в работающем экземпляре ОСUNIX, за исключением первых двух процессов (0-го и 1-го).Для создания нового процесса в операционной системе UNIX используетсясистемный вызов fork(), в результате в таблицу процессов заносится новая запись,и порожденный процесс получает свой уникальный идентификатор.

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

По умолчанию открытые в«отце» файлы можно передавать «потомкам», но можно изменитьзначение этого параметра и блокировать передачу открытых впроцессе-отце файлов.); способы обработки сигналов; разрешение переустановки эффективного идентификаторапользователя; разделяемые ресурсы процесса-отца; текущий рабочий каталог и домашний каталоги и т.д.По завершении системного вызова fork() каждый из процессов –родительский и порожденный – получив управление, продолжат выполнение содной и той же инструкции одной и той же программы, а именно с той точки, гдепроисходит возврат из системного вызова fork(). Вызов fork() в случае удачногозавершения возвращает сыновнему процессу значение 0, а родительскому PIDпорожденного процесса.

Это принципиально важно для различения сыновнего иродительского процессов, так как сегменты кода у них идентичны. Таким образом,у программиста имеется возможность разделить путь выполнения инструкций вэтих процессах.В случае неудачного завершения, т.е. если сыновний процесс не былпорожден, системный вызов fork() возвращает –1, код ошибки устанавливается впеременной errno.Пример.Программа создает два процесса – процесс-предок распечатывает заглавные буквы,а процесс-потомок строчные.int main(int argc, char **argv){char ch, first, last;int pid;if((pid=fork())>0){/*процесс-предок*/first =’A’;last =’Z’;}else{/*процесс-потомок*/first =’a’;last =’z’;}for (ch = first; ch <= last; ch++){write(1,&ch,1);}_exit(0);}Механизм замены тела процесса.Семейство системных вызовов exec() производит замену тела вызывающегопроцесса, после чего данный процесс начинает выполнять другую программу,передавая управление на точку ее входа. Возврат к первоначальной программепроисходит только в случае ошибки при обращении к exec() , т.е.

если фактическойзамены тела процесса не произошло.Заметим, что выполнение “нового” тела происходит в рамках уже существующегопроцесса, т.е. после вызова exec() сохраняется идентификатор процесса, иидентификатор родительского процесса, таблица дескрипторов файлов, приоритет,и большая часть других атрибутов процесса. Фактически происходит заменасегмента кода и сегмента данных. Изменяются следующие атрибуты процесса:- режимы обработки сигналов: для сигналов, которые перехватывались,после замены тела процесса будет установлена обработка по умолчанию,т.к.

Характеристики

Тип файла
PDF-файл
Размер
1,67 Mb
Материал
Высшее учебное заведение

Список файлов ответов (шпаргалок)

Экзамен
2013-2014
Билеты
Билеты (ответы)
Варианты прошлых лет (в основном_ письменная часть)
Вопросы экзаменационного теормина прошлых лет
Собранное людьми
Оси от Влада (вроде как там дубликаты файлов ниже)
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее