832.48K
Category: softwaresoftware

Виды программного обеспечения. Технология работы с операционными системами

1.

Виды программного обеспечения. Технология работы с
операционными системами
Виды программного обеспечения
Программное обеспечение (ПО) - составляющая часть компьютера, комплекс программ,
необходимых для работы с информацией. Самое распространенное ПО - операционная
система Windows.
Программное обеспечение (ПО) - составляющая часть компьютера, комплекс программ,
необходимых для работы с информацией. Самое распространенное ПО - операционная
система Windows.
Программное обеспечение управляет аппаратной частью ПК, которая производит
физические операции. Удобство и универсальность ПО заключается в его способности
модифицироваться.
Программа, способная запоминать информацию,
сделала
вычислительные машины гибкими и легко адаптируемыми к разным условиям работы.
Различают 3 основных вида программного обеспечения:
1. системное
2. прикладное
3. инструментарий технологии программирования (инструментальные средства)

2.

3.

По способу распространения и использования выделяют 6 типов:
1. Free- распространяются бесплатно, доступны для скачивания, копирования;
2. Adware- бесплатные, содержащие платные дополнительные функции;
3. Shareware- бесплатные для индивидуального пользования, доступ компании
разрешается за определенную оплату;
4. Trial- скрипты, позволяющие бесплатно производить действия в течение
установленного периода (10-30 суток), для дальнейшего доступа необходима покупка
лицензионного ключа;
5. Demo- пробная версия программы;
6. Закрытое ПО представляет собой частную собственность разработчиков, доступ к
которой возможен лишь при определенных условиях, выставленных автором.
Установка программного обеспечения, инсталляция — это процесс установки
программного обеспечения на компьютер конечного пользователя.
Выполняется особой программой (пакетным менеджером), присутствующей в
операционной системе (например, RPM, APT или dpkg в Linux, Установщик Windows в
Microsoft Windows), или же входящим в состав самого программного обеспечения
средством установки.

4.

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

5.

Системное программное обеспечение
Системное ПО (System Software) - группы программ и их систем, которые обеспечивают
работу компьютера.
Системное программное обеспечение предназначается для:
1.
2.
3.
4.
5.
формирования условий для функционирования других программных групп;
обеспечения автоматизации разработки нового софта;
регулирования качества работы компьютера и вычислительной системы;
диагностирования и профилактики компьютерной аппаратуры;
произведения
дополнительных
технологических
процессов
(архивирование,
восстановление компонентов программ и файлов баз данных, копирование).
Продукты данного вида ПО являются неотъемлемой частью компьютера и рассчитаны на
опытных пользователей - оператора, администратора сети или системного программиста.
Системное программное обеспечение состоит из системных программ управляющих и
обрабатывающих.

6.

Управляющие системные программы
механизмов системы и выполняют функции:
обеспечивают
корректную
работу
всех
1. Руководство вычислительными комплексами.
2. Взаимодействие с внутренними данными операционной системы.
В зависимости от местонахождения управляющие программные средства делятся на:
1. резидентные составляют ядро ОС и расположены в основной памяти;
2. транзитные загружаются в память компьютера только перед исполнением.
Компании-разработчики предоставляют управляющие системные программы в виде
драйверов специальных устройств и инсталляционных пакетов ОС.
Обрабатывающие системные программы представляют собой дистрибутивные пакеты,
в состав которых входит ПО (приложения, программы инсталляции).

7.

По другой классификации в структуру ПО включают:
1. Базовое - минимальный комплекс программ, который обеспечивает работу компьютера.
К ним относят:
1. ОС и входящие в их состав драйверы;
2. операционные оболочки, при помощи которых ОС может взаимодействовать с
пользователем (интерфейс);
3. системы, управляющие файлами.
Операционная система - комплекс программных средств, который обеспечивает
регулирование работы аппаратной части компьютера и прикладных программ, их
кооперацию и взаимодействие с пользователем.
Операционная система выполняет роль интерфейса между компьютерной аппаратурой и
задачами пользователя. Её задача заключается в организации корректных вычислений и
обеспечении эффективности использования вычислительных ресурсов.
Системы управления файлами служат для создания удобного доступа к файлам
(данным), используют логический доступ, указывая имя файла вместо определенных
физических адресов.

8.

