Рис. 6.20. Пользовательский каталог и структура одного из типичных файлов
Все современные операционные системы позволяют хранить более одного каталоги. Каждый каталог обычно сам представляет собой файл и как таковой может включаться в другой каталог, в результате получается иерархическая древовид ная структура каталогов. Большое количество каталогов особенно удобно программистам, работающим над несколькими проектами. Они могут сгруппировать в один каталог все файлы, связанные с одним проектом. Каталоги — это удобное средство совместного с членами своих рабочих групп использования файлов.
Виртуальные команды для параллельной работы
Некоторые вычисления удобно производить с помощью двух и более параллельных процессов (то есть будто бы на разных процессорах). Другие вычисления, чтобы сократить общее время вычислений, можно поделить на части, которые затем выполнять параллельно. Чтобы несколько процессов могли выполняться параллельно, нужны специальные виртуальные команды. Мы обсудим их в следующих подразделах.
Интерес к параллельной работе обусловлен и некоторыми законами физики. Согласно теории относительности Эйнштейна скорость передачи электрических сигналов не может превышать скорость света, которая равна примерно 1 фут/нс в вакууме, а в медном проводе или оптическом волокне — еще меньше. При разработке компьютеров важно учитывать этот предел. Например, если процессору нужны данные из основной памяти, которые находятся на расстоянии 1 фута от него, потребуется по крайней мере 1 не, чтобы запрос дошел до памяти, и еще 1 не, чтобы ответ вернулся к центральному процессору. Следовательно, чтобы компьютеры могли передавать сигналы быстрее, они (компьютеры) должны быть совершенно крошечными.
Альтернативный способ повышения быстродействия компьютера — создание машины с несколькими процессорами. Компьютер, содержащий 1000 процессоров с временем цикла 1 не каждый, будет иметь такие же возможности, как процессор с временем цикла 0,001 не, но первый реализовать гораздо проще и дешевле.
В компьютере с несколькими процессорами каждый из взаимодействующих процессов можно приписать какому-то определенному процессору, чтобы выполнять несколько действий одновременно. Если же в компьютере имеется только один процессор, эффект параллельной работы можно смоделировать. Для этого процессы могут выполняться по очереди, каждый по очень короткому промежутку времени. Иными словами, процессор будет совместно использоваться несколькими процессами.
На рис. 6.21 показана разница между реальной параллельной работой, когда физически существуют несколько процессоров, и смоделированной параллельной работой, когда физически имеется всего один процессор. Даже если параллелизм моделируется, удобно считать, что каждому процессу приписан собственный виртуальный процессор. При смоделированной параллельной работе возникают те же проблемы, что и при реальной.
Рис. 6.21. Параллельная работа на нескольких процессорах (а); моделирование параллельной работы трех процессов путем переключения единственного процессора с одного процесса на другой (б)