Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Н.В. Вдовикина, А.В. Казунин, И.В. Машечкин, А.Н. Техехин - Системное программное обеспечение - взаимодействие процессов

Н.В. Вдовикина, А.В. Казунин, И.В. Машечкин, А.Н. Техехин - Системное программное обеспечение - взаимодействие процессов, страница 10

PDF-файл Н.В. Вдовикина, А.В. Казунин, И.В. Машечкин, А.Н. Техехин - Системное программное обеспечение - взаимодействие процессов, страница 10 Практика расчётов на ПЭВМ (38661): Книга - 3 семестрН.В. Вдовикина, А.В. Казунин, И.В. Машечкин, А.Н. Техехин - Системное программное обеспечение - взаимодействие процессов: Практика расчётов на ПЭВМ -2019-05-08СтудИзба

Описание файла

PDF-файл из архива "Н.В. Вдовикина, А.В. Казунин, И.В. Машечкин, А.Н. Техехин - Системное программное обеспечение - взаимодействие процессов", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 10 страницы из PDF

Далее процесспереходит в состоянии зомби, а затем уничтожается.планирование процессовfork()СозданГотов квыполнениюочередь готовыхпроцессовРодительвызывает wait()ЗомбиВыполняетсяВ режиме ядраВ пользовательскомрежимевнешнее событиеexit()системный вызов;прерываниеБлокированожидает внешнегособытияРис. 12 Жизненный цикл процесса в ОС UNIX.4.7 Начальная загрузка.процессов.ФормированиеОи1Рассмотрим подробнее, что происходит в момент начальнойзагрузки OC UNIX. Начальная загрузка – это загрузка ядра системыв основную память и ее запуск.

Нулевой блок каждой файловойсистемы предназначен длязаписи короткой программы,выполняющей начальную загрузку. Начальная загрузка выполняетсяв несколько этапов.1.Аппаратный загрузчик читает нулевой блок системногоустройства.2.После чтения этой программы она выполняется, т.е. ищетсяи считывается в память файл /unix, расположенный в корневомкаталоге и который содержит код ядра системы.3.Запускается на исполнение этот файл.В самом начале ядром выполняются определенные действияпо инициализации системы, а именно, устанавливаются системныечасы (для генерации прерываний), формируется диспетчер памяти,формируютсязначения некоторых структур данных (наборыбуферов блоков, буфера индексных дескрипторов) и ряд других. Поокончании этих действий происходит инициализация процесса сномером "0".

По понятным причинам для этого невозможноиспользовать методы порождения процессов, изложенные выше, т.е.с использованием функций fork() и exec(). При инициализации56этого процесса резервируется память под его контекст иформируется нулевая запись в таблице процессов. Основнымиотличиями нулевого процесса являются следующие моменты:- Данный процесс не имеет кодового сегмента , этопросто структура данных, используемая ядром ипроцессом его называют потому, что онкаталогизирован в таблице процессов.- Он является чисто системным процессом, т.е.существует в течении всего времени работы системыи считается, что он активен, когда работает ядро ОС.Далее ядро копирует "0" процесс и создает "1" процесс.Алгоритм создания этого процесса напоминает стандартнуюпроцедуру, хотя и носит упрощенный характер.

Сначала процесс"1" представляет собой полную копию процесса "0" , т.е. у него нетобласти кода. Далее происходит увеличение его размера и во вновьсозданную кодовую область копируется программа, реализующаясистемный вызов exec(), необходимый для выполнения программы/etc/init.На этом завершается подготовка первых двухпроцессов. Первый из них представляет собой структуру данных,при помощи которой ядро организует мультипрограммный режим иуправление процессами.

Второй – это уже подобие реальногопроцесса. Далее ОС переходит к выполнению программ диспетчера.Диспетчер наделен обычными функциями и на первом этапе у негонет выбора – он запускает exec(), который заменит командыпроцесса "1" кодом, содержащимся в файле /etc/init.Получившийся процесс, называемый init, призван настраиватьструктуры процессов системы. Далее он подключает интерпретаторкоманд к системной консоли. Так возникает однопользовательскийрежим, так как консоль регистрируется с корневыми привилегиямии доступ по каким-либо другим линиям связи невозможен. Привыходе из однопользовательского режима init создаетмногопользовательскую среду. С этой целью для каждого активногоканала связи, т.е.

каждого терминала, init создает отдельныйпроцесс, выполняющий команду getty. Эта программа ожидаетвхода в систему кого-либо по каналу связи. Далее, используясистемный вызов exec(), getty передает управление программеlogin, проверяющей пароль. Во время работы ОС процесс initожидает завершения одного из порожденных им процессов (т.е.окончания сессии работы с системой), после чего он активизируетсяи создает для соответствующего терминала новый процесс gettyвзамен завершившегося . Таким образом, процесс init57поддерживает многопользовательскую структуру во времяфункционирования системы.

Схема описанного “круговорота”представлена на Рис. 13initinitПосле окончанияработы shellсоздает новый gettyfork()/exec()gettyПечатает login: иожидает входа всистемуневерныйпарольвводпароляокончаниеработыshellВыполняетпользовательскиепрограммыloginЗапрашиваетпароль и проверяетеговерныйпарольРис. 13 Поддержка многопользовательской работы в ОС UNIX.4.8 Планирование процессов в ОС UNIX.Планирование процесса, которому предстоит занять времяцентрального процессора, основывается на понятии приоритета.Каждому процессу сопоставляется некоторое целое числовоезначение его приоритета (в т.ч., возможно, и отрицательное).