2. Сервисное - софт, который дает возможность расширить функционал базового ПО и
обеспечивает удобство для пользователя. В зависимости от выполняемой функции среди
них выделяют:
1. драйверы специальных устройств, которые не входят в состав ОС;
2. программы, диагностирующие работоспособность компьютерной системы;
3. антивирусники, которые предназначены для защиты компьютера, обнаружения и
очистки вредоносных файлов;
4. программные средства, контролирующие процессы на дисках (сохранение файлов,
сжатие дисков, формирование копий, проверка состояния поверхности диска;
5. архиваторы, предназначенные для сжатия файлов с целью уменьшения их размеров;
6. программы, обслуживающие сеть.
Для обозначения сервисных программ часто используют понятие «утилиты».

9.

Инструментальное программное обеспечение
Инструментальное ПО (системы программирования) предназначено для использования
разработчиками в процессе проектирования и создания программ.
Элементами системы программирования являются:
1. Текстовые редакторы помогают создавать, редактировать и объединять тексты.
2. Транслятор преобразовывает алгоритмический язык программы в машинный
(двоичные коды), создавая при этом объектный модуль. Интерпретатор осуществляет
перевод построчно, не создавая объектный модуль.
3. Средства отладки (отладчик) обеспечивают пошаговое выполнение программ с
предоставлением данных о результатах исполнения.
4. Библиотеки подпрограмм.
ПО современного компьютера: составные части

10.

В состав программного обеспечения современного компьютера входят:
Операционная система (OS/2, Unix, Windows XP, Windows 7, Windows 8, Windows 8.1,
Windows 10 ).
Программные оболочки операционных систем:
1. Norton Commander (Symantec), FAR (File and Archive manageR).
2. Антивирусные программы (Avira Free Security Suite, Avast Free Antivirus, Kaspersky
Free, Panda Free Antivirus, 360 Total Security).
3. Программы-архиваторы (WinRAR, 7-Zip, IZArc, HaoZip, WinZip).
4. Программы для записи дисков (BurnAware Free, Nero 9 Lite, ImgBurn, CDBurnerXP,
DeepBurner Free, Ashampoo Burning Studio Free, Burn4Free).
5. Текстовые редакторы (MS Word, Word Perfect, Лексикон).
6. Табличные процессоры (MS Excel, Lotus 1-2-3, Quattro Pro).
7. Программы
для
создания
презентаций
(MS Power Point, Freelance Graphics, Harvard Graphics).
8. Графические редакторы (Сorel Draw, Adobe Photoshop).
9. Издательские системы (Page Maker, Venture Publisher).
10. Программы распознавания текстов (Fine Reader, Cunei Form).
11. Системы управления базами данных (MS Access, Oracle, MS SQL Server, Informix).
12. Пакеты бухгалтерского учета и контроля (1С: Бухгалтерия).

11.

Классификация прикладного программного обеспечения
Прикладное программное обеспечение или же, сокращенно - ППО существует в довольно
большом разнообразии и по этой причине не ограничивается только одной лишь
классификацией.
Существуют разновидности ППО:
1. Класс общего назначения
2. Класс специального назначения
3. Класс профессионального назначения

12.

Класс общего назначения
К этому классу относят различные вид программ, имеющих разный функционал носящий
общий характер. Они чаще всего наибольшим количеством обычных пользователей.
Среди них:
1. Текстовые редакторы, используемые с целью создавать и редактировать текст.
Представлены "Блокнотом", TextPad и другими программами;
2. Текстовые процессоры — дают возможность применять к создаваемому тексту тот или
иной тип оформления, например — изменение стилей, размеров кегля, заголовки,
абзацы. Доступно создание простых таблиц. Примерами являются Microsoft Word,
WordPad;
3. Электронные таблицы — дают возможность работать с информацией в табличном
виде. Примером может быть MS Excel. Преимущество их над текстовыми редакторами
в том, что информация в табличных ячейках зависима в функциональном плане, иными
словами — если изменить информацию в одних ячейках, то изменится информация и в
связанных друг с другом других.
4. Графические редакторы применяются с целью создания, а также последующей
редактуры созданных или имеющихся ранее изображений. Среди них как растровые
редакторы (MS Paint, Adobe Photoshop), так программы векторных форматов,
применяемые векторных форматов изображений и фото (Corel, SK1), редакторы
формата 3D (3D Max, Maya);

13.

5. Программы, позволяющие просматривать файлы в разных форматах, например ACDSee
применяются для картинок, а для отображения просматриваемых интернет-страниц в
формате HTML применяются интернет-браузеры (это могут быть Mozilla Firefox, Yandex
Browser, Opera), медиаплееры дают возможность просматривать и прослушивать
медиаконтент;
6. Программное обеспечение, представляющее собой различного типа варианты систем
управления базами данных, самыми распространенными из которых являются настольные
простые базы (MS Access или, например, Paradox).
7. Переводчики представляют собой автоматизированные словари в электронном формате,
применяющиеся для функций трансляции на другие языки отдельных слов, словоформ и
словосочетаний (ABBYY Lingvo, "ПРОМТ")

14.

Класс специального назначения
Под ним понимается определенная совокупность различных программ, применяемых с
целью решения ряда специальных задач разных областей применения.
Этот класс включает в себя:
1. Экспертные системы — они представляют собой логическое продолжение систем
управления базами данных и применяются для осуществления анализа имеющихся
данных, хранимых в этих базах. Такие экспертные системы делают полный анализ
данных оснащаются различными функциями самообучения. (Пример: MYCIN, CODES,
ACES, ACE)
2. Издательские системы, применяемые для процесса верстки различной полиграфии.
Они применяются в работе сотрудниками издательств, редакций, рекламной сферы.
(Это такое ПО, как QuarkXPress, MS Publisher, Adobe InDesign)
3. Разные виды энциклопедий, учебников и словарей в электронном виде, а также
электронных справочников, используемых учащимися и преподавателями. Среди
представителей этого вида ППО - “Энциклопедия современной техники»,
КонсультантПлюс, Платформа "ГАРАНТ", «Музыкальный словарь» и прочее.
4. СУБД серверного назначения применяются аналитиками и администраторами,
работающими с базами данных. Это такие программы, как "ЛИНТЕР", Oracle Database,
а также продукт от Microsoft - MS SQL

15.

5. Разные виды видеоредакторов, среди которых есть как профессионального типа
(Adobe Premiere, Vegas Pro), так и их любительские варианты в лице Windows Movie Maker,
Pinnacle Studio;
6. Различные виды аудиоредакторов также бывают как профессионального типа —
предназначаются для записывания аудиофайлов, создания специальных заставок и
фонограмм, озвучивания и дублирования переводов фильмов (Adobe Audition, Sony Sound
Forge, Frutty) и домашние, используемые в процессе записывания любительских
аудиофайлов. Среди них такое простое и понятное ПО, как CyberPower Audio Editing Lab,
Akram Audio Editor и т.д.
7. Редакторы нот применяются в музыкальных издательствах, училищах и ВУЗах,
композиторами, концертмейстерами, дирижерами чтобы автоматизированно создавать и,
при необходимости, редактировать электронные ноты (Finale, Encore, Cakewalk Overture,
Sibelius, MuseScore).

16.

Класс профессионального назначения
Данный тип прикладного программного обеспечения предназначен решать ряд еще более
специализированного круга вопросов профессионального характера, которые применяются
в самых разных областях.
Он является отдельной группой ПО и к этому классу стоит отнести как программы,
предназначенные к использованию работниками бухгалтерии, так и представляющие собой
автоматизированные системы для управления компанией.
В целом, ППО проф назначения классифицируются так:
1. Системы автоматизированного проектирования (среди них - "САПР", CAD/CAM/CAE)
принято применять при автоматизации создания различных чертежей, конструкторских
документов. Применяются они различными конструкторами, заведующими
производством, механизаторами, архитекторами. Среди них - "Компас", AutoCAD,
ZwCAD, и другие
2. Геоинформационные системы как универсального типа, так и специализированного
помогают генерировать на компьютере, а также редактировать, анализировать
электронного формата карты, осуществлять оперативное обнаружение географических
объектов на данных картах, например, информация о рельефе, о постройках, климате.
Они применяются географами, гидрометеорологами, геологами и другими
специалистами. Среди этого ППО - MapInfo, система "Полигон", "ГИС Метео"

17.

3.
Системы
обеспечения
делопроизводства
применяются
секретарями,
делопроизводителями, референтами для автоматизации и для максимально эффективного
обеспечения процесса документооборота. Это такие программы как “Дело”, “Золушка”,
“Гран-Док” другие
4. Системы для бухгалтера применяют с целью автоматизации бухгалтерского,
финансового или налогового учета и аудита (различные бухгалтерские продукты от 1С,
справочник "Главбух")
5. Финансово-аналитические системы созданы для автоматизированного процесса учета
финансовой и хозяйственной стороны компании. Примером являются “Альт-Финансы”,
"ИНЭК-Аналитик" и прочие.

18.

ОСНОВНЫЕ ФУНКЦИИ И ВИДЫ ОПЕРАЦИОННЫХ СИСТЕМ
Для решения любой задачи на компьютере необходимы, по крайней мере, два вида
ресурсов:
1. Оперативная память для хранения программы и данных
2. Процессор для исполнения команд
Операционная система освобождает пользователя от долгой и кропотливой работы,
связанной с распределением ресурсов компьютера, управлением устройствами,
организацией выполнения программ, выполняя эти действия автоматически.
Основными функциями ОС являются следующие:
1.
2.
3.
4.
5.
6.
Запуск программ и контроль за их прохождением;
Управление оперативной памятью;
Управление устройствами ввода и вывода;
Управление внешней памятью;
Управление взаимодействием одновременно работающих задач;
Обработка вводимых команд для обеспечения взаимодействия с пользователем.
Операционная система обычно состоит из управляющей части и набора системных
программ (обслуживающая часть).

19.

Управляющая часть содержится в нескольких файлах.
Ее функциями являются:
1.
2.
3.
4.
Распределение вычислительных ресурсов
Запуск и контроль выполнения программ
Управление стандартными внешними устройствами
Управление файлами
Для обеспечения работы с дополнительными внешними устройствами в состав
управляющей части операционной системы входят драйверы.
Для нормальной работы компьютера определенная часть операционной системы,
называемая резидентной, должна постоянно находиться в основной памяти, сокращая,
таким образом, объем памяти, доступный для прикладных программ.
Другие части системы автоматически загружаются в память из внешних устройств по мере
необходимости. После выполнения требуемых действий занимаемые ими области памяти
освобождаются.

20.

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

21.

Что такое компьютерный вирус
Компьютерный вирус это программа, способная создавать свои копии, внедрять их в
различные объекты или ресурсы компьютерных систем, сетей и производить
определенные действия без ведома пользователя.
Программа, внутри которой находится вирус, называется зараженной (инфицированной).
Когда инфицированная программа начинает работу, то сначала управление получает вирус.
Вирус заражает другие программы, а также выполняет запланированные деструктивные
действия. Для маскировки вирус активизируется не всегда, а лишь при выполнении
определенных условий (время, действие).
После того, как вирус выполнит нужные ему действия, он передает управление той
программе, в которой он находится.

22.

Какой вред наносят вирусы
Различные вирусы выполняют различные деструктивные действия:
выводят на экран мешающие текстовые сообщения;
создают звуковые эффекты;
создают видео эффекты;
замедляют работу ЭВМ, постепенно уменьшают объем оперативной памяти;
увеличивают износ оборудования;
вызывают отказ отдельных устройств, зависание или перезагрузку компьютера и крах
работы всей ЭВМ;
7. имитируют повторяющиеся ошибки работы операционной системы;
8. уничтожают FAT-таблицу, форматируют жесткий диск, стирают BIOS, стирают или
изменяют установки в CMOS, стирают секторы на диске, уничтожают или искажают
данные, стирают антивирусные программы;
9. осуществляют научный, технический, промышленный и финансовый шпионаж;
10. выводят из строя системы защиты информации, дают злоумышленникам тайный
доступ к вычислительной машине;
11. делают незаконные отчисления с каждой финансовой операции и т.д.;
1.
2.
3.
4.
5.
6.

23.

Что показывает на вирусное заражение
Основные симптомы вирусного заражения ЭВМ следующие:
1.
2.
3.
4.
5.
6.
замедление работы некоторых программ;
увеличение размеров файлов;
появление не существовавших ранее файлов;
уменьшение объема доступной оперативной памяти;
появление сбоев в работе операционной системы;
запись информации на диски в моменты, когда этого не должно происходить.

24.

Какие бывают вирусы
Рассмотрим основные виды вирусов. Существует большое число различных
классификаций вирусов:
1. По среде обитания:
• сетевые вирусы, распространяемые различными компьютерными сетями;
• файловые - инфицируют исполняемые файлы, имеющие расширение exe и com. К
этому же классу относятся и макровирусы, написанные с помощью макрокоманд.
Они заражают неисполняемые файлы (в Word, Excel);
• загрузочные - внедряются в загрузочный сектор диска или в сектор, содержащий
программу загрузки системного диска. Некоторые вирусы записываются в
свободные секторы диска, помечая их в FAT-таблице как плохие;
• загрузочно-файловые - интегрируют черты последних двух групп;
2. По способу заражения (активизации):
• резидентный вирус логически можно разделить на две части инсталятор и резидентный модуль. При запуске инфицированной программы
управление получает инсталятор, который выпоняет следующие действия:
o размещает резидентный модуль вируса в ОЗУ и выполняет операции,
необходимые для того, чтобы последний хранился в ней постоянно;
o подменяет некоторые обработчики прерываний, чтобы резидентный модуль
мог получать управление при возникновении определенных событий.
• нерезидентный вирусы не заражают оперативную память и проявляют свою
активность лишь однократно при запуске инфицированной программы;

25.

3. По степени опасности:
• не опасные - звуковые и видеоэффекты;
• опасные - уничтожают часть файлов на диске;
• очень опасные - самостоятельно форматируют жесткий диск;

26.

4. По особенностям алгоритма:
• компаньон-вирусы не изменяют файлы. Алгоритм их работы состоит в том, что
они создают для exe-файлов новые файлы-спутники (дубликаты), имеющие то же
имя, но с расширением com. (com-файл обнаруживается первым, а затем вирус
запускает exe-файл);
• паразитические - при распространении своих копий обязательно изменяют
содержимое дисковых секторов или файлов (все вирусы кроме компаньонов и
червей);
• черви (репликаторы) - аналогично компаньонам не изменяют файлы и секторы
диска. Они проникают в компьютер по сети, вычисляют сетевые адреса других
компьютеров и рассылают по этих адресам свои копии. Черви уменьшают
пропускную способность сети, замедляют работу серверов;
• невидимки (стелс) - используют набор средств для маскировки своего
присутствия в ЭВМ. Их трудно обнаружить, т.к. они перехватывают обращения ОС
к пораженным файлам или секторам и подставляют незараженные участки файлов;
• полиморфики (призраки, мутанты) - шифруют собственное тело различными
способами. Их трудно обнаружить, т.к. их копии практически не содержат
полностью совпадающих участков кода;
• троянская программа - маскируется под полезную или интересную программу,
выполняя во время своего функционирования еще и разрушительную работу или
собирает на компьютере информацию, не подлежащую разглашению. В отличие от
вирусов, троянские программы не обладают свойством самовоспроизводства.

27.

5. По целостности:
• монолитные - программа представляет единый блок;
• распределенные - программа разделена на части. Эти части содержат инструкции,
которые указывают как собрать их воедино, чтобы воссоздать вирус.

28.

Что такое антивирусная программа
Антивирусное средство это программный продукт или устройство, выполняющее
одну, либо несколько из следующих функций:
1) защиту данных от разрушения;
2) обнаружение вирусов;
3) нейтрализацию вирусов.

