Добавил:
Я и кто? Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты РОС.docx
Скачиваний:
23
Добавлен:
10.09.2023
Размер:
1.18 Mб
Скачать

Билет №8

  1. Определение и функции исходного кода, объектного кода и выполняемых модулей. Системное обеспечение и его состав.

Исходный код – текст компьютерной программы на любом языке программирования, который транслируется в объектный (неизменяемый) код целиком до запуска программы при помощи компилятора. Исходный код исполняется сразу, если использовать интерпретатор.

Объектный код – это то, что получается после работы компилятора. Это промежуточный код между машинным и исходным, содержащий инструкции для процессора из разных кусков программы. .obj файлы передаются линкеру (компоновщику), который объединяет их в один исполняемый файл (уже машинный код). (НЕТ ИНФОРМАЦИИ В ЛЕКЦИИ)

Системное программное обеспечение:

  • Операционные системы (нужна для того, чтобы делить ресурсы (вычислительные/ресурсы памяти)

  • Компиляторы (компилируем и складываем на жесткий диск)

  • Лоадеры (загрузим в оперативную память)

  • Линкеры (скомпонуем объектные файлы после компилятора)

  • Драйверы (нужны для связи между железками и операционной системой)

  • СУБД (доступ к базам данных, контроль транзакций)

(то, что выше из прошлого семестра. То, что ниже – студфайл, в лекциях этого семестра речи не было)

Системное программное обеспечение (СПО) – это программы, управляющие работой компьютера и выполняющие различные вспомогательные функции, например, управление ресурсами компьютера, создание копий информации, проверку работоспособности устройств компьютера, выдачу справочной информации о компьютере и др. Это база, без которой прикладные программы не будут работать.

  1. Перечислите основные характеристики ТСР протокола Internet. Как организован механизм скользящего окна в пакете ТСР? Как работает возможность “push” ТСР? Как реализована возможность “urgent data” ТСР?

TCP – основной протокол транспортного уровня (старье). В начале 80-х был разделен на TCP и IP (было на прошлой лекции). Он получает сегменты любой длины от протоколов верхних уровней (ULP – upper level protocol) и осуществляют полнодуплексную передачу с подтверждением о доставке и установкой соединения, и контролем соединения. TCP “озадачен” гарантированностью доставки сегментов, но не гарантирует ее.

Когда начинается соединение, то драйвер протокола TCP устанавливает соединение при помощи флага syn, оканчивает соединение при помощи флага fin. Начинается с процедуры трехстороннего (трехэтапного) рукопожатия. Клиент посылает пакет с syn флагом, seq выбирается случайно, любое 32-битное число, acknowledgement number неизвестен. Сервер отвечает ack на единицу больше полученного числа и посылает в свою очередь свое 32-битное случайное число syn. Клиент в ответ высылает свое подтверждение ack – число, на единицу большее полученного от сервера.

(инфа про рукопожатие взята из умных книжек. в конспектах лекций ничего непонятно, но вроде не противоречит)

В современных системах TCP почти не используется, т.к. всю доставку осуществляют сетевые адаптеры. Это второй уровень OSI. Либо адаптер будет делать это в режиме stop and wait (остановись и подожди, пока придет ответ), либо это будет скользящее окно (sliding window, но это делается хардвером), либо не будет обращать внимания на доставку вовсе (что бывает чаще всего, поскольку канал оптоволоконный, аппаратура надежная, никто этой проблемой особо не озадачивается)

Сегмент TCP состоит из 32-битных слов (всегда работаем со словами):

- исходного порта (source port),

- destination port (порт TCP – номер почтового ящика, по которому хранится адрес процесса, который будет запускаться),

- sequence number (последовательный номер – поле, которое содержит номер первого байта, с которого начинается сообщение. Если сообщение фрагментировано, то TCP использует последовательные номера, чтобы потом пересобрать и создать на приемном канале весь сегмент. Транспортный уровень – работа с сегментами),

- номер подтверждения (acknowledgement number – последовательный номер следующего байта данных, которых источник предполагает получить. Если принимающий пакет несет 40 байт информации с номером подтверждения 0, то номер подтверждения = 40. Мы намерены получить 40 байт),

- смещение (offset – количество 32битных слов в заголовке),

- флаги (flags – контрольная информация для установки соединения и контроля задания приоритетов). Есть urgent флаг – поинтер на то, что это поле срочного пакета (поставь меня в очередь буферу, но с высоким приоритетом), есть флаг push – отправляет на немедленную отсылку (поставь меня первым в буфере), есть флаг reset – необходимо переустановить соединение, есть флаг syn – начинаем соединение, есть флаг fin – не имеем больше информации, нечего передавать

- контрольная сумма

- sliding window – число байт, которые принимаем или передаем в текущий момент. Договариваемся о размерах этого самого окна

- дополнительные опции, которые говорят, как мы контролируем пересылку сверхважной информации (например, максимальный размер сегмента)

Скользящее окно (sliding window) – это механизм, нивелирующий проблемы с низкой производительностью TCP, который позволяет не дожидаться проверки получения каждого сегмента, вместо этого проверка происходит в конце этого окна, для уже гораздо большего объема данных. Реализован этот механизм хардвеерно. В начале установки соединения как раз и договариваются о необходимом размере буфера.

Urgent data – это флаг сегмента (Беленькая употребляет слово пакет…. Но в других лекциях говорит о сегменте), который обозначает что его нужно поставить в очередь в буфер, но с высоким приоритетом.

push – это управляющий флаг, отправляющий текущий пакет на немедленную отсылку (поставь меня первым в буфере). Это функция проталкивания (для того, чтобы убедиться, что пакет точно дошел).

Билет №9.