Cтраница 2
Следовательно, дополнительная память распределяется только по явным запросам выполняющейся программы. Подобные запросы могут быть реализованы в виде макрокоманды GETMAIN, которая предоставляется всем программам, в том числе и прикладным. Конечно, сервисные программы среды выполнения в процессе загрузки некоторых подпрограмм, а также в иных ситуациях, как и прикладные программы, могут обращаться к системе с запросами на выделение им дополнительной памяти. [16]
В каждом компьютере есть оперативная память, используемая для хранения выполняющихся программ. В очень простых операционных системах в конкретный момент времени в памяти может находиться только одна программа. Для запуска второй программы сначала нужно удалить из памяти первую и загрузить на ее место вторую. [17]
В исходный момент память абсолютно пуста, и поэтому практически любое обращение первой выполняющейся программы приводит к включению механизма страничного обмена и, значит, к переводу этой программы в состояние ожидания и запуску следующей программы. Однако после того как каждая программа будет запущена и вновь остановлена некоторое число раз, в памяти окажется уже достаточно много заполненных страниц для того, чтобы по крайней мере в течение определенного времени очередная программа могла работать, не вызывая особого случая обращения к странице. Итак, первоначально интенсивность процесса подкачки очень велика, но постепенно по мере заполнения памяти полезной информацией она падает. Если реальная память в системе имеет большой объем, то при необходимости на свободное место могут переноситься новые логические страницы, причем это не будет сопровождаться возникновением конфликтных ситуаций или простоев из-за недостатка доступных физических страниц. По завершении работы какой-либо программы в памяти окажутся представленными все страницы, к которым эта программа хоть раз обращалась. Такая организация управления, когда очередные физические страницы выделяются и заполняются непосредственно на основе обращений к виртуальным страницам, называется подкачкой по запросам. [18]
Предположим, что распечатку файла необходимо производить по мере формирования его записей выполняющейся программой. [19]
Содержимое буфера TLB динамически изменяется в соответствии с адресацией различных операндов, выполняющейся программой. Чем и как он заполняется, полностью зависит от последовательности обращений к памяти в процессе работы данной программы. Если диспетчер в очередной раз выбрал некоторую программу для выполнения и, начиная с этого момента вплоть до ее перевода в состояние ожидания, программа обращается только к трем страницам, в TLB на этом отрезке времени будут включены только три элемента. [20]
Сигналы прерывания, поступающие от различных устройств машины, от оператора или из выполняющихся программ, позволяют организовать автоматический переход от одной программы к другой. Вместе с диспетчером, который в необходимых случаях выполняет такой переход программными средствами, это обеспечивает многопрограммную работу машины. Диспетчер производит переход от одной программы к другой по специальным командам. [21]
Мультипрограммный режим, как и режим разделения времени, предполагает два различных способа обеспечения синхронизации параллельно выполняющихся программ. Первый из них применяется в тех случаях, когда любой программе доступна полная информация о том, какие еще программы активны в каждый данный момент времени. Соответственно синхронизация использования ресурсов в таких ситуациях реализуется самими же выполняющимися программами. При втором способе ни одна из программ абсолютно не связана с другими, и ответственность за синхронизацию возлагается на специальный монитор или какой-либо механизм ядра операционной системы. [22]
Режим использования базы данных задается программой пользователя при взаимодействии с СУБД и определяет допустимые действия другой одновременно выполняющейся программы по отношению к базе данных. [23]
Простейший способ реализации взаимодействия потребителей и производителей заключается в том, чтобы предоставить всем без исключения параллельно выполняющимся программам право доступа к совместно используемому буферу, а управление обобщенными семафорами возложить на сами прикладные программы. Помещая в буфер очередную запись, производитель соответственно увеличивает значение семафорного счетчика буфера и уменьшает значения семафорного счетчика свободного пространства буфера. [25]
В каждый конкретный промежуток времени управляющая программа может обеспечивать выполнение функции управления интервалом времени только для одной из числа одновременно выполняющихся программ. [26]
Роль и ответственность оператора возрастает, когда система функционирует в мультипрограммном режиме и оператор должен следить за каждой из одновременно выполняющихся программ. Это необходимо потому, что сообщения всех одновременно выполняющихся программ печатаются на одной и той же пультовой пишущей машинке и последовательность их заранее не может быть определена. [27]
Роль и ответственность оператора возрастает, когда система функционирует в мультипрограммном режиме и оператор должен следить за каждой из одновременно выполняющихся программ. [28]
Вторая часть операционной системы - супервизор) управляет работой центрального процессора и других устройств ЭВМ, осуществляет надзор за выполняющимися программами. [29]
Завершая обсуждение SRM, мы рассмотрим сущность стратегий и средств, применяемых для контроля за дисциплиной распределения процессорного времени между выполняющимися программами. В системе OS / MVS все механизмы управления дис-петчированием организационно относятся к SRM. Они дают возможность непосредственно обеспечивать процессорным временем задачи, находящиеся в диспетчерской очереди, в то время как механизмы, описанные в предыдущих разделах, позволяют лишь определять состав этой очереди. [30]