Какие ос называют мультипрограммными – Тест с ответами по дисциплине Операционные системы

Тест с ответами по дисциплине Операционные системы

Вопрос 1

Какие ОС называются мультипрограммными

1. обеспечивающие одновременную работу нескольких пользователей

2. поддерживающие сетевую работу компьютеров

+3. обеспечивающие запуск одновременно нескольких программ

4. состоящие более чем из одной программы

Вопрос 2

Какие существуют способы реализации ядра системы?

+1. многоуровневая (многослойная) организация

+2. микроядерная организация

3. реализация распределеннная

4. монолитная организация

Вопрос 3

Что обычно входит в состав ядра ОС

+1. высокоуровневые диспетчеры ресурсов

+2. аппаратная поддержка функций ОС процессором

+ 3. базовые исполнительные модули

+ 4. набор системных API-функций

Вопрос 4

Какие особенности характерны для современных универсальных операционных систем?

+ 1. поддержка многозадачности

+ 2. поддержка сетевых функций

+ 3. обеспечение безопасности и защиты данных

4. предоставление большого набора системных функций разработчикам приложений

Вопрос 5

Какие утверждения относительно понятия «API-функция» являются правильными?

+ 1. API-функции определяют прикладной программный интерфейс

+ 2. API-функции используются при разработке приложений для доступа к ресурсам компьютера

3. API-функции реализуют самый нижний уровень ядра системы

4. API-функции — это набор аппаратно реализованных функций системы

Вопрос 6

Какие особенности характерны для ОС Unix

+ 1. открытость и доступность исходного кода

2. ориентация на использование оконного графического интерфейса

+ 3. использование языка высокого уровня С

+ 4. возможность достаточно легкого перехода на другие аппаратные платформы

Вопрос 7

Какие типы операционных систем используются наиболее часто в настоящее время?

+ 1. системы семейства Windows

+ 2. системы семейства Unix/Linux

3. системы семейства MS DOS

4. системы семейства IBM OS 360/370

Вопрос 8

Какие задачи необходимо решать при создании мультипрограммных ОС

+ 1. защита кода и данных разных приложений, размещенных вместе в основной памяти

+ 2. централизованное управление ресурсами со стороны ОС

+ 3. переключение процессора с одного приложения на другое

4. необходимость размещения в основной памяти кода и данных сразу многих приложений

Вопрос 9

Какое соотношение между используемыми на СЕРВЕРАХ операционными системами сложилось в настоящее время?

+ 1. примерно поровну используются системы семейств Windows и Unix/Linux

2. около 10 % — системы семейства Windows, около 90 % — системы смейства Unix/Linux

3. около 90 % — системы семейства Windows, около 10 % — системы семейства Unix/Linux

4. около 30 % — системы семейства Windows, около 30 % — системы семейства Unix/Linux, около 40 % — другие системы

Вопрос 10

Какие утверждения относительно понятия «Ядро операционной системы» являются правильными?

+ 1. ядро реализует наиболее важные функции ОС

+ 2. подпрограммы ядра выполняются в привилегированном режиме работы процессора

3. ядро в сложных ОС может строиться по многоуровневому принципу

4. ядро всегда реализуется на аппаратном уровне

Вопрос 11

Какие сообщения возникают при нажатии на клавиатуре алфавитно-цифровой клавиши?

+ 1. WM_KeyDown

+ 2. WM_Char

+ 3. WM_KeyUp

4. WM_KeyPress

Вопрос 12

Какие шаги в алгоритме взаимодействия приложения с системой выполняются операционной системой

1. формирование сообщения и помещение его в системную очередь

+ 2. распределение сообщений по очередям приложений

+ 3. вызов оконной функции для обработки сообщения

4. извлечение сообщения из очереди приложения

Вопрос 13

Что представляет собой понятие “сообщение” (message)?

1. небольшую структуру данных, содержащую информацию о некотором событии

2. специальную API-функцию, вызываемую системой при возникновении события

3. однобайтовое поле с кодом происшедшего события

+ 4. небольшое окно, выводящее пользователю информацию о возникшем событии

Вопрос 14

Какие утверждения относительно иерархии окон являются справедливыми

+ 1. главное окно может содержать любое число подчиненных окон

+ 2. любое подчиненное окно может содержать свои подчиненные окна

3. подчиненные окна могут быть двух типов – дочерние и всплывающие

