Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bestuzhev.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.07 Mб
Скачать

Предварительные вопросы к экзамену по дисциплине «Программирование под операционными системами Windows/Linux»

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

  2. Понятие операционной системы (ОС). Классификации ОС. Требования к ОС.

  3. Обзор ОС Windows. История развития ОС Windows.

  4. Общая схема архитектуры Windows. Компоненты пользовательского режима. Компоненты режима ядра.

  5. Понятия программ, процессов и потоков. Общее описание структуры данных для процессов и потоков в ОС Windows. Этапы создания процесса в ОС Windows.

  6. Планирование потоков в ОС Windows: Алгоритмы планирования. Состояния потоков. Кванты. Приоритеты потоков.

  7. Алгоритмы планирования потоков в ОС Windows. Возможные ситуации при планировании потоков.

  8. Обзор платформы .NET. Обзор главных компонентов платформы .NET (CLR, CTS, CLS).

  9. Общая система типов (CTS): классы, интерфейсы, структуры, перечисления, делегаты.

  10. Основы языка C#: понятия пространств имен, сборок, типов. Структура простого консольного приложения. Обработка аргументов командной строки.

  11. Основы языка C#: объявление и инициализация пер еменных. Внутренние типы данных и операция new.

  12. Основы языка C#: иерархия классов типов данных. Описание основных встроенных типов данных. Строковый тип данных.

  13. Основы языка C#: итерационные конструкции. Конструкции принятия решений.

  14. Основы языка C#: методы и модификаторы параметров. Перегрузка методов.

  15. Основы языка C#: массивы. Инициализация массивов.

  16. Основы языка C#: типы значения и ссылочные типы. Передача ссылочных типов по значению и по ссылке.

  17. Объектно-ориентированное программирование на языке C#: понятие класса. Члены класса. Создание экземпляра класса. Понятие конструктора. Конструктор по умолчанию. Роль ключевого слова this.

  18. Программирование на языке C#: файловый ввод-вывод. Классы Directory, File. Создание директорий, файлов.

  19. Программирование на языке C#: класс Stream. Запись и чтение из текстового файла.

  20. Программирование на языке C#: работа с потоками. Класс Thread. Этапы создания вторичных потоков. Потоки переднего плана и фоновые потоки.

  21. Программирование на языке C#: работа с потоками. Проблемы, связанные с параллелизмом. Синхронизация потоков. Класс Timer.

  22. Понятие WinApi. Основные причины использования WinApi при разработке прикладного ПО. Использование WinApi на платформе .NET. Общая схема взаимодействия между компонентами .NET и WinApi.

  23. Службы Windows. Примеры служб. Архитектура служб Windows: программы, необходимые для оперирования службой Windows. Основные компоненты программы службы. Диспетчер управления службами.

  24. Службы Windows. Главная функция, главная служебная функция и обработчики.

  25. Разработка служб Windows на платформе .NET: классы для служб Windows. Запуск службы. Методы-обработчики.

  26. Управление службами Windows. Утилиты installutil.exe, net.exe, sc.exe, оснастка Services. Выявление неисправностей и регистрация событий.

  27. Программное обеспечение с открытым исходным кодом. История развития ОС Linux. Краткий обзор дистрибутивов ОС Linux.

  28. Общая схема архитектуры ОС Linux. Файловые системы, с которыми работает ОС Linux.

  29. Структура каталогов ОС Linux. Типы файлов. Пользователи и привилегии.

  30. Процессы в ОС Linux. Системные вызовы. Драйверы устройств. Переносимость ОС Linux.

1- Виды программного обеспечения:

Прикладное (MS Word, Excel, Paint)

Инструментальное (MS Visual Studio)

Системное (Операционная система)

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

Системные вызовы (system calls) – это интерфейс между операционной системой и пользовательской программой.

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

Структура операционной системы:

  • Ядро – основной компонент ОС

  • Драйверы

  • Системные библиотеки

  • Пользовательские оболочки

Функции операционной системы:

Обеспечение выполнения программ

Управление оперативной памятью

Управление внешней памятью

Управление вводом-выводом

Предоставление пользовательского интерфейса

Обеспечение безопасности

Организация сетевого взаимодействия

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

Так, в зависимости от алгоритма управления процессором, операционные системы делятся на:

  1. Однозадачные и многозадачные

  2. Однопользовательские и многопользовательские

  3. Однопроцессорные и многопроцессорные системы

  4. Локальные и сетевые.

По числу одновременно выполняемых задач операционные системы делятся на два класса:

  1. Однозадачные (MS DOS)

  2. Многозадачные (OS/2, Unix, Windows)

В однозадачных системах используются средства управления периферийными устройствами, средства управления файлами, средства общения с пользователями. Многозадачные ОС используют все средства, которые характерны для однозадачных, и, кроме того, управляют разделением совместно используемых ресурсов: процессор, ОЗУ, файлы и внешние устройства

Требования к операционным системам:

  • Расширяемость

  • Переносимость

  • Совместимость

  • Надежность

  • Производительность

  1. Семейства ОС Windows:

  • Семейство клиентских операционных систем Windows NT (Windows XP, Windows Vista, Windows 7, Windows 8)

  • Семейство серверных операционных систем Windows NT Server (Windows Server 2003, Windows Server 2008)

  • Семейство мобильных операционных систем Windows Mobile и Windows Phone (Windows Mobile 6, Windows Phone 7)

  • Семейство встроенных операционных систем реального времени Windows CE (Windows CE 7.0)

Развитие

16 разрядные Windows:

  • Выход: 1985 год

  • Название: Windows 1.0

  • Особенности: графический оконный интерфейс, возможность одновременного запуска приложений

Windows 9x:

  • Выход: 1995 год

  • Название: Windows 95

  • Особенности: 32-разрядная ОС, поддержка работы с Интернетом, технология «Plug-and-Play», кнопка «Пуск» и панель задач

Windows NT:

  • Выход: 1993 год

  • Название: Windows NT 3.1

  • Особенности: 32 разрядность, поддержка многопроцессорных систем, поддержка вытесняющей многозадачности и виртуальной памяти, высокая производительность, возможность работы в качестве сервера и клиента, переносимость, совместимость с другими версиями Windows и MS DOS, безопасность, надежность, поддержка Unicode

Windows CE:

  • Выход: 1996 год

  • Название: Windows CE 1.0

  • Особенности: операционная система реального времени для встраиваемых систем

Windows Mobile и Windows Phone:

  • Выход: 2000 год

  • Название: Pocket PC

  • Особенности: операционная система для смартфонов и карманных персональных компьютеров

Компоненты пользовательского режима:

  • Системные процессы (system processes)

  • Службы (сервисы, services)

  • Пользовательские приложения (user applications)

  • Подсистемы окружения (environment subsystems)

Компоненты режима ядра:

  • Диспетчер системных сервисов (System Service Dispatcher)

  • Исполнительная система и ядро

  • Компонент Windows USER и GDI

  • Драйверы (drivers)

  1. Программа – последовательность команд, реализующая алгоритм решения задачи

Процесс – программа в ходе выполнения

Поток – объект, которому ОС предоставляет процессорное время

Стек – область памяти потока

Структура данных для процессов:

  • Pcb (Process Control Block – блок управления процессом)

  • CreateTime и ExitTime

  • UniqueProcessId 

  • ActiveProcessLinks

  • QuotaUsage, QuotaPeak, CommitCharge

  • ObjectTable

  • Token

  • ImageFileName

  • ThreadListHead

  • Peb (Process Environment Block

  • PriorityClass

Структура данных для потоков:

  • Tcb (Thread Control Block – блок управления потоком)

  • CreateTime и ExitTime

  • Cid

  • ThreadsProcess

  • StartAddress

  • Win32StartAddress

Создание процесса:

  • Проверка и преобразование параметров

  • Открытие исполняемого файла

  • Создание объекта «Процесс»

  • Создание основного потока

  • Уведомление подсистемы Windows

  • Запуск основного потока

  • Инициализация процесса

  1. Алгоритмы планирования:

Вытесняющие/невытесняющие алгоритмы

Алгоритмы с квантованием

Алгоритмы с приоритетами

Состояния потоков:

Кванты:

  1. Алгоритм планирования в Windows.

Структура KPRCB (Kernel Processor Control Block) содержит следующие поля, требуемые для планирования:

  • CurrentThread

  • NextThread

  • IdleThread

  • DispatcherReadyListHead

  • ReadySummary

Ситуация 1. Выбор потока на выполнение

Ситуация 2. Переход выполняющегося потока в состояние ожидания

Ситуация 3. Вытеснение потоком с большим приоритетом

Ситуация 4. Завершение кванта времени

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]