- •3. Лекция. Архитектура современных высокопроизводительных эвм. Функциональная структура компьютера. Основные концепции функционирования. Программное обеспечение компьютера. Основы алгоритмизации.
- •3.1.1. Устройство ввода
- •3.1.2. Блок памяти
- •3.1.3. Арифметико-логическое устройство
- •3.1.4. Блок вывода
- •3.1.5. Блок управления
- •3.2. Основные концепции функционирования
- •3.3. Структура шины
- •3.4. Программное обеспечение
- •3.4.1.Этапы подготовки и решения задач на эвм
- •3.4.2.Алгоритмы и способы их описания (для более детального изучения раздела можно посмотреть ресурс http://www.Tmn.Fio.Ru/works/04x/306/p04_04/page/p1.Htm)
3.4. Программное обеспечение
Для того чтобы пользователь мог запустить прикладную программу, в памяти компьютера должно уже содержаться некоторое системное программное обеспечение. Системное программное обеспечение — это набор программ, предназначенных для выполнения следующих функций:
получение и интерпретация команд пользователя;
ввод и редактирование прикладных программ, их сохранение в файлах на вторичных запоминающих устройствах;
управление процессом сохранения файлов на вторичных запоминающих устройствах и извлечение их с указанных устройств;
запуск стандартных прикладных программ, таких как текстовые процессоры, электронные таблицы или игры, с данными, которые предоставляются пользователем;
управление устройствами ввода-вывода для получения входной информации и вывода выходных данных;
трансляция исходного кода программ, подготовленных ранее пользователем, в объектные модули, состоящие из машинных команд;
компоновка пользовательских прикладных программ со стандартными библиотечными подпрограммами (например, выполняющими числовые вычисления) и запуск результирующих программ.
Таким образом, системное программное обеспечение отвечает за координирование всех операций, выполняемых в компьютерной системе. В этом разделе мы рассмотрим его важнейшие аспекты.
Прикладные программы обычно пишутся на языках программирования высокого уровня, в том числе на С, C++, Java, Pascal, FORTRAN и т.д., позволяющих программисту задать действия, которые должна выполнить программа (скажем, математические вычисления или обработку строк текста). Такие операции описываются в формате, не зависящем от типа компьютера, который будет выполнять программу.
Программисту, использующему язык высокого уровня, не нужно знать машинные команды и особенности их использования. Специальная системная программа, называемая компилятором, транслирует программу на языке высокого уровня в программу на машинном языке, состоящую из таких команд, как Add и Load, о которых рассказывалось в разделе 3.2.
Еще одна важная системная программа, которой пользуются все программисты, называется текстовым редактором. Она предназначена для ввода и редактирования прикладных программ. Пользователь такой программы с помощью клавиатуры вводит и редактирует инструкции исходного текста программы и накапливает их в файле. Файл — это просто последовательность буквенно-цифровых символов или двоичных данных, которая сохраняется в памяти или на вторичном запоминающем устройстве. К файлу можно обращаться по заданному пользователем имени.
Сосредоточим внимание на ключевом компоненте системного программного обеспечения, называемом операционной системой (ОС). Это большая программа, а точнее, целый набор программ, используемый для управления взаимодействием различных устройств компьютера при выполнении прикладных программ. Компоненты операционной системы отвечают за предоставление прикладным программам ресурсов компьютера — основной памяти и памяти на магнитных дисках, устройств ввода-вывода и т. д.
Чтобы понять назначение и основные принципы функционирования операционной системы, давайте рассмотрим систему с одним процессором, одним диском и одним принтером. Сначала мы обсудим процесс выполнения прикладной программы. Когда он станет вам понятен, мы сможем поговорить о том, как операционная система организует одновременное выполнение нескольких прикладных программ. Предположим, у нас имеется уже откомпилированная прикладная программа, сохраненная в виде машинных команд на диске. Первым делом файл, в котором хранится эта программа, нужно переслать в память. Как только это будет сделано, начнется выполнение программы. Допустим, что в функции программы входит чтение файла данных с диска в основную память, выполнение определенных вычислений с этими данными и печать результатов. Когда выполняемой программе потребуется файл данных, программа попросит операционную систему переслать ей таковой с диска в память. Операционная система выполнит этот запрос и вернет управление прикладной программе, которая перейдет к вычислениям. Когда вычисления будут завершены и придет время печати результатов, прикладная программа снова направит запрос операционной системе. В ответ будет осуществлена соответствующая программа операционной системы, которая обеспечит отправку нужных данных на принтер.
Итак, вы видите, что при выполнении прикладной программы управление постоянно передается то ей, то программам операционной системы. Процесс поочередного использования процессора можно проиллюстрировать линейной диаграммой, показанной на рис. 3.4. В течение времени от момента t0 до момента t1 одна из программ операционной системы инициирует загрузку прикладной программы с диска в память, дожидается завершения процесса загрузки, а затем передает управление прикладной программе. Аналогичные процессы происходят с момента t2 до момента t3 и с момента t4 до момента t5, когда операционная система считывает файл данных с диска в основную память и когда она печатает результаты. После момента времени t5 операционная система может загрузить и выполнить другую прикладную программу.
Рис. 3.4. Поочередное использование процессора прикладной программой и программами операционной системы
А теперь давайте рассмотрим способ более эффективного использования ресурсов компьютера, заключающийся в параллельном выполнении нескольких программ. Обратите внимание, что в течение отрезка времени от момента (t4 до момента t5 ни процессор, ни диск не заняты никакой работой. В это время работает только принтер, и операционная система могла бы загрузить в память следующую программу. Аналогичным образом, в промежуток времени от t0 до t1 операционная система могла бы печатать результаты, сгенерированные предыдущей программой (пока текущая программа загружается с диска). Именно так операционная система управляет параллельным выполнением нескольких прикладных программ, обеспечивая поочередное использование ими ресурсов компьютера. Такая схема параллельного выполнения программ называется многозадачностью.