Потоки — это мысли компьютера 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Потоки — это мысли компьютера



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

Поток это непрерывная последовательность инструкций, выполняющих опреде­ленную задачу.

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

Хорошей иллюстрацией тому служит оболочка Windows. Она представляет собой Win32-npoцecc, а каждое открываемое в ней окно папки является потоком. Поэтому, когда Вы инициируете в оболочке операцию копирования между двумя окнами папок, она исполняется потоком окна-приемника. Ну а Вы тем временем можете пользоваться другими окнами в обо­лочке и даже копировать файлы в другом окне.

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

Вы вполне можете думать о нескольких вещах одновременно.

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

В приведенном примере мысль об экзамене – это процесс, мысль о вопросах – это поток1, мысль об ответах – поток2, мысль о составлении плана – поток3 (см. рис.1).

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

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

Рис.1. Граф «Процесс – поток»

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

§ каждому потоку необходимо выделить достаточно системного времени и пространства для работы.

§ потоки не должны мешать друг другу.

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

Рис. 2. Параллельная обработка с несколькими процессорами (а); моделирование параллельной обработки путем переключения одного процессора с одного процесса на другой (в данном случае всего три процесса) (б)

 

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

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

К информационным относятся все необходимые данные для работы программы или устройства (файлы с расширением.nfo,.inf,.txt и др.)

Вычислительные ресурсы делятся на:

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

2. Программные ресурсы. К ним относятся драйверы, кодеки, проигрыватели, операционная система определенной версии, и другое специализированное ПО.

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

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

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

Пример3.

Для использования Microsoft Office Базовый 2007 необходимы следующие системные ресурсы:

Компонент Требование
Компьютер и процессор с частотой не ниже 500 мегагерц (МГц)
Память ОЗУ не менее 256 мегабайт (МБ)
Место на жестком диске 1,5 гигабайт (ГБ). Часть места на диске будет освобождена после установки при удалении с него исходного установочного пакета.
Устройство чтения дисков устройство чтения компакт-дисков или DVD-дисков
Экран с разрешением не менее 1024x768
Операционная система Microsoft Windows XP с пакетом обновления 2, Windows Server 2003 с пакетом обновления 2 или более поздняя версия

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

Под загрузкой программы понимается копирование с внешнего носителя в оперативную память тела основной программы (файла с расширением.exe) и необходимых программных модулей и данных.

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

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

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

1.1.2 Концепция прерываний процесса

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

порождение - подготовку условий для исполнения процессором:

активное состояние (или «Счет») - непосредственное исполнение процессором:

• ожидание - по причине занятости какого-либо требуемого ресурса:

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

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

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

Рис. 1. Граф состояний переходов процесса из одной фазы в другую

Прерывание - приостановка работы программы (потока) для передачи активности другой программе (потоку) с более высоким приоритетом.

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

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

§ восприятие запроса на прерывание:

§ запоминание состояния прерванного процесса, определяемое значением счетчика команд и других регистров процессора;

§ передача управления прерывающему потоку (нити), для чего в счетчик команд за­носится адрес, соответствующий данному типу прерывания;

§ обработка прерывания:

§ восстановление прерванного процесса.

В большинстве ЭВМ первые три этапа реализуются аппаратными средствами, а остальные - блоком программ обработки прерываний операционной системы.

 

Контрольные вопросы

1. Как связаны друг с другом процесс и поток?

2. Какие ресурсы необходимы потоку для его выполнения?

3. Назовите одним словом аппаратные и программные ресурсы.

4. Какие действия выполняются в процессе загрузки программы в оперативную память?

5. Какой этап в выполнении процесса свидетельствует о том, что произошло прерывание?

 

Задания для самоконтроля

@

1. Опишите системные требования к имеющемуся у вас программному продукту.

2. В нижеизложенном тексте определите, что является процессом, потоком и где произошло прерывание потока.

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

1.2. Понятие операционной системы

1.2.1 Назначение, функции и состав ОС

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

Ранние ЭВМ не предусматривали ОС, поэтому процессы запуска/остановки программы, присоединения внешних носителей управлялись вручную. В середине 60-х гг. ряд ведущих фирм-производителей ЭВМ – IBM (США), CII (Франция), практически одновременно приступил к выпуску моделей машин (IBM 360, System4, Iris 80), оснащенных операционными системами (operating system).

Наиболее совершенной и конкурентоспособной оказалась OS/360 (IBM), в которой были заложены практически все основные черты ОС, позволяющие превратить ЭВМ в «автоматизированную фабрику» обработки информации при минимальном участии человека. OS/360 и другие современные ОС были ориентированы на обработку потока заданий (пакетную обработку), при которой пользователь не может вмешаться в ход выполняемой задачи, оперативно просмотреть промежуточные данные, т. е. оторван от машины.

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

В настоящее время наиболее распространенной является интерактивная ОС UNIX, версии которой разработаны практически для всех моделей ЭВМ, а также популярная ОС Windows, разработанная фирмой Microsoft для IBM PC. Для IBM PC-совместимых ЭВМ в свое время была разработана UNIX-подобная система MS-DOS (фирмой Microsoft).

На современном этапе персональный компьютер без операционной системы не функционален.



Поделиться:


Последнее изменение этой страницы: 2021-05-12; просмотров: 64; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.54.6 (0.025 с.)