G(V, E), V = {a, b, c, d}, E = {(a, b), (a, c),(a, d), (d, c)}.
Блок-схема ядра операционной системы.
В операционной системе создается иллюзия того, что файловая система имеет "места" и что у процессов есть "жизнь". Обе сущности, файлы и процессы, являются центральными понятиями модели операционной системы UNIX. На Рисунке представлена блок-схема ядра системы, отражающая состав модулей, из которых состоит ядро, и их взаимосвязи друг с другом. В частности, на ней слева изображена файловая подсистема, а справа подсистема управления процессами, две главные компоненты ядра. Эта схема дает логическое представление о ядре, хотя в действительности в структуре ядра имеются отклонения от модели, поскольку отдельные модули испытывают внутреннее воздействие со стороны других модулей.
Схема на Рисунке имеет три уровня: уровень пользователя, уровень ядра и уровень аппаратуры. Обращения к операционной системе и библиотеки составляют границу между пользовательскими программами и ядром, проведенную на Рисунке. Обращения к операционной системе выглядят так же, как обычные вызовы функции. При этом программы могут обращаться к операционной системе непосредственно, без использования библиотеки системных вызовов. Программы часто обращаются к другим библиотекам, таким как библиотека стандартных подпрограмм ввода-вывода, достигая тем самым более полного использования системных услуг. Для этого во время компиляции библиотеки связываются с программами и частично включаются в программу пользователя. Далее мы проиллюстрируем эти моменты на примере.
На рисунке совокупность обращений к операционной системе разделена на те обращения, которые взаимодействуют с подсистемой управления файлами, и те, которые взаимодействуют с подсистемой управления процессами. Файловая подсистема управляет файлами, размещает записи файлов, управляет свободным пространством, доступом к файлам и поиском данных для пользователей. Процессы взаимодействуют с подсистемой управления файлами, используя при этом совокупность специальных обращений к операционной системе, таких как open (для того, чтобы открыть файл на чтение или запись),close, read, write, stat (запросить атрибуты файла), chown (изменить запись с информацией о владельце файла) и chmod (изменить права доступа к файлу).
Подсистема управления файлами обращается к данным, которые хранятся в файле, используя буферный механизм, управляющий потоком данных между ядром и устройствами внешней памяти. Буферный механизм, взаимодействуя с драйверами устройств ввода-вывода блоками, инициирует передачу данных к ядру и обратно. Драйверы устройств являются такими модулями в составе ядра, которые управляют работой периферийных устройств. Устройства ввода-вывода блоками относятся программы пользователя
Рисунок 1. Блок-схема ядра операционной системы
к типу запоминающих устройств с произвольной выборкой; их драйверы построены таким образом, что все остальные компоненты системы воспринимают эти устройства как запоминающие устройства с произвольной выборкой. Например, драйвер запоминающего устройства на магнитной ленте позволяет ядру системы воспринимать это устройство как запоминающее устройство с произвольной выборкой. Подсистема управления файлами также непосредственно взаимодействует с драйверами устройств "неструктурированного" ввода-вывода, без вмешательства буферного механизма. К устройствам неструктурированного ввода-вывода, иногда именуемым устройствами посимвольного ввода-вывода (текстовыми), относятся устройства, отличные от устройств ввода-вывода блоками.
Подсистема управления процессами отвечает за синхронизацию процессов, взаимодействие процессов, распределение памяти и планирование выполнения процессов. Подсистема управления файлами и подсистема управления процессами взаимодействуют между собой, когда файл загружается в память на выполнение подсистема управления процессами читает в память исполняемые файлы перед тем, как их выполнить.
Примерами обращений к операционной системе, используемых при управлении процессами, могут служить fork (создание нового процесса), exec (наложение образа программы на выполняемый процесс), exit (завершение выполнения процесса), wait (синхронизация продолжения выполнения основного процесса с моментом выхода из порожденного процесса), brk (управление размером памяти, выделенной процессу) и signal (управление реакцией процесса на возникновение экстраординарных событий).
Модуль распределения памяти контролирует выделение памяти процессам. Если в какой-то момент система испытывает недостаток в физической памяти для запуска всех процессов, ядро пересылает процессы между основной и внешней памятью с тем, чтобы все процессы имели возможность выполняться. Два способа управления распределением памяти: выгрузка (подкачка) и замещение страниц. Программу подкачки иногда называют планировщиком, т.к. она "планирует" выделение памяти процессам и оказывает влияние на работу планировщика центрального процессора. Однако в дальнейшем мы будем стараться ссылаться на нее как на "программу подкачки", чтобы избежать путаницы с планировщиком центрального процессора.
Модуль "планировщик" распределяет между процессами время центрального процессора. Он планирует очередность выполнения процессов до тех пор, пока они добровольно не освободят центральный процессор, дождавшись выделения какого-либо ресурса, или до тех пор, пока ядро системы не выгрузит их после того, как их время выполнения превысит заранее определенный квант времени. Планировщик выбирает на выполнение готовый к запуску процесс с наивысшим приоритетом; выполнение предыдущего процесса (приостановленного) будет продолжено тогда, когда его приоритет будет наивысшим среди приоритетов всех готовых к запуску процессов. Существует несколько форм взаимодействия процессов между собой, от асинхронного обмена сигналами о событиях до синхронного обмена сообщениями.
Наконец, аппаратный контроль отвечает за обработку прерываний и за связь с машиной. Такие устройства, как диски и терминалы, могут прерывать работу центрального процессора во время выполнения процесса. При этом ядро системы после обработки прерывания может возобновить выполнение прерванного процесса. Прерывания обрабатываются не самими процессами, а специальными функциями ядра системы, перечисленными в контексте выполняемого процесса.
Граф можно изобразить диаграммой следующим образом:
Вершины изобразить точками и кружками; ребра изобразить линиями.
Число вершин обозначается p(G) = |V|.
Число ребер графа q(G) = |E|.
Пусть vи uвершины графа, e = (v, u) это ребро графа, тогда вершина vи ребро eназываются инцидентными, вершина u и ребро eтак же инцидентные.
Два ребра инцидентные одной вершине называются смежными.
Две вершины инциденты одному ребру называются смежными.
Степенью или валентностью вершины называется количество ребер инцидентности этой вершины d(V).
Регулярным графом степени k называется граф, степени всех вершин которого равны k .
Вершина называется изолированной, если ее степень равна 0.
Вершина называется висячей, если ее степень равна 1.
Петлей называется ребро, начинающееся и заканчивающееся в одной вершине.
Кратными ребрами называется ребра инцидентные одной и той же паре вершин.
Простым графом называется граф без петель и кратных ребер с конечным количеством вершин.
Граф называется полным, если любая пара вершин соединена одним ребром.
Тема. Маршруты, цепи, циклы
Маршрутом в графе называется последовательность вершин и ребер v0v1v2v3 …vn.
Длиноймаршрута называется количества ребер в нем.
Маршрут, в котором все вершины различны, называется простой цепью.
Замкнутая простая цепь называется простым циклом.
Замкнутая цепь называется циклом.
Расстоянием между вершинами u и v называется длина кратчайшей цепи d(u, v).
Кратчайшая цепь, соединяющая вершины называется геодезическая.
Диаметром графа G называется длина длиннейшей геодезической цепи.
. Орграф
При описании с помощью графов различных сетей, алгоритмов и т. п. часто необходимо учитывать не только то, какие точки соединены, но и в каком направлении.
Ориентированный граф илиорграф называется граф, у которого множество ребер является множеством упорядочных пар.
Началом ребра называется вершина, указанная в паре первой, концом – вторая вершина этой пары (графически она указана стрелкой).
Ребра при изображении ориентированных графов представляют стрелками.
ПРИМЕР
G(V,E) - орграф.
Ребро ориентированного графа называетсядугой.
Если вершины u и v определяют дугу, то вершина u называется антицидентом вершины v.
Степенью входа (выхода) вершины орграфа называется число ребер, для которых эта вершина является концом (началом).
Дуги орграфа называются кратными, если они имеют одинаковые начальные и конечные вершины, то есть одинаковые направления
Контуром в ориентированном графе называют путь начинающейся и заканчивающейся в одной вершине.
Граф, в котором нет контура, называется безконтурным.
Способы задания графов
Во многих задачах, особенно, решаемых на ЭВМ, графы удобно описывать матрицами.
1.Задание графов матрицей смежности:
Матрица смежности– это квадратная матрица порядка p(количество вершин), элемент которой, стоящий в i строке и j столбце определяется по правилу:
ПРИМЕР
2. Задание графов матрицей инциденций.
Матрицей инцидентции называется прямоугольная матрица размерности (p – количество вершин, q – количество ребер), элемент которой стоящий в i строке и j столбце определяется по правилу:
- для неориентированного графа.
- для ориентированного графа.
ПРИМЕР
Изоморфизм графов
Важным при рассмотрении графов является вопрос о том, какие графы можно и нужно считать различными, а какие – одинаковыми.
Определение. Графы G’ и G’’ называютсяизоморфными, если существует взаимно-однозначное соответствие (биекция) между их ребрами и вершинами, причем ребра соединяют соответствующие вершины.
Изоморфизм графов означает, что можно так переобозначить вершины первого графа, что в новых обозначениях вершины и ребра будут совпадать со вторым графом.
ПРИМЕР
Графы приведенные на рисунке изоморфны:
Связные графы
Еще один из выделяемых видов графов связан с возможностью попадания из одной его вершины в другую.
Две вершины называются связными, если существует маршрут между ними. Связность для вершин является бинарным отношением.
Неориентированный граф называется связным, если между любыми двумя вершинами есть маршрут.
Любой граф G можно разбить на непересекающиеся подмножества вершин по признаку связности. Вершины одного множества являются связными между собой, а вершины различных множеств – несвязны. Тогда все выделенные таким образом подграфы называют компонентами связности графа G. При этом связный граф имеет одну компоненту связности.
Доказано, что в конечном связном графе всегда можно построить ориентированный цикл, проходящий через каждое ребро по одному разу в двух направлениях. Такой цикл называютспособом обхода графа и используют при решении многих прикладных задач. В частности разработаны специальные алгоритмы обхода ребер графа, которые можно использовать при решении задач вида “поиска выхода из лабиринта”.
Ребро (v, u) связного графа G называется мостом, если после его удаления G станет несвязным и распадется на два связных графа G’ и G’’.
ПРИМЕР
Ребро (v3, v4) связного графа является мостом, т. к. после его удаления G станет несвязным и распадется на два связных графа
При решении практических задач, формулируемых в терминах графов, бывает важно не только определить число компонент связности графа, но и выяснить структуру самих компонент, т. е. изобразить отдельно каждую компоненту.
Например, при решении задачи планирования дорожного строительства в каком-либо регионе страны, существующую сеть дорог между населенными пунктами удобно представить в виде графа. В этом случае компонента связности графа — сеть дорог между группой населенных пунктов, обеспечивающая доступ из каждого населенного пункта группы в каждый. Если таких групп несколько, то можно планировать строительство дорог (то есть добавление ребер в граф).
Подписание Петербургского договора, возвращение Илийского края Китаю, вывод русских войск из кульджи сняли, казалось бы все формальные преграды к нормализации русско-китайских отношений в регионе. На правительственном уровне так и произошло. Однако на местном уровне в Синьцзяне процесс восстановления политических и экономических отношений происходил болезненно. Победители по отношению к русским подданным и местным жителям вели себя вызывающе, что обстряло отношения между пограничными властями и вызвало новую волну боженцев в пределы России. В Кашгарии маньчжуро-китайские власти восстановили систему национального и религиозного гнета и уйгурское население вновь начало обращаться с просьбами о принятии его под протекцию «белого царя». При попустительстве, а порой и прямой поддержке китайских пограничных властей происходили грабежи и угоны в пределы Китая российских подданных – киргизов, распространялись слухи о скором изгнании китайцами русских из некоторых приграничных районов Киргизии.пользуясь слабой охраной границы, цинские отряды проникали на территорию России.
5 ноября 1884 г. в Пекине был обявлен императорский указ «об учреждении новой провинции Ганьсу-Синьцзян- шеен» и по инициативе его начальника Цзо Цзинь тана в провинции начались реформы, направленные на китаизацию и превращение его в обычную китайскую провинцию в 1890г. Илийский край полностью перешел под прямое управление синьцзянского губернатора. Отношение у русскими подданным и консульствам в Синьцзяне со стороны нового руководства были крайне отрицательными