- •Понятие операционной системы. Функции операционной системы. Классификация операционных систем.
- •Компоненты операционной системы. Виды ядер.
- •Монолитная структура операционной системы
- •4. Структура операционной системы unix
- •Ядро операционной системы unix
- •Основные понятия ос: системные вызовы, прерывания, исключительные ситуации, файлы, процессы и нити.
- •Процессы. Состояния процесса.
- •Process Control Block и контекст процесса.
- •9. Одноразовые и многоразовые операции. Переключение контекста.
- •10. Планирование процессов. Критерии планирования и требования к алгоритмам.
- •11. Вытесняющее и невытесняющее планирование
- •12.Алгоритм планирования fcfs.
- •13. Алгоритм планирования rr.
- •14. Поток в пространстве ядра, поток в пространстве пользователя.
- •15. Таблица потоков. Информация в таблице потоков
- •16. Алгоритмы планирования: fifo.
- •17. Алгоритмы планирования: «кратчайшая задача – первая»
- •18. Алгоритмы планирования: приоритетное планирование.
- •19. Алгоритмы планирования: планирование в системах реального времени.
- •20. Функция создания процесса CreateProcess()
- •21. Взаимоблокировка процессов. Тупики.
- •22. Методы борьбы с взаимоблокировками. Безопасное и небезопасное состояние.
- •25. Кооперация процессов. Логическая организация механизма передачи информации.
- •26.Адресации: прямая и непрямая.
- •27. Линии связи. Буферизация.
- •28. Поток ввода/вывода и сообщения.
- •29.Алгоритмы синхронизации. Критическая секция.
- •30. Механизмы синхронизации. Семафоры, мониторы и сообщения.
- •31. Управление памятью. Физическая организация памяти компьютера.
- •32. Анализ производительности многозадачных систем.
- •33. Распределение памяти с фиксированными разделами.
- •34. Управление памятью. Физическая организация памяти компьютера.
- •35. Методы без использования внешней памяти.
- •36. Распределение памяти с динамическими разделами.
- •37.Основные методы распределения памяти: с фиксированными разделами и динамическими разделами. Перемещение и рост разделов.
- •38. Сегментная архитектура памяти. Абсолютный и относительный адреса.
11. Вытесняющее и невытесняющее планирование
Процесс планирования осуществляется частью операционной системы, называемой планировщиком. Планировщик может принимать решения о выборе для исполнения нового процесса, из числа находящихся в состоянии готовность, в следующих четырех случаях:
1. Когда процесс переводится из состояния исполнение в состояние завершение.
2. Когда процесс переводится из состояния исполнение в состояние ожидание.
3. Когда процесс переводится из состояния исполнение в состояние готовность (например, после прерывания от таймера).
4. Когда процесс переводится из состояния ожидание в состояние готовность (завершилась операция ввода-вывода или произошло другое событие).
12.Алгоритм планирования fcfs.
FCFS по первым буквам его английского названия – First-Come, First-Served (первым пришел, первым обслужен). Представим себе, что процессы, находящиеся в состоянии готовность, выстроены в очередь. Когда процесс переходит в состояние готовность, он, а точнее, ссылка на его PCB помещается в конец этой очереди. Выбор нового процесса для исполнения осуществляется из начала очереди с удалением оттуда ссылки на его PCB. Очередь подобного типа имеет в программировании специальное наименование – FIFO1), сокращение от First In, First Out (первым вошел, первым вышел).
13. Алгоритм планирования rr.
Модификацией алгоритма FCFS является алгоритм, получивший название Round Robin (Round Robin – это вид детской карусели в США) или сокращенно RR. По сути дела это тот же самый алгоритм, только реализованный в режиме вытесняющего планирования. Можно представить себе все множество готовых процессов организованным циклически — процессы сидят на карусели. Карусель вращается так, что каждый процесс находится около процессора небольшой фиксированный квант времени, обычно 10 - 100 миллисекунд. Пока процесс находится рядом с процессором, он получает процессор в свое распоряжение и может исполняться.
Реализуется такой алгоритм с помощью организации процессов, находящихся в состоянии готовность, в очередь FIFO.
14. Поток в пространстве ядра, поток в пространстве пользователя.
Потоки на уровне пользователя
В программе, полностью состоящей из ULT-потоков, все действия по управлению потоками выполняются самим приложением; ядро, по сути, и не подозревает о существовании потоков.
Чтобы приложение было многопоточным, его следует создавать с применением специальной библиотеки, представляющей собой пакет программ для работы с потоками на уровне ядра. Такая библиотека для работы с потоками содержит код, с помощью которого можно создавать и удалять потоки, производить обмен сообщениями и данными между потоками, планировать их выполнение, а также сохранять и восстанавливать их контекст.
Потоки на уровне ядра
В программе, работа которой полностью основана на потоках, работающих на уровне ядра, все действия по управлению потоками выполняются ядром. В области приложений отсутствует код, предназначенный для управления потоками. Вместо него используется интерфейс прикладного программирования (application programming interface — API) средств ядра, управляющих потоками. Примерами такого подхода являются операционные системы OS/2, Linux и W2K.
