
- •1. Программирование.
- •Каскадная модель.
- •Характеристика объектно-ориентированного программирования.
- •Использование инкапсуляции в ооп.
- •Использование наследования объектов в ооп.
- •Использование полиморфизма в ооп.
- •2. Математическая логика и теория алгоритмов.
- •2.1. Логические операции. Таблицы истинности.
- •2.2. Логика высказывани и предикатов.
- •Интуитивное и формальное определение алгоритма.
- •Теория сложности в теории алгоритмов.
- •Организация эвм и систем.
- •Принцип программного управления
- •Структуры эвм и вычислительных систем.
- •Структуры вычислительных машин
- •Структуры вычислительных систем.
- •Cisc и risc процессоры
- •Иерархическая система памяти эвм. Общие сведения и классификация памяти эвм.
- •Классификация зу по принципу организации.
- •Вычислительные системы (вс). Уровни параллелизма. Классификация вс Флинна. Закон Амдала.
- •4. Операционные системы.
- •Определение операционной системы. Функции ос.
- •Классификация ос.
- •Средства синхронизации и взаимодействия процессов.
- •Файловая система.
- •Сегментно-страничное распределение памяти.
- •Страничное распределение памяти
- •Сегментное распределение памяти.
- •Сегментно-страничное распределение.
- •5. Базы данных.
- •База данных. Субд.
- •Модели данных.
- •Реляционная модель данных.
- •Нормальные формы.
- •2) Вторая нормальная форма.
- •3) Третья нормальная форма.
- •Физическая организация данных.
- •6. Компьютерная графика.
- •Растровые (матричные) изображения.
- •Векторные модели изображений.
- •3D-изображения. Геометрия проецирования. Однородные координаты.
- •Представление геометрических моделей в программе и базе данных.
- •Графические библиотеки
- •Информационные технологии.
- •Информационная технология как составная часть информатики.
- •Базовая ит. Концептуальный уровень.
- •Структура базовой ит. Логический уровень.
- •Базовая ит. Физический уровень. Преобразование информации в данные.
- •Графические модели ит.
- •8. Сети эвм и телекоммуникации.
- •Структура и характеристики вычислительных сетей.
- •Топологии вычислительных сетей
- •Кольцо.
- •Архитектура сетей Ethernet.
- •Стандарт 10BaseT
- •Стандарт 10Base2
- •Стандарт 10Base5
- •8.4. Сети 802.11
- •Режимы работы 802.11
- •8.5. Сетевые операционные системы.
Средства синхронизации и взаимодействия процессов.
Процесс (задача) – программа, находящаяся в режиме выполнения.
Процессам часто нужно взаимодействовать друг с другом, например, один процесс может передавать данные другому процессу, или несколько процессов могут обрабатывать данные из общего файла.
Способы взаимодействия процессов:
Разделяемая память;
Каналы – псевдофайл, в который один процесс пишет, другой из него читает. Каналы могут быть реализованы как в пределах одного компьютера, так и по сети при помощи сокетов;
Сокеты – механизм, поддерживаемый ОС, предоставляющий возможность взаимодействия между процессами как в пределах одного компьютера, так и между двумя компьютерами по сети;
Механизм вызовов удаленных процедур (RPC), обеспечивающий передачу управления удаленному процессу.
Во всех этих случаях возникает проблема синхронизации процессов, которая может решаться приостановкой и активизацией процессов, организацией очередей, блокированием и освобождением ресурсов.
Пренебрежение вопросами синхронизации процессов, выполняющихся в режиме мультипрограммирования, может привести к их неправильной работе или даже к краху системы (в результате одновременной работы с ресурсами).
Важным понятием синхронизации процессов является понятие "критическая секция" программы. Критическая секция - это часть программы, в которой осуществляется доступ к разделяемым данным. Чтобы исключить эффект гонок по отношению к некоторому ресурсу, необходимо обеспечить, чтобы в каждый момент в критической секции, связанной с этим ресурсом, находился максимум один процесс. Этот прием называют взаимным исключением.
Критические секции могут быть реализованы с использованием блокирующих переменных. Для синхронизации процессов в операционных системах применяются следующие механизмы:
Критические секции (critical section) – механизм, частный случай мьютексов в системах Windows. Представляет собой системную переменную, к которой получает непосредственный доступ только операционная система. Потоки же устанавливают эту переменную с помощью вызовов функций enter() и leave(). Если переменная занята одним потоком, никакой другой поток не может исполнить код, огражденный вызовами функций enter и leave. Критическая секция обеспечивает синхронизацию потоков только в пределах одного процесса.
Семафор – объект, позволяющий войти в заданный участок кода не более чем n потокам. Над семафором можно производить 3 операции: инициализацию некоторым значением, инкремент (Up) и декремент (Down). Прежде чем заблокировать процесс, Down проверяет семафор, если он равен нулю, то он блокирует процесс, если нет, то процесс снова становится активным, и уменьшает семафор на единицу. Up увеличит значение семафора на 1 или разблокирует процесс находящийся в ожидании. Down и Up выполняются как элементарное действие, т.е. процесс не может быть блокирован во время выполнения этих операций.
Мьютекс – одноместный семафор, один из вариантов семафорных механизмов для организации взаимного исключения. Они реализованы во многих ОС, их основное назначение — организация взаимного исключения для потоков из одного или из разных процессов. Мьютексы могут находиться в одном из двух состояний — отмеченном или неотмеченном (открыт и закрыт соответственно). Когда какой-либо поток, принадлежащий любому процессу, становится владельцем объекта мьютекса, последний переводится в неотмеченное состояние. Когда поток освобождает мьютекс, его состояние становится отмеченным. Ожидающие освобождения мьютекса процессы выстраиваются в очередь.
Механизм событий – более общий механизм для синхронизации. В разных операционных системах аппарат событий реализуется по-своему, но в любом случае используются системные функции аналогичного назначения, которые условно назовем WAIT(x) и POST(x), где x - идентификатор некоторого события. Если ресурс занят, то процесс не выполняет циклический опрос, а вызывает системную функцию WAIT(D), здесь D обозначает событие, заключающееся в освобождении ресурса D. Функция WAIT(D) переводит активный процесс в состояние ОЖИДАНИЕ и делает отметку в его дескрипторе о том, что процесс ожидает события D. Процесс, который в это время использует ресурс D, после выхода из критической секции выполняет системную функцию POST(D), в результате чего операционная система просматривает очередь ожидающих процессов и переводит процесс, ожидающий события D, в состояние ГОТОВНОСТЬ.