- •Список литературы Учебники
- •Причины распространения операционной системы:
- •Дистрибутивы:
- •Основные понятия операционной системы
- •Архитектура операционных систем Монолитное ядро (старая)
- •Монолитные многоуровневые системы
- •Микроядро (клиентно-серверная модель)
- •Состояния процесса:
- •Реализация процессов
- •Категории
- •Механизм прерываний
- •Реализация потоков
- •Глава 3. Планирование Основные понятия
- •Категории систем:
- •Алгоритм edf (Earliest Deadline First)
- •Меж процессное взаимодействия Основные понятия
- •Глава 5. Управление памятью Задача управления памятью
- •Виртуальная память
- •Глава 6. Файловые системы Основные понятия
- •Характеристики файловой системы
- •Каталоги файлов
- •Размещение файловой системы на диске (hdd ibm pc)
- •Реализация файловой системы
Алгоритм edf (Earliest Deadline First)
В данном алгоритме для каждого процесса известен срок, в который он должен выполнится. Выбирается процесс, у которого этот срок- ближайший.
Процессы |
Период, мс |
Время работы, мс |
A |
30 |
15 |
B |
40 |
15 |
C |
50 |
5 |
Меж процессное взаимодействия Основные понятия
Операции
Передача данных
Предотвращение конфликта процессов при одновременном обращении к определенному ресурсу.
Синхронизация процессов
Ситуация состязания- это такая ситуация, когда 2 процесса считывают или записывают данные одновременно и конечный результат зависит т того, какой из них был первым.
Пример ситуации состязаний:
A |
|
B |
считывает значение int 6 |
|
|
|
|
Считывает значение int= 6 Записывает значение in значение 7 |
Записывает значение in значение 7 |
|
|
|
3.txt |
curt |
|
4.txt |
|
in |
5.txt |
|
|
5.txt |
|
|
6.txt |
|
|
7.txt |
|
Взаимное исключение- запрет одновременного доступа к разделяемым данным для более чем одного процесса.
Критической областью процесса называется та его часть, где осуществляется доступ к разделяемым данным.
Условия запретов без состояния состязаний
2 или более процессов не должны находится одновременно в своих критических областях
В программе не должно быть предположений о скорости или количестве процессоров
Процесс, находящийся вне критической области, не может блокировать другие процессы
Невозможна ситуация, когда процесс вечно ждет попадания в свою критическую область
Взаимное исключение с активным ожиданием
Активное ожидание- цикл постоянной проверки некоторого условия значения некоторой переменной, выполняемой до тех пор, пока условие не будет выполнено.
Алгоритм строгого чередования
Turn= {0,1}
Алгоритм Петерсона
Реализация исключающей системы с исключающей командой.
Xchg
Res,mem reg mem
Flag dw 0; флаг h сегмент данных: 0- резрешено;=- задано в коде
Mov ax, 1; 1→рег АХ
Retry: xchg ax, flag; ax flas
Cmp ax, 0; ЛХ =0?
Jnz retry ; повторить, есл
Критический объем
Mov flag, 0; 0→flag-реализовать оставшиеся процессы
Примитивы межпроцессного взаимодействия
Sleep()-блокирует текущий процесс
Wakeup(процесс)-разблокирует заданный процесс
Задача: производителя и потребителя:
Производитель:
Потребитель:
Задача: Семафор:
Семафор- некоторая целочисленная переменная над которой определены 2 операции:
P -операция (down())- если значение семафора равно 0, вызвавши процесс блокируется, иначе значение уменьшается на 1, а вызвавший процесс продолжается.
V-операция (up())-если на семафоре имеются заблокированные процессы, то один из них запускается, иначе значение семафора увеличивается на 1.
Любая операция с семафором исполняется как единое непрерывное (атомарное) действие. По этому операции с семафором реализуются с помощью системных вызовов.
Семафор mntex
Down(& mutex);
Критический область
Up(0 mutex)
Пример на Си:
#define N=100
Typedef int semaphore;
Semaphore mutex=1;
Semaphore empty=N
Semaphore empty=0
Void producer(void)
{
Int item;
While(1){
Item=producer.item();
Down(& empty);
Down(& mutex);
put_data(item);
up(& mutex);
up(& ful);
}
}
Void consumer(void)
{
Int item;
While(1){
Dawn(& full);
Down(& mutex);
Intem=get_dta()
Up(& mutex);
Up(& emptu);
}
Классические проблемы межпроцессорного взаимодействия
Проблема обедающих философов
Каждый филосов может есть или не есть, но для еды ему нужно 2 вилки.
Проблема читателей и писателей
Читать могут сколько угодно пользователей, но писать только один и когда никто не читает.
Проблема спящего продабрея
Существует обрабатываемый процесс и очередь, которая имеет свой лимит ожидания
Ресурсы и взаимоблокировка
Ресурсы:
выгружаемые- можно забрать
не выгружаемые- нельзя забрать
Группа процессов находится в состоянии блокировки, если каждый процесс данной группы, если каждый процесс данной группы ждет событие, которое может вызвать только процесс из данной группы.
Условия, необходимые для взаимоблокировки:
Условия взаимного исключении: ресурс либо отдан одному процессу, либо свободен.
Условие удержания и ожидания: процесс, удерживающий ресурсы, может ждать дополнительных ресурсов.
Условие отсутствия принудительной выгрузки ресурса.
Условия циклического ожидания: существует круговая последовательность процессов, в котором каждый процесс ждет освобождение ресурсов, удерживаемых предидущим процессом.