Операционные системы. Системное программное обеспечение
Учебное пособие по выполнению лабораторных работ по курсам
«Операционные системы» и «Системное программное обеспечение»
Красноярск 2008г.
Учебное пособие содержит материал, необходимый для решения задач, которым должны овладеть студенты в процессе изучения таких
дисциплин как «Операционные системы» и «Системное программное обеспечение». Теоретический материал сопровождается примерами и листингами программ, предназначенных к выполнению в среде семейства Microsoft Windows.
Предназначено для студентов укрупненной группы направлений подготовки специалистов 230000 – «Информатика и вычислительная техника» (спец. 230102.65, 230104.65, 230105.65, 230201.65) и преподавателей дисциплин «Операционные системы» и «Системное программное обеспечение».
Введение
Дисциплины «Операционные системы» и «Системное программное обеспечение» имеют своей целью ознакомить студентов с фундаментальными концепциями и принципами построения современных операционных систем, обучить разрабатывать системное программное обеспечение с использованием современных систем разработки программного обеспечения.
Область профессиональной деятельности для применения дисциплин «Операционные системы» и «Системное программное обеспечение» – создание и применение программного обеспечения автоматических и автоматизированных систем и средств контроля и управления.
Объект изучения дисциплин «Операционные системы» и «Системное программное обеспечение» – современные операционные системы ЭВМ и другие виды системного программного обеспечения.
Задачами учебных дисциплин «Операционные систем» и «Системное программное обеспечение» является приобретение и развитие знаний, умений и навыков для производственно-технологической, организационно-управленческой, проектной и научно-исследовательской деятельности.
Изучение указанных дисциплин вносит вклад в формирование следующих компетенций:
а) универсальных:
– общенаучные (ОНК):
ОНК 1. способность применять знания на практике;
ОНК 2. исследовательские навыки;
ОНК 3. способность учиться;
ОНК 4. способность адаптироваться к новым ситуациям;
– инструментальные (ИК):
ИК 2. фундаментальная подготовка по основам профессиональных знаний;
ИК 3. навыки работы с компьютером;
ИК 4. базовые знания в различных областях;
ИК 5. способность к анализу и синтезу;
б) профессиональными:
– общепрофессиональные (ОПК):
ОПК 1. Определение общих форм, закономерностей, инструментальных средств для данной дисциплины.
ОПК 2. Умение понять поставленную задачу.
ОПК 3. Умение формулировать результат.
ОПК 5. Умение на основе анализа увидеть и корректно сформулировать результат.
ОПК 6. Умение самостоятельно увидеть следствия сформулированного результата.
ОПК 7. Умение грамотно пользоваться языком предметной области.
ОПК 8. Умение ориентироваться в постановках задач.
ОПК 10. Понимание корректности постановок задач.
ОПК 11. Самостоятельное построение алгоритма и его анализ.
ОПК 15. Способность передавать результат проведенных физико-математических и прикладных исследований в виде конкретных рекомендаций, выраженной в терминах предметной области изучавшегося явления.
– профильно-специализированные (ПСК):
ПСК 1. Владение методом алгоритмического моделирования при анализе постановок прикладных задач.
ПСК 2. Владение методами математического и алгоритмического моделирования при решении прикладных и инженерно-технических задач.
ПСК 13. Владение методами алгоритмического моделирования.
ПСК 15. Умение самостоятельно математически корректно ставить задачи.
Работа специалиста по программированию немыслима без знания принципов, лежащих в основе современных систем разработки программного обеспечения (систем программирования). Базисом для создания систем программирования является практические приемы проектирования и реализации элементов, совокупно образующих системы программирования.
Задача организации эффективного совместного использования ресурсов несколькими процессами является сложной ввиду случайного характера запросов на потребление ресурсов. В мультипрограммной системе образуются очереди заявок от одновременно выполняемых программ к разделяемым ресурсам компьютера: процессору, странице памяти, принтеру, диску.
Операционная система организует обслуживание этих очередей по разным алгоритмам. Анализ и определение оптимальных дисциплин обслуживания заявок является предметом специальной области прикладной математики – теории массового обслуживания. Эта же теория используется при оценке эффективности тех или иных алгоритмов управления очередями в ОС.
Управление ресурсами составляет важную часть функций любой ОС, в особенности мультипрограммной. Большинство функций управления ресурсами выполняется опреационной системой автоматически. Однако, системному программисту также доступны средства разделения ресурсов, запуска отдельных процессов и потоков, их синхронизация. Решению этих и других вопросов, связанных с операционными системами и системным программным обеспечением, посвящены данное учебное пособие.
Лабораторная работа № 1. Управление процессами в ОС Windows
Цель: Изучение процессов и потоков в операционной системе Windows.
Задачи:
1. Изучение теоретического материала по управлению процессами.
2. Составление алгоритма программы.
3. Программная реализация.
Ход работы:
1. Получить у преподавателя собственный вариант задания, который предусматривает разработку программы, запускающей дополнительные процессы.
2. Используя изученные механизмы, разработать и отладить:
а. программу, реализующую полученное задание (запуск процессов);
б. программу, являющуюся дополнительным процессом.
3. Написать отчет.
Ход защиты:
1. Продемонстрировать преподавателю программу, запускающую дополнительные процессы.
2. Пояснить работу изученных механизмов по коду:
а. программы, реализующей полученное задание (запуск процессов);
б. программы, являющейся дополнительным процессом (по выбору преподавателя).
В современных ОС пользователям предлагается несколько типов параллельной работы, основными из которых являются процессы и потоки. Процессы – это программы на этапе выполнения.
В ОС типа Windows NT/2000/XP создание процесса осуществляется с помощью вызова функции Win32 API, описываемой на языке Си следующим образом.
BOOL CreateProcess (
PCTSTR pszApplicationName, //имя исполняемого файла
PTSTR pszCommandLine, //командная строка
PSECURITY_ATTRIBUTES psaProcess, //атрибуты защиты процесса
PSECURITY_ATTRIBUTES psaThread, //атрибуты защиты потока
BOOL bInheritHandles, //наследование описателей
DWORD fwdCreate, //флаги процесса
PVOID pvEnvironment, //переменные окружения
PCTSTR pszCurDir, //текущий каталог
PSTARTUPINFO psiStrartInfo,
//начальная информация при создании процесса
PPROCESS_INFORMATION ppiProcInfo);//описатель процесса
Функция CreateProcess возвращает значение TRUE, если системе удастся создать процесс и начальный поток, при этом созданному объекту ядра будет присвоен уникальный идентификатор.
Процесс в Windows NT/2000/XP можно завершить с помощью вызовов функций Win32 API под названием ExitProcess и TerminateProcess, описанные следующим образом:
VOID ExitProcess (
UINT fuExitCode);// код завершения процесса
Эта функция не возвращает значения.
VOID TerminateProcess (
HANDLE hProcess, // описатель завершаемого процесса
UINT fuExitCode); // код завершения процесса
Эта функция также не возвращает значения. Она отличается от
ExitProcess тем, что ее может вызвать любой процесс и поток. Обе функции использовать нежелательно, поскольку процесс заканчивается, когда завершают работу все его потоки.
Следующий программный код просто создаст новый процесс и запустит калькулятор.
#include <windows. h>
void WinMain ()
{
STARTUPINFO start = { sizeof (start) };
PROCESS_INFORMATION procinfo;
TCHAR CommandLine[] = TEXT (“CALC”);
CreateProcess (NULL, CommandLine, NULL, NULL, FALSE, 0, NULL,
NULL, &start, &procinfo);
}
Варианты заданий к лабораторной работе №1
Вариант №1
Разработать две программы. Первая вычисляет сумму и произведение чисел от L до U, где L – это нижняя граница диапазона, U – верхняя граница диапазона, границы вводятся пользователем, и выводит полученные значения на экран. Вторая программа запускает первую в качестве вновь созданного процесса.
Вариант №2
Разработать две программы. Первая вычисляет число Фибоначчи по номеру, введенному пользователю, и формуле Fi = Fi–1 + Fi–2, F0 = F1= 1 и
выводит его на экран. Вторая программа запускает первую в качестве вновь созданного процесса.
Вариант №3
Разработать две программы. Первая принимает от пользователя строку, хранящую знаковое целое число, и выводит на экран строковый эквивалент этого числа прописью (например, ввод «-1211» должен приводить к выводу «минус тысяча двести одиннадцать»). Вторая программа запускает первую в качестве вновь созданного процесса.
Вариант №4
Разработать две программы. Первая принимает от пользователя строку, хранящую число со знаком и плавающей точкой, и выводит на экран строковый эквивалент этого числа прописью (например, ввод «-12.11» должен приводить к выводу «минус двенадцать целых одиннадцать сотых»). Вторая программа запускает первую в качестве вновь созданного процесса.
Вариант №5
Разработать две программы. Первая принимает от пользователя две строки. Далее, если обе строки хранят целые числа со знаком, то на экран выводится сумма чисел, в противном случае – конкатенация двух введенных строк. Вторая программа запускает первую в качестве вновь созданного
процесса.
Вариант №6
Разработать две программы. Первая принимает от пользователя две прямоугольных матрицы, а затем выводит на экран их сумму и произведение. Вторая программа запускает первую в качестве вновь созданного процесса.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |


