
- •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
6. Процессы и потоки в ос. Понятие процесса. Атрибуты процесса. Создание нового процесса в различных ос.
Мультипрограммирование / многозадачность (multitasking) — способ организации процесса. На процессоре выполняются несколько программ. Эти программы совместно используют другие ресурсы компьютера: оперативную и внешнюю память, устройства ввода-вывода, данные. Мультипрограммирование призвано повысить эффективность использования вычислительной системы, однако эффективность может пониматься по-разному.
Критерии эффективности вычислительных систем:
Пропускная способность — количество задач, выполняемых вычислительной системой в единицу времени.
Удобство работы пользователей: они имеют возможность интерактивно работать одновременно с несколькими приложениями на одной машине.
Реактивность системы — способность системы выдерживать заранее заданные интервалы времени между запуском программы и получением результата.
Процесс — выполнение пассивных инструкций программы на процессоре. Программа — совокупность инструкций. Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д.
Нить (поток, поток выполнения, thread) — наим. единица обработки, исполнение которой мб назначено ядром. Реализация нитей и процессов в разных ОСях отличается, но обычно нити находятся внутри процесса.
В ОС, где существуют процессы и потоки, процесс рассматривается как заявка на потребление всех видов ресурсов, кроме одного — процессорного времени. Этот важнейший ресурс распределяется ОС между потоками, представляющих собой последовательности (потоки выполнения) команд (отсюда и название).
Чтобы процессы не могли вмешаться в распределение ресурсов и повредить коды и данные друг друга, важнейшей задачей ОС является изоляция процессов. Для этого ОС обеспечивает процесс отдельным виртуальным адресным пространством, так что ни один процесс не может получить прямого доступа к командам и данным другого процесса.
Виртуальное адресное пространство процесса — совокупность адресов, которыми может манипулировать программный модуль процесса. ОС отображает виртуальное адресное пространство процесса на отведенную процессу физическую память.
Процесс:
Создание процесса
— создание описателя процесса, который
состоит из информационных структур
(
),
содержащих сведения, необходимые ОС
для управления процессом.
# сведений: ID процесса, уровень привилегий процесса (приоритет, права доступа), и т. п. # описателей: дескриптор процесса в UNIX, объект-процесс в Windows NT.
Создание процесса включает загрузку кодов и данных исполняемой части процесса с диска в оперативную память.
Unix: fork() позволяет создать новый процесс (или копию). После выполнения fork() родительскому и дочернему процессам соответствуют одинаковые образы памяти, строки окружения и открытые файлы (дочерний — полная копия родительского). Обычно дочерний выполняет системный вызов execve для изменения своего образа памяти и запуска новой программы. Начальное адресное пространство дочернего процесса — копия родительского, но адресные пространства различны, и перезаписываемая память совместно не используется.
Windows: CreateProcess (8 параметров) управляет созданием процесса и запуском нужной программы в нем. В Windows есть еще около 100 функций для управления процессами. Адресные пространства отличаются с самого начала.
Атрибуты — признаки, отличающие процесс от других. Большинство атрибутов процесс наследует от родительского, часть атрибутов устанавливается ОСью, часть порождается процессом в ходе его выполнения.
В UNIX ОСь назначает:
Идентификатор (номер) процесса PID (process ID).
Идентификатор родительского процесса PPID (parent process ID).
К атрибутам также относятся:
Контролирующий управляющий терминал. Открывается процессом для чтения и записи. С его помощью процессу могут быть посланы сигналы прерывания. Управляющий терминал устанавливается только для тех процессов, которые запущены программой пользователя.
Реальный и эффективный идентификаторы пользователя и группы. Каждый пользователь, зарегистрированный в ОС, имеет идентификаторы пользователя UID и группы GID.