birmaga.ru
добавить свой файл

1 2 3 4
Национальный государственный университет


физической культуры спорта и здоровья имени П.Ф. Лесгафта

г
.Санкт-Петербург

Л.А. Заварухина

ИНФОРМАТИКА

(лекции)


Санкт-Петербург


2009

Содержание






Введение




3

Лекция 1

Информатика – предмет, задачи, история




5

Лекция 2

История развития вычислительной техники. Организация,

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






22

Лекция 3

Аппаратное обеспечение компьютера




32

Лекция 4

Программное обеспечение компьютера




48

Лекция 5

Компьютерные сети




63

Лекция 6

Безопасность информации




79


Вопросы для закрепления материала по лекционному курсу.




85



Лекция 5

Программное обеспечение компьютера

План лекции:

  1. Уровни программного обеспечения

  2. Базовое программное обеспечение

  3. Системное программное обеспечение

  4. Служебное программное обеспечение

  5. Прикладное программное обеспечение

Новые термины и понятия: программа, программное обеспечение, базовое программное обеспечение, системное программное обеспечение, служебное программное обеспечение, прикладное программное обеспечение, операционная система, файловый менеджер.

1. Уровни программного обеспечения

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

Программа (program, routine) – упорядоченная последовательность команд (инструкций) компьютеру для решения задачи. Конечная цель любой компьютерной программы – управление аппаратными средствами.

Пример программы написанной на языке FOXPRO 8.0

CLEAR

STORE 1 TO i



STORE 0 TO rez

STORE 0 TO x

@ 5,20 SAY "Программа для вывода таблицы умножения до 10 на заданное число"

@ 7,30 say "Введите число для таблицы умножения" get x picture "9"

read

IF x <=0 OR x>10



@ 9,20 say "Можно вводить числа только от 1 до 9"

@ 7,30 say "Введите число для таблицы умножения" get x

read

endif


DO WHILE i<=10

rez= x*i


@ 11+i,30 say x picture "9"

@ 11+i,32 say " * "

@ 11+i,36 say i picture "99"

@ 11+i,39 say " = "

@ 11+i,43 say rez picture "99"

i=i+1

ENDDO

Блок схема программы



Заголовок




Ввод

данных





Проверка правильности ввода данных

Нет


Да


Выполнение расчета и вывод ответа



Проверка условия окончания

Нет


Окончание

программы


Да
Основные элементы программирования:

  1. Ввод данных

  2. Вычисления, действия

  3. Ветвление

  4. Условный и безусловный переход

  5. Цикл

  6. Вывод результатов

  7. Массивы

  8. Подпрограммы

И т.д.

Программное обеспечение – совокупность программ обработки данных.

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

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

Различают четыре уровня программного обеспечения:



  • базовый уровень;

  • системный уровень;

  • служебный уровень

  • прикладной уровень.

Следует отметить, что труд Н.А.Бернштейна (1947) "О построении движений" выделяет пять уровней, на которых "строятся" движения. Более низкие, базовые уровни отвечают за простейшие движения, более высокие – за сложные движения, однако, функционирование более высоких уровней невозможно без низких уровней.


2. Базовое программное обеспечение

Самый низкий уровень программного обеспечения представляет базовое программное обеспечение. Оно отвечает за взаимодействие с базовыми аппаратными средствами. Как правило, программные средства этого уровня входят непосредственно в состав базового оборудования и хранятся в специальных микросхемах, называемых постоянными запоминающими устройствами (ПЗУ – Read Only Memory, ROM). Программы и данные записываются ("прошиваются") в микросхемы ПЗУ на этапе производства и не могут быть изменены в процессе эксплуатации. Комплект программ находящихся в ПЗУ образует базовую систему ввода-вывода (BIOS – Basic Input Output System). Основное назначение BIOS на этапе загрузки компьютера – проверить работоспособность системы.

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

Функции и назначения базовой системы ввода-вывода

BIOS самый близкий к аппаратуре компонент.

Основная функция BIOS заключается в управлении стандартными внешними и внутренними устройствами:


  • монитором

  • клавиатурой

  • дисководами

  • принтером

  • таймером

Вспомогательные функции реализуются при включении ПК на этапе "загрузки".

  • тестирование аппаратного обеспечения, в том числе оперативной памяти. В случае обнаружения неисправности выводится индикация

  • инициализация векторов прерывания нижнего уровня (ранжирование устройств ПК по степени значимости, «важности»)

  • поиск сначала на гибком, затем на жестком диске программы-загрузки ОС и загрузка ОС в оперативную память

