Процесс в операционной системе реферат

Обновлено: 07.07.2024

Особое место среди системных программ отведено операционным системам.

Операционная система (ОС)- это программа, запускающаяся сразу.

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

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

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

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

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

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

Кроме основных (базовых) функций ОС могут представлять различные дополнительные функции. Конкретный выбор операционной системы определяется совокупностью предоставляемых функций конкретными требованиями к рабочему месту.

В зависимости от алгоритма управления процессором, ОС делятся на:

— Однозадачные и многозадачные

— Однопользовательские и многопользовательские

— Однопроцессорные и многопроцессорные системы

— Локальные и сетевые.

По числу одновременно выполняемых задач операционные системы делятся на два класса:

— Однозадачные (MS DOS)

— Многозадачные (OS/2, Unix, Windows)

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

В зависимости от областей использования многозадачные ОС подразделяются на три типа:

— Системы пакетной обработки (ОС ЕС)

— Системы с разделением времени (Unix, Linux, Windows)

— Системы реального времени (RT11)


Рисунок 1. Скриншот рабочего стола Linux

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

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

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

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

Операционные системы, основанные на графическом интерфейсе. Операционная системы семейства Windows.

Оболочка Windows включает в себя множество компонентов и обеспечивает пользователям различной квалификации комфортные условия работы.

Работа с персональной ЭВМ мало отличалась от работы, например, на мини-ЭВМ: необходимо было хорошо знать ОС.

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

Windows представляет собой графическую оболочку. От пользователя не требуется ввод директив с клавиатуры в виде текстовых строк. Необходимо только внимательно смотреть на экран и выбирать из предлагаемого набора требуемую операцию с помощью манипулятора мышь. На выбранном объекте необходимо зафиксировать курсор кнопкой мыши — и операция выполняется. С помощью того же манипулятора можно перемещать пиктограммы и окна по экрану, менять их размер, открывать и закрывать их — и все это при минимальном использовании клавиатуры для ввода каких бы то ни было директив. Кроме того, для любителей традиционного интерфейса DOS реализована возможность выхода на этот уровень. В оболочке Windows реализован принцип WYSIWYG (What you see is what you get = То, что вы видите, вы и получаете), до сих пор бывший привилегией небольшого числа программ.

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

У меня была возможность работать с ОС Microsoft от Windows 2000, до версии Windows 8, по-моему мнению наиболее удачной является ОС Windows 7, обладающая более совершенной защитой, чем Windows XP, более продуманный интерфейс и много разных других мелочей, делают эту ОС более привлекательной. Microsoft выпустили обновление для Windows 8, Windows 8.1, в которой решили немного вернуться к привычному пользователям рабочему столу.

Существуют и ОС для смартфонов: Android; iOS; Windows Phone. ОС Android на данный момент является самой популярной и распространенной. Если на рынке десктопных ОС главная тема, как и прежде, – Windows 10, то среди мобильных ОС по статистике 2016 года от компаний StatCounter и Net Applications, таковой могла бы стать iOS. С одной стороны, система получила крупнейшее обновление, с другой – новое поколение i-гаджетов в виде iPhone 7 и 7 Plus.

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

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

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

Процесс и поток – понятия и свойства

Любая работа вычислительной системы заключается в выполнении некоторого программного кода. Чтобы этот программный код мог быть выполнен, его необходимо загрузить в оперативную память, возможно, выделить некоторое место на диске для хранения данных, предоставить доступ к устройствам ввода-вывода, например к последовательному порту для получения данных по подключенному к этому порту модему; и т. д. В ходе выполнения программе может также понадобиться доступ к информационным ресурсам, например файлам, портам TCP/UPD, семафорам. И для выполнения программы необходимо предоставление ей процессорного времени, то есть времени, в течение которого процессор выполняет коды данной программы.

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

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

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

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

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

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

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

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

Итоговые определения

Для систем, использующих обе концепции – и потока, и процесса:

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

