- •1 Лекция (01.02.2024)
- •2 Лекция (08.02.2024)
- •3 Лекция (15.02.2024)
- •4 Лекция (22.02.2024)
- •5 Лекция (29.02.2024)
- •6 Лекция (07.03.2024)
- •7 Лекция (14.03.2024)
- •8 Лекция (21.03.2024)
- •9 Лекция (28.03.2024)
- •10 Лекция (04.04.2024)
- •11 Лекция (11.04.2024) Небольшое объяснение насчёт экзамена:
- •Материал лекции:
- •Точка-Точка (point-to-point)
- •Управляемая петля (arbitrated loop)
- •Коммутируемая связная архитектура (switched fabric)
2 Лекция (08.02.2024)
На прошлой лекции мы обсуждали, что у нас все системы являются распределёнными, а в прошлом семестре говорили, что топология, в общем-то, всегда одинаковая. В ней содержится коммутатор, расположенный по центру, какие-то рабочие станции (просто порты) и какие-то серверы (File server, DataBase server, WEB server и т.д.).
Этот сегмент «цепляется» к роутеру, роутер к мультиплексору и далее к радиосвязи. Но отсюда возникает вопрос: как здесь работают процессы?
Мы кладем объектный файл на диск, потом мы его линкуем. После линкера получим экзешник, который лоудер будет загружать в оперативную память. После загрузки мы получим процесс (process). Весь этот процесс называется Job (задание).
Мы кладем объектный файл на диск, потом мы его линкуем. После линкера получим экзешник, который лоудер будет загружать в оперативную память. Это всё называется Job (задание). После загрузки Job мы получим процесс (process). Каждый процесс имеет свою цепочку поинтеров, которые указывают на буфера, которые нужны для глобальных локальных перемен и свою цепочку для фредов, которые будут говорить, какие инструкции этого кода сейчас используются.
После этого потребуется наличие расписания, которое позволяет пользоваться подсистемой ввода-вывода, т.е., дисковой подсистемой.
Также, возникает проблема мультипрограммирования (Degree of Multi-Programming). Дело состоит в следующем: когда эти процессы мы загружаем из джовов в оперативную память и что-то там делим, мы должны понимать следующую вещь – каких ресурсов требуют эти процессы от операционной системы: процессора, памяти или ввода-вывода?
Мы должны эту «смесь» сделать очень сбалансированной, потому что, если все процессы потребуют разделения, например, подсистемы ввода-вывода, то будут проблемы. В современных системах эти проблемы убраны в основном, но все-таки не до конца.
Обязательным наличием будет являться защита от несанкционированного доступа, поскольку один процесс потребовал каких-то буферов для глобальных переменных, другой - для локальных и в результате все друг на друга «наехали», что приведёт к плохому исходу. Поэтому такие вещи делаются посредством операционных систем, которые дают System Call для защиты определённой области памяти и для обращения к ней.
Операционная система, которая работает на File server, называется сетевой, поскольку она делит файловую систему. Когда к ней идёт обращение, мы делаем логин на рабочей станции и по этому логину обращаемся к сессии операционной системы, а отсюда – к файловой системе, которая полностью контролирует этот ресурс. Когда идёт обращение к Web server, это делается так, как будто это наш локальный ресурс.
Возникают также и другие задачи, которые надо решить, такие как: задача разделения ресурсов (Resource sharing), задача согласования скоростей (Computation speed), задачу создания стабильной маршрутизации и др.
После вышеизложенных операций мы должны договориться о поименовании узлов, которые у нас получились для того, чтобы к ним обращаться.
Также, необходимо присутствие Process Management. Process Management — это управление процессами, и с точки зрения этого управления операционная система является коллекцией процессов. Она делит ресурсы под юзеровские процессы, делит ресурсы сети и является коллекцией этих процессов.
Операционная система также гарантирует, что мы не залезем в чужие буфера, т.е., операционная система займётся протекшеном. Не security, а протекшеном. Security – это то, что делается вне системы, другими средствами, а protexion – это то, что делается ей внутри.
В своё время компания IBM предложила обращаться к процессу не при помощи памяти, а при помощи сообщений (месседжев). Также, она предложила использование почтовых ящиков для обращения и коммуникирования между процессами, а также для быстрой и эффективной передачи параметров между ними. Почтовому ящику даётся какой-то номер и в него кладётся адрес, по которому запускается процесс, который мы идентифицировали по номеру. К адресу мы будем обращаться при помощи поинтера.
На сегодняшний день существует 5 средств обмена данными между процессами:
Разделяемая память (Shared memory)
Посылка сообщений (message)
Сокет (socket)
RPC (Remail Program Calls)
Канал (Pipe)
RPC (Remail Program Calls) - это те же сокеты, но при этом, они будут крепко упорядочены или же можно сказать, что это абстрактное представление вызова, которое говорит, что каждое сообщение должно содержать процесс, порт, ремонтные системы и определённые параметры (в начале сообщения всегда номер порта – это требование технологии RPC).