Общееправило таково: чем больше числовое значение приоритетапроцесса, тем меньше его приоритет, т.е. наибольшие шансы занятьвремя ЦП будут у того процесса, у которого числовое значениеприоритета минимально.Итак, числовое значение приоритета, или просто приоритетпроцесса - это параметр, который размещен в таблице процессов, ипо значению этого параметра осуществляется выбор очередногопроцесса для продолжения работы и принимается решение оприостановке работающего процесса. Приоритеты системных ипользовательских процессов вычисляются по-разному. Рассмотрим,как это происходит для пользовательского процесса.В общем случае, значение приоритета есть некоторая функцияP_PRI= F(P_NICE, P_CPU)Т.е. в вычислении приоритета P_PRI используются двеизменяемые составляющие - P_NICE и P_CPU (в простейшем случаеэти составляющие просто суммируются).

P_NICE - это58пользовательская составляющая приоритета.Его начальноезначение полагается равным системной константе NZERO, в процессевыполнения процесса P_NICE может модифицироваться системнымвызовом nice(). Аргументом этого системного вызова являетсядобавкактекущемузначению(дляобычного–непривилегированного - процесса эти добавки представляют собойнеотрицательные числа). Значение P_NICE наследуется припорождении процессов, и таким образом, значение приоритета неможет быть понижено при наследовании. Заметим, что изменятьсяP_NICE может только в сторону увеличения значения (до некоторогопредельного значения), таким образом пользователь может снижатьприоритет своих процессов.P_CPU - это системная составляющая. Она формируетсясистемой следующим образом: при прерывании по таймеру черезпредопределенные периоды времени для процесса, занимающегопроцессор в текущий момент, P_CPU увеличивается на единицу.

Также, как и P_NICE, P_CPU имеет некоторое предельное значение. Еслипроцесс будет находиться в состоянии выполнения так долго, чтосоставляющая P_CPU достигнет своего верхнего предела, то значениеP_CPU будет сброшено в нуль, а затем снова начнет расти. Отметим,однако, что такая ситуация весьма маловероятна, так как скореевсего, этот процесс будет выгружен и заменен другим еще до тогомомента, как P_CPU достигнет максимума.Упрощенная формула вычисления приоритета таковаP_PRI= P_USER + P_NICE + P_CPUКонстанта P_USER представляет собой нижний порогприоритета для пользовательских процессов.

Пользовательскаясоставляющая, как правило, учитывается в виде разности P_NICE –N_ZERO, что позволяет принимать в расчет только добавку,введенную посредством системного вызова nice(). Системнаясоставляющая учитывается с некоторым коэффициентом. Посколькунеизвестно, проработал ли до момента прерывания по таймерупроцесс на процессоре полный интервал между прерываниями, тоберется некоторое усреднение.

Суммарно получается следующаяформула для вычисления приоритетаP_PRI= P_USER + P_NICE – NZERO + P_CPU/aЗаметим, что, если приоритет процесса не изменялся припомощи nice(), то единственной изменяемой составляющейприоритета будет P_CPU, причем эта составляющая растет толькодля того процесса, который находится в состоянии выполнения. В59тот момент, когда значение ее станет таково, что в очереди готовыхк выполнению процессов найдется процесс с меньшим значениемприоритета, выполняемый процесс будет приостановлен и замененпроцессом с меньшим значением приоритета.

При этом значениесоставляющей P_CPU для выгруженного процесса сбрасывается внуль.Пример 9. Планирование процессов.Рассмотрим два активных процесса, разделяющих процессор,причем таких, что ни их процессы-предки, ни они сами не менялисоставляющую P_NICE системным вызовом nice().

ТогдаP_NICE=NZERO и оба процесса имеют начальное значение приоритетаP_PRI=P_USER, так как для них обоих в начальный момент P_CPU=0.Пусть прерывание по таймеру происходит через N единиц времени, икаждый раз значение P_CPU увеличивается на единицу, а ввычислениеприоритетасоставляющаяP_CPUвходитскоэффициентом 1/A. Таким образом, дополнительная единица вприоритете процесса, занимающего процессор, «набежит» через Атаймерных интервалов. Значение P_CPU второго процесса остаетсянеизменным, и его приоритет остается постоянным. Через NA единицвремени разница приоритетов составит единицу в пользу второгопроцесса и произойдет смена процессов на процессоре.4.9 Принципы организация свопинга.В системе определенным образом выделяется пространстводля области свопинга. Есть пространство оперативной памяти, вкотором находятся процессы, обрабатываемые системой в режимемультипрограммирования.

Есть область на ВЗУ, предназначеннаядля откачки этих процессов по мере необходимости. Упрощеннаясхема планирования подкачки основывается на использованиинекоторого приоритета, который называется P_TIME и такженаходится в контексте процесса. В этом параметре аккумулируетсявремя пребывания процесса в состоянии мультипрограммнойобработки, или в области свопинга. В поле P_TIME существуетсчётчик выгрузки (outage) и счётчик загрузки (inage).При перемещении процесса из оперативной памяти в областьсвопинга или обратно система обнуляет значение параметра P_TIME.Для загрузки процесса в память из области свопинга выбираетсяпроцесс с максимальным значением P_TIME.

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