
- •Предварительные вопросы к экзамену по дисциплине «Программирование под операционными системами Windows/Linux»
- •Базовые функциональные возможности:
- •Что собой представляет общая система типов (cts):
- •Пример:
- •Важное замечание:
- •Конструкции для выполнения итераций:
- •Формат метода:
- •Типы значения и ссылочные типы
- •Пример:
- •Файловый ввод-вывод
- •Класс Stream:
- •Работа с потоками
- •Получение статистики о текущем потоке (вывод):
- •Главная функция, главная служебная функция и обработчики:
- •Классы для служб Windows:
- •Утилита installutil:
- •Описание архитектуры Linux Операционная система – это то, что превращает ваше аппаратное обеспечение в пригодный для использования компьютер.
- •Журналируемые файловые системы
- •Процессы
Предварительные вопросы к экзамену по дисциплине «Программирование под операционными системами Windows/Linux»
Виды программного обеспечения. Понятие операционной системы (ОС). Системные вызовы. Общая схема вычислительной системы. Структура ОС. Функции ОС.
Понятие операционной системы (ОС). Классификации ОС. Требования к ОС.
Обзор ОС Windows. История развития ОС Windows.
Общая схема архитектуры Windows. Компоненты пользовательского режима. Компоненты режима ядра.
Понятия программ, процессов и потоков. Общее описание структуры данных для процессов и потоков в ОС Windows. Этапы создания процесса в ОС Windows.
Планирование потоков в ОС Windows: Алгоритмы планирования. Состояния потоков. Кванты. Приоритеты потоков.
Алгоритмы планирования потоков в ОС Windows. Возможные ситуации при планировании потоков.
Обзор платформы .NET. Обзор главных компонентов платформы .NET (CLR, CTS, CLS).
Общая система типов (CTS): классы, интерфейсы, структуры, перечисления, делегаты.
Основы языка C#: понятия пространств имен, сборок, типов. Структура простого консольного приложения. Обработка аргументов командной строки.
Основы языка C#: объявление и инициализация пер еменных. Внутренние типы данных и операция new.
Основы языка C#: иерархия классов типов данных. Описание основных встроенных типов данных. Строковый тип данных.
Основы языка C#: итерационные конструкции. Конструкции принятия решений.
Основы языка C#: методы и модификаторы параметров. Перегрузка методов.
Основы языка C#: массивы. Инициализация массивов.
Основы языка C#: типы значения и ссылочные типы. Передача ссылочных типов по значению и по ссылке.
Объектно-ориентированное программирование на языке C#: понятие класса. Члены класса. Создание экземпляра класса. Понятие конструктора. Конструктор по умолчанию. Роль ключевого слова this.
Программирование на языке C#: файловый ввод-вывод. Классы Directory, File. Создание директорий, файлов.
Программирование на языке C#: класс Stream. Запись и чтение из текстового файла.
Программирование на языке C#: работа с потоками. Класс Thread. Этапы создания вторичных потоков. Потоки переднего плана и фоновые потоки.
Программирование на языке C#: работа с потоками. Проблемы, связанные с параллелизмом. Синхронизация потоков. Класс Timer.
Понятие WinApi. Основные причины использования WinApi при разработке прикладного ПО. Использование WinApi на платформе .NET. Общая схема взаимодействия между компонентами .NET и WinApi.
Службы Windows. Примеры служб. Архитектура служб Windows: программы, необходимые для оперирования службой Windows. Основные компоненты программы службы. Диспетчер управления службами.
Службы Windows. Главная функция, главная служебная функция и обработчики.
Разработка служб Windows на платформе .NET: классы для служб Windows. Запуск службы. Методы-обработчики.
Управление службами Windows. Утилиты installutil.exe, net.exe, sc.exe, оснастка Services. Выявление неисправностей и регистрация событий.
Программное обеспечение с открытым исходным кодом. История развития ОС Linux. Краткий обзор дистрибутивов ОС Linux.
Общая схема архитектуры ОС Linux. Файловые системы, с которыми работает ОС Linux.
Структура каталогов ОС Linux. Типы файлов. Пользователи и привилегии.
Процессы в ОС Linux. Системные вызовы. Драйверы устройств. Переносимость ОС Linux.
1- Виды программного обеспечения:
Прикладное (MS Word, Excel, Paint)
Инструментальное (MS Visual Studio)
Системное (Операционная система)
Операцио́нная систе́ма, сокр. ОС (англ. operating system, OS) — комплекс управляю и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений.
Системные вызовы (system calls) – это интерфейс между операционной системой и пользовательской программой.
Они создают, удаляют и используют различные объекты, главные из которых – процессы и файлы. Пользовательская программа запрашивает сервис уоперационной системы, осуществляя системный вызов. Имеются библиотеки процедур, которые загружают машинные регистры определенными параметрами и осуществляют прерывание процессора, после чего управление передается обработчику данного вызова, входящему в ядро операционной системы. Цель таких библиотек – сделать системный вызов похожим на обычный вызов подпрограммы.
Структура операционной системы:
Ядро – основной компонент ОС
Драйверы
Системные библиотеки
Пользовательские оболочки
Функции операционной системы:
Обеспечение выполнения программ
Управление оперативной памятью
Управление внешней памятью
Управление вводом-выводом
Предоставление пользовательского интерфейса
Обеспечение безопасности
Организация сетевого взаимодействия
Операцио́нная систе́ма,— комплекс управляю и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений.
Так, в зависимости от алгоритма управления процессором, операционные системы делятся на:
Однозадачные и многозадачные
Однопользовательские и многопользовательские
Однопроцессорные и многопроцессорные системы
Локальные и сетевые.
По числу одновременно выполняемых задач операционные системы делятся на два класса:
Однозадачные (MS DOS)
Многозадачные (OS/2, Unix, Windows)
В однозадачных системах используются средства управления периферийными устройствами, средства управления файлами, средства общения с пользователями. Многозадачные ОС используют все средства, которые характерны для однозадачных, и, кроме того, управляют разделением совместно используемых ресурсов: процессор, ОЗУ, файлы и внешние устройства
Требования к операционным системам:
Расширяемость
Переносимость
Совместимость
Надежность
Производительность
Семейства ОС 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)
Программа – последовательность команд, реализующая алгоритм решения задачи
Процесс – программа в ходе выполнения
Поток – объект, которому ОС предоставляет процессорное время
Стек – область памяти потока
Структура данных для процессов:
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
Запуск основного потока
Инициализация процесса
Алгоритмы планирования:
Вытесняющие/невытесняющие алгоритмы
Алгоритмы с квантованием
Алгоритмы с приоритетами
Состояния потоков:
Кванты:
Алгоритм планирования в Windows.
Структура KPRCB (Kernel Processor Control Block) содержит следующие поля, требуемые для планирования:
CurrentThread
NextThread
IdleThread
DispatcherReadyListHead
ReadySummary
Ситуация 1. Выбор потока на выполнение
Ситуация 2. Переход выполняющегося потока в состояние ожидания
Ситуация 3. Вытеснение потоком с большим приоритетом
Ситуация 4. Завершение кванта времени