|
// COURSE_4.TXT 30.10.2009 р.ж.
ПРОЦЕСИ И СЪОБЩЕНИЯ |
"Почакай малко" - каза човекът от сервиза, преди да влезе в склада за резервни части. |
Скорост Когато процесорът прочете команда, той знае точно какви операнди да прочете след нея, така, че след изпълнението със сигурност попада на следващата команда. Процесорът не знае
каква ще е следващата команда, но тъй като командните кодове имат еднаква дължина (виж статия 2), я прочита безпогрешно. Командните числа имат еднаква дължина, но не се
изпълняват за еднакво време. Колко такта са нужни за една команда, зависи от процесора и от командата. Тоест скоростта на изпълнение е неравномерна.
Едновременност Програмите се изпълняват като поредица стъпки (команди). Ако в паметта има две програми, процесорът може да ги изпълнява, спазвайки поредицата: Една команда от програма 1,
после една команда от програма 2, после пак команда от програма 1 и т.н. Така се появява ефект, сякаш двете програми работят едновременно. В съвременните машини
този тип работа е преобладаващ. Ако натиснатото копче възбужда краткотрайно програмно действие в първата програма, до натискането на следващото копче остава доста свободно
време, което дава възможност на компютъра да изпълнява втората програма едновременно с първата. Това важи и за повече от две програми, доколкото машината е бърза.
Операционно ядро За да има ред, още със старта на компютъра се включва една програма, наречена Операционно ядро, предназначено да стартира и обслужва по-късните програми. Тази програма
работи едновременно с всички останали от старта до изключването на машината. Операционното ядро контактува пряко с важните периферни устройства - клавиатура, мишка, видеосистема,
мрежови връзки. По-късно стартираните програми се ползуват от превода на ядрото, за да прекосят границата на собствения си езиков слой.
Съобщения /сигнали/
Когато две програми работят едновременно, едната може да изпрати към другата порция данни, наречена съобщение (сигнал). Всяка програма има собствено място, предназначено за
получаване на такива съобщения - подобно на пощенска кутия, наречено опашка на съобщенията. Съобщението се записва в опашката на програмата-получател и остава там докато
програмата-получател не го премахне. Когато щракнем с мишката, тя излъчва по жицата едно число - команда. Операционното ядро приема тази команда, съставя от нея
съобщение и го изпраща към текущата програма. Този механизъм играе роля на вход и изход, близък по действие до конзолния - описан в статия 3, но тъй съобщенията са унифицирани,
те са удобни за тълкуване и ползуване, и съставят езиково множество (виж по-долу протоколи).
Протоколи
По принцип съобщенията имат свободно съдържание, но тъй като всички програми контактуват с ядрото, те трябва да разпознават и точно да спазват указанията идващи
от неговите съобщения. Подобно съглашение важи при обмен между всеки две програми. То се нарича протокол. Протоколите са езикови множества (виж статия 1), уговорени
за определени дейности или програмни връзки.
Инициатива Подобно на процесора, програмите изпълняват записаните в опашката съобщения.
Всяко съобщение се премахва от опашката и след неговото изпълнение програмата изпада в регламентирано състояние на бездействие. Бездействуващата програма е почти прозрачна
за процесора, което му дава възможност пълноценно да изпълнява другите програми. Всяко присъстващо съобщение в опашката стартира отново програмата. С други думи
всеки програмен ход започва от съобщение и завършва с бездейно състояние.
Нещата по-горе са необходими за разбирането на програмните процеси.
Необходими - значи без тях не може.
|
|