КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Механизм реализации виртуальной памяти.Виртуальная память(ВП) - совокупность программно-аппаратных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память. ВП решает задачи: размещает данные в запоминающих устройствах разного типа(напр.часть программы в оперативной памяти, а часть на диске; перемещает по мере необходимости данные между запоминающими устройствами разного типа(напр.подгружает нужную часть программы с диска в оперативную память); преобразует виртуальные адреса в физические. Все эти действия выполняются автоматически, без участия программиста.Наиболее распространенными реализациями ВП является страничное, сегментное и странично-сегментное распределение памяти, а также свопинг. Страничное распределение: Виртуальное адресное пространство каждого процесса делится на части одинакового, фиксированного для данной S размера, называемые виртуальными страницами. Вся оперативная память машины также делится на части такого же размера, называемые физическими страницами (или блоками). Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т.д. При загрузке процесса часть его виртуальных страниц помещается в оперативную память, а остальные - на диск.. При загрузке ОС создает для каждого процесса информационную структуру - таблицу страниц, в которой устанавливается соответствие между номерами виртуальных и физических страниц для страниц, загруженных в оперативную память, или делается отметка о том, что виртуальная страница выгружена на диск. При активизации очередного процесса в специальный регистр процессора загружается адрес таблицы страниц данного процесса. При каждом обращении к памяти происходит чтение из таблицы страниц информации о виртуальной странице, к которой произошло обращение. Если данная виртуальная страница находится в оперативной памяти, то выполняется преобразование виртуального адреса в физический. Если же нужная виртуальная страница в данный момент выгружена на диск, то происходит так называемое страничное прерывание. Выполняющийся процесс переводится в состояние ожидания. Если в памяти имеется свободная физическая страница, то загрузка выполняется немедленно, если же свободных страниц нет, то решается вопрос, какую страницу следует выгрузить из оперативной памяти. Страничное распределение памяти может быть реализовано в упрощенном варианте, без выгрузки страниц на диск. В этом случае все виртуальные страницы всех процессов постоянно находятся в оперативной памяти. Сегментное распределение. Виртуальное адресное пространство процесса делится на сегменты, размер которых определяется программистом. Отдельный сегмент может представлять собой подпрограмму, массив данных и т.п. При загрузке процесса часть сегментов помещается в оперативную память, а часть сегментов размещается в дисковой памяти. Во время загрузки S создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. S с сегментной организацией функционирует аналогично S со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса. Странично-сегментное распределение. Виртуальное пространство процесса делится на сегменты, а каждый сегмент в свою очередь делится на виртуальные страницы, которые нумеруются в пределах сегмента. Оперативная память делится на физические страницы. Загрузка процесса выполняется ОС постранично, при этом часть страниц размещается в оперативной памяти, а часть на диске. Для каждого сегмента создается своя таблица страниц.. Для каждого процесса создается таблица сегментов, в которой указываются адреса таблиц страниц для всех сегментов данного процесса. Адрес таблицы сегментов загружается в специальный регистр процессора, когда активизируется соответствующий процесс. Свопинг -разновидностью ВП. При свопинге процесс перемещается между памятью и диском целиком, то есть в течение некоторого времени процесс может полностью отсутствовать в оперативной памяти. Существуют различные алгоритмы выбора процессов на загрузку и выгрузку, а также различные способы выделения оперативной и дисковой памяти загружаемому процессу. 4. Протоколы TCP/IP. Стеком протоколов TCP/IP называют набор сетевых протоколов, используемых в интернет.В этом стеке различают несколько уровней, и протоколы высокого уровня всегда базируются на протоколах более низких уровней.В самом низу находятся физический уровень и канальный уровень. Выше идёт сетевой уровень, где находится протокол IP, описывающий структуру сети и доставку пакетов. Ещё выше — транспортный уровень, где находится протокол TCP, использующийся для передачи данных. Эти протоколы обычно реализуются на уровне ОС. На самом верху находится множество протоколов прикладного уровня, выполняющих конкретные прикладные задачи. Обычно они программируются в отдельных приложениях. IP-протокол, лежащий в основе Интернета, его название так и расшифровывается: Internet Protocol. Согласно протоколу, каждый узел в сети имеет свой IP-адрес, состоящий из 4х байт и обычно записываемый как n.n.n.n. TCPпротокол базируется на IP для доставки пакетов. Установлив соединения— это позволяет ему, в отличие от IP, гарантировать доставку пакетов порты-для обмена пакетами между приложениями, а не просто узлами. Протокол TCP предназначен для обмена данными, обеспечивает надежную доставку данных, так как предусматривает установления логического соединения; нумерует пакеты и подтверждает их прием квитанцией, а в случае потери организует повторную передачу; делит передаваемый поток байтов на части — сегменты - и передает их нижнему уровню, на приемной стороне снова собирает их в непрерывный поток байтов.TCP-соединение.Соединение начинается с handshake (рукопожатия): Узел A посылает узлу B специальный пакет SYN — приглашение к соединению B отвечает пакетом SYN-ACK- согласием об установлении соединения A посылает пакет ACK-подтверждение, что согласие получено После этого TCP соединение считается установленным, и приложения, работающие в этих узлах, могут посылать друг другу пакеты с данными. Любое установленное TCP соединение симметрично, и пакеты с данными по нему всегда идут в обе стороны. Сетевой порт— условное число от 1 до 65535, указывающее, какому приложению предназначается пакет. В TCP пакетах дополнительно указываются порт источника и порт назначения. Использование портов позволяет независимо использовать TCP протокол сразу многим приложениям на одном и том же компьютере. Клиентом называют приложение, которое пользуется каким-то сервисом, предоставляемым другим приложением-Сервером, обычно на удаленном компьютере. Сервер при запуске сообщает ОС, что хотел бы «занять» определенный порт (или несколько портов). После этого все пакеты, приходящие на компьютер к этому порту, ОС будет передавать этому серверу. Клиент, начиная соединение, запрашивает у своей ОС какой-нибудь незанятый порт во временное пользование, и указывает его в посланных пакетах как порт источника. Затем на этот порт он получит ответные пакеты от сервера. UDP— это ещё один протокол транспортного уровня. Он тоже базируется на IP и тоже использует порты, но в отличие от TCP он не устанавливает соединений и не требует подтверждения получения каждого пакета.Поэтому пакеты могут теряться или приходить в неправильном порядке. Зато этот протокол быстрее и использует меньше ресурсов. У многих протоколов прикладного уровня для серверов определены стандартные порты, используемые по умолчанию. Самые известные прикладные протоколы и их стандартные порты:HTTP — основой протокол всемирной паутины(TCP порт 80);SMTP — протокол пересылки почты (TCP порт 25);FTP — протокол передачи файлов (TCP порт 21);DNS — протокол сопоставления доменных имен IP адресам (UDP порт 53).
|