3. Системное программное обеспечение


Системное программное обеспечение (system software) – минимальный набор программных средств, обеспечивающих работу компьютера. Системный уровень – переходный. Программы, работающие на этом уровне, обеспечивают взаимодействие прочих программ компьютерной системы с программами базового уровня и непосредственно с аппаратным обеспечением, то есть выполняют "посреднические" функции.

К системному программному обеспечению относятся:



  • операционная система

  • операционные оболочки

  • файловые менеджеры

Операционная система (operating system) – набор программ, обеспечивающих работоспособность компьютерной системы, управление аппаратурой и прикладными программами, интерфейс с пользователем.

На IBM-совместимых компьютерах устанавливаются следующие операционные системы:



  • MS-DOS (Microsoft Disk Operating System, фирма Microsoft) (в настоящее время устарела)

  • Windows 95, Windows 98, Windows 2000; Windows XP (фирма Microsoft)

  • UNIX (фирма Bell Laboratories)

  • Linux (разработчик Линус Торвальдс)

На компьютерах Macintosh чаще всего устанавливается Mac OS 10.

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

В настоящее время наибольшее распространение имеют:



  • Novel NetWare (фирма Novell)

  • Windows NT, Windows Server (фирма Microsoft)

  • LAN Server (Local Area Network)

Операционные-оболочки и файловые менеджеры. Во времена господства на IBM-совместимых компьютерах операционной системы MS-DOS пользователю было очень трудно с ней взаимодействовать. Это было связано с тем, что диалог с операционной системой проводился в виде ввода в компьютер команд с клавиатуры. Пользователь должен был помнить формат (правила записи) каждой команды, что вызывало определенные затруднения. Пользовательский интерфейс также оставлял желать лучшего. В связи с необходимостью облегчить пользователю взаимодействие с операционной системой появились операционные оболочки – специальные программы, предназначенные для облегчения общения пользователя с командами операционной системы. Самой популярной программой-оболочкой стала программа Norton Commander (фирма Symantec). Кроме того, в нашей стране использовались также другие операционные оболочки: Windows 3.1 – Windows 3.11 (фирма Microsoft); DOS Navigator (Rit Research Labs); FAR (Евгений Рошаль).

С появлением операционных систем, имеющих графический интерфейс, например, Windows 95, потребность в таких программах-оболочках отпала, однако те удобства, которые были предоставлены пользователям при базовых приемах работы с файлами (копирование, перемещение, переименование) были настолько велики, что появились программы под названием файловые менеджеры. В нашей стране наиболее распространена программа Windows Commander (рис.3.1).

4.Служебное программное обеспечение

Расширением системного программного обеспечения компьютера является набор сервисных, дополнительно устанавливаемых программ, которые можно классифицировать по функциональному признаку следующим образом:


  • программы-утилиты

  • антивирусные программы

  • программы-архиваторы

  • языки программирования

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

В настоящее время широко распространены следующие программы-утилиты: Norton Utilities, SiSoft Sandra (рис. 3.2), Fix-It, дающие исчерпывающую информацию о всех компонентах компьютера.



Антивирусные программыпрограммы, позволяющие обнаруживать и уничтожать компьютерные вирусы.

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

В настоящее время наиболее популярными антивирусными программами являются: Dr Web, Norton Antivirus, Антивирус Касперского (KAV или AVP). Программа Dr Web (рис. 3.3) в 2000 году была признана лучшей в мире.



Программы – архиваторы позволяют преобразовать информацию таким образом, при котором уменьшается избыточность в ее представлении и соответственно требуется меньший объем памяти для хранения.

Архивация (упаковка) – помещение исходных файлов в архивный файл в сжатом или несжатом виде.

Разархивация (разупаковка) – процесс восстановления файлов из архива в точно таком виде, какой они имели до загрузки в архив.

В настоящее время самыми распространенными программами–архиваторами являются программы WinRAR (рис. 3.5) и WinZip.

Особенностью современных программ-архиваторов является создание самораспаковывающихся архивов. Архивы такого рода создаются в виде exe – файлов.

Языки программирования (Инструментальное ПО) служат для написания новых программ.

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

