Многозадачность
Не надо никого убеждать, что вытесняющая многозадачность как концепция лучше, чем кооперативная многозадачность. И так все понятно. Но не торопитесь с выводами. В реальном мире редко что бывает идеально.
«Классическая» Mac OS (включая Mac OS 9) использует кооперативную многозадачность, а все компьютеры семейства UNIX и компьютеры, работающие под управлением операционных систем семейства Windows, используют вытесняющую многозадачность. Именно поэтому противники Mac OS считали и считают ее «несерьезной» системой.
Идеология вытесняющей многозадачности была разработана задолго до появления персональных компьютеров. Почему же авторы Macintosh’a не приняли ее на вооружение? Неужели они были так глупы, что не заметили очевидного? Не все так однозначно. Не будем забывать о том, что именно Macintosh явился, по сути, первым компьютером, ориентированным не на специалиста-компьютерщика, а на неподготовленного пользователя. В идеологии этого компьютера впервые пользователь был провозглашен «главным». Пользователь сам решал, что и когда надо делать, он был инициатором процессов, а не являлся «бесплатным приложением» к компьютеру, его мнение, его решения нередко имели приоритет над всем остальным. Поэтому для Macintosh’eй пришлось пересмотреть всю концепцию программирования. Появилось такое понятие, как событийно управляемая машина, то есть некоторое событие, возникающее в системе, запускало цепочку последующих действий по его обработке. Пользователь, нажимающий клавиши или манипулирующий мышкой, являлся одним из наиболее важных источников таких событии. И если пользователь считал, что данная задача ему важнее, чем остальные,— то так тому и быть.
Это вовсе не означало полного рабского подчинения системы пользователю. С самого начала в системе была предусмотрена некоторая иерархия приоритетов, и задачи действительно важные и срочные система отслеживала сама, пользователь об этом даже не догадывался. Со временем возможности параллельной работы в Mac OS были расширены, и последние версии позволяли выполнять большинство операций с файлами, печатать документы, работать с сетью в фоновом режиме, практически не затрагивая работу пользователя.