29.

Различают следующие виды:
1. Программы-детекторы рассчитаны на обнаружение конкретных, заранее известных
программе вирусов и основаны на сравнении характерной последовательности байтов
(сигнатур), содержащихся в теле вируса, с байтами проверяемых программ.
2. Программы-дезинфекторы (фаги) не только находят зараженные файлы, но и лечат
их, удаляя из файла тело программы-вируса.
3. Программы-ревизоры анализируют текущее состояние файлов и системных областей
диска и сравнивают его с информацией, сохраненной ранее в одном из файлов
ревизора.
4. Программы-фильтры (мониторы) оповещают пользователя обо всех попытках какойлибо программы выполнить подозрительные действия. Фильтры контролируют
обновление программных файлов и системной области диска, форматирование диска,
резидентное размещение программ в ОЗУ.

30.

Как защитить компьютер от вирусов
Рассмотрим основные меры по защите ЭВМ от заражения вирусами:
1. Необходимо оснастить ЭВМ современными антивирусными программами и постоянно
обновлять их версии.
2. При работе в сети обязательно должна быть установлена программа-фильтр.
3. Перед считыванием с дискет информации, записанной на других ЭВМ, следует всегда
проверять эти дискеты на наличие вирусов.
4. При переносе файлов в архивированном виде необходимо их проверять сразу же после
разархивации.
5. При работе на других компьютерах необходимо защищать свои дискеты от записи.
6. Делать архивные копии ценной информации на других носителях.
7. Не оставлять дискету в дисководе при включении или перезагрузке ЭВМ, это может
привести к заражению загрузочными вирусами.
8. Получив электронное письмо, к которому приложен исполняемый файл, не следует
запускать этот файл без предварительной проверки.
9. Необходимо иметь аварийную загрузочную дискету, с которой можно будет
загрузиться, если система откажется сделать это обычным образом