Отдельное виртуальное адресное пространство

Код выполняемой программы, загруженный в адресное пространство процесса

Начальные параметры запуска – аргументы запуска, рабочую папку и т.п.

Набор привилегий на доступ к системным ресурсам и вызовам

Текущее состояние, включая статус процесса

Набор потоков, выполняющих код программы в адресном пространстве процесса, имеющих доступ к общим ресурсам процесса

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

Счетчик команд – указатель на текущую выполняемую команду

Регистры – значения регистров процессора в текущий момент времени

Для конкретной операционной системы определение процесса может быть лаконичнее, так как опирается на конкретные механизмы этой системы, например:

Unix использует два системно- ориентированных определения процесса:

Процесс – объект, порожденный системным вызовом fork()

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

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

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

Итак, мультипрограммирование более эффективно на уровне потоков, а не процессов. Каждый поток имеет собственный счетчик команд и стек. Задача, оформленная в виде нескольких потоков в рамках одного процесса, может быть выполнена быстрее за счет псевдопараллельного (или параллельного в мультипроцессорной системе) выполнения ее отдельных частей. Например, если электронная таблица была разработана с учетом возможностей многопоточной обработки, то пользователь может запросить пересчет своего рабочего листа и одновременно продолжать заполнять таблицу. Особенно эффективно можно использовать многопоточность для выполнения распределенных приложений, например, многопоточный сервер может параллельно выполнять запросы сразу нескольких клиентов.

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

Создание процессов и потоков

Создать процесс — это прежде всего означает создать описатель процесса, в качестве которого выступает одна или несколько информационных структур, содержащих все сведения о процессе,, необходимые операционной системе для управления им. В число таких сведений могут входить, например, идентификатор процесса, данные о расположении в памяти исполняемого модуля, степень привилегированности процесса (приоритет и права доступа) и т. п. Примерами описателей процесса являются блок управления задачей (ТСВ — Task Control Block) в OS/360, управляющий блок процесса (РСВ — Process Control Block) в OS/2, дескриптор процесса в UNIX, объект-процесс (object-process) в Windows NT.

Создание описателя процесса – это появление в системе еще одного претендента на вычислительные ресурсы. Начиная с этого момента при распределении ресурсов ОС должна принимать во внимание потребности нового процесса.

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

Создание процессов на примере

В качестве примера возьмем создание процессов в операционной системе UNIX System V Release 4. В этой системе потоки не поддерживаются, в качестве единицы управления и единицы потребления ресурсов выступает процесс.

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

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

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

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

После выполнения системного вызова fork оба процесса продолжают выполнение с одной и той же точки. Чтобы процесс мог опознать, является он родительским процессом или процессом-потомком, системный вызов fork возвращает в качестве своего значения в породивший процесс идентификатор порожденного процесса, а в порожденный процесс — NULL. Типичное разветвление на языке С записывается так:

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

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

Завершение процесса

В большинстве операционных систем есть одни и те же варианты завершения процесса, различающиеся деталями реализации:

Нормальное завершение процесса: завершение при достижении конца основной функции программы (разновидности main), или при вызове системной функции выхода (например, exit в unix).

Принудительное завершение процесса: производится внешним процессом с помощью вызова соответствующей системной функции (например, системного вызова kill в unix).

Результат завершения процесса

При завершении процесса освобождаются все системные ресурсы, занятые им – открытые файлы, память, и др. Соответственно, завершаются все потоки, принадлежащие процессу.

Резюме

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

Использованная литература:

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

В.Г.Олифер, Н.А.Олифер. Сетевые операционные системы. Учебник для ВУЗов.

И.В.Машечкин, А.Н.Терёхин. Операционные системы. Лекционный курс факультета ВМиК МГУ им. М.В.Ломоносова.

Похожие страницы:

Операционные системы (6)

. памяти и размещается в ОЗУ. Этот процесс называется загрузкой операционной системы. В функции операционной системы входит: осуществление диалога с . представляет вопрос о том, как операционная система загружается. Процесс этот в заметно упрощенном виде .

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

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

