Niklaus Wirth, Jurg Gutknecht - Project Oberon. The Design of an Operating System and Compiler / Никлаус Вирт, Юрг Гуткнехт - Проект Oberon. Разработка операционной системы и компилятора

→Global variables and constants (strings) are accessed via the SB register (static base). The value of this register is automatically adjusted by the CXP and RXP instruction as well as by interrupts and traps.
0 Глобальные переменные и константы (строковые) доступны через SB-регистр (статическая часть). Значение этого регистра автоматически устанавливается посредством CXP и RXP инструкций также и для прерываний и ловушек.
→It follows that local variables are addressed relative to the FP value with negative offsets. Parameters are addressed relative to FP with positive offsets, starting at 12 for external procedures called by a CXP instruction, and at 8 for local procedures, where the MOD register is not pushed onto the stack by the call instruction.
0 Отсюда следует, что локальные переменные адресуются относительно FP-значения с отрицательным смещением. Параметры адресуются относительно FP с положительным смещением, начинающимся с 12 для внешних процедур вызванных по CXP-инструкции, и с 8 для локальных процедур, где MOD-регистр не перенесен в стек при вызове подпрограммы.
→The workspace is organized in the usual fashion as a stack of procedure activation records. Its top is denoted by the SP-Register. A second register, the so-called frame pointer FP is the anchor of the dynamic chain of activation records. A new element is added upon procedure call in two steps. The first step is performed after the loading of parameters by the call instruction (CXP for calls of external, BSR for calls of local procedures). The second step is performed by the ENTER instruction which is the first instruction of every procedure body. An activation record is removed, also in two steps, upon procedure completion by the instructions EXIT and RXP for external or RET for local procedures. The state of the workspace before and after these four steps is shown in Fig 8.3.
0 Рабочая область организована в обычной форме как стек записей вызовов процедур. Его вершина записана в SP-регистр Следующий регистр, называемый указатель фрейма FP, является привязкой к активным последовательностям записей вызовов. Новый элемент добавляется при вызове процедура в два шага Первый шаг выполняется после загрузки параметров при вызове подпрограммы (CXP для вызовов внешних, BSR для вызовов локальных процедур). Следующий шаг выполняется при исполнении ENTER-инструкции которая является первой инструкцией тела каждой процедуры. Запись вызова удаляется тоже в две инструкции, при завершении процедуры по инструкциям EXIT и RXP для внешних или RET для локальных процедур. Состояние рабочей области до и после этих четырех шагов показанно на Рис. 8.3.
→5. Blocks for the permanently resident modules of the inner core, i.e. Kernel, FileDir, Files and Modules.
0 5. Блоки для постоянно резидентных модулей внутреннего ядра, то есть Kernel, FileDir, Files и Modules.
→4. Module descriptors (4000H - 7FFFH).
0 4. Дескрипторы модулей (4000H - 7FFFH).
→3. Allocation tables for pages and disk sectors.
0 3. Таблица размещения для страниц и секторов диска.
→2. The system stack (1000H - 17FFH) which is used by interrupt routines executed in supervisor mode, including the trap handler.
0 2. Системный стек (1000H - 17FFH) который используется для обработки прерываний, совершаемых в режиме супервизора, включая заголовок прерывания.
→1. The NIL-page (0...FFFH) which remains permanently unallocated. The purpose of this measure is to let references via a NIL-pointer invoke addressing traps.
0 1. NIL-страницу (0...FFFH), которая всегда остается не размещенной. Цель этого элемента – позволить осуществлять адресные ловушки посредством ссылки на NIL-указатель.
→The area with address range 0...FFFFH contains
0 Область адресов с диапазоном 0...FFFFH включает
→Fig. 8.3. State of stack before and after procedure call and return
0 Рис. 8.3. Состояние стэка до и после вызова и завершения процедуры
→Fig. 8.2. Storage layout for Ceres-3
0 Рис. 8.2. Структура памяти для Ceres-3
→Fig. 8.1. Storage layout for Ceres-1 and Ceres-2
0 Рис. 8.1. Структура памяти для Ceres-1 и Ceres-2
→If address mapping is unavailable, as in the case of Ceres-3 which lacks a memory management unit, the fixing of size limitations is unavoidable. The chosen layout for Ceres-3 is shown in Fig. 8.2; the stack is limited to 128K bytes.
0 Если трансляция адресов отсутствует, как в случае Ceres-3 - недостаток элемента управления памятью памяти, установка ограничение размеров неизбежна. Выбранная схема для Ceres-3 показана на Рис. 8.2; стэк ограничен 128 Кбт.
→Furthermore, we note that both the stack and the heap space must be genuinely allocated, i.e. any address within the space must denote a physically present location. Hence, there is no point in making the virtual address space of their sum larger than the entire physical store. The size of the virtual block space then becomes the difference between virtual and physical address space. The resulting layout is shown in Fig. 8.1. The upper end of the address space is reserved for device registers.
0 Кроме того, мы отмечаем, что оба пространства стэка и кучи должны быть реально выделены, то есть любой адрес внутри пространства должен указывать на настоящий физический адрес. Следовательно, нет смысла создавать виртуальное адресное пространство для них больше всей физической памяти. Размер виртуального блока пространства тогда становится разностью между виртуальным и физическим адресными пространствами. Получившаяся схема показана на Рис. 8.1. Верхний край адресного пространства зарезервирован для регистров устройств.
→Unfortunately, the number of distinct spaces is larger than two. If it were two, no arbitrary size limitation would be necessary; merely the sum of their sizes would be inherently limited by the size of the store. In the case of three spaces, arbitrarily determined size limits are unavoidable. The presence of an address-mapping hardware alleviates the problem, however, because the virtual address space is so large that limits will hardly ever be reached.
0 К несчастью, число отдельных пространств больше двух. Если бы их было два, то никакого условного ограничения размера не было бы нужно; попросту сумма их объёмов была бы по сути ограничена общим объёмом памяти. В случае трех пространств произвольно определенное ограничения размера неизбежно. Наличие аппаратного преобразования адресов облегчает задачу, тем не менее, так как виртуальное адресное пространство несколько больше предельного, оно нелегко будет всегда достижимым.
→The storage layout of the Oberon System is determined by the structure of code and data typical in the use of modular, high-level programming languages, and in particular of the language Oberon. It suggests the subdivision of storage into three areas.
0 Распределение памяти в системе Оберон определяется из структуры кода и данных, что типично при использовании модульных, высокоуровневых языков программирования таких, как Оберон. Оно выражается в разделении памяти на области.
→A crucial property of the Oberon System is centralized resource management. Its advantage is that replication of management algorithms and a premature partitioning of resources are avoided. The disadvantage is that management algorithms are fixed once and forever and remain the same for all applications. The success of a centralized resource management therefore depends crucially on its flexibility and its efficient implementation. This Chapter presents the scheme and the algorithms governing main storage in the Oberon System.
0 Важное свойство системы Оберон – централизованное управление ресурсами. Ее преимущество заключается в том, что не происходит копирования управляющих алгоритмов и предъразделения ресурсов. Сложность этих управляющих алгоритмов устанавливается раз и навсегда и остается одинаковой для всех приложений. Успех централизованного управления ресурсами, следовательно, сильно зависит от гибкости и эффективности реализации. Эта глава представляет схему и алгоритмы управления основной памятью в системе Оберон.
→Although there exist numerous books explaining principles and structures of operating systems, there is a lack of descriptions of systems actually implemented and used. We wished not only to give advice on how a system might be built, but to demonstrate how one was built. Program listings therefore play a key role in this text, because they alone contain the ultimate explanations. The choice of a suitable formalism therefore assumed great importance, and we designed the language Oberon as not only an effective vehicle for implementation, but also as a publication medium for algorithms in the spirit in which Algol 60 had been created three decades ago. Because of its structure, the language Oberon is equally well suited to exhibit global, modular structures of programmed systems.
0 Не смотря на то, что существует множество книг, объясняющих принципы и структуру операционных систем, имеется недостаточно описаний фактически применяемых и используемых систем. Мы хотели не только дать рекомендации по созданию систем, но и продемонстрировать как одна была создана. Поэтому программные листинги играют главную роль в этой книге, потому что только они содержит полные обяснения. Поэтому выбор пригодного формализма являлся очень важным, и мы проектировали язык оберон не только эффективным при выполнении, но и как способ записи алгоритмов в духе алгола-60 созданного три десятилетия назад. Вследствие этой структуры, язык оберон объективно хорошо пригоден для выражения общих идей, модульной структуры программируемой системы.
→This book presents the results of Project Oberon, namely an entire software environment for a modern workstation. The project was undertaken by the authors in the years 1986-89, and its primary goal was to design and implement an entire system from scratch, and to structure it in such a way that it can be described, explained, and understood as a whole. In order to become confronted with all aspects, problems, design decisions and details, the authors not only conceived but also programmed the entire system described in this book, and more.
0 Данная книга представляет собой результаты проекта Оберон, а именно программного обеспечения новой рабочей станции. Проект проводился авторами в 1986-89 гг., и основной целью была разработка и создание полноценной системы с нуля и систематизировать методы, которые могут быть описаны, обоснованы и осмысленны в одно целое. Надлежащим образом спроектировав, проанализировав все аспекты, проблемы, дизайнерские решения и детали, авторы не только задумали, но и создали законченную систему, описанную в этой книге, и более.
Резюме
Пол:
мужчина
Родной язык:
русский
С нами:
с 25 октября 2009 г. (6203 дня)
Не является членом клуба.
Деятельность:
20 версий перевода с общим рейтингом −4
Карма: 1 (оценок: 1)
Написать linuxoid личное сообщение