+ 4. приложение может иметь несколько главных окон

Вопрос 15

Как можно узнать координаты текущего положения мыши при нажатии левой кнопки

+ 1. с помощью события WM_LbuttonDown и его поля LPARAM

2. с помощью события WM_LbuttonDown и его поля WPARAM

3. с помощью события WM_LbuttonDown и его полей WPARAM и LPARAM

4. с помощью события WM_LbuttonCoordi

nates

Вопрос 16

Какие функции можно использовать для получения контекста устройства?

+ 1. GetDC

+ 2. BeginPaint

3. ReleaseDC

4. CreateContext

Вопрос 17

Какая инструкция (оператор) является основной при написании оконной функции?

+ 1. инструкция множественного выбора типа Case — Of

2. условная инструкция if – then

3. инструкция цикла с известным числом повторений

4. инструкция цикла с неизвестным числом повторений

Вопрос 18

Какой вызов позволяет добавить строку в элемент-список?

+ 1. SendMessage (MyEdit, lb_AddString, 0, строка)

2. SendMessage (“Edit”, lb_AddString, 0, строка)

3. SendMessage (MyEdit, AddString, 0, строка)

4. SendMessage (MyEdit, строка, lb_AddString, 0)

Вопрос 19

Какие утверждения относительно оконной функции являются правильными

+ 1. оконная функция принимает 4 входных параметра

+ 2. тело оконной функции – это инструкция выбора с обработчиками событий

+ 3. оконная функция обязательно должна обрабатывать сообщение wm_Destroy

+ 4. оконная функция явно вызывается из основной функции приложения

Вопрос 20

Какие сообщения возникают при нажатии на клавиатуре функциональной клавиши?

+ 1. WM_KeyDown

+ 2. WM_KeyUp

3. WM_KeyPress

4. WM_Char

Вопрос 21

Что может быть причиной появления внутреннего прерывания

+ 1. попытка деления на ноль

2. попытка выполнения запрещенной команды

+ 3. попытка обращения по несуществующему адресу

4. щелчок кнопкой мыши

Вопрос 22

Какие операции определяют взаимодействие драйвера с контроллером

+ 1. проверка состояния устройства

+ 2. запись данных в регистры контроллера

+ 3. чтение данных из регистров контроллера

4. обработка прерываний от устройства

Вопрос 23

Какие операции включает в себя вызов обработчика нового прерывания

+ 1. обращение к таблице векторов прерываний для определения адреса первой команды вызываемого обработчика

2. сохранение контекста для прерываемого программного кода

+ 3. занесение в счетчик команд начального адреса вызываемого обработчика

+ 4. внесение необходимых изменений в таблицу векторов прерываний

Вопрос 24

Что входит в программный уровень подсистемы ввода/вывода

+ 1. драйверы

2. диспетчер ввода/вывода

+ 3. системные вызовы

4. контроллеры

Вопрос 25

Что определяет понятие “порт ввода/вывода”

+ 1. порядковый номер или адрес регистра контроллера

2. машинную команду ввода/вывода

3. устройство ввода/вывода

4. контроллер устройства ввода/вывода

Вопрос 26

Какие существуют типы прерываний

+ 1. внешние или аппаратные прерывания

+ 2. внутренние прерывания или исключения

+ 3. программные псевдопрерывания

4. системные прерывания

Вопрос 27

Какие утверждения относительно понятия прерывания являются правильными

+ 1. прерывания — это механизм реагирования вычислительной системы на происходящие в ней события

2. прерывания используются для синхронизации работы основных устройств вычислительной системы

+ 3. прерывания возникают в непредсказуемые моменты времени

4. прерывания — это основной механизм планирования потоков

Вопрос 28

Какую информацию могут содержать регистры контроллеров устройства

+ 1. текущее состояние устройства

+ 2. текущую выполняемую устройством команду

3. данные, передаваемые от устройства системе

4. данные, передаваемые системой устройству

Вопрос 29

Как выстраиваются аппаратные прерывания в зависимости от их приоритета

1. сбой аппаратуры > таймер > дисковые устройства > сетевые устройства > клавиатура и мышь

2. сбой аппаратуры > таймер > дисковые устройства > клавиатура и мышь > сетевые устройства

+ 3. таймер > сбой аппаратуры > дисковые устройства > сетевые устройства > клавиатура и мышь

