Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
92
Добавлен:
21.05.2015
Размер:
1.44 Mб
Скачать

Система прерываний

Прерывание означает временное прекращение основного процесса вычислений для выполнения некоторых запланированных или незапланированных действий, вызываемых работой аппаратуры или программы.

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

Адрес программы-обработчика прерывания вычисляется по таблице векторов прерываний.

Механизм прерываний поддерживается на аппаратном уровне.

В зависимости от источника, прерывания делятся на

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

программные - вызываются искусственно с помощью соответствующей команды из программы (int), предназначены для выполнения некоторых действий операционной системы., являются синхронными;

исключения - являются реакцией микропроцессора на нестандартную ситуацию, возникшую внутри микропроцессора во время выполнения некоторой команды программы.

По другой классификации прерывания делятся на

внешние - вызываются внешними по отношению к микропроцессору событиями

(по существу - это группа аппаратных прерываний) Вложенных прерываний нет!

внутренние - возникают внутри микропроцессора во время вычислительного процесса (по существу - это исключительные ситуации и программные прерывания).

Программные прерывания

Обработка машинной команды int n - это программное прерывание. С помощью программных прерываний программист может обратиться в нужное для него время за обслуживанием своих запросов либо к ОС, либо к

BIOS, либо к собственным обработчикам прерываний.

Порты ввода/вывода

Являются адресами, используемыми процессором для того, что бы непосредственно соединять с устройствами. Эти адреса такие же как и адреса памяти, но не для хранения информации.

В архитектуре ПК доступны 1024 порта ввода/вывода. Эти порты должны индивидуально соответствовать единственной плате или единственному какому-то устройству, т.к. существует потенциальная возможность для конфликтов.

RISC (англ. Reduced Instruction Set Computing) — вычисления с сокращённым набором команд.

Это концепция проектирования процессоров, которая во главу ставит следующий принцип: более компактные и простые инструкции выполняются быстрее. Простая архитектура позволяет удешевить процессор, поднять тактовую частоту, а также распараллелить исполнение команд между несколькими блоками исполнения (т.н. суперскалярные архитектуры процессоров). Многие ранние RISC-процессоры даже не имели команд умножения и деления. Идея создания RISC процессоров пришла после того, как в 1970-х годах ученые из IBM обнаружили, что многие из функциональных особенностей традиционных ЦПУ игнорировались программистами. Отчасти это был побочный эффект сложности компиляторов. В то время компиляторы могли использовать лишь часть из набора команд процессора. Следующее открытие заключалось в том, что, поскольку некоторые сложные операции использовались редко, они как правило были медленнее, чем те же действия, выполняемые набором простых команд. Это происходило из-за того, что создатели процессоров тратили гораздо меньше времени на улучшение сложных команд, чем на улучшение простых.

CISC (англ. Complex Instruction Set Computing) — концепция проектирования процессоров, которая характеризуется следующим набором свойств:

Нефиксированным значением длины команды.

Арифметические действия, кодируется в одной инструкции.

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

Типичными представителями являются процессоры на основе x86 команд (исключая современные Intel Pentium 4, Pentium D, Core, AMD Athlon, Phenom, которые являются гибридными) и процессоры Motorola MC680x0.

Наиболее распространённая архитектура современных настольных, серверных и мобильных процессоров построена по архитектуре Intel x86 (или х86-64 в случае 64-разрядных процессоров). Формально, все х86-процессоры являлись CISC-процессорами, однако новые процессоры, начиная с Intel486DX, являются CISC-процессорами с RISC-ядром. Они непосредственно перед исполнением преобразуют CISC-инструкции процессоров x86 в более простой набор внутренних инструкций RISC.

В микропроцессор встраивается аппаратный транслятор, превращающий команды x86 в команды внутреннего RISC-процессора. При этом одна команда x86 может порождать несколько RISC-команд(в случае процессоров типа P6 —— до 4-х RISC команд в большинстве случаев). Исполнение команд происходит на суперскалярном конвейере одновременно по несколько штук.

Это потребовалось для увеличения скорости обработки CISC-команд, так как известно, что любой CISC-процессор уступает RISC-процессорам по количеству выполняемых операций в секунду. В итоге, такой подход и позволил поднять производительность CPU

1_13 Компьютерная сеть (вычислительная сеть, сеть передачи данных) — система связи двух или более компьютеров и/или компьютерного оборудования (серверы, маршрутизаторы и другое оборудование). Для передачи информации могут быть использованы различные физические явления, как правило — различные виды электрических сигналов или электромагнитного излучения.

Классификация

По размеру, охваченной территории

Персональная сеть (PAN, Personal Area Network)

Локальная сеть (LAN, Local Area Network)

HomePNA

Объединение нескольких зданий (CAN, Campus Area Network)