Операционные системы (7)

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

Операционные системы (9)

. процесс перезаписи операционной системы MS DOS с диска в оперативную память. Этот процесс получил название загрузка операционной системы . AUTOEXEC.BAT. При нормальном функционировании операционной системы командный процессе: выдает на экран приглашение .

Введение в операционные системы

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

В разных ОС процессы реализованы по-разному. Они различаются своим представлением (структурами данных), способами именования и защиты, а также отношениями между собой. Базовые процессы Windows имеют ряд характеристик, отличающих их от процессов других ОС:
процессы реализованы как объекты, и доступ к ним осуществляется посредством объектных сервисов;
в адресном пространстве процесса может исполняться несколько потоков;
объект-процесс и объект-поток имеют встроенные возможности синхронизации.

Содержание работы
Файлы: 1 файл

Реферат ОС.docx

Государственное образовательное учреждение

высшего профессионального образования

ОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

имени Ф. М. Достоевского

Реферат

Выполнила:

Студентка 3-го курса

гр. СИБ-301У

Плотникова Т.М.

2016 г.
Содержание

  1. Структура ОС Windows…………………………………………………
  2. Подсистема Win32………………………………………………………
  3. Объекты ядра…………………………………………………………
  4. Процессы и потоки в ОС Windows………………………………………..

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

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

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

В разных ОС процессы реализованы по-разному. Они различаются своим представлением (структурами данных), способами именования и защиты, а также отношениями между собой. Базовые процессы Windows имеют ряд характеристик, отличающих их от процессов других ОС:

процессы реализованы как объекты, и доступ к ним осуществляется посредством объектных сервисов;

в адресном пространстве процесса может исполняться несколько потоков;

объект-процесс и объект-поток имеют встроенные возможности синхронизации.

Рис 1. Структура ОС Windows

Первые версии системы имели микроядерный дизайн, основанный на микроядре Mach, которое было разработано в университете Каренги-Меллона. Архитектура более поздних версий системы микроядерной уже не является.

Большой объем системного кода (управление системными вызовами и экранная графика) был перемещен из адресного пространства пользователя в пространство ядра и работает в привилегированном режиме.

Рис 2. Структура ОС Windows

Рис 3. Подсистема Win32

Основные компоненты Win 32:

  • Ntoskrnl.exe – исполнительная система и ядро;
  • Ntdll.dll – внутренние функции поддержки и интерфейсы диспетчера системных сервисов с функциями исполнительной системы;
  • Hal.dll – уровень абстрагирования от оборудования;
  • Win32k.sys – часть подсистемы Win32, работающая в режиме ядра;
  • Kernel32.dll, advapi32.dll, user32.dll, gdi32.dll – основные dll подсистемы win32.

При вызове приложением одной из win32 –функций может возникнуть одна из трех ситуаций:

Для работы с важными системными ресурсами ОС Windows создает объекты, управление которыми осуществляет менеджер объектов.

- ядро поддерживает базовые объекты двух типов: объекты диспетчера (события, мьютексы, семафоры, потоки ядра, таймеры и др.) и управляющие (DPC, APC, прерывания, процессы, профили и др.)

- Над объектами ядра находятся объекты исполнительной системы, каждый из которых инкапсулирует один или более объектов ядра. Объекты исполнительной системы предназначены для управления памятью, процессами и межпроцессроным обменом. К ним относятся такие объекты, как: процесс, поток, открытый файл, семафор, мьютекс, маркер доступа и ряд других. Эти объекты и называются объектами ядра в руководствах по программированию.[2]

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

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

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

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

Процесс в Windows состоит из следующих компонентов:

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

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

- исполняемая программа и данные, проецируемые на виртуальное адресное пространство процесса.

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

- содержимое набора регистров процессора, отражающих состояние процессора;

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

- закрытую область памяти, называемую локальной памятью потока и используемую подсистемами, библиотеками исполняющих систем и DLL;