4. сбой аппаратуры > дисковые устройства > таймер > сетевые устройства > клавиатура и мышь

Вопрос 30

Что может быть причиной появления внешнего прерывания

+ 1. нажатие клавиши на клавиатуре

+ 2. завершение дисковой операции

3. обращение выполняемой процессором команды по несуществующему адресу

4. попытка выполнения запрещенной команды

testdoc.ru

1.2. Появление мультипрограммных операционных систем

Следующий важный период развития ОС — это 1965-1975 годы.

В технической базе ЭВМ был переход к интегральным микросхемам и, фактически, к новому поколению. Большие функциональные возможности интегральных схем сделали воз­можным реализацию на практике сложных компьютерных архитектур, как, например, IBM/360.

Тогда были реализованы практически все основные механизмы, прису­щие современным ОС: мультипрограммирование, мультипроцессирование, под­держка многотерминального многопользовательского режима, виртуальная па­мять, файловые системы, разграничение доступа и сетевая работа. Начинается расцвет системного программирования. Из области прикладной математики (для узкого круга специалистов) системное программирование превращается в отрасль индустрии, оказывающую непо­средственное влияние на практическую деятельность миллионов людей.

Революционным событием стала промышленная реализация мультипрограммирования. Мультипрограммирова­ние способ организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько программ, попеременно выпол­няющихся на одном процессоре

. Это значительно улуч­шило эффективность ЭВМ. Она теперь могла исполь­зоваться почти постоянно, а не менее половины рабочего времени, как это было раньше.

Мультипрограммирование было реализовано в двух вариантах — в системах па­кетной обработки и разделения времени.

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

Но и здесь пользователь по-прежнему был лишен возможности интерактивно взаимодействовать со своими програм­мами. Для того чтобы хотя бы частично вернуть пользователям ощущение непо­средственного взаимодействия с компьютером, был разработан другой вариант мультипрограммных систем — системы разделения времени. Этот вариант рас­считан на многотерминальные системы, когда каждый пользователь работает за своим терминалом. В числе первых ОС разделения времени, разработанных в середине 60-х годов, были TSS/360 (компания IBM), CTSS и MULTICS (Массачусетский технологический институт совместно с Bell Labs и компанией General Electric). Вариант мультипрограммирования, применяемый в системах разделения времени, был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счет периодического выделения каждой программе своей доли процессорного време­ни. В системах разделения времени эффективность использования оборудова­ния ниже, чем в системах пакетной обработки, что явилось платой за удобства работы пользователя.

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

К этому времени можно констатировать существенное изменение в распределе­нии функций между аппаратными и программными средствами компьютера. ОС становились неотъемлемыми элементами компьютеров, играя роль «продолжения» аппаратуры. В первых вычислительных машинах программист, напрямую взаимодействуя с аппаратурой, мог выполнить загрузку программных кодов, используя пультовые переключатели и лампочки индикато­ров, а затем вручную запустить программу на выполнение, нажав кнопку «пуск». В компьютерах 60-х годов большую часть действий по организации вычисли­тельного процесса взяла на себя ОС. (В большинстве совре­менных компьютеров не предусмотрено даже теоретической возможности выпол­нения какой-либо вычислительной работы без участия ОС. После включения питания автоматически происходит поиск, загрузка и запуск ОС, а в случае ее отсутствия компьютер просто останавлива­ется.)

Важной тенденцией этого периода является создание семейств программно-совместимых машин и ОС для них. Программная совместимость требовала и совместимости ОС. Однако такая совместимость подразумевает возможность работы на больших и малых вычислительных системах, с большим и с малым количеством разно­образной периферии, в коммерческой области и в области научных исследо­ваний. ОС, построенные с намерением удовлетворить всем этим противоречивым требованиям, оказались чрезвычайно сложными. Они со­стояли из многих миллионов ассемблерных строк, написанных тысячами про­граммистов, и содержали тысячи ошибок, вызывающих нескончаемый поток ис­правлений. ОС этого поколения были очень дорогими. Так, разработка OS/360, объем кода для которой составил 8 Мбайт, стоила компании IBM 80 миллионов долларов.

studfiles.net

2. Мультипрограммные ос

Мультипрограммирование— способ организации выполнения нескольких программ на одном компьютере. Разделяют мультипрограммирование в пакетных системах, системах реального времени и в системах разделения времени.

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

