- •Безопасность
- •Аппаратное обеспечение
- •Программное обеспечение
- •Линии связи и сети
- •15.2. Защита
- •Защита памяти
- •Контроль доступа, ориентированный на пользователя
- •Контроль доступа, ориентированный на данные
- •15.3. Взломщики
- •Методы вторжения
- •Защита паролей
- •Уязвимость паролей
- •Контроль доступа
- •Стратегии выбора паролей
- •Выявление вторжений
- •15.4. Зловредное программное обеспечение
- •Зловредные программы
- •Логические бомбы
- •Троянские кони
- •Природа вирусов
- •Виды вирусов
- •Макровирусы
- •Подходы к борьбе с вирусами
- •Обобщенное дешифрование
- •Цифровая иммунная система
- •15.5. Системы с доверительными отношениями
- •Защита от троянских коней
- •15.6. Безопасность операционной системы windows 2000
- •15.7. Резюме, ключевые термины и контрольные вопросы
- •Контрольные вопросы
- •15.8. Рекомендуемая литература
- •Приложение. Шифрование
- •Стандартное шифрование
- •Стандарт шифрования данных
- •Тройной алгоритм шифрования данных
- •Улучшенный стандарт шифрования
- •Шифрование с открытым ключом
- •А.2. Архитектура протоколов tcp/ip
- •Уровни протокола tcp/ip
- •Приложения tcp/ip
- •Б.1. Мотивация
- •Б.З. Преимущества объектно-ориентированного подхода
- •Б.2. Объектно-ориентированные концепции
- •Структура объектов
- •Классы объектов
- •Наследование
- •Полиморфизм
- •Включение
- •Список литературы
Включение
Экземпляры объекта, которые содержат в себе другие объекты, называются составными объектами (composite objects). Включение может быть достигнуто путем использования в объекте указателя на другой объект. Преимущество составных объектов заключается в том, что они позволяют представлять сложные структуры. Например, объект, который входит в составной объект, сам может быть составным.
Обычно из составных объектов конструируются структуры, имеющие древовидную топологию — т.е. нельзя использовать никаких циклических ссылок, и каждый экземпляр дочернего объекта может иметь только один экземпляр родительского объекта.
Важно понять различие между иерархией наследования классов объектов и иерархией, возникающей в составных объектах. Они никак не связаны между собой. Наследование просто позволяет с минимальными усилиями определять различные типы объектов. Включение объектов позволяет создавать сложные структуры данных.
Б.З. ПРЕИМУЩЕСТВА ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА
В [CAST92] перечислены такие преимущества объектно-ориентированного подхода.
Лучшая организация сложных наследственных отношений. Используя наследственность, можно эффективно определять взаимосвязанные понятия, ресурсы и другие объекты. С помощью включения можно конструировать произвольные структуры данных, отражающие поставленную задачу. Объектно- ориентированные языки программирования и структуры данных позволяют разработчикам описывать ресурсы и функции операционной системы таким способом, который отражает представление об этих ресурсах и функциях.
Снижение усилий, затрачиваемых на разработку, за счет повторного использования. Повторное использование классов объектов, которые уже на писаны, протестированы и опробованы другими, сокращает время, необходимое для разработки и тестирования.
Повышение степени расширяемости и облегчение поддержки систем.
Обычно на протяжении всего времени жизни продукта 65% его стоимости затрачивается на поддержку этого продукта, включая его улучшение и устранение недостатков. Объектно-ориентированный подход сокращает этот показатель. Использование объектно-ориентированных программ помогает сократить число возможных взаимодействий между различными частями этих программ, обеспечивая тем самым минимальное воздействие, которое может оказать изменение в реализации класса на остальную часть системы.
Эти преимущества способствуют тому, что разработка операционных систем ведется в направлении объектно-ориентированных систем. Объекты позволяют разработчикам изменять операционную систему так, чтобы она удовлетворяла новым требованиям, не нарушая ее целостности. Кроме того, объекты являются строительными блоками, использующимися при разработке распределенных систем. Благодаря тому, что объекты взаимодействуют между собой с помощью сообщений, не имеет значения, находятся ли обменивающиеся сообщениями объекты в одной и той же системе или в двух разных системах, подключенных в одну сеть. Данные, функции и потоки могут быть динамически назначены рабочим станциям и серверам. Благодаря всем перечисленным достоинствам объектно-ориентированного подхода растет его роль при разработке операционных систем, предназначенных для персональных компьютеров и рабочих станций.
Словарь терминов
Адресное пространство (Address space). Диапазон адресов, доступный компьютерной программе.
Архитектура коммуникаций (Communications architecture). Аппаратное и программное обеспечение, реализующее функции коммуникации.
Асинхронная операция (Asynchronous Operation) Операция, которая выполняется без точной связи с некоторым событием или в непредсказуемое время; примером может служить подпрограмма диагностики ошибок, которая может получить управление в любой момент работы основной программы.
База данных (Database). Набор взаимосвязанных данных, зачастую с управляемым дублированием, организованных в соответствии со схемой для обслуживания одного или нескольких приложений. Данные хранятся так, чтобы они могли быть использованы различными программами безотносительно к структуре или организации данных. Для добавления новых данных, их изменения и выборки существующих используется общий подход.
Базовый адрес (Base address). Адрес, используемый в качестве начального при вычислении адресов в процессе выполнения программы.
Бактерия (Bacteria). Программа, потребляющая системные ресурсы путем самовоспроизведения.
Беовульф (Beowulf). Класс кластеризованных вычислительных систем, применяемых для уменьшения соотношения цена/производительность системы в целом при сохранении возможности выполнения вычислений, для которых предназначена данная система. Большинство таких систем реализовано на компьютерах Linux.
Бинарный семафор (Binary semaphore). Семафор, принимающий только два значения — 0 или 1.Блок (Block). 1) Набор последовательных записей, представляющих собой единую группу; группы разделены промежутками. 2) Группа битов, передаваемая как единое целое.
Бригадное планирование (Gang scheduling). Планирование множества связанных потоков при одновременной работе на множестве процессоров по одному потоку на процессор.
Буфер поиска трансляции (Translation Lookaside buffer, TLB). Высокоскоростной кэш, использующийся как часть схемы страничной виртуальной памяти для хранения записей таблицы страниц, к которым недавно были обращения. TLB снижает частоту обращений к основной памяти для выборки записей таблицы страниц.
Взаимоблокировка (Deadlock). 1) Тупиковая ситуация, возникающая при ожидании несколькими процессами доступности ресурса, который не может быть освобожден, будучи захвачен процессом, находящимся в аналогичном состоянии ожидания. 2) Тупиковая ситуация, возникающая при ожидании несколькими процессами некоторого действия или ответа от процесса, который находится в аналогичном состоянии ожидания.
Взаимоисключение (Mutual exclusion). Ситуация, в которой существует множество процессов, но получить доступ к некоторому ресурсу или выполнить некоторую функцию в определенный момент времени может лишь один из них. См. critical section.
Виртуальный адрес (Virtual address). Адрес ячейки виртуальной памяти.
Вирус (Virus). Секретная недокументированная подпрограмма, внедренная в обычную программу, выполняющую полезные действия. Запуск такой программы приводит к выполнению этой секретной подпрограммы. Отличается способностью самостоятельного внедрения в другие программы (заражения).
Включенное прерывание (Enabled interrupt). Условие (обычно осуществляемое операционной системой), при котором процессор отвечает на сигналы запросов прерываний определенного класса.
Внешняя фрагментация (External fragmentation). Происходит при разделении памяти на части переменного размера, соответствующие блокам данных, размещаемых в памяти (например, сегменты в основной памяти). При загрузке и выгрузке сегментов из памяти между занятыми областями памяти возникают разрывы.
Внутренняя фрагментация (Internal fragmentation). Происходит при разделении памяти на части фиксированного размера (например, кадры страниц в основной памяти или физические блоки на диске). Если блоку данных отводится одна или несколько частей, в последней из них может оказаться неиспользуемое пространство. Это происходит, когда размер данных в последней части меньше ее размера.
Время отклика (Response time). Время, прошедшее между концом передачи сообщения с запросом и началом получения ответного сообщения, измеряемое на запрашивающем терминале.
Вторичная память (Secondary memory). Память, расположенная вне вычислительной системы, например диски или магнитные ленты.
Выборка по требованию (Demand paging). Передача страницы из вторичной памяти в основную в тот момент, когда эта страница оказывается запрошенной процессом. См. prepaging.
Вытеснение (Preemption). Возврат ресурса, захваченного процессом, до окончания его использования этим процессом.
Голодание (Starvation). Ситуация, когда выполнение процесса бесконечно откладывается в связи с тем, что предпочтение отдается другим процессам.
Дескриптор процесса (Process descriptor). To же, что и управляющий блок процесса (process control block).
Динамическое перемещение (Dynamic relocation). Процесс, который получает новый абсолютный адрес программы во время выполнения, так что программа может работать в разных областях основной памяти.
Диспетчеризация (Dispatch). Распределение времени процессора между заданиями, готовыми к выполнению.
Драйвер устройства (Device driver). Модуль операционной системы (обычно находящийся в ядре), который работает непосредственно с устройством или контроллером ввода-вывода.
Задание (Job), Последовательность вычислительных этапов, собранных для запуска как единое целое.
Задача (Task). To же, что и процесс (process).
Задача реального времени (Real-time task) Задача, которая выполняется в связи с некоторыми процессами, функциями или событиями, внешними по отношению к компьютерной системе, и которая должна реагировать на внешние события за приемлемое для них время.
Запись (Record). Группа элементов данных, рассматриваемая как единое целое.
Злонамеренное программное обеспечение (Malicious software) Программное обеспечение, разработанное с целью вызвать повреждения или использовать ресурсы целевого компьютера. Зачастую такое программное обеспечение маскируется под полезное; нередко оно самораспространяется по электронной почте или через инфицированные дискеты. Включает в себя вирусы, троянских коней, червей, программы для исчерпания ресурсов.
Индексированный файл (Indexed file). Файл, обращение к записям которого производится в соответствии со значениями ключевых полей. Индекс должен указывать положение каждой записи на основе значения ее ключа.
Индексно-последовательный доступ (Indexed sequential access). Организация записей и доступ к записям во вторичной памяти посредством индексов ключей, хранящихся в файлах или отдельно от них. Сами файлы имеют последовательную организацию области данных.
Индексно-последовательный файл (Indexed sequential file). Файл, записи в котором упорядочены в соответствии со значениями ключевого поля. Основной файл данных сопровождается индексным файлом, содержащим частичный список значений ключей. Индекс обеспечивает быстрый поиск и доступ к требуемой записи. Область индекса может быть частью основного файла.
Индексный доступ (Indexed access). Организация записей и доступ к записям в памяти с использованием индексов.
Интерфейс прикладного программирования (Application programming interface, API). Стандартизованная библиотека программных средств, используемая разработчиками программного обеспечения для создания приложений, совместимых с определенной операционной системой и принятым графическим пользовательским интерфейсом.
Кадр (Frame). В системе виртуальной страничной памяти — блок фиксированной длины основной памяти, использующийся для хранения одной страницы виртуальной памяти.
Кадр страницы (Page frame). Блок фиксированного размера в основной памяти, используемый для хранения страницы.
Канал (Pipe). Циклический буфер, позволяющий двум процессам сообщаться в соответствии с моделью производитель/потребитель. Канал представляет собой очередь "первым вошел — первым вышел", в который пишет один из процессов, а второй — читает. В некоторых системах используется обобщение каналов, что обеспечивает возможность выборки любого элемента из очереди.
Квантование времени (Time slicing). Режим работы, при котором два или несколько процессов получают кванты времени на одном и том же процессоре.
Кластер (Cluster). Группа взаимосвязанных компьютеров, работающих как единый вычислительный ресурс (что создает иллюзию работы одной машины). Каждый из компьютеров кластера представляет собой систему, которая может работать и вне кластера.
Клиент (Client). Процесс, который запрашивает сервисы у процесса-сервера, отправляя ему сообщения.
Контекст выполнения (Execution context). To же, что и состояние процесса (process state).
Критический раздел (Critical section). В асинхронной процедуре компьютерной программы — часть, которая не может выполняться одновременно со связанным критическим разделом другой асинхронной процедуры. См. mutual exclusion.
Круговое (карусельное) планирование (Round robin). Алгоритм планирования, при котором процессы активируются в фиксированном циклическом порядке. Процессы, которые не могут выполняться в связи с состоянием ожидания некоторого события (например, завершения дочернего процесса или операции ввода-вывода), просто возвращают управление планировщику.
Кэш диска (Disk cache). Буфер, обычно размещаемый в основной памяти, который работает в качестве кэша дисковых блоков между дисковой памятью и остальной частью основной памяти.
Кэш-память (Cache memory). Память, меньшая по размеру и более быстрая, чем основная память; расположена между процессором и основной памятью. Кэш работает в качестве буфера для ячеек памяти, обращения к которым были последними.
Ловушка (Trap). Непрограммируемый условный переход к определенному адресу, автоматически активируемый аппаратным обеспечением; позиция, из которой был выполнен переход, записывается.
Логическая запись (Logical record) Структура данных в прикладной программе, не зависящая от ее физического окружения; части одной логической записи могут располагаться в различных физических записях, так же как и несколько логических записей или их частей могут располагаться в одной физической записи.
Логический адрес (Logical address). Ссылка на местоположение в памяти, не зависящее от текущего размещения данных в памяти. Перед тем как получить данные из памяти, должно быть выполнено преобразование этого адреса в физический.
Люк (Trap door). Секретная недокументированная входная точка в программу, используемая для получения доступа минуя обычные методы аутентификации.
Макроядро (Macrokernel). Большое ядро операционной системы, обеспечивающее широкий диапазон сервисов.
Метод доступа (Access method). Метод, используемый для поиска в файле записи или множества записей.
Микроядро (Microkernel). Малое привилегированное ядро операционной системы, обеспечивающее планирование процессов, управление памятью и коммуникаций для выполнения прочих функций, традиционно связываемых с ядром операционной системы, использует отдельные процессы.
Многозадачность (Multiprogramming). Режим работы, при котором обеспечивается чередующееся выполнение двух или большего количества программ одним процессором. Синоним термина multitasking.
Многозадачность (Multitasking). Режим работы, при котором обеспечивается параллельное или чередующееся выполнение двух или большего количества программ. Синоним термина multiprogramming.
Многопроцессорная система (Multiprocessor). Компьютер, имеющий два и более процессора с общим доступом к основной памяти.
Многопроцессорность (Multiprocessing). Режим работы, при котором параллельные вычисления обеспечиваются двумя или более процессорами многопроцессорной системы.
Многопроцессорные системы с неоднородным доступом к памяти (Nonuniform memory access (NUMA) multiprocessor). Многопроцессорная система с общей памятью, в которой время доступа данного процессора к слову в памяти зависит от местоположения этого слова.
Многоуровневая безопасность (Multilevel security). Управление доступом на нескольких уровнях классификации данных.
Модель взаимодействия открытых систем (Open systems interconnection (OSI) reference model). Модель взаимосвязи между сотрудничающими устройствами. Определяет семиуровневую архитектуру коммуникационных функций.
Модуль данных протокола (Protocol data unit). Информация, передаваемая по сети как единый модуль, который может содержать управляющую информацию, адрес или данные.
Монитор (Monitor). Конструкция языка программирования, обеспечивающая абстрактные типы данных и взаимоисключительный доступ к множеству процедур.
Монолитное ядро (Monolithic kernel). Большое ядро, виртуально содержащее всю операционную систему, включая планировщик, файловую систему, драйверы устройств и управление памятью. Все функциональные компоненты ядра имеют доступ ко всем его внутренним структурам данных и подпрограммам. Обычно монолитное ядро реализуется как единый процесс, в котором все элементы разделяют одно и то же адресное пространство.
Непривилегированное состояние (Nonprivileged state). Контекст выполнения, не позволяющий выполнять привилегированные команды, такие, как останов процессора или команды ввода-вывода.
Обнаружение взаимоблокировки (Deadlock detection). Методика, состоящая в удовлетворении по возможности всех запросов на ресурсы при периодической проверке наличия состояния взаимоблокировки.
Оболочка (Shell). Часть операционной системы, интерпретирующая интерактивные пользовательские команды и команды языка управления заданиями. (По сути, представляет собой интерфейс между пользователем и операционной системой.)
Обработчик прерывания (Interrupt handler). Подпрограмма, обычно являющаяся частью операционной системы. В случае прерывания управление передается соответствующему обработчику, который предпринимает определенные действия в ответ на вызвавшие прерывание условия.
Образ процесса (Process image). Все составляющие процесса, включая программный код, данные, стек и управляющий блок процесса.
Ожидание занятости (Busy waiting). Повторяющееся выполнение цикла в коде программы в процессе ожидания некоторого события.
Операционная система (Operating system). Программное обеспечение, управляющее выполнением программ и предоставляющее различные сервисы, такие, как распределение ресурсов, планирование, управление вводом-выводом и управление данными.
Организация файла (File organization). Физический порядок записей в файле, определяемый методом доступа, использовавшимся для их сохранения и выборки.
Основная память (Main memory) Память, внутренняя по отношению к вычислительной системе, адресуемая программами. Ее ячейки могут быть загружены в регистры для последующего выполнения или обработка.
Отключенное прерывание (Disabled interrupt). Условие (обычно осуществляемое операционной системой), при котором процессор игнорирует сигналы запросов прерываний определенного класса.
Относительный адрес (Relative address). Адрес, вычисляемый как смещение относительно некоторого базового адреса.
Пакетная обработка (Batch processing). Метод выполнения потока компьютерных программ, при котором запущенная программа полностью завершается до запуска следующей программы из множества.
Параллельные (Concurrent). Относится к процессам и потокам, которые могут выполняться в один промежуток времени и при этом поочередно использовать общие ресурсы.
Первым вошел — первым вышел (First-in-first-out, FIFO). Метод построения очереди, при котором следующим выбираемым элементом будет элемент, находившийся в очереди наибольшее время.
Переключение потоков (Thread switch). Операция переключения процессора с выполнения одного потока на выполнение другого потока в пределах одного процесса.
Переключение процессов (Process switch). Операция переключения процессора с выполнения одного процесса на выполнение другого, путем сохранения управляющего блока процессора, регистров и другой информации первого процесса и замены их соответствующей информацией второго процесса.
Переключение режимов (Mode switch). Аппаратная операция, заставляющая процессор работать в другом режиме (ядра или процесса). При переключении процессора в режим ядра сохраняется счетчик команд, слово состояния процессора и его регистры. При переключении в режим процесса сохраненная ранее информация восстанавливается.
Перенос процесса (Process migration). Перемещение достаточного количества состояния процесса.
Планирование (Schedule). Выбор задания для выполнения. В некоторых операционных системах планироваться могут и другие единицы, например операции ввода-вывода.
Повторно используемый ресурс (Reusable resource). Ресурс, который может безопасно использоваться в определенный момент времени только одним процессом и не расходуется им. Процесс получает единицы повторно используемого ресурса, которые позже освобождает для их повторного использования другими процессами. Примерами повторно используемых ресурсов могут служить процессоры, каналы ввода-вывода, основная и вторичная память, устройства и структуры данных, такие, как файлы, базы данных и семафоры.
Подкачка страниц (Paging). Перемещение страниц между основной и вторичной памятью.
Поле (Field). 1) Определяет логические данные, являющиеся частью записи. 2) Элементарная единица записи, которая может содержать элемент данных, совокупность данных, указатель и т.п.
Последним вошел — первым вышел (Last in first out, LIFO). Метод организации очереди, при котором следующим выбираемым элементом будет последний помещенный в нее элемент.
Последовательный доступ (Sequential access). Возможность запоминания данных в устройстве хранения в той последовательности, в которой эти данные предоставляются прикладной программой, а также получения данных в том порядке, в котором они были запомнены.
Последовательный файл (Sequential file). Файл, в котором записи расположены в соответствии с порядком их формирования и обрабатываются в той же последовательности от начала файла.
Посредник запросов к объектам (Object request broker). В объектно-ориентированной системе действует в качестве посредника для запросов, посылаемых клиентами серверу.
Поток (Thread), Независимо планируемый контекст выполнения, разделяющий единое адресное пространство с другими потоками.
Почтовый ящик (Mailbox). Структура данных, совместно используемая рядом процессов для реализации очереди сообщений. Сообщения посылаются в почтовый ящик и извлекаются из него вместо непосредственной передачи между процессами.
Предварительная выборка (Prepaging). Выборка страниц до запроса в связи с прерыванием из-за обращения к странице. Тем самым снижается количество операций дискового ввода-вывода. Сравните с выборкой по требованию (demand paging).
Предотвращение взаимоблокировки (Deadlock prevention). Методика предотвращения возникновения состояния взаимоблокировки путем устранения одного из необходимых условий ее осуществления.
Прерывание (Interrupt). Приостановка нормального выполнения процесса (компьютерной программы), вызванная, например, внешним по отношению к процессу событием и осуществляемая таким образом, что по ее завершении выполнение процесса может быть продолжено.
Прерывание (из-за) отсутствия страницы (Page fault). Происходит тогда, когда страница, содержащая слово, к которому выполняется обращение, отсутствует в основной памяти. Это вызывает генерацию прерывания, обработчик которого загружает требуемую страницу в основную память.
Привилегированное состояние (Privileged state). Контекст выполнения, разрешающий выполнение любых аппаратных команд.
Привилегированные команды (Privileged Instruction). Команды, которые могут выполняться только в определенном режиме, обычно операционной системой.
Проверенная (сертифицированная) система (Trusted system). Компьютер и операционная система, которые могут быть проверены на соответствие данной стратегии безопасности.
Процесс (Process). Выполняемая программа. Процесс управляется и планируется операционной системой. То же, что и задача (task).
Прямой доступ (Direct access). Возможность получения данных из устройства хранения или внесения их туда в последовательности, не зависящей от их относительного расположения, посредством использования адреса физического размещения данных.
Прямой доступ к памяти (Direct memory access, DMA). Способ ввода-вывода, при котором специальный контроллер DMA управляет обменом данных между устройством ввода-вывода и основной памятью. Процессор посылает контроллеру DMA запрос на пересылку блока данных; по завершении этой операции процессор уведомляется об этом прерыванием.
Псевдоблокировка (Livelock). Ситуация, когда два или большее количество процессов изменяют свое состояние в ответ на изменение состояния другого процесса(процессов) без выполнения какой-либо полезной работы. Эта ситуация похожа на взаимоблокировку тем, что процессы, по сути, ничего не делают, но при этом ни один из них не заблокирован и не находится в состоянии ожидания.
Рабочее множество (Working set). Рабочее множество с параметром Д в виртуальный момент времени t процесса (обозначается W (лД)), представляет собой множество страниц, к которым процесс обращался за последние Д единиц времени. Сравните с резидентным множеством (resident set).
Разделение времени (Time sharing). Параллельное использование устройства несколькими пользователями.
Рандеву (Rendezvous). Ситуация в передаче сообщений, когда и отправитель, и получатель сообщения блокируются до окончания доставки сообщения.
Распределение памяти (Memory partitioning). Разделение памяти на независимые разделы.
Распределенная операционная система (Distributed operating system). Общая операционная система, совместно используемая сетью компьютеров. Распределенная операционная система обеспечивает поддержку для межпроцессного взаимодействия, перемещение процессов, взаимоисключения, а также предотвращение и обнаружение взаимоблокировок.
Расходуемые ресурсы (Consumable resources). Ресурсы, которые могут быть созданы (произведены) и уничтожены (потреблены). При получении процессом ресурса последний прекращает существование. Примерами расходуемых ресурсов могут служить прерывания, сигналы, сообщения, информация в буферах ввода-вывода.
Реентерабельная процедура (Reentrant procedure). Подпрограмма, вход в которую может быть выполнен до завершения ее предыдущего выполнения.
Резидентное множество (Resident set). Часть процесса, находящаяся в конкретный момент времени в основной памяти. Сравните с рабочим множеством (working set).
Результативность поиска (Hit ratio). В двухуровневой памяти — доля обращений к памяти, запрашиваемые данные которых находятся в быстрой памяти (кэше).
Свопинг (Swapping). Передача сегмента или страницы данных из вторичной памяти в основную или в обратном направлении,
Связанный список (Chained list). Список, данные в котором могут быть рассредоточены, но каждый элемент списка при этом содержит информацию, определяющую положение следующего элемента списка.
Сегмент (Segment). В виртуальной памяти — блок, имеющий виртуальный адрес. Блоки программы могут быть разной, и даже динамически изменяемой, длины.
Сегментация (Segmentation). Разделение программы или данных на сегменты как часть схемы виртуальной памяти.
Семафор (Semaphore). Целое значение, используемое в целях передачи сигналов между процессами. С семафором могут быть выполнены три атомарные операции: инициализация, увеличение и уменьшение. В зависимости от определения конкретного семафора операция уменьшения может приводить к блокированию процесса, а операция увеличения — к разблокированию.
Сервер (Server). 1) Процесс, отвечающий на запросы клиента посредством сообщений. 2) В сети — компьютер, предоставляющий определенные устройства или услуги другим компьютерам, например файл-сервер, сервер печати, почтовый сервер.
Сессия (Session). Набор из одного или нескольких процессов, представляющий единое интерактивное пользовательское приложение или функцию операционной системы. Весь ввод информации, поступающий от клавиатуры и мыши, направляется к сессии переднего плана, и весь ее вывод направляется на экран,
Сетевая операционная система (Network operating system). Программное обеспечение, относящееся к операционной системе, которое обеспечивает поддержку использования обычных серверных систем в сети компьютеров.
Сильный семафор (Strong semaphore). Семафор, у которого все ожидающие его процессы становятся в очередь и обрабатываются в том порядке, в котором они выполнили операцию ожидания ("первым вошел — первым вышел").
Симметричная многопроцессорность (Symmetric Multiprocessing, SMP). Вид многозадачности, позволяющий операционной системе работать на любом из доступных процессоров либо на нескольких доступных процессорах одновременно.
Синхронизация (Synchronization). Ситуация, когда два или большее количество процессов согласовывают свои действия на основе некоторого условия,
Синхронная операция (Synchronous operation). Операция, выполняющаяся регулярно или предсказуемо в связи с определенным событием в другом процессе, например вызов подпрограммы ввода-вывода в определенном, заранее известном месте программы.
Система реального времени (Real-time system). Операционная система, которая может планировать задачи реального времени и управлять ими.
Система управления файлами (File management system). Набор системных программ, предоставляющих пользователям и приложениям возможности работы с файлами, включая обращение к файлу, работу с каталогами и управление доступом.
Слабый семафор (Weak semaphore). Семафор, у которого все ожидающие его процессы обрабатываются в неопределенном порядке, т.е. порядок обработки неизвестен или не может быть определен в принципе.
Снижение пропускной способности (Thrashing). Явление в схемах виртуальной памяти, когда процессор тратит больше времени на перемещение данных, чем на выполнение команд.
Создание процесса (Process spawning). Создание (порождение) нового процесса другим процессом.
Сообщение (Message). Блок информации, которым в качестве средства взаимосвязи могут обмениваться процессы.
Состояние процесса (Process state). Вся информация, требующаяся операционной системе для управления процессом, а процессору — для корректного выполнения данного процесса. Состояние процесса включает содержимое различных регистров процессора, таких, как счетчик команд и регистров данных, а также информацию, используемую операционной системой, такую, как приоритет процесса, и о том, находится ли процесс в ожидании завершения операции ввода-вывода. То же, что и контекст выполнения (execution context).
Спулинг (Spooling). Использование вторичной памяти в качестве буфера для снижения задержек при передаче данных между периферийным оборудованием и процессорами компьютера.
Стек (Stack). Список, созданный и поддерживаемый таким образом, чтобы очередным выбираемым из него элементом был элемент, внесенный в список последним («последним вошел — первым вышел»).
Страница (Page). В виртуальной памяти блок фиксированной длины, имеющий виртуальный адрес и передаваемый между основной и вторичной памятью как единое целое.
Таблица размещения файлов (File allocation table, FAT). Таблица, указывающая физическое расположение на устройстве вторичной памяти пространства, выделенного файлам.
Таблица распределения диска (Disk allocation table). Таблица, указывающая, какие блоки дисковой памяти свободны и доступны для размещения файлов.
Транслятор адреса (Address translator). Функциональный модуль, преобразующий виртуальные адреса в реальные.
Троянский конь (Trojan horse). Секретная недокументированная подпрограмма, внедренная в обычную программу, выполняющую полезные действия. Запуск такой программы приводит к выполнению этой секретной подпрограммы.
Удаленный вызов процедуры (Remote procedure call, RPC). Методика, в соответствии с которой две программы на различных машинах взаимодействуют с использованием синтаксиса и семантики вызова процедуры и возврата из нее. Как вызываемая, так и вызывающая программы ведут себя так, как если бы обе программы выполнялись на одной и той же машине.
Уплотнение (Compaction). Методика, используемая при разделении памяти на части разных размеров. Время от времени операционная система перемещает части так, чтобы они занимали непрерывную область, а свободная память была размещена отдельным блоком.
Управляющий блок процесса (Process control block). Структура данных, содержащая информацию о характеристиках и состоянии процесса.
Уровень многозадачности (Multiprogramming level). Количество процессов, полностью или частично резидентных в основной памяти.
Условие гонки (Race condition). Ситуация, в которой доступ к совместно используемым данным и работа с ними со стороны нескольких процессов зависит от их синхронизации.
Устранение взаимоблокировки (Deadlock avoidance). Динамическая методика исследования каждого нового запроса ресурса с точки зрения возможности возникновения взаимоблокировки. Если удовлетворение запроса может привести к взаимоблокировке, запрос отклоняется.
Файл (File). Множество однотипных записей, рассматриваемых как единое целое.
Физический адрес (Physical address). Абсолютное положение адресуемой единицы данных в памяти (например, слова или байта в основной памяти, блока во вторичной памяти).
Хеширование (Hashing). Выбор положения хранимого элемента путем вычисления адреса как функции от содержащихся в нем данных. Этот метод усложняет процесс распределения памяти, но ускоряет произвольную выборку элементов.
Хеш-файл (Hash file). Файл, обращение к записям которого выполняется по значениям ключевого поля. Для поиска положения записи используется хеширование — вычисление позиции в файле на основе значений ключей.
Червь (Worm). Программа, которая может перемещаться с компьютера на компьютер по сетевым соединениям. Может содержать вирус.
Шифрование (Encryption). Преобразование обычного текста или данных в нераспознаваемый вид путем применения обратимых математических вычислений.
Ядро (Kernel). Часть операционной системы, включающая наиболее интенсивно используемые программы операционной системы. Обычно ядро постоянно располагается в основной памяти и работает в привилегированном режиме, отвечая на вызовы процессов и прерывания от устройств.
Язык управления заданиями (Job control language, JCL). Язык, разработанный для описания заданий и их требований к операционной системе.