- уникальный идентификатор потока;

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

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

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

Процедура планирования обычно связана с весьма затратной процедурой диспетчеризации - переключением процессора на новый поток, поэтому планировщик должен заботиться об эффективном использовании процессора. Принадлежность потоков к процессу при планировании не учитывается, то есть единицей планирования в ОС Windows является именно поток.[2]

Создание Win32 процесса осуществляется вызовом одной из таких функций, как CreateProcess, CreateProcessAsUser и CreateProcessWithLogonW и происходит в несколько этапов:

- Открывается файл образа (EXE), который будет выполняться в процессе. Если исполняемый файл не является Win32 приложением, то ищется образ поддержки для запуска этой программы. Например, если исполняется файл с расширением .bat, запускается cmd.exe и т.п.

- Подсистема Win32 уведомляется о создании нового процесса и нити.

- Начинается выполнение первичной нити.

- В контексте нового процесса и потока инициализируется адресное пространство и начинается выполнение программы.

Сервисы процесса и потока в Windows (Таблица 1)


Создание процесса CreateProcess().


Создание потока CreateThread().


Открытие процесса OpenProcess().


Открытие потока OpenThread()


Информация по запросу процесса


Информация по запросу потока


Информация по наладке процесса


Информация по наладке потока


Текущий процесс GetCurrentProcessID()


Текущий поток GetCurrentThreadID()


Прекращение процесса ExitProcess()


Завершение потока ExitThread()


Проверка извещения потока


Порт регистрации завершения.

Основной функцией для управления процессом win32 является функция CreateProcess(). Она создаёт процесс с одним потоком. Так как процесс требует наличие кода, то в вызове функции CreateProcess() необходимо указывать имя исполняемого файла программы. Функция имеет 10 параметров и при успешном выполнении возвращает дескрипторы для процесса и для первичного потока. Дополнительные потоки можно создать функцией CreateThread(). Для Windows все процессы одинаковы, и она не различает дочерние и родительские, в отличие от Unix.

Жизненный цикл потока в Windows (Рис. 4) проходит следующие шесть состояний [3]:

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

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


Рис. 4. Жизненный путь потока в Windows

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

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

Переходное: поток готов к выполнению, но не все ресурсы необходимые ему для работы доступны. При доступности всех ресурсов он переходит в состояние готовности.

Процесс завершается если:

- Одна из нитей процесса вызвала функцию ExitProcess.

- Нить другого процесса вызвала функцию TerminateProcess.

Когда процесс завершается, все User- и GDI_объекты, созданные процессом, уничтожаются, объекты ядра закрываются (если их не использует другой процесс), адресное пространство процесса уничтожается.[5]

  • Для учеников 1-11 классов и дошкольников
  • Бесплатные сертификаты учителям и участникам

Муниципальное общеобразовательное учреждение средняя общеобразовательная школа № 2

Секретов Ирина Владимировна

Проверил: преподаватель информатики

Седёлков Алексей Владимирович

1. Назначение и основные функции операционной системы 4
2. История развития ОС ..

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

При включении компьютера операционная система загружается в память раньше остальных программ и затем служит платформой и средой для их работы. Без операционной системы невозможно представить работу с компьютером. Знание операционной системы необходимо для успешного пользования современными компьютерами. Предшественником ОС следует считать служебные программы (такие, как загрузчики), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.).

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

Назначение и основные функции операционной системы

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

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

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

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

История развития операционных систем

2.1 Развитие первых операционных систем.

Важный период развития ОС относится к 1965-1975 годам. В это время в технической ба1зе вычислительных машин произошёл переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам, что открыло путь к появлению следующего поколения компьютеров. В этот период были реализованы практически все основные механизмы, присутствующие современным ОС: мультипрограммирование, мультипроцессирование, поддержка многотерминального многопользовательского режима, виртуальная память, файловые системы, разграничение доступа и сетевая работа. В эти годы начинается расцвет системного программирования. Революционным событием данного этапа явилась промышленная реализация мультипрограммирования. В условиях резко возросших возможностей компьютера по обработке и хранению данных выполнение только одной программы в каждый момент времени оказалось крайне неэффективным. Решением стало мультипрограммирование - способ организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько программ, попеременно выполняющихся на одном процессоре. Эти усовершенствования значительно улучшили эффективность вычислительной системы. Мультипрограммирование было реализовано в двух вариантах - в системах пакетной обработки и разделения времени. Мультипрограммные системы пакетной обработки так же, как и их однопрограммные предшественники, имели своей целью обеспечение максимальной загрузки аппаратуры компьютера, однако решали эту задачу более эффективно. В мультипрограммном пакетном режиме процессор не простаивал, пока одна программа выполняла операцию ввода-вывода (как это происходило при последовательном выполнении программ в системах ранней пакетной обработки), а переключался на другую готовую к выполнению программу. В результате достигалась сбалансированная загрузка всех устройств компьютера, а следовательно, увеличивалось число задач, решаемых в ед-цу времени.
В мультипрограммных системах пакетной обработки пользователь по-прежнему был лишен возможности интерактивного взаимодействия со своими программами. Для того, чтобы хотя бы частично вернуть пользователям ощущение непосредственного взаимодействия с компьютером, был разработан другой вариант мультипрограммных систем - системы разделения времени. Этот вариант рассчитан на многотерминальные системы, когда каждый пользователь работает за своим терминалом. В числе первых операционных систем разделения времени, разработанных в середине 60-х годов, были TSS/360 (компания IBM), CTSS и MULTICS (Массачусетский технологический институт совместно с Bell Labs и компанией General Electric). Вариант мультипрограммирования, применяемый в системах разделения времени, был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счёт периодического выделения каждой программе своей доли процессорного времени. В системах разделения времени эффективность использования оборудования ниже, чем в системах пакетной обработки, что явилось платой за удобства работы пользователей. Многотерминальный режим использовался не только в системах разделения времени, но и в системах пакетной обработки. При этом не только оператор, но и все пользователи получали возможность формировать свои задания и управлять их выполнением со своего терминала. Такие ОС получили название систем удалённого ввода заданий. Терминальные комплексы могли располагаться на большом расстоянии от процессорных стоек, соединяясь с ними с помощью различных глобальных связей - модемных соединений телефонных сетей или выделенных каналов. Для поддержания удалённой работы терминалов в операционных системах появились специальные программные модули, реализующие различные (в то время, как правило, нестандартные) протоколы связи. Такие вычислительные системы с удалёнными терминалами, сохраняя централизованный характер обработки данных, в какой-то степени являлись прообразом современных сетей, а соответствующее системное программное обеспечение - прообразом сетевых операционных систем. В компьютерах 60-х годов большую часть действий по организации вычислительного процесса взяла на себя операционная система. Реализация мультипрограммирования потребовала внесения очень важных изменений в аппаратуру компьютера, непосредственно направленных на поддержку нового способа организации вычислительного процесса. При разделении ресурсов компьютера между программами необходимо обеспечить быстрое переключение процессора с одной программы на другую, а также надёжно защитить коды и данные одной программы от непреднамеренной или преднамеренной порчи другой программы. В процессорах появился привилегированный и пользовательский режим работы, специальные регистры для быстрого переключения с одной программы на другую, средства защиты областей памяти, а также развитая система прерываний. В привилегированном режиме, предназначенном для работы программных модулей операционной системы, процессор мог выполнять все команды, в том числе и те из них, которые позволяли осуществлять распределение и защиту ресурсов компьютера. Программам, работающим в пользовательском режиме, некоторые команды процессора были недоступны. Таким образом, только ОС могла управлять аппаратными средствами и исполнять роль арбитра для пользовательских программ, которые выполнялись в непривилегированном, пользовательском режиме. Система прерываний позволяла синхронизировать работу различных устройств компьютера, работающих параллельно и асинхронно, таких как каналы ввода-вывода, диски, принтеры и т.п. Ещё одной важной тенденцией этого периода является создание семейств программно - совместимых машин и операционных систем для них. Примерами семейств программно - совместимых машин, построенных на интегральных микросхемах, являются серии машин IBM/360, IBM/370 и PDP-11. Программная совместимость требовала и совместимости операционных систем. Однако такая совместимость подразумевает возможность работы на больших и малых вычислительных системах, с большим и малым количеством разнообразной периферии, в коммерческой области и в области научных исследований. Операционные системы, построенные с намерением удовлетворить всем этим противоречивым требованиям, оказались чрезвычайно сложными. Они состояли из многих миллионов ассемблерных строк, написанных тысячами программистов, и содержали тысячи ошибок, вызывающих нескончаемый поток исправлений. Операционные системы этого поколения были очень дорогими. Так, например, разработка OS/360, объём кода для которой составил 8 Мбайт, стоила компании IBM 80 миллионов долларов. Однако, несмотря на необозримые размеры и множество проблем, OS/3600 и другие ей подобные операционные системы этого поколения действительно удовлетворяли большинству требований потребителей. За это десятилетие был сделан огромный шаг вперёд и заложен прочный фундамент для создания современных операционных систем.

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

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