31.

Технология работы с операционными системами
Есть несколько причин, почему программистам стоит знать, как работают операционные
системы.
Одна из них – чтобы понимать, как работают программы. Представьте: вы пишете код,
который кажется рабочим, но программа тормозит. Что делать? Можно попробовать
разобраться с ограничениями операционной системы, но вы ведь не умеете!
Если стремитесь построить карьеру программиста, стоит понять, как работают
операционные системы.
В нем рассказывается, как работают ОС: механизмы работы, параллельное
программирование (потоки и синхронизация), взаимодействие между процессами,
распределённые ОС.

32.

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

33.

Файловая система, планировщик и драйверы – всё это основные инструменты работы ОС.
Существует три ключевых элемента операционной системы:
1. Абстракции (процессы, потоки, файлы, сокеты, память).
2. Механизмы (создание, управление, открытие, запись, распределение).
3. Реализации (алгоритмы LRU, EDF).
Кроме того, есть два основных принципа проектирования операционных систем:
1. Максимальная гибкость: отделение механизмов от конкретных реализаций.
2. Ориентация на пользователей: на каких устройствах будет работать ОС, что нужно
пользователю, каковы требования к производительности.

34.

Процессы и управление
Процесс – не что иное, как исполнение программы. Так как программа записана в виде
последовательности действий в текстовый файл, процессом она становится только при
запуске.
Загруженная в память программа может быть условно разделена на четыре части:
1. Stack (куча): стек процесса содержит
временные данные, такие как параметры
метода, адрес возврата и локальные
переменные.
2. Heap : это динамически распределяемая
память процесса времени его выполнения.
3. Text (текст): хранит состояние регистров,
состояние программного счетчика, режим
работы
процессора,
незавершенные
операции ввода-вывода, информацию о
выполненных системных вызовах.
4. Data
(данные):
раздел
содержит
глобальные и статические переменные.
Когда процесс выполняется, он проходит через
разные
состояния.
Эти
этапы
могут
различаться в разных операционных системах.

35.

Общая картина выглядит так:
1. Start (старт): начальное состояние при создании процесса.
2. Ready (готовность): процесс ожидает исполнения на процессоре. В течение работы
процессор может переключаться между процессами, переводя одни в режим
готовности, другие – в режим исполнения.
3. Running (запуск): выполнение инструкций.
4. Wait (ожидание): процесс переходит в состояние ожидания. Например, ждёт ввода
данных или получения доступа к файлу.
5. Terminated (прекращено): как только процесс завершится, он перейдёт в это
состояние и будет ожидать удаления.

36.

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

37.

1.
2.
3.
4.
5.
6.
7.
8.
9.
Process ID (идентификатор процесса): идентификатор каждого из процессов в ОС.
State (состояние): текущее состояние процесса.
Privileges (привелегии): разрешения доступа к системным ресурсам.
Pointer (указатель): указатель на родительский процесс.
Priority (приоретет): приоритет процесса и другая информация, которая требуется для
планирования процесса.
Program Counter (счетчик команд): указатель на адрес следующей команды, которая
должна быть выполнена.
CPU registers (регистры ЦП): регистры процессора, необходимые для состояния
исполнения.
Accounting Information (учетная информация): уровень нагрузки на процессор,
статистика и другие данные.
I/O Information (информация ввода/вывода): список ресурсов, использующих чтение
и запись.

