КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Процесс инсталляции и рекомендации
Таким образом, систему Linux можно использовать в любой интрасети для создания в ней ftp-архива, Web-узла и мн.др., так как она работает в многопользовательском и многозадачном режимах и позволяет обеспечить высокий уровень защиты, управляя правами доступа пользователей к ресурсам системы. Кроме того, эта система очень хорошо подходит для реализации различных научных экспериментов, и при установке дополнительного программного обеспечения, позволяет выполнять программы реального времени (обеспечивающие мгновенный отклик на событие), что бывает очень необходимо для реализации эксперимента. Благодаря наличию менеджеров KDE и GNOME (похожих интерфейс Windows 95,98), и офисных пакетов программ таких как ApplixWare и Star Office, работа в операционной системе Linux стала более привлекательной, что позволило ей стать серьезным конкурентом Windows NT и Windows 98, и теперь ее также можно рекомендовать не только для серверных приложений, но и в качестве домашней настольной системы, и для решения офисных задач, связанных с бухгалтерией, документооборотом и т.д. Процесс инсталляции с дистрибутива Red Hat, во многом упрощен, по сравнению с другими дистрибутивами, хотя еще достаточно сложен и неудобен. Он происходит в текстовом режиме и требует выбора и ввода значительного числа параметров. В зависимости от выбора компонентов инсталляция на IP-200МГц может занимать от 40мин до 1часа. Аппаратные требования для Linux: минимальные (рекомендуемые): · Память: 4Мб (32Мб) · Процессор: 80386 (IP-166МГц) или совместимый · Винчестер: 100Мб (600Мб) 4.10. Возможность установки нескольких операционных систем
Иногда, когда несколько пользователей на одном компьютере желают работать в различных ОС или когда какие-либо задачи пользователей не могут быть решены в рамках одной операционной системы, требуется обеспечение работы программ нескольких ОС. Это можно реализовать следующими способами. Многие компьютеры позволяют установить несколько ОС в различные разделы жесткого диска, а потом выбирать определенную из них, с помощью специального мультисистемного загрузчика, во время старта компьютера. Существуют также эмуляторы операционных систем, которые позволяют запускать программы других систем, в рамках данной ОС, как правило, при частичной потери совместимости с ними. Такая эмуляция реализована в Windows 95 и Windows 98, которые позволяют запускать программы DOS. Существуют эмуляторы и для Linux, позволяющие выполнять программы DOS и Windows. Еще одним способом является метод виртуальных машин, который позволяет в рамках одной ОС создать для каждой новой операционной системы свою виртуальную машину и инсталлировать туда соответствующую систему. Такая возможность существует, например, в Linux, которая позволяет с помощью специального программного обеспечения создавать виртуальную машину. Надо отметить, что этот способ позволяет обеспечить более полную совместимость по сравнению с эмуляторами. 5. Процессы и их поддержка в операционной системе
Фундаментальным понятием для изучения работы операционных систем является понятие процессов, как основных динамических объектов, над которыми системы выполняют определенные действия. В этой теме будет дано описание таких объектов, их состояний и свойств, их представление в вычислительных системах, а также рассмотрены операции, которые могут проводиться над ними.
5.1. Понятие процесса
Понятие процесс (process) введено разработчиками ОС с 60-х годов, как программа во время выполнения. Здесь важно понимать, что программа – это всего лишь файл в формате загрузки, сохраняемый на диске, а процесс расположен в памяти на этапе выполнения. Программа в процессе исполнения является динамическим, активным объектом. По ходу ее работы компьютер обрабатывает различные команды и преобразует значения переменных. Для ее выполнения операционная система должна выделить определенное количество оперативной памяти, закрепить за ней определенные устройства ввода-вывода или файлы (откуда должны поступать входные данные и куда нужно доставить полученные результаты), то есть зарезервировать определенные ресурсы вычислительной системы. Их количество и конфигурация могут изменяться с течением времени. Для описания такого активного объектов характеризующегося совокупностью набора исполняющихся команд, ассоциированных с ним ресурсов (выделенная для исполнения память или адресное пространство, стеки, используемые файлы и устройства ввода-вывода и т. д.) и текущим моментом его выполнения (значения регистров, программного счетчика, состояние стека и значения переменных) используется термин процесс. Не существует взаимно однозначного соответствия между процессами и программами, обрабатываемыми вычислительными системами. В некоторых операционных системах для работы программ может организовываться более одного процесса или один и тот же процесс может исполнять последовательно несколько различных программ. Более того, т.к. процесс находится под управлением операционной системы, то в нем может выполняться и часть кода ее ядра (не находящегося в исполняемом файле!).
5.2. Состояния процесса
Из понятия процесса следует, что все, что выполняется в вычислительных системах организовано как набор процессов. Реально на однопроцессорной компьютерной системе в каждый момент времени может исполняться только один процесс. Для мультипрограммных вычислительных систем псевдопараллельная обработка нескольких процессов достигается с помощью переключения процессора с одного процесса на другой. Пока один процесс выполняется, остальные ждут своей очереди на получение процессора. Т.о. для процесса характерен ряд дискретных состояний, причем смену этих состояний могут вызывать различные события. Рассмотрим основные состояния процесса. Для появления в вычислительной системе процесс должен пройти через состояние рождение. При рождении процесс получает в свое распоряжение адресное пространство, в которое загружается программный код процесса; ему выделяются стек и системные ресурсы; устанавливается начальное значение программного счетчика этого процесса и т. д. Родившийся процесс переводится в состояние готовность. Оно означает, что процесс может сразу использовать центральный процессор, предоставленный в его распоряжение. Операционная система, пользуясь каким-либо алгоритмом планирования, выбирает один из готовых процессов и переводит его в состояние выполнения. Процесс находится в состоянии выполнения, если в данный момент ему выделен центральный процессор (ЦП). В этом состоянии происходит непосредственное выполнение программного кода процесса. Покинуть это состояние процесс может по трем причинам: · он заканчивает свою деятельность и попадает в состояние закончил выполнение; · он не может продолжать свою работу, пока не произойдет некоторое событие (например, завершится операции ввода-вывода), и операционная система переводит его в состояние ожидания; · в результате возникновения прерывания в вычислительной системе (например, прерывания от таймера по истечении дозволенного интервала времени выполнения процесса) его возвращают в состояние готовность. Рис.5.1. Диаграмма состояний процесса, принятая в курсе В конкретных операционных системах состояния процесса могут быть еще более детализированы, могут появиться некоторые новые варианты переходов из состояния в состояние. Так, например, модель состояний процессов для операционной системы Windows NT содержит 7 различных состояний, а для операционной системы UNIX – 9. Тем не менее, в принципе, все операционные системы подчиняются изложенной выше модели. 5.3. Операции над процессами и связанные с ними понятия
5.3.1. Набор операций
Процесс не может сам перейти из одного состояния в другое. Изменением состояния процессов занимается операционная система, совершая операции над ними. Количество таких операций в нашей модели пока совпадает с количеством стрелок на диаграмме состояний. Удобно объединить их в три пары: · создание процесса – завершение процесса; · приостановка процесса (перевод из состояния исполнение в состояние готовность) – запуск процесса (перевод из состояния готовность в состояние исполнение); · блокирование процесса (перевод из состояния исполнение в состояние ожидание) – разблокирование процесса (перевод из состояния ожидание в состояние готовность). В дальнейшем, когда мы будем говорить об алгоритмах планирования, в нашей модели появится еще одна операция, не имеющая парной: изменение приоритета процесса. Операции создания и завершения процесса являются одноразовыми, так как применяются к процессу не более одного раза (некоторые системные процессы никогда не завершаются при работе вычислительной системы). Все остальные операции, связанные с изменением состояния процессов, будь то запуск или блокировка, как правило, являются многоразовыми. Рассмотрим подробнее, как операционная система выполняет операции над процессами.
5.3.2. Блок управления процессом и контекст процесса (идентификация и группирование процессов) Блок управления процессом (РСВ – process control block) – это объект, который определяет процесс для операционной системы и является структурой данных, сосредотачивающей всю ключевую информацию о процессе: · состояние, в котором находится процесс; · программный счетчик процесса или, другими словами, адрес команды, которая должна быть выполнена для него следующей; · содержимое регистров процессора; · данные, необходимые для планирования использования процессора и управления памятью (приоритет процесса, размер и расположение адресного пространства и т. д.); · учетные данные (идентификационный номер процесса, какой пользователь инициировал его работу, общее время использования процессора данным процессом и т. д.); · информацию об устройствах ввода-вывода, связанных с процессом (например, какие устройства закреплены за процессом, таблицу открытых файлов). Конкретный ее состав и строение зависят от конкретной операционной системы. Во многих операционных системах информация, характеризующая процесс, хранится не в одной, а в нескольких связанных структурах данных. Информация, содержащаяся в PCB, называется контекстом процесса. В любой момент времени она полностью характеризует процесс. В нем выделяют регистровым контекстом процесса удобно для дальнейшего изложения разделить на две части. Содержимое всех регистров процессора (включая значение программного счетчика) будем называть регистровым контекстом процесса, а все остальное – системным контекстом процесса. Знания регистрового и системного контекстов процесса достаточно для того, чтобы управлять его поведением в операционной системе, совершая над ним операции. Однако этого недостаточно, чтобы полностью характеризовать процесс. Операционную систему не интересует, какими именно вычислениями занимается процесс, т. е. какой код и какие данные находятся в его адресном пространстве. С точки зрения пользователя, наоборот, наибольший интерес представляет содержимое адресного пространства процесса, возможно наряду с регистровым контекстом, определяющее последовательность преобразования данных и полученные результаты. Код и данные, находящиеся в адресном пространстве процесса, будем называть его пользовательским контекстом. Совокупность регистрового, системного и пользовательского контекстов процесса для краткости принято называть просто контекстом процесса. В любой момент времени процесс полностью характеризуется своим контекстом. 5.3.3. Одноразовые операции
Любая операционная система, поддерживающая концепцию процессов, должна обладать средствами для их создания и завершения. В очень простых системах (например, в системах, спроектированных для работы только одного конкретного приложения) все процессы могут быть порождены на этапе старта системы. Более сложные операционные системы создают процессы динамически, по мере необходимости. Инициатором рождения нового процесса после старта операционной системы может выступить либо процесс пользователя, совершивший специальный системный вызов, либо сама операционная система, то есть, в конечном итоге, тоже некоторый процесс. Процесс, инициировавший создание нового процесса, принято называть процессом-родителем (parent process), а вновь созданный - процессом наследником (child process). Наследники могут в свою очередь, порождать новых наследников и т. д., образуя, в общем случае, внутри системы набор генеалогических деревьев процессов - генеалогический лес (рис.5.2).
Рис.5.2. Упрощенный генеалогический лес процессов Стрелочка означает отношение родитель-ребенок. Следует отметить, что все пользовательские процессы вместе с некоторыми процессами операционной системы принадлежат к одному и тому же дереву леса. В ряде вычислительных систем лес вообще вырождается в одно такое дерево. При рождении процесса система заводит новый PCB с состоянием процесса рождение и начинает его заполнение. Новый процесс получает свой собственный уникальный идентификационный номер. Поскольку для хранения идентификационного номера процесса в операционной системе отводится ограниченное количество бит, то для соблюдения уникальности номеров количество одновременно присутствующих в ней процессов должно быть ограничено. После завершения процесса его освободившийся идентификационный номер может быть повторно использован для другого процесса. Обычно для выполнения своих функций процесс-наследник требует определенных ресурсов: памяти, файлов, устройств ввода-вывода и т. д. Существует два подхода к их выделению. Новый процесс может получить в свое пользование некоторую часть родительских ресурсов, разделяя права на них с процессом-родителем и другими процессами-наследниками, или может получить свои ресурсы непосредственно от операционной системы. Информация о выделенных ресурсах заносится в PCB. После наделения процесса-наследника ресурсами необходимо занести в его адресное пространство программный код, значения данных, установить программный счетчик. Здесь также возможны два решения. В первом случае процесс-ребенок становится дубликатом процесса-родителя по регистровому и пользовательскому контекстам, при этом должен существовать способ определения кто для кого из процессов-двойников является родителем. Во втором случае процесс-ребенок загружается новой программой из какого-либо файла. Операционная система UNIX разрешает порождение процесса только первым способом; для запуска новой программы необходимо сначала создать копию процесса-родителя, а затем процесс-ребенок должен заменить свой пользовательский контекст с помощью специального системного вызова. Операционные системы VAX/VMS и WINDOWS NT допускают только второе решение. Порождение нового процесса как дубликата процесса-родителя приводит к возможности существования программ (т. е. исполняемых файлов), для работы которых организуется более одного процесса. Возможность замены пользовательского контекста процесса по ходу его работы (т. е. загрузки для исполнения новой программы) приводит к тому, что в рамках одного и того же процесса могут быть последовательно выполнены несколько различных программ. После того как процесс наделен содержанием, в PCB дописывается оставшаяся информация и состояние нового процесса изменяется на готовность. Осталось сказать несколько слов о том, как ведут себя процессы-родители. После рождения процессов-наследников процесс-родитель может продолжать свое выполнение одновременно с выполнением процесса-наследника, а может ожидать завершения работы некоторых или всех своих наследников. Мы не будем в деталях останавливаться на причинах, которые могут привести к окончанию жизненного цикла процесса. После того, как процесс завершил свою работу, операционная система переводит его в состояние закончил исполнение и освобождает все ассоциированные с ним ресурсы, делая соответствующие записи в блоке управления процессом. При этом сам PCB не уничтожается, а остается в системе еще некоторое время. Это связано с тем, что процесс-родитель после завершения процесса-наследника может запросить операционную систему о причине произошедшей смерти порожденного им процесса и/или статистическую информацию об его работе. Подобная информация сохраняется в PCB мертвого процесса до запроса процесса-родителя или до конца его деятельности, после чего все следы умершего процесса окончательно исчезают из системы. Например, в операционной системе UNIX процессы, находящиеся в состоянии закончил исполнение, принято называть процессами зомби. Следует отметить, что в ряде операционных систем (например, в VAX/VMS) гибель процесса-родителя приводит к завершению работы всех его наследников. В других операционных системах (например, в UNIX) процессы-наследники продолжают свое существование и после окончания работы процесса-родителя. При этом возникает необходимость изменения информации в PCB процессов-наследников о породившем их процессе для того, чтобы генеалогический лес процессов оставался целостным. Рассмотрим следующий пример. Пусть процесс с номером 2515 был порожден процессом с номером 2001 и после завершения его работы остается в вычислительной системе неограниченно долго. Тогда, не исключено, что номер 2001 будет использован операционной системой повторно для совсем другого процесса. Если не изменить информацию о процессе-родителе для процесса 2515, то генеалогический лес процессов окажется некорректным – процесс 2515 будет считать своим родителем новый процесс 2001, а процесс 2001 будет открещиваться от нежданного потомка. Как правило, осиротевшие процессы усыновляются одним из системных процессов, который порождается при старте операционной системы, и функционирует все время, пока она работает.
5.3.4. Многоразовые операции
Одноразовые операции приводят к изменению количества процессов, находящихся под управлением операционной системы, и всегда связаны с выделением или освобождением определенных ресурсов. Многоразовые операции, напротив, не приводят к изменению количества процессов в операционной системе и не обязаны быть связанными с выделением или освобождением ресурсов. Запуск процесса. Из числа процессов, находящихся в состоянии готовность, операционная система выбирает один процесс для последующего исполнения и обеспечивает наличие в оперативной памяти данных, необходимых для его выполнения. Далее состояние процесса изменяется на исполнение, восстанавливаются значения регистров для данного процесса, и управление передается команде, на которую указывает счетчик команд процесса. Все данные, необходимые для этого восстановления контекста, извлекаются из PCB процесса. Приостановка процесса. Работа процесса, находящегося в состоянии исполнение, приостанавливается в результате какого-либо прерывания. Процессор автоматически сохраняет счетчик команд и, возможно, один или несколько регистров в стеке исполняемого процесса и передает управление по специальному адресу обработки данного прерывания. На этом деятельность hardware по обработке прерывания завершается. По указанному адресу обычно располагается одна из частей операционной системы. Она сохраняет динамическую часть контекста процесса в его PCB, переводит процесс в состояние готовность и приступает к обработке прерывания, то есть к выполнению определенных действий, связанных с возникшим прерыванием. Блокирование процесса. Процесс блокируется, когда он не может продолжать свою работу, не дождавшись возникновения какого-либо события в вычислительной системе. Для этого он обращается к операционной системе с помощью определенного системного вызова. Операционная система обрабатывает системный вызов (инициализирует операцию ввода-вывода, добавляет процесс в очередь процессов, дожидающихся освобождения устройства или возникновения события, и т. д.) и, при необходимости, сохранив необходимую часть контекста процесса в его PCB, переводит процесс из состояния исполнение в состояние ожидание. Разблокирование процесса. После возникновения в системе какого-либо события, операционная система проверяет: находился ли некоторый процесс в состоянии ожидание для данного события и, если находился, переводит его в состояние готовность, выполняя необходимые действия, связанные с наступлением события (инициализация операции ввода-вывода для очередного ожидающего процесса и т. п.).
5.3.5. Переключение контекста
До сих пор мы рассматривали операции над процессами изолированно, независимо друг от друга. В действительности же деятельность мультипрограммной операционной системы состоит из цепочек операций, выполняемых над различными процессами, и сопровождается переключением процессора с одного процесса на другой. Для примера упрощенно рассмотрим, как в реальности может проистекать операция разблокирования процесса, ожидающего ввода-вывода (рис 5.3).
Рис.5.3. Выполнение операции разблокирования процесса
При исполнении процессором некоторого процесса (на рисунке – процесс 1) возникает прерывание от устройства ввода-вывода, сигнализирующее об окончании операций на устройстве. Над выполняющимся процессом производится операция приостановка. Далее, операционная система разблокирует процесс, инициировавший запрос на ввод-вывод (на рисунке – процесс 2), и осуществляет запуск приостановленного или нового процесса, выбранного при выполнении планирования (на рисунке был выбран разблокированный процесс). Как видим, в результате обработки информации об окончании операции ввода-вывода возможна смена процесса, находящегося в состоянии исполнение. Для корректного переключения процессора с одного процесса на другой необходимо сохранить контекст исполнявшегося процесса и восстановить контекст процесса, на который будет переключен процессор. Такая процедура сохранения/восстановления работоспособности процессов называется переключением контекста. Время, затраченное на переключение контекста, не используется вычислительной системой для совершения полезной работы и представляет собой накладные расходы, снижающие производительность системы. Оно меняется от машины к машине и обычно находится в диапазоне от 1 до 1000 микросекунд. Существенно сократить накладные расходы в современных операционных системах позволяет расширенная модель процессов, включающая в себя понятие threads of execution (нити исполнения или просто нити). Этому понятию будет посвящена следующая лекция.
Дата добавления: 2014-01-03; Просмотров: 901; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |