Планирование уроков на учебный год (ФГОС)



Урок 9
§8. Программное обеспечение компьютера






Содержание урока:

8.1. Структура программного обеспечения

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

8.3. Системы программирования

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

САМОЕ ГЛАВНОЕ. Вопросы и задания

Материалы к уроку


liniya

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


Системное программное обеспечение включает в себя операционную систему и сервисные программы.

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

В настоящее время наиболее распространёнными ОС для персональных компьютеров являются Windows, Mac OS и Linux, для смартфонов, планшетов и других мобильных устройств — Android, iOS, Windows Phone.

Рассмотрим основные функции, выполняемые ОС современного компьютера.

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

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

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

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

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

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

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

Многие программы сжатия данных построены на основе алгоритма Хаффмана, состоящего из двух этапов. На первом этапе читаются все входные данные и подсчитываются частоты встречаемости всех символов. Затем по этим данным строится дерево кодирования Хаффмана, а по нему — коды символов. На втором этапе входные данные читаются ещё раз, при этом генерируется выходной массив данных.

Попробуем сжать с помощью алгоритма Хаффмана фразу:

НА_ДВОРЕ_ТРАВА,_НА_ТРАВЕ_ДРОВА

Подсчитать частоты встречаемости символов достаточно просто:

Алгоритм построения дерева Хаффмана следующий.

1. Считаем частоты встречаемости символов рассматриваемой фразы вершинами будущего графа (дерева). Выписываем их вертикально в ряд.

2. Выбираем две вершины с наименьшими весами (они соответствуют символам с наименьшим количеством повторений). Объединяем эти вершины — создаём новую вершину, от которой проводим рёбра к выбранным вершинам с наименьшими весами, а вес новой вершины задаём равным сумме их весов. Расставляем на рёбрах графа числа 0 и 1: на верхнем ребре — 0, а на нижнем — 1. Чтобы выбранные вершины больше не просматривались, стираем их веса.

3. Продолжаем выполнять объединение вершин, каждый раз выбирая пару с наименьшими весами, до тех пор, пока не останется одна вершина — корень дерева. Заметим, что вес этой вершины будет равен длине сжимаемого массива.

Процесс построения дерева Хаффмана для нашего примера изображён на рисунке 2.9.

Рис. 2.9. Построение дерева Хаффмана


Теперь для определения кода каждой конкретной буквы необходимо просто пройти от корня до этой вершины, выписывая 0 и 1, встречающиеся на маршруте. В нашем примере символы получат следующие коды:

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

011011000011100110000101001000101001011001111011000

01101100010100101100110010000111010100000111

Исходный текст состоит из 30 символов, т. е. его длина в несжатом виде будет равна 30 байт. Код сжатого текста будет занимать 95 бит или 12 байт. Получаем коэффициент сжатия, равный 30/12 = 2,5.

Cкачать материалы урока






Наверх