38.

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

39.

Чем хороши потоки:
1.
2.
3.
4.
Они минимизируют время переключения контекста (процессора).
Их использование обеспечивает параллелизм процесса.
Они эффективно общаются между собой.
Потоки позволяют использовать многопроцессорные архитектуры в большем масштабе.
Потоки имеют два уровня реализации:
1. Пользовательский уровень, то есть потоки, управляемые приложениями;
2. Уровень ядра, то есть потоки, управляемые ядром операционной системы.

40.

В первом случае ядро ​управления потоками ничего не знает о существовании потоков
вообще.
А библиотека потоков просто содержит код для создания и уничтожения потоков, а также
передачи сообщений и данных между ними для планирования выполнения потоков и
сохранения (восстановления) контекстов потоков.

41.

Во втором случае ядро выполняет создание потоков, а ещё планирование и управление в
пространстве ядра. Стоит заметить, что потоки ядра обычно медленнее, чем потоки
пользователей.

42.

Планирование
Планировщик – это часть менеджера процессов, которая ответственна за переключение
между процессами и выбор очереди по какой-либо стратегии.
ОС поддерживает все блоки управления процессом (PCB) в очередях планирования
процесса:
1. Очередь задач (job queue) поддерживает все процессы в системе.
2. Очередь ожидания (ready queue) хранит информацию обо всех процессах, находящихся
в основной памяти в состоянии ожидания. В эту очередь попадают и новые процессы.
3. Очереди из устройств (device queue) – это процессы, заблокированные из-за
недоступности устройств ввода-вывода.

43.

44.

