- •Понятие операционной системы (ос), цели ее работы. Классификация компьютерных систем
- •Обеспечение удобства, эффективности, надежности,
- •История ос. Отечественные ос. Диалекты unix. Режимы пакетной обработки, мультипрограммирования, разделения времени
- •Особенности ос для различных классов компьютерных систем. Ос реального времени. Ос для облачных вычислений
- •Архитектура компьютерной системы
- •Управление процессами
- •Обзор функций ос: управление памятью, файлами, процессами, сетями, командными интерпретаторами, сервисы ос, системные вызовы. Уровни абстракции ос. Архитектура unix и ms-dos
- •Системные вызовы (system calls)
- •Уровни абстракции ос. Ос с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ос. Генерация ос
- •Виртуальная машина Java (jvm)
- •Уровни абстракции ос
- •Управление процессами. Планирование и диспетчеризация процессов
- •Методы взаимодействия процессов
- •Потоки (threads) и многопоточное выполнение программ (multi-threading)
- •Стратегии и критерии диспетчеризации процессов
- •Методы синхронизации процессов
- •Тупики (deadlocks), методы предотвращения и обнаружения тупиков
- •Алгоритм банкира
- •Управление памятью
- •Схемы разделения памяти
- •Страничная организация памяти
- •Решаемые задачи:
- •Сегментная организация памяти
- •Виртуальная память
- •Системы файлов
- •Классификация файловых систем
- •Задачи файловой системы
- •Виртуальные файловые системы (vfs). Реализации файловых систем. Сетевая файловая система nfs Виртуальные файловые системы
- •Системы ввода-вывода
- •Сети и сетевые структуры Распределенные системы
- •Классические и современные сетевые коммуникационные протоколы Протоколы коммуникации
- •Безопасность операционных систем и сетей. Trustworthy Computing Безопасность (security) – защита от внешних атак.
- •Основная суть инициативы twc заключается в том, что безопасности необходимо уделять особое внимание при разработке программной системы, начиная с самых ранних этапов.
- •Обзор архитектуры и возможностей системы Linux: архитектура, ядро, распространение и лицензирование, принципы проектирования, управление процессами
- •Обзор архитектуры и возможностей системы Linux: управление памятью, ресурсами, файловые системы, драйверы устройств, сети, безопасность
- •Обзор архитектуры и возможностей систем Windows 2000/xp/2003/Vista/2008/7
- •Оболочка Norton Commander и ее графические аналоги для Windows:
- •29. Far Manager – текстовая оболочка
Архитектура компьютерной системы
Процессор (CPU) – многоядерный (multi-core)
Память (RAM)
Общая шина (PCI)
Порты – COM, LPT
USB 2.0 (260 MBit/s) – внешние диски, принтеры, сканеры и др.
SCSI (Small Computer System Interface).
IEEE 1394 (FireWire) – порты для цифровых камер
HDMI (High-Definition Multimedia Interface) – для мультимедийного оборудования высокой четкости
Инфракрасные порты (IrDA) – устарели; неудобны в использовании
BlueTooth – беспроводная связь
Центральный процессор – устройство, выполняющее команды (instructions) компьютерной системы.
частота процессора (ядра) – время выполнения им одной самой простой машинной команды.
Оперативная (основная) память, или просто память – устройство, хранящее обрабатываемые данные.
Системная шина – устройство, к которому подсоединены все модули компьютера и через которое они обмениваются сигналами, например, о прерываниях.
Порты – устройства с разъемами для подключения к компьютеру внешних устройств.
Bluetooth – устройства для беспроводного подключения
Инфракрасный порт (IrDA) – порт для подключения ноутбука к мобильному телефону
сетевые устройства – порты и адаптеры – для подключения компьютера к локальной сети.
Архитектура ОС. Управление процессами: Основные понятия. Семафоры и мониторы
Управление процессами
Процесс (process) - это пользовательская программа при ее исполнении в компьютерной системе.
Создание и удаление процессов. При создании процесса необходимо создать в памяти соответствующие системные структуры (таблицу страниц, стек и др.). При удалении процесса память, занимаемая ими, освобождается, а также выполняется закрытие всех файлов и освобождение всех других ресурсов, которые использовал процесс, если последний не сделал этого явно.
Приостановка и возобновление процессов. Выполнение процесса приостанавливается при выполнении синхронного ввода-вывода, а также системного вызова или команды (типа suspend ). Приостановки процессов следует с осторожностью, так как приостанавливаемый процесс может находиться в своей критической секции – выполнять обработку общего ресурса, к которому каждому процессу предоставляется монопольный доступ, так что при его приостановке возникает ситуация тупика (deadlock ) – приостановленный процесс не может освободить ресурс, а конкурирующий процесс не может его получить. При приостановке процесса ОС сохраняет состояние его выполнения, а при возобновлении – восстанавливает.
Синхронизация процессов. Процессы работают параллельно и при этом конкурируют за общие ресурсы, а также должны в некоторые моменты вычислений ожидать наступления некоторых событий. Для предотвращения возможных конфликтов и несогласованностей, например, race condition - несогласованного доступа к общим данным, при котором один процесс читает старые данные, а другой их в этот же момент обновляет, - ОС предоставляет средства синхронизации (например, семафоры имониторы, рассмотренные в следующем разделе).
Взаимодействие процессов.При своей параллельной работе процессам необходимо взаимодействие, с целью согласованного решения различных частей одной и той же задачи. Процессы могут взаимодействовать с помощью передачи сообщений друг другу, а также с помощью так называемых условных переменных и рандеву (все эти виды взаимодействия рассмотрены позже).
Семафоры- новый способ синхронизации процессов, ставший классическим.
Race condition - несогласованный доступ из параллельных процессов к общим данным.
Атомарная (atomic) операция – операция, если один из параллельных процессов начал ее выполнять, никакой другой процесс до ее завершения не может также начать выполнять эту же операцию над теми же данными.
Графическая оболочка – подсистема ОС, реализующая графический пользовательский интерфейс пользователей и системных администраторов с операционной системой.
Взаимное исключение (mutual exclusion) – режим выполнения критической секции, в котором в каждый момент времени ее может выполнять не более чем один из параллельных процессов.
Двоичный семафор (binary semaphore) – системная переменная, над которой определены операции открытия и закрытия, обеспечивающая в закрытом состоянии прерывание процесса, пытающегося ее закрыть, и добавление его к очереди к закрытому семафору; используется для синхронизации процессов по общим ресурсам.
Конвейер (pipe) – конструкция командных языков (shell) системы UNIX, позволяющая использовать стандартный вывод процесса – первого аргумента как стандартный ввод процесса – второго аргумента.
Критическая секция - код, который может выполняться несколькими процессами параллельно и осуществляет доступ к некоторому общему для всех процессов ресурсу – например, глобальной области памяти или общему файлу.
Монитор (как средство синхронизации) – многовходовый модуль в котором определены общие для параллельных процесов данные и набор операций (в виде процедур) над ними.
Облегченный процесс (lightweight process) – процесс, выполняемый в том же пространстве виртуальной памяти, что и процесс-родитель.
Процесс (process) - пользовательская программа при ее исполнении в компьютерной системе.
Cкрипт (script) – командный файл, содержащий часто используемые последовательности команд ОС.
Стек – системный резидентный массив в памяти, создаваемый операционной системой для поддержки выполнения процедур некоторого процесса и хранящий их локальные данные и связующую информацию между ними.
Тупик (взаимная блокировка, deadlock ) – ситуация, при которой образуется циклическая цепочка блокированных процессов, бесконечно ждущих друг друга.