Однако написание программ на языке ассемблера все же весьма трудоемко. Для этого программист должен очень хорошо знать систему команд соответствующего компьютера, а в ходе работы ему приходится бороться не столько со сложностями решаемой задачи, сколько с переводом необходимых действий в машинные команды. Поэтому и после появления ассемблеров многие исследователи продолжали попытки облегчить процесс программирования, «научив» компьютеры понимать более удобные для человека языки составления программ. Такие языки стали называть языками программирования высокого уровня, а языки ассемблера и другие машинно-ориентированные языки — языками низкого уровня. Программы на языках высокого уровня либо преобразуются в программы, состоящие из машинных команд (это делается с помощью специальных программ, называемых трансляторами или компиляторами), либо интерпретируются с помощью программ-интерпретаторов.

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

Первый коммерчески используемый язык программирования высокого уровня Фортран был разработан в 1958 году в фирме IBM под руководством Джона Бэкуса. Этот язык был предназначен, прежде всего, для научных вычислений и он (в усовершенствованном варианте) до сих пор широко используется в данной области. Для других применений было разработано множество различных языков высокого уровня, но широкое распространение получили лишь немногие из них, в частности Си и Си++, Паскаль, Бейсик, Лого, Форт, Лисп, Пролог, в последнее время — Java, и др.

Краткая история и классификация языков программирования

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

Для того, чтобы облегчить общение человека с ЭВМ, были созданы языки программирования типа Ассемблер. Переменные величины стали изображаться символическими именами. Числовые коды операций заменились на мнемонические обозначения, которые легче запомнить. Язык программирования приблизился к человеческому языку, и отдалился от языка машинных команд.

Один из первых языков программирования – Фортран (Formula Translation) был создан в середине 50-х годов. Благодаря своей простоте и тому, что на этом языке накоплены большие библиотеки программ Фортран, и в наши дни он остается одним из самых распространенных. Он используется для инженерных и научных расчетов, для решения задач физики и других наук с развитым математическим аппаратом.

Для решения экономических задач был создан язык программирования - Кобол.

Расширение областей применения ЭВМ влечет за собой создание языков, ориентированных на новые сферы применения: Снобол – алгоритмический язык для обработки текстовой информации. Лисп - алгоритмический язык для обработки символов. Лисп находит широкое применение в исследованиях по созданию искусственного интеллекта.

В 1968 году был объявлен конкурс на лучший язык программирования для обучения студентов. Победителем стал язык Алгол-68, но широкого распространения не получил. Для этого конкурса Никлаус Вирт создал язык Паскаль, достаточно простой, удобный, с наличием мощных средств структурирования данных. Хотя Паскаль был разработан как язык для обучения программированию, он впоследствии получил широкое развитие и в настоящее время считается одним из самых используемых языков. Для обучения младших школьников Самуэлем Пайпертом был разработан язык Лого. Он отличается простотой и богатыми возможностями.

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

Необходимость разработки больших программ, управляющих работой ЭВМ, потребовала создания специального языка программирования СИ в начале 70-х г. Он является одним из универсальных языков программирования. В отличие от Паскаля, в нем заложены возможности непосредственного обращения к некоторым машинным командам и к определенным участкам памяти компьютера. Си широко используется как инструментальный язык для разработки операционных систем, трансляторов, баз данных и других системных и прикладных программ. Си – это язык программирования общего назначения, хорошо известный своей эффективностью, экономичностью, и переносимостью. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке Ассемблера. При этом они имеют лучшую наглядность, и их более просто сопровождать. Си сочетает эффективность и мощность в относительно малом по размеру языке.

Появление функционального программирования привело к созданию языка Пролог. Этот язык программирования разрабатывался для задач анализа и понимания естественных языков на основе языка формальной логики и методов автоматического доказательства теорем.

В 80-х годах 20 века был создан язык Ада. Этот язык в дополнение к классическим свойствам, обеспечивает программирование задач реального времени и моделирования параллельного решения задач.

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

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

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

К языкам сверхвысокого уровня можно отнести лишь Алгол-68 и APL. Повышение уровня этих языков произошло за счет введения сверхмощных операций и операторов.

Другая классификация делит языки на вычислительные и языки символьной обработки. К первому типу относят Фортран, Паскаль, Алгол, Бейсик, Си, ко второму типу - Лисп, Пролог, Снобол и др.

В современной информатике можно выделить два основных направления развития языков программирования: процедурное и непроцедурное.

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

Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал.



следующая страница >>