- •Инструментальное по: назначение и основные компоненты
- •Прикладное по: назначение и основные компоненты
- •Определение операционной системы (ос). Назначение и основные функции ос.
- •Общая схема организации ос эвм: назначение ядра и транзитной части ос.
- •Транзитная часть ос
- •Привилегированный и пользовательский режимы работы аппаратуры эвм. Средства для обеспечения привилегий ос. Системные вызовы ядра.
- •Многослойная архитектура ядра ос.
- •Машинно-зависимые компоненты ос
- •Микроядерная архитектура ос: переносимость, надежность и расширяемость.
- •Эволюция ос: системы пакетной обработки, мультипрограммные ос, сетевые ос.
- •Системы разделения времени
- •Краткая характеристика ос ms-dos. Основные компоненты ос ms-dos: структура ее ядра и транзитной части.
- •Командный язык ms-dos. Синтаксис команды ms-dos. Классификация команд по принципу использования. Классификация команд по функциональному назначению.
- •Командные файлы ms-dos.
- •Структура описателя процесса:
- •Планирование и диспетчеризация потоков. Состояния потока в многозадачной ос.
- •Алгоритмы планирования потоков: вытесняющие и невытесняющие.
- •Алгоритмы планирования, основанные на квантовании.
- •Понятие параллельных процессов. Синхронизация и взаимодействие параллельных процессов. Взаимоисключение. Критические участки. Блокирующие переменные.
- •2. Использование переменных-флажков, которые представляют собой признак, показывающий, не находится ли соответствующий ей процесс в своей критической секции.
- •3.Алгоритм Деккера
- •Понятие семафоров. Виды семафоров. Операции над семафорами. Пример обеспечения взаимоисключения с помощью семафоров.
- •Многоуровневая организация памяти эвм. Управление оперативной памятью: стратегии выборки, размещения, замещения. Способы разделения оперативной памяти между выполняющимися процессами.
- •Механизмы разделения памяти между выполняющимися процессами. Свопинг.
- •Выделение одного Разбиение памяти
- •Управление файлами. Основные функции файловой системы. Возможные действия с файлом
- •Операции над файлом
- •Принципы организации файловых подсистем в современных ос.
- •Файловая подсистема в ос ms dos.
- •Файловая подсистема в ос семейства Windows.
- •Файловая система s5fs.
- •Права r и w на каталоги не действуют без права X.
- •Права доступа к файлам
- •Vhand-диспетчер страничного замещения
- •Атрибуты процесса в ос unix
- •Пакеты лвс: назначение пакетов и их структура.
- •Управление обменом в сети с топологией “звезда”.
- •Управление обменом в сети с топологией “кольцо”.
- •Управление обменом в сети с топологией “шина”.
- •Недостатки топологии “шина”:
- •Глобальная информационная сеть Интернет: история возникновения, основные принципы работы, понятие хост-компьютера. Основные способы доступа к сети Интернет.
- •Понятие о ресурсах Интернет. Адресация ресурсов в Интернет
- •Основные службы сети Интернет: Telnet, ftp, www.
- •Общая характеристика языка гипертектовой разметки html
-
Понятие семафоров. Виды семафоров. Операции над семафорами. Пример обеспечения взаимоисключения с помощью семафоров.
Под семафором S понимается переменная особого типа, значение которой может опрашиваться и изменяться только при помощи специальных операций P(S) и V(S), реализуемых в соответствии со следующими алгоритмами:
операция P(S)
если S > 0
то S = S – 1
иначе < ожидать S >
операция V(S)
если < один или несколько потоков ожидают S >
то < снять ожидание у одного из ожидающих потоков >
иначе S = S + 1
Принципиальным в понимании семафоров является то, что операции P(S) и V(S) предполагаются неделимыми (атомарными), что гарантирует взаимоисключение при использовании общих семафоров.
Различают два основных типа семафоров. Двоичные семафоры принимают только значения 0 и 1, область значений общих семафоров – неотрицательные целые значения. В момент создания семафоры инициализируются некоторым целым значением.
Семафоры широко используются для синхронизации и взаимоисключения потоков. Так, например, проблема взаимоисключения при помощи семафоров может иметь следующее простое решение.
Semaphore Sem=1; // семафор взаимоисключения потоков
Thread_1() {
while (1) {
// проверить семафор и ждать, если ресурс занят
P(Sem);
< Использование общего ресурса >
// освободить один из ожидающих ресурса потоков
// увеличить семафор, если нет ожидающих потоков
V(Sem);
}
______________________________________________________________________________________
-
Синхронизация процессов с помощью семафоров. Задача о производителе и потребителе.
Пусть два процесса обмениваются информацией через буфер ограниченного размера. Производитель закладывает информацию в буфер, а потребитель извлекает ее оттуда. Деятельность потребителя и производителя можно описать следующим образом.
Producer: |
while(1) { produce_item; put_item; } |
Consumer: |
while(1) { get_item; consume_item; } |
Если буфер забит, то производитель должен ждать, пока в нем появится место, чтобы положить туда новую порцию информации. Если буфер пуст, то потребитель должен дожидаться нового сообщения. Как можно реализовать эти условия с помощью семафоров? Возьмем три семафора empty, full и mutex. Семафор full будем использовать для гарантии того, что потребитель будет ждать, пока в буфере появится информация. Семафор empty будем использовать для организации ожидания производителя при заполненном буфере, а семафор mutex - для организации взаимоисключения на критических участках, которыми являются действия put_item и get_item (операции положить информацию и взять информацию не могут пересекаться, так как тогда возникнет опасность искажения информации). Тогда решение задачи выглядит так:
Semaphore mutex = 1; Semaphore empty = N, где N – емкость буфера; Semaphore full = 0;
Producer:
while(1) {
produce_item; P(empty); P(mutex); put_item; V(mutex); V(full);
}
Consumer:
while(1) {
P(full); P(mutex); put_item; V(mutex); V(empty); consume_item;
}
Легко убедиться, что это действительно корректное решение поставленной задачи. Попутно заметим, что семафоры использовались здесь для достижения двух целей: организации взаимоисключения на критическом участке и синхронизации скорости работы процессов.
______________________________________________________________________________________