![](/user_photo/2706_HbeT2.jpg)
- •История операционных систем; понятия операционных систем (понятие Оперативной системы читай из первого вопроса (весь первый вопрос)
- •3) Технологии ввода/вывода, интерфейсы операционных систем; пакетная технология.
- •4 Виды операционных систем. Архитектура операционных систем.
- •5 Модели процессов и потоков.
- •2.1.2 Модель процесса
- •2.1.4 Завершение процесса
- •2.1.5 Иерархия процессов
- •2.1.6 Состояние процессов
- •2.2.2 Модель потока
- •2.2.3 Преимущества использования потоков
- •6 Управление процессами.
- •7Потоки в процессах и реализация многопоточности.
- •Типы реализации потоков
- •8 Гонки. Взаимное исключение и его реализация.
- •9 Виды и механизмы прерываний.
- •10Необходимость синхронизации и гонки, критическая секция
- •11 Блокирующие переменные, семафоры, мьютексы.
- •Семафоры
- •12 Мониторы, тупики, синхронизирующие объекты.
- •13 Задача об обедающих философов.
- •14 Задача о читателях и писателях.
- •16 Алгоритмы планирования процессов.
- •Алгоритмы планирования процессов
- •17 Фиксированное и динамическое распределение памяти.
- •18 Страницы и сегменты в памяти, адресация.
- •19 Кэширование данных, свопинг.
- •20 Виртуальная память: таблицы страниц. Оверлейные структуры
- •21 Файлы и их атрибуты.
- •11.1.5 Атрибуты файла
- •22 Каталоги и приемы их организации.
- •23 Методики размещения файлов.
- •24 Реализация файловых систем.
- •25 Надежность и производительность файловых систем.
- •26 Журнализация.
- •27 Файловая система fat.
- •28 Файловая система ntfs.
- •29 Файловые системы Ext2 и Ext3.
- •Система адресации данных
5 Модели процессов и потоков.
Процесс хараткеризует некоторую совокупность набора исполняющихся команд, ассоциированных с ним ресурсов(память, стеки...) и текущего момента их выполнения(значения реигстров, программного счётчика ...), находящуюся под управлением ОС.
Замечание. Нет взаимно однозначного соответствия между процессом и программой. Например для работы программ может организовываться несколько процессов. Наоборот - один и тот же процесс может использовать несколько программ. В случае обработки одной программы - программа может запускаться на разных ОС, поэтому если она использует код ядра ОС, то процессы будут различны.
2.1.2 Модель процесса
В многозадачной системе реальный процессор переключается с процесса на процесс, но для упрощения модели рассматривается набор процессов, идущих параллельно (псевдопараллельно).
2.1.3 Создание процесса
Три основных события, приводящие к созданию процессов (вызов fork или CreateProcess):
-
Загрузка системы
-
Работающий процесс подает системный вызов на создание процесса
-
Запрос пользователя на создание процесса
Во всех случаях, активный текущий процесс посылает системный вызов на создание нового процесса.
В UNIX каждому процессу присваивается идентификатор процесса ( PID - Process IDentifier)
2.1.4 Завершение процесса
Четыре события, приводящие к остановке процесса (вызов exit или ExitProcess):
-
Плановое завершение (окончание выполнения)
-
Плановый выход по известной ошибке (например, отсутствие файла)
-
Выход по неисправимой ошибке (ошибка в программе)
-
Уничтожение другим процессом
Таким образом, приостановленный процесс состоит из собственного адресного пространства, обычно называемого образом памяти (core image), и компонентов таблицы процессов (в числе компонентов и его регистры).
2.1.5 Иерархия процессов
В UNIX системах заложена жесткая иерархия процессов. Каждый новый процесс созданный системным вызовом fork, является дочерним к предыдущему процессу. Дочернему процессу достаются от родительского переменные, регистры и т.п. После вызова fork, как только родительские данные скопированы, последующие изменения в одном из процессов не влияют на другой, но процессы помнят о том, кто является родительским.
В таком случае в UNIX существует и прародитель всех процессов - процесс init.
В Windows не существует понятия иерархии процессов. Хотя можно задать специальный маркер родительскому процессу, позволяющий контролировать дочерний процесс.
2.1.6 Состояние процессов
Три состояния процесса:
-
Выполнение (занимает процессор)
-
Готовность (процесс временно приостановлен, чтобы позволить выполняться другому процессу)
-
Ожидание (процесс не может быть запущен по своим внутренним причинам, например, ожидая операции ввода/вывода)
2.2.1 Понятие потока
Каждому процессу соответствует адресное пространство и одиночный поток исполняемых команд. В многопользовательских системах, при каждом обращении к одному и тому же сервису, приходится создавать новый процесс для обслуживания клиента. Это менее выгодно, чем создать квазипараллельный поток внутри этого процесса с одним адресным пространством.