Городская сеть (MAN, Metropolitan Area Network)

Национальная сеть

Глобальная вычислительная сеть (WAN, Wide Area Network)

Сравнительная характеристика сетей (особенности локальных, глобальных и городских сетей)

По типу функционального взаимодействия

Клиент-сервер

Смешанная сеть

Точка-точка

Одноранговая сеть

Многоранговые сети

По типу сетевой топологии

Шина

Звезда

Кольцо

Решётка

Смешанная топология

Полносвязная топология

По функциональному назначению

Сети хранения данных

Серверные фермы

Сети управления процессом

Сети SOHO

По сетевым ОС

На основе Windows

На основе UNIX

На основе NetWare

Смешанные

По необходимости поддержания постоянного соединения

Пакетная сеть, например Фидонет и UUCP

Онлайновая сеть, например Интернет и GSM

Сетевая тополо́гия (от греч. τόπος, - место) — способ описания конфигурации сети, схема расположения и соединения сетевых устройств.

Сетевая топология может быть

физической — описывает реальное расположение и связи между узлами сети.

логической — описывает хождение сигнала в рамках физической топологии.

информационной — описывает направление потоков информации, передаваемых по сети.

управления обменом — это принцип передачи права на захват сети.

Существует множество способов соединения сетевых устройств, из них можно выделить пять базовых топологий: шина, кольцо, звезда, ячеистая топология и решётка. Остальные способы являются комбинациями базовых. В общем случае такие топологии называются смешанными или гибридными, но некоторые из них имеют собственные названия, например «Дерево».

A - линия

B - каждый с каждым

C - звезда

D - кольцо

E - шина

F – дерево

Сетевое оборудование — устройства, необходимые для работы компьютерной сети, например: маршрутизатор, коммутатор, концентратор, патч-панель и др. Обычно выделяют активное и пассивное сетевое оборудование.

Активное сетевое оборудование

Под этим названием подразумевается оборудование, за которым следует некоторая «интеллектуальная» особенность. То есть Маршрутизатор, коммутатор (свитч) и т.д. являются активным сетевым оборудованием. Напротив — повторитель (репитер) и концентратор (хаб) не являются АСО, так как просто повторяют электрический сигнал для увеличения расстояния соединения или топологического разветвления и ничего «интеллектуального» собой не представляют. Но управляемые свитчи относятся к активному сетевому оборудованию, так как могут быть наделены некоей «интеллектуальной особенностью».

Пассивное сетевое оборудование

Под пассивным сетевым оборудованием подразумевается оборудование, не наделенное «интеллектуальными» особенностями. Например, кабель (коаксиальный и витая пара (UTP/STP)), вилка/розетка (RG58, RJ45, RJ11, GG45), повторитель (репитер), концентратор (хаб), балун (balun) для коаксиальных кабелей (RG-58) и т.д.

Сетевая операционная система — операционная система со встроенными возможностями для работы в компьютерных сетях. К таким возможностям можно отнести:

поддержку сетевого оборудования

поддержку сетевых протоколов

поддержку протоколов маршрутизации

поддержку фильтрации сетевого трафика

поддержку доступа к удалённым ресурсам, таким как принтеры, диски и т.п. по сети

поддержку сетевых протоколов авторизации

наличие в системе сетевых служб, позволяющих удалённым пользователям использовать ресурсы компьютера

Примеры сетевых операционных систем:

Novell NetWare, Microsoft Windows (95, NT и более поздние), Различные UNIX системы, такие как Solaris, GNU/Linux, FreeBSD, IOS

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

Понятия ОС:

Системные вызовы (system calls, программные прерывания) – это интерфейс между операционной системой и пользовательской программой. Они создают, удаляют и используют различные объекты, главные из которых – процессы и файлы. При системном вызове задача переходит в привилегированный режим или режим ядра (kernel mode).

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

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

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

Поток – подпроцесс в рамках процесса. Потоки работают в том же адресном пространстве, что и родительский процесс, имеют одни и те же дескрипторы файлов.

Операции над процессами: создание, завершение, приостановка, блокирование.

Функции ОС:

  1. базовые – выполнение пользовательских программ, управление устройствами долговременной памяти, предоставление доступа к различным устройствам ввода-вывода, предоставление некоторого пользовательского интерфейса

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

Классификация ОС

Реализация многозадачности:

* многозадачные (Unix, OS/2, Windows);

* однозадачные (например, MS-DOS).

Поддержка многопользовательского режима:

* однопользовательские (MS-DOS, Windows 3.x);

* многопользовательские (Windows NT, Unix).

Многопроцессорные (Linux, Solaris, Windows NT)

* симметричные (на каждом процессоре функционирует одно и то же ядро, и задача может быть выполнена на любом процессоре, то есть обработка полностью децентрализована. При этом каждому из процессоров доступна вся память)