Системы разделения временииспользуются для «одновременного» выполнения нескольких программ в интерактивном режиме. В отличие от пакетного режима, все программы получают определённые временные промежутки времени для выполнения, затем система инициирует переключение. Выделяемые временные интервалы могут быть равными для всех задач, а могут определяться их приоритетами . Системы реального времени отличаются от систем с разделением времени (англ. time-sharing system) тем, что они должны быть предсказуемы в следующих ситуациях:

— высокая степень планируемости, временные ограничения должны выполняться и при высокой степени использования ресурсов;

— время отклика должно быть в пределах допустимого даже в наихудшем случае;

— стабильность при вре́менной нагрузке: в случае перегрузки система должна успевать выполнять наиболее важные задачи в срок, жертвуя менее важными.

Кроме того, система реального времени может тратить больше ресурсов (быть менее эффективной или иметь меньшую пропускную способность) из-за более высоких требований к планированию задач, а также недоиспользовать ресурсы в моменты средней загруженности.

3. Диспетчеризация процессов.

В системе разделения времени ядро предоставляет процессу ресурсы центрального процессора (ЦП) на интервал времени, называемый квантом, по истечении которого выгружает этот процесс и запускает другой, периодически переупорядочивая очередь процессов. Алгоритм планирования процессов в системе UNIX использует время выполнения в качестве параметра. Каждый активный процесс имеет приоритет планирования; ядро переключает контекст на процесс с наивысшим приоритетом. При переходе выполняющегося процесса из режима ядра в режим задачи ядро пересчитывает его приоритет, периодически и в режиме задачи переустанавливая приоритет каждого процесса, готового к выполнению.

3.1 Алгоритм

Сразу после переключения контекста ядро запускает алгоритм планирования выполнения процессов , выбирая на выполнение процесс с наивысшим приоритетом среди процессов, находящихся в состояниях «резервирования» и «готовности к выполнению, будучи загруженным в память». Рассматривать процессы, не загруженные в память, не имеет смысла, поскольку не будучи загружен, процесс не может выполняться. Если наивысший приоритет имеют сразу несколько процессов, ядро, используя принцип кольцевого списка (карусели), выбирает среди них тот процесс, который находится в состоянии «готовности к выполнению» дольше остальных. Если ни один из процессов не может быть выбран для выполнения, ЦП простаивает до момента получения следующего прерывания, которое произойдет не позже чем через один таймерный тик; после обработки этого прерывания ядро снова запустит алгоритм планирования.

studfiles.net

Появление мультипрограммных операционных систем

Следующий важный период развития ОС — это 1965-1975 годы.

В технической базе ЭВМ был переход к интегральным микросхемам и, фактически, к новому поколению. Большие функциональные возможности интегральных схем сделали воз­можным реализацию на практике сложных компьютерных архитектур, как, например, IBM/360.

Тогда были реализованы практически все основные механизмы, прису­щие современным ОС: мультипрограммирование, мультипроцессирование, под­держка многотерминального многопользовательского режима, виртуальная па­мять, файловые системы, разграничение доступа и сетевая работа. Начинается расцвет системного программирования. Из области прикладной математики (для узкого круга специалистов) системное программирование превращается в отрасль индустрии, оказывающую непо­средственное влияние на практическую деятельность миллионов людей.

Революционным событием стала промышленная реализация мультипрограммирования. Мультипрограммирова­ние — способ организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько программ, попеременно выпол­няющихся на одном процессоре. Это значительно улуч­шило эффективность ЭВМ. Она теперь могла исполь­зоваться почти постоянно, а не менее половины рабочего времени, как это было раньше.

Мультипрограммирование было реализовано в двух вариантах — в системах па­кетной обработки и разделения времени.

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

Но и здесь пользователь по-прежнему был лишен возможности интерактивно взаимодействовать со своими програм­мами. Для того чтобы хотя бы частично вернуть пользователям ощущение непо­средственного взаимодействия с компьютером, был разработан другой вариант мультипрограммных систем — системы разделения времени. Этот вариант рас­считан на многотерминальные системы, когда каждый пользователь работает за своим терминалом. В числе первых ОС разделения времени, разработанных в середине 60-х годов, были TSS/360 (компания IBM), CTSS и MULTICS (Массачусетский технологический институт совместно с Bell Labs и компанией General Electric). Вариант мультипрограммирования, применяемый в системах разделения времени, был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счет периодического выделения каждой программе своей доли процессорного време­ни. В системах разделения времени эффективность использования оборудова­ния ниже, чем в системах пакетной обработки, что явилось платой за удобства работы пользователя.

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

