
- •1. Задачи и функции операционной системы компьютера. Классификация ос. Основные современные ос.
- •2, 4. Архитектура современных ос. Структура ос unix.
- •3. Архитектура современных ос. Структура ос Windows nt.
- •4. Архитектура современных ос. Системы с монолитным (макро-) ядром и с микроядром.
- •5. Архитектура современных ос. Ос с множественными интерфейсами прикладных программ на примере ос Windows nt.
- •6. Процессы и потоки в ос. Понятие процесса. Атрибуты процесса. Создание нового процесса в различных ос.
- •7, 6. Процессы и потоки в ос. Понятие процесса. Жизненный цикл процесса. Различные состояния процесса.
- •8. Процессы и потоки в ос. Понятие нити (thread). Основные отличия нити от процесса.
- •9, 11, 12. Процессы и потоки в ос. Необходимость синхронизации при работе с общими ресурсами. Способы синхронизации.
- •10. Механизмы синхронизации. Понятие семафора (semaphore) и основные операции с ним. Двоичный семафор.
- •11. Механизмы синхронизации. Понятие мьютекса (mutex) и основные операции с ним. Пример использования мьютекса для синхронизации нитей.
- •12. Механизмы синхронизации. Сравнение мьютекса и двоичного семафора.
- •13. Управление оперативной памятью. Способы защиты оперативной памяти процесса от случайного или злонамеренного вторжения из другого процесса. Сегментная организация памяти. Виртуальная память.
- •14, 13, 15. Управление оперативной памятью. Понятие виртуальной памяти. Поддержка вп со стороны процессора (на примере процессора Intel x86). Перевод виртуального адреса в адрес реальной памяти.
- •15. Управление оперативной памятью в современных ос. Виртуальная память процесса и ее отображение в реальную оперативную память компьютера. Файл подкачки.
- •16. Цели и задачи файловой системы ос. Многоуровневая организация файловой системы. Логическая и физическая фс.
- •17. Управление виртуальной памятью в современных ос. Алгоритмы подкачки и вытеснения.
- •18. Логическая файловая система ос Windows nt.
- •19. Логическая файловая система ос unix.
- •20. Физическая организация файловой системы. Файловая система fat.
- •21. Физическая организация файловой системы. Файловая система System V (s5fs).
- •22. Физическая организация файловой системы. Файловая система ntfs.
- •23. Управление вводом/выводом. Понятие аппаратного прерывания и его обработка.
- •24. Управление вводом/выводом. Синхронный и асинхронный ввод/вывод.
- •25. Управление безопасностью. Пользователь, его атрибуты и права доступа.
- •26. Управление безопасностью. Задача администрирования вычислительной системы и компьютерной сети.
- •27. Управление доступом к файлам в ос unix.
- •28. Управление доступом к файлам в ос Windows nt. Списки прав доступа.
- •29. Язык программирования Java. Виртуальная машина Java. Технология Java.
- •30. Платформа .Net. Основные идеи и положения. Языки программирования .Net.
- •31. Функциональные компоненты ос. Управление файлами
- •32. Функциональные компоненты ос. Управление процессами.
- •33. Функциональные компоненты ос. Безопасность и защита данныx.
- •34. Функциональные компоненты ос. Пользовательский интерфейс.
- •35. Функциональные компоненты ос. Управление оперативной памятью.
- •36. Компьютерные сети. Сетевые ос и их задачи.
- •37. Компьютерные сети. Протоколы tcp/ip. Интернет.
- •38. Переносимость программного обеспечения. Стандарты операционных систем.
- •1. Стандарт cp/m
- •2. Операционные системы типа dos
- •3. Стандарт msx
- •4. Операционные системы, основанные на графическом интерфейсе
- •6. Операционные системы семейства unix
10. Механизмы синхронизации. Понятие семафора (semaphore) и основные операции с ним. Двоичный семафор.
Первый механизм синхронизации, изобретатель — Э. Дэйкстра (~ 1965 г.).
Семафор —
объект, позволяющий войти в заданный
участок кода не более чем
потокам. Используются при передаче
данных через разделяемую память.
Семафоры — доступные ресурсы, которые могут быть приобретены несколькими потоками в одно и то же время, пока «фонд» ресурсов не опустеет. Остальные потоки будут ждать, пока требуемое количество ресурсов не будет доступно. Семафоры очень эффективны, поскольку они позволяют одновременный доступ к ресурсам.
Операции: dec,
inc. Если семафор
и нужно dec, ставится в
очередь и ожидается inc.
Поставщик: while(true) { s1.dec(); putdata(); s2.inc(); }.
Покупатель: while(true) {s2.dec(); getdata(); s1.inc(); }.
Двоичный семафор может принимать два значения: 0 (семафор закрыт) и 1 (семафор открыт). Двоичный семафор соответствует случаю, когда с разделяемым ресурсом в каждый момент времени может работать только одна программа.
11. Механизмы синхронизации. Понятие мьютекса (mutex) и основные операции с ним. Пример использования мьютекса для синхронизации нитей.
[+ вопрос № 9.] Мьютекс используется для блокировки доступа к к.-л. уникальному ресурсу.
Синхронизация нитей в Windows.
В Windows: вытесняющая многозадачность — в любой момент ОС может прервать выполнение одной нити и передать управление другой. В Windows 3.1: кооперативная многозадачность: ОС ждет, пока нить сама передаст ей управление, поэтому в случае зависания одного приложения приходится перезагружать компьютер.
Все нити, принадлежащие одному процессу, разделяют общие ресурсы (#, адресное пространство оперативной памяти, открытые файлы). Ресурсы принадлежат процессу => всем нитям. Следовательно, каждая нить может работать с этими ресурсами без ограничений. Но если одна нить не закончила работать с ресурсом, а система переключилась на другую нить, использующую тот же ресурс, то результат может сильно отличаться от задуманного. Такие конфликты могут возникнуть и между нитями, принадлежащими различным процессам.
Поэтому необходим механизм, позволяющий потокам согласовывать свою работу. Этот механизм получил название механизма синхронизации нитей (thread synchronization).
Основные объекты синхронизации: взаимоисключение, критическая секция, событие и семафор. Каждый из них реализует свой способ синхронизации. В качестве объектов синхронизации также могут использоваться сами процессы и нити (когда одна нить ждет завершения другой или процесса).
Чтобы создать тот или иной объект синхронизации, производится вызов специальной функции WinAPI типа Create… (CreateMutex). Функция возвращает дескриптор объекта (Handle), который может использоваться всеми нитями, принадлежащими данному процессу.
12. Механизмы синхронизации. Сравнение мьютекса и двоичного семафора.
+ вопросы 10, 11 (или 9).
Мьютекс — работает в рамках одного процесса. Быстрее семафора, автоматически освобождается. Семафор — может работать «между процессами».
В остальном мьютекс — двоичный семафор.