Hacker News Digest

Тег: #scheduling

Постов: 2

Inside OS/2 (1987) (gitpi.us)

OS/2: ядро и сервисы
OS/2 — многозадачная ОС для 286/386, API-ориентированная, расширяемая. Архитектура: ядро, Windows Presentation Manager, LAN Manager. Достаточно ядра для многозадачности; WPM и LAN не обязательны.

SDK
Поставляется с оптимизирующим С-компилятором, макро-ассемблером, линковщиком, отладчиком CodeView, редактором. Документация по вызовам и драйверам.

Планировщик
Превентивный, вытесняющий: по таймеру ядро перехватывает CPU и переключает задачи. Приоритеты + кванты времени; при переключении сохраняются регистры и режимы.

Динамические библиотеки
API реализован в DLL; адреса 32-битные, параметры через стек. Экономия диска и RAM: код загружается и разделяется между процессами. Ошибки в DLL исправляются без пересборки приложений. Повторный запуск той же программы переиспользует код, выделяя только данные/стек/кучу.

Режимы процессора

  • Protected: многозадачность, изоляция процессов.
  • Real: совместимость с MS-DOS, прямой доступ ко всей памяти.

by rbanffy • 10 августа 2025 г. в 13:15 • 113 points

ОригиналHN

#os-2#operating-systems#multitasking#ibm#microsoft#c-programming#assembly-language#dll#scheduling

Комментарии (48)

  • OS/2 2.1 умело загружаться и многозадачно работать даже с одной 1,44 МБ дискеты без GUI, чем восхищались участники.
  • Обсуждали преимущества вытесняющей многозадачности OS/2 над кооперативной Windows 3.x и особенности Pascal-calling convention, экономившей 3 байта и такты на вызов.
  • Вспомнили, что ранний OS/2 создавался совместно IBM и Microsoft, но к 1990 г. Microsoft переключилась на Windows NT, а IBM осталась с OS/2.
  • Отметили долгие годы работы OS/2 в терминалах MetroCard нью-йоркского метро и вспомнили SOM как более продвинутую альтернативу COM.

FreeBSD Scheduling on Hybrid CPUs (wiki.freebsd.org)

Цель
Адаптировать планировщик ULE для гибридных CPU (P- и E-ядер Intel, big.LITTLE ARM), позволяя выбирать приоритет: максимальная производительность, энергоэффективность или баланс.

Проблема
Традиционные cpuset(1) лишь ограничивают, какие ядра разрешены, но не говорят, какие из них предпочтительны. Прямое связывание политик с масками cpuset приводит к жёсткой фиксации и конфликтам при наследовании.

Решение

  • Ввести политики как отдельный параметр, привязанный к cpuset.
  • Дочерние cpuset могут лишь ужесточать политику, а не расширять.
  • Поддержать шкалу «энергоэффективности» 0–100:
    0 = все P-ядра, 100 = только E-ядра, промежуточные значения задают пропорцию.
  • Позволить админу задавать разные политики для разных разделов системы (джейлы, cgroup, NUMA-домены).

by fntlnz • 08 августа 2025 г. в 05:51 • 97 points

ОригиналHN

#freebsd#scheduling#hybrid-cpus#intel#arm#big.little#cpuset#energy-efficiency

Комментарии (24)

  • Архитектура P- и E-ядер красива на словах, но на практике планировщик быстро теряет контроль: короткие задачи могут быть латентно-чувствительными, а длинные — срочными.
  • Пользователи сравнивают ситуацию с провалом AMD Bulldozer: «много ядер, посредственная производительность» и ощущение непредсказуемости.
  • Некоторые ушли на Linux, где можно вручную управлять распределением на гетерогенных CPU.
  • Предлагают использовать nice-уровни и источник питания (AC/батарея) как простые эвристики для выбора ядра.
  • Многие требуют ручного контроля: «дайте мне кнопку “сейчас всё важно” или “выжми максимум времени автономии”».
  • Утверждение, что «все новые Intel уже гибридные», оказалось преувеличением: i3, Pentium, Celeron и часть Xeon всё ещё без E-ядер.