Автор: Пользователь скрыл имя, 10 Июня 2013 в 19:34, реферат
Каждая ОС имеет свой набор таких сущностей. К примеру ОС Windows NT к таким сущностям можно отнести понятие обьекта, и уже через управление этой сущностью предоставляются все возможные функции. Если мы посмотрим UNIX , то в ней такой сущностью, в первую очередь , является понятие файла, а во вторую очередь , понятие процесса.
Введение
Процесс, модель процесса
Создание процесса
Завершение процессов, иерархия процессов
Состояния процессов
Реализация процессов
Литература
Содержание:
1 Введение
Для каждой операционной системы существует набор базовых понятий, например процессы, память и файлы, которые являются самыми важными для понимания общей идеи. Далее мы рассмотрим такое понятие как процесс, модели процессов, создание, завершение процессов, а так же , иерархию и реализацию процессов.
Любая операционная система (ос) оперирует некоторыми сущностями , которые вместе со способами управления ими во многом характеризуют её свойства . К таким сущностям могут относить понятие файла, процесса, обьекта , и.т.д. Каждая ОС имеет свой набор таких сущностей. К примеру ОС Windows NT к таким сущностям можно отнести понятие обьекта, и уже через управление этой сущностью предоставляются все возможные функции. Если мы посмотрим UNIX , то в ней такой сущностью, в первую очередь , является понятие файла, а во вторую очередь , понятие процесса.
2 Процесс, модель процесса.
Процесс (задача) – программа, находщяаяся в режиме выполнения .С каждым процессом связывается его адресное пространство, из которого он может читать и в которое он может писать данные.[2. Стр.1 ]
Все современные компьютеры могут делать одновременно несколько дел. Например, одновременно с запущеной пользователем программой может выполнятся чтение с диска и вывод текста на экран монитора или на принтер. В многозадачной системе процессор переключается между программами, предоставляя каждой от дестка до сотни миллисекунд. При этом в каждый конкретный момент времени процессор занят только одной программой, но за секунду он успевает поработать с несколькими программами, создавая у пользователя иллюзию параллельной работы со всеми программами. Иногда в этом контексте говорят о псевдопараллелизме, в отличии от настоящего параллелизма в многопроцессорных системах « в которых установлено два и более процессора , разделяющих между собой общую физическую память » Следить за работой параллельно идущих процессов достаточно трудно , по этому со временем разработчики операционных систем разработали концептуальную модель последовательных процессов упрощающую эту работу.
В этой модели всё функцианирующее на компьютере програмное обеспечение , иногда включая собственно операционную систему, организовано в виде набора последовательных процессов , или для краткости просто процессов. Процессом является выполняемая программа , включая текущие значения счётчика команд, регистров и переменных . С позиций данной абстрактной модели , у каждого процесса есть собственный виртуальный центральный процессор . На самом деле, разумеется, реальный процессор переключается с процесса на процесс, но для лудшего понимания системы значительно проще рассматривать набор процессов идущих параллельно « псевдопараллельно », чем пытаться представить себе процессор переключающийся от программы к программе. Как мы знаем ,это переключение называется « мультизадачностью или мультипрограммированием » . На рисунке №1мы видим , чтоза достаточно большой промежуток времени изменилось состояние всех четырёх процессов, но в каждый конкретный момент в действительности работает только один процесс. [1.стр.98]
рис.1
Поскольку процессор переключается
между программами , скорость с которой
процессор призводит свои вычисления,
будет не постоянной, и возможно,
даже, будет отличной при каждом
новом запуске процесса. Поэтому
не стоит программировать
Итак , я привёл эту аналогию
с целью чтобы показать что
процесс – это активность некоторого
рода. У него есть программа, входные
и выходные данные,а также состояние.
Один процессор может переключаться
между различными процессами, используя
некий алгоритм планирования для
определения момента
3 Создание процесса
Операционной системе
необходим способ, позволяюий удостовериться
в наличии всех необходимых процессов.В
простейших системах,а также в
системах, разработанных для
выполнения одногоединственного
С технической точки зрения во всех случаях новый процесс формируется одинаково: текущий процесс выполняет системный запрос на создание нового процесса.В UNIX существует только один системный вызов, направленный на создание нового процесса « fork » « ветвление или вилка ». Этот запрос создаёт дубликат вызываемого процесса. В Windows вызов функции CreateProcess интерфейса Win 32 управляет и созданием процесса, и запуском в нём нужной программы. После создания нового процесса родительский и дочерний процессы имеют собственные различные адресные пространства.[4.стр.33]
4. Завершение процессов, иерархия процессов.
После того как проесс был создан, он начинает свою работу, на он не может работать вечно. Рано или поздно он прекратит свою работу, чаще всего этому предшествует одно или несколько событий:
1.Обычный выход ( преднамеренно )
2.Выход по ошибке ( преднамеренный )
3.Выход по неисправимой ошибке ( непреднамеренный )
4.Уничтожение другим
Чаще всего процессы завершаются по мере выполнения своей работы. После кампиляции программы кампилятор выполняет системный запрос, чтобы сообщить операционной системе об окончании работы. В Unix это системный запрос – exit, а в Windows – ExitProcess. Также программы рассчитанные на работу с экраном, поддерживают преднамеренное завершение процессов. В браузерах, текстовых редакторах и других программах похожего типа обычно есть пункт меню или кнопка , щёлкнув по которой можно удалить все временные файлы, открытые процессом, и затем завершить процесс.[1.стр.102]
Также причиной завершения процесса может стать неустранимая ошибка. Если например пользователь набрал на клавиатуре команду,
Cc foo.c для компиляции программы foo.c, а соответствующего файла не существует, кампилятор просто закончит работу.
Очередной причиной завершения процесса является ошибка, вызваная самим процессом чаще всего связаная с ошибкой в программе. Например выполнение недопустимой команды, обращение к несуествующей области памяти и деление на ноль.
Ещё одна из причин завершения процесса служит выполнение другим процессом системного запрса на уничтожение процесса. В Unix- такой процесс называется « kill » , а соответствующая функция в Win32- TerminateProcess. В обоих случаях « киллер » далжен обладать соответствующими полномочиями по отношению к « убиваемому » процессу.[ 4.стр.114]
Иерархия процессов.
В некоторых системах родительский и дочерний процессы остаются связанными между собой определённым образом. Дочерний процесс может, в свою очередь, создавать процессы, формируют иерархию прцессов.
В Unix системах заложена жёсткая иерархия процессов. Каждый новый процесс, созданный системным вызовом fork, является дочерним к предыдущему процессу.Дочерниму процессу от родительского достаются переменные, регистры и т.п. После вызова fork, как только родительские данные скопированы, последующие изменения в одном из процессов не влияют на другой, но процессы помнято том, кто является родительским. В таком случае, в Unix существует и прародитель всех процессов – процесс init. В Windows не существует понятия иерархии процессов, и все процессы равноправны. Хотя можно задать специальный маркер родительскому процессу, позволяющий контролировать дочерний процесс.
5.Состояние процессов.
Три возможных состояния процесса :
Выполнение ( в этот конкретный момент использующий процессор ).
Готовность ( процесс временно приостановлен, чтобы позволить выполниться другому процессу ).
Ожидание ( процесс не может быть запущен прежде, чем произойдёт некое внешнее событие )
Возможные переходы между состояниями: 1.Процесс блокируется, ожидая выходных данных. 2. Планировщик выбирает другой процесс. №. Планировщик выбирает этот процесс. 4. Поступили выходные данные.
Переходы 2 и 3 вызываются планировщиком процессов операционной системы, так что сами процессы даже не знают об этих переходах. С точки зрения самих процессов есть два состояния выполнения и ожидания.
Модель процессов упрощает представление о внутреннем поведении системы. Некоторые процессы запускают программы, выполняющие команды, введённые с клавиатуры пользователем. Другие процессы являются частью системы и обрабатывают такие задачи, как выполнение запросов файловой службы, управление запуском диска или другого накомителя. В случае дискового прерывания система останавливает текущий процесс и запускает дисковый процесс, который был заблокирован в ожидании этого прерывания. Вместо прерываний мы можем предстовлять себе дисковые процессы, процессы пользователя, терминала и т.п., блокирующиеся на время ожидания событий. Когда событие произошло ( информация прочитана с диска или клавиатуры) блокировка снимается и процесс может быть запущен.
6.Реализация процессов
Для реализации процессов операционная система содержит таблицу « Массив структур » , называемую таблицей процессов, с одним элементом для каждого процесса « блоком управления процессом ». Элементы таблицы содержат иформацию о состоянии процесса, сяётчике команд, указателе стека, распределении памяти а также всю остальную информацию, которую необходимо сохранять при переключении в состоянии готовности или блокировки для последующего запуска.[3.стр.30-34]
1. Танненбаум Э. Современные операционные системы. 2-е изд. - СПб.: Питер, 2002. – 1040 с.: ил.
2. http://konstantinos777.narod.
3. Соломон Д. и Руссинович М. Внутреннее устройство Microsoft Windows 2000. Мастер-класс / Пер.с англ. – СПб.: Питер, М.: Издательско-торговый дом "Русская Редакция", 2001. – 752 стр.: ил.
4.UNIX: разработка сетевых приложений /У.Стивенс.-СПб.:Питер,2003.-