ПредишенСледващото

Дефиниране на семафор

Semaphore - това е обект, който може да изпълнява три операции.

Да предположим, че има част от код:

След това, не повече от пет потоци могат едновременно да изпълняват функция DoSomething ().

В по-сложни опашката семафори може да се използва; с нишките в очакване на освобождаването на семафора, ще премине през семафор в реда, в който те предизвикаха въведете ().

Използването на семафори

Ето и някои от проблемите, които могат да се справят семафори.

  • едновременна забрана за изпълнение на определени сегменти на код;
  • Алтернативно достъп до критични ресурси (важен ресурс., За които не едновременен достъп).

Следният пример показва как да се създаде един по един достъп до конзолата.

Този код ще помогне за предотвратяване на обявата като

проблеми семафори

На първо място, това е възможно да се напише програма с "семафор теч", причинявайки въведете () и забравя да се обади отпуск (). По-рядко срещани грешки, когато нарече два пъти напускат ().

На второ място, семафори са изпълнени с взаимно свързани теми. По-специално, опасен код като този:

Трето, проблемът остава на процедурите за семафор синхронизация. Например, да разгледаме следната ситуация: два процеса са в очакване на освобождаването на семафора. След като семафор е освободен, първият процес "научава" за това, но не успя да намали на гишето като контрол се предава на втория процес. Вторият процес разпознава също освобождаването на семафор намалява брояч и е включена в защитената част на код. Тогава контрол се предава на първия процес, толкова повече време и намалява брояча също е включена в защитената част на код. В резултат на това ние сме превишава разрешения брой на процеси.

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

външни връзки

Вижте какво "Semaphore (програмиране)" в други речници:

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

Клас (програмиране) - Този термин, има и други приложения, вижте клас .. Клас по програмиране на набор от методи и функции. данни Други абстрактни типове metaclass, интерфейси, структури, изброявания се характеризират с това, което е негово, а другата ... ... Wikipedia

Интерфейс (обектно-ориентираното програмиране) - Този термин, има и други приложения, вижте интерфейс (пояснение) .. Интерфейс (лат. Интер «между» и лице «повърхност") семантичен и синтаксис в кода, използван да се уточни ... ... Wikipedia

Object (програмиране) - Този термин, има и други приложения, вижте обект (стойност) .. Обектно програмиране на предприятие при виртуалното пространство като специфично състояние и поведение, като дадени стойности на свойства (атрибути) и ... ... Wikipedia

Структурата на (програмиране) - Този термин, има и други приложения, вижте Структура (пояснение) .. Структурата на повечето езици за програмиране, дизайн, позволяващ да съдържа набор от променливи от различни типове. Семейството на Паскал език структура ... ... Wikipedia

Заключване (програмиране) - В този мандат, има и други приложения, вижте Lock .. В компютърните науки, ключалката е механизъм за синхронизация позволява да предостави изключителен достъп до споделен ресурс сред множество нишки. Заключете един начин ... ... Wikipedia

ГОСТ 19781-90: Поддръжка на софтуер за обработка на информация. Термини и определения - Терминология ГОСТ 19781 90: Предоставяне на софтуер за обработка на информация. Термините и определенията на оригиналния документ: 9. Специална програма Non relocatable програма в машина език програма, изпълнението на които зависи от неговата ... ... речник на термините на нормативната и техническа документация

Interprocess Съобщение - техники, определени на обмена на данни между множество потоци на един или повече процеси (Engl Интер Метод съобщение, IPC.). Процесите могат да се движат по един или повече компютри, свързани чрез мрежа. методи IPC са разделени ... ... Wikipedia

Свързани статии

Подкрепете проекта - споделете линка, благодаря!