2.3 Операционные системы мини-компьютеров и первые локальные сети .
К середине 70-х годов широкое распространение получили мини-компьютеры, такие как PDP-11, Nova, HP. Мини-компьютеры первыми использовали преимущества больших интегральных схем, позволившие реализовать достаточно мощные функции при сравнительно невысокой стоимости компьютера. Многие функции мультипрограммных многопользовательских ОС были усечены, учитывая ограниченность ресурсов мини-компьютеров. Операционные системы мини-компьютеров часто стали делать специализированными, например только для управления в реальном времени (ОС RT-11 для мини-компьютеров PDP-11) или только для поддержания режима разделения времени (RSX-11M для тех же компьютеров). Эти операционные системы не всегда были многопользовательскими, что во многих случаях оправдывалось невысокой стоимостью компьютеров. Важной вехой в истории операционных систем явилось создание ОС UNIX. Первоначально эта операционная система предназначалась для поддержания режима разделения времени в мини-компьютере PDP-7. С середины 70-х годов началось массовое использование ОС UNIX. К этому времени программный код для UNIX был на 90% написан на языке высокого уровня С. Широкое распространение эффективных С-компиляторов сделало UNIX уникальной для того времени ОС, обладающей возможностью сравнительно лёгкого переноса на различные типы компьютеров. Поскольку эта ОС поставлялась вместе с исходными кодами, то она стала первой открытой ОС, которую могли совершенствовать простые пользователи-энтузиасты. Хотя UNIX была первоначально разработана для мини-компьютеров, гибкость, элегантность, мощные функциональные возможности и открытость позволили ей занять прочные позиции во всех классах компьютеров: суперкомпьютерах, мэйнфреймах, мини-компьютерах, серверах и рабочих станциях на базе RISC-процессоров, персональных компьютерах. Независимо от версии, общими для UNIX чертами являются: многопользовательский режим со средствами защиты данных от несанкционированного доступа, реализация мультипрограммной обработки в режиме разделения времени, основанная на использовании алгоритмов вытесняющей многозадачности, использование механизмов виртуальной памяти и свопинга для повышения уровня мультипрограммирования, унификация операций ввода-вывода на основе расширенного использования понятия "файл", иерархическая файловая система, образующая единое дерево каталогов независимо от количества физических устройств, используемых для размещения файлов, переносимость системы за счет написания ее основной части на языке C, разнообразные средства взаимодействия процессов, в том числе и через сеть, кэширование диска для уменьшения среднего времени доступа к файлам. Доступность мини-компьютеров и вследствие этого их распространённость на предприятиях послужили мощным стимулом для создания локальных сетей. Предприятие могло себе позволить иметь несколько мини-компьютеров, находящихся в одном здании или даже в одной комнате. Естественно, возникала потребность в обмене информацией между ними и в совместном использовании дорогого периферийного оборудования. Первые локальные сети строились с помощью нестандартного коммуникационного оборудования, в простейшем случае - путём прямого соединения последовательных портов компьютеров. Программное обеспечение также было нестандартным и реализовывалось в виде пользовательских приложений. Первое сетевое приложение для ОС UNIX - программа UUCP (UNIX-to- UNIX Copy program) - появилась в 1976 году и начала распространяться с версией 7 AT&T UNIX с 1978 года. Эта программа позволяла копировать файлы с одного компьютера на другой в пределах локальной сети через различные аппаратные интерфейсы - RS-232, токовую петлю и т.п., а кроме того, могла работать через глобальные связи, например, модемные.