* асимметричные (процессоры неравноправны. Обычно существует главный процессор (master) и подчиненные (slave), загрузку и характер работы которых определяет главный процессор)

Системы реального времени

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

Они используются для управления различными техническими объектами или технологическими процессами. Такие системы характеризуются предельно допустимым временем реакции на внешнее событие, в течение которого должна быть выполнена программа, управляющая объектом. Система должна обрабатывать поступающие данные быстрее, чем они могут поступать, причем от нескольких источников одновременно.

Для того чтобы операционная система могла выполнять операции над процессами, каждый процесс представляется в ней некоторой структурой данных. Эта структура содержит информацию, специфическую для данного процесса:

  • состояние, в котором находится процесс;

  • программный счетчик процесса или, другими словами, адрес команды, которая должна быть выполнена для него следующей;

  • содержимое регистров процессора;

  • данные, необходимые для планирования использования процессора и управления памятью (приоритет процесса, размер и расположение адресного пространства и т. д.);

  • учетные данные (идентификационный номер процесса, какой пользователь инициировал его работу, общее время использования процессора данным процессом и т. д.);

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

Планирование

Невытесняющее (MS Windows 3.1 и ОС Apple Macintosh)

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

Вытесняющее (системы разделения времени)

В этом режиме планирования процесс может быть приостановлен в любой момент исполнения. Операционная система устанавливает специальный таймер для генерации сигнала прерывания по истечении некоторого интервала времени – кванта. После прерывания процессор передается в распоряжение следующего процесса.

Алгоритмы планирования:

First-Come, First-Served – очередь до полного выполнения

RoundRobin – модификация FCFS с фиксированным временем выполнения каждого процесса.

Shortest-Job-First (Невытесняющий) – полностью выполняются процессы требующие наименьшего времени

Shortest-Job-First (Вытесняющий) – при появлении более быстрого процесса выполнение текущего прекращается

Гарантированное планирование. При интерактивной работе N пользователей в вычислительной системе можно применить алгоритм планирования, который гарантирует, что каждый из пользователей будет иметь в своем распоряжении ~1/N часть процессорного времени.

Приоритетное планирование. При приоритетном планировании каждому процессу присваивается определенное числовое значение – приоритет, в соответствии с которым ему выделяется процессор.

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

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

* Семафоры представляют собой доступные ресурсы, которые могут быть приобретены несколькими потоками в одно и то же время, пока пул ресурсов не опустеет. Тогда дополнительные потоки должны ждать, пока требуемое количество ресурсов не будет снова доступно. Семафоры очень эффективны, поскольку они позволяют одновременный доступ к ресурсам.

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

* События. События полезны в тех случаях, когда необходимо послать сообщение потоку, сообщающее, что произошло определенное событие. Например, при асинхронных операциях ввода и вывода из одного устройства, система устанавливает событие в сигнальное состояние когда заканчивается какая-либо из этих операций. Один поток может использовать несколько различных событий в нескольких перекрывающихся операциях, а затем ожидать прихода сигнала от любого из них.

Тупики

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

Условия возникновения тупиков были сформулированы Коффманом, Элфиком и Шошани в 1970 г.

1. Условие взаимоисключения (Mutual exclusion). Одновременно использовать ресурс может только один процесс.

2. Условие ожидания ресурсов (Hold and wait). Процессы удерживают ресурсы, уже выделенные им, и могут запрашивать другие ресурсы.

3. Условие неперераспределяемости (No preemtion). Ресурс, выделенный ранее, не может быть принудительно забран у процесса. Освобождены они могут быть только процессом, который их удерживает.

4. Условие кругового ожидания (Circular wait). Существует кольцевая цепь процессов, в которой каждый процесс ждет доступа к ресурсу, удерживаемому другим процессом цепи.

1_15 Блок управления памятью компьютера (MMU — memory management unit).

В настоящее время, чаще всего, упоминается в связи с организацией т. н. виртуальной памяти и, следовательно,

критически важен для многих современных

многозадачных ОС, включая все современные Windows NT и многие из UNIX‐подобных (специальная редакция ядра Linux может работать без MMU, например, μClinux).

Блок управления памятью в настоящее время очень часто включается в состав центрального процессора или чипсета компьютера.

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

В случае расположения данных на внешних запоминающих устройствах память может быть представлена, например, специальным разделом на жёстком диске (partition) или отдельным файлом на обычном разделе диска.

Также существует термин swap (англ. swap, /swɔp/) также означающий виртуальную память (точнее способ её представления), или же означает подкачку данных с диска.

Применение механизма виртуальной памяти позволяет:

упростить адресацию памяти клиентским программным обеспечением;

рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);

изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью);

Соседние файлы в папке Ответы к ГОСам от Димы