
- •2. Операционная система
- •3. Системы программирования
- •4. Таблица идентификаторов.
- •5. Кэш адресация
- •6. Формальные языки и грамматики.
- •7. Понятие языка
- •8. Запись грамматики в форме Бэкуса-Наура.
- •9. Запись правил грамматики с использованием метасимволов.
- •10. Запись правил грамматики в графическом виде
- •11. Классификация грамматик
- •12. Классификация языков.
- •14. Цепочка вывода
- •15. Дерево вывода
- •16. Правила задающие неоднозначность грамматик
- •17. Распознаватель
- •18. Задача разбора
- •19. Этапы семантического анализа
- •20. Распознаватели регулярных языков.
- •21. Граф переходов конечного автомата
- •22. Способы задания регулярных языков
- •23. Назначение лексических анализаторов
- •24. Контекстно-свободные языки и грамматики
- •25. Распознаватели кс языков
- •26. Распознаватели кс языков с возвратом.
- •27. Нисходящий распознаватель с возвратом
- •28. Принципы работы восходящего распознавателя
- •29. Распознаватели кс языков без возврата
- •30. Распознаватель на основе грамматик
- •31. Свойства кс языков
- •32. Назначение синтаксических анализаторов.
- •33. Дерево операций.
- •35. Общие принципы оптимизации кода.
1. СПО
СПО — это программы и комплексы программ, являющиеся общими для всех, кто совместно использует технические средства компьютера и применяемые как для автоматизации и разработки новых программ, так и для организации программ существующих.
Жизненный цикл СПО включает:
1. разработка (основная):
1) определение требований;
2) проектирование (основная):
а) разделение программ на части;
б) определение формы организации данных;
в) определение возможности модификаций (в процессе
разработки и эксплуатации);
г) обеспечение надежности;
3) фаза компоновки;
4) тестирование;
5) документирование
2. применение;
3. сопровождение (продолж-ся разработки):
1) включение новых функций;
2) модификация функций;
3) модификация оборудования;
4) исправление ошибок
Классификация СПО
1. Операционные системы (ОС).
2. Системы программирования.
3. Утилиты.
2. Операционная система
ОС - набор программ, которые обеспечивают возможности использования аппаратуры компьютера.
ОС — администратор ресурсов.
ОС делятся: 1) по назначению: а) общего; б) специального;
2) по количеству пользователей одновременно обслуживаемых системой:
а) однопользовательские; б) многопользовательские;
3) по числу процессов, которые могут одновременно выполняться под управлением ОС: а) однозадачные б) многозадачные;
4) по типу средств вычислительной техники, для управления ресурсами которых предназначены: а) однопроцессорные; б) многопроцессорные;
в) сетевые; г) распределительные;
5) по архитектурному принципу: а) микроядерные; б) монолитные
Функции ОС:
1) определяет интерфейс пользователя;
2) принимает от пользователя задания и их обрабатывает;
3) принимает и использует программные запросы на запуск, приостановку и остановку других программ;
4) осуществляет загрузку в операционную память подлежащих использованию программ;
5) осуществляет инициализацию программ;
6) идентифицирует все программы и данные;
7) обеспечивает работу системы управления файлами;
8) обеспечивает работу многозадачного режима выполнения программ;
9) осуществляет распределение памяти и организацию виртуальной памяти;
10) осуществляет планирование и диспетчеризацию задач;
11) организует механизм обмена сообщениями и данными;
12) обеспечивает защиту одной программы от влияния другой и сохранность данных;
13) осуществляет восстановление и информации и вычислительного процесса;
14) обеспечивает работу системы программирования
Требования, предъявляемые к ОС:
1. надежность,
2. защита,
3. эффективность,
4. предсказуемость,
5. удобство
Структура ОС:
Ур. |
Имя |
Объекты |
Примеры операций |
1 |
Электронные схемы |
Регистры, вентили, шины и т.д. |
Очистка регистра, чтение содержимого ячейки памяти |
2 |
Системы команд |
Стек для вычислений, микропроцессорный интерпретатор, массивы |
Загрузка, запись, переход, сложение, вычитание |
3 |
Подпрограммы |
Подпрограммные сегменты и стек вызовов |
Обращение к сегменту, вызов возврата |
4 |
Прерывания |
Программа обработки прерываний |
Активировать, маскировать, демаскировать |
5 |
Элементарные процессы |
Семафоры, списки готовности, элементарные процессы |
Прочесть, записать, выделить, освободить |
6 |
Локальная внешняя память |
Блоки данных, каналы устройств |
Прочесть, записать, выделить, освободить |
7 |
Виртуальная память |
Сегменты памяти |
Прочесть, записать, загрузит |
Поскольку элементарный процесс может быть прерван в любой момент, требуется специальный механизм обеспечивающий приостановку процесса и его последующее возобновление.
Этот механизм включает:
1) «словосостояние программы»
2) структура данных, в которые могут входить сведения о содержимом всех регистров центр процесса
3) операция переключения контекста.
Семафоры - средства синхронизации процессов.
До 7 уровня ОС имеет дело с ресурсами 1-го компьютера
8 |
Коммуникации |
Конвейеры |
Создать, уничтожить, открыть, закрыть, прочесть, записать |
9 |
Уровень файловой системы |
Файлы |
Создать, уничтожить, открыть, закрыть, прочесть, записать |
10 |
Устройство |
Внешние устройства |
Создать, уничтожить, открыть, закрыть, прочесть, записать |
11 |
Каталоги |
Каталоги |
Создать, уничтожить, срезать, открепить, найти, распечатать |
12 |
Процессы пользователей |
Процессы пользователей |
Выйти, уничтожить, приостановить, возобновить |
13 |
Оболочка |
Программная среда пользователя |
Оператор на языке оболочки |
Программы уровня 6 имеют дело с дисковой памятью терм-х дорожек и секторов
Программы уровня 9 работают с более абстрактными объектами.
Каждый каталог представляет собой список элементов, в которых указано внешнее имя и внутреннее имя, которое хранится в двоичном коде.
На 13 уровне работает интерпретатор командного языка высокого уровня. На этом же уровне находится программа «слушатель», которая:
1) проводит синтаксический анализ каждой вводимой строки;
2) создает и активирует процесс пользователя для каждой программы и связывает его с конвейерами, файлами и устройствами.
Основные принципы построения ОС:
1) принцип модульности;
2) принцип функциональной избирательности;
3) генерируемости;
4) функциональной избыточности;
5) виртуализации (планировщики);
6) независимости программ от внешних устройств;
7) совместимости;
8) открытости и наращиваемости;
9) мобильности или переносимости;
10) обеспечение безопасности вычислений