1 / 24

Программное обеспечение

Программное обеспечение.

Download Presentation

Программное обеспечение

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Программное обеспечение • Программное обеспечение является необходимой составной частью любого компьютера. Оно является равнозначной частью любой системы. Программная часть системы (software) и аппаратная часть (hardware), т.е собственно оборудование, составляют информационную систему обработки информации, для которой лишь по традиции сохраняется старое название компьютер • Программное обеспечение может быть разделено на • операционные системы (ОС) и сервисные программы; • инструментальные языки и системы программирования; • прикладные программы

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

  3. ОС управляет 4 основными ресурсами: • Размещение памяти между активными задачами, данными и управляющей программой • Распределение процессорного времени • Распределение периферийных устройств • Организация файловой системы • ОС состоит из: • файловая система • драйверы внешних устройств • процессор командного языка

  4. Файл - это место постоянного хранения информации. Реализуются файлы как участки памяти на внешних машинных носителях • Каждый файл имеет имя, зарегистрированное в каталоге - оглавлении файлов. Каталог может иметь собственное имя и храниться в другом каталоге наряду с обычными файлами • К файловой системе имеет доступ также и любая прикладная программа. Понятие файла может быть обобщено на любой источник или потребитель информации в машине: коммуникационный канал, принтер, дисплей, клавиатуру и др.

  5. Компьютер может иметь довольно большой набор внешних устройств (ВУ) • Каждое ВУ характеризуется своей пропускной способностью и структурой передаваемых/принимаемых данных • Поддержка широкого набора ВУ - одна из важнейших функций ОС • Для ее осуществления введено понятие драйвера - программы специального типа, ориентированной на управление внешним устройством

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

  7. Наиболее простые ОС, предоставляют пользователю лишь самый необходимый набор средств для управления ресурсами компьютера, доступа к файловой системе и организации диалога. ОС данного класса не дают никаких особых возможностей для организации вычислительного процесса, поэтому их применение оправдано на дешевых персональных компьютерах. Наиболее распространенные среди систем такого типа ОС-CP/M и MS-DOS. • Первоначально предполагалось, что компьютеры IBM/PC будут оборудованы операционной системой CP/M. Однако руководитель фирмы Digital Research, когда к нему приехали представители IBM играл в гольф, а его жена отказалась их выслушать в отсутствие мужа. В результате заказ попал к Биллу Гейтсу, который купил похожую на CP/M систему и переименовал ее. • Тим Петерсон, работая в фирме Seattle Computer Products, написал ОС SCP86DOS для микропроцессора 8086. Фирма Микрософт закупила исключительные права на программу с новым именем MS-DOS. Тим Петерсон затем перешел в Микрософт, где полностью переработал свою ОС.

  8. ОС с более развитыми средствами доступа ко всем аппаратным компонентам, гибкой файловой системой, удобным для пользователя командным языком. К этому классу относятся ОС фирмы DEC RSX-11 для машин класса PDP-11 и VMS для VAX-11. Наиболее ярким представителем этого класса является - UNIX. • Многие специалисты рассматривают появление UNIX как самое замечательное достижение в области создания ОС. В начале 70-х годов в Bell Telephon Laboratories К.Томсон и Д.Ритчи поставили перед собой цель - разработать продуктивные средства для научно-исследовательских работ. • Авторы UNIX показали, что один человек, если у него есть продуктивные идеи, может внести значительный вклад а развитие вычислительной техники

  9. К.Томсон (PDP-7 DEC) - решил разработать ОС, которая позволила бы координировать усилия программистов для выполнения исследовательских работ при создании ПО. Его усилия были направлены на создание ОС, ассемблера PDP-7 и нескольких программ утилит • В 1973 г. Д.Ритчи переписал UNIX на специально для этого разработанном языке C. Этот язык разработанный Ритчи адаптирован для машин с различными архитектурами. Поскольку большая часть этой операционной системы написана на С, оказалось возможным переносить эту ОС с одного компьютера на другой с минимальными затратами • Традиционно ОС привязывались к определенной машине или семейству машин. Впервые перенос на другой компьютер был осуществлен Д.Ритчи и С.Джонсоном в 1976 г. при установке UNIX на Interdata 8/32

  10. Язык Си • Появление Си принято связывать с именем Дениса Ритчи, подготовившего в 1972 году первую версию этого языка в ходе работ над операционной системой UNIX для ЭВМ семейства PDP. Однако исторически его возникновение следует связывать с, во многом машиннозависимым, языком B, созданным Кеном Томпсоном на основе языка BCPL • В настоящее время из 13000 строк системного кода UNIXа лишь 800 строк, выполняющих работу наиболее низкого уровня, написаны на языке ассемблера. Остальная же часть этой операционной системы и множество ее программных утилит написаны на Си • Язык Си - это алгоритмический язык "не очень высокого уровня". Он проектировался для того, чтобы получить непосредственный доступ к объектам, которыми оперируют процессоры компьютера: разрядам, байтам, словам, адресам • По этой причине, а также потому, что Си является блочно-структурированным языком, похожим на Алгол или Паскаль, он прекрасно подходит для системного программирования.

  11. В нем удачно сочетаются лучшие свойства ассемблера и языков высокого уровня. От ассемблера были взяты эффективные средства работы с оперативной памятью и регистрами микропроцессора, от языков высокого уровня - широкий набор управляющих конструкций, возможность работы со сложными структурами данных, гибкие средства ввода/вывода информации • Философия языка Си заключается в том, чтобы предоставить программисту максимальную свободу действий при написании программы, но возложить на него всю ответственность за возможные действия приводящие к краху • В языке Си имеется большой набор управляющих конструкций для реализации циклических и разветвленных алгоритмов, средства для блочного и модульного программирования, а также возможность гибкого управления процессом выполнения программы. Он очень удобен для обработки текстов, для технических приложений и моделирования.

  12. Конечно, другие языки имеют свои специфические особенности, которые делают их во многих случаях более удобными. Но тем не менее язык Си стал очень популярным, им широко пользуются программисты и им он очень нравится • Те, кто использует язык Си, приводят обычно следующие причины его популярности: • программы на языке Си легче переносятся с одной ЭВМ на другую • язык обеспечивает богатый набор операций для вычисления выражений и дает возможность обходиться без языка ассемблера даже при работе с битами • программы компактны, н не настолько, чтобы не быть непонятными; • язык Си удобен, его синтаксис достаточно прост

  13. Подготовка к выполнению и выполнение программ • Язык Си относится к числу компилируемых языков программирования. Это означает, что подготовка к выполнению Си-программы включает в себя следующие этапы: • ввод исходного текста программы в файл при помощи какого-либо редактора текстов (имя файла, как правило, имеет стандартное расширение "C " для Си и "CPP" для С++) • компиляция программы, т.е. преобразование ее описания на входном языке в семантический эквивалент на машинном языке, называемый объектным модулем (имя файла, в который помещается результат компиляции, обычно имеет расширение "OBJ") • построение готового к выполнению загрузочного модуля из объектных модулей, включая модули из внешних библиотек (файл, содержащий готовую программу, имеет имя с расширением "EXE")

  14. В процессе компиляции программы создается листинг ее исходного текста, содержащий, возможно, сообщения об обнаруженных ошибках. Наличие листинга существенно упрощает поиск и устранение ошибок, допущенных при подготовке программы, и сокращает время, затрачиваемое на ее отладку. Имя файла, в который записывается листинг исходной программы, снабжается обычно расширением "LST". При наличии ошибок необходимо вернуться на этап редактирования, исправить ошибки и заново откомпилировать программу • На этапе построения загрузочного модуля также возможно создание файла-листинга, включающего в себя информацию о размещении собираемых объектных модулей в памяти компьютера. Однако его анализ и использование требует более глубоких знаний основных принципов работы машины, нежели разбор листинга исходной программы • Для запуска в работу готовой к выполнению программы в операционной среде MS DOS достаточно набрать имя содержащего ее файла на клавиатуре консольного терминала, закончив ввод нажатием клавиши Enter

  15. После этого необходимо проверить правильность работы программы • То, что программа правильно откомпилировалась не гарантирует правильность реализации заложенного алгоритма работы • Основной путь - проверка на тестовых примерах • Однако правильность выполнения тестового примера все равно не гарантирует отсутствие ошибок • При нахождении ошибок в программе необходимо вернуться к начальному редактированию текста, компилированию, сборке и т.д. • Такой процесс называется отладкой (дебаггинг - ловля блох). 9 сентября 1945 г. ученые Гарвардского университета, тестирующие машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле. Извлеченной насекомое было вклеено в технический дневник, с сопроводительной записью: "First actual case of bug being found". Название "баг" прижилось. В настоящее время реликвия хранится в одном из музеев США

  16. Первая программа • Единственный способ научиться языку программирования - писать на нем программы • Чтобы это сделать надо: • создать каким-либо образом текст программы • успешно его оттранслировать • загрузить, выполнить • разобраться что получилось

  17. Этапы создания программы

  18. На каждом из этапов используется своя программа • Текстовый редактор • Транслятор • Сборщик • Отладчик • Существует очень много подобных программ. Для удобства все эти программы объединяются в интегрированные среды. Borland, Microsoft Visual и т.п. • Мы будем использовать свободно распространяемую систему Bloodshed Dev-C++ • Пример системы

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

  20. Эта программа выглядит так void main( ){   printf("HELLO", World \n);} Пример программы • Другой вариант void main(){ printf("HELLO,"); printf(" World"); printf("\n");} Пример программы

  21. Следующая программа печатает таблицу температур по Фаренгейту и их эквивалент по Цельсию. Для перевода используется формула c=(5/9)(F-32) /* печать таблицы */ /* для f = 0,20,40,...,300*/ void main() { int lower, upper, step; float fahr, celcius; lower = 0; upper = 300; step =20; fahr = lower; while (fahr <= upper) {celcius = (5.0/9.0)*(fahr -32.0); printf(“%4.0f %6.1f \n”, fahr, celcius); fahr = fahr + step; } } Пример программы

  22. В Си все переменные должны до их использования описываться • В операторе printf( ) спецификация %4.0f указывает, что нужно печатать число с плавающей точкой из 4 позиций без цифр после десятичной точки. %6.1f - число занимает по крайней мере 6 позиций и после точки есть одна цифра. Части спецификаций можно опускать %6f - по крайней мере 6 позиций %.2 - 2 точки после запятой, а общее число цифр не ограничивается %f - печатать число с плавающей запятой • В printf() предусмотрены • %d - для десятичных целых • %o - для восьмеричных • %x - для шестнадцатеричных • %c - для символов • %s - для символьных строк • %% - для самого символа % • Функция printf( ) не входит в сам язык Си (в Си ввод и вывод не определены). Для ввода используется функция scanf()

  23. Изменим программу вычислений градусов по Фаренгейту: void main( ) { int fahr; for (fahr = 0; fahr <= 300; fahr = fahr + 20) printf(“%4d %6.1f \n”, fahr, (5.0/9.0)*(fahr-32)); } Пример программы • Эта программа дает тот же результат

  24. Плохо если в программе встречаются загадочные цифры вроде 300 или 20 • В Си с помощью конструкций #define можно ввести символическую константу. Везде потом транслятор заменит вхождение имени константы на соответствующую строку #define LOWER 0 #define UPPER 300 #define STEP 20 main() { int fahr; for (fahr = LOWER; fahr <= UPPER; fahr=fahr+STEP) printf(“%4d %6.1f \n”,fahr,(5.0/9.0)fahr-32)); } • LOWER, UPPER, STEP - константы, поэтому в описании они не появляются. Символические имена констант обычно записывают заглавными буквами, чтобы отличать их от переменных • В конце описания нет точки с запятой. Так как подставляется вместо имени вся строчка, и оказалось бы в операторе for слишком много запятых

More Related