К этому времени можно констатировать существенное изменение в распределе­нии функций между аппаратными и программными средствами компьютера. ОС становились неотъемлемыми элементами компьютеров, играя роль «продолжения» аппаратуры. В первых вычислительных машинах программист, напрямую взаимодействуя с аппаратурой, мог выполнить загрузку программных кодов, используя пультовые переключатели и лампочки индикато­ров, а затем вручную запустить программу на выполнение, нажав кнопку «пуск». В компьютерах 60-х годов большую часть действий по организации вычисли­тельного процесса взяла на себя ОС. (В большинстве совре­менных компьютеров не предусмотрено даже теоретической возможности выпол­нения какой-либо вычислительной работы без участия ОС. После включения питания автоматически происходит поиск, загрузка и запуск ОС, а в случае ее отсутствия компьютер просто останавлива­ется.)

Важной тенденцией этого периода является создание семейств программно-совместимых машин и ОС для них. Программная совместимость требовала и совместимости ОС. Однако такая совместимость подразумевает возможность работы на больших и малых вычислительных системах, с большим и с малым количеством разно­образной периферии, в коммерческой области и в области научных исследо­ваний. ОС, построенные с намерением удовлетворить всем этим противоречивым требованиям, оказались чрезвычайно сложными. Они со­стояли из многих миллионов ассемблерных строк, написанных тысячами про­граммистов, и содержали тысячи ошибок, вызывающих нескончаемый поток ис­правлений. ОС этого поколения были очень дорогими. Так, разработка OS/360, объем кода для которой составил 8 Мбайт, стоила компании IBM 80 миллионов долларов.

 

Операционные системы и глобальные сети

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

Хотя теоретические работы по созданию концепций сетевого взаимодействия ве­лись почти с самого появления вычислительных машин, значимые практические результаты по объединению компьютеров в сети были получены в конце 60-х годов. Тогда с помощью глобальных связей и техники коммутации пакетов удалось реа­лизовать взаимодействие рядовых машин и суперкомпьютеров. Эти дорогостоящие компьютеры часто хранили уникальные данные и программы, доступ к которым необходимо было обеспечить широкому кругу пользователей, находившихся в различных городах на значительном расстоянии от вычисли­тельных центров.

 

Операционные системы мини-компьютеров

И первые локальные сети

К середине 70-х годов широкое распространение полу­чили мини-компьютеры, такие как PDP-11, Nova, HP. Мини-компьютеры пер­выми использовали преимущества больших интегральных схем, позволившие реализовать достаточно мощные функции при сравнительно невысокой стоимо­сти компьютера.

Архитектура мини-компьютеров была значительно упрощена, что нашло отражение и в их ОС. Многие функции мультипрограммных многопользовательских ОС были усечены, учитывая ограниченность ресурсов мини-компьютеров. ОС мини-компьютеров часто стали делать специализированными, например, только для управления в реальном времени (ОС RT-11 для мини-компьютеров PDP-11) или только для поддержания режима разделения времени (RSX-11M для тех же компьютеров). Эти ОС не всегда были многополь­зовательскими, что во многих случаях оправдывалось невысокой стоимостью компьютеров.

Важной вехой в истории мини-компьютеров и вообще в истории ОС явилось создание UNIX. Первоначально эта ОС предназначалась для поддержания режима разделения времени в мини-компьютере PDP-7. С середины 70-х годов началось массовое использование ОС UNIX. К этому времени про­граммный код для UNIX был на 90 % написан на языке высокого уровня Си. Широ­кое распространение эффективных Си-компиляторов сделало UNIX уникальной для того времени ОС, обладающей возможностью сравнительно легкого переноса на различные типы компьютеров. Поскольку она поставлялась вместе с исход­ными кодами, то стала первой открытой ОС, которую могли совершенство­вать простые пользователи-энтузиасты. Хотя UNIX была первоначально разра­ботана для мини-компьютеров, гибкость, элегантность, мощные функциональные возможности и открытость позволили ей занять прочные позиции во всех клас­сах компьютеров: суперкомпьютерах, больших компьютерах, мини-компьютерах, серверах и рабочих станциях, персональных компьютерах.

