
- •1. Состав компьютерной системы
- •6 Уровней:
- •2. Функции операционной системы. . Операционная система как расширенная машина и менеджер ресурсов
- •3. Этапы развития операционных систем
- •4. Ос реального времени. Распределенные и сетевые ос
- •5. Принципы разработки современных ос
- •12. Основные понятия, концепция ос
- •13. Ядро ос. Основные понятия (монолитные системы, многоуровневые системы, виртуальные машины)
- •14. Ядро ос. Микроядро//модуль клиент-сервер
- •15. Классификация ос
- •16. Мультипрограммирование или многозадачность, критерии организации мультизадачности
- •17. Многопроцессорность: сложность планирования загрузки процессоров, конфликты доступа к общим ресурсам
- •18. Процессы. Основные понятия, состояния процессов
- •19. Обработка прерываний, вектор прерывания
- •20. Алгоритмы планирования процессов
- •21. Создание процессов
- •Процессы Windows
- •22. Идентификаторы
- •23. Системные вызовы для управления процессами
- •24. Форматы исполняемых файлов
- •25. Основные команды Unix для управления процессами
- •26. Память. Типы адресов
- •27. Методы распределения памяти между процессами без использования внешнего накопителя
- •28. Методы распределения памяти между процессами с использованием внешнего накопителя
- •29. Виртуальная память. Способы организации виртуальной памяти. Страничная организация виртуальной памяти. Сегментная и странично - сегментная организация виртуальной памяти.
- •34. Файловая система Unix, виртуальная файловая система vfs
- •35. Файловые ситемы fat, ntfs. Поддержка длинных имен
- •49. Сравнение вариантов организации взаимодействия сетей
- •51. Программирование сокетов
- •52. Открытая система. Стандартные платформы.
- •53. Интерфейс пользователя ос unix. Метасимволы в именах файла.
20. Алгоритмы планирования процессов
Алгоритм без переключений: Кто первый – тот и обрабатывается. Из списка задач, подлеж выполн, выбир та, котор будет выполн наименьшее колич времени. Выполн полностью.
Алгоритм с переключ: при появл новой задачи происх сравнение времени с выполняемой. Выполняться будет та, что выполнится быстрее.
Алгоритмы планирования процессов в системах разделения времени
1) Кольцевой режим. Созд кольцо процессов, подлеж выполнению. Вып они по-порядку. Выдел всем одинак колич времени.
2) Алгоритм с приоритетом: процесс имеет приоритет. Тот, у которого приоритет больше – выполняется первее.
3) C динамически меняющимся приоритетом: приоритет рассчит из 2х составляющих – статич и динамич составляющих. Статич приор присваив процессу при запуске. Динамич составл раасчит исходя из того, как процесс использ процессорное время.. Если процесс отраб своё процессорн время полностью – дин приоритет пониж, если завершился досрочно – дин приор повыш.
21. Создание процессов
Новый процесс создается в UNIX только путем системного вызова fork. Процесс, сделавший вызов fork, называется родительским, а вновь созданный процесс - порожденным. Новый процесс является точной копией родительского. При порождении (разветвлении) процесса проверяется, достаточно ли памяти и места в таблице процессов для данного процесса. Новому процессу присваивается новый уникальный идентификатор (PID) от 0 до 65535. Когда изменение таблицы процессов ядра завершается, процесс добавляется к списку процессов, доступных для выполнения и ожидающих в очереди планировщика подобно другим процессам.
Порожденный процесс наследует от родительского процесса следующие основные характеристики:
1. Способы обработки сигналов (адреса функций обработки сигналов).
2. Реальные и эффективные идентификаторы пользователя UID и группы GID.
3. Значение поправки приоритета.
4. Все присоединенные разделяемые сегменты памяти.
5. Идентификатор группы процессов.
6. Терминальную линию.
7. Текущий каталог.
8. Корневой каталог.
9. Маска создания файлов (umask).
10. Ограничения ресурсов (ulimit).
Порожденный процесс отличается от родительского процесса следующими основными характеристиками:
1. Порожденный процесс имеет свой уникальный идентификатор.
2. Порожденный процесс имеет свои собственные копии дескрипторов файлов (в частности, стандартных потоков), открытых родительским процессом. Каждый дескриптор файла порожденного процесса имеет первоначально такое же значение текущей позиции в файле, что и соответствующий родительский.
3. У порожденного процесса обнуляются счетчики времени, потраченного системой для его обслуживания.
При успешном завершении порожденному процессу возвращается значение 0, а родительскому процессу возвращается идентификатор порожденного процесса. В случае ошибки родительскому процессу возвращается -1, новый процесс не создается и переменной errno присваивается код ошибки.
Процессы Windows
У каждого процесса есть есть 4-х гигабайтное адресное пространство(32 разряда) в котором пользователь занимает 2 гигабайта (однако это может быть до 3-х гигов увеличено) а операционная система занимает оставшуюся часть. Т.о. операционная система присутствует в адресном пространстве каждого процесса, хотя она защищена от изменений с помощью аппаратного блока управления памятью MMU. У процесса есть идентификатор процесса, один или несколько потоков, список дескрипторов и маркер доступа, хранящий информацию защиты. Процесса создаются с помощью вызова Win32, который принимает на входе имя исполняемого файла, определяющего начальное содержимое адресного пространства и создает первый поток. Потоки могут создаваться динамически в процессе работы. Когда поток завершает свою работу, он может прекратить свое существование, процесс же завершается с завершением последнего активного потока.
Потоки представляют собой концепцию планирования, а не владения ресурсами. Любой поток может получить управление ко всем объектам его процесса.
Т.к. переключение потоков в Win2k занимает много времени (переключение в режим ядра а затем возврат в режим пользователя), то есть более простой механизм но обеспечивающий псевдопараллелизм – волокна, подобны потокам но планируемые в пространстве пользователя создавшей их программой. У каждого потока может быть несколько волокон, так же как у процесса может быть несколько потоков, с той разницей, что когда волокно логически блокируется, оно помещается в очередь блокированных волокон, после чего для работы выбирается другое волокно в контексте того же потока. ОС не знает о смене волокон, так как все тот же поток продолжает работу.
Необходимые параметры для системного вызова CreateProcess
указатель на имя исполняемого файла
сама командная строка (неразобранная на составные части)
указатель на описатель защиты процесса
указатель на описатель защиты для начального потока
бит, управляющий наследованием дескрипторов
разнообразные флаги (режим отладки, консоли и т.д.)
указатель на строки окружения
указатель на имя текущего каталога нового процесса
указатель на структуру, описывающую начальное окно на экране
указатель на структуру, возвращающему процесу 18 значений
Хотя нет иерархии процессов, (родительский-дочерний) однако один из 18 возвращающися значений – это дескриптор процесса.
Хотя сначала есть один поток, далее можно создать новые потоки с помощью CreateThread которой передается:
описатель защиты
начальный размер стека
адрес запуска
параметр задаваемый пользователем
начальное состояние потока
идентификатор процесса