Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 7
Текст из файла (страница 7)
А поскольку стоимость компьютеров в то время была чрезвычайно большой, то компании,вложив свои капиталы в вычислительную технику, захотели за счет продажи машинного времени не только покрыть те расходы, которые сопутствовали ее приобретению и использованию, но и зарабатывать дополнительные деньги, то есть получать прибыль. Машинное время стали активно продавать, сдавая в арендуимеющиеся компьютеры, и потенциальная возможность решать в единицу времени большее количество задач, возможно от разных клиентов, стала выступать основным стимулом в развитии способов организации вычислений и операционныхсистем.Задачи пользователей ставились в очередь на решение, и распределение временицентрального процессора и других ресурсов компьютера между несколькими выполняющимися вычислительными процессами позволяло организовать параллельное выполнение сразу нескольких задач.
Эти задачи могли относиться и к одномупользователю, и к нескольким. Однако ставил их на решение оператор вычислительной системы.Приблизительно в то же время, может быть чуть позже, стали активно развиваться всевозможные устройства ввода и вывода данных. Не стояло на месте и системное программное обеспечение. Появилась возможность пользователю самому вводить исходные данные и тут же получать результаты вычислений, причем в удобномдля него виде. Упрощение пользовательского интерфейса и развитие интерфейсных функций операционных систем позволило реализовать диалоговый режимработы.
Как известно, диалоговый режим предполагает, что пользователь можетсам, без посредника, взаимодействовать с компьютером — готовить и запускать своипрограммы, вводить исходные данные, получать результаты, приостанавливатьвычисления и вновь их возобновлять и т. д.Очевидно, что диалоговый режим работы может быть реализован и без мультипрограммирования. Наглядное тому доказательство — многочисленные дисковыеоперационные системы, начиная от СР-М и кончая PC-DOS 7.0, которые долгиегоды устанавливались на персональные компьютеры и обеспечивали только однопрограммный режим.
Однако эти однопрограммные диалоговые системы появи-Понятия вычислительного процесса и ресурса29лись гораздо позже мультипрограммных. Как это ни кажется странным, им предшествовали многочисленные и разнообразные операционные системы, позволяющие одновременно работать с компьютером большому количеству пользователейи параллельно решать множество задач. Основная причина тому — стоимость компьютера.
Только с удешевлением компьютеров появилась возможность иметь свойперсональный компьютер, и первое время считалось, что однопрограммного режима работы вполне достаточно. Главным для персональных компьютеров до сихпор считается удобство работы, причем именно в диалоговом режиме, простотаинтерфейса и его интуитивная понятность.Совмещение диалогового режима работы с компьютером и режима мультипрограммирования привело к появлению мулътитерминалъных, или многопользовательских, систем.
Организовать параллельное выполнение нескольких задач можноразными способами (более подробно об этом см. в главе 2). Если это осуществляется таким образом, что на каждую задачу поочередно выделяется некий квантвремени, после чего процессор передается другой задаче, готовой к продолжениювычислений, то такой режим принято называть режимом разделения времени (timesharing). Системы разделения времени активно развивались в 60-70 годы, и самтермин означал именно мультитерминальную и мультипрограммную систему.Итак, операционная система может поддерживать мультипрограммирование (многопроцессность).
В этом случае она должна стараться эффективно использоватьимеющиеся ресурсы путем организации к ним очередей запросов, составляемыхтем или иным способом. Это требование достигается поддерживанием в памятиболее одного вычислительного процесса, ожидающего процессор, и более одногопроцесса, готового использовать другие ресурсы, как только последние станут доступными.Общая схема выделения ресурсов такова. При необходимости использовать какой-либо ресурс (оперативную память, устройство ввода-вывода, массив данныхи т. п.) вычислительный процесс (задача) путем обращения к супервизору1 (supervisor) операционной системы посредством специальных вызовов (команд, директив) сообщает о своем требовании.
При этом указывается вид ресурса и, еслинадо, его объем. Например, при запросе оперативной памяти указывается количество адресуемых ячеек, необходимое для дальнейшей работы.Команда обращения к операционной системе передает ей управление, переводяпроцессор в привилегированный режим работы (см. раздел «Прерывания»), еслитакой существует. Большинство компьютеров имеют два (и более) режима работы: привилегированный (режим супервизора) и пользовательский. Кроме того, могут быть режимы для эмуляции какой-нибудь другой ЭВМ или для организациивиртуальной машины, защищенной от остальных вычислений, осуществляемыхна этом же компьютере, и т. д. Мы уже говорили об этом, затрагивая вопрос организации прерываний.Супервизор — центральный (главный) управляющий модуль операционной системы.
Может состоять из нескольких модулей, например супервизора ввода-вывода, супервизора прерываний, супервизора программ, диспетчера задач и т. д. В последние годы термин «супервизор» применяется всереже и реже.30Глава 1. Основные понятияРесурс может быть выделен вычислительному процессу (задаче), обратившемусяк операционной системе с соответствующим запросом, если:Q ресурс свободен и в системе нет запросов от задач более высокого приоритета кэтому же ресурсу;Q текущий запрос и ранее выданные запросы допускают совместное использование ресурсов;Q ресурс используется задачей низшего приоритета и может быть временно отобран (разделяемый ресурс).Получив запрос, операционная система либо удовлетворяет его и возвращает управление задаче, выдавшей данный запрос, либо, если ресурс занят, ставит задачув очередь к ресурсу, переводя ее в состояние ожидания (блокируя). Очередь к ресурсу может быть организована несколькими способами, но чаще всего она реализуется с помощью списковой структуры.После окончания работы с ресурсом задача опять с помощью специального вызовасупервизора (посредством соответствующей команды) сообщает операционной системе об отказе от ресурса, либо операционная система забирает ресурс сама, если управление возвращается супервизору после выполнения какой-либо системной функции.
Супервизор операционной системы, получив управление по этому обращению,освобождает ресурс и проверяет, имеется ли очередь к освободившемуся ресурсу. Еслиочередь есть, то в зависимости от принятой дисциплины обслуживания1 и приоритетовзаявок он выводит из состояния ожидания задачу, ждущую ресурс, и переводит ее всостояние готовности к выполнению, после чего либо передает управление ей, либовозвращает управление задаче, только что освободившей ресурс.При выдаче запроса на ресурс задача может указать, хочет ли она владеть ресурсоммонопольно или допускает совместное использование с другими задачами.
Например, с файлом можно работать монопольно, а можно и совместно с другими задачами.Если в системе имеется некоторая совокупность ресурсов, то управлять их использованием можно на основе некоторой стратегии. Стратегия подразумевает четкуюформулировку целей, следуя которым можно добиться эффективного распределения ресурсов.При организации управления ресурсами всегда требуется принять решение о том, чтов данной ситуации выгоднее: быстро обслуживать отдельные наиболее важные запросы, предоставлять всем процессам равные возможности или обслуживать максимально возможное количество процессов и наиболее полно использовать ресурсы [46].Диаграмма состояний процессаНеобходимо отличать системные управляющие вычислительные процессы, представляющие работу супервизора операционной системы и занимающиеся распредеТермин «дисциплина обслуживания» следует понимать как некое правило обслуживания, в том числеи учет каких-либо приоритетов при обслуживании.
Например, дисциплина «последний пришедшийобслуживается первым» определяет обслуживание в порядке, обратном очередности поступлениясоответствующих запросов.Понятия вычислительного процесса и ресурса31лением и управлением ресурсов, от всех других процессов: задач пользователей исистемных обрабатывающих процессов. Последние, хоть и относятся к операционной системе, но не входят в ядро операционной системы и требуют общих ресурсов для своей работы, которые получают от супервизора.