Главная » Просмотр файлов » А. Робачевский - Операционная система UNIX

А. Робачевский - Операционная система UNIX (1114671), страница 10

Файл №1114671 А. Робачевский - Операционная система UNIX (А. Робачевский - Операционная система UNIX) 10 страницаА. Робачевский - Операционная система UNIX (1114671) страница 102019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Большую часть времени демоны ожидают пока тот или инойпроцесс запросит определенную услугу, например, доступ к файловомуархиву или печать документа.Прикладные процессыК прикладным процессам относятся все остальные процессы, выполняю!щиеся в системе. Как правило, это процессы, порожденные в рамках поль!зовательского сеанса работы. С такими процессами вы будете сталкиватьсячаще всего. Например, запуск команды ls(l) породит соответствующий про!цесс этого типа.

Важнейшим пользовательским процессом является основ!ной командный интерпретатор (login shell), который обеспечивает вашу ра!боту в UNIX. Он запускается сразу же после вашей регистрации в системе, азавершение работы login shell приводит к отключению от системы.Пользовательские процессы могут выполняться как в интерактивном, таки в фоновом режиме, но в любом случае время их жизни (и выполнения)ограничено сеансом работы пользователя.

При выходе из системы всепользовательские процессы будут уничтожены.Интерактивные процессы монопольно владеют терминалом, и пока такойпроцесс не завершит свое выполнение, пользователь не сможет работать сдругимиВы сможете работать с другими приложениями, если в функции интерактивного процессавходит запуск на выполнение других программ. Примером такой задачи является команд!ный интерпретатор shell, который считывает пользовательский ввод и запускает соответст!вующие задачи. Более типичным в данном контексте является процесс, порожденный ко!мандойПока ps(l) не завершит работу, вы не сможете вводить команды shell.www.books-shop.comПроцессыАтрибуты процессаПроцесс в UNIX имеет несколько атрибутов, позволяющих операционнойсистеме эффективно управлять его работой, важнейшие из которых рас!смотрены ниже.Идентификатор процесса Process IDКаждый процесс имеет уникальный идентификатор PID, позволяющийядру системы различать процессы.

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

Когда процесс завершает свою работу,ядро освобождает занятый им идентификатор.Идентификатор родительского процесса Parent Process IDИдентификатор процесса, породившего данный процесс.Приоритет процесса (Nice Number)Относительный приоритет процесса, учитываемый планировщиком приопределении очередности запуска. Фактическое же распределение процес!сорных ресурсов определяется приоритетом выполнения, зависящим от не!скольких факторов, в частности от заданного относительного приоритета.Относительный приоритет не изменяется системой на всем протяжениижизни процесса (хотя может быть изменен пользователем или админист!ратором) в отличие от приоритета выполнения, динамически обновляе!мого ядром.Терминальная линия (TTY)Терминал или псевдотерминал, ассоциированный с процессом, если такойсуществует. Процессы!демоны не имеют ассоциированного терминала.Реальный (RID) и эффективный (EUID) идентификаторы пользователяРеальным идентификатором пользователя данного процесса являетсяидентификатор пользователя, запустившего процесс.

Эффективный иден!тификатор служит для определения прав доступа процесса к системнымресурсам (в первую очередь к ресурсам файловой системы). Обычно ре!альный и эффективный идентификаторы эквивалентны, т. е. процесс име!ет в системе те же права, что и пользователь, запустивший его. Однакосуществует возможность задать процессу более широкие права, чем праваwww.books-shop.comГлава 1.42в операционнойUNIXпользователя путем установки флага SUID, когда эффективному иденти!фикатору присваивается значение идентификатора владельца исполняе!мого файла (например, администратора).Реальный (RGID) и эффективный (EGID) идентификаторы группыРеальный идентификатор группы равен идентификатору первичной илитекущей группы пользователя, запустившего процесс.

Эффективный иден!тификатор служит для определения прав доступа к системным ресурсам поклассу доступа группы. Так же как и для эффективного идентификаторапользователя, возможна его установка равным идентификатору группывладельца исполняемого файла (флаг SGID).Команда ps(l) (process status) позволяет вывести список процессов, выпол!няющихся в системе, и их атрибуты:$ PSrootrootrootrootrootfedfedfedef |head 20С000100200300106273110314304035210512TTYDecDecDecDecDecDecDec171717171717177TIME:000::010:97;9:010::270:0::0199pts/3pts/4pageoutbdemiclockБолее подробное описание полей вывода командыразделе "Основные утилиты UNIX".приведено далее вЖизненный путь процессаПроцесс в UNIX создается системным вызовомПроцесс, сделав!ший вызов fork(2) называется родительским, а вновь созданный процесс —дочерним.

Новый процесс является точной копией породившего его про!цесса. Как это ни удивительно, но новый процесс имеет те же инструкциии данные, что и его родитель. Более того, выполнение родительского идочернего процесса начнется с одной и той же инструкции, следующей заfork(2). Единственно, чем они различаются — это идентификато!ром процесса PID.

