AMIGA # 1
Поскольку Амига — по-настоящему многозадачный компьютер (в отличие от многих других, пытающихся изо всех сил казаться \"тоже многозадачными\", но устойчиво работающих в многозадачном режиме, только если работает одна-единственная задача), то в системе обязательно должен присутствовать \"высший судия\", разбирающий бесконечные иски законопослушных процессов о единоличносм праве на владение ресурсами. Мы не случайно употребили слово \"законопослушных\" в тайной надежде, что эту книгу читает программист, который больше не будет писать программ, самоуверенно полагающих что они и только они в любой момент времени могут делать с системой всё, что заблагорассудится. Всё, что может сделать НОРМАЛЬНАЯ амиговская программа: попросить на некоторое время у системы некоторый ресурс, попользоваться им, если система таковой ресурс предоставила, а затем сообщить системе, что данный ресурс ей более не нужен. Под ресурсом можете подразумевать, что угодно: диски, файлы, каталоги, память, экраны, окна, звуковые каналы, джойстик — все, кроме блока питания. Высшим судьей, или, более прозаично выражаясь, системным арбитром является набор функций различных системных библиотек (в основном — \"exec.library\"), который отвечает за устойчивую работу Амиги в многозадачном режиме. Поскольку НОРМАЛЬНЫХ программ в системе может одновременно работать сколько угодно, никто не запрещает им например, попросить у системы открыть один и тот же файл (сознательно приводим пример попроще). Ну хорошо, открыли, вроде ничего страшного, а если все вдруг начнут в него записывать каждый своё? Что в конце концов запишется на диск? Вот здесь-то и надо вспомнить о руководящей и направляющей силе системных библиотек. Любое открытие файла сопровождается навешиванием на него замка тем процессом, который получил разрешение на открытие файла. Замки бывают двух типов — разрешающий доступ по чтению, иначе называемый разделяемым (shared), поскольку имеется в виду множественный доступ по чтению (правильнее было бы назвать его \"прозрачным\" — хоть видит око, да зуб неймёт, не знаю, есть ли в Штатах, где все это выдумали, аналогичная поговорка).
|