Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2222222222222222.docx
Скачиваний:
4
Добавлен:
24.09.2019
Размер:
20.39 Mб
Скачать
  1. Способы синхронизации потоков в прикладном по.

Синхронизация задач – использование специальной конструкции ОС и процессора, позволяющая внести определенность в порядок выполнения потоков. Взаимоисключения (mutex, мьютекс) — это объект синхронизации, который устанавливается в особое сигнальное состояние, когда не занят каким-либо потоком. Только один поток владеет этим объектом в любой момент времени, отсюда и название таких объектов (от английского mutually exclusive access — взаимно исключающий доступ) — одновременный доступ к общему ресурсу исключается. После всех необходимых действий мьютекс освобождается, предоставляя другим потокам доступ к общему ресурсу. Объект может поддерживать рекурсивный захват второй раз тем же потоком, увеличивая счетчик, не блокируя поток, и требуя потом многократного освобождения. Семафоры представляют собой доступные ресурсы, которые могут быть приобретены несколькими потоками в одно и то же время, пока пул ресурсов не опустеет. Тогда дополнительные потоки должны ждать, пока требуемое количество ресурсов не будет снова доступно. Семафоры очень эффективны, поскольку они позволяют одновременный доступ к ресурсам. Семафор есть логическое расширение мьютекса — семафор со счетчиком 1 эквивалентен мьютексу, но счетчик может быть и более 1. События. Объект, хранящий в себе 1 бит информации «просигнализирован или нет», над которым определены операции «просигнализировать», «сбросить в непросигнализированное состояние» и «ожидать». Ожидание на просигнализированном событии есть отсутствие операции с немедленным продолжением исполнения потока. Ожидание на непросигнализированном событии приводит к приостановке исполнения потока до тех пор, пока другой поток (или же вторая фаза обработчика прерывания в ядре ОС) не просигнализирует событие. Возможно ожидание нескольких событий в режимах «любого» или «всех». Возможно также создания события, автоматически сбрасываемого в непросигнализированное состояние после пробуждения первого же — и единственного — ожидающего потока (такой объект используется как основа для реализации объекта «критическая секция»).

  1. Сетевые взаимодействия в современных ос. Понятие о сокетах.

Ethernet— пакетная технология передачи данных преимущественно локальных компьютерных сетей. Эта технология позволяет передавать данные с одного компьютера к другому со скоростью до 100 Гбит/сек. При проектировании стандарта Ethernet было предусмотрено, что каждая сетевая карта (равно как и встроенный сетевой интерфейс) должна иметь уникальный шестибайтный номер (MAC-адрес), прошитый в ней при изготовлении. Этот номер используется для идентификации отправителя и получателя кадра, и предполагается, что при появлении в сети нового компьютера (или другого устройства, способного работать в сети) сетевому администратору не придётся настраивать MAC-адрес.

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

TCP — это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в достоверности получаемых данных, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета.

UDP предоставляет ненадежный сервис, и датаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа. UDP подразумевает, что проверка ошибок и исправление либо не необходимы, либо должны исполняться в приложении.

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

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

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

Соседние файлы в предмете Программирование