Главная -> Книги

(0) (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) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) ( 85 ) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124) (85)

Дисковая ОС (иногда ленточная ОС) реализует все функции базовой ОС, возможно с некоторыми расширениями, а также более сложные функции управления периферийными устройствами. Дисковая ОС благодаря более быстрому доступу обеспечивает большую гибкость и эффективность работы ЭВМ. Для реализации дисковой ОС, как правило, достаточна следующая минимальная конфигурация: процессор, оперативная память 8-32К байт, накопитель на магнитных дисках (ленте), пишущая машинка, быстродействующие принтер, перфоленточный считыватель и перфоратор. По сравнению с базовой ОС здесь имеются развитые средства управления файлами, автоматической каталогизации файлов, организации библиотек. Как правило, имеются трансляторы нескольких языков высокого уровня.

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

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

Минимальная конфигурация для реализации ОС реального времени включает в себя процессор (иногда несколько), оперативную память 16-32К байт, таймер реального времени, систему многоуровневых приоритетных прерываний, средства защиты памяти, накопители на магнитных дисках (и лентах), быстродействующие перфоленточные считыватель и перфоратор, построчный принтер и (необязательно) карточный считыватель.

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

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



называемые системы под ключ) прикладное ПО поставляется вместе с ЭВМ.

[ Прикладное ПО отличается наибольшим разнообразием, так как сфера применения мини- и микро-ЭВМ расширяется чрезвычайно быстрыми темпами. Мини-ЭВМ сейчас успешно заменяют средние и даже большие ЭВМ широкого -назначения, а также различные специализированные системы. Разработка адекватного ПО становится важнейшей частью проектирования любой системы на базе ЭВМ. Особую роль играют средства диагностики и самоконтроля, которые необходимы практически в любой области применения.

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

7-2. ЯЗЫКИ ОПИСАНИЯ АЛГОРИТМОВ

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

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

Языки высокого уровня (алгоритмические языки) почти не отражают структуру ЭВМ и считаются машинно-незави-



симыми. программы на этих языках характеризуются высокой мобильностью. Наибольшее распространение для мини- и микро-ЭВМ получили такие языки высокого уровня, как «Фортран», PL/M и различные его разновидности, «Бейсик», «Паскаль» и «Ада».

При желании любой алгоритм можно запрограммировать на машинном языке в двоичной или более удобных 8-ричной и 16-ричной формах. Однако этот язык обладает рядом существенных недостатков и на практике почти не применяется за исключением тех ситуаций, когда прикладная программа невелика и нет никаких средств автоматизации программирования (или средств поддержки). Усложнение структуры ЭВМ, расширение системы команд, несколько форматов данных еще более затрудняют практическое применение машинного языка.

Язык ассемблера отличается от машинного языка тем, что операции, операнды и адреса представляются в символической форме, более удобной для пользователя. Ассийб-лер, по существу эквивалентный машинному языку, позво ляет разработать максимально эффективные программы, оцениваемые длиной и временем выполнения. Объектные программы, генерируемые транслятором языка высокого уровня, оказываются менее эффективными.

По мере совершенствования средств автоматизации программирования все более широкое применение будут находить языки высокого уровня благодаря их многочисленным достоинствам. К ним относятся увеличение продуктивности труда программистов, мобильность, лучшая доку-ментируемость и компактность программ, сокращение времени отладки и некоторые другие.

Программы-трансляторы языков высокого уровня делятся на компиляторы и интерпретаторы. Компилятор обрабатывает исходную программу и порождает полную объектную программу, которая затем выполняется на ЭВМ. Интерпретатор не создает полной объектной программы, а последовательно транслирует и выполняет операторы исходной программы. Подавляющее большинство языков высокого уровня рассчитано на компилятор, а самым распространенным интерпретирующим языком является «Бейсик».

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



(0) (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) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) ( 85 ) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124)