Методы восстановления после тупиков применяются для устранения тупиковых ситуаций, с тем, чтобы система могла продолжать работать, а процессы, попавшие в тупиковую ситуацию, могли завершиться с освобождением занимаемых ими ресурсов. Восстановление осуществляется путем полного выведения из решения одного или более процессов, попавших в тупиковую ситуацию.
Сложность восстановления системы, т.е. вывода из тупика обуславливается рядом факторов:
1.В первый момент вообще может быть неочевидно, что система попала в тупиковую ситуацию.
2.В большинстве систем нет достаточно эффективных средств, позволяющих приостановить процесс на неопределенно долгое время, вывести его из системы и возобновить его выполнение впоследствии. В действительности некоторые процессы, например процессы реального времени, должны работать непрерывно и не допускают приостановки и последующего возобновления.
3.Если даже в системе существуют средства приостановки/возобновления процессов, то их использование требует, как правило значительных затрат ресурсов системы.
В современных системах восстановление после тупиков обычно выполняется путем принудительного вывода некоторого процесса из системы, чтобы модно было использовать его ресурсы. Этот выведенный процесс обычно теряется, однако теперь остальные процессы получают возможность завершить свою работу. Процессы могут выводиться из системы в соответствии с некоторой приоритетностью. Здесь мы сталкиваемся с несколькими трудностями:
1.Процессы, вовлеченные в тупиковую ситуацию, могут не иметь конкретных приоритетов, так что оператору придется принимать произвольное решение.
2.Значения приоритетов могут нарушаться из-за определенных соображений, например в случае планирования по конечному сроку некоторый процесс с низким приоритетом временно получает высокий приоритет ввиду приближающегося конечного срока.
3.Чтобы оптимально определить, какой из процессов следует вывести из системы, могут потребоваться значительные усилия.
Организация и управление основной памятью вычислительной машины – один из самых важных факторов, определяющих построение операционных систем.
Термин Виртуальная память предполагает возможность адресовать пространство памяти, гораздо большее чем емкость физической памяти конкретной вычислительной машины. Т.е это совокупность аппаратных и программных средств, позволяющая выполнять программы, размер которых превышает размер имеющейся физической памяти.
Существует два общепринятых способа организации виртуальной памяти: страничная и сегментная организации памяти. Существует также их комбинация.
Суть концепции виртуальной памяти заключается в том, что адреса, к которым обращается выполняющий процесс, отличаются от адресов, реально существующих в первичной памяти. Первые называются виртуальными адресами, а вторые – реальными. Механизмы динамического преобразования адресов обеспечивают преобразование виртуальных адресов в реальные во время выполнения процесса. Все подобные системы обладают общим свойством: смежные адреса виртуального адресного пространства процесса необязательно будут смежными в реальной памяти, это свойство называют “искусственной смежностью”.
Механизм динамического преобразования адресов должен вести таблицы, показывающие, какие ячейки виртуальной памяти в текущий момент времени находятся в реальной памяти и где именно они размещаются. Если бы такое отображение осуществлялось пословно или побайтно, то для её хранения потребовалось бы слишком много реальной памяти. Поэтому для отображения информации группируем её в блоки, и система следит за тем, в каких местах реальной памяти размещаются эти блоки. Увеличение размера блоков приводит к уменьшению дополнительных затрат памяти для механизма отображения. При реализации виртуальной памяти возникает вопрос о том, следует ли все блоки делать одинаково или разных размеров.
Если блоки имеют одинаковый размер, то они называются страницами, а организация памяти – страничной, если блоки могут быть различных размеров, то они называются сегментами, а организация памяти – сегментной. В некоторых системах оба эти подхода комбинируются, т.е. сегменты переменных размеров формируются из страниц фиксированного размера, такая организация памяти называется странично-сегментной.