Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек СРВ от Анн.doc
Скачиваний:
11
Добавлен:
09.11.2019
Размер:
2.26 Mб
Скачать

2. Диспетчер памяти

Важнейшим фактором, влияющим на возможности ОС РВ, является наличие на вычислительной машине диспетчера памяти (ДП). Диспетчер памяти - дополнительное устройство, входящее в состав центрального процессора и обеспечивающее возможность организации виртуальной памяти. ЭВМ, не оборудованные ДП, не могут иметь больше 56 Кб оперативной памяти, а машины с ДП имеют обычно 248 Кб и больше.

Поддержка диспетчера памяти включается в операционную систему ОС РВ в процессе генерации. Если система сгенерирована в варианте без ДП, она будет работать и на машине, оборудованном диспетчером памяти, но использовать его не сможет. Система, сгенерированная с ДП, не может работать на машинах без диспетчера памяти.

Все возможности ОС РВ могут быть реализованы только в варианте с диспетчером памяти. Это связано как с ограничениями, накладываемыми малым объемом ОЗУ в системах без ДП, так и с принципиальной невозможностью защитить задачи пользователя и программы операционной системы друг от друга, так как механизм защиты памяти в процессорах, не оборудованных диспетчером памяти, отсутствует.

3. Многопользовательская защита

Многопользовательская защита позволяет защищать разных пользователей вычислительной машины, работающей под управлением ОС РВ, от взаимного влияния. Без такой защиты все пользователи равны между собой и, образно выражаясь, могут творить с системой и друг с другом все, что хотят.

В системе с многопользовательской защитой все пользователи делятся на две категории: привилегированные и непривилегированные. Привилегированный пользователь может в принципе сделать все, что угодно; его ошибки (или преднамеренные действия) могут привести к нарушению работы системы в целом, потере информации и т. п.

Непривилегированный пользователь не может нарушить работу других пользователей или самой ОС. Возможности порчи информации ограничены содержимым каталогов, к которым ему разрешен доступ. Ему недоступны некоторые команды MCR, влияющие на работоспособность системы или других пользователей.

Для идентификации пользователей в системе служит так называемый код идентификации пользователя UIC (user identification code). Он состоит из двух восьмеричных чисел, каждое из которых занимает один байт (диапазон восьмеричных значений от 0 до 377). Первое число называется кодом группы, второй - кодом члена группы. Почти во всех случаях UIC записывается в квадратных скобках. Например, UIC [1, 54] задает 548-го члена 1-й группы.

Все привилегированные пользователи относятся к группам от 0 до 7. Члены групп 10-377 являются непривилегированными пользователями.

Одновременно с системой могут работать несколько пользователей, имеющих один и тот же UIC. Возможности "вредительства" друг другу, однако, даже в таком случае будут ограничены, поскольку при организации защиты пользователей друг от друга система во многих (но не во всех) случаях использует не только UIC, но и номер терминала, за которым пользователь работает.

4. Выполнение задач под управлением ос рв

Чтобы задача могла выполняться, она, естественно, должна быть загружена в ОЗУ. В отличие от современных систем, поддерживающих виртуальную память, ОС РВ всегда загружает задачу в память полностью. Это вызвано особенностями архитектуры СМ ЭВМ, не позволяющей заносить в память только требуемые страницы.

Вся оперативная память делится на разделы. В зависимости от назначения можно отметить раздел управляющей программы, разделы драйверов внешних устройств и раздел регистров устройств, используемых самой системой, а также разделы, используемые задачами: общие разделы, разделы, управляемые пользователем, и разделы, управляемые системой.

Общие разделы содержат код или данные, доступные для обращения к ним нескольких задач сразу. Обычной практикой является создание резидентных библиотек объектных модулей. Все задачи, использующие модули, имеющиеся в таких библиотеках, могут работать с одной общей копией каждого модуля вместо того, чтобы включать копии модулей в свой собственный код. Однако если по каким-либо причинам общая библиотека не будет загружена в память или будет загружена по адресам, не совпадающим с первоначальными, задача, использующая эту библиотеку, не сможет быть запущена.

Разделы, управляемые пользователем, предназначены для выполнения задач. Они прямо или косвенно создаются и уничтожаются пользователем. В каждом разделе может решаться только одна задача, предназначенная для выполнения именно в этом разделе. Задача, построенная для другого раздела, выполнена быть не может, так как разделы имеют разные адреса.

Разделы, управляемые системой, могут использоваться только в системе с диспетчером памяти. ОС РВ при запуске задачи выделяет из такого раздела подраздел, предназначенный для выполнения данной задачи, а по ее завершении возвращает выделенную память. С помощью аппаратуры диспетчера памяти система обеспечивает правильность адресации задачи независимо от ее физического размещения в памяти. Таким образом, использование системно-управляемых разделов освобождает пользователя от необходимости заботиться о распределении памяти между задачами. Он может даже не подозревать о существовании разделов и об особенностях механизмов управления памятью в ОС РВ.

Чтобы обеспечить параллельное выполнение нескольких задач, использующих один и тот же раздел памяти, ОС РВ поддерживает выгрузку задач. При применении этого механизма задача через определенный интервал времени переписывается на диск, а на ее место загружается новая задача, которая, в свою очередь, переписывается на диск по истечении выделенного для нее времени работы, и т. д. Небольшие требования задач в ОС РВ к объему памяти позволяют производить выгрузку и повторную загрузку за весьма небольшое время. Конечно, выгрузка тех или иных задач может быть запрещена, что особенно важно для задач управления технологическими процессами.

В системно-управляемых разделах также возможна выгрузка, но по своему прямому назначению она используется редко, так как машины, оборудованные диспетчером памяти, содержат обычно достаточный объем ОЗУ для одновременного размещения нескольких задач. Основным назначением выгрузки в системно-управляемых разделах является уплотнение памяти, "дыры" в которой образуются каждый раз при завершении задачи.

Процессорное время между задачами распределяется по очереди с учетом их приоритетов. Никакая задача не может монополизировать процессор, "подвесив" тем самым остальные задачи. Для обеспечения равноправия между задачами с одинаковым приоритетом и для гарантии быстрой реакции высокоприоритетных задач на внешние события используются механизмы свопинга, круговой диспетчеризации и важных событий, которые здесь не рассматриваются. Свопинг и круговая диспетчеризация могут не включаться в систему при генерации, что позволяет сократить размер управляющей программы, но обычно является нежелательным. Переключение между задачами происходит весьма быстро, что обеспечивает отличное время реакции системы.

В системах с многопользовательской защитой задачи делятся на привилегированные и непривилегированные. Привилегированные задачи могут выполнять потенциально опасные действия, в частности переключаться в режим ядра и напрямую работать со структурами данных системы. Непривилегированные задачи лишены такой возможности, а поэтому не могут вызвать неполадки в работе системы.