Модем — устройство для передачи компьютерных данных на большие расстояния по телефонным линиям связи.
Цифровые сигналы, вырабатываемые компьютером, нельзя напрямую передавать по телефонной сети, потому что она предназначена для передачи человеческой речи — непрерывных сигналов звуковой частоты.
Модем обеспечивает преобразование цифровых сигналов компьютера в переменный ток частоты звукового диапазона — этот процесс называется модуляцией, а также обратное преобразование, которое называется демодуляцией. Отсюда название устройства: модем — модулятор/демодулятор.
Рис. 2.24. Схема реализации модемной связи
Для осуществления связи один модем вызывает другой по номеру телефона, а тот отвечает на вызов. Затем модемы посылают друг другу сигналы, согласуя подходящий им обоим режим связи. После этого передающий модем начинает посылать модулированные данные с согласованными скоростью (количеством бит в секунду) и форматом. Модем на другом конце преобразует полученную информацию в цифровой вид и передает её своему компьютеру. Закончив сеанс связи, модем отключается от линии.
Рис. 2.25 Внешний модем
Потоки. Мультипрограммирование на уровне потоков
Организация взаимодействия процессов. Основные понятия
Общая характеристики связи между процессами
Конкуренция процессов в борьбе за ресурсы. Основные понятия и проблемы
Синхронизация процессов и потоков. Основные понятия и проблемы
Семафоры, мьютексы. Использование семафоров для синхронизации процессов
Чтобы поддерживать мультипрограммирование (многозадачность), ОС должна определить и оформить для себя те внутренние единицы работы, между которыми будет разделяться процессор и другие ресурсы компьютера.
В настоящее время в большинстве операционных систем определены два типа единиц работы.
Более крупная единица работы – процесс.
С помощью процессов удается обеспечить псевдопараллельное (при однопроцессорной вычислительной системе) или параллельное (при многопроцессорной вычислительной системе) выполнение заданий
Но дело в том, что приложение (задание) может обладать внутренним параллелизмом, использование которого потенциально может ускорить вычисления.
Для реализации этой возможности в операционной системе наряду с процессами должен быть другой механизм распараллеливания вычислений, который учитывал бы тесные связи между отдельными ветвями вычислений одного и того же приложения.
И нужна более мелкая единица работы чем процесс - «поток», или «нить» (threads).
В Windows поддерживаются еще более мелкая единица работы - волокна (fibers).
Потокивозникли в операционных системах как средство дополнительного распараллеливания вычислений в рамках одного процесса, когда приложение обладает внутренним параллелизмом.
Подобно процессам потоки в системе описываются структурой данных, которую обычно называют блоком управления потоком (thread control block, TCB).
В операционных системах, где существуют и процессы, и потоки, процесс рассматривается операционной системой как заявка на потребление всех видовресурсов, кроме одного — процессорного времени.
Этот последний важнейший ресурс распределяется операционной системой между другими единицами работы — потоками, которые и получили свое название благодаря тому, что они представляют собой последовательности (потоки выполнения) команд.
Процессу ОС назначает адресное пространство и набор ресурсов, которые совместно используются всеми его потоками.
Создание потоков требует от ОС меньших накладных расходов, чем процессов.
В отличие от процессов, которые принадлежат разным, вообще говоря, конкурирующим приложениям, все потоки одного процесса всегда принадлежат одному приложению, поэтому ОС изолирует потоки в гораздо меньшей степени, нежели процессы в традиционной мультипрограммной системе.
Для потоков в отличии от процессов характерно следующие важное свойство: они делят между собой почти все ресурсы потока- одновременно используют эти ресурсы.
Обычно различные потоки совместно используют следующие ресурсы процесса: