Как Центральный вокзал Диспетчеризирует, действительно используют операционную систему?

В Windows вы пропустите великолепные инструменты GNU / Linux / Unix, такие как sed, awk, wget, grep, tr, locate, file, dd, diff,

Я бы не стал рекомендовать cygwin, Я предпочитаю нативные инструменты.

Вы можете найти собственные порты инструментов GNU по адресу http://gnuwin32.sourceforge.net/

Тогда вам понадобится приличная подсветка синтаксиса, блокнот - просто антиквариат. Geany лучше всех работает в Linux, и есть порт для Windows: http://www.geany.org/Download/Releases

Существует также порт для Windows Gimp, бесплатный и opensource, предлагает те же и больше функций, что и Adobe Photoshop (но с другим интерфейсом). Хотя это немного сложнее в использовании. http://gimp-win.sourceforge.net/

Для компилятора C / C ++ / Lisp / Ada и make-файлов вам потребуется MinGW, Minimalist GNU для Windows вместе с msys ( Linux как консоль). В отличие от cygwin, mingw и msys компилируют нативные приложения win.

Windows не имеет установленного Perl по умолчанию. Вы можете скачать бесплатный интерпретатор Perl с http://www.activestate.com/

Наконец, вы можете установить CoLinux, с помощью которого вы сможете запускать приложения для Linux. на винде. К сожалению, CoLinux сложно установить, и вы можете испортить свой компьютер, если не знаете, что делаете.

Если у вас Vista Ultimate или XP, вы можете установить SUA / WSU, Windows Services для Unix. В Vista он находится на вкладке Компоненты ОС в разделе «Установка и удаление программного обеспечения» на панели управления. В XP необходимо загрузить 300 МБ от Microsoft.

14
задан Machavity 19 April 2017 в 23:04
поделиться

1 ответ

Это библиотека, но есть некоторые оптимизации ядра, позволяющие контролировать системный уровень. В частности, происходит то, что существует дополнительный интерфейс pthread_workqueue , который позволяет GCD сообщать ядру, что он хочет, чтобы поток выполнял некоторую конкретную функцию, но на самом деле не запускает поток (в основном это продолжение ). В этот момент ядро ​​может выбрать запуск этого продолжения или нет в зависимости от загрузки системы.

Итак, да, существует глобальная общесистемная инфраструктура, которая управляет потоками GCD в ядре, и второй ответ правильный. Вы делаете ошибку, думая, что там происходит синхронизация, которая будет чего-то стоить. Планировщик будет работать независимо от того, что сделал GCD, используется новый интерфейс, который позволяет планировщику не только решать, запускать ли потоки на основе их относительного приоритета, но и создавать или уничтожать потоки как хорошо.

Это (значительная) оптимизация, но она не является строго необходимой, и порт FreeBSD фактически не поддерживает общесистемные вещи. Если вы хотите посмотреть на реальные интерфейсы, вот pthread_workqueue.h , реализация находится в Apple pthread.c , и вы можете увидеть точку входа в заглушку, которую ядро ​​использует для запуска рабочих очередей в своих asm-заглушках в start_wqthread.s . Вы также можете пролистать xnu, чтобы увидеть, как он вызывает заглушку, если хотите.

22
ответ дан 1 December 2019 в 12:39
поделиться