ОС может использовать разные методы реализации для управления очередями (FIFO,
Round Robin, Priority).
Планировщик ОС определяет, когда и как перемещать процессы между готовыми и
запущенными очередями (могут иметь только одну запись на ядро ​процессора в системе).
На приведенной выше диаграмме он был объединен с процессором.
Модели состояния делятся на активные и неактивные:
1. Активные: при создании нового процесса он переходит в класс активных.
2. Неактивные: процессы, которые не выполняются, а ждут завершения других
процессов.
Каждая запись в очереди является указателем на конкретный процесс. Очередь реализуется
с использованием связанного списка. Использование диспетчера заключается в
следующем: когда процесс прерывается, то переносится в очередь ожидания. Если процесс
завершен или отменен – он отменяется вовсе.

45.

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

46.

Управление памятью
Ещё одна важная часть – та, что отвечает за все операции по управлению первичной
памятью.
Существует менеджер памяти, который обрабатывает все запросы на получение памяти и
высвобождение. Он же следит за каждым участком памяти, независимо от того, занят он
или свободен. И он же решает, какой процесс и когда получит этот ресурс.

47.

48.

Адресное пространство процесса – набор логических адресов, к которым программа
обращается в коде. Например, если используется 32-битная адресация, то допустимые
значения варьируются от 0 до 0x7fffffff, то есть 2 Гб виртуальной памяти.
Операционная система заботится о том, чтобы сопоставить логические адреса с
физическими во время выделения памяти программе.
Нужно также знать, что существует три типа адресов, используемых в программе до и
после выделения памяти:
1. Символьные адреса: или по-другому адреса, используемые в исходном коде. Имена
переменных, константы и метки инструкций являются основными элементами
символического адресного пространства.
2. Относительные адреса: компилятор преобразует символические адреса в
относительные адреса.
3. Физические адреса: загрузчик генерирует эти адреса в момент загрузки программы в
основную память.

49.

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

50.

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

51.

Метод использования общей памяти
Допустим, есть два процесса: исполнитель (производитель) и потребитель. Один
производит некоторый товар, а второй его потребляет. Эти два процесса имеют общее
пространство или ячейку памяти, известную как «буфер». Там хранится элемент,
созданный исполнителем, оттуда же потребитель получает этот элемент.
Однако у этих версий есть как минимум две значимые проблемы:
1. Первая известна как проблема безграничного буфера (исполнитель может
продолжать создавать элементы без ограничений на размер буфера)
2. Вторая заключается в том, что исполнитель, заполнив буфер, переходит в режим
ожидания.

52.

В задаче с ограниченным буфером у исполнителя и потребителя будет общая память. Если
общее количество произведенных товаров равно размеру буфера, то исполнитель будет
ждать их потребления.
Аналогично потребитель сначала проверит наличие товара, и если ни один элемент не
будет доступен, придётся ждать его освобождения.

53.

Метод анализа сообщений
С помощью этого метода процессы взаимодействуют друг с другом без использования
общей памяти. Допустим, есть два процесса, p1 и p2, которые хотят взаимодействовать
друг с другом.
Они работают следующим образом:
1. Устанавливается связь (если её ещё не существует).
2. Начинается обмен сообщениями с помощью базовых примитивов. Нам нужно как
минимум два примитива – отправить (сообщение, пункт назначения) или получить
(сообщение).

54.

55.

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

56.

Управление вводом и выводом
Одной из важнейших задач операционной системы является управление различными
устройствами ввода и вывода вроде мыши, клавиатуры, дисководов, etc.
Система ввода и вывода принимает запрос приложения на ввод или вывод данных, а затем
отправляет его на соответствующее физическое устройство. После возвращает
приложению полученный ответ.
Устройства ввода и вывода можно разделить на две категории:
1. Блочные: то есть устройства, с которыми драйверы связываются, отправляя целые
блоки данных. Например, жесткие диски, USB-камеры, Disk-On-Key.
2. Символьные: те устройства, с которыми драйвер связывается, отправляя и получая
одиночные символы (байты или октеты). Например, последовательные порты,
параллельные порты, звуковые карты и так далее.

57.

ЦПУ должен иметь способ передачи информации на устройство ввода-вывода и обратно.
И есть три способа сделать это:
1. Специальные инструкции
Особые, неуниверсальные инструкции процессора, внедренные специально для контроля
устройств ввода-вывода. Они позволяют отправлять данные на устройство и считывать их
оттуда.
1. Входы и выходы с отображением памяти
Когда используется ввод-вывод с отображением памяти, одно и то же адресное
пространство разделяется памятью и устройствами ввода-вывода. Устройство
подключается непосредственно к ячейкам памяти так, чтобы можно было передавать блок
данных без применения ЦПУ.

58.

3. Прямой доступ к памяти (DMA)
Медленные устройства, такие как клавиатуры, генерируют прерывания ЦПУ после
передачи каждого байта. Если бы быстрые устройства работали похожим образом, то ОС
бы тратила большую часть времени впустую, на обработку этих прерываний. Поэтому для
снижения нагрузки обычно используется прямой доступ к памяти (DMA).
Это означает, что ЦПУ предоставляет модулю ввода и вывода полномочия для чтения или
записи в память. Сам модуль управляет обменом данными между основной памятью и
устройством ввода-вывода. ЦПУ участвует в начале и конце передачи, а прерывается
только после полной передачи блока.
Организация прямого доступа к памяти требует специального оборудования, называемого
контроллером DMA (DMAC). Он управляет передачей данных и доступом к системной
шине. Контроллеры запрограммированы с указателями источника и места назначения,
счетчиками для отслеживания количества переданных байтов и прочими настройками.

59.

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

60.

Типы виртуализации
1. Данные: позволяет компаниям обеспечивать вычислительные мощности для
объединения данных из нескольких источников, размещения новых источников и
преобразования данных в соответствии с потребностями пользователя.
2. Рабочий стол: легко спутать с виртуализацией операционной системы. Виртуализация
рабочего стола позволяет центральному администратору одновременно развёртывать
смоделированные среды на сотнях физических машин. Виртуальные системы
позволяют администраторам выполнять массовые конфигурации, обновления и
проверки безопасности на всех устройствах сразу.
3. Серверы: программная имитация с помощью специального ПО аппаратного
обеспечения компьютера: процессор, память, жесткий диск, и т. д. На такой
виртуальный компьютер можно установить операционную систему, и она будет на нем
работать точно так же, как и на простом, «железном» компьютере. Самое интересное
достоинство этой технологии – это возможность запуска нескольких виртуальных
компьютеров внутри одного физического. При этом, все виртуальные компьютеры
могут работать независимо друг от друга.
4.
Сервер – компьютер, спроектированный под выполнение большого объема специфических
задач. Виртуализация сервера позволит ему выполнять больше этих специальных задач, а
также разделить функционал на разные компоненты.

61.

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

62.

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

63.

Бывает так, что за одними и теми же данными одновременно обращаются сразу несколько
пользователей. Для этих целей сервер должен иметь механизм организации обновлений,
чтобы клиент всегда получал самую актуальную версию данных. Распределенные
файловые системы обычно используют репликацию файлов или баз данных для защиты от
сбоев.
Сетевая файловая система Sun Microsystems (NFS), Novell NetWare, распределенная
файловая система Microsoft и DFS от IBM являются примерами распределенных файловых
систем.

64.

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

65.

Преимущества распределенной общей памяти:
1. Программистам можно не беспокоиться о передаче памяти между машинами, потому
что перемещение данных можно скрыть;
2. Можно передавать сложные структуры по ссылке, упрощая разработку алгоритмов для
распределенных приложений;
3. Это дешевле, чем многопроцессорные системы и может быть реализовано с
использованием обычного оборудования;
4. Можно использовать неограниченное количество узлов;
5. Программы, написанные для мультипроцессоров с общей памятью, могут быть
запущены в системах DSM.

66.

Облачные вычисления
Всё больше процессов переходит в облако. По сути, облачные вычисления – это своего рода
аутсорсинг компьютерных программ. Используя облачные вычисления, пользователи могут
получать доступ к программному обеспечению и приложениям из любого места. Это
означает, что им не нужно беспокоиться о таких вещах, как хранение данных и питание
компьютера.
Традиционные бизнес-приложения всегда были очень сложными, дорогими в
обслуживании – нужна команда экспертов для установки, настройки, тестирования,
запуска, защиты и обновления. Это одна из причин, почему стартапы проигрывают
корпорациям.
Используя облачные вычисления, вы передаёте ответственность за аппаратное и
программное обеспечение опытным специалистам, таким как Salesforce и AWS. Вы платите
только за то, что вам нужно, апгрейд платежного плана производится автоматически по
мере ваших потребностей, а масштабирование системы протекает без особых сложностей.
Приложения на базе облачных вычислений могут работать эффективнее, дольше и стоить
дешевле. Уже сейчас компании используют облачные приложения для множества
приложений, таких как управление отношениями с клиентами (CRM), HR, учет и так далее.
English     Русский Rules