Современные операционные системы

Современные операционные системы
Что такое операционная система  Аппаратные средства защиты

Аппаратные средства защиты

На ранних универсальных машинах вроде IBM 7090/7094 аппаратные средства защиты отсутствовали, поэтому в процессе работы эти машины могли выполнять лишь одну программу, которая при наличии ошибок могла затереть операционную систему и вывести из строя всю машину. С появлением IBM 360 стали доступны примитивные формы аппаратных средств защиты, поэтому данные машины могли содержать в памяти несколько программ одновременно, позволяя им работать по очереди (в режиме многозадачности). Однозадачная работа была объявлена устаревшей.

Но лишь до тех пор, пока не появились первые мини-компьютеры, не имевшие аппаратных средств защиты, на которых реализация многозадачности не представлялась возможной. Хотя на PDP-1 и PDP-8 не имелось аппаратной защиты, со временем она появилась на PDP-11, и это обстоятельство привело к работе в многозадачном режиме и, в конечном счете, к появлению UNIX.

Аппаратные средства защиты читать полное описание.


Что такое операционная система  Виртуальная память

Виртуальная память

Виртуальная память (которая будет рассмотрена в главе 3) позволяет запускать программы, размер которых превышает объем установленной на машине физической памяти, за счет перемещения фрагментов адресного пространства между оперативной памятью и диском. Она прошла похожий путь развития, появившись впервые на универсальных машинах, затем переместившись на мини- и микрокомпьютеры. Виртуальная память также позволяла программам во время работы динамически компоноваться с библиотеками, вместо того чтобы быть скомпилированными со всеми необходимыми библиотеками в единую программу. MULTICS была первой системой, позволявшей работать с такими программами. Со временем эта идея получила распространение и теперь широко используется на большинстве UNIX и Windows систем.

Виртуальная память читать полное описание.


Что такое операционная система  Системные вызовы

Системные вызовы

Мы выяснили, что операционные системы выполняют две основные функции: предоставляют абстракции пользовательским программам и управляют ресурсами компьютера. В основном взаимодействие пользовательских программ и операционной системы касается первой функции, взять, к примеру, операции с файлами: создание, запись, чтение и удаление. А управление же ресурсами компьютера проходит большей частью незаметно для пользователей и осуществляется в автоматическом режиме. Так что интерфейс между пользовательскими программами и операционной системой строится в основном на абстракциях. Чтобы по-настоящему понять, что делает операционная система, мы должны более подробно рассмотреть этот интерфейс. Имеющиеся в интерфейсе системные вызовы варьируются в зависимости от используемой операционной системы (хотя основные понятия практически ничем не отличаются).

Системные вызовы читать полное описание.


Что такое операционная система  Библиотечная процедура

Библиотечная процедура

Библиотечная процедура, возможно написанная на ассемблере, обычно помещает номер системного вызова туда, где его ожидает операционная система, например в регистр (шаг 5). Затем она выполняет команду TRAP для переключения из пользовательского режима в режим ядра, и выполнение продолжается с фиксированного адреса, находящегося внутри ядра операционной системы (шаг 6). Фактически команда TRAP очень похожа на команду вызова процедуры, в том смысле, что следующая за ней команда берется из удаленного места, а адрес возврата сохраняется в стеке для последующего использования.

Библиотечная процедура читать полное описание.


Что такое операционная система  Системные вызовы для управления процессами

Системные вызовы для управления процессами

Первая группа вызовов в табл. 1.1 предназначена для управления процессами. Начнем рассмотрение системного вызова fork. Вызов fork является единственным существующим в POSIX способом создания нового процесса.

Он создает точную копию исходного процесса, включая все дескрипторы файлов, регистры и т. п. После выполнения вызова fork исходный процесс и его копия (родительский и дочерний процессы) выполняются независимо друг от друга. На момент разветвления все их соответствующие переменные имеют одинаковые значения, но поскольку родительские данные копируются в дочерний процесс, последующие изменения в одном из них не влияют на изменения в другом.

Системные вызовы для управления процессами читать полное описание.