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

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

За организиране на планировчика цикличен своя страна, qstore () и qretrieve () трябва да бъде пренаписана, както следва:

В тази версия всички препълнен по време на запис на индекса е непосредствено преди извличане на индекса; в противен случай, все още има място за вмъкване на събитието. Опашката е празен, когато rpos равнява на СПР.

Може би най-често се използва цикличен опашката в операционните системи за съхранение на информация, което е написано на диска и на файла или към конзолата. Циклично опашка се използва също и в програмите за обработка в реално време, които трябва да продължат да обработват информацията, глупак, докато исканията за I / O. Много текстообработващи програми използват тази техника по време на преформатиране точка или линия подравняването. Въведеният текст не се появява на екрана, докато процесът е завършен. За да направите това, приложението трябва да проверите клавиши по време на изпълнение на други задачи. Ако се натисне произволен клавиш, въведената характер бързо се поставя в опашката, и процесът продължава. След завършването му, героите са извлечени от опашката.

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

Програмата да работи, както е описано по-горе, че е необходимо да се използват два функции, които не са определени в стандарт езика C: _kbhit () и _getch (). _kbhit () връща истина, ако ключът е натиснат от клавиатурата; в противен случай тя се връща FALSE. _getch () функция чете вход характер, но не го дублират на екрана. стандартен език C не предоставя функция за проверка на състоянието на клавиатурата или характер четец без дисплея на екрана, тъй като тези функции са в зависимост от операционната система. Въпреки това, в повечето библиотеки, компилатори имат функции, които изпълняват тези задачи. Присъства тук е малка програма, която е съставен с компилатора на Microsoft.

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

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