2.4 Развитие операционных систем в 80-е годы.

В 90-е годы практически все операционные системы, занимающие заметное место на рынке, стали сетевыми. Сетевые функции сегодня встраиваются в ядро ОС, являясь её неотъемлемой частью. Операционные системы получили средства для работы со всеми основными технологиями локальных (Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM) и глобальных (X.25, frame relay, ISDN, ATM ) сетей, а также средства для создания составных сетей (IP, IPX, AppleTalk, RIP, OSPF, NLSP). В операционных системах используются средства мультиплексирования нескольких стеков протоколов, за счёт которого компьютеры могут поддерживать одновременную сетевую работу с разнородными клиентами и серверами. Появились специализированные ОС, которые предназначены исключительно для выполнения коммуникационных задач. Например, сетевая операционная система IOS компании Cisco Systems, работающая в маршрутизаторах, организует в мультипрограммном режиме выполнение набора программ, каждая из которых реализует один из коммуникационных протоколов. Во второй половине 90-х годов все производители ОС резко усилили поддержку работы с Интернетом (Кроме производителей UNIX-систем, в которых эта поддержка всегда была существенной). Кроме самого стека TCP/IP в комплект поставки начали включать утилиты, реализующие такие популярные сервисы Интернета, как telnet, ftp, DNS и Web. Влияние Интернета проявилось и в том, что компьютер превратился из чисто вычислительного устройства в средство коммуникаций с развитыми вычислительными возможностями.

На современном этапе развития ОС на передний план вышли средства обеспечения безопасности. Это связано с возросшей ценностью информации, обрабатываемой компьютерами, а также с повышенным уровнем угроз, существующих при передаче данных по сетям, особенно по публичным, таким как Интернет. Многие ОС обладают сегодня развитыми средствами защиты информации, основанными на шифрации данных, аутентификации и авторизации. Современным ОС присуща многоплатформенность, то есть способность работать на совершенно различных типах компьютеров. Многие ОС имеют специальные версии для поддержки кластерных архитектур, обеспечивающих высокую производительность и отказоустойчивость. Исключением пока является ОС Netware, все версии которой разработаны для платформы Intel, а реализации функций NetWare в виде оболочки для других ОС, например NetWare for AIX, успеха не имели.

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

История ОС насчитывает примерно полвека. Она во многом определялась и определяется развитием элементной базы и вычислительной аппаратуры. На данный момент мировая компьютерная индустрия развивается очень стремительно. Производительность систем возрастает, а следовательно возрастают возможности обработки больших объёмов данных. Операционные системы класса MS-DOS уже не справляются с таким потоком данных и не могут целиком использовать ресурсы современных компьютеров. Поэтому в последнее время происходит переход на более мощные и наиболее совершенные операционные системы класса UNIX , примером которых и является Windows NT, выпущенная корпорацией Microsoft.

Каждая операционная система однозначно определяет набор функций, обеспечивающий обмен с файлом, состоящий из запросов на открытие, чтение, управление и закрытие файла.

Читайте также: