System Licensed Internal Code (SLIC) —сердце AS/400
System Licensed Internal Code (SLIC) —сердце AS/400
Часто возникает некая терминологическая путаница: что, собственно, является операционной системой AS/400? Первое, что приходит в голову — ну, конечно, это Operating System/400 (OS/400); в конце концов, иначе ее не называли бы так. И все же такой ответ неверен. OS/400 нельзя признать операционной системой AS/400, так как в ней не предусмотрены большинство функций, присущих другим ОС.
В главе 1 мы определили ОС как набор программ, управляющих системными ресурсами и предоставляющих базу для написания прикладных программ. Мы также оговорили, что законченный набор API для написания приложений для AS/400 — это MI, высокоуровневый машинный интерфейс. Таким образом, на вторую часть вопроса мы ответили. Осталось решить, где же находятся программы, управляющие системными ресурсами.
И снова ответ «OS/400» будет неверен. Компоненты традиционной ОС выполняют такие функции как управление памятью, процессами, программами и вводом-выводом. Но, обычно, эти низкоуровневые функции сильно зависят от аппаратуры и тесно связаны с нижележащими физическими структурами. Например, компонент управления памятью должен «знать» точную конфигурацию и характеристики иерархии памяти. Независящий от технологии интерфейс MI не обладает этими качествами. Следовательно, управление памятью должно осуществляться ниже MI, OS/400 же, наоборот, расположена выше. Следовательно, ни одна из таких аппаратно-зависимых компонент не может быть в ее составе, этого не допускает основное условие задачи — независимость от технологии.
Итак, благодаря расположению аппаратно-зависимых компонентов ниже MI, последний защищает прикладные программы и OS/400 от аппаратных изменений. ПО операционной системы, расположенное ниже MI, называется LIC (licensed internal code).
Давайте еще раз взглянем на структуру AS/400. Теперь очевидно: OS/400 состоит из объектов и программ поверх MI, а LIC составляют структуры данных и программы ниже MI. Таким образом, LIC связывает MI и аппаратуру. Фактически, ОС AS/ 400 — сочетание OS/400 и LIC. Получается, что AS/400 представляет собой пирог, в котором OS/400 играет роль глазури, а LIC — начинки между слоями.
В последние годы такую нижнюю часть ОС в других системах стали называть ядром. Есть много определений того, что именно относится к ядру операционной системы. Некоторые педанты могли бы сказать, что LIC содержит гораздо больше функций операционной системы, чем, обычное ядро. И все же термин ядро наиболее удобнен для описания функций ОС, реализованных ниже MI.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Затраты на разработк у SLIC
Затраты на разработку SLIC Создание вычислительной системы с высокоуровневым машинным интерфейсом и значительной частью ОС, расположенной под этим интерфейсом, было связано с определенными затратами. На разработку ПО пришлись основные расходы, связанные с AS/400. Давайте
Технологии ядра в SLIC
Технологии ядра в SLIC В прошлом ядро каждой ОС было уникальным, мало кто брался разрабатывать ядро отдельно от ОС. Однако в середине 80-х годов положение стало меняться. В некоторых университетах, например, в Карнеги-Меллон (Carnegie-Mellon), начали изучение возможности
Журналы SLIC
Журналы SLIC Ранее мы рассматривали ведение журналов базы данных. Базовые функции для протоколирования изменений базы данных реализованы ниже MI. Соответствующая поддержка предоставляется двумя системными объектами MI: порт журнала и область журнала. Порт журнала
Управление транзакциями в SLIC
Управление транзакциями в SLIC Ранее мы обсуждали базовые функции подтверждения и отката изменений. Эти функции поддерживаются и в MI, и в компоненте базы данных на уровне SLIC. В MI такую поддержку предоставляет системный объект блок транзакции (commit block). Он фиксирует
Управление исключениями SLIC
Управление исключениями SLIC Управление исключениями в SLIC заключается, в основном, в маршрутизации. Маршрутизация запускается механизмом прерываний PowerPC, когда аппаратура обнаруживает прерывание. После возникновения исключения все соответствующие компоненты SLIC
3.5.1 code.c
3.5.1 code.c #include "hoc.h"#include "y.tab.h"#define NSTACK 256static Datum stack[NSTACK]; /* the stack */static Datum *stackp; /* next free spot on stack */#define NPROG 2000Inst prog[NPROG]; /* the machine */Inst *progp; /* next free spot for code generation */Inst *pc; /* program counter during execution */initcode() /* initialize for code generation */{ stackp = stack; progp = prog;}push(d) /* push d onto stack */ Datum d;{ if (stackp >= &stack[NSTACK]) execerror("stack
3.6.1 code.c
3.6.1 code.c #include "hoc.h"#include "y.tab.h"#define NSTACK 256static Datum stack[NSTACK];static Datum *stackp;#define NPROG 2000Inst prog[NPROG];static Inst *pc;Inst *progp;initcode() { progp = prog; stackp = stack;}push(d) Datum d;{ if (stackp >= &stack[NSTACK]) execerror("stack too deep", (char*)0); *stackp++ = d;}Datum pop() { if (stackp == stack) execerror("stack underflow", (char*)0); return *--stackp;}constpush() { Datum d; d.val =
3.7.3 code.c
3.7.3 code.c #include "hoc.h"#include "y.tab.h"#include <stdio.h>#define NSTACK 256static Datum stack[NSTACK]; /* the stack */static Datum *stackp; /* next free spot on stack */#define NPROG 2000Inst prog[NPROG]; /* the machine */Inst *progp; /* next free spot for code generation */Inst *pc; /* program counter during execution */Inst *progbase = prog; /* start of current subprogram */int returning; /* 1 if return stmt seen */typedef struct Frame { /* proc/func call stack frame
Сердце программы TeamSpeak — ее сервер
Сердце программы TeamSpeak — ее сервер Многие пользователи ограничиваются установкой только программы-клиента и ищут общения на уже работающих серверах TeamSpeak, которые расположены в Интернете. Однако есть и те, кто желает организовать систему TeamSpeak в своей локальной сети: в
15.5.4.1. Source Code Control System (SCCS)
15.5.4.1. Source Code Control System (SCCS) Первой из рассматриваемых систем появилась SCCS, оригинальная система управления исходным кодом (Source Code Control System), разработанная в Bell Labs примерно в 1980 году и представленная в System III Unix. SCCS— это, вероятно, первая серьезная попытка создания
15.5.4.1. Source Code Control System (SCCS)
15.5.4.1. Source Code Control System (SCCS) Первой из рассматриваемых систем появилась SCCS, оригинальная система управления исходным кодом (Source Code Control System), разработанная в Bell Labs примерно в 1980 году и представленная в System III Unix. SCCS — это, вероятно, первая серьезная попытка создания
Базовые классы System.MulticastDelegate и System.Delegate
Базовые классы System.MulticastDelegate и System.Delegate Таким образом, при создании типов c помощью) ключевого слова delegate в C# вы неявно объявляете тип класса, являющегося производным от System.MulticastDelegate. Этот класс обеспечивает своим потомкам доступ к списку с адресами тех методов, которые
3.1. Матрица – «сердце» цифровой камеры
3.1. Матрица – «сердце» цифровой камеры Главное различие цифровых и пленочных камер в том, что цифровая картинка создается не на пленке, а на светочувствительном электронном сенсоре. Это самая важная часть цифровой камеры, которая и определяет качество изображения.