Каждый процесс имеет одного родителя, но можетиметь несколько дочерних процессов.Для запуска задачи, т. е. для загрузки новой программы, процесс долженвыполнить системный вызов ехес(2). При этом новый процесс не порож!дается, а исполняемый код процесса полностью замещается кодом запус!каемой программы.

Тем не менее окружение новой программы во многомсохраняется, в частности сохраняются значения переменных окружения,назначения стандартных потоков ввода/вывода, вывода сообщений обошибках, а также приоритет процесса.www.books-shop.com43ПроцессыВ UNIX запуск на выполнение новой программы часто связан с порожде!нием нового процесса, таким образом сначала процесс выполняет вызовfork(2), порождая дочерний процесс, который затем выполняетполностью замещаясь новой программой.Рассмотрим эту схему на примере.Допустим, пользователь, работая в командном режиме (в командном ин!терпретаторе shell) запускает командуТекущий процесс (shell) делаетвызов fork(2), порождая вторую копию shell.

В свою очередь, порожденныйshell вызывает ехес(2), указывая в качестве параметра имя исполняемогофайла, образ которого необходимо загрузить в память вместо кода shell.Код ls(l) замещает код порожденного shell, и утилита ls(l) начинает вы!полняться. По завершении работы ls(l) созданный процесс "умирает".Пользователь вновь возвращается в командный режим.

Описанный про!цесс представлен на рис. 1.5. Мы также проиллюстрируем работу команд!ного интерпретатора в примере, приведенном в главе 2.Рис. 1.5.Созданиепроцесса и запуск про%граммыЕсли сделать "отпечаток" выполняемых процессов, например командойps(l), между указанными стадиями, результат был бы следующим:Пользователь работает в командном режиме:UIDPID745PPID1С10STIME10:11:34TTYTIME0:01CMDwww.books-shop.com44Глава 1. Работа в операционной системе UNIXПользователь запустил команду ls(l), и shell произвел вызовUIDPID745802PPID1745С1014TTY10:11:3411:00:00TIME0:010:00shshПорожденный shell произвел вызовUIDuserluserlPID745802PPID1745С1012STIME10:11:3411:00:00TTYTIME0:010:00CMDshSTIME10:11:34TTYTIME0:01CMDshПроцесс ls(l) завершил работу:UIDuserlPID745PPID1С10Описанная процедура запуска новой программы называется fork!and!exec.Однако бывают ситуации, когда достаточно одного вызова fork(2) без по!следующего ехес(2).

В этом случае исполняемый код родительского про!цесса должен содержать логическое ветвление для родительского и дочер!негоВсе процессы в UNIX создаются посредством вызова fork(2). Запуск навыполнение новых задач осуществляется либо по схеме fork!and!exec, либос помощью ехес(2). "Прародителем" всех процессов является процессназываемый также распределителем процессов. Если построитьграф "родственных отношений" между процессами, то получится дерево,корнем которого являетсяПоказанные на рис. 1.6 процессы schedиявляются системными и формально не входят в иерархию (онибудут рассматриваться в следующих главах).СигналыСигналы являются способом передачи от одного процесса другому или отядра операционной системы какому!либо процессу уведомления о возник!новении определенного события.

Сигналы можно рассматривать как про!стейшую форму межпроцессного взаимодействия. В то же время сигналыбольше напоминают программные прерывания, — средство, с помощьюкоторого нормальное выполнение процесса может быть прервано. Напри!мер, если процесс производит деление на 0, ядро посылает ему сигналSIGFPE, а при нажатии клавиш прерывания, обычно <Del> или<Ctrl>+<C>, текущему процессу посылается сигнал S I G I N T .Такое ветвление можно организовать на основании значения, возвращаемого системнымДля родительского процесса fork возвращает идентификатор созданногодочернего процесса, а дочерний процесс получает значение, равное 0.

Подробнее эти во!просы будут рассмотрены в главе 2.www.books-shop.com45ПроцессыРис. 1.6. Типичное "дерево" процессов в UNIXДля отправления сигнала служит командаkillгде— номер или символическое название сигнала, a pid — иден!тификатор процесса, которому посылается сигнал. Администратор систе!мы может посылать сигналы любым процессам, обычный же пользовательможет посылать сигналы только процессам, владельцем которых он явля!ется (реальный и эффективный идентификаторы процесса должны совпа!дать с идентификаторомНапример, чтобы послать процес!су, который вы только что запустили в фоновом режиме, сигнал заверше!ния выполненияможно воспользоваться командой:$$ kill $!&Запустим программу в фоновом режимеПо умолчанию команда kill(1) посылает сигнал SIGTERM;переменная $! содержит PID последнего процесса, запу%щенного в фоновом режимеПри получении сигнала процесс имеет три варианта действий для выбора:1.

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

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

Список файлов книги

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