Доступность мини-компьютеров и вследствие этого их распространенность на предприятиях послужили мощным стимулом для создания локальных сетей. Предприятие могло себе позволить иметь несколько мини-компьютеров, находя­щихся в одном здании или даже в одной комнате. Первое сетевое приложение для ОС UNIX появилось в 1976 году и начало распространяться с версией 7 UNIX с 1978 года.

 


Рекомендуемые страницы:

lektsia.com

Классификация мультипрограммных операционных систем — Мегаобучалка

ТЕМА 2. УПРАВЛЕНИЕ РЕСУРСАМИ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

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

Цель темы – раскрыть принципы функционирования современных операционных систем по управлению ресурсами вычислительных систем.

В результате изучения темы обучаемые должны усвоить:

· Понятие мультипрограммирование. Назначение процессов и потоков, планирование и диспетчеризация потоков в современных операционных системах.

· Назначение прерываний и их классификацию.

· Основные алгоритмы распределения оперативной памяти между процессами.

· Понятие виртуальной памяти и ее использование в современных операционных системах.

· Принципы кэширования данных.

· Назначение и функции контроллеров и драйверов устройств ввода-вывода данных.

· Правила организации внешней памяти на магнитных дисках. Задачи низкоуровневого и высокоуровневого форматирования жесткого диска.

· Принципы функционирования современных файловых систем.

· Механизм контроля доступа к объектам, реализуемый в современных операционных системах.

 

Оглавление

ТЕМА 2. УПРАВЛЕНИЕ РЕСУРСАМИ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ 1

2.1. Мультипрограммирование. 2

2.1.1. Классификация мультипрограммных операционных систем.. 2

2.1.2. Управление процессами и потоками.. 5

2.1.3. Мультипрограммирование на основе прерываний.. 8

2.2. Управление памятью.. 10

2.2.1. Адресация к памяти.. 10

2.2.2. Классификация алгоритмов распределения памяти.. 12

2.2.3. Страничное распределение памяти.. 14

2.2.4. Сегментное распределение памяти.. 17

2.3. Кэширование данных. 19

2.3.1. Иерархия запоминающих устройств в компьютере. 19

2.3.2. Кэш-память. 20

2.3.3. Отображение основной памяти на кэш.. 22

2.4. Управление вводом-выводом.. 23

2.4.1. Контроллеры и драйверы.. 23

2.4.2. Организация внешней памяти на магнитных дисках. 27



2.4.3. Файловые системы и системы управления файлами.. 32

2.5. Современные файловые системы.. 34

2.5.1. Файловая система FAT. 34

2.5.2. Файловая система NTFS.. 37

2.5.3. Особенности файловых систем, используемых в UNIX.. 42

2.6. Доступ к разделяемым ресурсам.. 43

2.6.1. Механизм контроля доступа. 44

2.6.2. Организация контроля доступа в операционных системах Windows 2000/XP 48

Выводы.. 55

Вопросы для самопроверки. 56

 

Мультипрограммирование

Мультипрограммирование, или многозадачность –это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ, совместно использующих все ресурсы компьютера. Мультипрограммирование призвано повысить эффективность использования вычислительной системы.

Классификация мультипрограммных операционных систем

В зависимости от выбранного критерия эффективности операционные системы делятся на системы пакетной обработки, системы разделения времени и системы реального времени.

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

Достигается это за счет минимизация простоев всех устройств компьютера и прежде всего центрального процессора.

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

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

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

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

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

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

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

Такие системы обладают меньшей пропускной способностью, чем системы с пакетной обработкой и применяются для многотерминальных или многооконных компьютеров, то есть в большинстве универсальных ОС.

В системах реального времени критерий эффективности – реактивность системы, то есть ее способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата.

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

Операционные системы реального времени применяются в специализированных компьютерах, например, управляющих каким-то технологическим процессом.

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

Мультипроцессорные системы различаются архитектурой на симметричную и ассиметричную.

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

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

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

Асимметричное мультипроцессирование предполагается выделение одного из процессоров в качестве «ведущего», на котором работает операционная система, и который управляет всеми остальными «ведомыми» процессорами. Такая операционная система проще, чем на основе симметричного мультипроцессирования.

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

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

