Случайна страница
За проекта
Полезни връзки
Последни публикации
Свържете се с нас
Автоматизация Автоматизация Архитектура Астрономия Одит Биология Счетоводство Военна наука Генетика География Геология Държавна къща Друга журналистика и средства за масова информация Изкуство Чужди езици Компютърни науки История Компютри Компютри Кулинарна култура Лексикология Литература Логика Маркетинг Математика Механика Механика Мениджмънт Метал и заваръчна механика Музика Население Образование Безопасност на живота Охрана на труда Педагогика Политика Право инструмент за програмиране производство Industries Психология P Дио Религия Източници Communication Социология на спорта стандартизация Строителство Технологии Търговия Туризъм Физика Физиология Философия Финанси Химически съоръжения Tsennoobrazovanie скициране Екология иконометрия Икономика Електроника Yurispundenktsiya

Цели и средства за синхронизация

Прочетете още:
  1. I. Решението на логическите проблеми чрез алгебра на логиката
  2. IV. СОБСТВЕНОСТ И СРЕДСТВА ЗА ПРИСТИГАНЕ
  3. VI. ОЧАКВАНИ СРЕДСТВА ЗА ТЕКУЩА КОНТРОЛ НА УСПЕХА И МЕЖДУНАРОДНА АТЕСТАЦИЯ
  4. Автоматични пожарогасителни средства. Устройството за разпръскване и потопяеми пожарогасителни системи.
  5. АДРЕНЕРГИЧНИ СРЕДСТВА
  6. АНАЛИПТИЧНИ АГЕНТИ (АНАЛЕПИТИ)
  7. Анализ на предоставянето на оборотен капитал
  8. АНТИАМЕМИЧНИ СРЕДСТВА, ИЗПОЛЗВАНИ ПРИ ХИПХРОМИЧНИ АНАМИТИ
  9. железария
  10. Хардуерна защита на информационните системи
  11. Основни инструменти за програмиране
  12. Безкладова социална система с една обществена собственост върху средствата за производство, пълно социално равенство на всички членове.

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

1 В този раздел ще обсъдим синхронизирането на нишки, като се има предвид, че ако операционната система не поддържа нишки, всичко това се отнася за синхронизация на процеса.

В много операционни системи тези инструменти се наричат ​​инструменти за комуникация между процесите - Inter Process Communications (IPC), което отразява историческото предимство на понятието "процес" във връзка с понятието "поток". Обикновено IPC означава не само средства за синхронизация между процеси, но и средство за комуникация между процесите.

Пускането на нишка в мултипрограмна среда винаги е асинхронно. Много е трудно да се каже с абсолютна сигурност на какъв етап от изпълнението процесът ще бъде в определен момент от време. Дори в режим на единична програма, не винаги е възможно точно да се изчисли времето за изпълнение на задачата. Този път в много случаи зависи от стойността на първоначалните данни, която се отразява на броя на циклите, посоката на разклоняване на програмата, времето на входно / изходните операции и т. Н. Тъй като първоначалните данни при различни времена на стартиране на задачите могат да бъдат различни, индивидуалните етапи и задачата като цяло е много несигурно количество.

Още по-несигурно е времето за изпълнение на програмата в системата за многопрограмиране. Моментите на прекъсване на нишката, времето им в опашките на споделените ресурси, редът на избора на теми за изпълнение - всички тези събития са резултат от сливане на много обстоятелства и могат да бъдат интерпретирани като произволни. В най-добрия случай е възможно да се оценят вероятностните характеристики на изчислителен процес, например вероятността за завършването му в даден период от време.

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



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

Когато споделяте хардуерни ресурси, синхронизацията е абсолютно необходима. Когато например активната нишка изисква достъп до сериен порт и друга нишка работи в изключителен режим с този порт в състояние на готовност, операционната система спира активния поток и не го активира, докато не се освободи пристанището, от което се нуждае , Често трябва да синхронизирате и събития, които са външни за компютърната система, например отговора на клавишната комбинация Ctrl + C.

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

За да синхронизирате потоците от приложения, програмистът може да използва както собствени средства, така и методи за синхронизация, както и средствата на операционната система. Например, две нишки от един процес на прилагане могат да координират работата си с глобалната логическа променлива, която им е на разположение, която е настроена на едно, когато се случи събитие, например генерирането на един поток данни, необходим за продължаване работата на друга. В много случаи обаче, инструментите за синхронизация, осигурени от операционната система под формата на системни повиквания, са по-ефективни или дори са възможни. По този начин потоците, принадлежащи към различни процеси, нямат способността да се намесват по никакъв начин в работата помежду си. Без посредничеството на операционната система, те не могат да се прекратят взаимно или да уведомят събитие, което е станало. Синхронизационните инструменти се използват от операционната система не само за синхронизиране на процесите на приложение, но и за вътрешни нужди. Обикновено разработчиците на операционни системи осигуряват широк спектър от инструменти за синхронизация за програмисти на приложения и системи. Тези инструменти могат да формират йерархия, когато по-сложните са изградени на базата на по-прости инструменти и също така са функционално специализирани, например инструменти за синхронизиране на нишките на един процес, средства за синхронизиране на потоците от различни процеси по време на обмен на данни и т.н. Често функционалността на различните системни повиквания синхронизиране, така че за да се реши една задача, програмист може да използва няколко обаждания в зависимост от личните си предпочитания.

‡ Зареждане ...

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |


Когато използвате този материал, свържете се със bseen2.biz (0.006 сек.)