Главная страница
Навигация по странице:

  • Windows-подобные ОС. Эволюция систем. Эволюция Windows.

  • Первая эволюция Windows (1985-1995)

  • Вторая эволюция Windows (1995-2012)

  • Принципы организации и структура Windows -подобных ОС. Ядро и основные компоненты Windows -подобных ОС. Файловая структура Windows -подобных ОС.

  • Реестр Windows -подобных ОС. Методы инсталляции и настройки Windows -подобных ОС.

  • Понятие « процесса». Отличие процесса от программы и задания.

  • Понятие « процесса». Состояния процесса.

  • Операции над процессами Блок управления процессом ( Process Control Block ) и контекст процесса. Понятие « процесса».

  • Process Control Block и контекст процесса

  • Блок управления процессом

  • Разблокирование процесса

  • Планирование процессов. Уровни планирования Планирование процессов. Критерии планирования и требования к алгоритмам

  • ОС. Вопросы к экзамену по дисциплине Операционные системы 2019 год


    Скачать 0.54 Mb.
    НазваниеВопросы к экзамену по дисциплине Операционные системы 2019 год
    Дата10.01.2020
    Размер0.54 Mb.
    Формат файлаdocx
    Имя файлаVoprosy_k_ekzamenu_po_distsipline_Operatsionnye_sistemy_2019_god.docx
    ТипВопросы к экзамену
    #103408
    страница2 из 6
    1   2   3   4   5   6

    Подготовка к инсталляции


    Устанавливать Linux можно одним из следующих способов:

    • с локального CD-ROM;

    • с жесткого диска, на который скопирован дистрибутив Linux;

    • с файл-сервера локальной сети по NFS;

    • с другого компьютера в локальной сети через SMB;

    • с удаленного компьютера (в том числе из Интернета) по протоколу FTP;

    • с одного из WWW-серверов Интернета по протоколу HTTP.

    На мой взгляд, наиболее удобен и практичен вариант установки Linux с CD-ROM, тем более, что купить нужный компакт-диск теперь не проблема.

    Прежде чем приступить к инсталляции, соберите (запишите на листе бумаги) всю необходимую информацию о конфигурации вашего компьютера. Если ваш компьютер пока что работает под ОС Windows 95/98, то многое можно найти, щелкнув правой кнопкой мыши по значку My Computer (Мой компьютер), а затем выбрав команду Properties (Свойства). Там можно найти почти всю необходимую информацию. Если чего-то не найдете, придется искать другими способами, вплоть до того, что открыть компьютер и прочитать надписи на самих устройствах.

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

    • BIOS:

      • фирма-производитель;

      • версия.

    • Контроллеры жестких дисков: тип (IDE или SCSI) и объем ваших жестких дисков (если у вас IDE диски, вы должны проверить, что BIOS вашего компьютера обеспечивает доступ к ним в режиме LBA):

      • hda ( Master на 1 контроллере или Primary Master );

      • hdb ( Slave на 1 контроллере или Primary Slave );

      • hdc ( Master на 2 контроллере или Secondary Master );

      • hdd ( Slave на 2 контроллере или Secondary Slave ).

    • фирма-производитель и номер модели SCSI адаптера (если имеется).

    • Объем оперативной памяти (в килобайтах).

    • CD-ROM:

      • тип интерфейса (IDE, SCSI, или иной);

      • для не-IDE, не-SCSI CD-ROM - фирма-производитель и номер модели.

    • Мышь:

      • тип (serial, PS/2, или bus mouse);

      • протокол (Microsoft, Logitech, MouseMan, и т. д.);

      • число кнопок;

      • для мыши на последовательном порту также номер порта, к которому она подсоединена.

    • Адаптер дисплея:

      • фирма-производитель;

      • номер модели (или чипсет, который использован);

      • количество видео-памяти;

    • Монитор:

      • фирма-производитель;

      • номер модели;

      • граничные значения (min, max) частоты вертикальной и горизонтальной развертки (эти данные вы можете найти только в документации на монитор, их Windows не выдает, а между тем они очень важны при настройке графического интерфейса).

    • Если вы собираетесь работать в сети (а UNIX вообще в первую очередь - сетевая ОС), то запишите следующие данные:

      • фирма-производитель и номер модели сетевой карты;

      • ваш IP адрес;

      • сетевое имя вашего компьютера;

      • маска подсети;

      • IP адрес шлюза (gateway IP address);

      • IP адреса серверов (основного и резервных) доменных имен (DNS server);

      • IP адреса серверов WINS (Windows Internet Name Service);

      • имя домена вашей организации.

    • Тип и производитель звуковой карты и игровых контроллеров (если таковые имеются).



    1. Windows-подобные ОС. Эволюция систем.

    Эволюция Windows.Все начиналось с DOS - с простого синего экрана и белых букв. Наверное, и до сих пор эта система осталась самой быстрой и надежной, ведь в ней было максимум связи с аппаратной составляющей и минимум визуальных эффектов. Но это было не слишком-то функционально, потому начали появляться различные версии: первая Windows 1.01, затем «усовершенствованная» Windows 2.03. На первых настольных ПК вскоре стали появляться Windows 95, потом Windows 98. Сильно нашумел Windows Millenium, от которого многого ожидали, а затемWindows Vista, попавшая в то же положение. Windows 7 на сегодня считается достаточно стабильной и удобной для пользователя системой, и с этим сложно не согласиться.

    Рассмотрим 3 основных этапа эволюции Windowsболее подробно:

    Первая эволюция Windows (1985-1995), началась с файлового менеджера (так называемого MS-DOS оболочкой, который был Shell) с разделением на два отдельных окна. Существовал также диспетчер печати и панель управления.

    Первые версии Windows не были полноценными операционными системами, а являлись надстройками к операционной системе MS-DOSи были по сути многофункциональным расширением, добавляя поддержку новых режимов работы процессора, поддержку многозадачности, обеспечивая стандартизациюинтерфейсоваппаратного обеспечения и единообразие дляпользовательских интерфейсовпрограмм. Предоставляли встроенные средстваGDI3иUSERдля созданияграфического интерфейса пользователя. Первые версии Windows вообще состояли из трех модулей - KERNEL, GDI и USER. Первый из них предоставлял вызовы управления памятью, запуском .EXE-файлов и загрузкой .DLL-файлов, второй - графику, третий - окна. Они работали с процессорами начиная с Intel8086.

    К первым версиям Windowsотносят:

    • Windows 1.0(1985);

    • Windows 2.0(1987);

    • Windows 2.1 (Windows 386, 1987) - в системе появилась возможность запуска DOS-приложений в графических окнах, причём каждому приложению предоставлялись полные 640 Кб памяти. Полная поддержка процессора80286. Появилась поддержка процессоров80386.

    • Windows 3.0(1990) - улучшена поддержка процессоров80386и защищённого режима.

    • Windows 3.1(1992) - серьёзно переработанная Windows 3.0; устранены UAE (Unrecoverable Application Errors - фатальные ошибки прикладных программ), добавлен механизмOLE, печать в режимеWYSIWYG(«что видите, то и получите»), шрифтыTrueType, изменёнПроводник (диспетчер файлов), добавленымультимедийныефункции.

    • Windows для рабочих групп (Windows for Workgroups, WfWG) 3.1/3.11 - первая версия ОС семейства с поддержкой локальных сетей. В WfWG 3.11 также испытывались отдельные усовершенствования ядра, применённые позднее в Windows 95.

    Вторая эволюция Windows (1995-2012)

    Вторая эволюция Windows принесла Microsoft самый большой успех. Все основные элементы, которые Microsoft представила в Windows 95 до сих пор остаются фундаментальными частями пользовательского интерфейса даже в Windows 7. Рабочий стол в Windows 95 состоял из Мой компьютер, Сетевое окружение (переименован в «Сетевое окружение» в 2000 году, а потом просто «Сеть» в Windows Vista) и корзина. Второй ключевой элемент пользовательского интерфейса, которая была добавлена в Windows 95, который существует до сих пор и находится на панели задач. В нем находится кнопка Пуск, программы, которые в настоящее время работают и панель задач и часы. На панель задач перенесли быстрый запуск программ, а также переключателя раскладки клавиатуры, концепция не изменилась с Windows 95 до Windows Vista. В Windows 7 впервые дизайн действительно был изменен. Меню Пуск был 3-й основной частью GUI4, которая была добавлена в Windows 95 и существует до сих пор в Windows 7. Хоть, и Пуск на сегодняшний день не похож на простое меню, которым дебютировала в Windows 95, но он все еще содержит те, же концепции, лежащие в нем, чтобы перечислить все программы, документы и настройка компьютера, а также место, где вы может искать файлы, получить помощь и выключить компьютер. В конечном итоге все дополнительные концепции и программы, которые Microsoft купила вместе в Windows 95, в том числе корзины, Windows Explorer, длинные имена файлов (255 знаков вместо 11), дизайн Свернуть, Развернуть / Восстановить и Закрыть кнопки Ctrl+Alt+Del, чтобы закрыть зависшие программы и многое другое все это благодаря Windows 95. Многие вещи менялись в Windows, начиная с 1995 года, но значительных изменений так и не было.

    Говоря о Windowsне стоит забывать об операционных системах семействаWindowsNT. Операционные системы этого семейства в настоящее время работают на процессорах с архитектурамиx86,x64, иItanium,ARM. Ранние версии (до 4.0 включительно) также поддерживали некоторыеRISC-процессоры:Alpha,MIPS, иPower PC. Все операционные системы этого семейства являются полностью 32- или 64- битными операционными системами, и не нуждаются вMS-DOSдаже для загрузки.

    Только в этом семействе представлены операционные системы для серверов. До версии Windows 2000 включительно они выпускались под тем же названием, что и аналогичная версия для рабочих станций, но с добавлением суффикса, например, «Windows NT 4.0 Server» и «Windows 2000 Datacenter Server». Начиная с Windows Server 2003серверные операционные системы называются с добавлением суффикса «Server» и года выпуска. Ниже приведены основные версииWindowsNT:

    • Windows NT 3.1(1993);

    • Windows NT 3.5(1994);

    • Windows NT 3.51(1995);

    • Windows NT 4.0(1996);

    • Windows 2000- Windows NT 5.0 (2000);

    • Windows XP- Windows NT 5.1 (2001);

    • Windows XP 64-bit Edition- Windows NT 5.2 (2003);

    • Windows Server 2003- Windows NT 5.2 (2003);

    • Windows XP Professional x64 Edition- Windows NT 5.2 (2005);

    • Windows Vista -Windows NT 6.0 (2006);

    • Windows Home Server- Windows NT 5.2 (2007);

    • Windows Server 2008 -Windows NT 6.0 (2008);

    • Windows Small Business Server- Windows NT 6.0 (2008);

    • Windows 7 - Windows NT 6.1 (2009);

    • Windows Server 2008 R2- Windows NT 6.1 (2009);

    • Windows Home Server 2011- Windows NT 6.1 (2011);

    • Windows 8 -Windows NT 6.2 (2012);

    • Windows Server 2012 -Windows NT 6.2 (2012);

    • Windows 8.1- Windows NT 6.3 (2013);

    • Windows Server 2012 R2- Windows NT 6.3 (2013).

    В основу семейства Windows NT положено разделение адресных пространств между процессами. Каждый процесс имеет возможность работать с выделенной ему памятью. Однако он не имеет прав для записи в память других процессов, драйверов и системного кода.

    Семейство Windows NT относится к операционным системам с вытесняющей многозадачностью. Разделениепроцессорноговремени между потоками происходит по принципу «карусели».Ядро операционной системывыделяет квант времени (в Windows 2000 квант равен примерно 20 мс) каждому из потоков по очереди при условии, что все потоки имеют одинаковый приоритет. Поток может отказаться от выделенного ему кванта времени. В этом случае система перехватывает у него управление (даже если выделенный квант времени не закончен) и передаёт управление другому потоку. При передаче управления другому потоку система сохраняет состояние всехрегистров процессорав особой структуре в оперативной памяти. Эта структура называетсяконтекстом потока. Сохранение контекста потока достаточно для последующего возобновления его работы.

    Если говорить о третьей эволюции Windows, то следует отметить следующее: недавно у Microsoft был дебют Windows 8, и это сталотретьей эволюцией Windows.Windows8 сохранила как старый стиль Windows 7 (вторая эволюция) оболочку, которую можно назвать классическим рабочим столом. Так же, как Windows 95 был настоящий шаг в сторону от оболочки Windows 3.1 (первая эволюции), от всех тех, менеджеров программ, Windows 8 был сделан реальный шаг в сторону от оболочки Windows 95 (вторая эволюция), от Панели задач, Рабочего стола и меню Пуск.

    1. Принципы организации и структура Windows -подобных ОС.

    2. Ядро и основные компоненты Windows -подобных ОС.

    3. Файловая структура Windows -подобных ОС.

    4. Реестр Windows -подобных ОС.

    5. Методы инсталляции и настройки Windows -подобных ОС.

    Презентация 2.2

    1. Типы и структура сетевых ОС.

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

    Рис. 1.1. Структура сетевой ОС

    В сетевой операционной системе отдельной машины можно выделить несколько частей (рисунок 1.1):

    Средства управления локальными ресурсами компьютера: функции распределения оперативной памяти между процессами, планирования и диспетчеризации процессов, управления процессорами в мультипроцессорных машинах, управления периферийными устройствами и другие функции управления ресурсами локальных ОС.

    Средства предоставления собственных ресурсов и услуг в общее пользование - серверная часть ОС (сервер). Эти средства обеспечивают, например, блокировку файлов и записей, что необходимо для их совместного использования; ведение справочников имен сетевых ресурсов; обработку запросов удаленного доступа к собственной файловой системе и базе данных; управление очередями запросов удаленных пользователей к своим периферийным устройствам.

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

    Коммуникационные средства ОС, с помощью которых происходит обмен сообщениями в сети. Эта часть обеспечивает адресацию и буферизацию сообщений, выбор маршрута передачи сообщения по сети, надежность передачи и т.п., то есть является средством транспортировки сообщений.

    В зависимости от функций, возлагаемых на конкретный компьютер, в его операционной системе может отсутствовать либо клиентская, либо серверная части.

    На практике сложилось несколько подходов к построению сетевых операционных систем

    Первые сетевые ОС представляли собой совокупность существующей локальной ОС и надстроенной над ней сетевой оболочки. При этом в локальную ОС встраивался минимум сетевых функций, необходимых для работы сетевой оболочки, которая выполняла основные сетевые функции. Примером такого подхода является использование на каждой машине сети операционной системы MS DOS (у которой начиная с ее третьей версии появились такие встроенные функции, как блокировка файлов и записей, необходимые для совместного доступа к файлам). Принцип построения сетевых ОС в виде сетевой оболочки над локальной ОС используется и в современных ОС, таких, например, как LANtastic или Personal Ware. Однако более эффективным представляется путь разработки операционных систем, изначально предназначенных для работы в сети. Сетевые функции у ОС такого типа глубоко встроены в основные модули системы, что обеспечивает их логическую стройность, простоту эксплуатации и модификации, а также высокую производительность. Примером такой ОС является система Windows NT фирмы Microsoft, которая за счет встроенности сетевых средств обеспечивает более высокие показатели производительности и защищенности информации по сравнению с сетевой ОС LAN Manager той же фирмы (совместная разработка с IBM), являющейся надстройкой над локальной операционной системой OS/2. В зависимости от того, как распределены функции между компьютерами сети, сетевые операционные системы, а следовательно, и сети делятся на два класса: одноранговые и двухранговые (рисунок 1.4). Последние чаще называют сетями с выделенными серверами.

    Рис. 1.4. (а) - Одноранговая сеть, (б) - Двухранговая сеть

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

    Если выполнение каких-либо серверных функций является основным назначением компьютера (например, предоставление файлов в общее пользование всем остальным пользователям сети или организация совместного использования факса, или предоставление всем пользователям сети возможности запуска на данном компьютере своих приложений), то такой компьютер называется выделенным сервером. В зависимости от того, какой ресурс сервера является разделяемым, он называется файл-сервером, факс-сервером, принт-сервером, сервером приложений и т.д. Очевидно, что на выделенных серверах желательно устанавливать ОС, специально оптимизированные для выполнения тех или иных серверных функций. Поэтому в сетях с выделенными серверами чаще всего используются сетевые операционные системы, в состав которых входит нескольких вариантов ОС, отличающихся возможностями серверных частей. Например, сетевая ОС Novell NetWare имеет серверный вариант, оптимизированный для работы в качестве файл-сервера, а также варианты оболочек для рабочих станций с различными локальными ОС, причем эти оболочки выполняют исключительно функции клиента. Другим примером ОС, ориентированной на построение сети с выделенным сервером, является операционная система Windows NT. В отличие от NetWare, оба варианта данной сетевой ОС - Windows NT Server (для выделенного сервера) и Windows NT Workstation (для рабочей станции) - могут поддерживать функции и клиента и сервера. Но серверный вариант Windows NT имеет больше возможностей для предоставления ресурсов своего компьютера другим пользователям сети, так как может выполнять более широкий набор функций, поддерживает большее количество одновременных соединений с клиентами, реализует централизованное управление сетью, имеет более развитые средства защиты. В одноранговых сетях все компьютеры равны в правах доступа к ресурсам друг друга. Каждый пользователь может по своему желанию объявить какой-либо ресурс своего компьютера разделяемым, после чего другие пользователи могут его эксплуатировать. В таких сетях на всех компьютерах устанавливается одна и та же ОС, которая предоставляет всем компьютерам в сети потенциально равные возможности. Одноранговые сети могут быть построены, например, на базе ОС LANtastic, Personal Ware, Windows for Workgroup, Windows NT Workstation. Одноранговые сети проще в организации и эксплуатации, однако они применяются в основном для объединения небольших групп пользователей, не предъявляющих больших требований к объемам хранимой информации, ее защищенности от несанкционированного доступа и к скорости доступа. При повышенных требованиях к этим характеристикам более подходящими являются двухранговые сети, где сервер лучше решает задачу обслуживания пользователей своими ресурсами, так как его аппаратура и сетевая операционная система специально спроектированы для этой цели.

    1. Понятие «процесса». Отличие процесса от программы и задания.

    Процесс – это совокупность команд выполняемых процессором ЭВМ, с выделением необходимых ресурсов. Программа – совокупность инструкций, данных позволяющая апаратной части эвм выполнять вычисление или функции управления. Отличия процесса от команды в том, что программа это набор инструкций, а процесс это непосредственное их выполнение. Отличия процесса от задания.

    1. Понятие «процесса». Состояния процесса.

    Процесс – это совокупность команд выполняемых процессором ЭВМ, с выделением необходимых ресурсов.

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

    • операционная система прекращает его деятельность;

    • он не может продолжать свою работу, пока не произойдет некоторое событие, и операционная система переводит его в состояние ожидание ;

    • в результате возникновения прерывания в вычислительной системе (например, прерывания от таймера по истечении предусмотренного времени выполнения) его возвращают в состояние готовность.

    Из состояния ожидание процесс попадает в состояние готовность после того, как ожидаемое событие произошло, и он снова может быть выбран для исполнения.

    Наша новая модель хорошо описывает поведение процессов во время их существования, но она не акцентирует внимания на появлении процесса в системе и его исчезновении. Для полноты картины нам необходимо ввести еще два состояния процессоврождение и закончил исполнение (см. рис. 2.3).




    Рис. 2.3. Диаграмма состояний процесса, принятая в курсе

    Теперь для появления в вычислительной системе процесс должен пройти через состояние рождение. При рождении процесс получает в свое распоряжение адресное пространство, в которое загружается программный код процесса ; ему выделяются стек и системные ресурсы; устанавливается начальное значение программного счетчика этого процесса и т. д. Родившийся процесс переводится в состояние готовность. При завершении своей деятельности процесс из состояния исполнение попадает в состояние закончил исполнение.

    В конкретных операционных системах состояния процесса могут быть еще более детализированы, могут появиться некоторые новые варианты переходов из одного состояния в другое. Так, например, модель состояний процессов для операционной системы Windows NT содержит 7 различных состояний, а для операционной системы Unix – 9. Тем не менее, так или иначе все операционные системы подчиняются изложенной выше модели.

    1. Операции над процессами

    2. Блок управления процессом (Process Control Block) и контекст процесса.

    3. Понятие «процесса». Одноразовые операции над процессами

    4. Понятие «процесса». Многоразовые операции над процессами

    Набор операций


    Процесс не может перейти из одного состояния в другое самостоятельно. Изменением состояния процессов занимается операционная система, совершая операции над ними. Количество таких операций в нашей модели пока совпадает с количеством стрелок на диаграмме состояний. Удобно объединить их в три пары:

    • создание процесса – завершение процесса ;

    • приостановка процесса (перевод из состояния исполнение в состояние готовность ) – запуск процесса (перевод из состояния готовность в состояние исполнение );

    • блокирование процесса (перевод из состояния исполнение в состояние ожидание ) – разблокирование процесса (перевод из состояния ожидание в состояние готовность ).

    В дальнейшем, когда мы будем говорить об алгоритмах планирования, в нашей модели появится еще одна операция, не имеющая парной: изменение приоритета процесса.

    Операции создания и завершения процесса являются одноразовыми, так как применяются к процессу не более одного раза (некоторые системные процессы при работе вычислительной системы не завершаются никогда). Все остальные операции, связанные с изменением состояния процессов, будь то запуск или блокировка, как правило, являются многоразовыми. Рассмотрим подробнее, как операционная система выполняет операции над процессами.

    Process Control Block и контекст процесса


    Для того чтобы операционная система могла выполнять операции над процессами, каждый процесс представляется в ней некоторой структурой данных. Эта структура содержит информацию, специфическую для данного процесса:

    • состояние, в котором находится процесс ;

    • программный счетчик процесса или, другими словами, адрес команды, которая должна быть выполнена для него следующей;

    • содержимое регистров процессора;

    • данные, необходимые для планирования использования процессора и управления памятью (приоритет процесса, размер и расположение адресного пространства и т. д.);

    • учетные данные (идентификационный номер процесса, какой пользователь инициировал его работу, общее время использования процессора данным процессом и т. д.);

    • сведения об устройствах ввода-вывода, связанных с процессом (например, какие устройства закреплены за процессом, таблицу открытых файлов).

    Ее состав и строение зависят, конечно, от конкретной операционной системы. Во многих операционных системах информация, характеризующая процесс, хранится не в одной, а в нескольких связанных структурах данных. Эти структуры могут иметь различные наименования, содержать дополнительную информацию или, наоборот, лишь часть описанной информации. Для нас это не имеет значения. Для нас важно лишь то, что для любого процесса, находящегося в вычислительной системе, вся информация, необходимая для совершения операций над ним, доступна операционной системе. Для простоты изложения будем считать, что она хранится в одной структуре данных. Мы будем называть ее PCB (Process Control Block) или блоком управления процессомБлок управления процессом является моделью процесса для операционной системы. Любая операция, производимая операционной системой над процессом, вызывает определенные изменения в PCB . В рамках принятой модели состояний процессов содержимое PCB между операциями остается постоянным.

    Информацию, для хранения которой предназначен блок управления процессом, удобно для дальнейшего изложения разделить на две части. Содержимое всех регистров процессора (включая значение программного счетчика) будем называть регистровым контекстом процесса, а все остальное – системным контекстом процесса. Знания регистрового и системного контекстов процесса достаточно для того, чтобы управлять его работой в операционной системе, совершая над ним операции. Однако этого недостаточно для того, чтобы полностью охарактеризовать процесс. Операционную систему не интересует, какими именно вычислениями занимается процесс, т. е. какой код и какие данные находятся в его адресном пространстве. С точки зрения пользователя, наоборот, наибольший интерес представляет содержимое адресного пространства процесса, возможно, наряду с регистровым контекстом определяющее последовательность преобразования данных и полученные результаты. Код и данные, находящиеся в адресном пространстве процесса, будем называть его пользовательским контекстом. Совокупность регистровогосистемного и пользовательского контекстов процесса для краткости принято называть просто контекстом процесса. В любой момент времени процесс полностью характеризуется своим контекстом.

    Одноразовые операции


    Сложный жизненный путь процесса в компьютере начинается с его рождения. Любая операционная система, поддерживающая концепцию процессов, должна обладать средствами для их создания. В очень простых системах (например, в системах, спроектированных для работы только одного конкретного приложения) все процессы могут быть порождены на этапе старта системы. Более сложные операционные системы создают процессы динамически, по мере необходимости. Инициатором рождения нового процесса после старта операционной системы может выступить либо процесс пользователя, совершивший специальный системный вызов, либо сама операционная система, то есть, в конечном итоге, тоже некоторый процессПроцесс, инициировавший создание нового процесса, принято называть процессом-родителем (parent process), а вновь созданный процесс – процессом-ребенком (child process). Процессы-дети могут в свою очередь порождать новых детей и т. д., образуя, в общем случае, внутри системы набор генеалогических деревьев процессов – генеалогический лес. Пример генеалогического леса изображен на рисунке 2.4. Следует отметить, что все пользовательские процессы вместе с некоторыми процессами операционной системы принадлежат одному и тому же дереву леса. В ряде вычислительных систем лес вообще вырождается в одно такое дерево.




    Рис. 2.4. Упрощенный генеалогический лес процессов. Стрелочка означает отношение родитель–ребенок

    При рождении процесса система заводит новый PCB с состоянием процесса рождение и начинает его заполнять. Новый процесс получает собственный уникальный идентификационный номер. Поскольку для хранения идентификационного номера процесса в операционной системе отводится ограниченное количество битов, для соблюдения уникальности номеров количество одновременно присутствующих в ней процессов должно быть ограничено. После завершения какого-либо процесса его освободившийся идентификационный номер может быть повторно использован для другого процесса.

    Обычно для выполнения своих функций процесс-ребенок требует определенных ресурсов: памяти, файлов, устройств ввода-вывода и т. д. Существует два подхода к их выделению. Новый процесс может получить в свое распоряжение некоторую часть родительских ресурсов, возможно разделяя с процессом-родителем и другими процессами-детьми права на них, или может получить свои ресурсы непосредственно от операционной системы. Информация о выделенных ресурсах заносится в PCB.

    После наделения процесса-ребенка ресурсами необходимо занести в его адресное пространство программный код, значения данных, установить программный счетчик. Здесь также возможны два решения. В первом случае процесс-ребенок становится дубликатом процесса-родителя по регистровому и пользовательскому контекстам, при этом должен существовать способ определения, кто для кого из процессов-двойников является родителем. Во втором случае процесс-ребенок загружается новой программой из какого-либо файла. Операционная система Unix разрешает порождение процесса только первым способом; для запуска новой программы необходимо сначала создать копию процесса-родителя, а затем процесс-ребенок должен заменить свой пользовательский контекст с помощью специального системного вызова. Операционная система VAX/VMS допускает только второе решение. В Windows NT возможны оба варианта (в различных API).

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

    После того как процесс наделен содержанием, в PCB дописывается оставшаяся информация, и состояние нового процесса изменяется на готовность. Осталось сказать несколько слов о том, как ведут себя процессы-родители после рождения процессов-детей. Процесс-родитель может продолжать свое выполнение одновременно с выполнением процесса-ребенка, а может ожидать завершения работы некоторых или всех своих "детей".

    Мы не будем подробно останавливаться на причинах, которые могут привести к завершению жизненного цикла процесса. После того как процесс завершил свою работу, операционная система переводит его в состояние закончил исполнение и освобождает все ассоциированные с ним ресурсы, делая соответствующие записи в блоке управления процессом. При этом сам PCB не уничтожается, а остается в системе еще некоторое время. Это связано с тем, что процесс-родитель после завершения процесса-ребенка может запросить операционную систему о причине "смерти" порожденного им процесса и/или статистическую информацию о его работе. Подобная информация сохраняется в PCB отработавшего процесса до запроса процесса-родителя или до конца его деятельности, после чего все следы завершившегося процесса окончательно исчезают из системы. В операционной системе Unix процессы, находящиеся в состоянии закончил исполнение, принято называть процессами-зомби.

    Следует заметить, что в ряде операционных систем (например, в VAX/VMS) гибель процесса-родителя приводит к завершению работы всех его "детей". В других операционных системах (например, в Unix) процессы-дети продолжают свое существование и после окончания работы процесса-родителя. При этом возникает необходимость изменения информации в PCB процессов-детей о породившем их процессе для того, чтобы генеалогический лес процессов оставался целостным. Рассмотрим следующий пример. Пусть процесс с номером 2515 был порожден процессом с номером 2001 и после завершения его работы остается в вычислительной системе неограниченно долго. Тогда не исключено, что номер 2001 будет использован операционной системой повторно для совсем другого процесса. Если не изменить информацию о процессе-родителе для процесса 2515, то генеалогический лес процессов окажется некорректным – процесс 2515 будет считать своим родителем новый процесс 2001, а процесс 2001 будет открещиваться от нежданного потомка. Как правило, "осиротевшие" процессы "усыновляются" одним из системных процессов, который порождается при старте операционной системы и функционирует все время, пока она работает.

    Многоразовые операции


    Одноразовые операции приводят к изменению количества процессов, находящихся под управлением операционной системы, и всегда связаны с выделением или освобождением определенных ресурсов. Многоразовые операции, напротив, не приводят к изменению количества процессов в операционной системе и не обязаны быть связанными с выделением или освобождением ресурсов.

    В этом разделе мы кратко опишем действия, которые производит операционная система при выполнении многоразовых операций над процессами. Более подробно эти действия будут рассмотрены далее в соответствующих лекциях.

    Запуск процесса. Из числа процессов, находящихся в состоянии готовность, операционная система выбирает один процесс для последующего исполнения. Критерии и алгоритмы такого выбора будут подробно рассмотрены в лекции 3 – "Планирование процессов". Для избранного процесса операционная система обеспечивает наличие в оперативной памяти информации, необходимой для его дальнейшего выполнения. То, как она это делает, будет в деталях описано в лекциях 8-10. Далее состояние процесса изменяется на исполнение , восстанавливаются значения регистров для данного процесса и управление передается команде, на которую указывает счетчик команд процесса. Все данные, необходимые для восстановления контекста, извлекаются из PCB процесса, над которым совершается операция.

    Приостановка процесса. Работа процесса, находящегося в состоянии исполнение, приостанавливается в результате какого-либо прерывания. Процессор автоматически сохраняет счетчик команд и, возможно, один или несколько регистров в стеке исполняемого процесса, а затем передает управление по специальному адресу обработки данного прерывания. На этом деятельность hardware по обработке прерывания завершается. По указанному адресу обычно располагается одна из частей операционной системы. Она сохраняет динамическую часть системного и регистрового контекстов процесса в его PCB, переводит процесс в состояние готовностьи приступает к обработке прерывания, то есть к выполнению определенных действий, связанных с возникшим прерыванием.

    Блокирование процессаПроцесс блокируется, когда он не может продолжать работу, не дождавшись возникновения какого-либо события в вычислительной системе. Для этого он обращается к операционной системе с помощью определенного системного вызова. Операционная система обрабатывает системный вызов (инициализирует операцию ввода-вывода, добавляет процесс в очередь процессов, дожидающихся освобождения устройства или возникновения события, и т. д.) и, при необходимости сохранив нужную часть контекста процесса в его PCB, переводит процесс из состояния исполнение в состояние ожидание . Подробнее эта операция будет рассматриваться в лекции 13.

    Разблокирование процесса. После возникновения в системе какого-либо события операционной системе нужно точно определить, какое именно событие произошло. Затем операционная система проверяет, находился ли некоторый процесс в состоянии ожидание для данного события, и если находился, переводит его в состояние готовность, выполняя необходимые действия, связанные с наступлением события (инициализация операции ввода-вывода для очередного ожидающего процесса и т. п.). Эта операция, как и операция блокирования, будет подробно описана в лекции 13.

    Переключение контекста


    До сих пор мы рассматривали операции над процессами изолированно, независимо друг от друга. В действительности же деятельность мультипрограммной операционной системы состоит из цепочек операций, выполняемых над различными процессами, и сопровождается переключением процессора с одного процесса на другой.

    Давайте для примера упрощенно рассмотрим, как в реальности может протекать операция разблокирования процесса, ожидающего ввода-вывода (см. рис. 2.5). При исполнении процессором некоторого процесса (на рисунке – процесс 1) возникает прерывание от устройства ввода-вывода, сигнализирующее об окончании операций на устройстве. Над выполняющимся процессом производится операция приостановки. Далее операционная система разблокирует процесс, инициировавший запрос на ввод-вывод (на рисунке – процесс 2) и осуществляет запуск приостановленного или нового процесса, выбранного при выполнении планирования (на рисунке был выбран разблокированный процесс ). Как мы видим, в результате обработки информации об окончании операции ввода-вывода возможна смена процесса, находящегося в состоянии исполнение.




    Рис. 2.5. Выполнение операции разблокирования процесса. Использование термина "код пользователя" не ограничивает общности рисунка только пользовательскими процессами

    1. Планирование процессов. Уровни планирования

    2. Планирование процессов. Критерии планирования и требования к алгоритмам

    3. Планирование процессов. Параметры планирования

    4. Планирование процессов. Вытесняющее и невытесняющее планирование

    Я планов наших люблю громадьё...

    В. В. Маяковский

    Чем тщательнее мы планируем свою деятельность, тем меньше времени остается на ее осуществление.

    Из анналов Госплана

    Всякий раз, когда нам приходится иметь дело с ограниченным количеством ресурсов и несколькими их потребителями, будь то фонд заработной платы в трудовом коллективе или студенческая вечеринка с несколькими ящиками пива, мы вынуждены заниматься распределением наличных ресурсов между потребителями или, другими словами, планированием использования ресурсов. Такое планирование должно иметь четко поставленные цели (чего мы хотим добиться за счет распределения ресурсов) и алгоритмы, соответствующие целям и опирающиеся на параметры потребителей. Только при правильном выборе критериев и алгоритмов можно избежать таких вопросов, как: "Почему я получаю в десять раз меньше, чем мой шеф?" или "А где мое пиво?". Настоящая лекция посвящена планированию исполнения процессов в мультипрограммных вычислительных системах или, иначе говоря, планированию процессов.
    1   2   3   4   5   6


    написать администратору сайта