megaobuchalka.ru

Мультипрограммирование в современных операционных системах [1, тема 2].

Мультипрограммирование, илимногозадачность – это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ, совместно использующих все ресурсы компьютера. Мультипрограммирование призвано повысить эффективность использования вычислительной системы.

В зависимости от выбранного критерия эффективности операционные системы делятся на системы пакетной обработки, системы разделения времени и системы реального времени.

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

Достигается это за счет минимизация простоев всех устройств компьютера и прежде всего центрального процессора.

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

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

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

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

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

Такие системы обладают меньшей пропускной способностью, чем системы с пакетной обработкой и применяются для многотерминальных или многооконных компьютеров, то есть в большинстве универсальных ОС.

В системахреального временикритерий эффективности – реактивность системы, то есть ее способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата.

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

Операционные системы реального времени применяются в специализированных компьютерах, например, управляющих каким-то технологическим процессом.

studfiles.net

Появление мультипрограммных операционных систем для мэйнфреймов

Следующий важный период развития операционных систем относится к 1965-1975 годам.

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

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

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

Мультипрограммирование было реализовано в двух вариантах – в системах пакетной обработки и разделения времени.

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

В мультипрограммных системах пакетной обработки пользователь по-прежнему был лишен возможности интерактивно взаимодействовать со своими программами. Для того чтобы хотя бы частично вернуть пользователям ощущение непосредственного взаимодействия с компьютером, был разработан другой вариант мультипрограммных систем – системы разделения времени. Этот вариант рассчитан намноготерминальные системы, когда каждый пользователь работает за своим терминалом. В числе первых операционных систем разделения времени, разработанных в середине 60-х годов, былиTSS/360 (компанияIBМ),CTSSиMULTICS(Массачусетский технологический институт совместно с Ве11 LаЬs и компаниейGeneralElectric). Вариант мультипрограммирования, применяемый в системах разделения времени, был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счет периодического выделения каждой программе своей доли процессорного времени. В системах разделения времени эффективность использования оборудования ниже, чем в системах пакетной обработки, что явилось платой за удобства работы пользователя.

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

К этому времени можно констатировать существенное изменение в распределении функций между аппаратными и программными средствами компьютера. Операционные системы становились неотъемлемыми элементами компьютеров, играя роль «продолжения» аппаратуры. В первых вычислительных машинах программист, напрямую взаимодействуя с аппаратурой, мог выполнить загрузку программных кодов, используя пультовые переключатели и лампочки индикаторов, а затем вручную запустить программу на выполнение, нажав кнопку «пуск». В компьютерах 60-х годов большую часть действий по организации вычислительного процесса взяла на себя операционная система. (В большинстве современных компьютеров не предусмотрено даже теоретической возможности выполнения какой-либо вычислительной работы без участия операционной системы. После включения питания автоматически происходит поиск, загрузка и запуск операционной системы, а в случае ее отсутствия компьютер просто останавливается.)

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

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

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

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

Примерами семейств программно-совместимых машин, построенных на интегральных микросхемах, являются серии машин IВМ/360 и IВМ/370 (аналоги этих семейств советского производства — машины серии ЕС),PDР-11 (советские аналоги — СМ-З, СМ-4, СМ-1420). Вскоре идея программно-совместимых машин стала общепризнанной.

Программная совместимость требовала и совместимости операционных систем. Однако такая совместимость подразумевает возможность работы на больших и на малых вычислительных системах, с большим и с малым количеством разнообразной периферии, в коммерческой области и в области научных исследований. Операционные системы, построенные с намерением удовлетворить всем этим противоречивым требованиям, оказались чрезвычайно сложными. Они состояли из многих миллионов ассемблерных строк, написанных тысячами программистов, и содержали тысячи ошибок, вызывающих нескончаемый поток исправлений. Операционные системы этого поколения были очень дорогими. Так, разработка 0S/360, объем кода для которой составил 8 Мбайт, стоила компанииIВМ 80 миллионов долларов.

Однако несмотря на необозримые размеры и множество проблем, 0S/360 и другие ей подобные операционные системы этого поколения действительно удовлетворяли большинству требований потребителей. За это десятилетие был сделан огромный шаг вперед и заложен прочный фундамент для создания современных операционных систем.

studfiles.net

Author: alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *