Операционные системы
-
Переключение контекста в вычислительных системах
Переключение контекста в компьютерах: что это такое и зачем нужно? Объяснение процесса сохранения и восстановления состояния задач для многозадачности.
-
Прерывания в компьютерных системах
Прерывания в компьютерах: запрос на приостановку выполнения кода для обработки событий. Аппаратные и программные сигналы, обработчики, многозадачность.
-
Операционные системы: управление аппаратными ресурсами компьютера
Операционные системы (ОС): управление аппаратными ресурсами ПК, телефонами и серверами. Windows лидирует (68% рынка в 2023). Обзор и функции ОС.
-
Процессы-зомби в Unix-подобных системах
Зомби-процессы в Unix: что это, почему возникают и как избежать утечек ресурсов. Объяснение состояния "terminated" и важности вызова wait().
-
Процесс в вычислительных системах: исполнение и управление
Процесс в программировании: что это такое? Изучите понятие процесса как выполняемой программы, потоки, ресурсы ОС и отличие от программы-файла.
-
Бесконечные циклы в программировании
Бесконечный цикл в программировании: что это, причины возникновения и последствия. Остановка только внешним вмешательством. Проблема останова.
-
Понятие параллелизма и потоки выполнения
Потоки выполнения в программировании: наименьшая независимая последовательность инструкций, управляемая планировщиком ОС. Многопоточность, ресурсы процессов.
-
Обработка исключений в программировании
Обработка исключений в программировании: как реагировать на ошибки и особые условия в коде. CPU, OS, языковые исключения – обзор и механизмы.
-
Пользовательское пространство в компьютерной памяти
Виртуальная память: разделение на пользовательское и ядро. Защита от ошибок и вредоносного ПО. Области памяти для приложений и ОС. 💻🛡️
-
Системные вызовы: интерфейс между программой и ядром ОС
Системные вызовы (syscall) – способ доступа программ к ядру ОС. Обеспечивают интерфейс для работы с оборудованием, процессами и службами ядра.
-
Повторный вход в функции и подпрограммы
Повторный вход (reentrancy) в программировании: функция может быть прервана и возобновлена. Безопасность многопоточности, обработка прерываний.
-
Нагрузка системы в UNIX: анализ и интерпретация показателей.
Нагрузка системы в UNIX: что это такое? Узнайте, как измеряется вычислительная работа, что такое load average и как интерпретировать его значения для CPU.
-
Ядро паники в Unix-подобных системах
Ядро паники (Kernel Panic) в Unix-подобных ОС: причины, диагностика и восстановление после критических ошибок. Информация для системных администраторов и разработчиков.
-
Фоновые процессы и службы: обзор и управление
Фоновые процессы: что это такое? Узнайте о задачах, выполняемых в фоновом режиме без участия пользователя – логирование, мониторинг, уведомления в Windows.
-
Сбой и аварийное завершение программного обеспечения
Сбой программы: причины и последствия. Что такое краш системы, ошибки памяти, переполнение буфера и как это влияет на работу компьютера и ОС.
-
Операция Fork в Unix-подобных системах
Форк в Unix: создание копии процесса. Основной метод создания процессов в Unix-подобных ОС, соответствующий стандартам POSIX и Single UNIX.
-
Изменение "на лету": принцип работы и применение.
Изменение "на ходу": что это значит? Узнайте, как меняют настройки во время работы в авто, IT и кулинарии. Переключение режимов, запись дисков и многое другое!
-
Выполнение компьютерных программ
Выполнение программ компьютером: процесс интерпретации и выполнения инструкций. Цикл "извлечение-декодирование-выполнение". Batch-режим и интерактивные сессии.
-
Абстракция аппаратного обеспечения в программном обеспечении
Абстракция оборудования: программные интерфейсы для доступа к аппаратным ресурсам. Независимость от устройств, высокая производительность, ISA CPU.
-
Дочерние процессы в вычислительных системах
Дочерние процессы в программировании: создание процессов родительским процессом, fork/spawn. История и реализация в Unix, Windows и OS/360.
-
Родительские и дочерние процессы в вычислительных системах.
Родительский процесс в программировании: создание дочерних процессов через fork. Идентификация процессов по ID в Unix-подобных ОС. Основы многозадачности.
-
Идентификатор процесса (PID) в операционных системах
Идентификатор процесса (PID) – уникальный номер, используемый ОС для отслеживания активных процессов. Важен для управления, завершения и мониторинга задач.
-
Механизм спулинга в компьютерных системах
Спулинг в компьютерах: эффективный метод многопрограммности для обмена данными с устройствами, особенно медленными (принтеры, считыватели). Оптимизация задач!
-
Быстрая смена пользователей в многопользовательских операционных системах.
Многопользовательские ОС: быстрая смена пользователей без выхода из приложений. Linux поддерживает multi-seat через kmscon/systemd, несмотря на ограничения ядра.
-
Загрузчик в операционных системах
Загрузчик в ОС: что это такое? Как загружает программы и библиотеки в память для выполнения. Важный этап запуска приложений. Основы работы с загрузчиками.
-
Команда time в Unix-подобных системах
Команда `time` в Unix: измеряет время выполнения команд, показывает затраты CPU (пользовательское и системное время). Полезно для оптимизации скриптов.
-
Справедливое распределение процессорного времени: алгоритм и реализация.
Справедливое планирование задач в ОС: равное распределение CPU между пользователями/группами, а не процессами. Алгоритм Fair Share, Round Robin.
-
Файловые дескрипторы в Unix-подобных операционных системах
Файловые дескрипторы в Unix: уникальные идентификаторы файлов и ресурсов ввода/вывода. POSIX API, стандартные потоки (stdin, stdout, stderr).
-
Единое системное пространство в кластерных системах
Кластерная ОС с единым системным образом (SSI): упрощение управления и администрирования распределенных вычислений. Обзор, преимущества и особенности SSI.
-
Обработчики прерываний в системном программировании
Обработчики прерываний в системном программировании: что это, как работают, роль в драйверах и переходе между режимами. Асинхронная обработка и приоритеты.
-
Занятая ожидание в программировании
Ожидание в цикле (busy waiting) в программировании: что это, почему неэффективно и как избежать. Антипаттерн, тратящий ресурсы процессора.
-
top: Мониторинг процессов в Unix-подобных системах
top – утилита для мониторинга системы в Unix/Linux. Отображает процессы, использование CPU и памяти, позволяет сортировать по разным критериям.
-
Сиротские процессы в Unix-подобных системах
Сиротский процесс в Unix: что это такое, как работает переусыновление и что происходит, когда родительский процесс завершается. Объяснение и примеры.
-
Сторожевой таймер: обнаружение и восстановление после сбоев компьютера.
Сторожевой таймер (WDT) для компьютеров: обнаружение и восстановление после сбоев. Принцип работы, "пинок" таймера, применение в RTOS и микроконтроллерах PIC.
-
Сигналы в межпроцессном взаимодействии
Сигналы в межпроцессном взаимодействии: что это, как работают и для чего используются в Unix/POSIX системах. Управление процессами и обработка ошибок.
-
Команда kill: завершение процессов в операционных системах.
Команда `kill` в ОС: завершение процессов, отправка сигналов. Узнайте о назначении, PID/PGID и системном вызове kill в Unix и других системах.
-
Утилита nice в Unix-подобных системах
nice – утилита Unix/Linux для изменения приоритета процессов. Позволяет влиять на выделяемое CPU время, повышая или понижая приоритет задач.
-
Код завершения процесса и его родительский процесс
Код завершения процесса: что это такое? Узнайте, как родительский процесс получает числовой статус завершения дочернего процесса в Unix, Linux и DOS.
-
Идентификатор группы в Unix-системах (GID)
GID в Unix/POSIX: числовой идентификатор группы пользователей для управления доступом к файлам и ресурсам. Разберитесь в группах и правах доступа!
-
Планировщик процессов Linux 2.6: O(1) и его особенности
O(1) планировщик Linux 2.6: постоянное время планирования процессов, улучшение O(n). История, преимущества и замена на CFS. Ядро Linux, RTOS.
-
Уровни выполнения в операционных системах
Уровни запуска (runlevel) в Unix-подобных ОС: режимы работы системы после загрузки. 7 уровней (0-6) определяют состояние машины. Инициализация System V.
-
Немаскируемые прерывания: особенности и применение.
Немаскируемое прерывание (NMI) в компьютерах: аппаратный сигнал критических ошибок, не блокируемый стандартными методами. Приоритет, SPARC, время отклика.
-
BIOS: Функции, режимы работы и взаимодействие с оборудованием.
BIOS: вызовы, прерывания и режимы работы на IBM PC. Устаревшие DOS-программы и загрузчики используют BIOS. Современные ОС – реже, в основном при загрузке.
-
QIO: Очередной ввод-вывод в операционных системах DEC
QIO: что это такое? Объяснение технологии асинхронного ввода/вывода, разработанной DEC. QIO с ожиданием и без – ключевые особенности и принципы работы.
-
MERT: Операционная система реального времени с поддержкой Unix
MERT: Операционная система реального времени, сочетающая Unix и возможности для критически важных вычислений. Модульное ядро, IPC, файловая система для баз данных.
-
Сигнал SIGHUP в Unix: История и современное использование
SIGHUP: сигнал в POSIX системах при закрытии терминала. История возникновения связана с отключением последовательной линии RS-232. Подробности здесь!
-
Процесс Init в Unix-системах
Init в Unix: первый процесс, запускаемый при загрузке ОС. Daemon, предок всех процессов, PID 1. Важен для стабильной работы системы.
-
Задача в вычислительной технике
Задача в программировании: единица выполнения или работы. Различия между задачами, процессами, потоками и запросами. Оптимизация производительности.
-
Режим безопасной загрузки операционных систем: диагностика и применение
Безопасный режим: диагностика и исправление ошибок ОС Windows, macOS, Android, Linux. Загрузка с минимальным набором драйверов для решения проблем.
-
Асинхронный ввод/вывод: принципы и реализация
Асинхронный ввод/вывод (I/O) в компьютерных науках: ускорение обработки данных за счет продолжения работы до завершения операций I/O. Оптимизация производительности.
-
Функция sigaction в POSIX: надежная обработка сигналов.
Системный вызов sigaction в POSIX: обработка сигналов ОС в Unix-подобных системах. Настройка поведения программы при получении сигналов через указатель функции.
-
Singularity: Экспериментальная операционная система от Microsoft Research
Singularity: экспериментальная ОС от Microsoft Research на C#, Spec# и C++. Высокая надежность, безопасность через типизацию, управляемый код.
-
Механизм управления службами в Solaris (SMF)
SMF в Solaris и illumos: управление сервисами, зависимости и замена init.d. Обеспечивает надёжный запуск и остановку служб в ОС.
-
inetd: суперсервер и диспетчер служб Unix
inetd: демон суперсервера Unix для предоставления интернет-сервисов. Запускает процессы для обработки запросов клиентов, поддерживая echo и другие службы.
-
Sleep mode
-
Interrupt storm
-
Планировщики заданий: управление фоновым выполнением программ
Планировщик задач: ПО для автоматизации и управления фоновым выполнением заданий в сети компьютеров. Batch-обработка, DRMS, WLA – ключевые функции.
-
Очереди процессов и планирование задач ЦП
Очереди процессов: что это такое? Узнайте о планировании задач в ОС, распределении ресурсов и повышении производительности системы. FIFO принцип работы.
-
Anacron: Планировщик заданий для не постоянно работающих систем.
Anacron: планировщик задач для Linux/Unix, запускающий команды периодически, даже если система не работает постоянно. Альтернатива cron, зависимость cronie.
-
Аппаратные прерывания: Сигналы и обработка в процессоре
Прерывания (IRQ) в компьютере: аппаратный сигнал для приостановки программы и обработки ввода. Ключи, мышь, сеть – всё через IRQ0-IRQ15.
-
Протопотоки: Лёгковесные сопрограммы для ограниченных систем.
Протопотоки: легковесные, безстековые потоки для конкурентного программирования. Кооперативная многозадачность, Duff's device, минимальное потребление памяти.
-
Системный вызов ioctl для работы с устройствами
ioctl: системный вызов для специфичных операций ввода/вывода устройств. Управление устройствами, доступ к ядру, разработка драйверов. Подробности здесь!
-
Легковесные процессы в операционных системах: реализация многозадачности.
Легковесные процессы (LWP) в Erlang: эффективный многозадачный режим в ОС. Оптимизация ресурсов, разделяемая память и преимущества производительности.
-
Алгоритм планирования «Оставшееся минимальное время»
Алгоритм SRTF: планирование процессов по кратчайшему оставшемуся времени. Прерывистый метод, оптимизирующий скорость выполнения и снижающий нагрузку на систему.
-
Межпроцессорные прерывания (IPI)
Прерывания между процессорами (IPI): что это такое, для чего нужны и как работают. Управление кэшем, остановка системы, уведомления о задачах. SEO-оптимизация.
-
Режим системного управления процессоров x86 (SMM)
Системный режим управления (SMM) процессоров x86: приостановка ОС и запуск ПО из прошивки с повышенными привилегиями. Intel 386SL, AMD Am386.
-
Профилировщики системы: от перфокарт до современных инструментов
Программа-профайлер системы: подробная информация об оборудовании и ПО компьютера. Мониторинг CPU, GPU, USB и других устройств в реальном времени.
-
Принцип Lusering счётчика команд (PCLSRing) в ITS: обеспечение возобновляемости системных вызовов.
PCLSRing в ITS: принцип согласованности доступа процессов. Обеспечивает возобновление системных вызовов после прерываний, сохраняя контекст и обновляя аргументы.
-
Уровни приоритета прерываний: принципы и применение.
Уровень приоритета прерываний (IPL) в системах: назначение, реализация (аппаратно/программно), влияние на производительность и задержки.
-
Анонимные каналы: механизмы межпроцессного взаимодействия
Анонимные каналы (pipes) в Linux/Unix: однонаправленная связь между процессами. Реализация в ОС, создание pipelines, двунаправленная связь – два канала.
-
Сообщения ядра: утилита dmesg и анализ системных логов
dmesg: утилита UNIX для просмотра буфера сообщений ядра. Отображает сообщения драйверов и информацию о загрузке системы. Полезно для диагностики!
-
Режимы работы центрального процессора
Режимы работы CPU: уровни привилегий, защита системы от программ. Как ОС и приложения работают в разных режимах для безопасности и стабильности.
-
Состояния процессов в многозадачной системе
Состояния процессов в компьютерных системах: обзор типичных состояний, не всегда распознаваемых ядром ОС. Важно для понимания работы процессов и памяти.
-
Опрос устройств: принципы и методы
Опрос устройств в программировании: что это такое, как работает и где применяется. Синхронная проверка статуса оборудования, polled I/O, watchdog timer.
-
Резидентный монитор: предшественник современных операционных систем.
Резидентный монитор: системное ПО 1950-70х, предшественник ОС. Загрузка программ, управление памятью и ввод/вывод. Основа встраиваемых систем.
-
Замена исполняемого файла в процессе (Exec)
Выполнение файлов в ОС: функция exec заменяет текущий процесс новым, не создавая новый PID. Важно в Unix-системах, доступно в разных языках программирования.
-
Job control (Unix)
-
Transitive dependency
-
Chain loading
-
Cooperative multitasking