Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





Источник: Таненбаум Э.С., Вудхалл А.С. Операционные системы. Разработка и реализация, 2005

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

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

Модель процесса

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

Иерархия процессов

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

Состояния процессов

На рисунке представлена схема состояний, показывающая три возможных состояния процесса:

a) Активный (в этот конкретный момент, использующий процессор).

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

c) Заблокированный (процесс не может быть запущен прежде, чем произойдет некое внешнее событие).

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

 

  1. Процесс блокируется, ожидая входной данных
  2. Планировщик выбирает другой процесс
  3. Планировщик выбирает этот процесс
  4. Доступны входные данные.

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


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

Нити (поток)

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

Ресурсы

Система может зайти в тупик, когда процессам предоставляются исключительные права доступа к устройствам, файлам и т.д. Чтобы максимально обобщить рассказ о взаимоблокировках, мы будем называть объекты предоставления доступа ресурсами. Ресурсом может быть аппаратное устройство (например, накопитель на магнитной ленте) или часть информации (закрытая запись в базе данных). В компьютере существует масса различных ресурсов, к которым могут происходит обращения. Кроме того, в системе может оказаться несколько идентичных экземпляров какого-либо ресурса, например три накопителя на магнитных лентах. Если в системе есть несколько экземпляров ресурса, то в ответ на обращение к нему может предоставляться любая из доступных копий. Короче говоря, ресурс – это все то, что вправе использоваться только одним процессом в любой момент времени.

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

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

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

  1. Запрос ресурса
  2. Использование ресурса
  3. Возврат ресурса

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







Date: 2016-05-25; view: 620; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию