Лекции по Основам ВТ

Фоновые программы. Под управлением OS/2 могут выполняться программы защищенного режима, к-ые будут постоянно находиться в фоне. Эти настоящие фоновые программы ни к одному из запущенных сеансов. (Нельзя переключиться на фоновую программу с пом. ALT+Escp. Т.о. фоновая программа – спец. Сеанс, к-ый не может быть приравнен к обычному сеансу защищенного режима. Фонов. Программы обычно не взаимодействуют с пользователем, а ведут учет ресурсов, следят за появлением вирусов.

UNIX.

Ю спроектирован как инструментальная система для разработки П.О. Она имеет простой, но мощный командный язык и независимую от устройств файловую систему. Ю изначально спроектир. С 65 по 69г. Bell laboratories и General Electric. 1-ая версия возникла в США в Масачусецком уневерситете. В 72г. на яз. Си написал Ритчи – 2-ая версия. Она стала более надежной, любимой, а программы были совместимы и понятны.

Цели проекта. Своей уникальностью Ю обязан: 1.Нулевая версия была создана 2-мя идеологами за минимальное кол-во чел*лет. 2.Люди, создававшие систему были её главными пользователями.

Внутренняя согласованность и встроенность является следствием этих 2-ух обстоятельств, как и яз. Паскаль, созд. Виртом.

Управлние процессами. Центральная часть – ядро (около 25000 строк на Си и 2500 строк на Ассемблере). Большая часть ассемблерного текста относится к аппаратным ф-циям, к-ые трудно программировать на Си.

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

Образ памяти делится на 3 логических сегмента: --СРП-сегмент реентерабельных процедур (начиная с нулевого адреса в виртуальном адресном пространстве). –СД-сегмент данных. –СС-сегмент стека. Картинка. СД располаг. За СРП в сорону больших адресов. Сегмент стека начинается со старшего адреса в виртуальном адресном пространстве и растет вверх по мере занесения в него иформации, при вызове пограмм и прерывании. СД в образе памяти содержит данные, записываемые и считываемые т-ко одним конкретным процессом. Системные данные, относящиеся к процессу хранятся в отдельном сегменте фиксированного размера. Этот системный сегмент данных откачивается вместе с процессом. Он содержит такие данные об активном процессе, как состояние регистров, дескрипторов(описатели открытых файлов), данные для расчетов за использованием ЭВМ, область рабочих данных, стек для системной фазы выполнения процесса. Процесс которому принадлежит сегмент системных данных непосредственно адресоваться не может.

Таблица процесса – когда процесс не активен, в ней хранится информация о процессе. Она содержит: --имя процесса –расположение его сегментов –информацию для планировщика. Таблица процесса существует во время всей жизни процесса. Адресуется она из ядра ситемы.

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

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

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

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

Процессы вталкивания и выталкивания. Процессы могут выталкиваться (выкачиваться) во вторичную память и вталкиваться (подкачиваться). Как в первичной, так и во вторичной памяти выделяется стратегия свободного пространства, имеющего общее название (если процессу требуется дополнительная память он её запрашивает непосредственно у ядра). Ему выделяется новая, большая секция памяти, чтобы вместить процесс и всё содержимое старой памяти копируется в новую область памяти вместе с процессом, а старая область освобождается. Завершение процессов может происходить аварийно (преднамеренно) при помощи примитива EXEC (выход) или непреднамеренно, как результат запрещенных действий (для О.С. сигналы или ловушки предписанные пользователем). Ловушки, связанные с ошибками к программе, т.е. обращаться к некорректным адресам памяти или попытка выполнить программу с несуществующим кодом операции. Для снятия процесса в Ю используются директивы: interrubt – процедура прерывания, quit – увольнение.

Файловая система UNIX. Файл – это множество символов с произвольным доступом, его размер – число содержащихся в нём символов, на физическом уровне до 1000000000 символов. В файле содержатся произвольные данные и не имеет другой структуры, кроме наложенной пользователем.

Диск разбивается на 4 блока: 1.Неиспользуемый блок. 2.Управляющий (суперблок) – содержит размер диска и др. областей. 3.i-список, состоящий из описания файлов, наз. i-узлами. 4.Область для хранения содержимого файла.

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

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


Страница: