- •1. Понятие ос. История создания и развития ос. Основные функции ос
- •2. Основные понятия концепции ос. Виды архитектур ос.
- •3. Ос общего назначения. Генерация операционной системы
- •4. Классификация ос. Разновидности современных ос.
- •5.Операционная система как виртуальная машина и как система управления ресурсами. Задачи операционной системы
- •6. Ос специального назначения. Ос, основанные на графическом интерфейсе.
- •7.Архитектуры операционных систем: монолитное ядро, многоуровневые системы, микроядро.
- •8. Характеристики ос
- •9. Вычислительные системы. Виды.
- •10. Режимы работы вычислительных систем.
- •11. Пакетные и командные файлы.
- •12. Механизм работы api-функций.
- •14. Windows
- •15. Семейство ос Unix. Преимущества Unix-подобных систем.
- •17. Файловые системы. Структура fat, ntfs. Их сравнение.
- •18. Логическая организация файловых систем.
- •19.Физическая организация файловой системы
- •20. Файловая система dos
- •21. Командный процессор command.Com
- •22. Управление оперативной памятью для dos. Виртуальная память.
- •23. Проблема настройки адресов. Концепция виртуальной памяти.
- •24 Страничная модель управления памятью: механизм преобразования адресов. Структура элемента таблицы страниц.
- •25. Страничная модель управления памятью: многоуровневые таблицы страниц, буферы быстрого преобразования адресов, инвертированные таблицы страниц.
- •26. Понятие процесса. Контекст процесса. Переключение процессов. Состояния процессов и возможные переходы между ними
- •27. Планирование процессов. Требования к алгоритмам планирования, необходимые свойства алгоритмов планирования. Вытесняющее и не вытесняющее планирование.
- •28. Процессы. Состояние процессов. Жц процесса.
- •29. Операции над процессами
- •30. Блоки управления процессами и дескрипторы процессов.
- •32. Прерывания. Синхронные и асинхронные прерывания. Обработка прерываний.
- •33. Прерывания. Системные вызовы.
- •34. Понятие потока. Реализация потоков в пространстве пользователя и в ядре.
- •35. Синхронные и асинхронные функции. Методы уведомления о завершении работы асинхронной функции. Основные операции с потоками в .Net Framework: создание потоков, функции Sleep, Join, Abort.
- •36. Выгружаемые и невыгружаемые ресурсы. Понятие взаимоблокировки. Условия взаимоблокировки.
- •37. Классификация компьютерных вирусов
- •38. Резидентные программы
- •39. Архиваторы. Форматы архиваторов.
35. Синхронные и асинхронные функции. Методы уведомления о завершении работы асинхронной функции. Основные операции с потоками в .Net Framework: создание потоков, функции Sleep, Join, Abort.
Синхронные методы (функций) — методы, выполняемые в том же потоке, что и вызывающая их функция.
Асинхронные методы (функции) — методы, запускаемые в отдельном потоке, после их вызова вызывающая функция продолжает работу параллельно с вызванным асинхронным методом.
Как правило, асинхронный метод реализуется в виде двух функций: BeginMethodXXX () и EndMethodXXX (). Первая функция запускает метод в параллельном потоке. А вызов второй функции приводит к блокированию вызывающего потока до завершения асинхронной функции, по завершению метод возвращает результаты работы. Это решение продемонстрировано на рис. 1: P1 — основной поток, вызывающий асинхронный метод, запускаемый в потоке P2. В исходном состоянии (сразу после вызова Begin) потоки находятся в состоянии SB. Далее они могут двигаться по любой траектории, не выходя за заштрихованную область, «выйти» из области можно только
через точку SE. Между вызовами Begin и End поток P1 может выполнять некоторые действия, а может сразу блокироваться, ожидая завершение P2. Описанное решение реализует уведомление о завершении асинхронной операции методом ожидания, то есть вызывающий поток блокируется до завершения запущенного. Возможна ситуация, когда потоку P1 потребуется выполнять какие-то действия до тех пор пока не будет завершен поток P2 (то есть возможна ситуация, когда нам не хотелось бы блокировать поток P1 на вертикальной линии End диаграммы, после выполнения конечного числа шагов между Begin и End). К примеру, поток P1 может позволить пользователю решать другие задачи во время работы P2 либо выводить
состояние P2 (процент выполнения задачи). В этом случае возможно использование других методов уведомления о завершении асинхронной операции: опрос либо обратный вызов. В случае опроса поток P1 периодически (например, в цикле или по таймеру) проверяет состояние потока P2 (не завершился ли он) и по завершению P2 вызывает End (переходит в точку SE) не попадая в состояние блокировки. В случае обратного вызова поток P1 при вызове Begin указывает потоку P2 какую функцию потока P1 тот должен вызывать по завершению. В этой функции поток P1 вызывает End (переходит в точку SE) не попадая в состояние блокировки.
Sleep(50)-функция работает в режим ожидания на 10 мс, при этом планировщик передает управление другим потокам.
Abort-остановка потока.
thread.Join()-перед созданием нового потока дожидаемся завершения предыдущего.
36. Выгружаемые и невыгружаемые ресурсы. Понятие взаимоблокировки. Условия взаимоблокировки.
В компьютерных системах существует большое количество ресурсов причём каждый из них может быть использован только одним процессом.
Под ресурсом мы будем подразумевать любой объект предоставления доступом, это может быть и аппаратное устройство и часть информации. Появление двух процессов пытающихся использовать один и тот же ресурс неизбежно приведёт к взаимоблокировке.
Ресурсы при обращении к которым может произойти взаимоблокировка бывают 2-х основных типов:
1.Выгружаемые.
2.Невыгружаемые.
Выгружаемым ресурсом называется такой ресурс который можно безболезненно забирать у владеющего им процесса. Невыгружаемый ресурс-это такой ресурс который нельзя забрать от текущего владельца не уничтожив результаты вычислений.
Для предоставления ресурса используется следующая схема:
1.Запрос ресурсов
2.Использование ресурсов.
3.Возврат ресурсов.
Если некоторый ресурс в тот момент когда он требуется является недоступным то запрашивающий его процесс помещаеться в режим ожидания. В некоторых о.с. при неудачном обращении к ресурсу процесс будет автоматически заблокирован и возобновиться после того когда ресурс освободится. В других о.с. в случаи ошибки запроса ресурсов вызывающий процесс останиться активным и немного подождав совершит новый запрос.
Введение в теорию блокировки.
Взаимоблокировку или тупиковую ситкацию формально можно определить так. Группа процессов находиться в тупиковой ситуации если каждый процесс из группы ожидает события которое может вызвать только другой процесс из тойже группы.
Условия взаимоблокировки.
1.Условия взаимного исключения(каждый ресурс либозанят ровно одним процессом либо свободен).
2.Условие удержания и ожидания(процессы которые удерживают полученные ранее ресурсы могут запрашивать новый ресурс).
3.Условие отсутствия принудительной выгрузки(у процесса нельзя принудительным образом забрать ранее полученный ресурс они могут быть получены только добравольно).
4.Условия циклического ожидания(должна существовать круговая последовательность из двух и более процессов каждый из которых ждёт доступа к удерживаемому ресурсу).